pax_global_header00006660000000000000000000000064123143417730014517gustar00rootroot0000000000000052 comment=b7be44ae30e1d4859b73e0184e949f73a52de8ef focuswriter-1.4.5/000077500000000000000000000000001231434177300141025ustar00rootroot00000000000000focuswriter-1.4.5/.gitignore000066400000000000000000000000361231434177300160710ustar00rootroot00000000000000Makefile build focuswriter *~ focuswriter-1.4.5/COPYING000066400000000000000000001045131231434177300151410ustar00rootroot00000000000000 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 . focuswriter-1.4.5/CREDITS000066400000000000000000000026051231434177300151250ustar00rootroot00000000000000Developers ---------- * Graeme Gott Translations ------------ Arabic: * Qattef Catalan: * Joan Queralt Gil Czech: * Pavel Fric * Ladislav Thon Danish: * Morten Juhl-Johansen Zölde-Fejér Dutch: * Robert Borst German: * Dennis Peteranderl * Eduard Bruckner Greek: * Γιάννης Ανθυμίδης * Epameinondas Soufleros Finnish: * Aarni * Lasse Liehu French: * Guillaume Gay * Jérôme Borme Hebrew: * Jacob Paikin Hungarian: * Zoltán Adamek Italian: * Andrea Bergamasco Indonesian: * Eka Y Saputra Japanese: * Kyo Nagashima Korean: * Hwang In Tak Polish: * Jakub Kowalski Portuguese: * Jérôme Borme Portuguese (Brazil): * Enrico Nicoletto * Márcio Massula Jr. Romanian: * Jaff (Oprea Nicolae) Russian: * Danila Evstifeyev * Dmitriy Kodanev * Сергей Миронов Serbian: * miroslav Slovak: * Jan Gallik Spanish: * Adolfo Jayme Barrientos * Freddy Sequera * Luis Osa * Verónica Jiménez Spanish (Mexico): * Israel Buitrón Swedish: * Daniel Nylander * Påvel Nicklasson Turkish: * Cüneyt Oktay * Ülgen Ukrainian: * Sergiy Gavrylov Vietnamese: * Anh Phan (vi) Chinese (China): * Dianjin Wang * Jiajun Liu * 勇 郭 Icons ----- * Oxygen, http://www.oxygen-icons.org/ Libraries --------- * Qt, http://qt-project.org/ * enchant, http://www.abisource.com/projects/enchant/ * libzip, http://www.nih.at/libzip/ * SDL_mixer, http://www.libsdl.org/projects/SDL_mixer/ focuswriter-1.4.5/INSTALL000066400000000000000000000015511231434177300151350ustar00rootroot00000000000000Installation ============ Open a terminal and browse into the extracted folder. Linux: 1.) Type 'qmake' to configure the program. If you would like to install the program somewhere other than /usr/local, pass a new value for PREFIX during configuration: 'qmake PREFIX=/opt'. 2.) Type 'make' to compile the program. 3.) Type 'sudo make install' to install the program. Mac OS X: 1.) Type 'qmake -spec macx-g++' to configure the program. 2.) Type 'make' to compile the program. 3.) Type './mac_deploy.sh' to create a disk image of the program. Windows: 1.) Type 'qmake' to configure the program. 2.) Type 'make' to compile the program. 3.) Type 'windows_deploy' to create a compressed image of the program. Note that you must have the 7z executable from 7-zip.org in your %PATH% for this to work. focuswriter-1.4.5/NEWS000066400000000000000000000312461231434177300146070ustar00rootroot000000000000001.4.5 ----- * FIXED: Infinite loop during replace all with regular expressions. * FIXED: Regular expression replaces did not ignore whole words option. * FIXED: Interpreted images in RTF files as text. * FIXED: Context menu key did not show spelling menu. * FIXED: Could delete all themes. * FIXED: Did not recreate default theme until program restart. * FIXED: Created a new tab for corrupted documents. * FIXED: Reloading a modified file did not reduce daily goal progress. * FIXED: Unable to overwrite current document. * FIXED: Discarding a modified file did not reduce daily goal progress. * FIXED: Locale dialog always prompted users of System Language to restart. * FIXED: Symbols dialog had help titlebar icon. * FIXED: Second instance would not open relative paths. * FIXED: Closing last empty document increased untitled count. * FIXED: Regular expression searches did not ignore whole words option. * FIXED: Paragraphs not always focused properly when merged. * FIXED: Selected session was incorrect when switching sessions was canceled. * FIXED: Could open unsupported multimedia files. * FIXED: Hyphenated lines were not focused properly. * Translation updates: Arabic, Chinese (China), Czech, English (United Kingdom), Finnish, Greek, Hungarian, Korean, Indonesian, Serbian, Vietnamese. 1.4.4 ----- * FIXED: Crashed when opening font dropdown in theme dialog. * FIXED: Did not always ignore changes made by program. * FIXED: Smart quotes were incorrect after opening punctuation. * Translation updates: German, Greek, Hebrew, Indonesian, Russian, Turkish. 1.4.3 ----- * FIXED: Unsaved new files were not restored from cache. 1.4.2 ----- * Added support for Qt 5. * FIXED: Did not play key press sound for non-Latin languages. * FIXED: Crash when ignoring words in spelling dialog. * FIXED: Could not end italics before smart quote. * Translation updates: Catalan, Hebrew, Italian, Turkish. 1.4.1 ----- * FIXED: High CPU use in Ubuntu 10.04. * FIXED: Crashed when typing circumflex with focused text. * FIXED: Showing scene list moved cursor to start of document. * FIXED: Played sounds constantly in Ubuntu 10.04. * FIXED: Could drag scenes in Read-Only files. * FIXED: Could insert symbols in Read-Only files. * FIXED: Could paste unformatted in Read-Only files. * FIXED: Could check spelling of Read-Only files. * FIXED: Cleared keyboard shortcuts not saved. * FIXED: Cannot add new keyboard shortcuts with the Shift key. * Translation updates: Chinese (China), Czech, Greek, Hebrew, Romanian, Swedish, Spanish. 1.4.0 ----- * Added scene list sidebar. * Added focusing text. * Added line spacing in themes. * Added symbols dialog. * Added monitoring files for changes. * Added editable keyboard shorcuts. * Allow changing formats in save dialogs. * Switched to enchant for spell checking. * Check spelling in background. * Removed included dictionaries. * FIXED: Could not save to WebDAV. * FIXED: Insert key did not switch to overwrite mode. * FIXED: Hiding toolbar did not shrink header. * FIXED: Regression - SDL_mixer was not loaded in Debian. * FIXED: Could save over files open on other tabs. * FIXED: Switching themes still wasn't properly focusing text. * FIXED: Theme previews did not scale tiled or centered images. * FIXED: Warned user twice about every malformed file. * FIXED: Could not interact with dialogs during load. * FIXED: Did not check spelling of pasted paragraphs. * FIXED: Regression - Windows did not load SDL. * FIXED: Regression - fallback icons were not used. * FIXED: File rename did not change formats. * FIXED: Default shortcuts conflicted on the Mac. * FIXED: Restoring from cache treated all files as plain text. * FIXED: Filenames were incorrect after undo and redo. * FIXED: Formatting of first paragraph was lost on reload. * FIXED: Switching themes wasn't properly focusing text. * FIXED: Text brought onto current line was not focused. * FIXED: Replace all could not be reverted with a single undo. * Translation updates: Chinese (China), Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, Polish, Portuguese, Portuguese (Brazil), Russian, Slovak, Spanish, Spanish (Mexico), Swedish, Ukrainian. 1.3.6 ----- * FIXED: Saved cache files more frequently than necessary. * FIXED: Displayed paths did not use native separators. * FIXED: Crashed when loading empty RTF files. * FIXED: Emergency cache files could have broken names. * FIXED: Was not loading data from emergency cache files. * FIXED: Emergency cache was not working for rich text. * FIXED: Data was not always written to disk. * FIXED: Was adding spaces before pasted rich text. * FIXED: Inserting text resets alignment. * Translation updates: Danish, Spanish. 1.3.5.2 ------- * FIXED: Did not handle loading menu icons correctly. * Translation updates: Dutch, Finnish, Greek, Hungarian, Spanish. 1.3.5.1 ------- * Added scalable icon. * FIXED: Did not correctly handle multi-byte characters in RTF. * FIXED: Interface was incorrectly hidden while fullscreen. * Translation updates: Dutch, German. 1.3.5 ----- * Compress exported themes. * FIXED: ODT block settings were not respected. * FIXED: RTF block settings were not respected. * FIXED: Sometimes did not display opened documents immediately. * Translation updates: Czech, German, Italian, Polish. 1.3.4.1 ------- * FIXED: Missing Qt translations on the Mac. 1.3.4 ----- * Added support for copying RTF. * Added basic ODT support * FIXED: Regression - changing dictionary required restart. * FIXED: Always vertically center did not work with new documents. * FIXED: Printed spellchecking highlights. * FIXED: Did not load file stats when loading file. * FIXED: Font names were sometimes inserted at head of document. * FIXED: Crashed when typing after alert for no sound effects. * Translation updates: Czech, Finnish, French, German, Greek, Italian, Polish, Portuguese (Brazil), Russian, Spanish, Spanish (Mexico), Swedish, Ukrainian. 1.3.3 ----- * Added emergency file cache. * Replaced icon and load image. * Improved Mac integration. * Switched to SDL_mixer instead of libao. * FIXED: Timers action didn't always use theme icon. * FIXED: Did not follow toolbar style by default. * FIXED: Did not raise to front in GNOME2. * FIXED: Cancelling adding a theme did not work. * FIXED: Font size always show decimal. * FIXED: Incorrectly handled paragraph end in RTF. * FIXED: Played sound effects when text was removed. * FIXED: Could not type in timer time edit. * FIXED: Incorrect background color for preferences tabs. * FIXED: Document details were visible through load screen. * FIXED: Load screen text was not always monospaced. * FIXED: Replacing quotes with LaTex quotes did not update all quotes. * FIXED: Could not scroll over background in Qt/Cocoa. * FIXED: Regression where text did not fill text area. * FIXED: Scrollbar did not disappear when mousing into header. * FIXED: Could not interact with tabs in Qt/Cocoa. * FIXED: Masked scrollbars still showed a pixel. * FIXED: SDL_mixer was not loaded in most Linux distros. * FIXED: Documents were visible when resizing window. * FIXED: No sound on characters inserted with "compose" key. * FIXED: Large documents were not centered. * FIXED: Documents were sometimes displayed truncated. * FIXED: Could not access menubar while fullscreen in Unity. * FIXED: Could not leave fullscreen in Unity. * FIXED: Closing the color picker does not return focus to theme dialogs. * FIXED: Wasn't switching to already opened document. * FIXED: Dropping files on main window pasted URLs in KDE. * FIXED: Qt translations were not deployed on the Mac. * FIXED: Word count issue with Persian/Farsi. * FIXED: Forgot new documents saved when closed. * Translation updates: Czech, French, German, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Spanish (Mexico). 1.3.2.1 ------- * FIXED: Crashed when typing. * Translation updates: Spanish (Mexico). 1.3.2 ----- * Added rounded corners to themes. * FIXED: Ubuntu panels appeared when find dialog was shown. * FIXED: Jumped while selecting text and scrolling. * FIXED: Statistics and centering were broken for large documents. * FIXED: Was recentering when backspacing at end of document. * FIXED: Header stayed visible when menus closed. * FIXED: Could not select text where header is shown. * FIXED: Header wasn't shown when menus were shown by keyboard shortcuts. * FIXED: Toolbar outline stayed visible when it was expanded. * FIXED: Automatic spellchecking highlighted current word. * FIXED: Did not inform user when archives have no dictionaries. * FIXED: Brazilian Portuguese translation could not open all files. * FIXED: Portuguese translation had incorrect file extension. * FIXED: Could not scroll over padding. * FIXED: Could not add words with smart quotes to personal dictionary. * FIXED: Could add word to personal dictionary multiple times. * FIXED: Played typewriter sounds for non-printing keys. * FIXED: Did not center for themes with padding. * Translation updates: Czech, French, Polish, Portuguese, Portuguese (Brazil), Spanish. 1.3.1 ----- * Added typewriter sound effects. * FIXED: Sometimes segfaulted when scrolling. * FIXED: The C locale was assumed to be UTF-8. * FIXED: New documents were always centered. * FIXED: Replace required clicking twice. * FIXED: Text indents were different sizes. * FIXED: Did not handle opening Read-Only files. * FIXED: Did not prompt when there was an error saving files. * FIXED: Closed even when unable to save files. * FIXED: Preferences dialog was too big for small screens. * FIXED: Save As completed even if saving failed. * FIXED: Crashed if preview image was not created. * FIXED: Font size was not always listed. * FIXED: Panels were visible when mouse was over padding. * FIXED: Informed user of Read-Only status of already open files. * FIXED: Could not switch to rich text. * FIXED: Could not update smart quotes for plain text files. * Translation updates: French, Polish, Portuguese, Portuguese (Brazil), Spanish. 1.3.0 ----- * Added text formatting. * Added smart quotes. * Added session management. * Added timers and alarms. * Added importing and exporting themes. * Added selected text statistics. * Added dictionaries for supported languages. * FIXED: Tab focus incorrect in some dialogs. * FIXED: Text direction broken with Qt 4.7. * FIXED: Default theme font incorrect. * FIXED: Created empty tabs for unreadable files. * FIXED: Warned about losing formatting of empty files. * FIXED: Could not open symlinked files. * FIXED: Could always change background image. * FIXED: Could open empty recent timers menu. * FIXED: Window background visible during resize. * FIXED: Window could be made smaller than theme. * FIXED: Default session was ignored. * FIXED: File name not updated in interface when changed. * FIXED: Allowed opening the same document twice. * FIXED: Save dialog permanently stealing mouse focus. * Translation updates: French, Portuguese. 1.2.2 ----- * Added portability support. * Switched to native file dialogs. * Updated keyboard shortcuts. * Updated included libraries. * Translation updates: French, Portuguese. 1.2.1 ----- * Added changing text area's horizontal position. * Added disabling antialiasing. * FIXED: Scrolling to top didn't work properly in Linux. * FIXED: Scrollbar wasn't tracking properly. * FIXED: Highlight was removed when right-clicking. * FIXED: Only focused document was centered on launch. * FIXED: Program would crash if dictionary couldn't be found. * FIXED: Prompted user about replacing a removed dictionary. * FIXED: Dictionary added most recently was not selected. * FIXED: Dictionaries couldn't be used immediately. * FIXED: Dictionary was assumed to use UTF-8 encoding. * FIXED: Mouse cursor sometimes disappeared when opening files. * FIXED: Interface was not hidden when mouse left window. * FIXED: Margins were not correct when using Qt 4.6.0. * FIXED: Clock did not respect user's locale. * FIXED: Time daily goal increased when preferences changed. * Translation updates: French, Portuguese. 1.2.0 ----- * Added spell checking. * Added document tabs. * Added menubar. * Added toolbar customization. * Added document statistics. * Added second wordcount algorithm. * Added option to use block cursor. * Improved file saving. * FIXED: Infinite loop when replacing all instances of a word. * FIXED: Changing all misspelled words didn't start at beginning. * FIXED: Changing themes increased progress on daily goals. * FIXED: Newly created themes were not loaded. * FIXED: Not properly centering opened documents. 1.1.2 ----- * Use UTF-8 character encoding for files. 1.1.1 ----- * FIXED: Was always launching with time based goals. 1.1.0 ----- * Added daily goals. * Added support for themes. * Added find and replace. * Changed default centering. * FIXED: Crash when first sentence was deleted. * FIXED: Image selection dialog not showing last visited path. * FIXED: Highlighted text using page alpha. focuswriter-1.4.5/README000066400000000000000000000027161231434177300147700ustar00rootroot00000000000000About ===== FocusWriter is a simple, distraction-free word processor. It utilizes a hide-away interface that you access by moving your mouse to the edges of the screen, allowing the program to have a familiar look and feel to it while still getting out of the way so that you can immerse yourself in your work. FocusWriter allows you to customize your environment by creating themes that control the font, colors, and background image to add ambiance. It also features on-the-fly updating statistics, daily goals, multiple open documents, spell-checking, and much more. Additionally, when you open the program your current work in progress will automatically load and position you where you last left off so that you can immediately jump back in. Portable Mode ============= Create a folder named "Data" in the same folder as the executable (the application bundle if using Mac OS X) to run this program from a USB drive. Simply rename or delete the "Data" folder if you later decide you want it to start storing its settings and related files on the host computer. If you have already been using FocusWriter and would like to migrate its themes to a USB drive, you will need to copy the "Themes" folder into the newly created "Data" folder. The "Themes" folder is located in one of the following places: Linux: ~/.local/share/GottCode/FocusWriter Mac OS X: ~/Library/Application Support/GottCode/FocusWriter Windows: ~/Application Data/GottCode/FocusWriter focuswriter-1.4.5/focuswriter.pro000066400000000000000000000135571231434177300172130ustar00rootroot00000000000000lessThan(QT_VERSION, 4.6) { error("FocusWriter requires Qt 4.6 or greater") } macx:greaterThan(QT_MAJOR_VERSION, 4):lessThan(QT_VERSION, 5.2) { error("FocusWriter requires Qt 5.2 or greater") } TEMPLATE = app QT += network greaterThan(QT_MAJOR_VERSION, 4) { QT += widgets printsupport multimedia macx { QT += macextras } } CONFIG += warn_on macx { QMAKE_INFO_PLIST = resources/mac/Info.plist } !win32 { LIBS += -lz } VERSION = 1.4.5 DEFINES += VERSIONSTR=\\\"$${VERSION}\\\" unix: !macx { TARGET = focuswriter } else { TARGET = FocusWriter } macx { DEFINES += RTFCLIPBOARD INCLUDEPATH += src/nsspellchecker src/rtf /Library/Frameworks/libzip.framework/Headers LIBS += -framework libzip -framework AppKit HEADERS += src/nsspellchecker/dictionary.h \ src/nsspellchecker/dictionary_data.h \ src/nsspellchecker/dictionary_manager.h \ src/rtf/clipboard_mac.h OBJECTIVE_SOURCES += src/nsspellchecker/dictionary.mm \ src/nsspellchecker/dictionary_data.mm \ src/nsspellchecker/dictionary_manager.mm \ src/nssound/sound.mm SOURCES += src/rtf/clipboard_mac.cpp } else:win32 { INCLUDEPATH += enchant libzip src/enchant src/rtf LIBS += ./enchant/libenchant.dll ./libzip/libzip0.dll greaterThan(QT_MAJOR_VERSION, 4) { LIBS += -lz } HEADERS += src/enchant/dictionary.h \ src/enchant/dictionary_data.h \ src/enchant/dictionary_manager.h SOURCES += src/enchant/dictionary.cpp \ src/enchant/dictionary_data.cpp \ src/enchant/dictionary_manager.cpp \ src/qsound/sound.cpp lessThan(QT_MAJOR_VERSION, 5) { DEFINES += RTFCLIPBOARD LIBS += -lOle32 HEADERS += src/rtf/clipboard_windows.h SOURCES += src/rtf/clipboard_windows.cpp } } else { INCLUDEPATH += src/enchant CONFIG += link_pkgconfig PKGCONFIG += enchant libzip HEADERS += src/enchant/dictionary.h \ src/enchant/dictionary_data.h \ src/enchant/dictionary_manager.h SOURCES += src/enchant/dictionary.cpp \ src/enchant/dictionary_data.cpp \ src/enchant/dictionary_manager.cpp \ src/sdl/sound.cpp } INCLUDEPATH += src/qtsingleapplication HEADERS += src/action_manager.h \ src/alert.h \ src/alert_layer.h \ src/application.h \ src/block_stats.h \ src/color_button.h \ src/deltas.h \ src/document.h \ src/document_cache.h \ src/document_watcher.h \ src/document_writer.h \ src/find_dialog.h \ src/font_combobox.h \ src/gzip.h \ src/highlighter.h \ src/image_button.h \ src/load_screen.h \ src/locale_dialog.h \ src/odt_reader.h \ src/paths.h \ src/preferences.h \ src/preferences_dialog.h \ src/scene_list.h \ src/scene_model.h \ src/session.h \ src/session_manager.h \ src/settings_file.h \ src/shortcut_edit.h \ src/smart_quotes.h \ src/sound.h \ src/spell_checker.h \ src/stack.h \ src/stats.h \ src/symbols_dialog.h \ src/symbols_model.h \ src/theme.h \ src/theme_dialog.h \ src/theme_manager.h \ src/timer.h \ src/timer_display.h \ src/timer_manager.h \ src/window.h \ src/qtsingleapplication/qtsingleapplication.h \ src/qtsingleapplication/qtlocalpeer.h \ src/rtf/reader.h \ src/rtf/tokenizer.h \ src/rtf/writer.h SOURCES += src/action_manager.cpp \ src/alert.cpp \ src/alert_layer.cpp \ src/application.cpp \ src/block_stats.cpp \ src/color_button.cpp \ src/deltas.cpp \ src/document.cpp \ src/document_cache.cpp \ src/document_watcher.cpp \ src/document_writer.cpp \ src/find_dialog.cpp \ src/font_combobox.cpp \ src/gzip.cpp \ src/highlighter.cpp \ src/image_button.cpp \ src/load_screen.cpp \ src/locale_dialog.cpp \ src/main.cpp \ src/odt_reader.cpp \ src/paths.cpp \ src/preferences.cpp \ src/preferences_dialog.cpp \ src/scene_list.cpp \ src/scene_model.cpp \ src/session.cpp \ src/session_manager.cpp \ src/shortcut_edit.cpp \ src/smart_quotes.cpp \ src/spell_checker.cpp \ src/stack.cpp \ src/stats.cpp \ src/symbols_dialog.cpp \ src/symbols_model.cpp \ src/theme.cpp \ src/theme_dialog.cpp \ src/theme_manager.cpp \ src/timer.cpp \ src/timer_display.cpp \ src/timer_manager.cpp \ src/window.cpp \ src/qtsingleapplication/qtsingleapplication.cpp \ src/qtsingleapplication/qtlocalpeer.cpp \ src/rtf/reader.cpp \ src/rtf/tokenizer.cpp \ src/rtf/writer.cpp TRANSLATIONS = $$files(translations/focuswriter_*.ts) RESOURCES = resources/images/images.qrc resources/images/icons/icons.qrc macx { ICON = resources/mac/focuswriter.icns } win32 { RC_FILE = resources/windows/icon.rc } macx { ICONS.files = resources/images/icons/oxygen/hicolor ICONS.path = Contents/Resources/icons SOUNDS.files = resources/sounds SOUNDS.path = Contents/Resources greaterThan(QT_MAJOR_VERSION, 4) { SYMBOLS.files = resources/symbols/symbols620.dat } else { SYMBOLS.files = resources/symbols/symbols510.dat } SYMBOLS.path = Contents/Resources QMAKE_BUNDLE_DATA += ICONS SOUNDS SYMBOLS } unix: !macx { isEmpty(PREFIX) { PREFIX = /usr/local } isEmpty(BINDIR) { BINDIR = $$PREFIX/bin } isEmpty(DATADIR) { DATADIR = $$PREFIX/share } DEFINES += DATADIR=\\\"$${DATADIR}/focuswriter\\\" target.path = $$BINDIR icon.files = resources/images/icons/hicolor/* icon.path = $$DATADIR/icons/hicolor pixmap.files = resources/unix/focuswriter.xpm pixmap.path = $$DATADIR/pixmaps icons.files = resources/images/icons/oxygen/hicolor/* icons.path = $$DATADIR/focuswriter/icons/hicolor desktop.files = resources/unix/focuswriter.desktop desktop.path = $$DATADIR/applications/ appdata.files = resources/unix/focuswriter.appdata.xml appdata.path = $$DATADIR/appdata/ man.files = resources/unix/focuswriter.1 man.path = $$PREFIX/share/man/man1 qm.files = translations/*.qm qm.path = $$DATADIR/focuswriter/translations sounds.files = resources/sounds/* sounds.path = $$DATADIR/focuswriter/sounds greaterThan(QT_MAJOR_VERSION, 4) { symbols.files = resources/symbols/symbols620.dat } else { symbols.files = resources/symbols/symbols510.dat } symbols.path = $$DATADIR/focuswriter INSTALLS += target icon pixmap desktop appdata man icons qm sounds symbols } focuswriter-1.4.5/mac_deploy.sh000077500000000000000000000074301231434177300165610ustar00rootroot00000000000000#!/bin/bash APP='FocusWriter' BUNDLE="$APP.app" VERSION='1.4.5' # Remove any previous disk folder or DMG echo -n 'Preparing... ' rm -f "${APP}_$VERSION.dmg" if [ -e "/Volumes/${APP}" ]; then hdiutil detach -quiet "/Volumes/${APP}" fi rm -Rf "$APP" echo 'Done' # Create disk folder echo -n 'Copying application bundle... ' mkdir "$APP" cp -Rpf "$BUNDLE" "$APP/" strip "$APP/$BUNDLE/Contents/MacOS/$APP" cp COPYING "$APP/License.txt" cp CREDITS "$APP/Credits.txt" cp README "$APP/Read Me.txt" echo 'Done' # Copy translations echo -n 'Copying translations... ' TRANSLATIONS="$APP/$BUNDLE/Contents/Resources/translations" mkdir "$TRANSLATIONS" cp -Rpf translations/*.qm "$TRANSLATIONS" echo 'Done' # Copy Qt translations echo -n 'Copying Qt translations... ' for translation in $(ls translations | grep qm | cut -d'.' -f1 | cut -d'_' -f2- | uniq) do LPROJ="$APP/$BUNDLE/Contents/Resources/${translation}.lproj" mkdir "$LPROJ" sed "s/????/${translation}/" < 'resources/mac/locversion.plist' > "${LPROJ}/locversion.plist" QT_TRANSLATION="${QTDIR}/translations/qt_${translation}.qm" if [ -e "$QT_TRANSLATION" ]; then cp -f "$QT_TRANSLATION" "$TRANSLATIONS" fi QT_TRANSLATION="${QTDIR}/translations/qt_${translation:0:2}.qm" if [ -e "$QT_TRANSLATION" ]; then cp -f "$QT_TRANSLATION" "$TRANSLATIONS" fi done echo 'Done' # Copy frameworks and plugins echo -n 'Copying frameworks and plugins... ' macdeployqt "$APP/$BUNDLE" # Remove QML copied in by macdeployqt with >= 4.7.2 rm -Rf "$APP/$BUNDLE/Contents/Frameworks/QtDeclarative.framework" rm -Rf "$APP/$BUNDLE/Contents/Frameworks/QtScript.framework" rm -Rf "$APP/$BUNDLE/Contents/Frameworks/QtSql.framework" rm -Rf "$APP/$BUNDLE/Contents/Frameworks/QtSvg.framework" rm -Rf "$APP/$BUNDLE/Contents/Frameworks/QtXmlPatterns.framework" rm -Rf "$APP/$BUNDLE/Contents/PlugIns/qmltooling" echo 'Done' # Copy background echo -n 'Copying background... ' mkdir "${APP}/.background" cp 'resources/mac/background.png' "${APP}/.background/background.png" echo 'Done' # Create disk image echo -n 'Creating disk image... ' hdiutil create -quiet -srcfolder "${APP}" -volname "${APP}" -fs HFS+ -format UDRW 'temp.dmg' echo 'Done' echo -n 'Configuring disk image... ' hdiutil attach -quiet -readwrite -noverify -noautoopen 'temp.dmg' echo ' tell application "Finder" tell disk "'${APP}'" open tell container window set the bounds to {400, 100, 949, 458} set current view to icon view set toolbar visible to false set statusbar visible to true set the bounds to {400, 100, 800, 420} end tell set viewOptions to the icon view options of container window tell viewOptions set arrangement to not arranged set icon size to 80 set label position to bottom set shows icon preview to true set shows item info to false end tell set background picture of viewOptions to file ".background:background.png" make new alias file at container window to POSIX file "/Applications" with properties {name:"Applications"} set position of item "'${BUNDLE}'" of container window to {90, 90} set position of item "Applications" of container window to {310, 90} set position of item "Credits.txt" of container window to {100, 215} set position of item "License.txt" of container window to {200, 215} set position of item "Read Me.txt" of container window to {300, 215} close open update without registering applications delay 5 end tell end tell ' | osascript chmod -Rf go-w "/Volumes/${APP}" >& /dev/null sync hdiutil detach -quiet "/Volumes/${APP}" echo 'Done' echo -n 'Compressing disk image... ' hdiutil convert -quiet 'temp.dmg' -format UDBZ -o "${APP}_${VERSION}.dmg" hdiutil internet-enable -quiet -yes "${APP}_${VERSION}.dmg" rm -f temp.dmg echo 'Done' # Clean up disk folder echo -n 'Cleaning up... ' rm -Rf "$APP" echo 'Done' focuswriter-1.4.5/resources/000077500000000000000000000000001231434177300161145ustar00rootroot00000000000000focuswriter-1.4.5/resources/images/000077500000000000000000000000001231434177300173615ustar00rootroot00000000000000focuswriter-1.4.5/resources/images/icons/000077500000000000000000000000001231434177300204745ustar00rootroot00000000000000focuswriter-1.4.5/resources/images/icons/hicolor/000077500000000000000000000000001231434177300221335ustar00rootroot00000000000000focuswriter-1.4.5/resources/images/icons/hicolor/128x128/000077500000000000000000000000001231434177300230705ustar00rootroot00000000000000focuswriter-1.4.5/resources/images/icons/hicolor/128x128/apps/000077500000000000000000000000001231434177300240335ustar00rootroot00000000000000focuswriter-1.4.5/resources/images/icons/hicolor/128x128/apps/focuswriter.png000066400000000000000000000143461231434177300271250ustar00rootroot00000000000000PNG  IHDRi7@sRGB pHYs B(xtIME  z7]bKGD̿jIDATxyp՝?{f$Hd˲0lLs&{l?v7Bj7#!䀭$[\@B`YnȲ/6lmm˲-ɒFѿ{gc7hw~>޻Km~`vɓ;+eIrp Ssf'RRӄëӫv- bjōsm5+((0` F_8K@+X#r H=ξ]8[- 饏C 10@ :$iViC(Er{t?K&}'5Ozlc;FaaU9D&0o?Xz퉎JYC7dTfNΧ]t>@<vV1.!f3 ԡew~g{W^ym#^W;&nc:E[.&}نӊk^b8;.E(J~חx{_vWq-zYɁN|6ZDԖ/{ z+kx1GR|Gr#k7\7ŝnV4!z'K,Y A8 FJ3 cyH;.Uqb'2kPy6Nz_Z<F1L` 3 KP>w?tW'?zzw.ysuo *@1SS u%m梫:nt (Dſ> 8(9Le,R^y1g=G =,.e Fhd[է"#P /~8!ɥLAE+^)f$Y!vET>cd ~IGn6ևh!#PP%&E7]XI0)W=2h/}}?:H'1Y{`sZ<шC4h`y^gbM+ 4c_?bnҼ",b3CH1+m+M 'db6 ^&`!,CG(/m;^b؈Va4H mJW ?ypN9UV1 7]48౛[v!ۼJ83Z+Ar_B!$$ƻsA d\Pve^1׍om#@S@U!%Qc-D9/#"AxhwIa1t?wߘ~8yF}==᡺qb^Ql6F<@1+!p >^oÙ$p$cpF`{j\y#` 6c#4ӤZ=w+oRM4#ތ6}q 2-m(m-Qy.1rr@_ދ7 'М0ည5q(3y"}}ev)CyTqx$"YLc }`_qϒX{]9"0•iRzw/GUNr RPӔAkOqV&U%_uD)qx )B>;d:ʢnRg&y4(AQ*;..AѥYFǙFd($@#6G`хAT/ ԛC.#qhfveps18 D̀jRuIKu:sP!g"FBNz|d$޵9ihcl$9W $fl,V&!R 6]}aX^~ u I,/ m dd34wVi `A{,kSK޻ Q<X!U2Gԓf9g ̿8f-h_"_Un  7``&61lbļP.[c<l,0/-{an?k:yv&7heX<*Ns's`ذk3I:p8,CDfc7Z 8|rCET~ r=IQfD"Kk >[(CEH0ܵu*4 bBԢ,a'CT|AƷR.c4?j31(~vj UzD&¯c!SK57k8!oD49 0\?,*nFyϳ5f:C%f5)? M~ie kR^;J uX>W!dQ %SA1x4)c`@X$>wGx5g|3GTw u@2>~6Z\PO$@!XtkvV+!xUR._#hozb41#!ITa*: ,Q3eT+oFA W~_H]򥌰O5#F;e@ P) bҦV~OSFyjRZ0&Q;6B, ޯ]-@*lu QQ9A3z,J*EmlmO, 9"$ԁhAQ9!td] )ta|:YuG"J+|raP|d(~ ZJ7SdiS-aŎ3(~Ci3 =YZ/vO2igVǩ4MV|c,TxzGqFG]6=pPʮvkXUni kN7ȜmH2IaJv4Y%ʽ1Ҫjgx?LkZ+-D i1ReVYhPnG#T2cxr|(p~ѳO_p//e<,Ui8Zuvby3E8Orpxc"ϏwmGcJ#NMb!_h4 x'\-cydR5d16>W | ©G2 =z"gsOL ơ|MkQd;j)JvBn!b3%̑~}t:⠼U+_\MHȁ#䀦 =jpLF{]!24͡HGj 0 ད? $_e™Ҕ>2O ;{D.íRiN #ߩT3"0p.7̒}[|1d!D2s8lp"*<042@?-o^("Xl5|u \(gkB^:,3+ջv_ |U{ 4ߓFHEtSNX$nz a^{RYZLx'xjr3ۢ >_]Q  -aEioqhxӽ[@ n54eLܛRVk;ٍU_M _O4@4 HMbp_4W27_ܰcQSZ^E~`0$7-D.$I`w6ϓlRȝs@? J$uI3\@),ی:@x~Ow_g4{W-s#õ+!˭ Mޞ1&DŽ# ]"+ VqsXEC ~3LOMra_v&<1KmOhj_͝u49`o|zҜ#`Ի7x8Ԡj`{ag1-ކ}̈́Pp;/xb~υs,UvPWbws9dHvG>ja;B5qMRbcm=E5ӄ]$iR*qF18P[:d66ulQ{=ZU3_~aXoCs?Eiz7` qě.X~SUy\0EU乞eJm(\ibEōv%c83x'}K<>|qO"JmWXE-bb& =2BYR%%_V1ȃv9HP=z6VX0WΌ܈^c x$۰҉Le*ٚμeE`E^n 0㜗)), 1b;H3DH$ELf"g9G'V2dmk.6c$Ai\)ˣ 6"[J(]'9!O#qZ@5]/o+opR{XtVG!xf1B#(x=$ ң%ߍM|ޘ#ɩI5<7ݩf/[&|(8>[+ޔ DPDr(*9\{B*|rI4աƪ1*U+_-Y=Gh FĽ>zUIENDB`focuswriter-1.4.5/resources/images/icons/hicolor/16x16/000077500000000000000000000000001231434177300227205ustar00rootroot00000000000000focuswriter-1.4.5/resources/images/icons/hicolor/16x16/apps/000077500000000000000000000000001231434177300236635ustar00rootroot00000000000000focuswriter-1.4.5/resources/images/icons/hicolor/16x16/apps/focuswriter.png000066400000000000000000000010111231434177300267360ustar00rootroot00000000000000PNG  IHDR7sRGB pHYs B(xtIME  c,lWbKGD̿IDATM1Hbq-*;#N.Bk!HSK6tKϡ QSVC8:-[MWw˰B<,D.ڦ]rXpö9K%6ؠD,.\2I2 G~!ISF-`|' M_d' ZV $IУB , 4ix:.HgIPa⤹Ӟ=g(S|ᑯL Q9gj͜P'|#ꜰf$D73Î/iK 1# 3D~-\5[(4Y!E

U߻?<9qǕ_]kjK%2CQ+ϖS_ݶ ޟlM2{^.wZ\?{a0ié]5mF` >ےIENDB`focuswriter-1.4.5/resources/images/icons/hicolor/24x24/000077500000000000000000000000001231434177300227165ustar00rootroot00000000000000focuswriter-1.4.5/resources/images/icons/hicolor/24x24/apps/000077500000000000000000000000001231434177300236615ustar00rootroot00000000000000focuswriter-1.4.5/resources/images/icons/hicolor/24x24/apps/focuswriter.png000066400000000000000000000016061231434177300267460ustar00rootroot00000000000000PNG  IHDRJ~ssRGB pHYs B(xtIME  ,BbKGD̿ IDATMUUif"H8!BE7YbB"4pBqզPPA%)f`e Cs=}_U?Wf`ԑىc3#H Oݞ:~`U`!~hϋJ##hO]yቓ]C 5nWu1dyy(`{51ks!Ϳ1lJOGZ5a:tFJmZ4c+V*~a8 Z[[ڬgCҨu/+@Fr|e?mtgEYDϨCS(EQvX)>oٱ 7="j9C9䐗t>w7&قm=/w%'\ðgc>c>wwzwH%y,*b+~58808;nŨI4ED@BIFd2P]UUڳM۸QVeEwwq{n׾v lp2@{/(~W]9g# }wq'v_fCpƃkfTػfWd2t4G1^sv_M +!agf+4LUƈ^vs B/I+Rɮ~坿@R9L)`abum󓜤cd2@ U3Lb6@ځd>f\p\?&fza7uj;?UILf3y̧0;>giyjؾ("/"= O @ mhh ä'o4_S_kZf Vz'*Tb8D"H!n`(n3@5;Å, ͼxo3B"xQʢ<+?TS x)_lO'vI'P7Z9SXRR/Q<n?ԕnz_T nQO#~N,L2/~t7 3̎w>"R g ;w˂I^^ϳK+ (Y%>O xu rbV4J)o\unːv%  x5R-_}sw3^,9‰2ټ20{[## 03tקKW1JWĜi>PF/_#*/hzˉֶJ/fwrp\|,?W}㡖 \g~a4>G;XEŀD˥VT ګ~gťʱs3\n!7]ONN:0@+W|/rc% fMWcɯ~1~^Fٜ6n֮p!,BJĭW|hdPXQn2$ J u78@RԊ_i ~D =A$){X_ ~yb&tp9F fR$RV[̖ OtYkZ`q  k5֟qI@<ʚ"a: i0=^}D"& 5jcco5Kb~CZH RAR}07 j0Rп0 fѧ#6ɐ{M㊥}qTJ N?O f$XD7busϏa4mC \QE,H"M3 %-\Ӏ*,L)Rʿ>M{tx1yy2wNGYn BOD"mAcAܣDK9=w(rKp"(9'w.nnc.IK(Sw0i-*,Pqk=ˮ18>/}EMFEbF,ϹF9|h?~xq0@W|k~br= /iP~_5D[ %c BSREKjL4 W^[QNk"B] C-<ֺmchU;kS޿t.:`,A^0>4&d9όP%@ӏ?;='<\}!)qXw")UcUt/ 3 rCQQrwW7d/~Lac.*vEFtUҙDT/Ra= Pʺ3)+nncavͻvMe|»XWbѠoKqnI\QB=Im1<BU+ ̡af3Rx/nv)Tb%+rm߄McPv }A?\3Kx%N c>Ⱥ}slVn' 5^5وhf~_Hx=tF~_N"XEL=v}pRzA -JMTijen+S۸+xf<*O5/c}.^w4Mx ֿ-KpaoLx/ C;Kw~MYm ]L}2@Z^_j]FWxDhތ DPJcc9@/TRrw(NXrszίzr cT;\( L)rUw'HD2/hWr|N7=%_ڜR3_D$ّ|CYuƙQD PM+PI5& 9D@gX*N 48TI}ưbEKjPW:w{]">A>s]S4@!2!;%Ma*Ь Ռцl[ֵ/N߳mo6+;T#/+gz苬MCT$" m#O$Kys"Kr`yy$@kOu92\7ʭάFx!_aOD   +i\ZBwtDh:(MGjSg ` ;"d/`6I@B_7އo'A[&i:#Yhutd9E,x/ 7g ߕ mfc}8Kjf'1HjJߩ5s)'z`xOrN KEr["XR'ּ }M& QާF|-޽BQj~{ "oW>x}8Cǀee}Z |_]R0>*a~j(նuݻrmo[:r>%0ڄPXF;fԂ[00GB7 ;7Á ~ht:;@JDYC< YLU52(i)b `i@Bq0@a Qs}dOpikca^~pDm\L7j2a"632ڶ-p3=P H^bJ5*W dck6| Gd*l) %+@ qHG,ҟMK3A 32OOQµY*+b&u[hj >G:}i5#5MpMwgݵ-2 f˵0@8R"Zir< %fOhzB7ı4i]CJ!p-)I&Z}._v?]'l/=>G?-E cd򗚤>.eTh 0TN@,Cj[҃mt) #ՆQM0zE+e1gKmJ*),DHSTM#5a b뺼}^bgif_zTX]a~›ESK 5Rj>F.\M%p>l/L0DS V=ej,0[vM~;ADx$VLezݸ$@15A+L3͠lSDe]&$v(w?yl6?rY1jJ@[BϞ޽J Gk瓪 jQ"x5N"g\_G[=Z[2=0z6p j,}A#\-ߝ0?$-+yQеG;iMCS9ě"}~2/ @$V~?:99ƂA`Q,g@ڔ{971XϽo9\iߦ-1$b~s3D F6Q=AHzRSݸj FS*{_sA0<ZSoue|BYjxq0PHmdOc1[o;L -R1u)mğ#TNuudϏ)TC=\(P ~)TpBC8uZBI!'}--qn !WDL-#QҚXFB=̝H"W.KAjQu&zE L\B_ xNj5 nP@yEJy %okzY&h6$0.pR[71Q= 855q(viLı c#>t>ORLNx>K]wFBImEeHԈ{G3hd*l\{UA[aب{I|ucz G̰nJ+u~FFɌ+xAR( IgKC৯բ #T&\a:A\F; 4MѶts2<1H]WK#A%wUwڈ2I)GWm'< PY}71Z». ycpT5""kgg '^v Is* .g0$k^#UW(ws?rRdk m:}IN&rõe (^4l0- ⱳk׽/(KPX25!a5q~ȆΪ! ю~6@T O~HIK{h>]S[J4G-lљ}HlRD5GHxɏ1$'h3,@7#UUwU>؉ٰTϓdR&(g<&P;~70RzbiI!(X3u5r'Wk :F"Pp e_fNbw L8n TS(2#5sR+Vji9h"$4D&sԵ`N~t](`^$M QDUQ53u:3Az=㪥b&6t?6u-`6p߭ma/NJ7vNgf-J/L "c8U4 KD;0Ա`Dؿp0 ͓q" l0! /Lfg*-/ În.:{xJ5ޞ^5X(;VhBFjpO] (S%1d gc5{wfG8 @3@t81RjBp1h RMrFv00ưZWc!ẙ+!xDXkj9nˡ$N]w0)i@M^oP  A M* B$@X&"CCO)޷GR; ) p4Dcʌ/8>/`O~@Lxes_hڗHhd3/@%LCaY rKV'"vXڗӉX 4 "Agp/im@$d%mԏд/GaUv!]7M[~VKcrKfIR#T/Qbfi_YKsfL %_ZAt1Ц5Zn  7ҎO,J=2AތM+qFZE53/N"BnȤ3 @ѧ}e~+jG<@Рj--Լ;D " B_ak UsPl4ª?nV (RX-ia(Iz}yȎ>]2J:BgIJӭECm^ z31SR ҟq syr^{ש;STv0|`VڗKvDe*?.5 xu?[1Y*2U@e\Zea9"Ӊ+,Xzf-ʦaU^"i@(v P]Uver(Q4JOqGS(97; pCtWWxIedu*`xY3-<DJ VHeyw}j@J;P ȇ/{T1;ѮLKc@9ko-$BE',T&F׍İ迴Ү󵈑Ɯa7;K-AU\Kث T%Yl-G6گɾGP_" ;\zU`xiMO` T11:!2L$o, Ɉ>C|4*"oX=3$<)K՘A).dC"A𸄾 ƌ\6F3ZcCכ=l`2vjR) v^BL!}=Կg~VHF7 1aLu CʼEӮM/@'ƴ#PP+#/L 8 46dy/l@?kС \Kv_/zwJw{(r QoO4D$BR ᮠ 1jow =?1$lOSwܓ4 Hm^Ɇ\ma&,51m4} )CiAlRl9 q ]]^SQ VjP>MOf8+/ Oͨi6~c ]Auh#\('l?`bYB`qB3Q‰S{a=) !;ۻVT@aj́ ySP.UQ@=[GfӯH ]A ՠmDupKTـe|w٧{c˞Ce< vsR=EGF F aBAaLwP"3Q\AF\~T汞Dw xC{v r=\1@0.`hB uu`5+ q)_\p_B93oו@8J CTJ23膂\A+-@veA~C</ɷL "gז3Ng~4Pڠ((Yߤ1qήV9f=dM>m7Kk-@|C/Vx7mŜn` BAtyzԞ98WQ.-!r`?ze&{G%V^;KK^%LjCáF\A:H=ٶA_H齹Ifʿ~h3?D@ٙM)8"yڤ ˯yD&(S g1A*4# ַ՗+-<%{}Pĸne(U{/`IB\AWQ1/X׾UۛrOR \U̩-k Y~a 6˷]>?D ZNAqu5nP9 df{;z+(V[SK BKĒV((<,@<`{),pAh] " tO|P~_QJ~xZo vJNBeUq@i.`He( uHhS>BN v7=]N"}4\2T% 7O]L(HGc`T3(I-I<7TګBq!Y)] (9/ЗuwL( bAN{;4vx^jo4T*?' W6'/r?`)N`v^ lk m٩ \M&Sݟ s;7jR_-$ d'R⃃ zZof5c /cϬ޿Ϲ^aRmv;ֻ]Un))-K|p%#4!2t8@ /@a\}TLxz. [hڣx" ,Im@ByE{L;iݝAݽ#*m+\<({%]ٽ]^N!$a47Ց.l&Vwf)t`},+<>D.L9&p>?u"CݎCHc4 W}Q@N;@{iDLKz_tiBkSSRI7 ؗZ_N}b}@fVpt 3*W7ne>SFH v}m u[`&G<ɇkU/J~ hs5懂p/+=Bl; \Ϝ0D`C]G_zfO.2%52H1nhKser,$D d41\k3+Ph.܈ M$h>5\gJ<\=mKI#lJOn=[v/ y%PY*]XδM073vn-~Z*,P*Ѡ0oR W0#I_䯍z=&zGx"7124$R0,?9$,ornYl:g,e_`vMKM:vkh t0[# 7('V[GY2FU@Y?vWmDŽV *IQL9&`!_V 0it_&ȆӎrT:^pkFM7āFjm7v\@۽˧  61W%F ݅5[oJ! xcLK`9g(m6tő8H0@v-_+n s%igwsupįq[O-8<% 9 \>h9fjƟM욂4e >łf1W)wlLGx P}f=4mQtn-ea\@anDPԢ"+3vJӞ4 %Õo I Mchϩp)StNjc"`,(x|P@ƙFx|{M&c{R?s7KkG!%mKOX1@/ \6X}Sկ(Ցw˿]Ki"7A l~m ?ocb^AA&(N"#(7XCŽ_9_ h @XY ~繴V`&=( EYA~ir;|Z9A[ ;Z%o|\BF-4c%}0WPFEeD s'(JٳN=[+E d(pEl5 $.e=N,t) 3pڪOUxomP6N/eeg+O&x_Xp5 |[,& Inh1⿙?yl_J<чKI f(_{i7Z,#iXDTՆBʘ`Zpj6bZ@OA~cwo4p\3ʬ\X?J `!6RK ʹBso'cmCvD<}5&XP\rϐ² *"?T M[b!N`}Y;#mN7>ybo)O_f?Y }ŝ- ͛Ƒ0v4sk P0eJ(Qy(PHQkd\ȕ6wuǾN)%w2?y @x+%yhgLAZT]P^w{Ӹߣ@yr7?pIYYKCIch-pʹa}F2F/MmOԑq5W1wx5K)н<`i4 W/t e` (<:BӤݔdWqfYx SU~Rx|xV;[)8X#񓨄䕜Y,ByBz??`ynCɤ$3Ef)(A8Z4 l@;]Be Kx%g[a".e6h_B8\KIgBHrM87y11vx>Mm -1,>fSdm?%"Qtp(AqK$K9Ҥ_B 3FUabOJm`{߸Gc_؍ G??v}孿tho9n[*s!Q ~{֛y`rF[B^/ hJNp"r;ν/%~Cдsn-g\MːޖZMzzcp#hAn%V:NQ◬;q7yЉr^?p.L H528T>\Wx8WSo*,1$lΣH~7Qĵ1Ѯr.#;yx<sKir_SAaKza1\(Usv?Y8DR<'P<)- 80%~^`3qUg7Ed 7SF66qL(39)c#]K!*woNY3jUQ{zZdŜf*(65+E"}_(2>9t>5gf%Xɜ̱'0(̋yx9H med鯩hX ^gɀNe ,Dcɤo;x}Mrd G<GBۼ׽\sK'$Tl餝v頕q T_O?dM(o!_~u7.W8pqdk{rQn62d zza*j#F8h]y͌?lT 唺v)dx﮹(IrJDǥo鼦iԈ Fy鋓:Bs. qYP|%l]Giv~ߝ |$,𤛈1c/o;x~8`e肕+XvhM˧0hY .qAx&HX&PW~wcV4LY笘qF+IvVV~׳68es\3#!dգ[x1'/-Ώy1'-D&Ѥ4aD@[Jv%=/c>c>c>^Z}q_IENDB`focuswriter-1.4.5/resources/images/icons/hicolor/32x32/000077500000000000000000000000001231434177300227145ustar00rootroot00000000000000focuswriter-1.4.5/resources/images/icons/hicolor/32x32/apps/000077500000000000000000000000001231434177300236575ustar00rootroot00000000000000focuswriter-1.4.5/resources/images/icons/hicolor/32x32/apps/focuswriter.png000066400000000000000000000031541231434177300267440ustar00rootroot00000000000000PNG  IHDR DsRGB pHYs B(xtIME  5&0"PLTE)))000GGGNNNZZZqqqTTT^^^ppp[[[|||UUUdddnnniiiӑRRRPPP]]]xxxVVV  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCEEEFFFGGGIIIJJJLLLNNNOOOPPPQQQRRRSSSTTTVVVWWWXXXYYY\\\]]]bbbkkknnnppprrrsssvvvxxxyyy{{{|||}}}~~~򚙇9CtRNSLLLLVVVV6obKGDo0OIDATe;le_ϥ眶rmKJՈB"BH#&$N11:I qPG"djoI9P.bs^<@1=#QPR7[l QoK7p?KC,5+H\ &׻_:: Hi?Cn]o7t<Զ`nmS1x{C?:@veo?%Ԕ_=̧@Cj!~r 򭑏k1[e B+m颂՛] q`rlzvqqvzl^t:ȱ\8tidXIENDB`focuswriter-1.4.5/resources/images/icons/hicolor/48x48/000077500000000000000000000000001231434177300227325ustar00rootroot00000000000000focuswriter-1.4.5/resources/images/icons/hicolor/48x48/apps/000077500000000000000000000000001231434177300236755ustar00rootroot00000000000000focuswriter-1.4.5/resources/images/icons/hicolor/48x48/apps/focuswriter.png000066400000000000000000000040651231434177300267640ustar00rootroot00000000000000PNG  IHDR00 1 sRGB pHYs B(xtIME  RbKGD̿IDATXí}lVW?/PJYk'R9ˆ`XLF &,!Y E,e8@2*a -mi羝{>xO<7s᎗/]][^T4hK}ts/C]5eVERh'c#;Z;@0] N׬*f69L+L`)*l=H{ȁʬ NpqC+\ DD5Mb+^ylHܷ n$Nr7'(%b)3\kݎ`?3mn@g HSI h|[}N ߹_Oׅ x\cI.i>LQܳm?ׂ;ofNjG$(j!(<<F` 8$RQmZ{;/|rDx<'c 0H$(\ # *:/`Os&gծWYYO \CMz^n>~8EE]z\I2.IZQ1JiU-Jy rU=. 9D-!P' j9D?⪖ oPC -uʞOI`D袠E68udhJ%3ȖV1 &d?65x`X4 mPkq+4ϮJ@mc8_G& Ƙ"YU*Q8F`ohB|RVg!͂ dhh4!q]۴05f e ަ.|Q r\Kv3)s}a 4%#T jBE#pV` W cOZx|DUDb~j'xX`6uAϫ)/SXu%Tlt$BZ9KmchKZI*/U@! q(@d?n" ӀF U &i;FPXc"ꠜXaMRB`2 J\P|I*L,I.Iy0Tu%@D%Z(X06 u(.i1B8D*5 &8^&rb@E#IK(ʩD"Q;}ʲAbh@&(4|Hҭ&sHXUA#jrK7H XhQZB͟BQC$0p#cV0>3ƻ") hEbabHa Y*"/Ph|֑F}(9@eȘ`k Ģp&Y"47o-Ѵ}Lp_@ⰑFDI(xolɊ)NTو0NsiwB s9J&ETTq d:?A~f@0nʱZ]&_.֩"d\Lf3#]=Q 6Ck%wv;63/NZt;h*0[ \~*M gY ĦsR8R|Y;lb <^2ʕΊTĻ_jd"%`U pOq 3.ڸPiG ee l.@^(v{r{g0PF!is\`(- %G -!A/%_GT zC#پ'\^{ s-AR\%z$ _,IXG|.)OmJG"r@bK|Ed@ak^eKB JQ˄\}8L`2!"2߆@4JC2(ψM暶 Os!pCACD4XN١|Eܐ7}FB2I p'mR ]#$iud62% *0+D eT6eDHZ]r(Cj*5VveeCiۭo! K r&5V$t{@ke]jn!Sc 9"h Z7p*,iKt4;>HZ,[$}#ir Q'Ůw$l5CrK%K&۴3\@s5Y%bBZ'2i&-)qAcإq@*̨FuyM5S6sDQA˼-)u@S(x;]㖣@ͳhض;wv]b38qLjIg#g@94uA'J=/mՉ?g^g9k?Q_ЮUug8`EBS2, G9VQfEfT8gձVw17_CDXB(#BgE_pۣ87u~RDn QhnI(`WvD/(IH2)EDI2A^6ҪǶYPHm34!&0=B氐X>q@o!=c߮'i=UF$ԂD3zbH퓃 |e(~Ah->-Hܻn,|W6ULy%XtD,`~hS!6R魝Kzl22soR\,ӲC(}Zue&^pIjZZLB F,ݜ#x 'VM{ŵU5Mr>אe4QN @u]kwaַőQ1I͛>vݚjy_D2IENDB`focuswriter-1.4.5/resources/images/icons/hicolor/scalable/000077500000000000000000000000001231434177300237015ustar00rootroot00000000000000focuswriter-1.4.5/resources/images/icons/hicolor/scalable/apps/000077500000000000000000000000001231434177300246445ustar00rootroot00000000000000focuswriter-1.4.5/resources/images/icons/hicolor/scalable/apps/focuswriter.svg000066400000000000000000000113331231434177300277420ustar00rootroot00000000000000 FocusWriter icon image/svg+xml FocusWriter icon 2011-11-11 Graeme Gott focuswriter-1.4.5/resources/images/icons/icons.qrc000066400000000000000000000007161231434177300223220ustar00rootroot00000000000000 hicolor/256x256/apps/focuswriter.png hicolor/128x128/apps/focuswriter.png hicolor/64x64/apps/focuswriter.png hicolor/48x48/apps/focuswriter.png hicolor/32x32/apps/focuswriter.png hicolor/24x24/apps/focuswriter.png hicolor/22x22/apps/focuswriter.png hicolor/16x16/apps/focuswriter.png focuswriter-1.4.5/resources/images/icons/oxygen/000077500000000000000000000000001231434177300220055ustar00rootroot00000000000000focuswriter-1.4.5/resources/images/icons/oxygen/COPYING000066400000000000000000000227151231434177300230470ustar00rootroot00000000000000The Oxygen Icon Theme Copyright (C) 2007 David Vignoni Copyright (C) 2007 Johann Ollivier Lapeyre Copyright (C) 2007 Kenneth Wimer Copyright (C) 2007 Nuno Pinheiro Copyright (C) 2007 Riccardo Iaconelli Copyright (C) 2007 David Miller and others This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library. If not, see . Clarification: The GNU Lesser General Public License or LGPL is written for software libraries in the first place. We expressly want the LGPL to be valid for this artwork library too. KDE Oxygen theme icons is a special kind of software library, it is an artwork library, it's elements can be used in a Graphical User Interface, or GUI. Source code, for this library means: - where they exist, SVG; - otherwise, if applicable, the multi-layered formats xcf or psd, or otherwise png. The LGPL in some sections obliges you to make the files carry notices. With images this is in some cases impossible or hardly useful. With this library a notice is placed at a prominent place in the directory containing the elements. You may follow this practice. The exception in section 5 of the GNU Lesser General Public License covers the use of elements of this art library in a GUI. kde-artists [at] kde.org ----- GNU LESSER 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. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser 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 Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/000077500000000000000000000000001231434177300234445ustar00rootroot00000000000000focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/000077500000000000000000000000001231434177300236725ustar00rootroot00000000000000focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/application-exit.png000066400000000000000000000015121231434177300276510ustar00rootroot00000000000000PNG  IHDRabKGD pHYsvv}ՂtIME  )xoIDATxڍkTW?7o^f2$'u\4?Ԫ *Em.ڕJv]A6]tbn\ؒt!313̼_yxt!҅spUk~hݛ}[ `w{je匪_t/5E ʹTΝcX$􌷶F$:@'E|6aD\I߀"[JT6Cd1:Fg0Zby_wV p~r+s( Ey_Q[¼ m a)s [782ٯ.&m2dȴ P7VjrNr*ji?1^.i;ju-_7ATV=buwp"@Al [YB$CZV;[_MxPZ#*jR!:yIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/applications-graphics.png000066400000000000000000000017041231434177300306660ustar00rootroot00000000000000PNG  IHDRasBIT|d pHYs:tEXtSoftwarewww.inkscape.org<AIDAT8]lSe;==iײ]@jqFx1I7^(&C1Ɛ`^@"1 uL,A?[_e?4nns9oO睉 {>{nQIvɯ.l8oj|P.rs="^|U<&c̠<;f;$ qAVdNjύk;n}4S˹P׼b1l!їC{/.1`1BȃhQ`t?؄p 3-÷e]B:~Lgmx{B<'+_m ڽW%t޾PE7bpp2mY?}MQ˚gd\{d떗od]bk8_lK++?cc[ɂfPn!<|8iP,…f$?IA!}@^T"!7/gGHY%A@[M㣞-^BC; +ȆhK o=VPl`@Qpesc80u QzZA8p!WCƃ_͑;N#xBqKpgW6 4" sUiTgxv5J$ZY{TNΦ8I(!%pvZU.}ʇ@4h57=K3KIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/arrow-up.png000066400000000000000000000007441231434177300261610ustar00rootroot00000000000000PNG  IHDRasBIT|d pHYs:tEXtSoftwarewww.inkscape.org<aIDATxݓ?/CaƟE{{oҁQ: LF `E:wbH_G0HϢA%LT"~Ot_NNa ?,c+h×;dž Oxj`_U;SbĀysU{5f:pt2i~x4#LiYs}+0/x1OB(0I4MiH" 8'mjj ԣNZb{SgX({PR@@ukw +fCH4Y2Њ6B@%x+3kt"}#DL2^T.hORBk7C0#4L/m2j8IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/character-set.png000066400000000000000000000007561231434177300271350ustar00rootroot00000000000000PNG  IHDRasBIT|d pHYs:tEXtSoftwarewww.inkscape.org<kIDATxڭ_+Cq񝝳ڟJ Zb-+N š x<R.vhjyhm\p(ZJ{w.|kߟΑt]5 IRy\Bsv@.0 WbD2H]ǕoQ֬sP@CAcVd:Xӗhve ne(7r;@֘󨪗>c5ȍ#{Q&0kj#VᷗrjFP<8@'0>=}NW !$VU~4 BecEhD@NVsS #18k 88 *HF;Jc;|$,xIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/chronometer.png000066400000000000000000000040621231434177300267270ustar00rootroot00000000000000PNG  IHDROc#" pHYs7\7\Ǥ vpAg\ƭbKGD XIDAT=TvRN< 8P#V"XlΊUҘ"V2R ; FA@@${GU*Y]SQTSAHPRve`xPrn\!7LZadu,~h F>|!l#=ۓ4SE#HpOBBza[,Gs2kIbebJb!~J"/-6eʮ;twtuwXQKY56`40_0]^Pk+wn@』t|6w8uqVuBnoDsnk3θHIJTO|o ӱX~LzL'fR}RJR!Qx=YʛCF:t[uZ$\o bgX#>=L `xYb޲~nbIxNˌJTZuU1UaЖBALICG2;D#얊Wq<ב[wViu:sw՝Hȳ~5AWF,!3_{rs  ȇ@2Iobspp'078$DDeWeut_CNf n nw\y,IAI!k*} 3MIgf#Ȟ;O:N:;L:Qpp'0W3E`nB#o i y=_Jvedx'zxOz櫓u!oGH`nH0H@8,|ةhVDӲuX,*b ]z`z@𥀊Eث\T4y7ilE>Y*94}li@.LsNs0W AMcX R)o@{Nˋe#5B vYg=j"Ns DЖE6޿IsPY+u;J49Kk\`g.ܹ8b\}$;6zmK}"eYI;:8t=>ujsh4@B,SSS8$[Kn*1\\aLȞ} B |Ryj!46k||%R~O9A"wK_?~ c͍kW(0ƀJ ÷2Y@(j#XmHi)Lk*! Bn Mq,AVx '꿡i ?6@{Ȧ m3@2M!6i }/DB>T` tIs w2ۘr$%2'b0ve~,#NXo*IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/document-print.png000066400000000000000000000011531231434177300273500ustar00rootroot00000000000000PNG  IHDR(-SsBITO pHYs:tEXtSoftwarewww.inkscape.org<PLTE NNNWWWYYYZZZ[[[```bbbdddffjnnqtttwwwyyyzzz¾ÿMtRNS  5NOS]IDATJAy{.1HP"Z+bcFP!jC:h04#3 L(XBeV6菇z*ֹ- ?zyW(޲K&}h'eY_2;%Z[V%"V9blY?_vϸjj[q L4JڤIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/document-save-all.png000066400000000000000000000011731231434177300277220ustar00rootroot00000000000000PNG  IHDRasBIT|d pHYs:tEXtSoftwarewww.inkscape.org<IDATxڕ1o@KmEP~@H @bJ)ځ_ЌH8FIPpjDZεCRU{>E +1V`aL[P,}m~w݇0`~ /{8yh3\ -=J*"$wu1N8J;TBJ=plei9e f\,y uxgީ`&Z2;0eƔve=z^IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/document-save-as.png000066400000000000000000000015071231434177300275560ustar00rootroot00000000000000PNG  IHDRasBIT|d pHYs:tEXtSoftwarewww.inkscape.org<IDATxڝ[HSq?l6Hl 2X-SbF$(GADt/ *n%/vjs,9y@]}v#qEkAyHM?Y.ϯΙWzd "@lc ) &N ^2(EʖqMuOt[}>eH"a֠008y1d +O7# 5 UUEX\8 &ȵ<ݚF(eߴ$2bOMhvTQ~mG֛!-/0izpp=RcL~M.G/Cl(SɰH23%Lnm3sbt.6 p ƻם4l[ޡ/(LY{Do<'7 jl\q%"wVK?}X6FA?'+g$Y8V6nt^~n38 rIO7PqB:EdYy`DA ݓl'bb;Wap:B!խV+X bqJ5 $r&Rń^@$уQEG03elYŬl.*eJ@d}iiLB=rY' W>3Gkӛ62d&VtIrpA=F"D4h:Lja|:$_t:ڃiA*˸8;e[8( +59G>!y$qc0Ma@uѓ$ުH42mJ 0mf[@|5 VA^Q<@R 4 PO\IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/edit-copy.png000066400000000000000000000007451231434177300263030ustar00rootroot00000000000000PNG  IHDRasRGBbKGD pHYsu85tIME#;bgeIDATxڕJ@g7^<VTJ%w:l蚐||owV|FpXH~!CMW71`5U7 A)8٦s&q  - v9Nȩ5+/FHl61sH VV^# =y" 1L{U3gHS`@l6`> hBD( :z=u]Qݬv+7ggZ?&ߐo$ fY /_ TJa8Q)hȀ4M1sj'w&65*%~.W8}/}>45 "[hf +0h q{+}IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/edit-cut.png000066400000000000000000000005601231434177300261170ustar00rootroot00000000000000PNG  IHDR7sBITUF pHYs B(xtEXtSoftwarewww.inkscape.org<IDATxm1jQE@M. 2L Hkeq@H3CAH5AEs/ݏC/3ZZFQ6Uc¤+aRi~ev4[ [Jaf33%\dG="FRh̊b-ik`eM.0ʛ[_m=Wn†xㅎюߡzN|(!Xsr 䋰(IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/edit-find-replace.png000066400000000000000000000013211231434177300276510ustar00rootroot00000000000000PNG  IHDR(-SsBITO pHYs:tEXtSoftwarewww.inkscape.org<PPLTE!777'''444999  !!!$$$'''(((***777999:::::;;;;<:0=;3==>AAAGGCJE2JJJMH7MMMWUM[[[\\\aadbY=dY7tc-xvp||||}r}BI-w}ֻZѵZˤάܼOPiSۅtRNS$9q~IDAT=KPys =P)hD: b/DZ4HiO^C-I 8Ri3_{>;(_N|3:`71Ԓ毱U EXmhb*%o/m7Z3gr}hG8  | _D!IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/edit-paste.png000066400000000000000000000012311231434177300264340ustar00rootroot00000000000000PNG  IHDRasRGBbKGD pHYs B(xtIME EJ4IDAT8uNAE̼ݵ $,T LP \LE|FJ( Ȃ4v, 6ٗq̮w3̫{* Gg^RkZJ~_OOO3$Ex h4F⢪&IX&Infii4811AC{L] p"8 "x5 c9kF~@!DQC1jsxY/9~^IZ%"Dpv&˔,>5G/oﲷ?vqQ$Dr @T.$ ;;p `xY' _Ac@{IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/edit-redo.png000066400000000000000000000014551231434177300262610ustar00rootroot00000000000000PNG  IHDRasBIT|d pHYs:tEXtSoftwarewww.inkscape.org<IDATxڥKTQ9qhe_T4Q- mڴ.uAˠ \MHm /$#O33{ܹs=oE9}[Č5j'Ӗ!D )L)^?ž6:,n"(ܱ.[m]L x!_ƹPGB[|a[OM3" S[Fz}|p Ci!~, sЀܨݾC3יő_;-̀:W Hv<(Y.+[G0TDїiiL>VD4a @}sAZс[-g8hY0F.‹ݑ 킩!f6[C1csvY:jriʾ`9[p{GdrE57DY{*O{* &Jq _L>AbPHrg5@PeI?H/t(IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/folder-open.png000066400000000000000000000012261231434177300266130ustar00rootroot00000000000000PNG  IHDRasRGBbKGD pHYs B(xtIME 9uAIDAT8˕9kTQ댙"S`$6T6)  vv"V)L(q)рLlIf{X̛%r/٥H8 KO_;7,2yN\Dckj"b(tLkO]qJ* 'S\PW^T=ceurTjuƒXn6Pן7NyJ#}6fYy=KzたٯWY~x`ն@( TlH^륉*çm}<;;lll"ưZpfd DPUre||?/7>۷n[(`*DA6@2CK4[SZkPCeX<:@M{}X b'ԇ<&JW0\bl7>Q }C"9|Wkη? !LqZDD#!} ApAP jAADE9 sFIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/folder.png000066400000000000000000000012141231434177300256510ustar00rootroot00000000000000PNG  IHDRasRGBbKGD pHYs B(xtIME+6W@d IDAT8ˍKUQ?3x,E,#2!Ai׾]&6IQT"FB(D-z|̴Plgb/55})yEqBu}ȿg+7|$sT$  K׾;T'b8No/WILyIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/format-indent-less.png000066400000000000000000000010071231434177300301110ustar00rootroot00000000000000PNG  IHDR(-SsBITO pHYs B(xtEXtSoftwarewww.inkscape.org<PLTEn}`nRRRtttTTTqqq`VVVppp}`v RRRTTTVVVcccnppprrrttt}-*$J?@'<% 8%4#fV pgo_vh uz!$׌tRNS..PRttЄIDATxڍP@k`ݍ]O| pƅgw7Ԯd{'nk4%8_Ohq$TmyF8 j?S/xeY+ v!L}Kqs;BIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/format-indent-more.png000066400000000000000000000010141231434177300301030ustar00rootroot00000000000000PNG  IHDR(-SsBITO pHYs B(xtEXtSoftwarewww.inkscape.org<PLTEK86W54?86b$-z/K86RRRtttTTTrrr?86VVVpppW5486?%n* f#1|/PF;KWb$%n*-z/1p5486CyRRRTTTVVVZ[@_a cccdgm:ppprrrtttu$x(y y V_iрyZtRNS..PRttЄIDAT@@ѫw!" Qf<9~%/ B\!s.Cx8Dh%4f&iߍU FAͻՕ-\u YRP]@NLQ0U[wXWh_r8пƻx[G8n\=َ Z~erg-RIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/format-text-direction-ltr.png000066400000000000000000000010261231434177300314260ustar00rootroot00000000000000PNG  IHDR(-SsBITO pHYs B(xtEXtSoftwarewww.inkscape.org<PLTE]" g&"j($l)-z/)s,86[[[qqqxxx22Z!.|0]"$l)PZ!]""j(]" g&$l))s,.|02286B{[[[[___ffff:knnntttvvvvJx|||_] }_NtRNSG(gIDATU@kc[g|u W YDx2mx,y?_CӜ*%uye Vf hmt¶r 6"r(@0b/Cp)P1"C`IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/format-text-direction-rtl.png000066400000000000000000000010241231434177300314240ustar00rootroot00000000000000PNG  IHDR(-SsBITO pHYs B(xtEXtSoftwarewww.inkscape.org<PLTE g&$l))s,.|0.|086[[[qqqxxx$l)"j($l)"j(-z/]" g&$l)P]" g&$l))s,.|0227686H[[[]___fffiyoIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/format-text-italic.png000066400000000000000000000005131231434177300301140ustar00rootroot00000000000000PNG  IHDR7sRGB pHYs7]7]F]tIMEibKGD̿IDATu+XLFí˭ꃨKHt]1u 7?h)XN{ Γ{^/ ;]l$gwtYb3QT/gSdw<Π~=4pC!urpA-R.qK1VxQxF1?qUO)O^pq늌&۸]Ԑ?l![IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/format-text-strikethrough.png000066400000000000000000000006711231434177300315560ustar00rootroot00000000000000PNG  IHDR7sBITUF pHYs B(xtEXtSoftwarewww.inkscape.org<8IDATxuKBaEkih jkkupsA)ʢ!E(6?  ?M!L-I"JF<9yc@eܜ;  yմDWdx*iH4$Goxkǣ,-Iiyg;OYP᫵g-:9nn >D4N5yAÎ&X"%t!C␔$iNOIF&ڶH8rdJYH# ZATֺYe|N9."+nʵYdS{/9"r*9IURr(c_$=yIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/format-text-subscript.png000066400000000000000000000014701231434177300306700ustar00rootroot00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDATxڍMHTQ7_范)S i#8% JeZHS & ۸A)"ܚ},0RL7#d*odjJur>eww6 7BWJssMOJNNfa44SSS{ {윜E@wIll,. wW"pv*###tttڪuvv"y}۝z.mll\OSřb0k?$9l6 (ʷd2ysss#ź 9 p/..Q^^*_f-QxTUUa6 B1<<8] AS𕖖bXg}{{x'ܬ̒5ZH\qvA r)&]]]NRoojYYY]5d%N&qW R4??o[,%^|&]wƥ o!+n)))u9*sUTT'''$KnX B`fY '&&|2 N'AUw1t4q<|!ʌihT\\l#ŒQh5[t-p(]ϙ +rE0b0,~LHEG +R F?+"IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/format-text-superscript.png000066400000000000000000000015311231434177300312330ustar00rootroot00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDATxڍ]HSqƟstY!QY&IfA iˆ]DQ"H@ a܍ 4Be.gnfGw"n|wqy2/"+5AK^_i}@$K+fJXd2p8`0 Мj& YַifAVC*eY( ZHv><]wxRHp޾@BtR.˪a6QÏ$7_Ks/*T*5[AuY6>>>oX@q=p_x&5vttp LjJUdfu (pkoogܧy԰& sa c$~/OX>d@ʍpd2=mkkd2XYY,~?ZZZ@u8qmء\L l6zH$щJR(Lbu1 Skw^л g( ZN477s8H$2oحt|$I򫫫| i/M~ccollI G#b0 #ahh(h$tSB`쒰Ԙ!q8D,33J\'Gd< GeJCIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/format-text-underline.png000066400000000000000000000006101231434177300306320ustar00rootroot00000000000000PNG  IHDR7sBITUF pHYs B(xtEXtSoftwarewww.inkscape.org<IDATxu=KC1a8GKJE=UA\ P08 : N(VijsAE&]*5j"k2}&TK d; 0d[ڹ|<(ї6!d /5׼ X̴l4.ybn&͔9>)9'¼ޕ"ma+B݆4C,Bh+ PF x3';oh5jf T)) !Ffn)Bi' #^Yh2W4<,5B]C@h[[tE}, ld4ʔ_[z.d"0U[}0DExGW/{f LE{lr$ҦRc~)aZ'/LD5= { IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/go-up.png000066400000000000000000000012401231434177300254240ustar00rootroot00000000000000PNG  IHDRabKGD pHYsvv}ՂtIME   (-IDATxڍKkSAߙs9''ըnRSۍXt պ'"]X)-وnʅ ]UĠms\Ƙo=1v Oݹ-bhj=1#{u)G;5wN!NQG3;{ OTc#N&ikؚ`lj`(5PWUD67/v݁../tS@#ݎ???U7 ?q jBb ]`qWzBi&@Xv7AkCB0AHh _k&=R)LF~=:n J  ե3ח*:GU[|Åˏ3Mֈ|gyuK0}jXTӤM5a[8(%hD`FR@HH MX|_+^MI0 ]Af<.R\(UH\d IÂv KD\s*J"˳ CaX}B0RB0ɔ 8!{p> p, d dm&e5rf|bf(( h J$ Ƣ&XOG3q6lBp-{T U"價@Z8.t"s@|BoBQsyDTڹC"MC.`G-,%/t8`4v Cg J`$gu>?98k! 7ZTVؔeZXMƍH5¢ʾ F ,^*B IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/preferences-desktop-locale.png000066400000000000000000000014601231434177300316060ustar00rootroot00000000000000PNG  IHDRasBIT|d pHYs:tEXtSoftwarewww.inkscape.org<IDATxڥnU{ΝwdmIP",!A$ރ7BB:P : H(B "؉׎xfΝ,O@O#Se(X_Rs$-;x1`4\ᛝS|is!FJR򔸕ܶ)6:ѿ8-ZP,=PI6|ځcu67 b'=R/ ~"Eͣ'egge(l6{p8II-hW( b3)u.'@ULF Yq'Qtootz:+YJ%طm`YN|/,-- r)7 NuͰq{vm6ێcCӉff 'ۼH13>Nz?&DbF]2BBQܐx|@{{{^ =F=0($cƷ_SO\ c5HƑ|>JxxL(O%hQ+C]9͋\K^u;***^|/ tm- y$@}3R/^ !C`(u!͘Q4zSέ-ȿEKվ DP%L&ZV+i P^<#<&C"XrH!!!:&iwݤ_p%7[>VRW1+B~eee ?ߚE󉐲7ϏѰ]z,IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/tools-check-spelling.png000066400000000000000000000015601231434177300304300ustar00rootroot00000000000000PNG  IHDRasRGBbKGD pHYs B(xtIME#&IDAT8ˍoSu?ۮn٬E"sڔi`J/\TPI0>hB«/0`}"f(&*3KdUvͤlͤޟD>O眜y@ }^@|>< n>m{R^q"ϟtRi2L'@GGG8nƏJ)O6kkkCf۶?F`$QeTmۇ !MӏiN  J)ƺ2U_ 8JKR~0u]K)R5b1_Cz-g<G3 h $]nٲeFFF2K.y1x x詣džb" _Du9R=[<|ra]KVZдsqbp O ^Zf(;Imݤ*MRRҿ}ue]qoIBeD^jZ39wjuTue_{5ݯhuFjn~'X枰X҃7YlI<@ !IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/view-choose.png000066400000000000000000000004641231434177300266340ustar00rootroot00000000000000PNG  IHDR(-SsRGB pHYs B(xtIME -Up{EPLTEab giMSńЊֲ㽽tRNS3ǽ=bKGD|ѨYIDATxڝK0E Z5U3!/yt+(8k!YD8 )`a%EJ0kʋп ¯ \ f#WIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/view-fullscreen.png000066400000000000000000000006141231434177300275130ustar00rootroot00000000000000PNG  IHDR(-SsRGB pHYs B(xtIME BPLTE<<>>CCFFRR]]^^^^``ddggؓڗژۙܜܝܞݟݠޡޢߥਨltRNS3ǽ=bKGD*SԞuIDATxeB@5[,",E'2{4s6hhKё!r>1؛hM08'qD"x~6x\L2$\S?\EnG=XIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/view-refresh.png000066400000000000000000000016431231434177300270120ustar00rootroot00000000000000PNG  IHDRasBIT|d pHYs:tEXtSoftwarewww.inkscape.org< IDATxmk\UƟs$3I'I'M4N(BhТEuUE7 7;EQj!&%6it$s3q=xG fgqÞ]iIEѠ6v]lZh7J$w8 ϘG8|-Bt/B2.VB߭ mW"DN&ZwZ0 i$Yr"HgLvvnJricԴL5)bC5(t'\!FMPe\ [̾pm8> P. OyD\i؝KӉոnZl.&Yr2Vdu\kYSox;\"~|7\uQrkIp,IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/window-close.png000066400000000000000000000014551231434177300270170ustar00rootroot00000000000000PNG  IHDRabKGD pHYs B(xtIME IDATxe[hήlGjc9-.EXJ22ɱ( ||H  XZLnvss m~}DC}1qj 7ZwMc12l.w~`K߷n߯ʊ+gθ6223Gx\lK&>X..TJKK%=믱%Oj zYanJG"8$8bMy椚mu:f.37#;;{-MNHK{4GtԷόZҾi[٧ic]Ⴋ5LO),WD\qO5AZ JAtW?̪j̊R*ZuUJK,Sz|@·;zUj&RC 1 9&BVsO30u.~uTm2Cfw))X8ZE&>K%W?v#jSvv@3yw)n)buYWH_d%@oЄe.|QQ`[~1|Ɋt]Q"Qd?8ɛ 6 @z#̔Y@%Z[QIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/16/window-new.png000066400000000000000000000005711231434177300265010ustar00rootroot00000000000000PNG  IHDRasBIT|d pHYs:tEXtSoftwarewww.inkscape.org<IDATxӱJAWIF˭>$UP|(0ERhc=ADb'$Q@bq$$F 0 }ݢj+ʛ==p\a8ċ}]_ YEd04·U/۠1 `Kd2t1ۜ˞h9"<VRKiVywY9[jF 5FOmuY~.K@g{5ۄ'iIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/000077500000000000000000000000001231434177300236675ustar00rootroot00000000000000focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/application-exit.png000066400000000000000000000021561231434177300276530ustar00rootroot00000000000000PNG  IHDRĴl; pHYsϐtIME  ҡabKGDIDATxڵ_hUƿgfw6ِ MIMI`#DHE҆C4(J+bOyRԧXi(H$&6knSEnٝٹ3lZ"ss࿨ B W sv{קzT6˃w{ ܿ{|<%A-/M]]pDV?=! N=oU.ߔceiT_F&sg1t]@ϝ=9^X;hLm{$wc!N$0}IN\K /"n*WHP`EJK>]4nm*;KtקtW{*cUBe™3i kc[o/ e$zzyR(RC^ ։VASbQº:1 ٮnܔ\>BuVV079u9ľz0w}7wbaJ-%?ʭ<ϡlw$k#f!j$O=Ͽ 2@'2qzҳ֑=O\XQx}dbZ_ĥp.J)!bUć)<UwX)t 딤-'{V D IK^ 1H e} Bzu7P|8@#F߄Ik3l`368Sŷ $Mt#0'FАY$uᣨ} |?'fEgBR?B<Qk8}5h4 4~iIFxeNu{d:`lS4(=H$557߂Jb ~L#eWKpK6 (:@8e:>53owk/…$Y~0#8+cPbA gs(@/ bF "V [SXr}{ۣ/&"0 J I#,=@Iә2 j<Xf<) fy56؅'>Z?(!3*?lIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/applications-graphics.png000066400000000000000000000027631231434177300306710ustar00rootroot00000000000000PNG  IHDRĴl;sBIT|d pHYsaa0UtEXtSoftwarewww.inkscape.org<pIDATxڍ Lg?ކz1S<$*;`,"N@E.ac)GE:U(TRJM }06D[6M43%O|>|? Ddү=Ԝ;eyuE674~Ԥ #IѤHB *CѬL@uNW[z\xQר.7@]69uI*]Ʌ2 s9s L2t+^Apz{$ڈzS2>FZ$+BD \v).@?V# Y^po)Qvlp,Yl:VU%,$aiNG"dG/_TJ0z 㲉1`q4BӐt,xPCK9rkc)Sk6d1譌pc:I)!z24wmI'mIãZi$(J Z׬<;rT0<< ġCpD4$bI$<2IhgXx7=C:| e"ad C^ns1°:8O*QCfE[j".xb,ihYP(:lp4Gm~'iKx ʶm? /㰳/Gis|{ ndʜN{綛6N`PSR",(ɮdqgCc#=[Vvxu`LX[j,ZYR3DlVu&}(v[lvUۮo'~!{G_4o.ea@Q@mwM]t a?! |}츙 ^IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/arrow-down.png000066400000000000000000000013041231434177300264720ustar00rootroot00000000000000PNG  IHDRĴl;sBIT|d pHYsaa0UtEXtSoftwarewww.inkscape.org<AIDATxkAǿov&?R[xPA` HHE/,ٻЃڃVB=xڊ$*J-mHM>_-|xLK;/^pō̪]k$h@I(vKg~\ixgyg_Lp=[Hƾ׀';[۪\;2qvFu1yUV v5nSޭS{is{sj=oA{6 }pv$Y$}RQU]A~Pn.xz+[SQmIX/%Rc214alN~H=1єxj뤎ddhnlPZ*"b'/w"*S*M*SV'd\%ܗ?kA%2JԈ . {;Lz|Kz€mߠ_puuuR-Ap׷g@ׂNîy`L16|!ZJX&,.KY\X16tiRwRgI-Nn_uN ׽Bp!s mϵέ1`4` ڗ)I!H < ϊZjz@|㺇 %C|U.ćyF{KSޤlOInj>ާ}@*W^~,W~ PA˭Is˞_cMNm<ɐ p{ Tٙsy^,?<he?x!\^BaB!PPLb@Rܾ8ckܔ]c\KYu]$mlڭ. ƽX/ |uu맭ӌ#7!xZ `b±y'3br`[3LL􈁼h$Wmmt]o_ؾhֶvc,& jv\9s{6M>MJMI%Rdl綺mY[Hwܽ /X\?PT^u<#,B<66*W޾w um/_\$K|2(̅'Μ|78$em>Id + #)#\ʚraLh=;@×?N `eZ3ь!!U>1pc>LL9J5#n I[44B")]ͪw>}4laa^B(~ aOsd r”',:4wH`,jX39`s/K^0ϞYß7}t\kҺ_דГcr 9`kP{p-@ S2r2BY^7!CEgZ 1`iBo'9ɕ4mki 4=Kwt eu!qy(; b%;%;b:P 8LG#VMM^8\R%mNYjU5UuU%CUŭDIce+ AA2>k-3 =JB%`Tqx10 1z`>&g&L>ii@Q}YP z55ǒi4_u:@0ZoޅAm]O6kڥaL|p|Mi?<⇜rfgnXM48oEa1Vl[8kd`#FvpMI_/>PmQ z{8Lb{¢BPtT*Fr!)*4w5YkMm=]Jʋzu ^$8Ð|eg1bt  -;TV"0':/r>T%@S@#s؅1Gd9 ;;`wHPoVvF)Y'w4Ast'VV~Y:{G)d ^1 >@x`3[UC1a?^ |DەfQxxPqE 7TU rK-<-#+O/שݹlC.,^_C1 v948;I׸wSsyyE$lf~`c uq !7w̦P~0&*'&i#b}iNi"ٔ,3{hӱƛMggs3Mhc~h!ύzW #!T@<FOĄ׋u-pQz)qBnZX?:K- cΣLl=ˍx ;u?^RRR_M7li{k!Yrd6TuB !6GJmwZ,O7jxr(rP-۔}+Ipކ]$WkbjVhJN)hh .wӽ*4+iub%r;%2_gL jNrMbۚ+f:[wr**LaLJ?Y\ji%t_>}%hҚq0ҼknP[A<~! O.&q .,nS VZxAC-]k;Qpx#$Q9qM2QmSm'(%Gs"#(}QoWSoZґ?QZک._2^fXq f+N+̫W] z9g{;ƺYd "#^f'uMC*UM&2*;HyC9!a(*3r&2Nu9!6{Tm%2j/NҸGd~PRRzGWe5q"X"3Jg\2SwWFlE"3YAVjDFy(\&ߵ"긡t"zTXtSoftwarex+//.NN,H/J6XS\IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/document-new.png000066400000000000000000000015511231434177300270040ustar00rootroot00000000000000PNG  IHDRĴl;sBIT|d pHYsvv}ՂtEXtSoftwarewww.inkscape.org<IDATxڕk` uXv*  "d/QAt? VwUP:h=̥6ٮi/n{ǛᗗjBփvO {_$$ZDKn!7ma=d7Iah@Z8@;}  ] ]?S<,Ick@w&{S=uy"LN<=A#=g!$_5&'2.W\~>3 G?G"C.|{ٲQ(N _s8|$/@W]R-'UHa~74Xףk8omoUѽ&r(ʶk{ چ4"Sw5 "Tj+Pmq=yo' Nw"~w>!vI)lvBЀfwV&wSeuiv;,˒."t%#7 #̂n¾I,// aT*NժNԱs}||G}kڧlW(PxzҼvL6MM4KDtr98xB<~"7ZlŋRt_/E Y_pa^~0~߲8Gxxo eTZ}gp`8w,KKEA,Ǩ[sC~"NQPcIZ;3jN27пnN@HT%Vv2q733ol7Y#*,m<*b*j5rfVQH8GVߪUqd+tfr[|[_Yg7]]N}s]bYUzA}i ("CSrρp*DB)8t& J5 .mHb19Nj3K p &fFJ4mOt2Ts2CVsKHjRwt@YU#fNVtJ H'y\ s fV8iJD3 (lM45 ]Iغq;k+w}҅zXb}*3Fa/5D 'OuL  }r**[griw lf f4bW=DS,hl1~Q]IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/document-print.png000066400000000000000000000015601231434177300273470ustar00rootroot00000000000000PNG  IHDRĴl;sBIT|d pHYsvv}ՂtEXtSoftwarewww.inkscape.org<IDATxڵ=H[Qߛ{O!Ak%өCpP;wŭ"Y+th5m!b41?{x/|\8s~hJ)i80UE.Fojv'3sjڻT*T* ]7$# 뎊 n\08||rL +@(EpĊ ?|>;9k/* Ny&s[-6-;ܲsF>5MPGIlb-B'p8ihs[T*8u x`Zlmm DB ##~\&auuiNu(&ILNN( C[XGY2-#[g_a\01+++-ax#tw?a5ՏѤX..ED*Qjxv^@uB%hC Xa}Jiڭ  :mEWW9w5^g2)Ӭ(]ɑS7IU0 VAAA^7*0%* >ԥaIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/document-save-all.png000066400000000000000000000016311231434177300277160ustar00rootroot00000000000000PNG  IHDRĴl;sBIT|d pHYsvv}ՂtEXtSoftwarewww.inkscape.org<IDATxڵUkQݤilb҂P^`[O=k=R-Vң`o~Ã"4VZ&iy7/즱 3;o~ٷYCJ ü[ DyTvvs T~3彻wQlintjh0gP(An3v䋖qD1cLNNBo,~?Mb3lgR)@D3x*B%9:G7.pTEig.a9&R9r ʥjs4՛lgGz;qe7mYG*WX_,tN;y1y/κ;dq緿BmDJrYxՐk(gK٩IAoE)5NFpk[m0j۷ G0 PuŲ,?{_tD"ejŘ}Ftda|ntuB`y܃i[t.hX͔SP(_dRȤ75S eq#*P.XbQ|jBFjy9\deuTxwHpd*X%ur"Brq*x!tg3sA4 u$fd{:WnCjV1 zLIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/document-save-as.png000066400000000000000000000023211231434177300275460ustar00rootroot00000000000000PNG  IHDRĴl;sBIT|d pHYsvv}ՂtEXtSoftwarewww.inkscape.org<NIDATxڵmlE{* J[l b@LK/Z*؊Zb%! /@BP 1AH  UFP- \KKzwۻٻu6Yf63>8t]`ieUO ȱm}s=N%~C((J 7[عm H`NCC]ݔc~\ ]ะ0b3veeb{#yi:!( Wҭ D.1԰g{W+oM_&<Ӏ?\D$*k]Op,LWC dYú Rlm0XZC$GoX茅g; TmcaS-o9+9_U$` `9=13i?:#&uJ.=qgzV,QXE (3y[lfױs3ޢy&xf*65A!I\Ī-R>EF~&ol%A&+ޱ,sBV^⦪du]2nL0$28"R̚ZH<4iΟ"+/;n~LKNK/OSiڗjG͵YHE D~*Sn1M|guR\m s]_ҥ%0<lLZRJ[hig2YJ3NR`st>6>uqݼ09R(DBsA8p<\C097Y+$ƱEKM,qsѕ)d2'qXc:`fI`ݚոڗCqjQ8ma8{ʂ5'wt BPi>9ɍ S;~v\4ĹaV:r#dd̰\fw0:[dp}@VQl4?O!0T8) C<}iZًr^z{{%~!"8ȢvaCpN@XX z S pnh_o4us1c~"IIQQs[,fjoLv}/3 [ kʃHyoRO58@~;Bb4T[woN JX< zٿ 6C0s$ftJb`{fi v//F٫/Ds!UՍ4`Ҽ8j\(l+P7>v yhũL0o{͑WxR/)E}JIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/edit-cut.png000066400000000000000000000011001231434177300261030ustar00rootroot00000000000000PNG  IHDRnsBITUF pHYs B(xtEXtSoftwarewww.inkscape.org<IDATxڕOHqtahKCCRz AyPt < g#b a%f[Pα-7(lsH;1HnbsG}| 7'ű3ƔM6 ӝ黣aPA^٭Ic?T =B)lEJK˸ki\mKR-C-C^F Պ.KOOJBEERDFFl6, ::;J; WZmA 5-_|Ab!B"O k a} @KK3!RCroH[qqH(ؚ떋9\6e0W 99`0 Tq(1߁Ls &5 =C$Sb,q7|Ik9_GoC~n$UNNkIP$DAnC8LǑ!&:exsp._J'}k4f2)rx juuO6!y5\ \Mb߇#P]s^vsJg~rVVVx}}SSSx6>p_ Gx u۠r^kkk 9*:!#4:=7s?&bsy(>0Usc=F?+NьTN碧BOJ Qvy.'M M/v#Rx2ڝX|[)IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/edit-find.png000066400000000000000000000016561231434177300262500ustar00rootroot00000000000000PNG  IHDRj sBITO pHYs B(xtEXtSoftwarewww.inkscape.org<PLTE.../// ;;;,,,777777???111CCCTTTuuuSSRUTS<62KKKPPPWWW BBBJJJQ;)rrr{s   !!!"""#$&&&----0'!6 888>>>AAAD GGGIIIK( N( RD9RRRTTTUUUX(YVT]]]_<"`-`?%dH0fbagREic`l4ooopVFtG!w8xDxxx{]C|A |eP`4b9c:rKyUgFtRNS #'.3CYfaڴ*IDATxڵMR0F$m!H-Pʀٸrƅ'p9qԊEhJ6:зo=DeZZ>duؠY鯆ӶaFշ6zBT?SmN( vxTzp*˥Ȼo$uS=ұq]/9)>Q}=x|YO]O&do+3FL+[+r:esT-;L?UvE3`,XLsC!]# fh| isƷtj2B-6_29, IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/edit-paste.png000066400000000000000000000017101231434177300264330ustar00rootroot00000000000000PNG  IHDRĴl;sRGBbKGD pHYs cytIME 22OjHIDAT8ˍToF}wGZ,[K`9ET[) ` nEQC%im&ÀCtP`Yq$rEaį E? <>{!1 D)e ^F\N.}t|...@DST.*۶/1??/JEDD|ߗKt:v<ݕA"5Zkض f6[zu/7E;8>-r!@=*18X:DCqH%A)f8ӈi&4XJA)8Kx0M& *T<@e׊x!# ar $xdXFQ̉S?h5TBo!>RZkf#N*,q}z "X ܾ(F稷R&:FƝ;G}֖e!SSS#Efff>="A Uߺ<ӖeazzB(n7fFՂ#m, wvU}=\.crr ɘ@9 Ǚf/w<5 ZnZk_fn75ܮasv͑gopsec?\׭rI 9 D$DLoxoz/ZnIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/edit-redo.png000066400000000000000000000023351231434177300262540ustar00rootroot00000000000000PNG  IHDRĴl;sBIT|d pHYsvv}ՂtEXtSoftwarewww.inkscape.org<ZIDATxڵk\Uǿw&L&GټZhE+VBPх΍_Tp!pP(RRE6&ih$޹Ð6pq؉>񘒹R]~sfyx'Љx8܄0I\ҋwroI)9 z![Oaݡ"z"0.SuX.azX& '{w N ONT; v !lm XMhDkwǞD\;~D#8`@B TiKqվz]UV dPHA`|2 7aHP@jt4ّHD) lVAF97P/bhM ef ~T?;FU*WtTX$EETP_eM\b֕Rp;Q JFIxG.\.P2U8~] o+>S&"}`H~XȤحmSqip؃dp<Iԕ ZyAUg# yH6O~[;4"WZ_^5"oA)BC4uaΝ l*A[vT "(% k:/#PQ\zV`|Imh"ճeak({bÖ}7X ԬόR:CBK9Cq) kJ$ WVh#Qb!r وlahWCW;6IW Tp[Y0p"c<7n) d}:|8 #9G+qռR'x[e͎=EX'LFib2_/EJZI fM#sqp476fNc&BJA*'CG- Ȃ$qY [Z[JvWámK';"aUGp&DU*l| aUO r[ :EM7n'AA!ʵۋ~>p#2FZARyUxRX=9An~"@IئtuͼV*s[٤tdl0?.ԁOmGG yIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/format-indent-less.png000066400000000000000000000013161231434177300301110ustar00rootroot00000000000000PNG  IHDRj sBITO pHYs B(xtEXtSoftwarewww.inkscape.org<DPLTEUUU```i^q]{RRRrrrhTTTqqqUUUpppUUUppprrrqg SSSTTTUUUcccpppqqqqrrrw{ (!.H<@8 ?&A) <'9'e[ 3"6$[KcTiZn^qbtewk  xjr|!!!!!v)tRNS$$9=??GPVV(IDATc` @NVVVFb&h ) 2Į8_M\SD 0-@4cC3[/<,$(IUX/AȖvi2/ʔGmlݼeYAl)R ?#w481}) cACW5SPBD @hg+IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/format-justify-center.png000066400000000000000000000004711231434177300306400ustar00rootroot00000000000000PNG  IHDRj sBITO pHYs B(xtEXtSoftwarewww.inkscape.org<BPLTEPPPxxxOOOwwwOOOcccwww9tRNS#XIDATxڥ[0DQZߪ g{6p3Qͩ6 "`d`J}`\0A5 cTWK{2+cIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/format-justify-fill.png000066400000000000000000000004051231434177300303030ustar00rootroot00000000000000PNG  IHDR6qsBITO pHYs B(xtEXtSoftwarewww.inkscape.org<0PLTEPPPxxxOOOwwwOOOcccwwwtRNS#6IDATc`X!f+;ڀlPf z2BK3IZ`IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/format-justify-left.png000066400000000000000000000004721231434177300303130ustar00rootroot00000000000000PNG  IHDRj sBITO pHYs B(xtEXtSoftwarewww.inkscape.org<BPLTEPPPxxxOOOwwwOOOcccwww9tRNS#YIDATxڥ[0DQZߪ g{6p3?Qͩ6 "`*d`J}\\.A%bRWy5&a~]Fo}ociIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/format-justify-right.png000066400000000000000000000004711231434177300304750ustar00rootroot00000000000000PNG  IHDRj sBITO pHYs B(xtEXtSoftwarewww.inkscape.org<BPLTEPPPxxxOOOwwwOOOcccwww9tRNS#XIDATxڥ[0DQZⳊ؀ |GGʥ40sS6 eOfM6$]鳲_;YgѮб7IcASIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/format-text-bold.png000066400000000000000000000012331231434177300275640ustar00rootroot00000000000000PNG  IHDRnsBITUF pHYs B(xtEXtSoftwarewww.inkscape.org<IDATMUe=ݛPT Iqa-mӦE0M HYl'A(H sUh5D-$DB!&-d Fܿs9_t35wJB_㛣Gߍ~z3DΓ3BZs-pyN#^עBȲno(bhnFѯ~79{@ί5u,oPjYњ|=dMZTO< ֑`"ܑD_ R }ZY|P !uw]V `Axeߚ}5 TZpW<-;^/ (%R]^xzÆ먓P@:O~ibclZw}33ԗn ctIڥh @ 82:JVK# = IaNovU~Ġc2-]Z)HحڂMkͪCGBd>l˖-/m1( ?2{OIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/format-text-direction-ltr.png000066400000000000000000000010541231434177300314240ustar00rootroot00000000000000PNG  IHDRj sBITO pHYs B(xtEXtSoftwarewww.inkscape.org<PLTE` j++u+)s,96[[[vvvxxx11Z!.|0]"$l)OZ!]""j(]" g&$l))s,.|02286B{[[[[___ffff:knnntttvJxxxx|||_] }KŤtRNS4IDAT@ v:^Qra^]~)4_9AҲm{ ! A= ڸ 7z&j]//z`+<;$8:zVG֍ 9 >r\THE] A*q*H~2IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/format-text-direction-rtl.png000066400000000000000000000010521231434177300314220ustar00rootroot00000000000000PNG  IHDRj sBITO pHYs B(xtEXtSoftwarewww.inkscape.org<PLTE j++u++5.|196[[[vvvxxx%l)"j)%m)"j(-{0]" g&$l*P]" g&$l))s,.|02286H[[[]___fffi(FK𼭈b_"QSD"ݴ,(ʡPaFdrӇ7Ngɤbm0X, $4f Rc%a8 [6+Z#CK PP bw\"2d)Xb0VU41$8,~.1XutnZQ4:|>^0C_vM+䭴$I]4={!agֱNYX,h6Q$!0DM?#,' 0~h?s1hIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/format-text-strikethrough.png000066400000000000000000000011031231434177300315420ustar00rootroot00000000000000PNG  IHDRnsBITUF pHYs B(xtEXtSoftwarewww.inkscape.org<IDATxڕMHTQa˅q%kբ(w-"hmj .[NDzɛЦp$!BhAB!mG3^9`,݃!;<|sNkh帮@O.{N:y}G)\<\0r%t-`?q!98r9z\$V[r"X zԙ}l2.\0#űT<4ϑ >59# G3<7-i%Y&4qaxĐۺ玟:q G/!l7w GFdV1`vv7oFˉIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/format-text-subscript.png000066400000000000000000000021071231434177300306630ustar00rootroot00000000000000PNG  IHDRĴl;sBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDATxڵ]H\G/\Z5Fk Q(}ZjH `S*)CHK*&FjEK5Jh5֯g.i"0s9sWszz-AOOOlVDFCNw)nRՕvrrUXXصT|}}xyyqppngeeg644|疸-c6??btt4ќchhܦZ! ȸVE׉h4yyy^wxW(LNN2555 ܑM'vvvbgffޒgZJKK W Nq`pY077v8g}}Em)++S5ane!qK|a{UN]'ŸO*@xx]_WdrjQhll[6uuu}y1BCC D]x1%J[+jjjv1} 9 fvĿϛiff&iU9GFFNQQR"¢ =H~^%籕cc'qBeR\\Uh###:zX pt~>HAAMN@Rccc0s h!R] {Nb' Ȑ8d\nmm5f jri@UC~2\K'ck2}z-#4U}oj9'2̅'`:έX_p[Ga/kl 0p~SIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/format-text-superscript.png000066400000000000000000000022251231434177300312310ustar00rootroot00000000000000PNG  IHDRĴl;sBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDATxڵUkH[g~b4jcu&^./ҢN6)P4GLe ́]*2caC&TQщ&9gwȂۄ ~~yxˀ?^wԂ-%a㳾w`!b7 5ܜ2&yQ((dk#J8 "|www_8먨YYYJ D" N'VWWa2.=wW.ԢF性f/O|9U7WTT 6]088xz|||GwRSH,>G Up/'''&11 nfKKKB\\ B/Ox\R jW\xLOOU )LOOx@>9< A[}IߖRAxLN?bp!C3N bk~bkx:wvYD,-\eɁ{'זX8žnZXC%Vlxݦd,"iV ZDQr0fcp! ZĽ7} 1<"O. GcwI[֌)&~?1ZX;d@J34ȑ>#w) .ȓ[ۜ}J:_eIsFYF]X#-Iʉ|Uy!r#EٔF7Cu;Xȓ%]{7R@./[IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/go-down.png000066400000000000000000000015741231434177300257560ustar00rootroot00000000000000PNG  IHDRĴl;bKGD pHYs cytIME N  IDATxՒ aǿmeעFDjrK yEJI?wⅴ/v%B["bWa-\֞93gyƳXy37ԧ|gA0 ^{Ӣ R*hܴ ״{J `$/w#ۇlT@(ҰL ĉd cAӊ.dbb6Q(T;.EEBS^تh(?xM$~a(c$|.7}ћ|.HF? j0XNi 8<3.1~q!{8v*A\t^=WCӑv?^дk +7/!q`Dfd͞U=v@oQ9h 1@DO7L3 )K Y?c'jy2tIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/go-up.png000066400000000000000000000016411231434177300254260ustar00rootroot00000000000000PNG  IHDRĴl;bKGD pHYs cytIME   >.IDATxڽKhWƿg#6ƤZk#j!bP؊sUw*`Ůtn( Zq. .Y`T|{wfΜ(<(f9s~3uKELSPc0R?w8ZE_]һx^9iH` 9rjX[KwWqƬ7[p,v~ˆeZCEd\~z΋YMXQTSGAkv!{>-ҤcqUQ1j,,>Վͨw?d++c8PFUnOL8p`a#PAF~g&=_86%uq6H %%f4BCH ^j_-4"|Y*)H$,$L6 €=`70Cs%kS҂@6Aڐ c #q(huḿ$9՜0PtDF#ҀpH ı$N_b<vVJΕފ'&q`Q KʄKS5gIAzM(G_/%݉}nG~&,0DCZyh}63jBpV abow~/~pO%N &MIG/x$$a)F9@Bf6&9A8{&<فAE׃ \?߄DY{xW N˯u׈a ABA(kg_wJHIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/help-about.png000066400000000000000000000021711231434177300264360ustar00rootroot00000000000000PNG  IHDRĴl;sBIT|d pHYsaa0UtEXtSoftwarewww.inkscape.org<IDATxڍ[h\UMkM3"KI/ HZE%*HԇJK*RꛈVlɛFij 55M%jb9]gf!3#=g8ÔRqIȉ..!KԐ2 My_ÊL]\/` S>L˚+6PČlqtϙOА0`J?s<\3Ҷ}CVɪ&8N';;4_yy>aanف8nh=\SϾڊ|޾yM/BzɁTW`sS㘘Lͻ[u#}ZB>/VD:*&|3춚AσKOۻs5vu5X4Sjj;+Utٳ9GV}WQ:B{*yF,ijlrAMyZK `Mmjie](n:^JY!R*<QK b@UiUٞ?ÃC.+3ڏvUnl+=K^Xl v[^ Ft"~G̏r$`4DJPXX]d < VlGFc.c`Tsc!$"VۍuHm+]Hq;f)T bo:u} R5е I;8Rk G6 斀y ~A[RCAMp=kHh; l t=#drԕcH .$;\IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/preferences-desktop-locale.png000066400000000000000000000024731231434177300316100ustar00rootroot00000000000000PNG  IHDRĴl;sBIT|d pHYsaa0UtEXtSoftwarewww.inkscape.org<IDAToWw񽎇q J@RE  * سa`6,UؔRA-JBhbwt΋]A&ϣDGAX=?x#΋I i-dI䇣i?d[#>DoeҴnJ sՌ.iӢDDT[_ZˠՉRxQ<ira9Ua`8-ĒO ]-* }-Vb894^+*s|+q!;ꂓZiD+g:AW#ш8F. Ƞ}ŗ7WڝC$b'c>UVqz6D4k5ղV++ VZ\]jc|XXr1M&sxZpem\F3v 3Iq%זR 9i6E!_\cR8V: >cBx+׫:jjܔq%zU; <}c4z!B0*=Xwwq Y* J|/[;,.u98>_0ߞa'Jw4NqJh™6)X9y09*$44=>23I8oCTDƠlHQ a; y!Qw5d׻| \^Nxpɏ_dqi3!e7 X>VڣgȢFe)rǯ^O9pq>7x35-.x]XDYDYPQe9{֟$#>wh7%j~|5^)QѐysKـdƛJJ+pl:%Rœ& vn4hgpY;G?[2˼߯z_D*\mnn>Q7Iӹҹ"{w:~]u]cvvw]u-á4 @#R"£oe;dl4IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/preferences-system.png000066400000000000000000000025061231434177300302230ustar00rootroot00000000000000PNG  IHDRĴl;sBIT|d pHYsaa0UtEXtSoftwarewww.inkscape.org<IDATxڕ{L[U}P愶l lБq<!yM31<8 ntplds50`:@-M@y :B="02 >\Bu"L&'}\@a n-XMLt7+8##tK&œH2'AD_7nT*4/iaD2 }F ;6GF8ͽB_THᄒMZFvvvnudМ=|P.xtwwH$2,28:|z95X111EEX"/,,xoll4R$W89c5|ex;<<18r55;88 0}d{/N9<2|n ,0ƃSג~f7,2dgdnVߦiZ wwIII?K=p,=[ިBXYW*nUڊ=CCCQQQCCNm-px{{iJ\_zsڸ7a|ۡaaazZ[[lfd L4:> xx gc髣lvlbREt *++h˨üq# c :y%:::|x!zF: m0 R_"դo6pVVCOOy~X,TRR )v:ᕻXH~e6iD$}" _@(UWWi4Gt: UUUEc. D>` Q Xlhh8ƄY9<H2Z^YYvuuՉ6 jF_[} QhXq &H)GGGg|~YQQ/^(=hܶ( XuNC^z90fӈ,uM 89QIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/tools-check-spelling.png000066400000000000000000000023301231434177300304210ustar00rootroot00000000000000PNG  IHDRĴl;sRGBbKGD pHYs cytIME @XIDAT8UmlSU~{vغ v[aks b$L1 E?$(B/6M"qK`c|l:޶c턉1FM<{9OtɮK|II @UU+++Cir]&o)`%Ey4MC"Xe9R7<66 <CӴKͥnJM&1-<ONʧn]؂Vyڪʲ<4M FW !޴ڵk3ˉ-)◆0眷AQ(R\SS#c#,I :U9^W(|G1pΧIUU+c,,G8;oji1s; Q("ź10SN%9I͖ 0uce yfzZG'@`)+~$wOOBCCu5h'!@q2L"_'3{+\NhhE8M 4ap]- h cpom;b&@ΈC7]clS;G+^<;Y&'RP%?y'3aB$ms?aE)a>ZA\{q>~5."hsQ5"g FuX!sX4p!U9eP碅p!a/wLǏǏB gx{F##8c$O6۬4mMDqSGӁl|,Ɔ2u_KF՚mh\[S)uّGыwcؼdɉ ԕ8 Ȍ*ZMmEqN,qtcf8 c s3ә5\,۪D NgRʴޔP-I4 JJ TZ 4rDCo<4&Ac:{ƄI[A_xZzҨzv>kSdAOTaOa$3ﶻ=a(@g֕|ZhPO _/D*t}҅_ov~lو+a3մ|yЅe&g)D\+~>#a v|q>#bXnطV;f傾t@Ůi^EY=zpC {5]H:Wumcm1֟Y.Gv{6) SA~_>v-HjL j^ɞcBHoN1UBD)"ј K.E#?9j0bA}#9˸/MZV/'1#$o}maXr| 縟⤰EF/)+eP]1(ڧ-G_) `1^wsu8R\ؽEۊ橬To͐jR0! p~D޵<}^³{h.[qTvx1o<侖 PT];C,s*j$a JA iMfOS`5@\0\<'J*Wdg.:_ۧJ5s: }|{ᖚK ,҃)*I0}#nJ+qJWv^zu( r5Buh'B'!c[Vb*K+n܇m۬AI'𚢔Ns.#-"h\ 2dbqRHnM9H>}M:]5YM R"nB?ө(8S98wYGc[m(D31Āp!s码#r?paH=+.\sDq2F,8!y4̗P첫6߅,Oj22',x~JcYrtVR RVenP.8' &xxf[coU0ͨc3 TKuM!..{ʽlIENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/window-close.png000066400000000000000000000023431231434177300270110ustar00rootroot00000000000000PNG  IHDRĴl; pHYs B(xtIME 6 ibKGDpIDATxڅ{\UϽwfvg-EtkK`Dmhb#@ljF|ŘC!АHB 4tݵu+ܹ݇ /7s'!y^DlD&e6!#;YFzFΉ/?>La ?`oww>kվq#a6?o7;frtTU!#k-Gtݶ+nO$gQ*W#{+uqp=_F JH̝>SOK2{~y< ]]>^u`A}ZYRY/-*m06P]Y<5Vg{%t^Ǒtli+qglׅQ.,kJsr]pHK_s/ʹs*IhFYd,,L*o9q|ۅ1S0Tv崡^*FA}fgWںow\קcuk6)ǚhriދC_~h|J}zN**< 8'VsӚvV [htd5-`Rɟ~r>2_c]rde"ͦ E~saix/ZU>nú\O"CT B Oo C54&Mh$L̲펯Z;p }J@r_nk`Sw[հL |{?8).lS?gu夭>y@q2~'nUeQ#omG̯N"5zy 7Z>oa v?K z*~|]dȴfIR*INHt[T#@2LP-ר/C-R/gYx:0y2D5F)$1%*Eg(ORJxG+? }ul.%bZtƜ~UH5b^kڀ(ț$'QE WdЊr:*XA Wk]X9_IENDB`focuswriter-1.4.5/resources/images/icons/oxygen/hicolor/22/window-new.png000066400000000000000000000012501231434177300264710ustar00rootroot00000000000000PNG  IHDRĴl;sBIT|d pHYsvv}ՂtEXtSoftwarewww.inkscape.org<%IDATxKqw|ldgQ3y :[?SСSt c!;h9/Ҙf1\6my>Ef:>|o>W{7"R'u̼6[* gMtEaFgF4VJy8c408=˷2pKSW&''}[Q >1:cibv|/}#kh6x_ Deύi/U\|`֞+e¶i2H@ij\Ru\9 HDaa`Y6T WccC:%n'\!le& ! wI!4R+;k۝FGK6Uߵ,})K+R#*VhG+e+X*N_Ry^v݆o9WQܚP1Lq@)$oW پ2M_,Ͱzy_u?vu}9 E}g^_[(o=:G(FH_;:(`!NW"a,OZX?;jn#"8"_t (}B%"?Юth7yE+aKP*q@LSJDַ8`x% vڎHճU 'ߖM{4d,Zʌ %vlPHo=gԯgþ, H:,vZPN"Zѻӣ}[U:ӣ+RF5|32w1CP "\V+]lLs ݠ0v9sGH/ b d%$#2MFd5ΫG(jlԹEh[V@XOb|6}ɦpg佛>)w6}ײI8zGPdtL '-/o[3>F@7(S?t'\D|*Bђ$j:| Gu!=BI;(Rkw # -ºIqÀCΏZ(M GF,B;.7qI"\?9y_*uO!e]74=6"~:|}suxSrbn@ӫw's/N{+m .^?U [ w@J6p) <K[X $FiLHI`52 x 0AkY:XRr߂*B#ܐ/.%nuT[  X+dĨ`BdV9W 1DlZ@ЅLbQH!(rLLLp-*k*lw []Ѱ[o:`Rx!QBE9"FtL pƂLc!kn!nj+Lc誁dUFRO%ZpdR(,R-F6b+8pp\*ZA@IZA]}0r !R+{z5}|%ox|uO<| $ וk&0C_mRBQa^pXRtX21.\&,ʆ27HB=wX&PR,ŧA#t`\f򊐮bl NI[#Q`ABB1/uPIP-bYm!9a&ޓBXNYjEa-Oz]P(chꍃ9j4b밂@)WQE-s#/ h?=[4l Lt'fO EUs si%BGho~WT~nJw]]gGulʵwmW|{y]oe?a?݄eѮTFn/\ۦ˾?=dVOtX1x)MZ:>En>7X p-҆~.,ݳn.oNn)FbmF/zR?>~.ˋwWi[n|vU}?o5t+ІZNFῷUnu̿W% ]/Fw/ϞG}=n.^,Wg~n[D'%͘M[^f @"u4 b5aج[a͵1fz,z̾7h*!,ꢺ lӘfDRL!j aN~ 52Gԕua2K)(sB2bD<`M8 ,|,zĴ4`e4+## j80 YD5c/9]bXC!DRQ3"PӭbL#ʣ;k z̆R b -d_L~&?|N޶\ vzU?"-'m,8˘f^'H']KYIJAHzW_9ȸjŜ6٭SFenX_hpd|ڔf؋9x>MY#gۯ}O]OlNn9K, cjBTfhB2zOW-6Ek~4 GMg)`Yt {Y/ ׉:ACy,ZʬufD#KE GY&XG%$*$2f6j$ b8^DTXS{_ ϟYPCzei@aTt6p:uTz]ŀQ)8hfAiuvx?ӄvyݣv7L9eo77m-X6pZtAm&d Hh` үTH'[NK h[g-ͩyOIfə diOTg#1gz`uwMp֔Ѥ:&9Ud$A@t]?S{BM p'a\ ?ВT J,h+%E KM]>A P;&RTAM'PFuD+Ƒ~I$;W;q{F f69>' XW6=Uo쵑Y)9&Ԋ[qu=SvWX5lw)^͂ 6v}5Z4h[>Je?uQɎłC(Z,|X^-,y}9@ ! ) &X z['+(HA>=cxizδOGM\KT$0W}qمgsR[W(BPW 5{Pg[Z !E K ElEV?產C%MOY8MD]ΛAxY}s)RJ+ٜqO󼁍$έR#rFMS1[nI XmrJ E%_ݬܦOBN=i&7F|ՀIiϕ %n [8!xuQThs,G=|G@C*77z_&JI|lJuT[ڜ4 ɯʨ=wW~_QxCfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/16/arrow-down.svgz000066400000000000000000000117201231434177300270140ustar00rootroot00000000000000\ms_~YIPߴK*UI>hȢv~CI!"$Kf 4hFsw&8M/N瓳j9_׋x9>-ߍ~tÇ솘拷ǯFGGwo1؋4Lԫ?w=~.rzQwu ӻ׋Nxz>}?X^cuӞMZL׋NO9Ya';&ccqtb9xtqZ2]M K]ujץ,jr.7wG&Z7 \͋tzu|K2L"wgo-2?nnş$^U^%a밣 x2lQ^8Ƌd"s(u~^mZ5o%̹`Uݵ#;~/G麸tyv'eY5DZ/ ÷2@w(UE)YmtYua骊gؔj9.?UQq8j*7i^l9gi Z[?O쒆ٝo~z<Ffi#aFI=X({><ʥ> &D-ͤ`O9-ـmS}\Zg>5,,&AɌP L) 7 9n$NdÀarD7PRGhw辡Dq&*4l(#b 'Atuge{}V~! P! ) P r"7}։LRFG513pۼD-wO>?b0'oTAH6\y$(*|1+OPe:5 de76z{"X d`FV<+03EF5bX@Z_2J5WPdhO/Js2!;OerhIO=FP&OpIl(E7Y0czTM@2KDj (ii2mڙ@! A8GNb{o Jc?cĊcN1~QN(, ;x !!=7×8Fİ`$Q߄1{"$8OL=?,]rAwgrv=qZЛu7d3yZY d9?tN&AM˲n NWƓf?J99lUyiu2??S~tҐˏ[p>4-u2 ~gk?]8] VOp=]CNmo.[O˛|8(X݌ɲ}{8x{Rjr</ǽR6N7{O?VuOorzRx˳E ꯱{Qo_/ޟFZ YfPoyYvwo7p:>CUnv1|?LoǮU[1;Hf͞˜_o+8-ػrԜ VGёroW!X0ȅǑ[rCѯ5@r4XF MҘ9LG. GQSwI0CŤbD冒y&w*Pm&VqÛ~-!U)+(Uru{{bHpz$CU*6LZs @3'a'E"\Αduc@W7Pe|FPF`٭bj\IauH] PN9Y#>rNU`VwPtWUh:pW7ً@oġPkֵ V0UAvsÑooPK+3a]4K#J͝k݈W_)ƝR1Bdmt;)@HY17'iwտ]\OOM/bW7+^{T% 7:嵔bu.&b$&inh7Jb@U1CӲmh&4N9$ o'@ ytRiaH- R F"W쌄rꈚ Ȃ:BYDBr h =U#z$˶ĪEa"Fc5w.3G+ؑ((8qF9x( T'W@& $VT:{de<=@K}@HPcH$h4%GTDNQUJuW!B!Bp@2N"5'55Ԫ"-9VʮDruϤI39L)9רT S5ZZ+-X9 p=^jP'TZv#~D=m0TM&;(c^ u*;[X+M߫fV жشb^0,R}aIH¢ju$W9GuגTLn֊.Su,jCW'QiYs]uf δAulAI5>sBe4]f`?e/zԻU6ɓe~un|}x`lfx`l&Vx`ըOxYؕ$i舘xE)T0;Ւb$˙9D a䡑&yb$L35MSUߤp-c}®^ iZ.ֳv PRA( E+.E5|1q#jJl.plo-"' [BQikd[k@?M{xa둩]ys5fKȰBwnSg 0=&W/ jJ`5]5W''>|Kbޜ 7 Yђ:M8;͇fۏ沌ugwnfIsѼk.'pcмzz3;[ls6dn"eBw?:!fy~ۚ于EF֮J+w5%\'e.Ora<tspռkFg-0͊D|ۜy;ǯzxQujUӳף<쓷wx|9FpV;_[ʓhW|89hV卧.园WyO+ /:/q-WUY/[v8][:FNhcg=HA0gHVad8  #Cp0r҃FN逶Cq<~<څ;aq1g'\( |ij<>DQ">żbh.b[ݯ$NWG)1Ց JNw,;lty^Nj~S<\JT%)Ie/J`]L[N&Lޢ HGfKԕLv^"n`)j"`u۳zw VgrbJ xxh$xȷ]M鮶2OiwܻgF`6@XvHX4le@1Z"쎹-?Xrèwbɷa D1&+dQUAΰ#lËD8 >CJogM~o=TͩË^0(iK q0N&O@$+>ꐅPLCR9N?`@@I'ΊO3q &ԤAi'GLQFM*hH_y QiUcVJ_7kb'LQ2+MW(_n€7! hS:RG9F DZ@Iųˆimר'lK0 Y~:~9#g4guw=/F_F?[SB=tbo9ې(Sd)WȌ E#9'2?@$Nbc`ʼn@Y2-_Yd~yoUĴCxf27y13o?ӛwW˪-|8X chp;B y< Uen]3GQ; #Ǔww>ta0z=i,ge>ՠ~ڿ1{yU矮Lu{[p~O.{w^|AR"f.PmVI~- e)K( Uf0{AJ"[K#̙<&[4-Jcǀ 1'ˌN4RqN/s$Y\X 2]LH#w#0 `j\Hneچt1Gg,A,d.ր㢣m[Gq9rSu؝P=hqX`Id6jq2U%mu Sl `[X5<U@C4"I)8$K2@vDȋ/NƭRb*bLUxE9K%w?[ dssz9lO߲X\n.}s969N9raK*esf>_}z~y _38o6eO;>C[RˍN&}Ӳih84hO瞢K((qeB ]hQ0L4/7Zbk$#`QGԠTD4@r1GE]V{ 1d-rVnyw-%3Gb*`8`K"WAm, bB"I᜖4Uhd;vfx`zx`lfx`؅[c$F];gJ.'ikKG(R qST z,Ff#@ $0M@X=^)o f dgjmnf5c7\إ.aW>ǖ viJWv)SRA(E .E|12MUk֗c66Z,$56ܱ6րM=z`Զmf3&b dXǴЭ>8Y|lbJy7@zP)& j0蕃#+=c`iFh)HLbuq588V bW&!EOxpHFhsWn4/J*icx`EJ `LҀhQ)9ZG+*2F*ct}@(%nJ/U=O) 'l35%++QBSOtTL ʼn@SYY ATҟ P۔ʼnr#ŘtKJE9@zQGU d P)D/jIp`aB*τ=bbPZ[ ( '%RdJm1z`Y@m(Ȁ= Bp1H҄D2hn1ʦB4Mо_7onHfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/16/arrow-up.svgz000066400000000000000000000117171231434177300264770ustar00rootroot00000000000000\ms_~YIPߴK*UI>hȢv~CI!"$Kfj@ݍ 曆Lp0^'go_Ͽ=r|1/./ѯr:}8[Ww 1o_J˫b4W'7WiF0 kXɶoi[Z3G a/9Ŷty-^Fmix47 cA0gH*02 /zg 3䗃]_6 FxAa>ixU^sf6M݌gFlQ^P6tX]XVL"CލwErw"N?>d=L,tG]l& ۿϋU!}%Q|x_mlYWşj/r5.]s\ZsMrKOZ_,y-mb}X_ZLjiNׁGȕږ#ROf{^[摐 wqD&4B[ 9"ji٤yBZDzH3x$ӠE 9XKXzɝj錻NBnA)B!dq64r=jiMZcfZDR̄AgcLkidEZDjH #VkiۤFOfD>Xjr%y?kiĆ~kibYjiMb BxXEl4{DNki٤NE2Mlnɠ6Md, AM7m26I,6>"= &0? Ƃ.jO-{NZKMZH͟ZnpnG h2ܠ6m>Z-mbs+jM6U=HjiM" ̽kimΣ\K6u ĽbsrmR#Nfmвg4&L hZfh+ i-mbIgɠRH-mbۢ4jim1)jZz =娥I`[L_M&p{Bұۤu5G*q;R0O,#ֳJ{HBzF~;ڂאYQ#LY)ԦGtx)zSo2?;/.j)OaGv }ǯ rx7&̡̦__]/va7wB6o9h>{6  gFD3*Vq u#Q10zG_H(bf,~I!˂ M(Bv &ᤲ1#z-l*JCf 7WN-啪9of` c4C$~8 5IdSOPS"Q0p,X%R '|ȉACrja2"B \{lg;9gۜ5f™$_ly˂^ @|nhbc$֐2{K;yW~YKgK4@#ӹ|ktYXL]tR n/fsPaIx8:YÊyOi/Co%0( -}C{!2MTh28QF:.N <C&sCR8A:<`Dn g'N8Bkbf y յ;Z<]|~5a&N4:& mIQyU>cVPu0k/\9 &ȍnt mD2z4#~=Э\yV2afj?l3~dXk&:ܟ^BX eB)#vNs+Вd-zL?lI.)QRu3n`<2ez*Ԙ9Q6r)Bu:'e |3C `+Tp4%hmHƈ b2>PX&4wCBzn W5/ q2!)a#dI cDH(eq:~{\X ƓΦ_~3{ⴠ7>7otq[gPunr~>-NKU]Meݨ.}4H;ލ'err$٬[.d~z]z!]/|iZ0`ev׮pHz7PAzU2\67U; pvQ:epTեx2^{ m9o~{$~ 72 gԟci! i]?O_{Viyv~*d㛁VBQnngݽ|fzUMF|2Q;nWUoso C,?f͞˜t Br+whl\ bUq )Fc\%79D^D+ He+tjp;zWDs>TL)FTn(gPnrx%[ib7RRoP5@(ZwG'fl G2t[5j 1 +A 4SqvQ*EIV7 tueXWie&)*&ʕd&\O5̠ 䑃 %0#,^fE .|EpIWkyQ wu;N t8NI uf] ku Sl77I<U@C4"Th k֍yn)!z]c*$LJkOw? ksr1vW1db>o\/|ps2G[r9ys\^J9)FbrK-vo8?+N-m2.vvC4:)0^94-6A`BpC2FA)x{G(9t;в`!hYn.pH(gI "ډ,h#Uj.4 ǀ0YmS%1IۺlK\&b$0F^]s2s$HaB!g᮱WrBzrQhLRhU8 MUG\S+:T e@͞\08TNŒF*[rm@EJu^jTw($ "$w: t/3H$R[sRSC*BnjկJ*WkL:S@(;ASO͔HHzyJ0YU҂{u&u^Ne7RGMEdB󫞈2f5PwӺU2 _j6o mM+"*,ʮV@rsTw-IEI*fHB8EL]RV;xujn5H:'hA(N^g!LT?(?T#:J-D]Oev{SG]%S<[WM`؇vxl&vx`X ,oFa쌍\_|wIՄ]ўώ7QNS-!FHıMh ^~lNw/FR;Y1uZ%qYM 2v'uؠ`뛮b=k .PRT1t wB+y2p%䨮McdGڵ7WlD0 o*t'NA6u_mCnR^}l?@=! VZ0VS +=cbiFhĞ$wn &@;֊Ipj0R `$RڣNautdX(AbsuZ9ۀO""y"H&X%. (vNXAy%R1Q gt4t2I"wZתx'OH]|du<4 'KR1 P#gTƵ?)KWUɝfoJU9@ Pb@UH d2CTD$82KNHUP5w \Y jkr D9']n,e .uEdđH$*  m!8w4!ѺL'y: V=v4SٖP=!Dsݟo&;Zfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/16/character-set.svgz000066400000000000000000000044451231434177300274500ustar00rootroot00000000000000}uFcharacter-set.svgzX[oF}n~WyIpvi ݷF274)e$E[Nn@U.f4ÓnWuV3F,Ų\etEu4/ :+wgON6G}᫴)EUy7y'8z臛mY5On3SD|."M(^|)&}E9\כ'Q!^i$)jwdY^%k~ bOfj9hlwUNj/P|9|]oՖCjE{s%'!1o&UtLSJ̍OjqgŧGig[ztI䜒U:02l镯Ii [γkG"l\Bvxe33QޜhDb0#4/buVgy)Ӧ*w~=bY.BHp6ug'd1ATTSU/0L7| q֐H>԰lT4YRn|1D^He4rlwG UKMM̃ʯ^;.VtaASTpǦ-usNjS{m [.ط(yĴg}iڙN4ǟ9LsqYyl&O# AO !t;>Ybyz3x_E}u:J*yb挥˙[%1Ω[1ԱY?Y2]C 0#sRZnٝi њ3;6-J>ˏ }7rG; d~ҒQrC~&VXg~?z0l-UZ%jbj%BC\Rβx..b3a>?N9S_s\nvnlPF#F5FQy׏ބx23J k23uO_GO%Hd%v2ådUY*`|]Nח)dpL{8uwnMl2iaq^^<6sQV+_ nPj~ډOPpw-ܿ魇u~v}YGVE [}uȠؠpqj{7J~-K\h-+uevZrwo ."L *Ci{t*UchOB2mM*N|& ӏ,8»Oc-}% Njp;qK,dJbRXe]|W~XeE@I ^-r>uẀ^zCڜeW馽/!Nq"4[@k.ʂBMۭ84l"m\P^쳧]6b8'Z:cbfaJE#L()1GXsœBX5S.(Nuv a\Fo#A B\# z@ZH0 AKXWrb!1+q8Uv!iq8)L;64GȜSDwkc:rP`'o:`|2vbVv;;CJ ccF;"vTl,F9&"mLh#д!J50obmamD]C1[").c0j3A = k**b\jѿYpqrȕ amYBbbm Zh1h; dpkw ZLZPѰJ\D.9S26h&kea{91$a\̴iո >diM޳#Tݶp4XzLX /5TP;T h%D25(8fV!=H[Oʇs;Xm>focuswriter-1.4.5/resources/images/icons/oxygen/scalable/16/document-new.svgz000066400000000000000000000071641231434177300273310ustar00rootroot00000000000000Zr}|}YW$ vʗM2IަhII )8T"X@8>h4@|Y LdH#2$,d/f8(8ǫߏǃIq췠2;o4u-(K/1ռ,^'~=orϒrȱ}ͨcR|鼺bf\:Iוߥyp2$2)yOwi^,*, :˒AjڂAk7Lj3WX..YuАE 'M~-s2"_&UNe˻lR]LY}&^&T=P.ַ՗JZM?TuSf+$n*\y*NgFZR{ٲao4bU~z<j]҂e}+A7"D98qZ=N[uŢLVEvin Uf4IIƔlxĤTu\-v)/\BF*iVM򕫁Tj"c4Vv*]Wu&wh.4$F I*qEx2jT/A}zX_p v]6XٶmQ1 ւ뎎`bqZl‚Y0PԳH_"'Kd0NH` +MB 7 2!L{c$2ǹ!Z"ёM|(zjZ[j9I"{0>Bڥi6/9 HԍC w^)4Vf*l?U~ Y,NG^E.EEhDeW*RKF;>9pZVAqvt'U#i~׸w@~1Ɯ ] ̅yosad0:s!/ԅD Ʋ!s`1JeK~,N( cve{d;XRiA,`Q%1cŒQkQCJ ~ͣFRz?m*X6%[l/Fg1HouD1٬q[Bq8vOX(-8SA4ca?U{ۇu<}IX>WQ ʛkX|/:MKOfc!^ަW ,AĦH}P_U^̓b]>x>'h*5o+;BB&L^{V^HNdVgK2]CWܬ7ͦ&y\ Mm^.!U'W,)11-ݽ뻿s-?]Sg\8mwi]De].rE"]Y"t&&礪$ojˤjĈו-0&U~G& jIFu .䇶 xqKhQ%7Y/iO3X3@zOUK&"(z 53:X4o MuMt/:ywb U?!nlVI3O߽wagwݼ;{h\r}9l)o Q. #1!$(83$FHVg.x(:t/..wta$̓H={oHa6 w}]$F<4}z'a$/6O^iphbM 3Cr)ZkNǜra_4g梃'h{f2&<"q.}4$9}N6|')H4Ba.9ql }ayT]yZd @o(U]a+珚b/e]sr!J^Dl;%`#!7*F"% 눣oA7ٟz)Msn uѢ0fvͻ'abL8n$HJI$']=yG4ׇO=Rq<>|Œnb`Y븺nlCY$ "MLy[BT4l}F5M;GfSo#I0_s VQď,ϒF껫DwYyd} &4#3RjFU#_LD.w9M$啍P&Q$-߈Q iKjh !!e D(׶WtB k](HgpRn6zrI#|!G5 _8*PB0c;0>Z3֐  %͘@f͐h 6a1+9S@}k!sP&IB7{ʛxżE*$ͳRvRh#)Y]Ö㉡&FpL*]Kcf4@) jš(P5npl&V[v#Rhmzڼh#FVIŌK W6rB+j>wd| cyBl]/vb}LiϷB$͆R n)ީh3ϖ +A|ڽp.1iJX OFB57яDF kt۴GcQn%::/}j/:(F0 \3HI_,(4J8->pJpCab >9LhQQP2{wl &B! zj{uNNGrq9RZ}+q6]q`ʣ>YEZRL[cͩ>Nq':nuTfz$ ^RDJ NiKq -ǍcDV 41SH\p##HCԈܒ*#KkפTDR*axnKARʽ#.@oI_{&Uy` ޶?G*.[ܮir|{c)φ]]Zw5 ^x- vS/rPh/]tRƻa7ւ{NPq(Yg{y3RLۼɆ3<1O 81l}@focuswriter-1.4.5/resources/images/icons/oxygen/scalable/16/document-open.svgz000066400000000000000000010425201231434177300274750ustar00rootroot00000000000000Wu&z_s)9ɖ  ps DD_KZ3-昻v_ѵ7'' !zyO}C~??gY+@%j]Aо|80~_e-_~O\/ِ俤C?ީm- !/0ӟ>חOxyb ,6ꗥP]ޯ vyK-ug,V0ŽaQEW?4m+ 0ty߶wG{{UJ>޿O,6yq<&7!/"|4_?dku!J?e'O_?&d? N3CK!l?<0f-#cUCC㧿uM@q!G8is(N_pⶅ@HJ =z?Y6>o?$Nr>]?_X~li|~lgyϭa_.6Oo]a?:~PK~o3ǻX}0סᎦz sq_I/ 3dhWE`6BfMW;^HagF`]\ߺ-wCKN156,YuTVٚe9e{oօ;,YQdG`]8DVqX-?H͋+Sͱ ~!{z1O]Tvr^Rɾ5G}J|ث+ԄH/{~$$dUeh%dG0kҸH?YǏE-Ǖ&?6: >UQdL WϡPd* G.^7hf!Vps5d~(`4pr  tأR?Z!|5i;cWIL|C*m6920=4f $]2Q -j>Vg-XdܞϲS,e0+537D@eT[6%[!)> b&quOȫi0.SUNq"kէO:.k΁+A@u65QV|N:-5~YG\zSW5v`K+]ׁ6YD˨=v֧98 uY#弰콨<./*]8Wx+Fp7ˡH3`B֧0 6!Ү NAL_2*tȶvqX.@%(y(̙;<`r\vPFC@o|Yqt\dŒ5a^S=|ET)h6i g m/62ٕ- &y_'sGt{vԵߝRDHOLf&  U85M4Gaq1P/SU_ x>o\$\%wy>Y؏عVy"HBEʠk#pW#r\q T(:÷MC-L 5ШB>6c [#W9!+#ѰQ:<i̽/g#9l?^ ; _=kq\m]9iBS@єo~>W.IiO;Χ-~ToH~4*i-_ùUQK܎vƘ2lk%SW:o8qg7זJ6ߪ>@C?3_p] O# -:♰_dP4)(fDw8Ȳ Ak":>UX N=:VvIzs*2fУO$Pr. w{z&O%e;a\n&YOYHLyٲiڬyS) ޟ^ LE=IԾi0++0T.Ax,]w&YܐٻB9@6uԲcLSv`xu6IKcʋԄS.# NFQ?'Sy#D4S#LPnd@9YsEЄp!R'\VN)zaEu-wh&t!eSξqڲeqKP - B~eA@,֩d{֊x /C.ﲴagtWI0o W]fEY 'hJ3Kx$ˣ ӾrTd@PZB䵾Di]Q>;QFDM*vV9cF #kƴ'wV u ~.̎k7lzMKP;[6ѯCh;躴g?(9앏P1`Z.,|^h7ȍ;T9_5V' C줦HnNJCE4xYTΙ4Sa .2i0gE`H6(G3A6Cv_+Lh>`)X蹜7֧z%B_PE}mA5NՉQpT4PL+ w&;;0S~hƗ8 E?E_GvMLn,~ ߁fKp.͉crB4J Gƾlis< >;Xg1 u`U)sE\`~toM$l o*`z9j@*m QmaX,BDcd<(hy s/.1j+?00B}=N[uR0S]T̾E PTty]AģK`<G!( *TD* g6R=3çimA|=>Ȼ.d\>v dhx[is#?džh ` \v3ՉN蠶*W7 A'u/`?q!Ɗ.1\,č&)7=*kćW R2^/962x9b@9Ð߇ЅgC=D ͎ѴDv: S_\<'6<,h78tr((hG ֤B Z!\$i Rf'c$ᄹ`4bc_ u|#6V 9VaXֱh*Gh* )oaJ+mD~aI!.秵q,F`fhw1cBnE~FDw"|#uu5]R1D,eR26F@ǾDV<0fZ~֗ŁfW[ysߕyOrAſy$0Q3F6'G  ʏNp9CiS]$xsmf6cg Oe9r63 N+e{Z8=|61,zkXUkuIg"&|`P ضEּEy=>qU߁7~Q!_4pjm&.DB3&ZzYX |/:M~{l-GG#ag.ߩU$N..$a$JyIgrbz0Pݳ}=^& -aoyGmс:Ui=~쥖o|>o/=dYC^i2-9x{hﮚ"]Nu16Ҷntq[eB; y)G7Gy}Kހ:iFlaq}%Y2P]rԙ~]l<;CsAV/FGn8Lt$9)emcA~=%YQ "' 6ZKT)& Cʨ6ikpuڊ;'0 {CD^-)QCE0#)_˃q*Ɇ6|!K#2IWT|Q= Vf,(i=.Ģ5y2 :or"m^m&x.zMZ|k9Mz?xn7`-3#Xh$IY7 \1,*(FVeW&x"[?'RU٘h.84&6L0%]%\÷"B̲2w|.s W&rkyJ/@Y ߜ |\83/q-_fe3nT2ӚӐ@ wQ4D f&s=J,hCCFre)) AvKЎoUU2ˏUB7(/ ,mmoB#p ϶L3^Mm1%dzAd3 +Q1Iw X>Ȝb(jeTmlz{dEY+IŢ~P "Bi.Җ(k:;loYsCKcOWog"/2Pdd<3E(<vW-r =p۾wI B=e˛oPTBQ37?<uL~̊NE _>Yɔj7T2]g{}lPGl}Z6m,H'<ܛ|gZRto\q_۟0AxKKwwRXX?>>L%7|_*{H=*οurSEl1rO0X(|jS5m)拭iMKytefkݞq8-}OCmV0\362ܣX콎$QZىM^lVō lڍt)(W 1쾜z_yak6Z[bm0+1MIb ^QPa=(]m3Ό/gK^鶣lqQ*(|˴Ga{̑-$=H܇C=> jޥw}gjbŨFȐ¸gy+,w{!\k>}/dbN\sDaHED!6#\;H#|ln.I@|ʿ6XOl׫; xBL@?|a h`3]§"^[U keԾQwD-X /T:x)]V>P' [* JNISeMHvhB-m޼NMED W2Ӡ5O#F745 z?p`i8$6JVL|7i(}NNټ:ofozr(>X+)B'pw^}&ިLY"+hvzxs6H]u6U{G~)#e}Ѫ+Y"Wt=}:B),!?\G/7-bSA(qMRD#\&Ry FM[7Z|5f)v8)h `a>a聊`؉]O@F Nzh*o#O٥ X&Rk:cX Sx _r%Ls,17R˸)3^&*ƒ!7}q,d/5ݦ/~X}+\(VϵRCɶ9Z V;km} ^hyYQ0P!pC2$4!j 9\j)Jkqՠta&3z~ͮh:Lyx(i8ax>#9- bCة'.6*̊:-\[. Ѣ)XB~@Z/hzZXA;yJe"fCXSۥvo- fԾh.pȸzY:Ǭ%=科ޖ#z]#q^<FZr➏e0<#C40:!l n"dj<|TU dx/Cmg@~wN#~crr'E)Jj wBҸ|d` OAB@a\ZM(Gʋ _1l7GJ&}&Cx(fYPaɤE&yC;R"C]wY&gH< 4{EAK4wP ˠmdb>Hґ!0 5MHxu=vYowf }ZXB)uL)h.#$DZuC~> q2-(2p+4x\ӨZ%~x7MUM9RQ``anNM]rѫpT=-p_n{]7]tȜ3yY‚-3nsYXJrngϱT2dtbGO?l<r=<s{(m;C؃vhÊ/z5ok]E0J׏,Ƣ/#{7MäDt5ڑ̗v.vo V鑞Y1#a t,ĢP @kxVRBh6 ,`a_~JLB@毒ӜP̽6d{& 2 7a͇F .kB@GY*jE7{Lu=]8ed։t\"!Yݬ2vג'Mxå0T/9+ل8eO p"Ә$r2[jo~`cY5*hoyLj| R_ɮlXy '`!4<Ï4hvq͌?2=>)Dci=.ɦtZ'+[%.$B uU G vG򸦹nMYNZ-(7$)!1y$! <>dM~olDVwIE&>tQuGm(Jӥ}p&KS.aJC7Jj7'q&Y8( -KPV ֈve]cl276ԓ&+Ƴ&ŋ-6B4Rm~9NCx@pB$}ݷ^.*~T4 lQMs#՛*d)PJ2B{=:KND|GB9(Y!YWVҶtiGB ,+\nQ iwp3hjg_C;2gd,H5}` *Ǐp9m̐*֏) 'YT, i!M<5i3S9lȝFB!--ajerU5MBܤ-Q~d;NT()-Y"25 +Z0@1 A Au5ceEmu>W!8rbqcl(Pno.!>~ )BUm=vhT񰣨z _E̱nJC ΰB~!*Ӥ8rc$MG`#X*t"6RP:|Yx̶dsᅂQ(a{۶%$|aH7uF h/E9 ^+Ha)HTO}͐OP \@$U?"(yI+Gx֕"v0VxHJ Ƌi`o`#'n 6 VlUW2݅_ 9ot994T|hyr}+,RwY:=V㋙8<+?1R&Ȩge$T%w|u2AT+) qGP-Q)!'g~X=4x}"O$Æ6$vz++[qw})R󓇣taQԐJjhzYu=1Z_B~XwUHB[7ٜ:=Gף8Z~T8&C~0s4V:z;eХgH_) |x6=k י:UWw-t6"CY֚D w[z~8J]F͊Oʷ.>8^B&hRN+j͝CVy7!I`5'm؉Qr%,jE kg%VυkK/^wqk_taR alu!ݔ w & ȅ1e#si{%"(*hbKQQs^. L'V&Y$\`i:ֆfuם[My~3¹A:ʳ0N8Ƒz 0jKћ"->.|vHEI EeבXhT!-7׹LbL9fzG=Ȼ/c '7{k 91:9}od.S_  v>edXvUTuĺ xsxn!A'lr?n]U`HwYD/AU#oox}o&n2Lح'ʣsB+fRaS,Kȣº ZŹؽGhH'5|w07}Jl{(⦯g{ӎ{@oVHNĮf$=vϫ #MU;\!1</CdћR{ǐjj?EWMKT|Cl_yS»0z6?ѥN64{پ$F2kMFa-/̞Reysss$ 8|(p gw˜ l_oqDIXp~0٥k<*|$ۘd)x7eQm\ .kŀ~L9›ɿ]sm2 -)Ow7F+`+?y8~Wg~YOn@ve`<>žF)T9zrW54[ϛR8A4[AMTe,6~ E 0Z<`dT@Gwd!*f(F9{{;խrTȳ]h7,Ə,R(czlsPx/ՑsS١ΙX@8NGUEx嬅sg;&Lqb#4X8*LJ{_%Лڳ~n:U!4 Y-|>ˮ~(),JAR6YkT@c0ǿ/[Qu>6pDg_] gמ#+~Ȃb/]6'~,&NE2}oV"*)v+W.(kL/KQiM$D.uPOaRVj Nވ\# "e)<{wEFEj3|3MnSiBjV"t ;ܺNC&J 5悔W"MEyn!; *]psn|ثu>K)F"M"74X@﯋+w6RӦT cfwħ|g {2HigϮ&?CdLWbv=>b֘-Z@2|EFʛq07Ā蘶{_\H)U>v=2i.k>&P$qysd[ܐ`B}_.2xB#p%T' i '2)MNJ'+ Vg7%1KğkE3iO)K'T\Q 4zL/n%9(+=<0gRɼ}GPftҧ}ϻ>xA9f>v-NpP1W_r;`.} gMjn[ MM=E$9a ^ Ŗ}?☥g@s2pᬟ}[e3)Kh5x{jDs-2zB톣\ţxMJSp[Fl8M~`[ u/7xtl@q=74|1rHh'ehҧeBx'N!F3.E">%qoŎc=Db>x,="YVYlkSZG4=I;A7s{= _xq,do 1." f /f6)vi9`!>˼vdj$4T5 Fa χ`\"nA~Uǿ$}mK)e41a]9פ0}Bh]ۼ8rA + HWt0bL9`e> :LlÝ1zݴԬGNU:iA)i0&T"Oq.2h٦T4ij[c,I[$%9h29g0g-v>ͼc$PL7!̻SwXAqȶgrulDc -{"(\y{TE!k<5ƙ Orf[`zNO9<|Ug ;0Prb~iy!2ǵ,] >(j:¶1QE^y44B#E#ވ7K+8{WL2#v~"+T+^_ r 6S \2Jsmr]~$ukڇeri<7m4̥@bvOR.cDn[Fm)nsP{%PmJNz7-<վ(<]k{L4[ F`۸T* UDı&phߟ;NZJgL 2k‚kEgV7@Hv(ayIA%VմG|wI}7BÅӓe$S9}̮㝻GG*s^Xis7~bv|i i87az4Mh>*JdbH ~*;❫yZ=9sEUģ~|9tJ$a' f{|3ш;RCХ/4w90A*"xՅ)#]{*<$8 zdv1neAMjyb s HB^=#{E['ڞ8V'/YWmb$9Oo+j=6á + %=ֵ(HkbRx[$ 9\$멺5w.1P@:U>hPԗR[Ic;CSxH2+dR@!u.? p+~>/e3Э%|D+'0L 9)erWx۽drI_ofBZ$ r\`,wh쓸L~migItodVSY;(H}ƕn"Sz)#hj\ŷMc' $ষCܱyzA<"g E똻.L%g[ZuhM\GVɉn++ M jXu*kh/ CG-8R{bMW,-X (TjeU/lky] 9{q(og4.uOwa y_ |Ehb.֚E_V9'UZNOz ^Q򑛼#(>r[Ʈris/-[~Ĺh﹵'s+=H7$;]Ҟy@pkOᣙqĒ\5{Um'|Cɑ%4 $ u"TU5j˪TxE7ӫcLr"jd d1kdi?lI'o<!3pc۬7ik̬P4-A3ikڠAe %\$GWM=®'Sq3K*@XNߝΤm]_~B G=RvO$q{f#_#⟦]{XNڌLW'OWQcq_HӍ^ޘ\dCw_S0bt+Bi4&\›K pCAi!pSpd}ڔ~y6ti_su>uOu⋊,X>٣WFU1t_FNNVq\H;T)Ank45fn{+ͿMt%i >[h7h62B~@cPiTJ"d˛n'mIVû^,jҩy?kΜe-_@r":C[$…ROlv퇐aV|E-=ry8IR~|8#Me $*omJx2CwZT_:2n(+U45!7|\k8SsC&lBw8f?Mà)oRXlj_̻6ŒMm,,2žO9ixl =X+flJA z匴7-|~Q5dSEE@5t׍z, :S'1~HƤZ;IxV8o=B+hKG7p쥠WD;1;),μaIk) f^cj5Ö&gNnԑ|}R]>ҒW|Fx8!4_aDA(e7 ֯d>c.˙/ ːQjMJ۟_y J_/ 6<؞;W*eԎ>W\YP~>sE d[Ys7#])<[Wb'BSڀ|!Z Hn|\skm~qzD/vZaytw0FȟηR ?0Q'S"Yl}ꑙU*MZn9(|9m>F!-kՓD„(FY'/bpMXI]3SU#?RnT.}~%X/'϶џ`)ӴaC0U}?i@>^Ig4+$ySBE$"AϮőy-bЃŞ` io߸~J~  U|xvb+uqVZ` (,wLyʵ!D4VF;F3$M{E~ղN/e\(\C n(J[ wn\fpKSj_ԂyfI 7Sn'Pf@iɂe5"ƿzU=\_wQ?*w`pB;EV<[ IC#Ż"I}1ƴ'I ~_ZU4Xq[Ti={Rp[39Y?T$]6")h'\LEC/k$wfGfD ,P?~fr&O3qhn1e}OH#KF #6'ZY{[ԫl.hˬI˱^3K?2RRF&_&@sldT!&Ŷ0ڿuO~P =BPegB"`ٿrJ2-$ZDMүƐجD#k鉬U0۴5=%=f5THJ)F&e $p@<0lT]? Qeٱx(-o_g_tLNXO=j ֋9Jɭ%|)ґ5Mj!VVہ5|sw_\4^>m~="y y[[J[e5BI ڈa|52R}J%Kӓ$=_+f Β>,dJ3/{}CzIg3LH3&m=&i +.ZD']1ܶ>#R'Ֆdm|Yr+^xV1pPw) I@&ـHP_+cc j%֌tocm7;Ǣh 3_}sX?zߓ%cf?vFև%0)+J0>O>f1{O 4#!8?i}m*2B pߺGB%ܛ|C37?(q qޔ6u#akzBx4}ƸakLS ?sCNǸi:[=bIr-!`".=NITr;.҅M~YQ>Z aKQM-k{^UX0[ұFA_f6i''k%8ξp,̚4;Qњu1WW;nz!dAkVB^ jZK&E`.O0]jfޖb07븹De~GQn 9lT꺂1P$i)ȕ E 4܄bh 0.4齌c~EZ_ߙ̻t3|;Yd8 j)n*PkC{^D _'~Rz''~2!zT*z0$N1Ҵ¾DhϽv-=RI1hg-z+PoW9,wYg,?O&eUUUg_[O^ GXk o+վ " [e< d㫄ɵyӀ@O^5fkD_bULDȁ9ޏߺ%fZY2k{D$YWF1I6gfT,@6`7SNKCovVӍz`ڂiɷk%^QdjԐ_ =@ՈAp.-I't8Bσj# Dq ^:l S*3iotBB՝a5ֽ8)R[;OܧH|Uj@7a><H6tv-뭃j" בtX =zΝU 7sgs"c ;3(~hQcI/v^6o2S>s{<*sB33zMb9Df^wi/z4as2QbXfJac 39 >{MX5;l[TL1uCXk*L8QX8p㜛rVMvqqFjI[pSi%>$wl@aL xCKT>uni2!x?8'cl [RJGPaiV ͗y7Uʮ~ 4E7 qtTX3P[iᐾzA\餛p-+J)r~`nB8Bn~ H6Q{Q}Rag^J-D"jatbpۣ֤O\H#<~c0RNJOtZEY؝-%+N`Ln ,9OzSv6# K'O&Kb֫5_jh qN@P) 86:cPC)="x''{;ȍB$R3Cϓ%&C[Yrր'0[8j8sևת`4;%j_4,(/JT[\RƁE[^=&V_91=0R7Ʊn[© #YVYD%YaSَvz. ^ x4iF1ã?R!lE(}YlƝ{(55d1^Z=rL}3_OAM="}{dppYùL$4!WBvMc0)Ӭ-". e!fڜv@m)^rK@ C㿂1?in\o/}=oh6p3дƄCBJJ槵% U(AʥPPN"(frU}fiuvuwH̾g9<ˤ"o/9|KnH5[N,MB D;t-كH<0?tN8K x6xM1vAFBSX D^rCJQǾGe '^I G('iw#?Z_)b ;^9۠O}'T*-V5mEkLڅR%Q}/dC|hy2C嵶@'6<_H(¨lM;d H5쳚7ь3pkhV;kaL[m@%O񫈤<>J["2KVo٦Ļ1Rdl+O(3֘M`W \.ſAub" VdNgB"Dn}Ǹ_/9jy= nsk@ I~DTqvvSő,RCwdKpXkS27ǟ%YLQHU@Љ`CͼIEDKUq@, wGT7>ڷB2"0ܷkU9)nL6!..#y$G|!H3;>*U8 RY]0Q.VrJ2!;#^Mլt㩔?HZ]$+, LخYLY%!|/J]0[kau-f= ~!<;Me*b#Z`M!;)}~-r885 u"pF\N BFTq@-rAzuk..MbV6sO6Y,y;(͈y UҘ& | F̔WYXH/JjNJvl!^. VCK }s*DD^¯5ߓ%5VoioP;H:dk TO^VH]T| ȝ3~4WMN쒚|i=Dg5%kD=1gFdv+eI14mIdMљ]TEIBFkK'TV0js>YTm_tN)vIalQ 2+tj/{`CJt"=_@6Rmٶ~yO J5Íj%,v6x)e@R/&%Oaҟо5uᣌnt_6Av_fzNE tqDB iy4`{")運PRKl4R-+gd<]"G+p?Bg.y2<"Ja=MA?F4HP| -$qc[ˡ\Pcp%i[Rx"eVPФ r5!bмcdO.f3HyDA=!=NW"*]/{ԟfy$SspGup;q00E6_N%m^7 9F<|'aXZ&@@:F*?STXS ExȀD?S!l!I-kQtLx.>%d[$z=gNV+7s_5oeϠ́f\e+: o4ao&r[.f"O"(߷ܪ|z^8޿M~$,(%&ŶaI`vMɺW\H8baNL7^_ 33&-hm{V rr[UΥ qnFP#鼠8Fd)gJ/1A1Yۘ"_ {1Nd*UR1r {=E۟Vc9Ko1/)`ut0Ʒh 6.)iM?;6,?2üqR@r "# pg>m^m8a"7qe7*kmiot ޴"CR●ڢ!EůB*ri2b O,Y$0,t.4 =GͯnV֏TJ.$'-JSAR?hp֝Hg3 96X|į([P.%U;SZx Dv'pp'B>gv1~wiN֪Iɩq2Z!}JJh٠e?@F 6mWzo 4 $BŔyK\R{/Cj>=7kine-Gjmpm<">:a8_OgZX› 7 y#˴%``v4f<2 Zk4I ߜ'px{.=Qf]B ӹ50.;w,Y\~ 17 |N72Д9]rAL&:j(R!a۪4.2+`xМ`c1QQ0 PQ{UI+p$O!BO(9]N}9zԭ 'o ^n`2nCwn;ShU̥};=*n06Ծ`Y#p*U>NW3h꽛ƚ3]O@E2G~}khgj? {+"KKgK:HsgQMoޘȳZt~V`,MgvWS E?GzWVDĹC^R/̏,PSd'5KCĴgQbC~-7crE\il'z+׆؀S/KBmƽCql($kTdXWR&d6$ Q쬖o^}#3NI#==Fo<%2[ ȇy)'CvH66Y4[eJב]~__VϘ=,bŪ~e bn?z룗Em*wGB ]yIoM>\=rS\'afo(y B`9ߕ9 ޼ =BPxn9$r#]'I+/ϧ-{cL]~ug _届Y@U_?EwVpS S td"g^q`3Cx} oS݊q_vR4Qkks.P;+\]#BA`"\]\c=Ica!vu zhr)*5/Sn"Xr?D]()d,ZB7[-k+ʕ._RQavblxolVULM`fi(Um)b qv3$ޘIu4YcӴaKOy4-+{\}[䒵P'u~~Cu| C$]²[sɸ_;Nm襲:fǠ.h7ܗ|`Z.N`s2 ìQ]r J+I|,4jezuĝւ>M{7:1]^w1yMߑ%(."?fuBIo)P&n% G6kc6I7ȅt6S%2V"(@5-=ySNZ뇋hCZr\HŹu~9)3<~m_T!F}x" ⡇7ʷ)S̔|"!pb4NvZ]㋼>~rLW׈ms|0OH+1;15M>ቖ߄V7Cr\HysD|Nd{sկE0%דLVS}g:~ 7~b)Uώ[~AoLdeSDwʓ:$ۓS8n_+>(YնC-L6W|=h<ʺ[TCהp7>R'qUz'KۗSEA[A(`R{evvW+*,V Q^$T0#p_~|9$ab 4*vq`.v)B !IEظf,rTY ǹ`LVc&FG9>.o>iME-f(Z)ɿ%UѬ|ӑVeWO, x]OӾJ yP?@GP+wr)ꍲ]O ~c+hIOOI1AdL5sX+}[bw``Өtt@Cgٿ2ELnIFNxƣG>V R,1 MpX>+">@_Re(Fו7KMYjqƊ<-i90I,XmC:gO.(<,S& `x2M9ܱ ֢w?_ LP*@n$/L$G-<-\DjjG1_%81*yѕHK`D1S=yد{NδIbGĆn0}˃4]׽.bU+"atNOa! b7@pć: ,[?hd=D\ay{֗o10?Q8{];c1)HOJB1߆Ky1=荪dE8UBXװ+Et@@2'SL{::ǽgʚ@pk,@F^6.xme\_%!}[\r!<¨DsTemRFDAMyD1bP3i,߁ |q˛cFLTI'n'z^Vػ9V4촍NKElD )P~33mPX&ϒXt&DbwEDd`aUҕԾ MAKvTS6_%g-n?իbT4|8@JJM:lf'j ^&p`sԪ )lzANSp$(#PfGJygQL37V׉6h)kkj?Ug1s?"x,DyOE;{nKI|>ufi=!3WBƋD|TyR>CZO5$;UX ;FK'df^s_% ѥF~)ۃ9!CD4x/Kule1i\TZ v2" ?5OpuPsR'MJȿr%S8]ThΏVG<*b]m . lÇ͵"K` G QNYRG|DCdsyTeaMk5#;x?DJ;lTk~ )%QB5mK.<`O6zo!RLdxԷ#01qwH8IN- $A%z^@},I.minDS4B/ΞP21M VB6DpĢxL^>2Du#4~_: tС ;迃oG[cXJ&JMBx­autQqt !\T'O2 }'($kX4EHdtp7JG!B2?)iTߗ`TE\CXVIC ^3bZg4 -qN>R,E]C7X!(??9v$Zrdlvmf\ bQķoMu5 t"MFu%n'B֘3X\YJz{&s h檘{s_5 skZHo91?]‹54|t;Z=NCS.7W5?7vF<%%~~EEC\Z0I.HA邰UC ]6:=*MoR=4e'ٿRѠL݆2I_'c:O*ܮ vjA*4z/{FEq6zshtjm)|Jf򝏬hU;g ikcZ ~Kꠒ{~ol1\|_= bDΞY_I/&6úT4^Ano#=zbЎ1tTP%߅/Oip5/nj//J:AX* l| 2f 0(3BTkS,`t4}ɳ SlĂW+~eH8\b kiTd6Ɯ52\C6K&=fWQi30=&sfa dH>ba8eJ-@#ֿN%>•)\݂ʚ(_&U 4/M׫_Dt8!b_Σ/jQ/x+7nFI:wjmQBKqdGʞEIY=>ƮoFta6v`z!@jW|^ ʓqRz(Hôtw`AP +kX}G4ꢥюcW@P~Vހf諡$v.WژQ43"B}AK58uk~!|B(~.Cְ'f:Y8*-^[71C5A/R3a!bbM>#vl"Ӝ,wG3OnhyQ+/·maxu26{x "{PMu)L_cӉEOA{g)AC- /-^2Lp!Zr&VJzOfC>=G|ބ Rlu;Rc>ovԹC&,eY&tBGY祈kfNl\S\RXTv? Vy2)$+x@w C?EDzNbԉgfַH`|+YE!W9#,D_Y7.WOAA۰kX6M:"X0f@PЌ54FrKWwJx^2pFMBN؈~_o]d~A5~Lc0LA+ Jʭ5 +,~ϋsn.*<[$Zkf]l7}#\bj,:< ~"lӏ:C7& _qY`S%ɦ ̄+D"xLEte \Fեzfށ=GϞ#O4Jٞ5z&āyd^\dҕռMǍl<~57׬߭ڻ4}T,h^}^/j%S;...v9%:PeзUL9Zs{(a{r9u}_Q !*r LIm;nOJpqYNomY*7U!h|GBO|L{P}3O9Qʓ:O<46/)z$zH֒6DUAE{+O6b3er5m ɴ6|@t$&lEG!+gd |VXrDڰ/eS`Vo'U:/52oxPT/?YT IrN✌hDm+ҒK[&os.GPFounޫ] Fo8_/fCO[#fK|V??/# W62u힤o!W Toe@FG?)Dpd4[߮Ϋc=qf\CHGGDS׏J5ᨽ70, ,&`v.VP*?/u`)oL},8{5wd({]%Y OVҘH^NKrK Qn_.k FĘ}ea•}ܑ.z#RRKu.< g7:όcCf{K"2' n~J ZwP+]5$G.LWE`2P+<Z蓩ҕ*.1~|esV'tB2mt=J!CGu]ocHFVne95BPWѦ1:yD%XedNmWkȇȮڷ!Gi(by}(YN*'X?}F2S!TCL277(m34}v֞~`2.&jKt+צqջ'biE6zy9XsCyLgZ5T;9~<|ZSM#C:E}g7Szhz_Sg$¥=*/իÖf39Z[м,4b:m5=0,4񞘩U SI_blưi'[!9'/X%"?b=H?N1v,|Ocxuu"m\G;>&"9 :S~ɩmlBcdhDZ kI2{A.U-kokb-#,) 3']J=8JT#g2hWb3"D8_-'1dɤ$K<?NX/Rӝ9QoƟ%S`*1ݡ,n14[$Ay0-q(C;/M4!C0<3-7YGY842Lik[EqRc8gK% *,:\f,:dر,'ao|Q(e0|ݵI(6uxx|Rs^u#-#4xZɔaCXxn{RItE?Kʑ'YJFF;sƚc;뒏L˦%,(";1ha^9 xoVBU̖&G5e,LQMQXSEd,_Eg8ը ,*hrW,gj`“<=rعQޓ_m.BU=48ϒFKN8ּz㯬poxRO\Eդ9"遇W狋=dW+w8{Ld_܈}HBRô1bԍ(% vF]&e4R]MDVbln2_kI)dF*c9/lްt_ o>[3xpm$ Nݗ ڈlif^p}W |l|"KOA5aydQԘ{xJRp<\?꬈>Tw-3UխҤ 9y@NaNn~bb%$8P*bU$8<"p*- Gk㮏v_l.I&5>YdHm.NPZR7C(@!Z "qAgQnVҏl`$DN {cޅ$G?nwj7ɏy~Ȅ'&6+}2yG7$sO15$[қNӎ)gu%ٟ3SJ׏5mb!7C mţ}_FWFz5z_܈9TˊiXb #^r>=q=,WtIEmuNw9gˌ߄_v<' %w<@kb`>zpZU0_KL/l OP=^e~_~dh8.} pRVW !^_U^xH8F &䨗Jvexx̲GN7IB ,i? ܏m8Az$O+*[?N`eY;J2`EFU`cpY8GX5"$XF1$D Hqޗ'UI +Rt~]xŏ͕x34(6VJr:³z8 ,a \ &9Dj,4\kq;xd+}Wz dzy(RBZ7KX8,V|ɂ_)x~":?}.|#HCBaڣ:-J*n ;wBb`,\j8v7 Q`YkFgꆣ+r}C6Ӽ|hV1Qٱ+g:9 pczmmPÜcu1G#']rFͰ%\hq]DDKzݽ <:Ͽ|}'Ej{9}d?'+sha\<c;thr/g0o[>,ŵjRZB /up]%"5yp 談+^ɱцbV$}# ݀ *q 98̨U;U63s{VʍF0ИyA3u .b*FMʽXqv甋aaba?+ђE#?`l"B 0+c+⯮&ƫ/bh}o;8ֈ68/PU#'Vef: Z:Xcg/L<9x ^G, l:D[K YK/nvP꧅A1H6^ U5KW#UOϋem~ >>BH#@0|c8=0LaULӝyp]T{7PTKoxw{Zܦ7eEh,WlJG@VVlRsq9WCJ .qLwPsٶϑvzD/f/Icڄ)<F{03V~dއOs:|mf~!R>"6]:,c9ߦ  I{}͈yfamhoȂ81&g ]V׊ҁ0Rʇ"a9AxSIʀORoNToLEYt?؉ vPd06Z(C!Wg/;TȅhxHXcs}?=CkOK@7 'O~O̬=#4aa !knn'0C*q&&zs 迺R7BO+Rs6zZ}1"Ƚ7OfIyV;MeGdh[s͗>~coo~wI0]pϚNJ|+ͻ|8Wё;fX pE.|/,oOf9) kR/r nvHScV%(b^?[ 9{9lzuč//OTLGX6cj !flơ7OаћN\9FLzHã q\A7P<(=29W>{1[R SX2:MLD+եE A s rPAmoѯ+Tmf4ʃ)\)R: QZ9.o/(8~!1c ѱ4V&gm0c潤#c;L-*$B+r8Qɿ5nGo__E6N >=zE')H֦ <7~NA40{?#&6RjČ)OFhg*=_d&oPN[Q$C5)66 g:}dlo{zxoHeca@~7r[c7Ґy+ QW .'dx|c_[% 0M0T;לʐk4QXM?'v7xG`W9z ?jXej~V Ev gTd/H^/d6rR3C)&h>@ rǚ4v]Lk0m%PhO `X´1vQ2%K$]ߖoȺL)J()x*3#kL|; {1ت9~ٍU^W9g<mq^jܰ(;uzń͍q-J !U*JN_'ǝVc9 ^qyzΐLi$EM6/z0;2tM]ǣ}i`9*`>ϒAtve__>y+m$c䪉XaTran4a_{5;}-3QFp9M/`re7SN֤Էd$FBŸV c2A[,y.U$sZbPMb _N1vD55xfr|!#ˬO";]=;0#[i{B|+4 } ]=0Di=vP)?J^eGxު.vIC- ]P xB b 'B6.͔oRg[މ$ThIw!* %D4~i3.ȆW0-PhpSXzT(GΕ30JlׯNہ:me)Kfp7rl$|y"Gn:Wu6lRsraMZU3B@tF%vꚃA#l C`/ 7Tg{8)z.iN ljhF\CoK[IJ$liUV[Kk+uwT;\^5F_B78ZM.y(ocC:X+Gׇz[TK&jƕg0+t G+GꯆFǂVKWkCnKS氝tAaE kAa6{Q>o7=2,. qXlV+a'[ GXy~7nd󢹤FXIK>?)PqU'N6z,kk2oȌG=0? biQ9xﴕte%|nz+;Q^ۅs+@ZkR08 ՔZrGkrL:}j'5W* y^ U ){pAIbqwv-1> `Wj04 x0_//6(> [|5@;Wl|5 Pa8T?5Wʯg-Հ%; d$ 7yofI'nNk?:LtǴPw٠B^]m㕜Y5s hUiW7/̌Qٝ"K.$:('H@k9 Mᄋ*y w$9;];JߐYi[SśDT{yRG{"zW\۪^Q_^oل#^x@>.e1.Pv5)[K8GP\ԃŨ@-{$g\`(B qZxϓ5e6֨gNJiFWVQ7Lǿ319n_LCYV=K?Ȱwzo#*3 ]6k/m#>GWKsu](! ~]SD\_>ЏBt \rX捓L@IS\lx8 H&jkjvզaNayϿf[<=Ȳ&CйǴc'E6%k۱o*kaZc6|J^Xօ]㐝%Q ;Gs]6qj. =rr s/{cMAKt3b @dx#a ~>שe5DPh(]nG!F;bO(7oXRۼISUhJswܶ8T ?!GuzSGy%W8hA&:&[6<-#ǿj Myn4=P6U7K=İ_`)[WikNvLľĊf?di~sd?9{I6:$ B'G_FiDŧ}tC ! >/dއ_~| h3r;ѥX(QN˒mt\1yN b{SޮG{U)HQ%h BمK3p\SZ^PVA8Xxp Q78tyFXe4b{BKQT8YҾOp]ӟƤOfhT9'R(kHhFH__vQ>OV`徝E}RK0^!DIDgVUOH*Pd@^ 3xRIBTd_ZTFaZK}8-'POXSu:3J CA\c.%&* H!3|Lh{pA]]^ZXVX}E T&q'J2,F: ]`#2 PXUSmUo$#2<8_-v5''Gh>@z [XqT r EHo ͆,{uXG7D~iʱv(@ys47M"n+C.a$uO&6{$:18+߸P@IgB`9K»6c]Pc'gޔ!l3¨RFc2 ӵ9'e+޴Í^ca8C$R?$ߖG@,+p{6@M왫b=iq2DXKˠ,O i-ɎgԀ J&ݻAw ^TU;1QWlI3brs"svZgE Nl 4*vaQ\QcnAT/`T(]V[E[Up* 34Q@_Eآ4L,FH g>3IJey_T"a6gpq0b "1ΊNM_'LnsgZWh)=|#\LD"F51N>t$oֻnF܆)Xoy3ܛS3 \+i Aq]d$D<_ʁoxPs!~6~!`/n4m߾NNA& \tw^?AMW DfyH343-'FUlMTp(>uu~& _vó[hmqP QWIѯ!Q$7ؽśڤV.zo,IK뀦=:>WspE ⩯7Q'yD机[J ?j3q7X:$~w#԰uRA@a/xKbH5NܱsfCzX Y x,lǯу,M%:7ƿV /CN/TpozLb!2ABBF4M5_8E4Aokޛ |@>ԁ Ŭ%u%?_- a7"jp!w* ܶ[iw^?ڼRdX1ZG2 :DmܻB/H1.ԔXEdP=$=/ذw~m$y/nCqj;RQZE E-kǙ=;g]?=۠c" DYQA+s0/-zVEo{pnۡoi#y-Gwu0a)lw@ =2^xTby5I5> ~mh\[ XoiA`MwGKۻkSp$+a`:7k5kKf|~"nh<7x6`Z" ?ٜ^dfqV|[~F55H zL3;px%PvҲH$o^I74@2Q8u?ZRh;f]YCxak%lŪSbI\cmIa֍JJ`sM8C5ߚz-UQ r$XDȮzRkx;Qo910)/Ii/~_LkkT7 J8+3 UwkҒW\ɡ#m\>09-g[#ɋ@CBTz׋uo'įd<?ӔWqM#=\@H蓞pl="p]R]U\0kM'B+M޻߉;~i|7uizma "eGR)ħ4gkz3_AܯBogu^>܏E?}J{4 4(}.Mc 0`ކn`=ެ-yR ڊ8v〗JU\[W.!f # qѕDRobۑ/]>$9hM$}e5k%HAĚ~Co/aɼaedq V%CС8Rw&Ák~mJʖ{ B2GOa3Xػe[a&Ue뇏46OHEFECHh",s/[10ok@~:BX C™* cR yh}xV^;dR h3%`5Kk! iyv}ₒ,Okx{HwrәU:eD쉜r&5 ,;BMxJt@āog8\;O@BPYgi~,NG}iz-dLvB4]1R2^ywWn*rXۭ>ĺA1HzN4bq Yx\,)GK+8`RoBY+" T5y XSYe,i xҲ?D<6j-ۃX%㯏yLN r@İQYHNgz)d, sW<;@˕ mY":ٸ-f\m6`5 )<BN|Āq7D_!1(;M6Լv$faS^R ASGKoa P/[Lzvĕ[8-p]ǒk~6~9J@x/~ oUyV E,K(gab)v ,<)n>/Pw0;qk"o&Pzz+!-t" +ӳ_W{Hд5qEbM>nx+]PMk"9t( E FU{rى76z-NXɊ=e=w@C`G6}\;)11.3k ?K3 1D MBvDdzLflXolC!K3O~Ȳ:2y'z]U I>fN>oΌmb}g$_/Α݄xk]& ecc޲WD\Bc79K?qmDρ9muwaiݣKPǼtHދEdzmצq%RȬHƝKrNbHDP^8Edrlk>7va%s~5:j>YmT;w a#`'Nm>XUϝ8"xR׆Ä:%or=ާUљ̍NJo^mqVC3`(:^ 5B9#υ^}/a m&(;,bÌ>'Nwu˅| !NM7531N;p]ފ7OȀ,QyBV wi:?۾h`9E]Aի 'X^ƳϴczQR8')(x>9 B F0n呩 &5S1%2IUR%<7Clhy$Tx忯 ="@zT5IM -*~N̈Tf  ؿ␔ G}ǖD۫yx򛧙@I5MD]TƤ$(/w>wrz(.}!9Dmw/31bFJ*S `/#ٍy]zA_pFyT__sP,ѩYdXc7ௌHK#ψP;Sj?ª8+3Gu,czjɣKhRhuQIDoPb~/Io.z4_X L_iCK7 X6ꈘ gOftLzu/n$Eeșzٔnu4xZuP`*uVkJŽXXV,$K}`RS1rm$v.T69r:R_=Oæf:r\v-{Ϫn5o[9f%tHH緈I|\or7&-3b ׶p+0%|˿T>5z=H:/>\GߕK_29hzxGኖVoփqk;XXyelj/zEk)O^ &IF1f0U/h(/׎lq2BEb5=wϚ{Kiڔj2;3%Bo5El=翢BQ&;k/|ȟH5z5JuĤէfSR+l\_T&Keٵ2%¶Qtgl- .ʔ/YGN_q+qҢCJ'VD?SRWt|"3h, |gR~S?@6DW#I}m $q;/Fgs PGPbF;O[pZevB- HfLc5q~m&/dmA2#%rԏMT/']աO(a)$" =?A`g$k3Όqe +M&"RS3EI+׌8i fg{qT4bq#RvX'?+2 u:ְFQZ нHtDHy=:}bu\9M~ۡ."qn4h2r8lje7T/oax*!wLPa#OXUej xр@x ZYNuIhTZPD(XPGf-;?b8 sVŢ$6FSwj˕GcQPfTE|/9o?w;X'`j֭bQ`%žKCFz뇩&3-޳tp>N/c wݘ^4-X>A2'#*xqmĿfт笣WR)xl]0έb\LܑlX 26;r(՘,7oiYvV,CDEbɲǴO:Fe{UV Lyti(PU[7j7kzMY=B˰5J0< vKiWP3I8[CsR@21]cz~zD)RRl4>[KM;?q-/ҷ*)C ڦ+Eum fPk{uf%|~FiǤeaX~GM5Tsq'-ՐNTTJcP8]j+m]s0K8*\U^@+3`1&IWZo4!=F7f;qbfΏዛ| G!gbıesnD_kcX>>A|K5f 7oP܏2^*'>wYT>jQחOSSz+,4~zΟ^y,dk/ {sم6ë́ݡf%Z\}ԡ1 z΄^Xџ-y$ W\ fG6N0ӮaHٚ"VRHd>3%΋1/V~-,l+z'ΐFg_&m&f{atb||, Vc<0'CPab+󋙸(0]|ڇJ_3^J-IY7xV1$fYwS%\-u8,i<ױ&A*G{R;0F2.8OУgS*~I6PWxL~3XD% )=ę2'wӥWS4%?j{[sr.i%_v(K J#ŒTdIPwzя΅YK{jլ`Zygp˧@p_ x+hGv%%t5Weק ʬ?nhœr?Pb.jgQqfٴ9Um:E z`%KNrT{T֢Fe9f1JhX$1>bc/z7%ľ.X|{9S& 0$R֝e?~[#jVҿ AqO~oWT83+֓$61tQO]J5'ގР\>A^Pr!q[B+IWN4@Ot̸( *U#IzvZ2x'"NC2$0 ]ezh?ccEh~gMu+&L AuHֹ 38Ҕu`Y?cQ `rp#cM_J+4xmzt(M!a%A͎;oܔRɌˏ:?jtdhTjzEr%} Y e2Kڱ [\6Hu&ߔ/+"c3jg9 V)|-u7_Iز벮#>=h_/L nu'}%Q)dצ?dNj,+Ʌ!q0腇"y\6Lr %Z%ie_B`jסC8=hj>2#_F3<-(^#%saP9ZZIJjjm ݡ_it.'&6(LS; 5swHpC.lœ4Sǀ!>^ZTJe lo)ޓEmL_j98.1CO81 n!FV]ý.H7\e;CT=H; o t8妶 K5kD+Na%6|4aCC~ ,g%"lRA0u꫃7BgS^x{ ;o.*9NXVFÌ [ pk9Mכ+4Vk;B;2}rs#uҺqle^In&n<~y#m.tj%G8Tijњ]: <"UhCeA-K˧5 O=Mǣ?EP{\xRg][L.2ꏪa9  ] ))K^{$nZ1c Њ f]tS˙뒍7*_GcSe{e=w+}u$瓱B~RVzB8G/o4y^H^V=VE\,D%ǚZ~b\q5l~ni!{l,BGS^}/,a_q$lzAM`:49($ dP }ѭ\騱[j{f-*reqQ%fP6 2iJ6Y*kRQ ƔVbU+-Ϲ={ EB;زORZz}7f?ЭQ%/I"G%H=ihRcnaɟ;hsO͐2 UZ((k1 Ki_^U8S1 ᮛ7hSu}w~!u[xڙBw#oz9NH0c" ~~F[R($.nV’jחb1 h:'EHC!}\`w# oa|!Dt R!rP VYT^)mP?+aX17Q뤦-QZx7?O׶Y_ [{*7qR] -լ$ ve31)riH" +h k@0~Z C|47e~b1D\^9ZBP9`΃NhbU] ҨѪ$Iċ<>er`n;8 w276G,&Ao>a_[gQg|. 6A\ \M}|I pnN"\-mɫ\Q,mpbSVڥɫCA#ߑ/I3:ߑ( )k7AwFnJUyg*CyJ6_v#<,coLKvu \{ ;NA]շPsWqxOzbE|kfXf:ۘ]Je%|W6yI I޵Q ſ~#B־X+y5mzڇ\*y6 b(lXYx _\uZ0G[]2P jGx'ˈop¹_ ;L3Fs'`eJگl$݄="F/:HWu{_+v#DD.Byl?X̱ z.x/#ݲL WCKN=I -_+Zm:CC"Ra޼9<~XIeRjP~$c[µXSK?UIŗu賆|qƚ-=.Yz!{GaE2# c3-q~I4*/R[ZD|.\d}6  $Ӓƀ(H޺t)I%XMw4a kIOO5m ZbcCv/𼁷{kҵ{=h {\.I92p 2(=uKupi}H};PEe:YI8zܷc'^ /hXd/7d1oPLy"|r|l87 p0R5v%م45#6{fE,Vv6>K>H[86h0㴺 '-'_|xWL\4_CuJ.U\}ϾvZMi":qe8o#J/q#\$R8ji2nSawTHH>uZހ٠eq]s5Tt#&,,IJ|:PͲ3nSa{x'R3t&ƾ%E` }.~zK8J1EwUθE.ɭnc쑫sSͱR'#JL=Zo۳+8PQ`&^l]?wme̡cHEKz!dkdT(3G Ã|0}x%)*78ϥoCnd9-<6s[/H{j(̙Nd0v ~2z5zɪ`4 - E^Ib~"}t,#2"!KqXS`"G_Mī붵,|ϥ'F=nnI _mUt|c o{kQA|zc沫h2ۅmbYHBG4&**jϧL+n[ݳ~C^NK5},n7rl\iOoxDmҝ7_1ygA |0M+]KIC:Y)7C|t)bb7[+WPoPeU DRm#=@;&&Khdݱ cđ %l_6Psa<X􂌱{b_ 1F' z?=TWml^4庫Xa 5}XW")'k`2ؘ/2]PH T>==1!ߖ$a̧! H<8w TrW8/mˉڜ/$&;Ji1QZ+ll5ئ`vT+H?U`iQ#c 8pϾC07X"=דuSemnv<r%KҬg5}w9h7HoV7}|t4V' :iL8'1|r JV4ܨ$z)\IyMQ[7ξ6?[n+rt3"!BF~":\t+F-e{K14 kĨv T׬o|N0)^^n5]]J=J> |Ü1ܱ@Lfo$)0_:<9hվ>pS2OA%V<%EP5'9e߼Wgmvw8H_+LQb͖0U*w]IKGo^&Sc4k,,OD0`y5<5:ņaMq;ws^6 ltwqR=cIFo0Xͤ_{krnO 3[A}' D'זrѱx\G&(l Y ݃t}( 7Vr ̑G5l܃҆9@ly~'(^z@V9:c^ؗ>jԾG?fEDh߻"F>AԀ-! @吼o0`f4VwOFU(xto\<*}va,a)5cb/x|q;ftӵ(tW8A=PSxULeg|Gށ»̜C:w ;KkM$_7+|6ͣ(` ϿEySiQf" i!ARc9wKe#@kXWO\: To֐J%cxφ c*C 9k(Ɂl }K?o4aJ٧?$}s湁 pKGX;TWZ,QVC9-ݳO"m2f/␲ ,6 ^y+揦@$K*2eY3x !^QQDB#4%B'7^PX)dKVLB~|\fc*lnP𥘀>s?\+RbX&Qe_.!X$pY)p/>X{ iP:ěFs}\^Ӆr; f U F}㲛g={(d& j@BFtv*f*]`jGWopŽ#YD_w@t5WzQ 6ݙU!I9hVI#/-Ÿ/ ;S=~p`7WTJx4zgP2~L^߀Yd"O-ь\#Z_ABPHzJ xYQ/IƠfӞ@w4U#aPMNʍi.$[qM~|AP@ط&23ԃgD )A鄚&j5IH&Oۤ_7V 쯯>{O&A  6=d<μ]IpT Y%y@,.3ZPșʡoU=p^vBzWWLYW@txgQCHRaԲ; q?˵?˻LPI>%>Oq &'4jbP sws-̬ٗHrdDGʗ)sˬu\11gdHzܒ@fYe)oK,s N c= ݨf}pZV}.q՛Vn9 mB=w:ڢ50+Cfmrb1J*aX 1j jt,\p8a;\ż(L?h1Y;yLYl>A cczCljcJt'rVpl4I -%2- mt$|]~~ۣ|mriI:%<'̟;ʴUwҼ~`vg_b^ +}!59|:34?.ECbm&/ UVC͍!c}WUZ+"?*˗yH˓9w te`8Nb0q/6ekyRM5F3ʼ#K,udvneoZm2XXljM{wԙ3|d||7M7 O daȜ36Gƫ=n_P/5Vh&Rq$R?PQ,\+iYi\`dwlj*쭝.8dHD/`_J&l$jS]4"&/.+M1ʄgAD]F\o<,bfq~[B2o eep&p4Gh^1UO40r}UұLRgɱ[-j=ZV(w:TQ'uI%.WPuT%\b=) pl  HbG)V/t3*:r@W >oå*vjhP>V6m7'6kbh!-^+~>dLUgAƊ#$[oKeqaT=մ{ sۛA׉jt6fu-TTf:ݦAW >i~`Q[ǒ.}˂zgF(9E|_W S IPB"U1@kZ}%cB_tZڣ$;ž㿳K |8&:xYuα3~ ?6U ES7 λʡG"2EW_%J!f>yOS8;wV~9.Gߪ3E01e`|Gl>ָDX/(^:xooh;,ut=s{K'{r
&gh2_ ΍ʼnU17V,ο oHlxSXW@BdWf vdI >bQ1 y/ᇤVJAxqx֜ķ؁̧//pӑFB_>'Av#P>(:>F\p~f6QZCyDt9FZ82i=Q@Po8+w[1d;Ŕ3 ?C[}:& B{`0fƘN_3jO^GFKiF>VG#xV=~0U*1Kw;׵wE杷. :l?L[Z<>YXV<0hNx$B@: ryRlz 3n~uM3f- MY:[)F _ҍ r.h6& `+3ȃ#E`jzq&L hPtr4ÕY0^ KY*q4 %gYҗӦR3iJYSI=:d OͷĕFO 9nο HC5wEECTA?s ~avџg!tsCfuTnS VY`sQh4xwd8GG<㺷c0&f3t/fZhLڣ[॑>׵H. ,/>n. qyS3?֕ngw8Z~ : 4ޢ+:ɭˊ[:*:_nY4dʀP/.؅~]9}{áWA:G+%r{Ukd)oR'84K?Y{(&j#x$ozB)ci(,M1o% UDKK螚@!M9 ܻM4-R%b]"jTװ#Sѝ ν߿e6MHRk\$~H;$@AF/\bWD˯]WtqjTEJ)lad`?~D}9#U:;(j} "{~1wȫ[3R/k+2¤+]-EqkÚ42kJ^H]7-J䜍4CL_~3i }>s~/ߝ^n)=rhep͖:{׻ضmv],4m~!Z7?)1$}o$B u!FNҾs- 2gs|bYڮ_ɛУ=A76fAc7F_ih[4#}3sY|3|Gynlϣ*P kѬ]bcޗ ]zhH5p3hBTnbU0t'N7ćT<ȒJ`Z,qQ; ˅]ZI$w3iOZ"1a)c[鉀dڇn4%h2,ٯ 똗ӝb3Y ƱR)ִ~&:K׽KZ?Ko@70ܪ]%MX X>bY_yI mZAa<Ṟ!a?ÿyh7} n\".w6Q>ћ4æM93 %2t h~t6ˉ:zDD>4;`J@Xu4* P͑~/[:4e 8-6*.ܘ!P֓%_w]ba XgPbX!C$^,ɷ& o CO^*Gu'' ԊWG:ْD|BIT'bUBL? O6X9M o9^{8/M;g* ( IkO$wH!\Y7҅ K_5+kJUxYTeТ [O4jG  ^08ҊQKCI/A*}).dm[ia_յd cepv'ܬPt!A¦gb^AhdYK#85Z`oBϷ7iAaEI+[b[Gs78JL=&us7у[km>֜sÈXkƣ:XM= NS: _ =ĺkn2OD>Wy:ԕ4'otWIqH}^ hYf*ۃ$V{aN4R,w_5AUIHw%i04óUP#M}_2#\~4hVPv?NkΫ:+ 2iTG%H0ڜGM.,6&RYyiu9/;3o@OWV<x79T=#u"Sld6:Ob1=aٮBw2d;˼41MOJ.dh(!ͩ@.>XP񎛏K7/PX2xFcWuH8fɫg*LC6v|BXo?dmuuQ8ZJp6ܙ܍ @'(lVw.l{/zG'o kʬb & >)[K Y;ڣіuҬPP~n"$2l±i/27?o 03R)eEl#UNٱ ExpĬ m%f j("֋l\(4phC zu::pH;(*鄰k'SSWvS;@(ΘۛOlУ^v΍yK IT'DӘR-j5\1Hq` }?K72;Y `ڵ|^yb &c蔭5a)΃xEpsP>!3UxJ'@:XE9j׽6.w%G>:ҧlm֐X>|Pԇh+HEvblXd,Fh*bSHs`iU͸9&&ϽWFiв g gݫ'X$K!g_%ힻKLxB]݂~g):${ʨPN QEm_^dT]NIH}Ww9xorA]|ZGBnEM%7P( ~maz m/m;>`ʐ"Rqu ]É[.%i$tYIe 0VQ }iM' X}ڳ-_j82Fv5RTnlSQKvmpÏ3A6J[zlrMsTh[|zzD\5D!1I\)dЛ\c:I=i(f0j|j+}[VJ<hwZ}WA)wTXh`(~[a{a\]cWT/=:SylxARǧ-Q_Vo;*Aʚz~=ŝz[^[}CJ=x5qD?Ց* h`IgLs6}sH%O74}D%tAS(~K:7w6L_h|:BLaжnSBAV,ς r*K$D[~].uzDI}EZ@h?}:_$5'Hnz8v>!pl4?.vSPzb b}YC$Z_Ի7t|}XiШ A 4v+nX4g km-aIf;թ@G#7D[x zaAt!a7I DjtW߆C4TwnaQhntc|іvhy91 ǭek@ߚ7c40\cB]#Q=4RnҞ{A`H^j"Dž;JzW/VkIĬ\/ 0M<Tv< :^350a+zn]"{ d SF?@' =@Lص*M A>tǶLM% u,{C%lRv8 })I2JXn9"Alt'WvG,_ GȚћ>]qYt0شm/ V$Q'ecqfxco[ GqjSIPXgEL㖯(wz-\InvJk]dj Md'OX "Oz6}!{L#_>4iX3J6jN.-1fo3!pc,ʻf;M"mS̑lta,(6)"[WOM2c)&w7>Jx5!K Z3H6re@T,&ןVD {lD'p;mvKiYXh^Rrc,4CfXuG*% wjA4mZ|@ĸ.˷$_㾾_JhV: +Z95^|~n:.ƒ\\ѳ7,'H R>>HzXhc₡$:^V\q^_}&Cv,M@+ gѶ^ _ZgМn\=W'Jz$f UA:[v7foP1UJnn:]to.N>S"?~kwbZZc Nwo Ma֧ڍh,?PyÏif8btfqI G|zcO\4Z(6|uh .YnHs+[p%waH]KX $pwS&7 D IaQfBfYq;H'叫HYnRM2y_Pcdz\~~loJD˰@#@gە/ʜ6΃ׇx{y D#"E&ISXIA6+&[Ev'GV3 {m#.`G zEuƟHaI6=Dحi(qSn$IQsҋ@ "YDtNKNMß?)X{? fW8$dݥO cE ` sߟeħh*߿ȸ*+(=M(0#gh8~3Q\/SvwFr0D=mFc|Y;ߣ%Dg*]UNROAdC}%/ Ed78|'KX}YgCn↝<q6p{XrƋ$df1J{O}D gb4vY*8ϳ3?2 xY$SaP;LF6v)^Z0%"Mftl1oqz{0`_?ίݽai~[}8f\I>ћ(49<)2)fo\)pUަ#ODkt-J3t]G`D⫈]BG+ !@:x#EJ1>fσm_'c_4s -^V'L%;,I8=&6C;ʧ"nDAHkA㲍GS32wF hv T>s"dﱇ?Hhfb6߇_gcVhb?AޥrVkI)_Ƶ4/_ȸeKW<@v6c- h-0}xhmXJdc#,:򷚩/:R`],[M[܏C ڣbUِqݥimR}`bBZWr1"=4 (jȯĮ?mSW+EfPܗlk" -RGDq;#c$j+a)軔_ZJsM][Χ _8'~0P'o|6*/ҧM^,36 h|o9)[/ h~7/4_a:8<샏ei\`䆦 E rP`/BlÉ5f'r~!PebF_nВH@ߨ\ŝpB781&ky]n'8]τm} hgA4qz~jNֳ<_Eҋǐ,|7wV{0doBL9 ֨Għ7!=fھO_ݐ&b|{ TTùﹳʂp$xՁ)_+E$EYVCPYԮ7{Yr?uPG(}>4n,˙$!.C?C8 z)m96އ ]r.?eUvIY:,* a9c7dialHCg+Ry&p#πoO><{}Q͜sNX6>D0E)u;7ɿa<ׇ)wuUͨa-bv <(ift +o`OXڏ>mR2SS<Kb<Qv%=L"h- QIU/3q\qG֠,'_owUouFc f˦^T/j"5.Eԕt3hHD&Z-5|>6XQW{~'CMRo5 ]uv1s"`ZwsY|ຂ[B ϋ淘SƁՒQg4IStmMGпTò}aA\ukA[1RXd S%ggGE~v>3Ilj Xjt]G Yb:‚DL=Н3e,M.]6BS|b$ dsj| ][Bh2]rimQޮXWuT:{+?`"DCT Y81 4]r1|>Hm-1kKҁRf/L pG:[VG0Tj-gl298UQZg!-ܮodG]*T|'Wwa?"+F~K:kí=t䍥cSjeNFƆHj}g[FOw@z4. BPC^EbpdFm|.rVɫA3OIk{%7gX@rGK}^^ z_2|olVYWܰ8 7> ΋L33_~ ͷ0Ksoψ>/眓y?ŷXahҿCٯF`t|"wh@TOC,+teC$?y\f͍/׷wca^iuΥC 컵~vqtyĒk_ٛ[_ʦ7d2 JdRJZN7 ʜAe(i4PP'M>7[XOx['9## 0%xm&Ո =@*S_M%$OCԓ4وD1?;RpE&(٤/=zc&\nηFre }I6Y&؍l/MM@M`,?ƔslizB7h. y˰9ȖIij\sq&. ۞3TLэn2$pȬCyby%X0\"P~y*u=HQ|ve~9UQj"9㊼wr+5Ҥ wg`.:QtMKY .(i%bQ n/j(,= QA5 㠵D 'd_l&9QH |zwkPMꃃ~@@8 d]l6j{-fx@Esaz dP?yǡܯD4o7}rR t[62$[Rݤ NWe~",Kč@? w7/$VP$'F{3cLH]f뇑}=ڋמpB8YH Bx)xlR>vȆ]Ch#bWWNF1kOYrPʩ=!xqq w/[[]G1}NE;[++/;=U y/^D, Y3}{|'2 FǣKRq=6=^{,v/Vߤh_*gH/4z7h!hj_4K=!v:kNZ"*ΞE1Fr|XRLNV̻Ҿc멡`*QbH |[~k"ןNW\-OI<+yܳ7LqN/s Bp"7ӶrM}پ㾺";v/Z#=xH@<|˾_.! 7sɰ4 Niv4޴><Ț$f0;#ΉCQ5BIuQu%KY6e(˹ovP !`^:xJ;%cGr0I'k{z f[ыb P!`vEOT%:WY7whxcdg]bx*^͜[_944)R* P)5ad >T&s2תqaQ;{?e7ZMޢh@o?!_U=}_L)ݟ1W k.-9oKV&G~l1xK9 $ld}0p׆y_j>s[}K8(9 MP0C2m {lzwO?$ٷfDOX+l#e'j[B<;7S$5O=ZDEF k%˶N dN-3Ќ7/P'ÿ}VY 0dc!8"0i@)yV|OB#~;N2[c.o#s382x=\eL yƋ[B֫!{(`(-%";ˀ̋ +P})xทj#Uj v 65Q8EY-Ky_k>YЭQXS`2K:IX~̕io=2GV1-nqx]oA=]9>)vO絟./UNWt|equڰ,9T#B=D}φgg0vA|! n{=`S>Bp459j|xHVvsqXQC+ɯ_ %IYH!v"zͷ9CH0׈kK"$Ieo1LYkP0Fv>6iqHJ|?j$5r>#nޤyWnG/czhD+m++~EAyN0V{Va<2Q} 3Y;B?.:¸bsML=<~PZZf @&f>l틝_OEL>˫5! _}1{:@b@bނ oﳺ;~ٿC:/A_*ӣB @dsEk?6mz5/Q~˗`͏?5u}{fAts%]NjCîGYg󋁅Lup5`lPִgRl 4fD^ƊUml@NN; fTh7^@KJ84r=w%r|$/S8[i &o6`us)e3y3ӎI8b߀*~!l)I[vc٘zT<K!IA8 /Y@ŷE`&Wamʑ.JZ8 d1[ -?%T}L;L6~z5+D-oRY&;\ՌEwF^fWSZ;gDoE{-ʗ{u$A?[h)` ?KXȬoa>6:1OC6צ{ DG93:ƫF\ņT6૫\| rmGpue#|g چ||Ε%ӳQ@}o 4u's:A{=w Z5DH@o.$&TnafֱC,.{TV<[Kpq|#Fn%4̷#:=uxXBedK ;B~\%$fA1ر;ULl}޵<ն+5STI>X$)A| v{6:bM$ D :X \P$x'RagJIΏ 'Dcsf&6=8 Sy7sd U5q#$R! [^v7CG{\⋾C`~%q:O2*CץGvFbH#Q?i%tpT?glq8 SO4/0:Yos~;?VVR[8^V V qEh¡=:[ drOZN 3#u;6ҷ`w1@nlhݘ;~7-zĿu?38[RxH[-;t2%]9 1+կ6g>KKpӕ_Cp6AV\Vx?t t>o3Uee~l+'@MK5~ղ휁|f .ixs$6dQ2?"z|٘D[!(842=_!=+s}v [}'_ۡe!^ͱb3X6+cѶ=(q'q OA5=u77K.q~PeՌ,pYC\+wPjs(tRW [*nT Bc13W$55:$1 E+V}aM{ήI"M> X88 # 5[Jb5ſ2 uъ#J6fr__g}{ιC߼=%sS DD]Ǒ[}vQѮ%)5:ݒmIzL+/A5sT#ڶnwY,$ޒy.5*.cq}g˄P0J/$u7AeRMFJ|t f0I]FCE1ZЌy up+h>$ڔO,N$9^e,_}#4ewOf4&\%DIO`SMCZGeVeϴ-'^$_NcL]chjqOnk/MtfQ c5>uBG2smV0=E϶堈'7HV02e.~ B 0\P78Z9i~kj!vw-tҙS-Ҭ\0G:P5a1–s13Qmq)_l_/b_`vWnF0S Ma^8 zkcLEIƙl;Љ#E[!`o U |uFnnaAj,2s6oDTZ+ރ]uÀ&SQ (E1kq]%e,\ikhe{o#Q+u}(c[^)j\.矷{FYzjdof$[l{c-"ӨrIgC}$) WU|(,툛_w=LYˉV5Uv]wY[*PRQT' XY \Y̌&@LYe[q(]ڢػt-џ5;`;~ d9E%W[574غ`ߟՂ2Ϡ5 ?eHu5\ӢؘhhX#1UΗ"TCjHK2G&cf}uc=vs^ _Z:xʳ(@YS=J_/.tN\USٵf*VѲi޵s  ?gOENXRiLͦo2Z'KZyu-p^6x CRzU+ق>=6W -o>?fiYwp G0 k{VÉ s22k#qUk&-^;ĭg$-h#@_-R@\bw3WtF⌆3&vScE">f5ټ#BݡŭI6wnsZiXyJr.G5͖Euo1*y}@I7@̓U9Ԫm4( =<e{IXUJ2nջB.sк#mu1jo:<_s>)cLi[_Ћ'nr{k14غjBC:d;\>EDkv<&l[0Hvٓd-40ą]UElb^r0ƃoՃ8BΓ艡eCwdn|0\lor`y:ĎLG%*7XCXqZk݇4PYB,$fMXH H?tw܁B9{l,8 7dV9a7„04'UR B5R/,Nm6 $#brx{񼍇gÕ zO MxYiDu'5 qޞ {䡺3Q_^$Zʓ׳,(k^iG=o(~Oahyoj Cӝfn$0PnqГԭ"J O}[Dm5ߩ|dwS\Grye2?ao1J{:a|^^1M)Npen}xҳ/Y\\ȨX<819'sq9;pS&<0K6W3=WjFJ  =rp5,ɘ"`92)E)Dz*.Ͳί~'=Mx{LܖXz fH|xt7"sjqsA4JK7Cus^; +=/TvQ mɜ=TMiu])~~A|a{Q {qq۵Axo[izL\ :뙥3㙥r;c0fL:Hd۳'Φ"^\U0By[X1߀/ׯ~(0K/NI~@/.c?4%CúhpQ$op?Ʃ{~=38L{c2}=qSqWw_#Lb*өbEo"q1Eޘ>89C?KGp%P^_s+]dPHmepH=oG4Nowq|_0ůMgx|럏om1a>nmL~bnV$~1VB6_ӢA C]|3qo7?#tB?/Ő |H8=|lގ?+g~|p?Vc>SSca>]rn>?` #gYȏ0J4 0&%G> |(ڣgWSѵ> *rg2Mp"lzm|*~P0Mf:+/ӨW?Gg1:&\ÍC MXBcҀ\WC~Ð/nGyJگ.v7qr83/_Sɯ@Mz\W%o?7CWQ)+r m qmscz~>S'#Fh׿ACo¿ IrG/)&зVTC¿Z;!(W ;#I&Mr?y ~Hb7:"?0߸/? Jji(D>#|C~N EhScTѯTG~?~" !?3_?%HBVVpc_rw :T}Tc:H(+$i+ 3 ǘhah7 a=*zưS݊"u8Vv|hc)싋CQwۦG>2ew!#Ah!ʾȓq ĉxUD{C27P|O(G: SGBpߌFRR6 /uneR(o󟏎Go]Cv:bcB6Tzf#v7-(&0#u_}2ء\F?e) I8)sh8l/0F4|ŽqoF;f_[\}g] }źk[yR~c;[?@ޢw늤U?}uEA~E{?Pw%c~_J>xЇo19Ҙ߯+@"r8kW(CvE0LE]os c`8 A|?+@i"?ىӐ?)c6E&0LϋT0E`g{?_`|a'o0~`ǃ#}P}WgtiݎiD/^! ?%_/&G0sӟm  đ~I|~ F))G?`]MYa!( ?|?|W97Oˡțc}iەUcgM|%chDDDe+GQ~'|?5[?9xO^#B#\Sï>GRMȠok$ .F!atՍ[ ߧ#_VO@Bg!/F?7 )g ) iRE{mWY]~]rI{!W;%wS@o9Կ&A|p!z9X*i;#v#J0Ȉ[0`Ϧ[ MqDŏM#M_l"/ Go&aE Ry[=/ܛ}6Y8o{U~OC?14;f_P&½.|`;5U +Y~՜4 #M?m|_o~/+_T,×E2W6G+o?g!~~S(< qꭝ}SY߇M#0%4 WH@$?7p>}?~᫛Ec c_aMӵ#p<f_^/{>_|>}>.×\z}ap d1!!p*P˱ [, dz8}mZҧ97,e`AJ˲/,N[q :gh)nǹ鸳.g`ȱ1.]XOp[ٹ ]ʶw"HXyA@s? B Co2Kxkdo#m#yВU>3+R7r@5A"z/8-&r͞ΖveyDU--Y ͱ'lGXx(?þ zp'}H_,ξkZ7Xܾ=$6<\P:UQYT73/Ii^np(3*rMߊkܪ;' MKgԿ^u\SDU勂7Ses m۝cˈ;r`գ\N[ݺ*Ub6u(W~TqǾ>,95_nzts}S@f9IW:|Z 1 pHD 2O:&\$PX-]`nlqZ`LEG8Wp;-G$D#ѹąy# Fm70ݓ q'pP $c3 A1ǧLs|{?%i3C^ŧ^O[㘨}I^ %K̑$<0 X g4b`YVJu2|Ћt+JFp9cb~>%Iw~ԈyZn{?)[]-3|EP ѩ⹽:sҐaT(>t߃R֊F%je ;Yp}eM)iޞؼK x /]naLrزFC^4k@3-IBU5zʆI9mEݕzyR 04H+Z]?>^+9]M?N#&[POGi`9n?<8T%J0{ҠvuEu}l^-ep#+{MNRNe:sG=PSkD?{ :_JZq˛? (Q!:>O'ԝ~8b=)[YP-L$4Ʊݼ#Wzz@(2ٙWu\ IQp].//OD\Da\Fk`< E R=EY6_UVfDQO0-0Si-+2WgTta =OR<+!툍 Mo#'Wˍ)Ko!lZ4'[;( ٤JAXo`6dn=R^!MX8ѱ^(MV6=FX7)Ƌ.ZNY7dR3@ ӧ$GxI+y8Z@ |FG( .SUdnv0}*gJdo?C+oΏΡ*b[Y7}%-&% s_`&saJeU^/;}Mf 2k,5:}9 ֒GQ+EhOmňi @ m/P1[4rZ^l$1U`zURJNׄgv*6℧?=83]yK09ٽB~h))0"f5v4(yUW=]i1o0<.25K,qmÞx<2f+S}{Jm^v7sHiS,(.Ȓ,p,}ЧE\M@6(pyU7f7/!^y:lclg.@<'g:IΤlt\\fD׳.t䡝\y{~d!4ᐦqDeV/:IGzZZn%kc8AbLm4MV#peAfѴ@6* S7.Vt:hi tIúB%?/qJoK1:S#wGy/vk>PqvbO٢#N뜛)_wdn4J:]'u|<'jz.q#c:mHyc4>@wY'4dܞ&:s-la?s5hlewtܼYI ZfJe $WKK ߆Au<ר;`;kj G`ya,}nGy;Sf g~:;/ut63*{rc:z[)mz:Q@V q@:`k9HYi"dWJ}2h\?1@~UYɢnح+W.RSZ> Yr{M.gl95vكERd zS=`O`k4 eg&j֧_Zd bh]|(%kwI/׮|Uw&\+L*5㪹yz>Hsyj}qGai$z2mⅿgRtMOPuBIg\y Qc1xe}e ^^\^{TfF E?Ne^*_ J&Ar޵h|+e娇2G~nJ`9(j 2H΢`_$vM1UQjҾ,ײEe[O&54 ftWHD 06_87ǻ'EHBZ‹;P0Jm +|?dx]Ĩu76TmbQa1*pGU:ךH HcK!SD~s2ӍR']O+CP j9_+Z*W hW^RY5T։M*x#6߂!HF'ԓ?YJcgF"xN m!eYߕG/V 6Yhmja'=tDm6Ә;i U$8/UNS'} PBNCj @aVM=;+ӥX-폼:Kay)3P/gv4J\+3LbD}/DpTsm*'X ,XqxƋUyAHI :R8m7`zEP.:n?-tSOlZ[6t](i҄>1mn~YY\#dr-VzX2>iD[zl$ WX38g3C!6l՟7]*[$옝'<{l7D̽ NV-0S,d?q <|*lHfZ\=5bw43SzE %V|n %T.- gkfuIneHV *'2^b)7-v+r$ݻ* Rq9x$ODiFܺHp$<'GX> j5߃8"]҂;V w nyj. m-rs3.&~٥R=¤ E6uhY%oƙs:^0:@&4G~nOwf)#"if{$YUZ5D{ӫU'5`Tm_ /$R g蹬uMWwڽ B3S:4e| N}5ecs Y=X FJ/9\45e' vDH,1.[)/:J/j25H >~nIYǞn=zG9=BVrial yM;ːJKeFr{cF g,nU)M;8y oS<ڥ9\x} )>A,Xh@'ǀs6u# ^pW4fהD{x[4N" Πz lSzdzr *, ͳuT=_$<bM_ϟeY6Hɋ4 ttR?\pC'>0|5K!Ϗ,13=3&ԷFm}Uѹp~lv=na2+ u:Bs@sY&F\%.'*_N[F׸^w1P7+[Ӂ+lr {.YĘql 7Iʵh%rllF4$!j3'<[{vp(c ^0ftCGu~^"ӝZ5cӺdr3JWOt!̘qNP ͱu-۹X \WyW /'eM =@jJȔX[R5oi{q#!4-46ۙٚkSm?SnHʏKZƮTRC<8@L$? fJ⫉9 3"\hlAN0.=]Òmg6kR6} >ʠw![jG*3IJ+HD 5'XA H-z{ WC:z۝ѧ]f!ed h4[gD)ZlbP*uH%L&" `{)N5ofd{L\%g~,Bmzv x)'OkKiәKHe l)n#"4VPþ/'#N U%Sv"Ypƅ)d8#Z8e,W?lj%CaDHHZ#nIuIT򂹌axsX+Rg;OϏn:i;FZ. [vw.Kc/xB;W Bݟh>I(j%k;IƑj%o&{t|@3pI&s^lәh U~Po*(i|<\c"s+?I!Ok\JaSzTZzlpvx{?jDаH]]s 6JTm­!vpI\\Jp>]Tqp*4 t .?lif]޲TNt)] $_GDi G`I4A5G١(n2ݦeqp~mz?*zC%)#'ʿinl+.1gfF*1ayK)'cj-ԃM7So*m>cI o+ U#b\7=Xƞ]xR=m&l P[pX@xٞ'Wݕ\2՞]&=.}!3:$rLOs7mm WFˑJW>0!{BƮclvfvMI.QG%.Ͱ $=#Xۤg}۵5;~M%E4%`=`GqAYwul6T-v6"L9;)GlD.Gˣ,N `JhkG5MHElMlZt1eq\%ݑѶ=7Qa_T<J o67Ewp^n3RpOk+qJ3[ 2:u2@u'-пؽD(Lڭͳ\bP i6mwdš?4eV{yX H([cE}K?rh).Є e1>&MxHIzD."HKs+uɇ=$Y?]>fk%䜘05^CC0,1@UW^1׵4~H ėVgƻM35|]Ƹ}.%B.GH( ši =-gOp= !W>ȼ>(>=Teʱ$-v$Ѩ`k ҘBUK\A5=v|6A)4l.R lHc$/" 6өoR,#e @ Le5tOtx*tgxMuNҡ[4Nٌ!M)0i8RPfxkT&ƾt@H⃸,փHD%DTPt⍖xt=FLw8~XIJ/Yyii:eb!"m&AG&e[4d_n% ݭϷ'ѷ69I,Wc npҁ_gYOprOFABFgbn\&XE#cqd LMJX5$/uoE冄bV\LVk<ҫ<$C:ܣ%(xro{l _%hx^8bSE'0Н1Cy+KoIu{sRUfm>7~UOm?qx,Qw3XYq_>J+)P%l{ aDLZ;̯8`"ut,/0d VNSNJD;VZX8d;My4{K_U{w0){)1g!b|O^( j;L $a WUA۞zwcHI ¹z(~ϗ̐ %<d>ٍq;XxCb |*7+yX|0Fw&F򵬭CY,H'2x^8U䄄zkuzB0\"| !V}X,Ȝ\T9E[¤~Gd P ƺ=g/Caxqv̳>Sʇ-Žl/9J )ُ_j0]8E}/оqye[9FƤaPMрN>,!݀C=|Ld7r)a7fG^rF\3eMM@-b(95h V! AMv_UEy $wmlVg=}m$N4|r<ʌ-rzo,5h>ݮػ,*Ǝ ^Q$o 1eu^A"PZ$gil'!sD'| ,CtJfp祒˳n-Af;Ȏ8$L_JFN,&H3ź0k @wCu-B&tr*QoRqKŧL[~7(Ȁ[#|3x 21K]>;YG{i#wE1WŠ1MԨEE3[ggZcbn C%| )Lu e.?;0ȌB>d٨;[nB(;ɷ1(fNFWQ&iAD1JiϠW$s=qɁzqo5۾RRNo=,:OR¾rz![jJ j ^iN8jL`VHM oHO4,PNW~lENI$+4RFB(4$vt=z;cW>@Qg/x: `|_V_xc|óTG+ɞb4>7O'$)bԈGܕY}oGI^``"8#_L%VB?P!Ѧcrs(;́F^ի$^[ѐӚ] mR]щU 9'j?פ&mNއS3 wX Cv{IxQjauCzޱB&A>_3q 4k}^Bz*pۇѷe:k>>5UBJ)ϝ=* ըUwG{ ֺۗ6=/#~+"6c}#˴KEwk0M~wgN .h~^}ɰșC6jN GYoxv~aۭ-Dz ajԗ`g563Tnmp:}9j0dwbnv4 %w W/XS1_f>:ɫXVa1o™|3R{OW8ỳᡛcqX:c {ak;C:qM$ 1ΤN&Bo7$}Z(+<|gz* E{ IflcF$GuuUϗJmyW3Z|#4*jG'rX9XoRG{lZ*1oq30ZEߐ>'`Շ@ꍴw4Տ;V\EwV+pՑ?,ImLb`$, ߀j>D0}e^ނ6AycPǦ(~HgUalhO"JmU'&ҡcq}v<5POE\ROc\)fPb!i2OHaƛU4Cx>"+HjJ10~3ޮK(TփM>M4\$>XID'$K8O4'i$@r6Oo>P"DjoSo2ȠV,oF|}lPI)~p ]ì?M)$C{TV$~Q`W2a`ʇIT6,0vx{ix)gC*q??0NU;ݎ.3vܜl^!wni4`_ K +|mLy(0#:ʇlaH$v)ҝiYR>ǢPӻPhSr#ʞ:|АZȤCg|й/2WMXx Ҏ= ɍ-)A`#x;BGEqZrp3=L7f p$8YHۣ#tOmʆǍ\Sף'KpzPt$o. qd8#PU(/%1FD{)EJ}ꮯ%~ȽRFZ&MkL l,)Ug-+Pez$:m;CG,>ƻ|AN']Z4 y0W` . 6E4G<_\D<Udf:vc-%*]hg 73HEqV`Gl)-&pq/aVEVd6 c!w8GOۉAHBhMޑ{zl~(/UIg/C]7q4>;̶ќ0!JVi6rZ8Fޜ|OEؠ*M%^A%gaEWB~Czm=CNבxEp|*8C-ѹjw3QY%1[8>wRorQa;ri~\4~a#J,!FQ1 o$\]b~@&%GB!eW5*'%V}]4@욤}fE%Ӹ~h/g|Ӓ\ֆ7̴M \9u*t(LGݺ`fUy4rN$;QeUE,~Qdz?c2g(0P3Dǹo(ikMO=-@1.? cd= ccBkN.gBOG}'Η7[ʖ\;.O'9"@7Z/(g,6c3ʻ IM>>6as6rF#9#ѧM: lkGب8Ҍ'Pq'.Lnx܋=EbȧC@6&sj}q:]i+gl3.jyNzk`,R" RT)@Oy2 .C:JSv]CrHdeUkZOG-`y;a{*?إmqOt!ֽ0h P5WȎO&֜Jn_bz| ûR?M/0~+uW® tB)z /eld~wG)qzdZF!VIؽPo(?BnzݬݩNƪL~B7R?g.^?ybzb!i2: 6pFOd>RόMig0L<tmeFK%acLYWg+Y@r!KOѧ3ԢYGf<:\fv \\iH 1j`YJYҩ,Gd֩&xlNFo) 2H O?Qϵ[ #]ׯ&kPWE'QA˶Ֆ1i_=/i1ſbaJ45u~Io.-Ue6.X!SEb6Hh>ן)5P*'&K^gyp^A/{\H M+nf'%VcGզ Fmwf,Klc{gO<b6틔d!7.l$Xl%6dkw?X-j+e"IHYu]u-6-XXBt _+";PtiYA~ә+e81'.!(AGV4𮗮H|ގ~ c3cqEbO`,'$2ixz-iޤ/(ߕ$%bz V^ח\reso=`\ޔC\.'ӼwG..ԃ~=:r4{%Hi|ΛփD)g7<{eJcI@ߨv2N60M8D(eND ^)n kqy =n9M8SGOn(0=^ۑ2T UI_|s (k?Rf=,*ܣ~TEE:۸*,Us1k1/wcۿY腬Z;OFUJ"=پ'%R[l=h ;\Udq(67K6{IuY}!.{ɐdnؼ,0Kx2 ɟ,NORf+WsHk-WҒҭUI֜|!;U\sdz& oY,N5ĎѪ,f]16xAP=%V(I38\1 %Jvq( Mt5@͡wKRGgq1q3t. ˔Ir ۞]Y4J]/oW=:w*ENWb]?r@A{O%D^*cV~Ht沟OJ}OUJuNk$,T`^dU+8[o~7G }VJ, oԗEdlKfxan' Mq(yN!=a&\-bAPy'w"!<+*]:ׂ]{6oN]M]VTj7^17ʗ(h)J681!cu1dWY @aSh챲z;N)OZ` "LF<,I/1g njQ2> Vū0e"f-KR宿gbO8X`>Z'm Gcċ@)[8f|Tn *Fb rƺ-nzw5e'K|CO7d#ҊtPTwTlpr,tE=Gơ7)5E0̣c)5n~֪@#by"2dmؔ&ìY_,#%KNg 9;8 j7;h 5bF uS;|iaDa}O%8 dT4Ot@gAzvM+nsύ<@ I ]xGz/f?bF̞3"-\EXZn9#0nX u0weך_=Jq,}RY8_0c3~CPa1#~fLZ*kwEl1iT+L۱rASoP:ܤO.9:|}>rAP8]vgD|]ߦ:3)#i 9> /sZ8'2u# -g=qW޽$($=&<"pE֣ۺlV߲C^RʥqtU^8Ř@9ݓtX1i~!75?{עU fus&dy[fwCp!$K Ǯ?n E2$9.)ϴq?\7(ȶ'[n<4fG<4~\}Ft1,y:`R|C別HNxbpn8LxR_h9{Xc$-̤^Dwwqt x^j8 0_g4 m`ghi1Gd퍚4q)F,rNףpn+O6l(<'A6TG澘ߩw+ۏ[?Z!Z@^ +z[YGݓ$`/O1fCƵrƦZdoS-Fkޱ>RѾ_@%(gꅢ9{YfAא[rX^1[!K/[V8Gg2Y2uaEL3OK؏ OTx'.UO$=;2uڧ@q-6}"ݸD% `Z%)(O2]:L~VEic p2׈m r'.JK)FOu=$sOTr:iT+bf%}p\)}D8 iQ]1iaMMrǵW3x#UFuRs. a~?. *r eLUԒ6n㽱GWpRBiܮw"faӿonoR(Fy;ougoV"b{nv&l)teƇr!xaUZxN6?z`B/snP-2&f䙲ؑWPž;wpod~⶷RQM i~ 6Ac*$,qcJ'\UwB{byNl^'j(*SWPgIsA py;_|QceU8ItHMӤxls#c̙@ʵ$],MzT^ Gużs#卭oGPOC7tZ$H쨯k&1׉]TXr8OOňD8T_ 28<(.p7=샮<xXV x&Οewo V8722zY׈[I|*Ɵ) P*'KA%]gVۊ]M+O0=d.DJkk߽H{٩JnL~[d<9‚yvm2tѴ-4ݠ{= /1:yt! x.+݄/ G% q{uJYf8ܦɵ9O`)-~cr,>+@ySv7#qw}#sśOFGatq^;'i{[jd;™iPC)a<ĦhuFgDŽ?oH'w@m 3w6ϒ8a68Yǻx,keS>`wI5*Kǚ#d&y c/M7=~n) l h-ps`뚋=!j`=ߺ=͍TD`|;YQln5e^又C{Cnk?âE}وbEPG5%0A#2L##x_]:k.vGiJH^? F{ָ~)X zWP )S>Pȇw`^p$DCX{>c^.ϹjP [?Oz;,[~Eg8ICcrbւ@ 7LҐ4"\HtQŭUyuNs}|v`D@NoJ&`f̆m/% dk=!}x'c[W LNޒ,w { ԭ[b?LA2L7W RXѺ99/~ǹ+#pZn=Z_3+R*B''fV@'ӿF{햌6)3DmHSI%W$Έ0aEgi+kZBEFp1 t9Բ7/leBJ`AþfY苌IƇ.9C-Yԇ@ >tb6)4jєۉlg2?0D'rdYb${0ߟ҅R4\wr`"gDF!ˠ AXڗ_Jxz,;<@WH ^TJjZ gh/_$lL,_I c^d! YzU/Li54_{0 ~ ~ ==UcK_#\$ңJ_dx/ڍjtfK _H5+qxqj &Eb:e14/vW->;Ҷ$ԋ/kpqij YLa{hdJ4#:Go'2TKcz)!@1xţőT341X-$7".C v]*RIFV.6C&`>~>~)Sch ݞ } Ilm%zF: EJjsG@ԖjrKjn>l{q VoU/A]#(*yUb4W|D&@w: <ˉ32޺ʀ|>$If"pk$={jn(N Ѻj ku)Tr ?GOP=?B<+-7G1J>x %& /SmiM&I+Xp>YT"m_tNvOآ)dq2| ]b;8\*]Rm3o͠T;H(Z/2a#`kS6 Db<_"Pz=?&o+Uedt Z?Ie# si6W$L]p0[@ؓ!Y;ml$%>"/2ًqr^VwuFv0 ?_9Nq>s˞w)Q2l !; ^ 3ُ COo3.&osCbF B!M1]ɟQUX;oTNdʌi*8po1ǻC* eeVnQm$Y3BŨ{i%r?:&?sR|I 2g1i]S}Pp][da8TOO|s'CG^u]؁jBD'jU}=p8k)պIE2ɛ-K'g|zAh]r*ʾN[YvK9ow[ QQVonM7YG0oY%aEe}΂3#&{(9TI"IZmB@A|Ig 'XAx#{p;,#^i`Z\L8]ێ wg?!~~dy\'Q+|5{wûo L??}TyǒG7 )F'yVOaXZ&'KZ{VTwǨy L9܇8d'Ij@\cvfsX|6y \oG}\+ɹ/ֲgP%3/2C|: o4gak&r[.f" %͕! )۝[A=3oS6I{$K?J imؿ$obKe>@S^7onlFi]bҚ~wl*Â$=ü91mp q9`#2pg5}ڼ, %q:8DnO*/fNkik"E/ I}C/k'znWY=B _.L>yc O,ID0-t.4Z =_eݤǭ\HH{ ̆n)VϷAR҃~Ϛ^;g:6ySlbl^PC8\1`sr+ "ppGB̔3 V*4\ځj֤ԸT vكVp_?wqi Iyi`zu@ïI"THE~{R0t |ѓ~C@TRꚫ֖ >#BQ z|lC KYx0C2m22ؠ @8;Mv#d oE;y%V%>[n©7n!`۔eEhi!U~ǔSuX 4D^v_󕾦ST(7

,(\U3ũfR*@eR8>R7ET5íܼb\ 4(8^08O0ik tSRn[έATqCyϒV^&Ld7pk;ݏ钃`JUW,#yRڎh,9[y+Ҹ>YS\E1awA|%":[EN+pDO>BN(9]N}9z.vKG $ۂ@~].wFp*E 8To0ǿo+jǬΈ6c’BpweuA+;u4eGJ#cxmكRb0OV>;"L.U4b@-C=W^햯;v;slhQcrP;_!@oG Xh}Iea_d+jKUk,_NHSc'+n{R?E9POeЬMZ~r7D[.k +*[dR`#,xo,4V  +cFa(U$ )FBqVIUu1>'d9MZ%/дVrz萕i0^3>:{#L U 8Dx耤KXXΙ<*WzF^C(缤Srp>'S̠?7(4\_q\sYjoNI0ŸVJZSZj ;K 9}) $ͽwjƔ?rzXi=hG\d E-?x@庛J@ G6k"56IS7-Z rԝOlS_0/NMzגP_.uqv M{{hfmQF?x>򚠏Ct1h"? @o oC) EI:z!:)*IJ8iv$tV_٘ᘇt:F)e:7אjC1~r\HYsT#|Od{2$>c&Yw<ٰ{pz7RX6 ZVA:t\CA=9E:6o?sҾ(#˶/Ki!|xs׃ƣ9yFOQGu_"BpcFed9`ke v_eF*r^)0LGsxeޭI(ot:afтɢh!-*ՠV*}\-Rۦ(&@:,/7]7 c$=xS?l9~OsX+C[0 ^7ŦQşD}eA/kV#ƀF2S=Z0   7aH ¿Ks@1Z׏|7 qdy|Kכ_3gLfwY1 c=1޻@& ` 1ޟPt--磶EH4!5lN"kۯ6] {Brj_iAꓴ2o.wi^U/Jl$@v!ƫ'(ïM^ z1e;z9lJZRL問m< bG0ۯDX {%*= Eh3#P`ѪA3/|w" +˱޳0wa~rpEeqN$ޣިB yd,j~K.gZ?|JMTq;6ہ,UXƽm\L~_&Ŋh!-T,]pPbT7Q\eu8QʺLa~kԔ5GX0W鲼bt b ۗ֠/nyBHA21 XF|M˯e6O;iՈc_N[HkH-BTX0:;LZj$ ˄Y|PzZNQIN3O4,_j) @X>CZOi kygʈ˵Xu+B7XSO'z%#MsJлb%CT?]i VG<Ƚ`=~ @YHjlÇŵɿ"K`GOQN^kxkcr"Dnμ*"7ս "WF|l+oO}T+~ %%'jm7zok|pPO-$A(Z^] 5v.nDS4 ._0+"wp"xDVh62Dy#4‡v_C kv cnf&pY)1KV%1' GFGP~K*{:+wzk11P$"Y4Z׼y:x aH|E^i! _Ŵr0`s"ZN,dV5̎K3R"\)Cbk,WQ3?|;Bm)mRYd Nopum[UP"c6S~MUU{*HR!ƣ:e'y#:|T80jX\ij{'q h*k[5 2sZP̪zA 4p#)<1Uj{j%eNlGFUv\hCIA}ջ,ׂVFr~*L6?Fՙ4fP',zcoXOڣAJr̻ b"cN8Z'Uu"VG~4ZyApAƸl]3w=Ziw7YU W}ltvABꮀ67UjR~ i9g}c?!a&4h^ô5ǧIxA,9p_r1?IUF|X=3rϬbGP 1% qzTi̫wK\.IE)B#vlU ^d[g!8P9o@ @oK3oIc\ɿw6,hM%++O9m&[>@4㔷= ÏǭPcd`5#8*KTpS*\R./ e|lb1 Н~YX(QrQx.e5zAAfe )FR=X DgU18li'őn~1v~u곛?ȟGE 'Aҙ_d: WtJKK3v,xK]!0fa|zUo|1FSʷ 9geO+'[H518@}vD?qk(p#U:t uX(%<>Rr83+bV9}s\`!|୺ypk"L|wv5n@8.>PVEiC [\@>,0)C~=]iˢ^]N#/pIND }@̈́o@Gb UMݲ `Ms}ɜ2eڳCQ?B|Hp%a+ρ3ymJvx|[aۅRoKJpx"`b}?>1<(\{,E=ק,@}łFjv(d碦+'Ohbx`wNLQ2s}=&8/֮ (&ՉבCj.)sLXdn4  ![5R q[*﹠ y-ԝ\CtL`3I31A5dn8xm/SόWyĕy rP}Ú , g)siuP%#dsvMUFkҞF *:Du>ʷX2 kZ8 Uʭe~-L(x}hg4:2`Z0ab}} ˅-gk!Rk[onքvϿ-rP*I'"\'3DX5qsg~ot(Rsg&Xx$1TfJ:mΚ1rYE%_nb{ L!}.*p{9GO5rY.5Փz&Ć?:Ȥ>aqY0y4êoY{x 4S?*T4`zոj/uOrSRP{A;bm=svTT4 gznk]_ Z,`|&{Gt޳ơO qaڻ?ڵ59]ֱğz5sY?Zi(]ajRs'ls "}@(w) 0gq8/ K# яQݎo"H~`I=r1;hn)` zKmOȗĠEasF-XʋIhUX]$vH :|$MG2'&;.XPAh[&N@920~Bp zoÜHdfηGnuDwj]IWŸ@[f,q-h^U/38 Nqssa/}iAt1ǝdLCV~G#pw8@߮EY,/WL[Pphb<â:iQ %VI Eqıxp8|n# (pՔ)GIتaqmz5/bN (A>^ȑIFfG)!Lf8=.`VpqXNnuYJ7zx ̐7C?( J!aV ]1A ͯ>!T,]I_-B@63(byPV/68K!e<K0ݰY6~J3}$ 8+lcEJ_L$!Ǒ8͉rKC{jU^k|c+nUj\,V4M{y? '#T$tGtv̗,ʧ&-?暌w|& 5WM6z.)q9T-O 2 Ѽ߀Ȳ 4k{J3s?)AZ0i3v-Gp2wԼ z_J=ɹQ1k3p6ZM 2sji| lS!JU=>*ۄL~<[w9LgD(nv2o805xsDm ?4l+?mlݦ̴zdǏl]Sw MWx9G:$a "oJB"MYNXɸ]K[]5k (׸0nOYu9O)bN:+auF ;UZGtS7 H/ ːB0t\'Z|)}a$XffŮIz,;0 T9`iW22ZHHdPe fEZӸ ,0~Q͵>}9H5B3զe["։w1gޚSn6.R9Ow8 9<Ao)Ew-S0lw/xyϠ\a&<,q}.>`6E7$Sm9%\%GHi+ӠyHEPؿE,F٭vF*i 9g(d(ҔSy#Ih<+5VSx6 ^1"쿛\ry1O>@$;cz[sb> U Dhy Xtl#BF7 1a6P<Ӭ~QF4qy-zHGKeFkƱo_.8&,ݍpop}R;K6Ay :)h^K {ÿzwgQy[вHÁ^ƌl^KSٱ8I^.~pVP﹍RʛrDHT.' Ꮨ/]Pgal815cZC_IN(b"ƴz4~ob6 3nYiTIs^|iļCrz$h&6Ȍ 6i+p3%q}{IBRy^?3gF=`kNo8!$矛FfXLdn46{3Sbk!G6=TJ52xo`@p̨0 Ǐ[)U>!kU+j2ѳQ8jwa|36Ap6[I1^gwKUV @ ƥ] Y۞^e,0G9'W#G1o4h0[ߍ2 ~ZKezJ .Zf{Qӟ%m8C|.4eLװ`ӡĭVy44{1ǩK.1~=sTV'mB"ү䶚&}HA bqgȿW4Tn6fiZ[jGEdS>aL/g*_iy_aP;'GVYc˿ՓV1zt=UA4_5N~1d#4 oP0ɤuag`L_5>jYɧ\DFX/DM'biE6\=H2E?Dkn(R07? m % 睾Liv2.Q$L\ >݃Rzli&o95IHcO0V|ݴ] L980%f 󇈩TJ*-|Tt^ni@s-2pjBhF~-bl s`A\!~'̏-Ezbӟ1QoƟ+i'_/(^o82Bp~E~Oyj)+L  Ў6F2iC-t3z g5XEA)=֢m{u "(8Ix}LťH+ڠ2UZ%?b ̱oC mVj C ;NxHCoJe?e@0 Vw ㄆw6m?W4C۞D_жqLYIv"-17?d'i,lq)Hl[_;JC  - 񺏰B6~|@||1I5IP<ўӓ >ڱ9Eۿؒ"Š;Ȋzq7B^hC"c A 2^hẗ̇olսھmDL <'xM“QNlRX 9yٺB2SꂋnRX7D0Z$?(Vuxt[b2Z5pQSP%1~$S^yD?"3 2K(py+^G{nd8H[tY=gZ2Lhfq>߉xl<[5&_^n-b1][K_JRףF$,,>KͶQ[XlYsW$&g 4+uT0sG#=_V6b^e *.F 8QܹI~>q~pqt[nA,"Ȉ$rz3W#3 ]>T]%@ }+?=dR3_3H|}/J{C3Ÿ)i1ÌijcliCVK Un`Ue ZScJ"0 㛌ùfe+kS"T3k^L>Ux>/bǃ)P~2MM}i6o?e;Fٗ/m~ /]&&fh'H^ :J:{aF)ocuWmWwՀխkdLGnR?X]kZpX8Y3YdKA JCyJ}qgq7^/tO>U{TBhȝ6'(/hUYI{,SX_{sME^E:_ /^aMlY3A[x!nyt@x!=CVp@)*{K)N0De:/*q]bXjU^xyhA 6ԕhKnȑ/zOh>̲'/t]>iv$˷ |5(v=R'o7Rq,X#*9qn$%ne~tQN(ַQ Ы'2xe,b*%)**Ϟi z%,A%3=K;7( ".YK1Z\f.Y~(ߢqq4RM=|I炑J,Y9\n+jP !)p2H08?`:{Rj:ЭX1>$+ѬXK2uy3 ;8|Pba -`f'(7d:;_cfmmPÞ$k1"G#']!JFr%[Rq]DF%=~ͫ!"uBο|_;*IQjg{°pNvP"yv 0 2^ζiݎei%Yk ߱\Mam܌}H}%&Ӣ5yyDWsцcNمa|  ]6 Yko{c]Y?/UPxmpTqzZW `$?\JMDOr싏H=r0}YXy=9e?^m}? +1s|c~nCӤ!OcT^[ec7]'a sӂҕ-Md~o/1 n ZZ{3DK+ϴg9Hsj0páffqZy L58R 8մR%x[jftGC2JjR^M9 :E$KQ{ҕ8;] UwLR!.ToUl={5$qRǔ%0;mP 9íid,FspcQ2s 4".O_~x*y?ja,^ly}VmU>4E5o.Py"nwt_H8ȸjb'ز7q2qE&Ҍ{1O#cݞX[YqOfkk|/Y??򠃥Hlq.߆ cMHJZ a9@&)ֹ8/?`ie\+OS%ucI8**]H?iwAw<]䮆çna(Sb1Iؿ.sg8_'nr}tb.FXdS[G:i! 離u0 s>[-2_PR$,0'[~tKpY&X=SxQݏ {YPd|a05b{ q>ԯ;Դȃxp+08|^8=fB{OK/N hV#u {WGB-K0ay|;3 b`Ũ|X[+ .tz'5`1sYv*C IZFTǸTq%.,U?[!~-8R6|{AMQJ43,Fi) 07?⫻Aa# _k0;ps`9!i{FvLRd`٪3[s[:f.OYW93>dx']=zB;jwm8nYM[` B5N\li_K2pd'p1RgݠdUWL},<CR9(h8@ _ lhR[ 14: U"D=\!i?)09}Pӳ Y7<*bع@'!"KDꇦ\ȕc͔O~JW)Q<{"?erO!DlnI’I0r"[.(bCa&UI[m {q-x#QLɩ(F,\H¦ɜ#&ODyG#e,gn>Rr0M#6 ^2z\l*B+^Y)]7cؿ+hk(7B71v1mIHp:5_8cc4SVYb*"MÆqH-1ʩURw1X'mje/u#רטp!%1 hS%[nn\"E&pػ?v3o<=' J4&oFZ?IF_\o9_RzS0>ϼ, uu. eN/UY>ٍ)îws3|mtm4Oq!Z `OY\աï楫57f*o/_%뼀 g2mA_d{ C0;Z's" ka^64%9^dY~C_˹,ɹ |EUuDNP&Qm zxW(1t) }xc.4|hL>_ZW76Mc>J^eGpޢw,X%H7TEI@1koC7[%8*upi"Ex;:9F|*+%&?fOmrDdɶ8{z`r$ħ pd+ iұy_!K|q)_WV#/6"*غ[]uf}z<1:@ؿijD^#Ko)xWӵr&ms5ų蛈,D۲bl8镹.]"^NU_OztZl LZ(ubbÛYGq<#7_[Hm,j< .Ks0%k:Inp߹SƠ&޷;f5rrtn0kE7N< 0Fap!M)8ɿAutkҋ DcF8eƖWqwrK{-pj_wU l\&}_2!nhDQΡ~NJ0W&9ꌮboQ.iW4<+hiȿ5F#ZrS^2͘3RJ2퍭z^Y ?'nze2GXQLn1=ce^K)I-/dDkN͠QK|d9EF믲ČYwv=ZӒL+2K@{EQǾϻ */ QDMj gz2.Tam6mWW[oj5M_K4fi[)_/xWa,ڻr,ss*5CR~ '{3PCޜ_M^q^P*p bv&_k+6qI<XUUj%ry/@A!A5]t$&i*~ΣTOt *nF&ZrRkWrfݧ)J@Myh+^F~2+E'w}63H4x^W6F1EUFX^z)xԉӏNبz=h<5oB$bbkCO251fB#vh2gb.O|hnF5FyM3rv%KQHsҝ%G\W!C)믯G@g XQ:wM?6z=&FIg ͹6&a(Mq9ϓתtgy!Y}'7r*I|^f\} v5nWg@8tn?@ׁTRYF; WMb 1Eoԏ9*MZ|G"d3|7ܧ?咝~7.>y&as"CHS<-R՗ԦjuHW `Zxz.žRU}['@;v*^2w U blRkCC !?e%{,X5kt8?k!ԟr3 5ݢ'( HW 4H5 &{s{y YN;җ>Ji_QHVXW7E_SǺQWU(t% }4|ԪRp.z mgx)݆iQ3U|]%[+22 =j0 TabՍ"c𿇘t3LJ"1XQtֽ4x](A_V~'-=|u%7<>`sW`ğOD~ ./|GHW=r0 g m)ЊL VS ]ӈ,;vM%W=HZH~B?G]#/7~|6=}8jYT7aA{;_AcikIӠ`1:'ygA_Hʩ͠ 1KҕXIkjƪ荙5_ͳѡLѯ(j#TB݌Ntze3nX7"l{5iX7faUb9=5FT6z[7o?ws>x!q{Qg*ŋsA (la;#p\zVz+Fb^%YɄC,A[?t7~bш=GiBF;Pێ#8N_T@.y0M/}@ )6+Gg \z$#{'jo+Q0rL>su{k !QفUպiuREL3j~2) R\My%KReA)jh8Y5,5E]Ɠ}7) q&3] JxMTyEN:AVO?g߷F9_{?HqjcjQ!#XJ"L*8%gzr_NӐZTv/WuV+dեsdD{3ŦYrr֣$cEKWG~ kQY#{y[Q\3Nqw&ٰ|}͓%9V g:L ⷆdmG\t$&} w25ٳ%7xR:om?yNؚAx3Xf3ɡA%eZ1Z ;lm@c@QYjnlp#_DQ_*>.yu&ߑG|D,+p{~2W5zX0DtɠO>yWjk-f3jlw}`Rn߂Là@HwLadƖ 18SLNybr3ry&"ZQӅ6GQ${wl*'LIcgYQ8"5îT.`T(]TkEٕs* 4|~ 1EiX z+z̖HXYf|l(MNk9/3t\>ge@;Qbg  {J9[kP:- GsKˇ$ŵրFϊ{e@-Υ@w.YFډ_H,*O }GotkebmzugwlX?o'^pMۄgcJG*_%+WʡG.ֈ.#Xu7 qP21"GsTXo0o%"wPzf 8-xl.p8] ;_ڬNӕ+tI0i+uD*Op 89[3  ?iK:NlG~禮~'vzlXghTr$vM&X'f7xDHҾš9v"MT] c*q9:/.3YPWk6a\'H A#ő΅=.Èt{ ;&$a`CYJ]<,_En5H%xV]n 12tH2,0WL/ [M&ͯ$3ڙ2ޮ|ϓb_`T0/ӓ1^1i64VYuu~mNt)fWed%^Wftz=p<ؿ_xWY(d{nwc~.QY@B˔S,ċ|W};Jb] u9?/D7ꍦiN`HYHI-рPOJWBo-ֺ{Vr*jQs~ISx>VgNkJ{{b|DAI~c0֡s# =\*rY |- ߲*%՟C`-Ǖ%vZ3{ Ws`$,@ jxh.#䷎0`WTD {fWM&lFZ{=}UoG6[[lA"tŦ=d\+/>W| Xwx3;{/u4㣳-C UoT>gfX~'⦈*%pl9eT PVqV9t:iV/IBCuO ~Z*j_n$i>i$_B";N0u _OyS&|#kF_P?ϏQrPkWKbE,Y$j蕼$AԶە!xcrPTDOξ{?)j տ#7WҏNƽMݕBm*. ˲=ܓ,8P߷wU>[}-8 ($Ą[[|7ƞrKDg &#ڄ\jpξ57lM(<xMN뾏{l a ld7<.9UƑ9CY2~~ &cpzݝ-XUoJ,Q sUFs,1G H,b5 \U"kR3!>("Qqb೯JW:[ KQvO_+mҡ_8(hpӛrʼ,+,؟3|GWDծK,Y^nu_tz啶zwݗ.kp&<]ۑ"ڋgÕ;~V1QFET{O}@kMetJ1M^4XtAJ[X(}+&p'Cd@xֆ+mz&բ;R4>p@WzL^{O I' ы-K^{m'n zOd&FA?( H^x1!&I3Ƅ/^TpݮAm@`lOk- ;VYͩL\+D순|&jB; }Mwd=$፤,| ? t| sJ=0hi @1}7m X/batnÃ\;,6xh0v>$#hN"GӘN]L{Z!8fJe `|wsJ6n:.`J_WH1doBcenX:6r0Zs M(Yv)WBXA(fM=R 1ڏkY~nrhCo L0\^/Tّ+o啹b/@MN0^gL& \e7JGʤT<%znCn a7zaz֠f>_A$nDH.+`xJsL  Q%Q`┧v-*)I>MEO4_Cg@BTH*>ndZ2,a΃V ոDžqpp6ac~cmd ^'+# 1 ' 9IO$o%_g\g}|mu@>`AT@.I }˛$PZ~o n=pڥ- 6Pe(Iz P~#Hn &`_E<$CzVCz= 㱽l#P*ǵAټ㯏u,usDbppnP9QC}>'@rK/zWFTX>rC:̗*z.R$ynYT#:XoHB(&+j] 3}>b;FX./DWI)@6[T 6]4S#psoGA2s. ]4%'U <ؑZ u'(bUڴr:&vn!}ɂd1enF{\-=Rb,D"@rr@!ٙi]B|sLDW;Ǒ*ŒnYƫ=PwGUUP&4V/Aobe_/2vFtN}Ɖ^mәUi漄:oGGY$%wW}Jil^"e!v 63ЪI_6>žJbBA0z}=@L׹ MB̴siGWQL@w~my[; 'JIbGGБSA]<^{BK}NJto70 E $T{X 77| ?X#zrn$0to桒-6V贔iL~M,RcrT{2>pĺi U*T ^IxҍT۹ '7ޑp}(=:dskEx♷5> H2%Oa߲L"v;)cfӞM1?a⣿{źX~" ۂ(\0 exFDn_ljĵu%R<)Ž|;F]z=6-X0t:Lojlu !c"NqV!{0b|KKgv $Ʀ_9'|K;J7i;vB!AB-償?uƒ0vzf(Ujz^sƱMR Hj\{mEHs 0-CD42XK,iQ ^r~^|o҂qaxX<͔JUSȎuJZ%3[$֠3wx_ ^}T1(J}0m2}*&ԩ?y6RO$@_PiVS[OaM3UQ=\KXj;J&( )JҸN\AjY9&cp\]l+<7>JHv_S#uCs:qRl_+9ť:-7t`[;Ϯn~뾀)gB/)N5z-kDįe ƶXQp4:nefuuɿFQKA#Q}'bV%;xEl?3"QB,adc"bxŴ ֞Cig("5bu|z<Բ| c8û^>c/NY%<}8`j8O{i?1b_" 2MԸȯ xOΤ0ˤFu/#Krv]cTPdIW_%Ң(3{,Xi ZYg9$gJ(ю@C54/to92?iEeUS\y(ho_jJ|rZj!Z ;6+kv ݯ6Eet/vQJnr%C9 X0|͒wa~:| W݈裾\ '+SmGuL JnRfUjV¯mctw46}jZIOBSGCa|(LK+PHՄf7r _^E 'ZS% h+3 &B,7y8 צj;r_Vh)ҦNeG|S+;=E <6 #QkSZ_NShMezS~ An|z;R5e-#ǚ|BgQJZ GeYNu8z 䃮NZ]#2WO^i))&$kU"e4 uh?:zICw+Uemsfɺ g2GkG벫GݥjgQo@fh0؟2!=5 6Vl Pa)#-~Qog5x:+A.@JB{Ky{wY=)o݋#.".{p"'#9gӄHj-}6_(՟c LQ?~QC>=CB]@۱cL;Iwaobܙ)9iya堯C"Hէ14l yʽ&t3gDm M܄4ֱ :Іx: 2({GyD?}2r70d(>w~.">~:3r8nZ뾨.[t/r~<Ԙ'&(`p')ANa:seo $V*mX F1j/T/NJC>Z/o`1js9irph g~g9bM s_!J\O:'A t_Ӑ0v鍹(^}TښS,rRMqt,yY7~+sl3>yݪ8Õ(K6f6 " .6BJ;7Qsr~*AwU`@ִ@;1oj2IҌB3CO2 [~V`,Ǟnsbb{ڎN׀\yaކæ"?vuG f׉lϯ䪓aS2.Akp"Լ,v;R+i$ d@$H0*O^Ÿ>%YD!$LVimR)ͿwYLO.$~L`%s(*|Yb#'*`6iE, eAgbkFK,8 `0™.9nLE,| h[§Ů_ެ+>|{#Dt*EӁ';-tUbTCMH <fCF9A=~( 3ߢ`Fj**@dX۩&5 PCHH?] 6fױN?^ѹ/Iǁt3yxX@zkJ^;7߸jf֠6ûX(a}VamM+O SlGϒXe3(lF:nVGV"{R=vPe`/nFEڭ R4&4KQ9JˍC~j VǺ`I*ކ1z2KےRZfۛ$(xGI= 7'a3Sy O i5[-:D!#V&zY*ڬzcɥQm>`fr |O=Ľ`3K8Mɐ d+vUOǦKOL6}+#lzH ^As3bmRJ`? sd ֡b.JJ,jayrC3dVi Y|a8 .Xq+*h^Q壿y' 4y*4%wy-XL/.:3`zF$1`17R |!e#V5 KFypWhȬ-=բd#_Eg8d!b#`#_wǡŶw@eޜVI.{̺z]gFTeKe%9Fĺzo}ݱɽ[c|^\Pa.TfĂUPm |Q%"C~FFTo)e_p\[;x. G˓uPS[C΋OR nΥ:+(jK2H;*G075VJKǵط 'ܸ;!XZv1!smkp.F b4S 5nE|w_Y"Z o{óI@`4wv3ڦ 9Ɛ8Kw(9)k6$x< GCy+6ڈV\&= hV/cdQWSWoYޓ{ /GYڔg$/u 5& }Lg="G4tcKrp5](k)%[cHrSR JYe?lC[x +ĹmTKDbchlnspΟ7|^\*8(7"X/1{q *cGi(T9˒ mv[eExڷӒ B)/E䆌Ͷl? Ѕ ,vlY &>Aĵ0ӑ F+-ܙNoފM>wZ7/Y+#g|~֤P_47M97KmLCQD @n1|3^˘?uPe^?-xʶi0e(@OX le-J~4?STRDbS)&ð^{eFn#E{ Isim/1Yi }K{}\R'^@0#,{E<_u4qՎ'ͮ |fG]jT׆Q7UD#L2U;bcRϴd~5pQn%o;/rS{ =n7 E?m)qLiFH! '+gAزƀp+ʃy0(TW]rȸ:,ywf5p?yVӗc fPKW=zBlXBQ~03qy&01+eemz?4t^?$}z- /Dg?P7 ;ԡ@!.ˤg\ # {'ES]0]ɼG.C<ҤL~H~q|CAHY׋z߭%;kޔئy/d-XtDcGxȠڜw/-Ugz23u>_3ú0JM )P%dE1BV@2冀2;ލ9٣y?IϣXr|C ` Փl"KInhBq0}Q_ PZORxR'f#p>aO)x s5 3vXLI3d!춋׆'\{S؆Ǫ&+ \5m+Im[-Y$8Tr`+füLi&,KqA, q6ȇk6;o~  u~wblU:x5%&*f G@^dͱS9sa-R[72oI_RCGi0%:䰀8(~V'JsJOZ fӶҺ=N/Pi+ǁ܁@)M*= Ƹ܄A$. Ct'شr6b mY9, T4l)'Θ ,@NG=X ʓeo /SpϐrDXSCUi2*W'E=j0MxM8}džסy?K0p;SHQ<.R r0؋2GwpXu6a0mٍ⁣m,z7@? >@TX'qH]oS١DԸ؍.S,58? p0 JOq@UEhԬz&$lXfl<}0nqpL]z'Оަ2RwEխcrvJe*oUȯg=mhJ#lauazaJ eat+ϭ񭶾x{z!g.#|93t0KNOe؆ddgȵvW5bv_QkӠoh*r ?1Bœ?1>21HCtA˗,]9:y!5jlW)?IÂ?e_vh< `}o!m!\ªKax~ч 2նD] >!w[t”ڱGK3ӡ WWƆ_JW{E] tfN,rHZ.a 1J yYitg)*wH׬Ls܂\6 r[)e(5iM ]F)g͈;;3͗9bC[_B.6ѩ}t>3bSNϯ9Y9mT^,D?Gi xD>}%}ӃC~{} Zzw,yGyh,;F;GF@I_t=^z1zl+$׺r7u/>|[ 3 `|ݯ^݉:ȂvZ+ ($K4w;ƽN{T*Cd&u;m^EZ/iwhP!BJ=pp::cFVh>-(F8ڛv^ B :3.νMya\~z[ i=߻E٦a --$!M\/Yr_N 2ݳ؁(Gd03Fbg*@=D)MH9 VPjBL=y31aWn˲3_}S Bhp|+%D{kIC G|vњkPP swUt+Ɗ!R_'OڨʔKi뜦u-`nWoo sRiSuSb$*/ f*e c؆[tT6ycv%إ߼Qy&±5Gp Ӝ{N?Z/tXQwcF :Zݙoa]Dd~xʳtS |h2(>A70F4^ކuFuB)J@ۇr4k霅2,k->K|J꿶(,nS)9\)O w;|AWDDPtx..>v 0؄,ȧ\y}[hq`^ڰ~$D7K߹D+b=l'kU ς(9rW{F;zzccT/|M Mp lښ>Z/ YH+ EJR̶"u?`UXjKg`f6"MT( 9; ?DǹlP럾 IL^ ഞ"Pn v 2zQ7?g9xsUN;2yic2 bj ;4!qu1Cd6)O{b{07fdXA‹ *UbnI"6vű.NصLƵF`oHu'Y;QWnj=+S\AKBP>G ge,[~?HDkb{}fڶ+|MGB}ٚuYFd~7=\ޗ4?GYy ;~Br}kxRz+A!͡Iclx{HMEl)Kl*2(NFsr@hˆֹn RSnX4FmV ϵ~ 3jX ;;>X.N r&o 5 Pl3,`!rPG%>Oj@M-1Ԁz}9ڝJ GPr FI6klZۢ0}soa׬n+DO(k@ =ج/A`4qH^AQ\tK,}s6oyV!'%_Y7ahtD>h9WͿl$GG"G)hhvGTYZވcS5#a5>5:Ưi+2,eu5+ď(BoYo'\˅Uۙ[ @.eЋc13UO(d*ZŊ{Ti*㧆A~yJpfEp:)+(3TNg}N76 ۸Pёrw ~7c 1:d I)͊Uh0:8k% OU4jqyp$Fz 3QS/%wk#@o9&._of>%15d[J9Kx%1j0 QG3\'rߓNgR1C{DA s#^5TWZI)Λ9Z,*b s.oҡS '}je%ge;eP3}(8b)׆A$+(i%Ͱm> (`n(J(M{vf, ,ʞXt^ 1:ae"2b݀B<_d }6* Hݨ]PpoU}GSP+#aDON|oKc2)Ȩm³,#ZwC}.9[V.uϽc};(UއO]Cods wla/EKb[Oǂq 2`iރ͹RpJb.†915tko2KXSmSڤ\GέA'*xɏTW$Dlvb\j 1*Gba݆ͨW4B B*@->41; qqɋ k8:B,G2Z>3Crɭ,_į* oſ#:Z7ϟꮗ/TeS 7Jq-p~C Y"V 0RJo}sNǬޔ=L-qeL#3vݒ.!+Gq,l^2?$"~O#gЏ{Eg58(|p?M"Aʃ^^(PQ\zJC@FN^.f*"E^_ϟVтZ#uXYɟ!I !{(< eDpK6kJͿ1 -Ňx64S I$Ap}v2'6.,'E] ?..yOpusnwȠ;[Ej'zDʩ6'5ud/pi6ųFdP"b9hhH(Q} k mw ׵g*/w L/ڣm0-Zy\-9ޱ;(89S&IrUtV1 $cz ]`PM;ѫڙ.?͖Q{Ei+ma"!h@"PM_[]|fZ{DM֠rB'2E,*욕WΫN]*ldyL:'~Gϑr=n'L ŏFK*#dųNeDP d ZoZ^7#?fDz^R^;bsL{sG`hcn@KQQd*ْ|T0|'YS;ėy:9JLfAMc $(&hYh=v-c&%SiQ8z1`|.ReKҳ$c@[?WLN }wGVY6FE+2#f@9y>w#b4L&c7Qǩ{S9%~3ڍt8E~8ߘqv,\Ƀq{ࣼ\h ;[a-yZ*bc4Y- 3 L`˹sQj'-WQ{3_?R\?X+9ؐq$;%=x8H 2M@ 7ʳ?Fζ[ɾH'Q+alJR,B8qL!Ca9X{U< stPf4['ӊ'G&4?%IΈ at[ \Ve|oi5IVT&wa}):i¯T}qs7RD#Z[J@-5Aw a C3CT߯!Hy|1!\>_{N:˺PQpZmѠ;"+YIr9תȓR,c)hs\PT;/UI(GN!v֣aMufR{[ƮW!^P-DY ala20>u7f vRJ. oV  $,/Է6&r˧$_иIkܨyZG`ՐٵtbhO9OEIE2m)LHXD9Իcz'hf[yMex2q}8(9U·e t;Vb(:+ Ξ[{FPyBVJo͒ǓcmBIWp EgcbPA"x"1aLHu)ih:O,d>K&If{\+UcpHB,: mբgNr5x`"ޜ8 7V eܫ[*!@ȺQnDSkr/9y])!1|?o;*R9:Q͍ɕJ'ua2}4} ܓ6yދ:_,ǽv[& b/MwÆnQ4*wX^3[ڬng >=e8I`'HohdԴ*H-kTUz_ .6`𥦤;őf%^<91ٰ,zMe'" ))E0#Yfi^J+ ';ယSip8#Ѿ=>ܺEoՐ͸1ub@b?ָDq$)HZ?GGߧߣzHw&Y繓s QN5ЦÂLfdq~rd,upA$\P"Qȇؤѯ/V->9 BZfA* #^6?Im_-H %O JoFf 'F*s}EEmHF<ߨ&Lpeƅo'eK^ *0|0n,^RĩpOd廽3EÓ,ex*Pj;EMȥE,JCcCڎ!s~&WXCp7B& |z%맛Q09ӌݑPս7g;k" "փ|1HaDezЋ'C⽻ޗ`& ݾwZ5HbP!5W5%*j]"uq27'd@y6N|5ifD* Z֔q:zOKTU;4XWZؒeyǙbo@ D ?)9w,nE)S[^ @ MY1B_ZI3P脘-ML/LW*~R&&ms`/5 ,TkbA!,ʜ $O/e{ -"h ,ioW^j}y,9PUس X`Ҏ&_jtK3 h&} FU94<"X}uRܽo%gC+ lDz,V vG:KTwLѠm͛pd+SHgPiM5E8IPJ]xD'M-a_t׵I.4/>v/ p(ӊ3?>-N?)UZw_~:*ޢ+<ɭ?M]< |ԋup)ݲhω[1_s7,Q/źz]}:áWQ>ģ+ehbƽJ2ٵ^L 7cMYlRzpus nM^w1wN|ֿJP(Xs?KM?42S5 ђBۧ7PHSgn&+um>2!^XS ko<2ܙp,_ݺV70 _YsDt(uE2IĸM ?JhIH4\#ZvkW[bf!N6 vWҗ3|k]@ PNR98ysCbFEYeE~y|O%(nmX}wF VJkb9|88A #VZ1ԒKWI|f>tuNh%+uk$0ٓŇmMBwu2h4j[$uUG I#'i_=VBj~㻷=ئvr\=Q#kBu^=\kK>*;#y4 `LFlgSh$gֳY)]cn%yU Űͪ%\}O <^BM[қXU B+G)97)dr%0}}18[[ ˅>Mv=n>ڇd,o1'Gɴ/ݨty 4eh2(хu #{LQV@w5mߠ-IUNuw+_te:aෲhfUߩ&Ǔo,BXw&~[~a<鹞!c=⁁< >5MT\Evi @>.wa6ћ}CsæM:3 vMKNA hm/'"! tՉivqՀ0w̪ruD@@MoIoCӬ/;P, s#@YOacnĻ0跖ع/7İbȐVijćI5vg >չ𝊍ojOsw?,S#}#:ue-وGUJO_E|ev12+Hm=kŻݴ3[~7o@r'iXsʕus4Y`Oڸm=mo&X_=L\+қXFzj2Te>Hxy.MJ]j]5z%PCNm%Փލo׺GAǪ(#NPqBB/ > LlVyHz.ؚa4WVdاf>PUL }~2ND\+ÔbG/=Rwb CiW/q$wTͷi,]a- /^C01OU_ Vf[Ϭߞ W`&1'u_рnMrdaüvk<J_c:[0%qxV~0`[+~m.(\E[2Mg֥q+bTVƺq3i|+lmφAV5Cx_9NêoWVOJp WYDQ@un;S! /ҟ: 0NM8f7l+ IӏVE%u1{3x\qiCczo%P>|k OؚsnR|exZ{NBh+9أXb uu vI(G*AϬ8^d>erWl> XAK}Li{ 6?Afs"azU+ӳ: 4yp3tUv?)vmS֠9LAt䗉aRj E&DӚJ `@oȿ$>]6'Fa>҅E"Dd;]oVYƺ'rqJ`=o2u=aѿzA=R6|{"qL\뉡/,ۖ@ஔZQls:?I FI~Ifb29E3򏐅7rq5 >e{~c߬p<*4t#+&eZ/ol!W%kKAiJ;XL. /zV)Q;nm-?R]vÓAIKU~ҌneV)z |t` KFcoA?pk?>Vonٱ}ExpkĬ df s5Cxd6.L84![ :-R]yeQItBصHΫz(  NgK6rA/KZ sL[cX@i|xv?XDgmT~Ã&uiO(9$iR)d~23i`|t^y#}У[脭 [hK$2ZS8)c-j?XԤ)xmߡ 7>Q!Ak~h JFyͩ˜#s :'_kX7a65~#Zh^#g^mګb,Xdz;2dAHcqaiVE;:"ǿkϐ\'99R8^5rĿ<  a]3۷sN4 uuەx됌o)AMDu?) b%I W$VD/s4'ꃧ&N1KR)OOYk񘀕˵6z@prX2j.ܡ }mT޶eE'w)ge?Tǐ՝*Q9TK[_Ci;^[TSkUgчHt8iТrہ)F=m|#QhHܚ߱-WWCY&R) yJ纝ӗN0=UZ, > d\(2YL5} $ȄR˳řf63x&枓7h[>VH܁ojaS!ߥ*V:jPaha uW"ߗ\MTm-<<'o{Ӓ.͖s[|oz;O`=Xn*[}E -h=lZ {#A* ,<`slo3H$W4uD%P?Dk؏_6P(+'ۀ—c#X?ɗ(`mZG]GW{]UWNMzFޮUޑ Li= "EČ.{b3Ћbqsm< ^c1. & ߯mLpB(3ੌ  PRib^C^+Hx#\p-OO,Iu(Oub8bjȊ]jC=bk=z$N=CMzWelyOJbFz*k4 0bd6HrDx4@Do͵;#8xryXO_0]N GȊћ6.9٨Vr8a,Z7^%f_Xėn}&I LZk0/nL r&캼vZ/f_i9p%A5O|cƲabՓ@;AS4:w\gHw1 o% }/pRg17qha0ʫMO>DZZNe7_>JLM& g^~}*)PT_0AsUkG+ c, Xƀ3M4b=wxxpِ_YnwR?N[7}Af*k qF% `DMs$"Zp3ͺB k|+Jzi qe,Vwbeyy@SX5x5z׵b`,^%*ͦ=[ݴK~~Hy@Ћ-eVHJ yy0oiFW֭%19t1trW oBUb('7mi5U'ZՒx$aGLKmTP .0~dga&qk''Fd|tY捉Ԉ7!_jxCYfxSȧع!ʿrҞMH1 c.{]D8جc|Pr,,)Vڢa$8m ݐnǵ7Бſ;N0$K طu&E"/ݪFQqO#?!Εf[y楪T@LH @|jT C#?->2%D8uLf^0t;E"=~ǡE~v󠥠'>VQHКVpŌVU}bɑ}'?V~%"u*!^ni޻"px M8u'zA#%d ;^/9oޠ`DK_u<b Fis8ˊ|~SUQ8_KKᄕ<}P2)M00Bgh8,hԆ׊%:? ogXYfZM]$D~ TjbbhXz 2( ǠlkN;w:s+xm'heC+'pqSH}Cf⺕??8k{jrʋUwNY$ ETS'$,2H# ))O2m<{ySEmעo4Dž `j9ԪvS7#1gJx~ScK="Ϫ;ʤl!\mزyE1W@"\U$=%"65gf?E+&Zt6#U11\Ş[C?Og:I` %/K(,O J׳8ȶ& lH5(K ~O B gu)%@SƉ~OX -&_Lbkj޷ [l{/ѻ}C/wʗ~MudQg_t4ieӕ=Bv?~Vs1|XB;2S9.z#m::|$<nF8[tTg̴IWAS @e;D?VNz=4Maf\ŭ G24bX&0F|CEZ? ۸˱i/-1-ݎ1kD7E/L])|Q׾VQ;3e/?uBP&K7yfh>8lϘ"ژZ>Aԇ~Z~FL{>߃.,lu\@-}5j$G+h^_weӗ7ͱb9|kԖ crg9aK8Vgk{~CƆP)Y2(j!ӛT*Ŕ?Ƣҋ34՘!_S>[Tթ0En7p5(|lOB~c'gVoړRN*r iQ~(Jա&A|Ԕtf4 B-'궣E=fF$}՚pHU߭aX#زiS_%; mtK{qj2j?& iLu0,kg% K3;Iۑ9F .k߀,C1uP8O=b $LR)@@M_ a0"xSxӖ@;h3VEaxڝ̠p3Ӵu|̵C@ŏ(Jo pV>_pɮՄfž풸)5悛-{f!i K}x"0DK@/PȲ|\NR̡4ܶmaڍɍROGUz W/p{7Ў3,/oUQégu6xxH^ ZjL(L8KỼ)lNE:RBĺ >"Ln(>6չ$9/1o;:;z<]oO{6hI Zy B>-xq1[N|u QTlWt(.-@:ͯa*sK$di_)$k.heNF((E &l-qJ.Ĝ &њ+ >)T=\qht4=H8|dXlzdKPm^rI :/kl+ϱC  Ct› 2ZTaʹDaZSpbb>(9V~s/&ǽ=ίOC^$1adӸ1$16`g.{X"a>x 8Qq{n]P75ᩗhe 3AT]Ij4X EIi$[6{wJk5Fdb{tkq^ᢘEM = ON>4S%dNY;um׈\5LQ@ i|7m+G_õrzjE0C6 &1 /0 ~CіruuY➺"d7c^9G?x~qc_ͬ 'o9dP:WRU+^ڝ[ Ś/0b8$Q0ΐ#jPԀUeG*/n)\zSɲKfܖDv%3}|Į6W%*_-FIrVoxnF6ظDz⺲WΐOx/ɫ 8,zjxڤr?BvUI{ڦ*.-n|?uz2)'z=@E3{{1Ư'U)%*J:UaO${OS?% Dž8QACV} 7ivg̢wftѢm%e̯3Yj4 |\Kf"ZLв׷̻1GCɮ~))ϔ2/.t.eC݋$1ǭ.b6T N𴦎"{P)e"Չ=>@}M >e:/׏!Ӭ$&oigC:1=0I~ f3bz}\/#T<&_u>{sH7D}vR}{}x[#Gˢ|㞕nCrҨzgKWA);|! fNUǩhb"8ǚ^k5=NVvwDQS X^A3ϗ^5dwqKv!!'PpT?彉a)⸴, LsyP0 omdqFT۞OYg0y,QuJ +3M+cL^t$f0x޹)&6b !^2w£6Vac'R^ok?%Cgi=Ql. MH/0۾Fh+jYnZJE/UꝤ|ԯu?myfF'}&W KHyJ^UziQ00w2In=|T"=F}tGLnط az0lcN r,ܓ~6Gx3 S׌jg "oDk+wgJ1U "ɲvC3r'~ :lMB,o.ݔ8<ݼ1{0 zP%O=S%U}fEA>,+/h]RHW@KfyX)@kdrI;҈y-[:[ ] r|D=;H U5~~Փ0ߜ%e6"Yg_hw~#"`毞=0ɩoyrε_>DHz#`4 |)  2Gz^)I*PۖvLF*6f|`"t] nn`mh4ι˖3W5VQ.Ҧ#-ߩn>vfLTjPRN5wL\g^.G72SB](gf*o_0-QFQe+ Ps˂sw"(m4#Ǽƽ|WjB>q:;\i) ϵ%>%d^ N(|_v?\Jӏ_zިG[RGv"?~+hC ѾJU.4G-4D?~X-}&(;,;>mƬ.ji߲rgƍ׵G넸y4~Aū3@(I,{ˤUi궤T&9:LDbؿzc>87$123҆"V͟XZ7#ԬZy^. e|̝$ͱy_5X5 Xo!"@bh!?T l5HVJhWNPf>o.,@VGO]CV.ǻ#e< TN4XGlS`Ca=M8K2MV8pѐQ.UVСdzw| BbqI2ؙDP#e@SW5| `dע:\Ol JT~:^^&= (0D97Lc~_h0;ܼL<'V?l&$oJQ}˘[}+~޻(٩Pu5UnX)Q1ASKn|Dȏh>֞Q-nMFCjiiO,-cJ4znt\`$sGHh|#GoTB13lWļ9::0 EKjV}a%l<+ɟX lAz_ X8297=\NfIօ ֎/L ._D`^x{\r  k9z@wӕz2;gb7,tQdN:~ĝ0{dzK)ث%ҡua*лWi3FH;di>x}0|jf O7[0Nw04'n*,Vzrn>J.LMI,gd=͍Keo48EtPGxHm4G<kisggтgXڠt/?ltAˆd{5ʭRJ&4yz=c-9pҬWAuA*M~cYe?6zB}v+3֎q+˔ݼܪ& ].S-Bg\6&u4EK<P:Or2DtntVqP#]bQMg4)S-\- WĶT n& Ƞrs*++-=8(szT<5}!a>àΎ/<4/wBld6>Yܯ2OV'<EeV:K4lY kp/(*eIwzaղߙnx ='M{CyٵfSJx G4P+zg6"US%x~$U.P-+.r9kjۓiS_6O΄źjR3jQ('M^ɫc$\>2/?xo VFhX :Zo8n\'RvĤވDYFId'd J E!ѭqnR?PTގyh;H?Z14dN[]Pi6mϮX`fNY6T+da EkFsTH^~2o1z|{<J3W=)/,bvpQ8l4+4MwlW᥉ d7ȴ‘fe= zx&[\,ٯQsʦr*-j~}^m_hz>0V̋O;I1d[~R`7:3d8z5\zR Z@%P?SQ#$( k^u?/+Jw=~'cQ*s]d-"j* @A{Z7SŨ5bl<_@[u}"I5Sh|EQ˺]0Y0˕ZuZQ, f̣@ 1KfrD)J5#6!^̭]$NU:ŭrRz'Ɯ]O-G y&ސ&/تvHe5JT]6?ZRjYm!hz 3!Lmxߛy"Ά+b~ıC\?&sc<<:.wpꃢ,Vぬ6rZ]d#>6$.}.703ҁ$YODcZ0EQmU\d㨶Ȁ?A5&a'HZ傋ICӉj@c U;$h2Zf3JM:rVyXַ,16o{MbVɏFoJyrim0 yrd\hVe 0\=ҕ |3td7r<6"uG|ouY7YNB~ ݪ5'I"R+դO&wcԹ e4 м9%nU\OIR'X*8R,7L,If(m6x zכV.9k[޻OveV La4aK>Zu4Xu>/ĒkhiͮUPk@b6)QvXN4u2z85 {A4b,gC Q G;Q3p8B6J1g7SVd-XUaݽ(?TJn%@ɴ94+L*P.tXDu:`!io iP\K5mbLOR 'lM^O TɺVO<PɦdjO&UsHⷎw̫GdxjF ğp!3kuEVZ! qy[{Rz D]!*z[!Q/{~Spt([@SS(@a7Ch?EDr&O9c9K <7 H6O0ʝgy2]]aۏl),rZkf"3^ 8 LE]  jzxJ e3*5, cAFaeMe/of4#|@ZE`H&"ٟyI;ޥNjL#4hwY*}Mc-af{WrM+5VT]b$  ltMP)ѬWŁI) J>dO\?&\ O #6b*ѝ} 8,+|>zli%$Ɋ|1;V9T?>&3H^J+|ekxTrrұ$F]RxdMUfȃV(f]Uk)]ve^UYfϖjϤT*|X,D#:y2tF5aepSuIb-er,zc:"Qo,5՛*זxL ;M_xT*>8tίr@ Ul)!Ӿ3ub> &p;$XbVjHj4թ?SS:}sSnJI|;蝏Xl]Hb䷫EϻH>앗Tu3[$yy1:o8,ѶؕM+DF"V>Z}mN)4XD/K)dz1 8ۭ'Of#kyClCxrԭES~1L:y"lq%۩JnP##D64ej3nrZ14H?DL'q=D$[ڱMdև[Qa܀Ull gͤ1FX>*C ;eun ?^3a7A52x<2~z)1)f+x1^6(2xc+l吏\((D}ՙ@a]ڲlǥXLmct[=T:3T{mx*yhڷe+.;〜N2`[=C(>ç@=P ~ @rY x!~rHR6fb|o{dž2 j<شBM 3?;Hy-"zM˒tE8^ cIn^n774nT2*V Dž)G}kxIUC9IƜx8Fߡ}ai)v1op|<%#(UCk|}{y=x`Pѥ,wh `m'5RvkHj UI>c|׮L"z1~_;0nkCbۙf cE4XGMVT Oߗ;ݞ)ǾwuoĻ*ƺ=T6* 'X(XTx 0bǻ]Y.A2C\|>t )fQl,esҝ`I- Wp[zB|0L>Fy/U!(\(N;q=P˳Bqt:KLW}?LfpWLSZ (%B0M?]S'>Yu%f Lq}jmxQEjZ S|/}@v3n'Pv0Z"&1P|~}jș׻>Ģ!!aڱ!_ ?j^L^|¢>YvWɹBw)(y;|ĝ?^_o돗2Oَ៽E?kY_3dlg?Ѩ\hS-i6ȏ d hEoOVߡ\~yt x ?oL;e~n\[v>xtve]_DUé<3ϔ/`ՍI}CcXnZȃApqk+;[otōLuӘy<׍iV-]c^ZI@(bߜ7>(~䂚>bge; tLi2]tãԧ`'b?4t(NX/ۋ7!jj ?e#il{.=SiS)vPMgw#P; H(%?Φ?#a s~}Dz!ԁn?lHi2Wϵ7X/ߚ,[_[ :xq~U_4G=_7B(:x"2a\ouu5P=:z 8?MPџ?w߇ᯧ |펖X;;{'6z V85H K-V-K <G>b80S#%JB!2¦!b ”+Ñ}f׵?` aB7+sR]I鿸W9ςw]O`𡯮dtNfٵ J>mH>DL6Mټ&rof%1z'Z6)h>SqvУǎ nv:Mלud>Ɨ^;˜f(FA f0P9+ f"#Xg* !| mhL!~Iy6c2mC\-Aq 3L;ꮏ% A.;whA%1e n*+G 0c^k0+bˣֆUNQ Ia#0c_s)6j.P|Lk:B\6 DwQ/u`ZЁWV{}iyueϣr}es_\{#Sc< |j4W>"u0Q"z.GFL _v_Cyzh9HO2:{b)ht+E |L*,gSHs&&_҄y,AUVGsցD\4_g^>ؤ M 8^h7M-j]l})%)I?34warx77|Q,\{Ln^wP2iTaрf-pu4 $&LQyhܣCNvAń8R#J ''꒝M _.:SٔmtRnE|3wK0Xw/|販nu 9D\mNv[*h-d1Y_u] g<2xw 0*T<~/^KTNOWtمMG_}@en{2P_兟_iy7[nY7/;N)݁*˯TqJCN7P=oKaǪy;sX@*-*3;W2J!]E܄' VtUYѯ?R}׆q}9Џg`.}0t?C>78ŇksR젥Ři^NJtE^^>ߴP\w = Wb.8zi"~o(wEPc܎ PQcH5x|Ѓk_ 3)a4z+迏fBi: tňa"yp2yz` l^|z4N]ۑ 9d?*\#oy'mFp/;ShM/Dž]Ѣ0\~}9v:[U/;nwtG9 |+++/"mP1/ބ`o.(fv=C5֐3|rGf/GS<2{G$}o sLk~< e1 ;05\@\QvMI:n2ר|‹ = TҵvP5.jDj$FkvL.9  )(FO_2l>Sϭkv:}p9XT~:[, }&EaޚJ.ѝ Q&ڌ׍, fƏ` =0и/c9 )ĘgITDo]@f3AȜ2%&LI%=R8pEW`TnLMJyhH 6wA!#̃ aWJuSJͽnXn(GV>C#ld^7 o8akV'+ vV1v /|X:>bHX(:(z]of{ k86 Nk1f;A;`*}˭yZ+z|P[d S署}~^> #leu(SJϷuig@=(S^6tN`\S/5zI~MYLSz=H <<=>{L @٭赼=GVw 3&l[S?ob7o7wVS׻kn=ϯ]@׋&ZoL5.3+޸.`Qzyi5j*k-/x;#^_0tFFkRq tl xo#TXQ}9u`)b$_rSR b=V=2"YL0 &ͅf3w*ʟ=z emQXzqI1D< !`[o@'#0a&9/s)BcSi{߄TX3Yc]T}]%?T ?`kWPabX˿:HJp֮gW`÷_.#ho?U9םqeԎpޝ>70::t"$$&T\:ӱ2`\!`;,4q"SLAgLlG#}~4a@ҔDw0zvڼTܔ F/g` nзHs@;huz[hL k:Xb־ IET'z&X2_3p^LV)׳k-ϟ%ś1fpRzLؼS=PS{>,υ3o sXS'>Ў4O:teh~bIFaZӠ&Q9Qrd Czn(Uc=z@! &U La QR q" YBc s$}ha2">l!Q] vK.2_ fb&ӫ ab7iQe=#*-q|THXO˒f`>;2Ȼru:lF-^ Qzi?Nl:$^yA:yS\f0Z=zL_ƄTcZJKN"eP@m!1/kOO}Pҩbp"a,ʔDVY%Sh;?_'#[:pe|W?,ԱL3,/ /g?=MhC ;~MlTeHqL(t/Kx;}L !Fxx2Ž*AWA`GS a&]0m0QH&=`+G ʵ: kȀ`|;P>@cdNR~?P&Xډ}Ŵx-ЭXq*;!t+^jK]Kp&cZL e٠\ځwn 퇱Y ~4}%PPcA@ zd7IuҧG'@yAŹQC:~k\p>wz5 X!ՖK!zk j#g2CbW%f isqBy'?.ANF)iNN=^Jns.Í> SC? Y0 J@ w*h:Vd09@Luev ?|w#+nQ,-_>G~#ky/wA}$=࠼NF72p MS!w32S'BNPP7j?Kסԫq.0F 66D=R>G^jm E>"A>CB::̡[,o4kR2~) ekӼÊ~sk4ohr12|lP9[{n}^~ S;;k!)Hn~BԖآXʿÂj;is ۢsIw:܅ZK ɵOȣLM%~t  ?ss*j1$$27p굶>dR721HnO۽Z:{p9swzM=eA趕rțPP1~n;V6 BGuj':@- F4-:o: Vs`&XIꇡ@w v|ApCCϗ^C%|wGMt蛿Az`}T#Քn #B2q*gr`ep*j11`nHJ]n|8Z[۝Й8Ɵ` HdC ޯ-JPqTtG 57=ldGu: G>Y`0R@W3˾XG>W pƺ؊ZSxG~E/¾#Ѓ;t^?^76BQѨZ >=h?!BPP =҉{q2)QGc a֯&B|jM(h>FPMb;Û)Y>R4U%!%Ĩ>kJڮBџ1v)?):@a9cםD=)ՙ =iN@)GU2A!sK$M]Kw4uQj֯!p ߉}BL}@ K`ƝON yb^RC5Ց4 zJe4d\NiNm~>{=b=EEaUR]@:{:3 ~'Ov굶G;>+ Hihq}HHO/E f 0#]?n~꽸NU)sK7e2MS{~y_c' j&`鐒9 Zsџ/8b c:B E817_0Bh}f 8(#my^EPv~fŻ{$QA g6wź@>ꄿ5 a.uꥶ̞^Qz s{\1s׵[90-Kr?kL' gNXPgo?A !J5;';U43yGX'`j8&@|'9 Z[{?V!J9q?uY +tZvIXaZ#Tڽ[XϞ_ncZ`c0=e;Rs*z; jԫI5.)z-*?@j";."ҖOvG]}c4L%td'24W&!šGk3?B :>HofCj4D4>Q:/`PuX>aJNL:Yp,#u%!:A4A)o;깮JLBkzr9zI]*UYԴ bǾCNaH:,_^|֌lXlu5kޞy䓦(XǦy>mPX|ڃR](m镝!C9nECLWD)rfFUOT8N^9lQ [Q >_W:YRoUWf0Ͻw&[WO#;('ZiUM 0(&hAQtg.GW'Km ), +~}޾';$,ty"Ky'9|K@?l7}p1<dutmcퟍE{=dubyEW|{~ϬwM+SӞT_i4ԝyt}rVÔf|M7[lǣ?u2=xl^O0Ց/}hx-zwvi[%C͢O>·jlM.W 'Q ܧ/9#&"aas: .ޯC{Sxp-o@Ac{ưN0yaAtb;k8\l}Q?Jto`~g|_)&/4nY:seNɈ-sӿnE9-<:k8TG[ Dƹ>|_X+MAq#ꄾ@(iS܄%Kb1X7A1;I/S)?|N T.˾\99 gɻD'YJnwk\^R߼י?| :6wB<ڻ uyLt @|C/C9Q<O8cp,-r|d֑vTc|"E0olKt)2j%`f13-88bMrcүF+O}y< !͉h ]ltl:F3&4K L^cG|q)H|= qLj Mh G(`f=64BHouHbE۞IDboCT$/.u2'Ufr„v굾gG QH}J&ᄈB[tIVq"* NyKANU9M5Dw>!ŐDB資dq%-24IR#chƒ#0W҉o,q]T+0EGV3Kn33ə_O*.8RsCR+:L(m|y((mD#Mw1D:OG~`v#kmt'CB3Aɝ@D!g!Y[09_ L\~ 5ԧ9"7LsՊnC+`1B/u-$i 0˱!G#>`;']!'6ȣs`w2cwY鵶:!=O!#RwLu)tbh(fOHjrj)_ T9 unhKϽj(LlGc;Q&NW RQBy{3؟йM|] }`vū%j(kmPg8;qq\Ij(qBw)0tIN|Ex' Now.e˜Tk6,w&$ʹ?Y #GKuH:˲C3@3j8fq˾x,k}옘p lO'݉x'=R0Jo^畒SDǛC`M+}g1 7vWs Pmt Åv hvx,뀟oB'^@pHKS@f B4鄄<-$tyP|g/ mDc!c tKK/<218paL+"ImG:CaVB'6~CYC}E.Pp vZ fo`);Z[iRDq2EA]s&LOl8x(9.GCd #47щQHVq`c1MFyVpHLyphmSRwC{^*sN L,$K<Hޜ0>@1 >zLvCF=49G!SmB\4UTi-39!HASeBBYt<Je2ur;5N2eHOGkJP%3L)S(E0;o6)Mc~H/'MvH[nh"hMbH[0% PbJ,*a:w'QtO.+z44CNGQBY4$9 ry{4t鵶`i׼djh{C3#/p+Xmd߀YțdaX ' Qe2nEԢ>+ eL`"V +j0EѷY[T"LW0r=5MJd@CfvsEI4w Y8Xv饶TonYٿ KmmpdZݷ[Vv& OiL$=GRcBoZ-JX (x2bD  0>+[ٶ:EТvࠣTo@(k}2eQd2), u T_̅}ءE} DGoB^?,\l84)E{%2<ԄS!eR"a'4Gme#eC$ ":iP0[M78(k}2ed2% 5wqt~abd߂Qƛd5(PWND$="*`qViu.3J ,G힊őE_G4ہiz+C"jz1vpeX4ٿLht$0FŢɾ(Mhpc)99YaM!dXEβ$ds?UNо48m5D#qUWáE$aCAe] 2ֶL/Nشŏ>cL0e>ۢ`Wބ}rN}SΎ6SչoZ-uzDjqscQ¨Ωa35<ۃPuȯL˚!TV p#l0Pc@7t6f Ln2۽+ O.ÐY [P6+$3/1$}5&>bEGX# J`Q Xy"ђw !ADA72ކS`:`P-O{!Sb`ww6`rvbFnMfDۍ͌aX*CyzæEY@gH ',J[8xNl&&Egħn bм{EG~css(g)fQ۷ r6gqSnBɤ!@;BwΤ+~!90&Vbca(O&v 6I\}=j!][D bF09=:Z[|vL,NBQu0"!h}\02-;IC5 ȔA!iBAXOZ[B}n6~D7!ʉp!"``PcxX\<ŘsVMq_ 7_TNq93&R+ۙ_ SHo!)1ЍL仢>w9w|2$;U"5/}vd wQ5]rPqT_Ϣ1C1YriNy?"U{(S>BT69IQco?vs0t6 5˥׽咽cm!0Ꮰ;1;ܫw/0enSsa<:+ 2; År=bWO b)OT)3Xպ74!@NQn@yg66>XDvΕpV0j @R'pgDt: M+|"j>*9|ћ&krF V.zPF:Pk;bD!vT+I!tRBNhr*ǬIB1w0!aVz+|T Af ,r$ǵ.`91uq.g8u8Ko쮽**7`ݕ+#2"֚t8*U˺O|NU3Ya"ׯkm#n܃qFjo\2L,&fa{4s6f73|w \AHc2yBVCؒ.ٜifXCq ƫz 8ydX+FN#_ %2xS)0p$jŗ@AFq"[6|^5|ϱ0OOwAf7'z埧O|:/?|_?8o|_{݌~||a+bݗ?{Mzt?17˯O_ {??WW`|bb$_^x/ w_;/_֓O_L{˿TV1WwSGAdž|nB$ퟛq:Nl.=;ӻvA&#J_?I[^[ շ}pcxA@?P} IOx;2ʍ2sѻ!`**|OzW)7K Z&8i2VruDZ’,v?M*]O"[j𸼰"lp^vMt-ZI6U.{/Yv[ң 툎ĸ51j2ꪢ}GXD)@T8iʡGlbeh׌V)Ӥ0:pyR9Y(jʄҍĕW;Z@nTv3r*tBKw/kó,5IqR0w0Bit7Rt, 4MjB=^M:Qt]hb]hT| 78O CbSSînq?-5&nQaZwK7#3Y`Q*)~sdG޴j8,a2X>|\(r[7EúITo/BBLC VMu9] eB7GP%nU4/'B/<08 #vtu@ 9+ȿ+V tNZEh#23-$tK'E UEaK<k"R6fb "P4 2.IHל #DnzL9h̸:nF=!!Z$}[)" EWbnkQ%ߪ=% F]u \dMN܆rNu扢 D]DK%>' OnkE4z#YǼ(tCQFձhBM+F" [P89ؑgo W'Q6Hz){!c )Ii=[>+B_G,$|`-jV}{`MexLqD -͸xXPF8v>/+Bjrn.KFŋ(U MlA:bԋǒ#Tw@]NH#sV(/QD.8q &іbGɿ" =y+  r ʋQ`vc#do+E.^EW#bRjk %/bi+.on#4zK*WoC3$Szxޏ.j!wFRN(sUĠgtVt:9'faZË` dޛE1j\ĠPZ 9Y]f $pAV7PMlu3XDhASL1,<2+B >_c]Ԡ,{U&Y,]G4<Ϊ\o5%Ƈ|60`Tϻ_] 1dvElӀXf P6y[ӻjXz}+6Ԡ89$zWM EA1x:b0gʂ*ĨDihs }W.zapɬ GViLviyz).M̑(^A%>d{nDB!]T:*[h0 \P> ڢpG:bda%2 q1u^)ah3A9&KC%GEahaeKm<0נ'E(*j7jt zP!heA1$5BCweDh }M2p:"4a>Y\(Ddʗĕ8*YDHDSfHDgܴzDD^WF x&{(5[٫oBv@t9+^e#Hn(E$ySA9yR\&H *E#zV\~ةDh vl &ļ٬pz -R 7SFQ9->iEM4h~8"F]Ltg:#XԗC9HPU.ZEĚ[Q9ױ hE7}gfpzϋcbD`c"qYsi۲ۖn@oJXYClMw!]'';DEזhc6z1;mϪ ԢÒBch^x>.} ̛S~e3{´d8S}ڤʭy׮~2»/J)#Q}1JWQ8H1z ~~2=WLwoON_+V~+ݗ>}_C??q/o*?o>˯_ˇ_߿ӈ~ûo>}o?~38.Xg_~ögA (wx//>~Pg~˗_xs~&3|}nz_yaO?}/~᧿957?ח>|?r?/??o|Ãn x1|`U;a4< Ŀdo8Pi䌓^r$!1xqMo}z8L$F8pS!E&Ex7iM#ş}-Lt2PfpH q+wX)t'Yߩ^=F ihXwZ9 CAۑ7MFY{gƄ* he"T$Yzxr$>;$: Bdiz9&RCIhm'I>pJa`L/;"#N{6 N4Gՙ /s`'Q{Q9*]fKCȅ2;;PN{|H(C㨑_Ynz+>Q}JGμߴCtR>.a̺4jMHK""Ef|>Bh]h_a9Z,ee r>/)? b2\/gF{et)Ŭzp3W&%*qmiWCbߑjrTC '(F+DDɦ*E|gj[i,jxXת-;PO@0{4͘cDWH"ҙn:BFюR԰$N ;DiՈXdxHo\vd8H6z7Y NJOR7G=N<+G hd1FiSbR8 IJgҍS:ٮqi'u^rrWLG\BKg ]ӏضtYTkhDM$5FwZw4 [D{Gx0m" D`8͕I;}]oZZs~vҵ@ɫJQ+wݖX(4z*أ943hT(is]+G7@ȭru vU0A1A%sg~8-A^@D[t#"xZhOZ$7'[5zl"Mhw$?ss!O&E=0^=b;)}zJi>LZٔ;CYT>G8TQϘSO #*4.݀>3U%T{ d̒MoIkErJD?)A О]x:h6vQiFC@D 7m*]Oa6^1"R8v2!!Zh\o-O@GHϢo-HK7aYwwurT ZK: 6&I65\Gh9-S!6m̳27hh8^i%ƔtLn; %i-7o{2<*g9_ Bg&\XVt=2ƇO9i亦?ce0g<0.b#"m.uAYcܴ͹2]*waplHl'4`؃Y،dJr Y7XjIHwzk*ÝlFT>X/zvjV"ۅ48>Au*|<+lbfD=5WE=ͤٛnv&ӁdLu;+Gm9 p\^JƯR+Oj,,-o pT#ʊn]b6q qsR(ֹ~m&v]ʦsN_yt鰢 ?v/QR 0!iumS:6ҫqɮQG[1x8aF_~2}@5GY,km4lVq"BPM0Dmy0p0YV!_d2q0QHrF4^ EW )YbxnBp@kmE ;+2F{So)t.gKN~"GӴ#hQm36.HL[$SBqMfe+Hn;RM+FâRȊKΚ㦙oK4T?"ϬlkL`KCpl>ex(E 33b1Ro'r }&r zCdˡPG4eĤoTo5>,(-odZԨV *%"FSeO8e[ Jb;bdd'©9ifLǡC_Ϩ[ yK6ɋtdYJvV5R|q,+C106Ao Tzq8kE7o3昐%NPκw=F4WnKr EOaT$ga8(0ӂo(Bl]eLgQXuȥږ^ E7H (e|@Dɦ]С{llRT&5:Ylb^r+SN?}[tOycoihnUuIEWv6K7ᤛmEM7zG#;ckug:`mOUNg@Hc˂}Q6vQmtc4̔ Me^-\>{ד!__%J*9̂%L])q2kĆܯtY\: 9U'Ƿ@'5OTW(뺁;hl5C_#]$5QkϞ}g_jv CAOE;bD;dB_րev_4y`đ18=qrW&t.EFIRb{eu a0 RRjBWr?< $>Lbʹަ9rB9a#*w $u;ĵ 1_c@(؄⅁y*FM~neHzwdU䄔f@#v@w:s]SNA6L@U-RM &D ĕS u^6p`¿-hECW+9}h1C/Hus{6f7E7_ȑa#VX^.*F/=z ٠ % h,_ . .nCĂJ y0D&YPY6V70F]%b\Rb=ZI'N{!ao s)E9a FwӖb@rovtr==,†ϖ&*s2c⯮AWk[ ccԪ~ qΊR~`(4zx7ߌw"L4I9`f.!ByR~^Z4tиt7L_ z%_59֣_AR1Em\{= &K^RS괠.-$P݇EyTA+Y~-7]Df'!?(*t-.CYȸt'%"pd)oc#3Pp3=(V UokM},L)U^!DkzP(5gTQ^]ur鬯w$>lo3T6& }FsUMgm*\Sy>WR%fPR sKDod@x'pdJQz;hB)0vMEwߪ{^+?g|:F7qP^͇nn-+5_z@VF7[? 9z-4o M7i],Cma_}Oyަ毽KOn7gn=09|ݐSj&}QUI6XGWe$b^c9Rڍ)SvwGs.'3 Njٙ.O[WU`Mar3aU6YVYbGz+*8&&x<ξǜt~c- vMb@av\tw#5,;tGzjbJ3&cuq9W/nːc3t#:NdޣPwkQhάa'9? 7|LO,>=7!M5TEsoT)#Mh?fXxE'SiX{5( tMs83wR29 сcMFiUxDˠHyl]iHlRq*tv~[@QӒƃcwGT{ &E=jBz^ E.2xpDC6+45+Eg7ue%M07Z]ɳ_V}4y@*$=`T[SoQvO ;Kr&•swI0(`Ƌ(OP#*JkŢs=nNLF1ڂvKTxlu} 3YK"3$|Qُ.<Đq"S~ɒnBvER.*%n}KT죊nG?(O5q.73]z&c~ l0qirc442`~AqeXXx*V}b2,_ڦ\ZZ<n '9cF :8u }d-֫;DYEmsY^x_|5(xO,#gr I([mӋ~RxΕIHgQ-K&vQy"]I:I9Yx^rxä?o"S鲎B`{!* ^g!q4>hټh/~{XxJѫ!)]/19lc5%{oP+wVben=S?GDqٓVhV8*z<>ZyڢDqTt*eY$-f1o!JuhF/LV7.S)ԨE &Hj ,Ifhtx(Eҽx2ZTȧUsuH[pdBe0N6Z h7C5ܶlHwqmA*[Y{aa(qi6FI"5@X;E µE&v Ga#B8Д:BJO]4{LJH D!̒YR>e0{\IK!Z@ <P2iUv?E1J|pn𜬁N@C*I`b%mIΌ8NqUމ6Cf,4A .-Y*pr)trߩ5Bm\z=B~@vDf`(5:lO'vY_DHXNR!! "s|x(Gc]c-htMwH,J>VB͵S# Fgy>Ʌci5e"#|j膘LOjsG4L3ky CT>Oٱll$UrB?s`W9)ƻB647/ I<#xdW^i.v8e"b`_#3B}'rXm^8jQw]wL"0)}Q,CgI1R@I%%ͦNC|hI{ A*ɚٍK7 bM!灣SXPN4z+kzbG wqVyg EBha*1Lb( zQ^} A̱-+f _B g;NaPR;zd,*Kp%xtIb譭B#{L:TY ƕ+u1@pdd' %ӽ1+b& cxX8WpyE—c8˦,L'f 8;W-BmxNһ`isQiNuvi9)P`S}&ޱ heΊшn ᎌ`=@vҪcܬUOj$ĬB-T> Oil #{:⍨kGr*Dxj4`5R)cS#-@)^{t`U/NǓRPBMkTYga,qϲ]3> Gi);fCׄ0rg5IM|(X*6>!DvNnArVi Yx-O wn2j59XlFA%7cVva'n~`i2ЅLVDHs?񷚠'5kxx42J4$甎zt ߮]_\=E(lY3$ƨ߀ԟd/*~pt:}P(AUl{Fg Q\le2}ӲЛxדu8x:b:8' ~i,1:woetCZȜ.G>ymhq,7w;)]Uɾlo՘ DRSiu3.2m4Ws8L=)xݽ곂,*Ki:dJF j1!A>8$ P`%`B h1IM; jB!{伩 E*oIz7pl`2:fR8U n6|Ѿ85fн:Gc9b3YߖI SzH du%έMiZqdO`FRF샹 Ҏjt9yZtZ -ߎ#3@8(u|rQ:كjtR&gPĵ8FvO:P?uYL:4*W6v<_0mGKQGd%gÊ9ś:>̀딋tx(j I.],+}hh5>RqWqh9* |{0;Nso\Ȯ^$3 s:z( Շ5vd9V_>^b}!jIcֆlS+J $z,棹ZodAۂiwLLw({G~nEOA\?3x]Z7!UȅxR[80/|=$&g?W1s9cgOvpwktl:@54JO"J~erac{ѲS_IG4eZrqP3@nk~ܔ1ӷޱhP4Ad"&c Iy̻skRwsp%j ’-'/{^hdOc4or> !DK6G\ý gt]D}d ׎190W.%IgciI`wn (R|WWcSAzJ1q(slxUqd/^ dh}|454-~6-k?&|1P,[Ȍ ~_X`@ۍC5YD1˹L&fB`jUwk[b*;ޖws8t.-rͬ[&rIм7ӐyyB,iDL~UziF0j||Jh[{E>ẚlѐ\: ;Wyd!M7iHEhʡ.ە.vK\yAMnR/``:5f@tUHq:m`Jy֏:(鈁m8kW$8K%~hxEra+}t]$t;pxhƚv 3G{#fuPBkNΌexVP~)nG~pXڀ1MQmn-?[20dc0,öE^L -?'xGq?i NlmѪkO@FpUcH'  !4cdEAW`Ѩ-Irpt۠cuquUOtm jlCT~/e%mo،2kh5p!t)tԌ2 =֛Jw.#g嶒m(Ibp!QZ{5&Y?/1(&,5uqS^t,5$ iL#;>BM"G7#z:E)Ņk ƞ^-4?U!·Nt̛ AQT3fZiva_Љ#mkĢB#e8AVq )Q(+Oz|;"Iyn-AHzT\o Q;'iϺsͱ/* z@Ap،T%d8yis5璴V_ g9]G ] Q/W-c+̮ +e SB(uM"3QAKLK7+iyE$[)Qa4B9J"4c+sUn"0ҫ!OZmR7śyӆɨ_1]+㮯Dh1t!C,zx֕;>L,)K1`0)lH|3tĈCO̖ ʕ``H!&)z KEHI\N.9*8cbd_O. ݷDڸqfdݦ;oC,E94j7ue#W|<: \E nS!b/[*oVKFXn=.L9k|Q Bc+{ޡָ!͌YChc7ۚ8_1(:MQjzh{Imz!*r+;ϠVNQ#"JKGD5x8:5 >8`=ɨ_{ͅ>t?!h/|1ne3A&䏗ʗΛP?pi]qФut㦯z ո_nF/|;?ϟ~ݏ׻{˧? ?%{zfZxAI9[&go;O_q\}J)y5Cg$Ȅ+Nṯ]pϖOh|Cfhdb5S6~,a/Ws ƚ^l' YݘBQ7S%R !2ZzK/w_o̞9uEL)FquVP?vDm좥aD`xP'4 rrWsiP^ޚ FQf3dEKwׇR-\Ny@mw-BQ}#-OH O{J4˲Bƚ+EL]'-INhWU6Zu2Ow2 .e2 UIYO͘(-BxwƕM2͋EOA܇t!XgM"ЬNଣ}bY)Eh]@8 Z s9,WϮI+x_q*ig'&l8~,ֆI-AUb2Lvdԁdp<%='VQJ5&KZدdaf@dBzLQJ:{R`@ia68xTs2CӦ+w7Ew sH(-ԙgŤm8 2h$_ 9d.I$Ejh4{02L~|m6Q[h%p8ATt,@\#zNL k>%VFFQ4jg±'Q 2`3k$选]4ykJH +ErakWNEA>@0D,@g\3Ҷv$$ULB}G|GDT{Ah]8(Q-B 9ld  S:NnqZ|;3Hof%U7#RҸK3F"'` 1D=Q]Ȩ7MIĬGz0(KN{"(.\]r3dgy3o*w-#}H4nG#E %:CQ[H;,!¥:>8y4Q!P"8_ŀ68 -zl좷`g-`!{; <=\P\mE=fILh|NʼnP\t+ƥ 1Nn]!S `h0V~ɅtlSbDbL|ՙ~\Mv[0͕Y}oĬ+r P}BpN2Q%D~.U$Ya~iU76jL!Zj+):eEmR0?F15- MtlWQ[Xz ߼s}ƣcs*.l Fߢ?Y0uy@q!պ". ;ii88j`LHKGoxOraQ#h.,zv^ߞ Bɫa][`:Ynt)28dcIyS(81,v6Csaqhr?ݰ U>y5$|rPQ8tqQ}lnc)qϖи^Dvn0’8Ca"GF&z{Wֺ2є%0fmuTrӾs%l-$ͅ\( #P!h.;ދqй@>UBސ(5:OEuaƤ*2GBfl}tu8Bڕ=. =8MiZR4sCNb9Lz7-ehjPMY"pZDfjՀX4tZպdAbިa䁊NڜL D^G]8e.,*S"]4ho>-ʗ VXNX#COȋBX#,' .rTEMGq]LE8>(=Lԓ)dwn BnLWCY{  *$[7x2~4.*9:6]\[E{9\$6AWِE8^kOiZiZ0֏?6 h/ToI!Zҫ(/ }/.*6ȃj%*ڴGitNZf) f3Zse XXOM좻|hps譛 D>t,jӢDOZ׶:c kg) TEux:#UK=:OioZwvD>tn3d5h"1~83O-8Auʱ. aִ2G1G6Of$ۉdZ֠6Hq.l!x] C14 y[Sn[|}6}jiSFSA/K#ڦ(ȦمLĕ?:-C\,+iZ]huk1ޥEW v*I)-bڒ0I3N8C(( xuf7ap'd $&lx(4/ǽ XALAL9TYxz7<m" vd8~- ]#| a$oЄZJrYXyp yIq@BU,)ɂ`.6z(/=1jyα>|^دfb݅f8LH+gد^ٓiA XC;z(IL9 !d|kC.4ćFC=ES)Dc6S  4Tot F5GaKhB hcɅ][ʒuQ`v1^ӊvQ]0KZEڭ4y4[jnV63Hs:("p]clD[xU{24wlMoI| J̞CY"1$̭W]dbs5炙RG2H݈EvaQ1PkOE9\-o#󡒠&ɋ o+k7 b '-as~\ݲŌ"UDFwiR嬯مD"3R HV]H.4EuA7W 47Dtוa\SˇW!3-9Λ=G`"ït2pLH ڍXt춵c"dD*xe]oZlz`(nG2BvTn3 vO}<#*cyo vl85֩!tamg3BmGҶj,V/g|v M Q$_s[*p샐(=W.nS>⎙}I2 wG6Ty:6tx͵3O%+2-6]`]s 0ic0|9 +p q4g&3/l:مzEw=ڤhe+H/g?69&BŝqgYmXظ}$Zɦ\ 7@-uiUUV'*9BEu]p2.RLmnk{M-,;7^G˯0' 'QWڿ 5@_*a~lۨ45xIXOddozk2{#M]AgY!3{LAs ?T"Ŗf26m|6:æ6)Z>fsb+N+ZGѨcTmpy_1BC}dxlYkF w#(Fydv]US BK~Ep&%(Sm<{"2.es4ú]MdAMbݨ2lH #TsMnTgN>u0$:osltG.a[? =;e w%Kol1-at CW J+=MÞcFh\zЕDTȦ^.T߾hco}j&ep雾һ ם[kB%2e7@)FYF>\ 9lߡ.ZS#2JF}7'"!6)[7F٨c{B4 )[!AA݃G6 7ofB؈H3'#)+f#?ز8?ƙ\(ŀ\2p7F3. a!+The%:c#Ь켋 tgV[ahaR{P1 HfLM咷nd= 9=upꓘQCCF-م<=Bi8}).h}6tsB4Dqf \-T4J˯GF272*km$.ނ mշ#pzpH)NR<E> :pI v.\ㆨR┴_ {/hm?'מ1ʤIY ne:1ɴ}2+ ! PEF}Pg9cs. H ǀ&ޢ轭-X |Dߺ74(D^є4D~}> Wŧb,J 8ށ8eD@DtNG1(b4oZ<]>'_>]m3d,qF%m\HQX xkMh,A8CC[om%=u4m$' 45GSoxy]LɂtX±s}ݟ2QT>d(\p jϝ1)<hO0FpۊY&,V?w,C(X'AC΃A1 =rKE<~G =ww=l;>06rjC gTҊT __rvT=MsQL5̃)]홣3O TCVşN 8$3ď0b%W/ =#cW,t> c{rA]F\__޹6MJs,֓ @YuM1I!e@%_FL 2͓-q@T2fD+|wP$SPωC"^.9+–W'pO_{\{u_*똫u񻩻[C>=QퟞqG Y>Kǟك6D1“X_Bq^'|mJkh=$,Z;\>żh ֑o6h'aGV:ѱ 덺#}&jhPN  9Dd;@4XE4c"MĎ\Y>c~x))qF#YKJ 7m&l$uW)V=WbQcV; o%Fs}栨t{ApTt=aϰÊJ (FvQn ZH !+9%-J=_$~܋HcNDf")"`(E{Q0 S,C„nS01aSJZ(/ 4T:umpgym՘XtEO*rB7vs-׊VPe5p5vjOi57KX:j>FlEϪHmZ*9f (oE3/!3Iz[iƨ_uBZ;G[zK fI8S?ln_#k5v{iҲsVJ{j5[ B.q$ Ӏ2yE>&lMK #T#Qm4 @IG?VbQኤ>705tNdqJɂ1EN[-C)\)ə∐nDȁ*Sٸy(1 {IiX>n)LRNm2WÇoDo>V3P5n/ͼĴ>s q3'yo>>Pm"w=}7y-e 鬤&pOIMX""X]i?RI"/jA(fmي pHhcD o"ơNݨcZ&5N-57BҢ C1 #l]Ho2V q]Z酾%DWH"tN^ k m׫8k ގо"װ ??Sx%5Eާ5ZBEi&B[]dWn%vTOKVnÈMJyY\%`t84) (4mYUAB.vzxJ5c{]Op= w;$Q" sֹ[E.{M&P7⩞ TǾmפoV*o2ǰZ`LtF%ģ3ڷV9L ׅn@@O$ZA`0!zHHd=([>Tj)iWbQ1>0Pdm좕zFhr\MB{&B);5G!q彑;\:SpJ^:\1K[P2ّo{;*B%794,F:Ǣ"cc;2[|HP$osQ%d~(u2TO2E%;6 „򊅲O-55֋#J׶dqJ=aL+9/򫿗L|_?=o?;?ۇW;xU/楅䔺_n~LgO/g\h7p^d(iax4Sn5+ƯO0>ise\8WM%| ZjG@ҪQG1xǵo} j ~/oTPktqRB+TtKJ( V~Im?=޾QOfq^~HJ9-JfT "gk  Q/7Tۏ˧ ߛ;,?}?}?>{k毟4}\~޽??_ן~gw?w>.~yoY| '.'w/Rv1~{M?牸&bvqPhVӿL4z* JRgM5>i_=<..~d7*xNDz(w6;NOu`&dצ۱.#V%%MJ;OXNXwQ\6вyd- QԕPP,eNX\~ ~BR$ z5WdK-~o3ڏo0Kx(w+K@z~i+\~@g"Y{)~RJ$ }HoF,*[pdDF ֨d}ph,3솎]dL{HӅޤJbvQĮJs 1]> sHVR&見aoFIl) t"Y06Pt䌚=FbZEǬ$ltQBcY(xtd".z+©ոK\.IL=)92*%N`q(PC= B%BJ+]wY #xePg'Һt,BlW9[Q#/MjgfYȴ(`c ;iɨC+$+j;<ǼkIF6vHTL%U3y[s/E(#/]2BA[qwGiµWl !^H"єfA3!Yfun>#tc &!0!CHtX+h e9s'q^lȑ"|W6dh ql%Uy)\Vy ᒌjB R/ ߀jppW_xkc'wV삏"_J7Iŝ=BTH*#HSX  Qw }97mA#-p9rDW]S!! 8Q`ۯe1\# A{\ rZYf#{1dBYC8yO# Pڱ.Bb@G9S.f9%:B='sJo vaUa1*R5;vtȐb@dD2p5#ccHj@ehtTZ4 ^җU/+a4tRFKE/,% f( J!At)17hfXJc"zؐLrC PdC CCp&rX!8?3jزGYrh'̔+C`%8ɽБ7.3:Yt(ǎJ3^('EY]IaPN&a\X6P6Fgv"†t|CQo5?IIC) q5|][XK{`o!]/Q:~>ԽC}*Gh ":C/QQ-DFXsj "-ib]a*DGg_:DzSAů:DKWE4)UV UI3X3 V(xM.MbVrL]Wh%p_Z=b1n EeD\T j4 Cun>OAՒ?yd(l|QKhzhj~P!ƕ夛?)䜗42*pτV/ѭE?2E&c\?*cJN)K R44+-mvKܐ$(%Yac4cy"AP27*IN4; P֠Ny6ǍQ26SјeO7(g }蛁1k"k$ gZ|d?ZQlj+Κi?uؑF8J@apQ:tD޳.rnq35YxIhn|O05-ڻ L*9H6$tYY YY5#3fdzWY;OZsSccFƨcZY9' :i4!QRD{2YGYA|b)oVt"@AR? vcUQOˊȊ;l}3FHhĞWycVE-#T*iqF4eRLb|UZڳ&oƬ)T1H{+ T\|.vNąU`̊F6RJ[>!:Ӣb FvC^| ?15L$ ~A~:&=RIhr 4~IЙ+o,)TAH))H\@M&fiU'-ݔA'\jKC;u`l2 - ? } Bv7b"X%$WQq*\f` BTIH4;f``NeX㑬WMF82qFdďkbǙt `Y3p.Dzd/itV?N[R W8械FI03 e$ YDNfWBen38f jcDۍ=Q`U:xZj*WAPq@NJ 7E,ggu8&2qOx ~9^I]$I'*@PTGN&,' d^Y0mpurW+2| ,+GΨcÐ^M*v?TqPvmG '^M6vQ@k6"x>%Yy V4x\YnXGH?h20Fk&Zw` 0yUs? ^ ƍRfRRQ#4JRnirR(+ kzvFpkg Jlb "} |Ĵ|.zS܎A\3#ok}$.r6NLqq*RfLkgY8q{"kdc*| 蔄OGrY3LYxB&Fm,"aPH Ȩ@@lщp [ 0|2&]Q?^G!mq|a6jӘ?frƬ|lӭ["BnH2D# C.^1نFGl&gWJo<C B )ZWA&tVo_D 146v\qd+$o[#k.y/G== lvR}Y\>J.!?:Tlv'WtH;>Rv *eC0v$f+2a* aYd*m:dUu>>;HiFA0w.8NxDLn*)Ɩɔ=zh ޔG2,)!YϲV'K@8-۽]A$x!pg߸p&RȐdeHv*=$" t-t*6v5npteYwɲw9/=S|ʰ(5V%!K6%zV5fe;/n(Ww*N+jC՘v"q%)hh|E86VZB[MD &S+e뷞 x%veWRa̝G24~MXs/޷ހQ/bC91"ߘ?Di,U/jj 8DHZ{JV5a ,f_K][oA:QFz^8M WS^ mh-P#-( i b4Hgc(roĬapѢ6Id-ϜI}4ۘ3SCf3Wp&A6م۷ba Hu'E1=ۣ'e{;Δ G4H+cEgqnOBjlaNa1kuZ/gJ-aZ R.Ψǖ-HAPOyhm`2<]l3 TN)~.pą$(3Jx3D"` ܧMM8)Yh(JE*cl8f|$ގ-s5P>6,*aDm ƨc>{*)$4Lmv,n3 L S@/H "hߓ6xîpo)_@KKIm֟V.(27S"yUy7cx,uzcUfo]^P9N7/5Qv!P2+HjYx WR dE,.)J_^[aBJ$ J[nphU`ݦ7b&!B2eCeWGF֨'BSF$h`D9{hF.e:Ssj0,Hu@(ہpIqm/@qЉVޱ0)2fl ޖ=I4JP#{Q'ͤ:[y"Lht QJgxgo!mqQkȧDircBY]{Do.4P&{&l }*"7 0xqcfR6ft<ޡ Z;Z?Htd=NyUUD}thP{_sGN'؜]Sf^$o:9N U@ "sWkۣkEF{uzoeZxg37OoQfj!1GG֨ci;f^w|Z Os: Lz8{dmF}s=q9+6j |; rg73.6Z1և"hv"}Ozc)xم[ #E1R%+:ܞjo؈O$RtAU ۛA[FnnoWhߌFWItI?!Yf5+ vF-Mwdv>]};(25I˂YA$Lartg .y8,ߺm,V*uuVp"5=YN:o\r| eh7Dɫӷ.SSa"||!%۷M絀]ؾCHP^Yqd@iЊ鿂6Nop ۷mͭ1"?SBmQ!*3iv7O#">@G |=j.wčNJ*S"#e,n̄w >E|3%2;уbz@4u.;d2f7~VinȘ [Fb#>?N*ɱNdod;`cwS\*)0ԙxf[.dߡz@nKs@KkKuǨ 6ʢ0k0BF܈ipᵤ@z愚=^+ B!?7k/n4[GztBfM lBpY=oa J}i{ 7iL~mG)#HMδ߭afi(RF M:7,X*rݽUI!B>X EFDQP) Y 5e@4Vo8('.^,A=UCLsO$֝ ȏ*,7zQgj/Ϡ!?oB ﴹxZl03 ,6a# QR)* g^hmi6͐bmYiUF &&tũ$m"x4 ՜ ?}?LB©\]np]/SD_7u;<"(W2\+Wcʈ4f`zIew>};}GW?TFirH1x>Y/7ٛ 'f2ݷm XI7@\*fҗHC'!*m0ŨMɒFŶu~=&"CޕqV[6yruX7lڇ4D \ ΰ}]3<}86Vg40mW;d6LsO_B[8c)Pۇ&63{J7*m)⬒{?puآ\>vobSǣ~Aa`Qu+pfS&b}[\>%([y╛"ML'}o2'!_R:.X&E'GJ}6XAˮg_!JԢG?i)T=_FA`d-,ngs56uרns+T*2O kGOR\Fp<HT"<;N>*\\mmB\[,l E˜ujXZ .V ; y#hi d( )`t[^M^* v@@} LB@YpgP:k uڼ%npU%&y7&^! TX$t]V*m :TvjWoˡTQ|,(:$HA4E/sz꩐.^YbuFpMa8I^уY!hX 3jvqYe5G彊;6&@>>$$/Yfu6##Λ@] ߢ8_cG;cY#h4(ԌޗVѾਥG968:uQ7cYȪ@5Ҁ$27FCQ'55V9#J*"IyvEaѡMT=BICT:i敊J6GOWBs= gu]vUduUF`$A";fHW*'yWfg汧uN0Sv4S}$ d$Y;U&;PYX .k(7s4+TLԴB{K{ u^ztX ) ~d=V vqU- ^Ok|3f9+RȣT&H ^e goSELR!-H]\R7 5 NR\nZGJ5g922 :(ovL+Ą2hJz5Tw^ӐR4D2:Kfd ݨ/((Θ:QWOJȭYtʴ)`P acif!ә5TacPJc Y@573!mjx 5{2yP({"izi;ܹdF.= 9e&6Y,KiT),Mi|gYQNs{8t&46-ȣ0>a=6 dSwSzoBNA1EF *.q:p8gAЮL TSorJ:AJa@9PEKAˢ>DJY(IYմeWT9KE T{aܐL*zNYTVhDI96?[l uHHO2{*'TvemߍAˊ(QhbWY@5[܂ړ TA WxaL#|̜\*# yFơћ+U1N&$) Qd4'*gѸnRwna5ɂ#Evt3g5ԛ~ )IRr0"rTň t 9ÅU|<’֖&f'H>5uF=D^E"լRX!#eH70B D`T`F->&YrpճGet8vT4*W.YP09fo!QBɲrV?TYYhJvp@$jiB;'NQh\|U4HZH<5cm+*'~T^ YT@2ϧ_)xr 3~g(ξ5ok0>_|/ϟdǷȟ?I| ?/{8/- 3pk)Wjk@@(^W{OJG=&=2m, z|ągz?_Ua=0҇Zs2s}cߠviU(Ky7) >}[9UpW|Q4ЗJ(YrU7D(Mlo<}jcӅVaWec#T΂ u((+$Y?ߌS ;ۏ˧ ;,?}?}?>{k毟4}\~޽??_ן~g w?w>.~yo.!<w߽.\Lx~o;7;??ʘsyJ+/O^ɦGG~~doᄒOl<_z?͗op+^?}yHC|TR;c:!~?So_'?_|:y jN ]*y>w!&o7eҩf~vj oEyݨr5'/@࣭Zwm{n0^_c<-R0&H/#Wo@ n>j''#* 򚚏ܯ@.C.omuJ[;͛г)fz12B{xMƻzIe!|Vo{pm/-zβWʆeûYN8z>^= .fV!/K^̚|]})*G-)ݴl\9;eÉ2j%g$ aMoV,dEӠG AFĨ{4*}Yx"KcB4:6~ iD>>ѢwI-.m,, csp*Oή&5N [Rr>I̧B{3&NZ>- Jut{%m㡠5; VGuD~V^ȕ|~Fvq lp7&'c=fz)e)": ֎.J,wEG,J>xÆ WDQV)d0J,xk54c]MR}m"\YG y#;NcEe<#(fv'cYfSn +gp)`SǙN^Vg%TmB>M|3,f%6AFOrWцF;Q' S|#v0N JS,:м]}uܭn\\3z>=RtZ+쵧&j~`TL.MWS斧YWϯOP8;fP̂>Mz(VNW|NJQi\ߞ})4lCn'&Z}~VQV T%ca 90Xk?p6 ڢ}R'IƐ}3:N>F\!trַXxdzq8ԩ沞;HǠ҈ +Y\Fg=%q]|R \$Eҩ]rwH%4 T.慲XNheEWSHz>Q#3fXr>Fǂ&!{'QS *$\4i. s钵|W8c-"Ӭ8H.S)MSF(-2Lˋ$ DZ02{ V-O]^qUh} "x(d7ќQÆE>aR{EG5EǴތa"*B7]|x[x!"<"W]b҄!84 Xx@ΧṀz{!7|\%+= :x$$65;X6ϱ|s_Ee}Dpfhgbd=fv:XB)z! ͠!˂E|vXhI=PjWGŏ}?i^$OY"*jLdM^*UqΜFQ9B>y#(;AN4S)/|̹]D} -A!:vX@Q $,ϪNIF-7"D}{ikAT +[lݥyWgOڧ28Jzse`<$=s%}~}Fvi: >tT ,vnKڌ[gHbihBF`Il't1>e#3y[5 >h)Kx^GwfcYVv1(4MQi1uxΪ>Y,&'e7WK!b$PqRd}8$jӂ|RzPb2OHDl:$S5}qb8_B#sG遈]T}dS`P /t+wvla*|uՁ%;/t}$-XƷmL <[FTν3E֨a0$9QkJiiހnް~GP"oSHHVa5>`_ʃ¯ED7寄k>v"}*v7gdEzuWӂv ߴxՠ5Xu~\ݾ*r8HG!Q]5i<A_(xxw&*EiZ/n<<1IJOjSoĨYj鋣BJzΨ_;j^DU,M0ebz.? Q: EDe2A=ԪFyg>(Ir-в4<AOs5?\8vLcn{/\E:~X+HYfhko$So~qF 4B*NϧEgET~Wsʏ};T'j:VU~(PӢ,u%&ge~ 2?u :sD~"?pDlȏ=j~O\LR@495@CQI)6HwMy2?XIE\2'J, cRIP\qn_~;|uVjQNDkڬD2ts1 /ɢb'vGDKn¥rCjڸ\sdE4=Κ.L`-ۻ1 ^ V|7jN. 킓YLp dVv窸$ofiRL} >tt.v68/\HJ+Hu LQ*Ct |V::HfypSg12$sF$4){,?mUωviFi»3 DFw;hʬ*/*FEe_FSG At=ů΋^e1'6N>0p~HK+b/檬A2(RC2Fe)V`3Z3)TXѺNXzaOV| !Y#(UɨQHKQ" %_joPp,KT0 $Hh-yLDQJV}2 Y%uU0n4YZlΨZ*?!1KХwZE/{QFSIr`RcMxVvMRf@@iE`ه52 mM>YWYƏYt12(S"Wo䴑y<,c>TGPZ#b#9#{Hv>Z ՙБ6 ¬dAd0}Tdb@vOΪ"aX Y:-pd 5bbTdo !dV'&qңP0NoIF3&}aT'RkC ;r9N1M j+%(zVq*J@YRL 1PȪ}*1 lI%&2p.IF%cՋatE\+8(N b\˛}bw۠֔qizVA*FR!ucN\DzZ:s,9YÇߌY0F5ܒ!Ц0Xɘf]NժDљ (MAk;XeRNUcvX+Ǩ;N&BEB#'QY?!L(q@l%w7R"hG/QKLzd<6߀F7[JmM WR2ٟbq0^h;-݌<4CPvu$exXbA&yV}ddVypWoNBѡ=BzVd!͎9i蝕:cTm.z' |I C @vrMJ2шb2O^C9gte^Ҳ=U{Qǔ2?YQF3 >LvAh bVkZwՔi0L0>!O 2=I,*iY+J#LikZ[. ȱ%G8~Bz3_50‰ %@틧7`@ ϸ_m@Kȕ>r])"3]dEg ecM aw JO(my?L x^ 7fL㺑,OA~Y52Ondnc=.ߣr; ~uH.\&!.D OdjOHL F[xw|22\XpdqZf|.sH3Hft> Ť!f:}.ukIDamak2ٸمk\#|h%@ Rt֖g VFA)JrIS28+MoF4nk#@bz3֪Ϲg h|:ԣGLKZمj܃$ 2KѣTn4wHG[x(L N-d28E5ߕ4%'6Y/!Z 1nK Q)-T3n&D:w3EA7J(ƙc$9ьq`M Td?~ND8E)B{aA63-nϸk% xhcDQ}fz $kՋP<ޭe(~ 'qB焛T.4>{8j|"F&S{%AőtɢKKEP# 5n8]V &38YY/u#a05\ްV>ZLi;[ASD"ab38!y;n.dnwHa,"]Q\nh!)V7@:zu&l3z\o@I r- Yڥ!8+W欚}Ƶd(Рyt y#"Mk4E L9Nsh. 7prsJPr53`G̴zL=sQˢr7M@-4;Ҳj93Ep '^Uq7F#D~JU ⡍ۜQˁ_˼ㆹ!&qAyDЎq7مv|EOv0 JaF![UTbPb4mD2AS$'C*ԉ@;΋ ߀}x[(ȼRD뤠5ZFCv3ecNyj|@OkeqsD qv cɫ ۩P_S\#}PDaIlcT>hpLH-S*4B3#ё5jv *ؕ*]1% ARsA㌔ 89#Pvq.tc%fJ0ڽEH!C^RZNpzѱ9M/P4qoG݈5$`@0ElU5{3]LI>XS4aqIl<ݱ.+PEӕSʢvԄ @hHվG>#TB+0\Tdq3zYyJƂv(.R4!ZG#kc6Nbn>CL`I?M &b\#Mu"o !#bFDڒ̐k JYf'A!+CGg:(^/0xDԴH})IP'ɺfТO1)SİN[d%ڵjP9NPLJSV |kfɏ襟@Șèa }_}mHd%%ZH_Locews]Տz-W\7H@3u}R/`Z-K F25+ 4z4iM dذdA gsb& ѷ؇L] \!tRŘo;UGp"?P(4n!j]ӧ߾L^Z잤yǟ~x;;<}᧷_~}L(ˉ wO_>_$Eqkgr㻯X~2<\z㗯>w50[O?=?O?)"I4~PjUfp` = ka]FIac .߽ ?= Oc>11$嶆7L]lIK6KƅH9;/wЫhBHe͖$c=t[F 6cI'Px4z$pI[My,X2FUdpLx%P5 (p:ǝ oepyG(28iQLCG淬n䘷g .**](xu:8^\2i|~3DfpsT(*ۼl3R?fo]f> +fz׎6=҄󊹭WÚE|W-TZ!e':ƕCV0I;G܋iHk@O"ilGnp4j6*ige j#ᑳiv،Sa% >NVט,wɻ8ܭlgY9`dMpWuG_P l*y`g.=.G(W7v>D0Z2;+km۫! <e0Wkb2%ב{=<=OpNo(cEUs]55VvW7!I hvv]f.M~%%ejH s\1%Yl ΃u ,}#ѧzU8?Ŧa2jػ#'Q﫭 ;4Eܯ#Zc]y a?Eǐ gXç'|"eY]lN8|>B\_Su\ՐK-Ð$mX+٦a;r#$m`J wHJ)\dgUpm]dל2ŢhPG,nD_Zaw3u2 W$yV緢:n~;~h)QlF?{ fgM]媀͍gu Ne5Š*Aܬp_Fnp8?ܟ8)KҬD\58I4њ*à 9VPOFT =!$ îDVvQ_騹Jh*]mI'/+=BT= 6=R>*=H[25qpǁdEÆoqRsj5MRVNևB$g2vD Q2z`5Wx^ ܟG"$cep}MafcYKӑ" pGp]ʃi4SKxLkP/j@~E^m p+#wiSrBj_CZu9]"U)P$ 4&GOjx+h;|UXb 2ϲDxZIBspAQ$ו.NߏKHn4B[C C2y>UypevꦩWh#M`& p4L=>tDCqZ-c m7^CQK-SEFV)Eql0) wU/{kM ߎZ) /L*m^A4; Z=9&ݏOuOE.m3uwf3Y2e\kW}[}ʯ^QyOu$ß>@|Oo߾O__P?^~f~݋yi.(d򁚩Z0.6{Rz~:@f$ feyP,Gdq[^PוA/57&~->k _@r>.o~Ͽ?/>~3_LvoIB\&.֧1n&')3BÃ}V>}?7(k&] Ԡ%Pn4GJ0{$,`PG +Lֽa1n g"r٥p$G (^y;5 >='-)NßmMa-#NVɈG~5YB2%#ݽ8=5!УIJ`$3|F3 XoTx9@xMH[<*n:y*)#}V)HaOfg쮠+.R"5>Ay*oKqj܄ʤp$,mhf'81R`ڸGG"Ay9tIy2)#uKe&Dhy'Euu[1m'/a\ԞCJ`=tԣ>oX5T/EJ,#FBsI~D箧&ęB?F6?_5RGIQ;R11eCsrVWP5\2y4qOD ɂ5@+8%.:7\v8eFWRx#Sf$|kD x awNO㕀T.iry% E}/zy% .;+0nz#Y.A}[ryg"$~@GYHΒR@4Ϋ00ܘn;6)΄AJo$Ŗ9^qM!͆ӹ)qXR&BAzw2)cgivx')}ko-+,$.O-Ϗ&o(s6G`Hi SSr %Zޕ|aU%]MCz 'ez}R2$JCJO`H\C }"IyɄgׂ8[3\mY3˩o$\8HqF9H!W#9p14ymu5633 !Vqh$C];h6%j] jTEgJB:氮+DF;ɍ`|A 7wnAXE]A26.pz4/_Z8+aI-$ HV?v}$L!#[5[%8mHuS? #7'M%iXOXbkQ 72ȡ8V-9;._l^W; Ӆ1[r3ż<+\ARޡ@ uذ%Z3։f?]AWE[ggv8{X?G1v~{CGqJ_g)܂;>uk[])3B9ɚwY'ԋ?.]Tnw8˩Dsm1!}ԂI_'r)J}/ʓ74,^7wG_;:T>^.TG߹_ܝ~ ʜaqҏUr{Eʳ+| _f|}72h9\?40C/~J}$7NG=g  #??S⏮ e~pP86Klq5`9) Ϛ,Su Elj/)ˣqH9gT/a-AU}1Q>n|4Dט\ kk=7W:~ ~( 8>!-IU;C|D`C<?(=q^O`1(BǸ2)6SG':1#z#Ur_$=mv|KMЗhJ&u]r}.MJy<'4[fRq ]ԇb~Q M_5&Sь?+KcͦuQ.I]"/5<B~oCںd ʤS,q"~~mzwkxrWd=&[`.0ƪ=ʛo.+nJ:{D﹉MffgCp׬K%/{޻C|pڱjHh>AtV}~<W&oϯz i#/,Wɤ`MoUX6?EJrޅ xV\Ba~LǤ/-'l;z/זbV;ӧX'<}آU2(O G.5[p _'kr3kW^̡3`Icj9J5>` ; tThsͲ!.GbC~}k89_ 3sNtt9җs7b=`‰mV&9?ċKZxSB 1p[4BJTco}t}c壝}3jA}L `9u؉^k'(MՇs~:̚k!l'(sY;0L6Y:qa؟#b<^!M0 qv.zb_gK*wY1[V =TܞyCuvƆLJP9 b!7^(v(#yKLgjTro{j}(X}c\&=cNv|^e)Vk<lN ټ a6%W)=A=H I[[M;Bl^?y/Yx(Bb'u[3s [m;^sF9l`ڧTd($رdhB  u~vSjaN6, klZsGY"֜$ҊatI6HvH5ۚK3j/p6>G+J^sQI5!='xESqURfלqk7\w3hQNFs/֬X 9V7+6ΠJ$ŧ8Q\bh7_YQi:H"smWR3I-1|*A)nXi2+6BK+J6$-ݢi#+:{/Zy4>N3QzWKo(;շE | {)YWukQ472J 0E(Ł6iyxm=U/.t7}l7nS@qgRH͔51`qvJ)f h})d_e}AZ%qn9A ~Cj<3zq1t’Cz\yzoB9ad2'/g|f=_Vq`GP=`נPf'unN;D$siSyY}{CRvHA!4~(l6SmF^a)i͕PIaH44lR3e~ (I=v]C"#=iBj,(ҩgygpՂ5۟O7w.h)@ֽy@a476Ȣw"~Ξ};aP=ًfQ1&CQ~Ӭw CL3!~ ||ԃӷbK=tCdك[(j̺8¹4p}/Tvu91C.đOJL:@~XGs,N9h=rtF9ќҲ):ʜ)>p쓟 fdHs|gV<9Js`ˆG,EyK0;Q p 2i{c҉]>}Qt+@Qu!K[)Wi0Ÿk[#N@.,Wo!H\y s2qjbS~ ċ H`ͺi/$]fxX aJfN|yƮ"u_r+4~FSTT_̈H;̢¾pR=aG2HmHa%(alMMiO@_ |g&!ZTEBC^UHC̿d2f!UiΗc~,F_Juzw +Ć"5BxOppX#5]4}5'~4}+ÚC6z \W>k~k8m( ft3=a5?쮍MTRjbtۅf%D٥Pk]a\̚-IDkU WĔ_PC>~p~ "örY3Q ;`+!w ^E`s|rXglM=)[;ҭ^ G~`r'6w;DLD2Ro/f ogrR}ȮH3s"Ps}O:-Z`܊_|ZaU0Ϯm ܕtExRQAru=Y ]YiMy4'DqcPg3zhG ChGc7+2jZ0MQ?`TԾ.KG򣕬m0(:L[(9[ۧTI;'3LHby XYr$6ýVF˹ _klg) S oJA žY=/'Eu_3r~bpJϏ,2e"&6:JBCtRr bI6uՍddד58y@ZX^tnOǺL3Ds`2e8*,6Rvv `N <# +RvUm '[!nmΈAx3R>h AMLOLYg=J-!<$ ÜCkXm ɭؿ=(S؃2YJ>c2peq>f+DJNxH)ERxHNk[8C/%"2h{{ݠԢ0X"X~J*n!<+8G댤8}#PtkgCHo6噼y<N%2RHtfr4Bɘ=̗r.Mb!U&b,H$ S.Y%HIl첝Ȟ8ZT5cI1l.R<udxNX: r?\v`'s2JE7T$}z0_LajMF$.BfřTHO]PI&B~#LՋ̹lk&yZm#io:g]}(?O8 9B |o7_INDR^5'8r\oʜ1`-e]zoapu]{fǵBaߝc6u^` j:񏘹]1IIw巷Vˇ@9-ٻ'lbl=S@G|Bn]{XlF<{XxpiJOCH./+ 3TlF~]YX;yya]4=m<#N|X8#S۔WPHu1 fϹ[lcPR ,O$a@MᬁSs;aM(Hv@Q#ӽ(#?B6yCq#W29=X ߌ~-qY 5qS( va]<ҵ1ygvNthdqu9d|ap.Cn{P{C,ʛI\l"H$II,=L" I/7gk,|PilNŠ;aMbpgs LU;bn1 [ #IB+qVʔ,x]Оt_Y E ɨ{lD?G =$qJcIҬlqR_}qa^_ɣѥ=) y>O%92q#$/3}b9oeYm ?+ۊQ`$k@80Vь4F r!i pjMi&8ta lن\d;PyɇS Sh 40IYm|>g(  Gk#m,K4G4ey H#igHǩݶ3. v;i&c(FszvfsX'k Mg01ׂY}[3Ŝ \gCʜš~;F'FAzć},(>l鼱6¦}0UsJjOMc F*g5+Xq4Ǿ!lM4(nz)2RMO! Fu[5I;eK_8@6Qo刓k M=!6D61nnֆ7 3>-`/ əab"7t} >Xf$ USr\r8O!Tl*Գ9P#%)W ʩE:TFӲ!$4jwn$ht52vcL-׮^>jjzp}J\Ϙ3llPv):< 'llX aTY|Ϥfvؠgl}!lVN1BGC)%;94?pQW!ՄيGC\.f/!n>mC;jC,ёvB| ͵yh$sF+1&J n!w̽ -$+y}BTc`>nQWFLN=Jٞ.\&kMf^G7]9!1_)&-]0NR:rick!: ӓd17^{1MzaԍcB$mugTP >8b)x2u_ "oٸ9<:{ܑ\81חm6-hm2i"9V*vTiPL~,Bb('R=G<C +م}Y_CIz S "aybU0B/88_[úR~Ć}pu_16OU 93\193-u(lPwDgʹ׼s!- PQmD̳8.s5,~Tå3vSSnf:d}N1D#KUي S0.yb{!6,SкaRtt]1*;)"b w!҂I ?ĀņI~%M|LlMI ENDqd \p%flm蠦Bc,A>J@f]Vc!_IF yf8$b7fegm.T p9;[Tѷ><&9n;Il$"nj5Bm;3S\: g,u_3rVp{R=q3g8Dpr_Xy},=?3 a˷˟~]f&;K$kru/mϫPpc7?_ʵ,aUm*@17vm۸8YgҞGκop?7b5 u-R@7 |tݟ^8ȥ* l~%z5|=3}#3 R2)d~6o+vxdCH06\V+Y\n #eޭdhzGg{VN/>2*\l]S@,ŘݝKk7(?kz١66vJ :q/5ow: TO-k91E`c.6mte4ήD ArҬw%I#ޥMn)gq Q](p}3MxMirMGCVQ1a@˙Cտ6|V]h_\YH\ +)Н]mgojQ2+&+aI FyT;Dₛ;0JoT"զ48BgxNM9-}W<`^|7w`R^ـEi'8k>V*A}[3߄Y[ HQ,.8GS xBgC+p@M1H9 X`toxHy;[pg;u %,@׮{oI;$~|QZZpkAWo;ăPMA* gY#$RrowޟhLd\;Rhp(?Κ~qeZ59s¶dM '`N{[R~H}ށG{ɛ+3T}$ Qҁ3k%L=47g:[g?䘸TW|ψȅ]7 {ieG狭mM,eO.ωg/)G{E0M)[9Bˊ E:/?(ywsMXty}Iݫ8\պMq'5S+/k_^F}IHb2RgZX_\Whxd..195:NUvK!X|)-qEvP?ԏk;1 Cs?#̢Q=Q b26w!Ft^~Ʌc_iɣ_Xg#6]0pf4>K}4'BP؛B9 KYH~Njئt;.1BL۹1rj]y '3mc{ԯEaՇ t+P1Cnm6s4Ts /AFv}/|]Hc)Rh)02FlC̥q1EX_-"t!%r_~cγ&?4e+쒀b6kmfeň3bhak&̾l@ٗ~@BgզY4kF s'5mŁ ^_Pxc~nd9-Qۄ\=ZYNؼkPl*s44 t+O\+ɗm!(By$Lwd:%R~Dx А#ϥVd9)DRgd'9A}8|;DwDR sϮM_Uɴ(3W4B}/7$=ڶ"j<ﯥ[IoWIR_ s{Mk ΐυMuDu[3+`2,C9݇-8/\κ|8p¦/!`76#3\ @;4u(kh4xtA[ckqZ1/܌iu>Xu̮2G|]lJ,I׷rOyb=}508ʢECn4yZCUz\3V䊣dJ&"g>  _~c32 ?jHѦ͜-Sp ]ȩ膺}.^`OΫb;~ֵN4 bV?뜔v_J.HCNs&T ^G#<>kO @7_4^{?ׇ?>//_p_~ϼ/?˟/㇟~_'?#o^|>1[~de"%凯 owVdYB"Nplbh妉&c9/-Kw+ tM\sٵU&gƒsD+9[̔' ǖ\gVQgf}z8>5Yb&+1uB崒K_?_?_~q|S@Qyaca" },vs2mB?C s"f?UTm`rY;pcVP9HT.x>TQ";2EO1 T\=r5Hw9[Pa͋)~iu5ے}Ta41^1ϑvrͰoo "jnǙaAU7Ą9D'Y2pH`YYΠz{;;`(MpBx*|Qxu{z(lI!Vͫahac#7=eR bR[B(AG k#Svvƣŭbh#iQAV Z(bE o:yB+sr9'.vX׌<”<'2) ;IS r\>l+n;zj8#ñ se-[VcGOpvq&{p,!W^a5RI?j2"(9pBaʞ"Gu[4-BpoMh;q+v&(+;x@~LYMBpy74 6&ʞ /9k +B8Ir3*) B$y6>)mT3juf6'L8M0@ ףc+JQqaV;%w$,}\Е)od7ysM2LCjiy@ Czf7ˤ+mf- C8pxt_o< +Q.qrdWr#No8Ǡ+-\qS Ashv`.yWؠ 3yv6#U`{X*" \[*1l+Bwobs8ZȞZm|7E[ƠQ&0_}9p+2p -Rr½Qs{\ٔʙ3#]C6v‹pgr~ My)P­OE?Z `F &JnF bUSl~v9>+u(ǀ+IdfA(%L2Ajr+;hQ êq!?Ŗ++iuEHOpl[,q .9t$ZskAWLEk]Q:i9~b25_{[Rf n;t.)> _0C]Y=[n#PRD^,;0VH߭i@p+bь5Qg{A5&4%@;S"/9g}| ")±(;Tg)mS2+L]4U%nKrtJsC*60jC09CɀS2c; g$mS`>{t婐L.9,Ҁ' ֟:T2Ei>2; [jP%gדih&ZT`*8*D9cE?Yߥ)+ ˤC];\X8\rMlE*^LKR`k'+ Y'7}lI,*D }>UmYd%;r]Mv.|Ԃ±r>(ahr$dk&Ts3?CCğMD$ yf]C3dz yKL04іk<*!ݗ.5d">k *KPl҄dre =2\q猕'sXF=MP&,璦$ZST9Si.c68m$?ZPT:_м$`Y~0Jis"òrY(+8fqfwΚY|Squ~,YP^>7y'ەl]Y"1n<9YB!~_VX֤&yoXkзBDg@G{BXѹo?(qz}Vo9,p+Cqi] ( 9 'G8%Gw9/7,@h{G۳k-SP(&'{b-6y}(< dD;SzYhiEzCI 3%  fQtyxb$$~B!)sɏ]²(ˇ,RG%RX٫-9)p bH hӹ#ۃ/M+4tH<2I50 wfgCh-1 ~i\v ]h9dxwM R'otRtm0L FlIYPzXW$ 8eJ@]Aݗdj! "hԾ.@XGc%S,ұ80,ʺkzo17Hb!ZĕW-U(~MQm>͆LJJrGB(BY{GRd}K.>0e*6=Rfg0',iQ[נh`t+ǯ:Ⱦ(0-˰9ʜK&iaW^[vJ(s Gkm ¥:2YK~L@-L;aE?eRΪME8o n-ۂHAZT/S42qU&3-i1doRr¬4G%\:RuCx^ЕtG_[Yvjl{z7T ^)}x|hAco'Ӛ]߬0]7kf hYε Q%vZ'G87F':P(8@-ׯ')'q SS#]ƎBvvp B!|)TԒvZ^uOy!lV+ӂ2J87&ﶴY.-:]wS2 s]4[`N'[hǵQ![7%: #cFlA+c,@jK3NJq `r@ -8Al\RlQ2b#Ǒfg8QB/7<E>h()=TD)^HZzC s.I֋vZw]3&LٓP` /2B=fWE?&RatH$Y$H$zߣDR d5H Զ=Lz`֎ėg~-ش'"L"zQ6s0y i`[-3`[ؽzd>Dsd-Gµ4S7u_rNq~PIXk& b kJCЫZRzHB̩a[ >uߤ*Pگn+A-K M-rh#'kjdT8ctVM; }F; Vj*<I~QR{ Jl=!LCx_5g%L_miqB]}-H ̌sP(JEE+H&($@ =AW.$8wu1qOѹٺgQEJ~ŝdRDYX ?W WU>ePХl.D4,UG,(ZgU%rSxV"Cu[q0_HȐDko2)4@YPP_Q!YT~M|S0`h! PˆNnmoC4R,B5o~FaҢ3cjshۃ/9cF~-a$09~.p,zF0aՂE7DHƢ` d>I\fNH$c?Z+)m±pO1߮Xd},-G4;p6b@Ԡ !ՠnKi@RȚq!>>Ζɓ[ⷾ@5AY'ѿcg`gW(Y7 mk9.o'K0x0!*61i2|xH&=!Y6mIr:osIɺ뵴ܵG d/͏M{)D^41Õ#e9dV8/ INķJvL32F2#Kkqf)&Wf̞Bq>R$JJa 3NfklH0Q9~4ۀ^R \9HO=z3w8_%<0[:ĔH%.T>.d~4_k`.=(׬q-iiJoTg %Sx?36Z99lԴ˖D[5Ž'('&(\%'i.h|ݕ%rnꁎ10g'"XL'ND`\x $\D ́A8 {L(07Zېq6˦'luSLb̈ vjjTe;Ķl9ad %Nဋ ݄:a@9@\px*U$o?}Ҝl-7c i&NCҼfOs_mm;b }QVMՏ-ͫyb>E2`L#&xO4I8_l#RDbY3mw 4ٸxC>dȞS|R,sryb.s [HС->w]`>)}`}hHe?qͮDXgb^Io!U1n&gNVhA`Wu. &6[ KjC poLx0-b5|S ]/Lgπ_ Rr6tѾ\m%s~ v8}\3Icy|hwBqOzGL^TXSx AQ:5KG+pMO?.391.Qpo_~JS޿f(Kķ4' ^(rV5#%;{}㍔y1S.RVH?i% osqe2/p6ܠ;jWr:38EbS:Ll_<:8!kn.{0Viϡ,~a\In;'W K+ū3(7iF$É õc$~e.XRK*$~/_Rz+̢Kr}i/i}qD*5ٹt;I7׉n.OǺ[wVw`e8C,MlD\Ϯ&JY'ױk|a9D_T+ 1]xSyI7Db]$RN<r'[v1a1<@ǣG=ؕA%<9~&5^6cj]Gఫk&67a=hl嘆jb2'F9ōk9lEP,gÍǔیAW_).T`zwwb x~+b)鶝iyU]$YS?}05hr\ǖ`X52!}Kr!Z&LkKL,Fg`˿_~t}|Q?6Sb_/tl9Z/?/_{o__Yɂ?oϙ,>n/߱O~7X/_oˇ'j_ʡ/\+]O~_~/2[?ET~=-idaeIXz s3:ۇ{$B͟)]AW?r1=E'q`S\rܥDtG0a2G9^[to ('6#Wk<27 S[>(\zPDNBXHbwye{w!a2[SiZLL'G{< .nd&I'0W:_* =!ǥF<ڍFṕ`#S$3%)9$ce7\`k,$kdg#>OE/j,z\~UQXW}BFr`P*e.RdPA)De4 ^EZѩ5&z YHtCu;خ 뛓-A,B-&G-$\ zGT5>xZE{H·8K'4t< s T[,Vg@9OLgemm+ ڵ彷&Sࢃ98+.@}? uDС>_Kڒ$NE[Sh'(ՠnKpooMMR"e5䵭IPЩ8M'8pmэ:JN:ܘXL£&Nc00s{*"L);TZu`e+WnɄEw j R|ouH%z3ۀJϭN lb 7"Yd6 sN.GͶd0 dG/`Aݗ*`)K{tT= %ǯ\(Gq8o׻>Fy|*מV Ř5ǰrʿ?_>ׇ?Y~_~ۅ#_~?2?)_aw_|qh]-?Pkh{C`Ϊ, [ž@`ZqIS0M^,M~߭,ɷUr}_{_H$*]H$U{ݏs,v *;w Y=3gJ)) JEJ g4f?Ïker@ᖝh2gVR̢ؔU|>n؟^3ԼݦPvb}΍$7 zc2~,xCNtLߟ>?SӋGNXO׫h A=$=6w 6}S埿rl~y~Kſ>}_suo~cO~{yvZП ~w绿>|݁oypѻ93KJp{i/|0 eC~~׿ׯ/=ϟcuߞ?gο/Ys7}H &(f;W|K݉{?2H XEFTa\pPL-ꄑ|)_KCjqk?7«t,1*Ĉ1z.[ߍj.WJ#hذ t^lrr]{Jz0Ҧ)"cKMS/<[}2'J U8)Uyl>kPq۲f*+Q}9 S{1VE1\rQK ܝ[j+5T[)V)3a ŕ ije =ktM6{nWWKducgoTqYn/tUT vIHQ0LZ[fOVW܅/v`K~Ldo1Y+BK,Z2a6`Rx&`w1YLɝ%%4j梹c un"$9*nܛz.\*xjٶs%Rm,üno[gyYTEv/L',jG BM~FN ki R>AЄو+/w'WZjEeԮͪ5bo ٓωi AdKʖ2̖h/Jl.dMDDn"|RKRnDN_+J}gq2Ж΋9LM\e oJ삱i0n,.bF|d2=ÜYTƮ*̈٨29= QPk"l]jE2649o=I-Lu8*ssqX2mWl.ae+I]fﬗ5U.Bj'SRgMQy ˒e+92y=eUL*ʔ9k ĕQ6?a2iRm# 2B.S[zE-3בfRV"xpQ ^Q3ɛr#[=)&EB&"G ΔJ9 mJv Sff,InB9?OӨ]T)7UB8`2a( R6ߌqm**Mq,l&L*gktܪMKHMC&$^,F"9\ag: AnT&b0?:MuPa *rDEFڼɧ9[a&[MrfHGŚ:4s&_:&XN]|vfU?5S[K'6¥>Xr0X6bE֔Tk',#cOKXZދegΥdiԮьf[lJۖluQm`$1I#U4|?TTj$c[E۲lᒌ6XCrd•X@-sIhlxT)!3ab)KIi$TĹܲgM{ dچX )@ir*D\/v+f1ӹlE8.im+pRMìŏW7n/U©;Tۅx2a>^RĉiPFKa x~ l[k*D&PZ4e7R4:ٶs-'?-`F4wu*gLI-'?V+~HLLoLgY'x L½]1XS{MGi)(m:gЄI9'LpL8t胶Z̐<\B [#3 ƶ0da̦:kl1M2FV"xF8$㧪Sc:]SI"cMd.[=e]q^(aS&,'-B&'/6@0}=̶UVmnnb:ռ++Ckh{n%J}W˖(u+m|4.q#+AhlxqE,X(-@tjcCy\%¿XbV(Ww[N=Wv݂[;ߒĐ5vL>7BE%zF!*qx ;ak ~ާO`RNum1u4'N7S^^|ZҲkQcXkU?$pխX4QZ Mk,ф͑l qOA'[|lK|kjmg,wm0,F PIjŝ z"#WcEɃv/d3!T:#ܹ 3whkZRKZa7- cRM%M6 < !!/$Δ(G }\YD鵇槨}EglŧsLk.F0 W9ی sJ[3-mm - l}j?z WMI~oY)ȨͮgkZ[۬ASĔ:tV6PQ:fpٲrIkZF;|$F6qva&;*={^ì+.IUM]ȱC,`ǎ. `oNsO-4`6Rui5LA>#lesEF -MV-Xq (ve*g 2Q2~զe^4 ŗz.E̱c%`0V6%9T 5穖uh.4`6Vu&`>z KKeӨ]14XRjݼ/X g;u3בqsђ66eW*nՖ2o#^EIu-lFr׫H} CWI\Ss[Ƴn r*ld0I+XecmX9Vq3qn\HI|"stnaHNeˤ]{L7Ũy)^<%v%tBT{ݷBʶ(SsC8hQY$6 -Fyh(L.XFRĺ4rFatPi*bL;LvջtR|XaܝLXb;X^ߝ4L(%`( 58O^mlX)n@t昰h<|7.^An+:פ]{*6TUEŷAH ty/DDAeUr.Jzx33f-E0#t>X+I bT-OTj2z&v2a>R uM86#̵S\*7Zbdcc*ԥ:uIFqpp'6<-67E%6_#ԴsŇ1w_8-If Q{xW@E?,Ums&iXQtg@&ՠv09γu.ܥlY+xg`!10}Wmg۴k13;(1N5%,gnUqJظ +)fB)|%sg"ˊ8=j.n`hQ0CnPwr(#kv$iv 'oBل;1_sef˨6CMuL ،hɧ4ALnO~6tRf1"1򬓎dnզ1ioĩՁw]7 u$KՖJF?*:9ֽ/4Aj S I3H&Mvm0[sF!5Et:KEp;JPK ; p0a%Cjs%AOor{qjN!ﺔqKjПQ{|Xa4y;.b6#ۃ401VAC5(Fa1E9ZFt5؎wܘ2`rnw)3} SSٶs&Rfߡ#&Q(6-==꾂qU֐Tqa. ,TLMp;JnZ4J^v^̄وLڪ;4w̯\bbj-T&t{V< <r[NVvC~Z5t.J +$O}xtCڏlJQF>`wQ%ǯ`lTNt_%_j]dK E726 -^xrS9c*Rf. w3ڬY~5l۹ +:厘^"թhŬ?MhEF CK OU a[rGǓɖJ~2rRYB[&6&ϢBf:̝/2j2̯ӢKv#TQ8dƇ铟=#6tjt[@f"dЗ@UۖT-2>;fY4LHp ,NfOU%qzgr-#fgϏNhLNBHQY 8M^߉ }ʍm /Ƶm(Oz^l۹ Sz+?$c >թҷ-F6gT7SfFM̡p+S"N u-fO#G8jksPSD7 ჋v#uA\ 0ɕަs PUCr9;ۮs@mLg,=Ȝ;9{[B:Y. ;<"7[_zU]̄xaQxɺ y)>ڵY4m͗šw n*N$˴ȣU86Nع cz|Ձi!T[Z-"P9\ۀbDU,iP'%b2 ɛKHlT+.'%jڴksҍFy&Za«#\Ps*M+WaNo) `C`=6T]e :!bǷ 8ƏpK>Mԕf;]TCbrG [&,(V2f--%XdeӦ]Mna*wzl\Ȳ` !J^+܌e*RՉap3 pj"t0 LjҧT@LM&aaʜ_㼘"8 MXũ *M-&lRv-_,[}%L^nm3WO7+Xi>rdn~Jhmsܖ9wI $)k,TP2xLyIuU*V+ M$PFʚl]q!mԮN4m٫^Ù>.D9+Nlڹ z| [f}a$&bZҨ4rt`A] (u19SP阫grx{1*/߮Z7dXb`tAVN"9:ul'c'"2]l@V`6t>u_U l) SJ~U͉yB:w@{)CO{%V@V~O]S&z<33aXܺHN0abB!væ)F뤬O#|Gba6o-3W!S[I/^(z٧]L]w[#eRE(b- -I%-)[T0zNݵhÔM=_sq#ҩPw`4%.'̚6 -=4=)LsdцW7 [VB4o FH)<[B 2;v_h(A lӕYy#MӥoMx[HjBrB#rlN\g' +v)T/p۷lW̊:sFbe㍬-w鲕#ꢫɁWa>TzqKJ)Y`:P [{/dڻ_IP;hIDU!{Ӈb:o'&NovwwW6y#gq:ʶ~Ҧpwlg?u/G,\g?Y_,k0 "uxmu5WjVIC>e?'913sTo+wR[u9żp z(#hY6ɸ361 .k%E Gʩ'Bp:k~7ߵ園S$E1jW.j~ τV\hM6=ꓓf1Zq\3lgSvv+/r\?Mc Y]%U$WA̖%!k-fIdLEA4qL#7TU#ןYhl5r)QPJtX݂KK-$R659dJ䖦5r`/xnj6b vT"T;Bv"'x Pc6x g9Dn6MLs\5ΗNU~ sYprۨMe&LȍZ>(0)} KM$b6옣4~@.:S8M'&!~RW ˖H㎔yF2IpIV$RYܑJgcV5,dVn~YnbE;*s*{Tg1R%q'{Nmz=-ȏM,+'JfU|JLֶp0FĽ|W9I%=C)Vǧ*یT-ݡl0"U7kK&(%RxŇiԮE'sTGБ,(#{ \_%[vƨg %QX@"P܈oˠz5YcޜK NWBf]<#xIx纘rM4hHԘ"f˨Vڨ}+kqO%o$qH[oSqC޺Jm&PűdL R,F+~[eoC&:PavCUy.Ko"[R'.rtګ6U6Q]pX'uxT]=iksP-Jm'_%?t/\oK6ߨ]9'qTؖ$':R"6T1j91E7ڜ|m8nm;WQuo9ƉFsbc$2.$}YK<%e&\ BਙrPuC\(S1q @4jb-skޅL!t '8s+dUkqr mry-TeijA15LJ #].iRvxM`=;:Jnm#%OUkMЀ(Iڲ%ߚVqMC{&O? !7:)&P V$dYkYU4kCULEcVdP0{F70>d, 1\bK'G'Phj-ͩe,@HnMQ i&5.\t?H6ڵ)Ԫ`*(,eCW- USZUefU+o2sLT9 k$J˃mOgն$.lK.GR5T;{OR~棤%~$:pWMv-u|A)T$㇇~JTYb Rҗ{ AXO:ݾnW?+u|:_߿}}z/Ѣ~᧏O_=t߾?~{dN]=C [l_3d !K9*uvU-\=F珌 8>B:s^5+M>j^w#-t]79kfr^m{Ѫe֭MgV5AkSmЗ"x(\kP>8 kٜe%W:c7۾==|xvKwGOߚEA-V_߿?? _D}g]oo_}z~:|vxS{ 0ܱz~ןx_SwukkuLNb וçool.|oxL~/[^h/K( Gw؍tFLHn67?:?=|??c_w>m?O!"-_wVmPP;D`9 F32zdw9eA bK-eYL}c޻;)/__+CD_p%I`'x&񉄻fIcxgBrJ6}{9mV;Y NoE+=_{}1H [O ݤґNne C#/S#?(Z>DkxJ]Av)<w|a{'X]qyckz+02L*>|Kj\kniIܲn(w{ѯ!bpPЫw=rxMw{/[H[laqF0L,vhblzS~J׈I* 6H፜a1Ա1Y0g$&a5>^^ydzx3_IR9 \uoi0bV+M wA߃6`ra5 eڏ4`veJK_rD!D^3>73ӷcߞkoesڥ 5-KfKns;Yb.RX x0N$"$&+{''JPlzb׏mXc7Vޅ- vE8 vK#?wW+,fϑw9ɤcka'?aA:H F8Ǩ1 v]FE,iw'5F~FhtoF]ЏJ?)Gxֲgp&A| {$QʜoxTNK tt"" 1K28F`paRq(,KϠt% HH!DR\KD.1=d7R &˕H"HyGkm߾;9zi 3jq4P &NL2)%D#Q(,k[d"#:xKJ/Y"j%Js S_(6 }X,񦟐ء\{8E%Q+q3O,\пK8-8AG Q,CTu̘~="NrFNlu,mxh QI#\a}@|F{8'.M0EO/n?ut~#CB) /fr_o7Jo[Xk\N%T8:82ȼPz-tpyCPQG`DQ.V.cmAxqǁhHW~oT"w~A8@|!Gk6~px' pgVN{bfԇ, 9H-td=CR@, 0ppFƁ%c;p"\y3l$9g!RD{Nvb.Vw)v`iVo~{uAJ*rSFL^*DD_w:p đBZ.o<"%'J*`t<pKX0 SrQNX LpU5" xB^>򂅌rNe9v[|GN&-h㾺 XѓpTA74 s :2x':0p!ˆfQ֧LZ@sG;rʁ<Al*9,<|x{,żO łڥasr15c G\8X-q.p9@&P`]-2Sq<]kpӶX 8~wC2̇н7&-u{?!#AXǀP L~{ k_*T]zvPAL_3#*jhLMJOUD ޱ#w^uZߟ/>?a];vؙۏz%/T|)D~|.LW8Po|;%+ \S_ڟpM741QWӇ%)gJlB8BЃ[q 7^7n*p[F8}w/I^x^'بvH/]b\w ⭇RgOgE9KSb0ςE@7H\\C\uGq陾 5 "^|dĔ5BjOH ~E'u'dWԾaZ3;d7q^;Tקݫ-cY^&BaaΆ3BɈ=9ӧ5i76C1s~gߝ7`q}[.ڏ|pӶ\CKDwf?/o >|}S%`|/k/G~??ߞ;>|^6Ը=nSuK J%,կvO,??_?=Ɋ/r?_~;<ѿⱵFSl%@iu)P⾪!1B{J#` ]5ñ'Cw_~Or?!>B hU7b~hv]sޛ|Ϻ_5Bn. z:%|W8nL"«A fnbocqPFF=0䬰Ә8;%t2Gmlzt899?f:biEj0q0]K&Zja֠z' bD 21sbhk#]Rf@i*IO$>[2}zRЌ-O˓Մ.[٩ Ƃul|ޏ绿u :'~; ` 7bO5W"KQ2 T:+w~ShN&i~3q%6<6V\ax^1kio-[b8tFcnZK.ƄI Mڨx.щCb57O[Ev`&uч~mS~#g+F}dv[{e/5}ZPz$]=WHz.-}`LŽXAw\ b]focuswriter-1.4.5/resources/images/icons/oxygen/scalable/16/document-print.svgz000066400000000000000000000621521231434177300276720ustar00rootroot00000000000000%~uFdocument-print.svgzooG)|ʛ,`5ow7"=p pEmdɐK1qKuݩ^ A,GLOM͐no~y Nmo.._<ɳ_׷۳ݛg^ٻ/v^l6߿Oޘnn_otȻ_ٳga^\<5~}.n~ܦ󛷛۫vg B.t{uxjv{`v{w/ūh}BwmNӻ׻w_ jm6|M|biVn_^g7ov?_^<ٿ>Ռ?/܃t>Kpb.dzysv8b߷7ӻ7?q{*⛳)6woϮ6?`^=~yjzԟ.p6ڞ~Zn{o{gGO|IO{y)=wg}+q?noܼzu|@$b&'6chfȋ7.3HnR__;Ow~vn}yվF~y*sKAk^)y0[9@,TZ$fumr(,GD|vr]U*K$ԥǣO'{r7} ~ɽb'Ōa|b+$ \OQߛXO9mߵe4FZoѺþ)5:4w(3;3}|{p,6b_\EEGXH'XTtI &"$uӓdzR;|b5koH\C|s}t' C4+~!,7zC !ul Oږ1AŎvl$9󢥵$(tmhz:ڀ}t:\kuu/]]kL~R IeX.2KƻM}O.$I{e`9I.w݃bx=FwZwlA3w\)[S1(-{ƻJA]v}=t&s`@=P Ë cdӓzgbvhYהAe6ѱ $ktȲ@_pb DHtqtBI ]>FfCD<.ޅ8.kp.YK [$vݵ,kp΄N SBkt+%8tn]蒸HkyNJN䥋yK ν:)qQ =56]y1vEqtB$58S :szRkpjΦVѩ +bR,ѱ $i^5Dc$zqtB Ťu^,9wKrQ -/Z"ѭ S5:W4^)o}Ҩ~҈#Es:&+Y[Jws9۸v#Jz -8.]X!ۼEsxbQ Ν騑Xѩ c3]K^=GGBaKbmVZ\#Ɂɡ<'EVR3[r 4']暰jZJ$8usr.ͷkp[dN Rn; GG]蘈uGQ9<8'y EWEqtB/ܼU\jpnqQDWG.L[58]4]8:uk*JsC}(ø9v&z Ν茑Ѕ.JoO^I$9ar.rN%kp.:HtqtD'-ֺRS Ӹy2 58p$:8zBDŽҼ[s3Os 9k9$FVmCq\zSa<(d;v.K\k D/^8:;$'+ ]J`y؃n=S~d^s+sd4Hen `k܉y;A^])\Ju(.57Ӹy2 ĬU\jpnqaDgG]J.y.ٗ5D&q#ѵskܙ҅ LD%:xDHtqtBޥ.Pͩ/&z 9[:8:OT[gNtp 4qs2űѤ&L"-w.el6G%z . 9Hօ Hqz DC(:Nt*&69=8zB957 9R\m\\9*Kͬ+8.]rf{^ssHtqtBǤRu^Ht.ԅٛG{% Eqt\9AqRTssO#͉͡whrlM;Q"1\øQ CDGNt E5B'ɁN ]658s;ǡ.tIl-n9l]9&i\8.]蔊kl*8E.pL,ZZWjpe.湌SƤέi^s'Z(:c%BG.jpG.#ѕѡsc&RSHa],[\V.օ.I5z&]]!K:'P^g\\I:q$:8z]ؽyZTs Htq޵t6. 8n޻{:QrHtqޥt٥.\8zR.gvfjeɡD0x%8è4/y\˜\5*.NqDgG.tJ[Mz Nm-C(:.tL,58+G.tHY`=I$']K7P]"{9K%eϭ)sk S$:8:w_\4}#2Ht*ԉNlBh0F K -/Ѕ/D%:9ơDCFBHzϨgTqt4?)8l8Ӹyj|fHrq޵tsgjpQ)9Ҽظyb9/%{(:+uM^-"ѳs®YW?P Cˋj$qt]ؕee5:Ǒ89v,Njp(.<޻*ktr_Y"9w.*f͊^s+:Htqt\5۱sY3#PtG/]LY^jpnyADGG]Nsԭp :HtqtBnҚ58ugPtG.tL8ڧg@2ΝhE[z ͦV{fXS[\,{UFz K9F7]OZjn5%Nn]䜲ޥ,kpUQ!K:%,.vZ88zBǤ0ԆQsD6],fz Ν8.茀h =*Es SzjRѩ *6kz έl0]9G551y5QYpYy>IlKof$dktaǫ8QP{vRw7 "݇h-=]{r6Y m^ohI;4F#b%2,5IW]y[z%F* @,Na>%nWL7D7ޣO{uU{Q$Wے{5S{DܣREZ]%rO7QKr=Ṯ[|.)Z]o1Oq>7OQ.QxKt#6ܷ99%9ښsD.ѥOwQKsȽy͖ -G!:Avr/O|HN{r_:(v|9[(MvW:WDWߣ]_rU#Hũ߈VBDޣ{:Y.#r6{JN~IN'a;ۼtGa;7sR-un#txDwvI'a;z/Bcf]NmE垬";r̔=9۹ }@D{ss s7+t{ÞտOe{sRlmN9,NnѢ~I'a-wRPwRۓ):}XUe%݆ؾV[.&%:]tᯉ^rHNyJ{rrJ6hnD${rVr;Z;+v^iXn_y@;tStأ+v{tvr?Ew9CCH[c; ߑ_GcHCnM^orv?DStڣ5u.^ot.Η{tvr+`7[*p][u m"m|j]FFKߎKt=:록BMo7QKt=: Ô^8$KKt=: ;RÅl9.!@;pKp=x(vܷ9b)9}DlyNsKt= 9MM ~v{tr _*_A;Stܣ˰/|:^<=dJn E@蜇讗{tVrIO?й):qɭJCWߎKt=:L[ե{s7W$Wے[搜ͩ.|;\/%1B7m+NiCtnWDgDgݣ۰ ]Ų{]E'Dأ반)hG1Oq.b>Zejn?sW9|NjnwnTxStأ㰛;{حӇ]Kj|nG|Vu.5:lVw>UG#B5=böh.Z't '}j >vQKt= hG.1:FT.|{vׇ:o ~ :%:etqj{s ל /ё0,` KEw/ \ `ktaQ3]*Ԝ9so nW1:݇ ^otDDݣ]Z EwDأͪ,qwʆQ -/0 ˂cDy#O4Q2Ύ̬18rg9KBryWwGhd[v K5WDW4W7fwjﲂg%Fa .+x N C=t |Y&ٶ9 G+x4OSGCsh>4bQtG&:gyY(9꾹5/9V6"V]D9 Q+xv%D'G[GWlIG4G7f3M|ΚCþ96{+w'́͡eWxG_{tLDǴmt&:1VLI}h6u{]0Nl{A V;;ѝ']ͭ:(M[kˍLQ+.:9A*%n+xs>:" }_qyZ|i+CWns$d-sR{gWQIt}h8>T TDQtG:^nen^'AѭWGW]E!m2ѵNdr95VK ]Bbѱ.">5鎾wtDIt}thvw%v+xt*j*RZw@|]r=Fɸlgw贏NHL_3yuZq)qnn&)ѵUĸ+xvc>4V+x&QѹU*/+xNS('X5WLόQs7fQU,F+xls晼ONNUmY%Cö#-/ù\CWheq$'f|(+"y_dq$7s{%#`ʝ|"Mŭ%cҋW..4'6(/֢!F¹GNIr'ng|jF|#}EɹW4 ++wShxfNwr$$}rlr |JD;+xtD$G&lEq!x |r7;֯?96{e%rGq\yC*7ɫ rs[;.G<E ck]h fq\NIq8+ ]9Aɹ+&r/|LS=}_M+_8ɽGL>9v[V+9*ɿJN6GlX)fe3<:]ݶ5*#_7_7 >y4'W+PXp&i[q2č|*\y\uZvy U+x\l\b\*=H|4F9ISYYr$g'fDj\' 9>95%Fp|_>F1I얨|;WNls8HO-rxwrx2F2HM.$gWϑ[>yt=[-_r#Ir'&9G4s.F&*VWTɩ T9"_ONhUaYEp\xs_5Yٶ9[xQ|YN>HNOvJp#_r9r$}n[Bj\' 9>5quZ!Ap}pm6\u6;,9Im\8'is\.S |@XՕ;YV<&a6Q+xt;;CBwXVQMͶ)፺G >y4 #Ky Z\aɽO>Ƀ w;ܦ#U|rAr}n|SN>yŭkCjt#_s4HNOMr@/+xt_:HONͮ(&qn!&a W] ݱC* \>%e\Ҷ1-W-+xK y>y4ɱ~y>hIpt -+΃^-+xrAr}rmLf 嚓O.Mr+x4HO͖V>X\t\|-W!|OkO%OR+wrdgf3J < mC6RU|VrAr}hŦ^W'+Ir'fGJ%+w<n~Z޶]'͑s>vRjzpbO>Ir'nCJͬf A!lHɮ]<_aAr}rj6d{ ^Cl1IN/z*3?\)i~׿?/o+'/70?o~>DX>pGwFPL*FЏGwF02qg7)wob /5f}I $"n%?5zwvk;=?ZW2/^rƼ>? Px젾CXX|V+y=o:,fcvf<5Duq}kjjC\}^y=ZϾGxͤ_#or~k=~G>S'vl6ZU5qQ2JSFԢ~KbeμyR!~(VZq  ֕QFԑV2+w6?ӯ'm_'s3+vWo֞ ,k/CcQ8w+aq{kF#}^#{ǩj7#{lb/譥;o(WI?scLٱY$1u_~60/yfWrD),?ĝю ߥEǢ(^$i@_ puֵSA0;Am\Y;~Q9no|*8]ɁO0I\A L(%¡lώ}6dh@&N ?gOK)~>ڼu3צm>O:'h9}V@SNChsp:(p ]u[mrWjc^mr,KMmɱ/6AMnj}i6rV{deyu븒Gz/"ߜflq3jZd'\ ?lp- E|=ڵL` MFFvk&:H{>A/>A9-ܥ>$m`:AكW9b&/)gb{[bkI2d|m}T_{څH6kN?}q}Z/tB__?=o/r|??q?}ן>ܽyo?}wo۞ϓ/~ׯxݳo='WOܽoޏ7~?W;ðwCٸi@3Jo5 pn5^ŴWe_kpZZuk`4ukpr W|•w .!\+v7z%\Dy"܁pF*+wԵ"\+Ϊ zCu;n\n,%!\|kp ڍ.\5 pnt܁pF$+qY"\+r-;#ga3O;%vֵ#\ MD!,!\M.µӀn]3]˼ve2tFmº7eT0 ܔQf:!̊pSFe#tU!Mٔo!&ՌQYۘ a݌s>fi̦!\UGmU"Dk9ۑVxc_5z8!,[\J9mN|9tULrVp*u>%7S޶u *µ\i1ORn\iToCs׸+zWQ*gEp9W,-pCXԺ!\>뻤qG_K7ykk܎hSF%x6tu hru`D˹;iCxWnҬvһZ7EZwJT!,!\ՂC7tuCwAR<Мº9.gpL*eN JYˡ+Lro޼AV'K uW(W&ET!+cs`4+̕YJYOֶ; /UkR0S;;; 1~5p=W P@;Rvf4tCX7trmt;C!KpGCSӳpCx\ 5p-W sˌytb0"Y`k)I:ځh9WEͺ!,u \ɕGx9turR;L]a09\qCX;\Aؘ W!̎p9WF ЕJC7up-wi eHe@딫~#2.goBT"W`BeEm“md!\]&4nDT(W&}.j߼ \̨!YMLѦ\6nƩofzT ᡊv WWw#.5 prNM aՕJr.O"]0r+wዝʎ6\_Զp-y qM ᆰD'˂{#~#XGumr\•M!M|ڜ|9elz. R;tCX6\\:9!r. RݎkM L aUXւ*U1d7F9uyA S(2GU;9+akDs l69l%l2s6%!,3n*m,(aY1J2Se0qCX6΁p)& CX׺p)b8 a]*M|ZȩBWfT`SF1!BXM ps鶵)gG#Ǒm6SA|• vt .!\;Mf|# aS9\Kf|;r!,ۑpSZUJn2n:"\K^0!, [wF9uyI9ܩѼºy.`5*\k Jw q\H74rCX5ru W3++3uJfmVmdX7y6S3 M^0X`Lªʚ"*hª5C9s a]g1Uϥtp0k`9wEts0P%wij%dD7eR1 a٨p=;U:CX+X'; a]W7yð!ʂp;RCXl7y4B7tEjf!fΦr׻!,v8n(.M؛"Y 8?O0`G Y!Йj\ؖbX5{v`%%%)&FK]הp캆f76m%7&•c5M)YV}~C&ZB޳4\U5H[#{hfѸE rYRQ@.X oD+=3UU=9J8!\y7=-ҍͭ#97%Dв-yM)9QϹ7_mpK8$•sLrBy/M&/%=T'6#97vAc -֩GMn &w#\9U-U=ù-nbtcs6{.UI"[1A= \¹@N+=\Ϸ%<̮.=Jʥ e%뽦$EܖpBfϑAgXu;ȪJ M9TԖpnn+=fcyU=p:pXhgP%@p%SG3f-tc[dQϞJ-\J+$bP.X(Bs㮀\P6BkHb.BSՔ1ͦDQ9U±z5Քn,7f󕄁\Zjәm ǖ!ZSS\T¹ nQ\©B2|)chgK]ֱtS)llhKX/In)5c>n O|.#R=P1U±b lh-ԖJϪB&sW{fMueK7 z^|)H.X$;͞SW"M]xM=ؠs}pgK K8ɱT馒Tl?3U±HFx"L \2!WLU C'c#\o;n "ZmS%sn:EZ'\}#fw_pTp]eb6?+&mvfc jϜs_n OJn%=sj24%]F3/9W^RWSj*ڈJ8Fn7Bc9jϠK-5=*-#fQe:Җ+ylh͂涄ssWzʱď%<~ vS^nAv-1+olhP.T(b='e(Op*QMoJt<( FõˆXy6nvo]Eڳ2 E[¹k{](lG'\{h6}d~:^M{vt+/V"\鵠Ό&cK 6}~,XHp?wIT@p$FBo\K8 \Mւ'U4MoU% Ip8PY± 6M~ έ]GBin f7.7m~QUU±JϺJT`BQ Y± z K茻U%'KvxZ%ﯯ.hWp?Nk~>DwZM]3O߾jeoza0>#3#9z|x_!\I6!ndX/3,3d]jmdƀ~R>3{K|z}}]T&yy*b?>3D.`x_O a pr!xSCJP԰^?[´ JO *^B,N lQo?~D%,gmoLdw7;13ߞxߞno7XKmԖy1=W^J7]}}]>LJ=|?}*>> %7{I JxI??S;=!TL|/^T`'hxd~@&F[  x ⩚A$Y>ޗCzj#TP"܅iG e[Fٍpk,njm9ly~ *K3+ drG[,us'h Yb'*E,bډbB>" fq8)͒;"0mt)u\5m--b^)ꂱÂqvq_KW`,ݥgwbҼ)=ף-g `hn3&YpE"uh%\Ice8-!͒Fǟ/ 1xԞ:7E  7Nm*q-"$ ڞLͽkbrl̋P!x6y>"y{cpx>"dAδk>"t3δ|E,ˑ:)aޜ|EЂqaߌ洧8I3G((3sk|h黋oO6ebzy>s9%5#;3fPpo"^b5 Q yaU=x.9 CRc ,rKBY4F]C"f9zJ:/Ѷtq{ám<n⾲Ft4>6e%N_ήq9N_vdd52t]dp>aw1 (d?+Ӿl},N="H '!ǐ ,~#scGܓ Y"SF-<BXb ;/ š;JY͒3JҖaC|y1h0q-(ݭwwrSM==A9֩{=\">}Mˏڄs$9ͧ+gV-f5tOws$[0X0ڣaWH&Mܮ,vDS#ytn7 vt%I{d8`1{N:܄=~y:GvYN藓f`Β{L/xҖqބaSj MDYf4Kϊ6+qV|%pmH,[fHs4D|&z5\'yꀢ`J{F(Ү96xN$bV#?*Uf!&7:s|mPץVD I_ BTT;}?99;^0nIYnKYwA΂ o\|e{ξҲiݥA#(-JPlqvI;.7ԧ(U;v/I鿝fin8{ vmށ'@᫄JBq-6}*M4U UTϖ#o]*Q-/c,3ASFٝ(o,_,#.-< !l}${$' e!
dR,q2ɐM&ytn[%ױG>OlC)R6o`R6oGR6o`GAIdG['`ʏ<ع?LRQ3IyHGCoTtO7*Pڨp$EJxq'dp2zL3+?;CbS#.}R1Czs*u&9b5UR.8kIpy=oy=9r-?hݞw8ys獪^)E}^NUuz^D(g0 J:5%M5Gx%%$dL" I9|0L Y!$t yBVUEY$UQl}Ȫ.֏T!p݇ !>TC Ȩ8p Z%?:{ew|o~gwC0d6ݫgC_ }(wΪJj jRXDAh_ |EJϙh-t9^a _?'?v60g3y;t\ݛ뻏Co.kԢ.ל1?}y{kVb(=%k㛡v?|O>f_r<ŋƆlFW ꣍uxY/_>O8}qu lf<'y^ǻà?os09ۧ ~>rso/.>=O_? }x/.޽YHiy^64X Ko<#&.GBX qN/a_ }_.>ɋ/~Yx|9/%0'߳ < t?~ԒW _GL+$8z~-\ -d&>I ʪ֞`615uqұFdX նH ٔS) SijJj!ZB->j(|m.vea`ftT`%OA8XE@ar#RUԂ3" 3@FZ5nYޜLDan:(jVrN3$2q LWf!:%#BX+!h"tPD BRՈY%y"lå5^$m+hf?oe*P(WQ(gcP* I)NF9RuȩҞ +-\'O,-mj=&أ4XyhRJ qq{҄ыV4PSН~8O~=ZҒ[PzZ׹9{"{%?mBs &,m6WƮ|\#J`(f:Q4WcOgN^G3 rۥDjk$CfxV4׉=$Ei>%{pBF"j )krUڸKgĺX˓ tw)T|ˏ-?[~$8`OC-?I$;cphc07#]~jN)1$ UGIǕv8$ZaϏX91xRF,2X=[Irq&uAOZhB[hh]#UݹFX0`L V뮠FI*bUyYtWBsnҝx"zVwWD(#EGĒ f'`ѫ3&\ ~EЋ6N*c j9}XoK"@Єȫ!BV3 Hq䠕TA3`ؼ8$ F(T.#@i!Hp5ު+vrJ8-Q J˦I9~R6) D,A0R\XF#ȗr(Pf`ӰgAF[2ń5,4^5Ŝb=bP%rmNG#2550 i1S̾ei#ʭ!wB`Ѝ D.s=eisBu-BU)FTu-X/C4$W+T7祙Q' $2)Njg`YM+a0q^!dk7)ĢzD?e(lGg eAuk)QUyx hh2Wt)-O|`# %83k? @ZO}ѡrl0-F-WuK:n1@D)DK@jKA- #VG /0-I  *l?&T؍Rq(o}IK+xZxTK xTj)PQK a RHLExZ 4E+ẖT\E-*jB\*.Wm~Zy_v3_QPW bEV < 69b ȴr F1dkcNr@0  W{HN@62Ī:K3VWI5jJaDd{ݤ 5 I5H'ΒE3T A$HU$W &҈UuNBN&J閟Ǒ|G0w_/W>xDPdz_/[IW b)&ɞ4 ?&29w:&Zm)?U~[i^o/gd(ER[P*Pp#Pڶl긾 U03dLH-'- Vh/Sf|x V p,(tYSCZ#>" 0ޘsJI˯ϗ_A,!J%WIpo'˅UeYsiR!4oQŶi]mc6(m:/3@ېҡOo3~v4~7?L%\cxfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/16/document-save-all.svgz000066400000000000000000000122651231434177300302420ustar00rootroot00000000000000\ms~B|H@{Ii+T*WMdeeRER0 ) G$\; [f?ӃzzjMߞӓj:MnoO? b9NFit:;O.hYMN>,ߟib.꟪wn^-f.qSs>Jڟ8+ p0]>uJ黕<]+z6M멟7ljUrjy_z87YNltZ܍|o&oOS( < .mnj^ﰾ3YOܣelۙFTdfrl|ß??\W~y2;zw[T|at{{uTd]p1X KMݞ~e5]2nu9 >mջu='wK ?~h9J}ABVH*o?R;w69S+S{zDn>yR^>U h}<ᦾ/˛?FNOy#0'_W4Y,MdiR]-JՒZ hhr&Ƴj>4zXdliJN+XJcˇ"g7!CRKբJƊ\HmL/^i4x^OrGQ} ;ʉA08,ja"HLc~ G?*^'ů&K;XbNje =,3p. Dݫ]g#Y,x7d֩Ac)/2tڡ!hhU7UZM{v|f/ٟ[T[Zz!-ŒϿ%Y:MbdH`(Q >h F/=$}Q~c49Ʒ7w=Zhm>h2@#'oѣO$67Ҧr^ТGC,Up ^bASͅWWw3tg6Z `:#P.@a艁/JV0Bc ~M>`T} ͇.9bG{z.!O\.?ݍ"X, "u858H$:! Ǖ0q\$vk=<{vY2aZE#AB ]dԽh]^ҡ݊J'.g` ;s 6s9CtFQ9C4r^2+SVi$8QN!(JuD Ql%r9D LvK.k553H]!ycH#|Έ"2UrѸ+O <%J+A1tZ J"vJfB88% ~sp1|p/Fj N!ubc`EzuAn(Ԏ 9fE ȋ|.Xį,럷e[$uqg{JfcB@&h4v )2FT/'a<@&'|M]7PN)PdUl'M4CU a~QEA:lԬST66.lx~ZQ6'OOz"1f9jIw8}1ڗ5Uef$Ω' q/RI$跓"FI(YFjqԓHUa7bU9HX۬jA{vَ CXI@p䢆yPNbXGm0:Xk^6aL 38Hh1:h$G.I c V06ы%'f uXGC.N B4dacԩ` b2 k`N"jHK9}\XMMᯚ|O}&CuQzӳz6j@IB#Ɓx'(֙b`juʎ zVШVYP0:tHhW %+Sc$_<`E{}[0Ed%$ԃ&D=I('b>ثbM>Ix+w?'w7?!(5vy%1nf">{#{hV/582{|^g*,hw,w!Rz{6j >("{J '쬽D[4AEW+3r:vFzJ^M7O!r+J KFb y P#3aEt1fEV!i?a۬ +X뵬W78&2&V\QD =͌={uDX7U}.76}.76:Q8oT!qbHΘź!86m *s67 ~{ʡ}ML_r+iQp''SuiO}NjCw=A`(puA0z7? >YM&%=k-I]̿>чjЦ?L'Ot`< U]Wi&=)^컸;S7j9UDyQH:mjK=ZC|=N/Cm:a4W5\T\4Ie_pζ8͸MefVl0 N]El7|fdj,?'ֻF#ni3a(O.[`pA} %p A*1a!J MX KceAK.`t|>!& 5^rs*eḵIH}#zh":!1v@^38U-"3NlO>[b{8:" yjTkD~zq@XC]gq~[>V)~M^4/[Av;.>Quؐ^q]X)ɡ푠.ḐXxwd V*T|0w)mJLPpG1Ѐ.jȓ *r 4\Ff-Y#₊;s3jRrQ ( AbTJ.P1K/!*5d])9?T:!Z.ȼ~, 6 pŞq_݃juESYg1!+ qCA\!fFj΂7$N-LL9{ #M햎@.2*NZսkCanydjggz H9$vĊq!7YB1bdrI׊[061q^ǔ4!v6r&X (^v)wѭ?%L{DTYhEsuOrS/Ԃ`,yE^ y- P.j)kgQgYB ?(7~SX´6%\@.j)EF*eJETuus=ZL+z}t:= 4򚢈d NW8am@1Ϧ,8 .jsUa&:z6iԂkZ)@)zũp엠г# ^:qI36Ԭ4):H\B~: && Sp IŁ&J.1_DQ1*6˾fjN.2Ps^ @,hy NL&X"BR%L᳅G;!cBԨ]7ЋEY] 6N5,h}l>iϟ6 LluTZ>])"t򩉇Oh>vp~_t̾G=E2?TL@M2e$.)+2?5Ǩ?{N_H39G8bcH@GbWiFХ hAox"*'v3Gu6/ᷰӝbRfqx5=R9d d'!&m$ 8 (u06)Ybfk rTb%b$q>`5pF<̧Ϩ%OoMС5v(&gBɅ4's@,vAӜznY.UV4Ѿ|Wƍ6-/[ ]1Z12.{=aMc3@ U|aF]{75{ʓl5 zۇo &Kj(U੍|hG=FUk X!1҅focuswriter-1.4.5/resources/images/icons/oxygen/scalable/16/document-save-as.svgz000066400000000000000000000222011231434177300300640ustar00rootroot00000000000000}[sIvW~łsL ; o IIuK]P`@QFjWrsNe&~~{ՏO囫?>xrv{\Z?=Y-Vg_r{|:Oww~x_-o`yyw/+/jno~Y]\m —߽y$./ޮ~^]>Â϶/_W/E_mɛWP_ af>zFtI~[~8שkԭϺkaR?|x쳕iWK]6@sUVwtV6nLoIjM?|/mnھ$Z^syS=iOwCzDQ9/]t7|}ÿ~zu_uſ]|zr}vgh5rt-mܜwՇU_N[O8Շw7w޼]}wW'opwB:yny[V67NTS-q]%ۧ ,_^ﺧݳ˻xrvӳHU nMٿݽy_j!OΞ}uE?I@M%6RWCՔnz3 ?,/ti6.߾]]t _ueV dzrw}|۵]7?=tY? \zuJ ŶLjaRuETqkzIM>(p(__" + 0 ,RRr|D==j5PGQGe y:[e'Ԥg4zBMzkso-ˊŭ9n(}^Lʾ `̀b GAn%0l3DRISiZ`c2v슄(_'@ H*?XDKf&Q̇%;O/Ԛij 9iWgH@:#E3,IlpBe_+N)!%d0&!9%":`cPȳk̈7s'FG)9Ҥl[o6Ɩ`*Z/T ǖ`3˝]n$+GJb c20+'(!uyBA &BP)( d*BY5+[(j1rj\ǘ <{:43it+UVX:0q^Li:ll W?mÝ/WumǘsҰP ; GvHil}m4/w8<2-nJqDBI$1A[E톉CDE}58$"aVŘUs#VY%38)¾<|&lEw96]v>"h**(HQ%_lZR\ iJc,@:S!0^L7췳b¾,,ЋоFE2QbsSm̡P(L4LhRvA雂: ؋[5cgq$:Lc-ԆrFPiV*EgM_5F|/5gGmbZ#`p˯5}bzO x0kGOGse_1 qcK.'xw'Q{U{3 N@ `#f)ަ@x),Z'?xpgǃ պ _q;0< j7*J< pw屸TMFXa($Al*AUб\rX3sQ)#c&㐃<k, JfbF">XX/KG8r hxBQOr :VBYdkl^( $l=<>9&1^@"J<6T@m \,"Ƴ0coIً!!!Akh(FDn&N Z-n6=g?H~hgƦUvqF]Œa~vU7M&hQ3;FE8''ԅlLof ŇvQ,ĸ+}w`oHRh9jf -Ԓ ( N[TS:z:l"%t$%}$(Ɏ%fRχӊO ۧ% Zʨ% Z|z[Ѹ3F\.= MeX ) Ι%]Ȣ έtȡ:Yž8X.Dg9zny(%rÑ.gJ9~* &iγoryqzN>xV=@`XD]b𘽚VF1D.ۈ8 #i#@mḆ ;A#cn1ʄwc Mzwф79cܜ":P󐽦/g\9 {d:CrjG,6wq eWfԯÞOwߟq6ysTx)|ST;xC֌h? ӌP=/(`Rݔ0v \"ZGs&!uXEQ}iA΀6ˏ1#2w3l;YPN۩'>c8wFSɼkf䙞vŲM4:h?|'> >`??6} 9=$0}'uN9=jAf):߮kih)8!;xOq9yn۝:!_L ] Be 30ϛ飽F94GG=O4 Nx>w;$=WRA)lLSdbMa Ź@P^'Pu^W3s1!;mk<xA04w0ŭw![&/ ?/ /l3_6?^yx[c]t{7qߞNUw=CO3^x9)wsΝd"={4u{\;#_0ML4#m? 0`VYCu77J-`oXe>%XcH\_f_KDPђOri~iPܸ~29T3;+sLv8d]wdUKAhA*YJnq<%W=~$8HBB[p *9 ;Az$5;r5,/^]fߍ뛫_7sxdZb3'+nzMuBXq*~[~p.t%M^~]M_{y}sT\hB3Zͅi }g\֎݇5k \)S]|AwdZr|{o~71~ltvwg.}t榣U.[Uo]{[W߫{vvoNJY(''>Xs4-] R>*>",@]"Y A, , eM. QIC1  j5YL6ni$XTTM)+^J|YȢ)fPJ2Fv7wx1ZVh Y={I1 J :b&À[V:E( `)^[𠃢αj^[_V]G^~/SulUO0ƒIE6vuhjI JFs1׫^YY<{3-$ Qw&& 'mtέCrRY~K8|/q̡ :VQ)۔,}$F "fڱ ӽP(ml'^][9 ~:Y8a;S %i &D$auC(I0kIlⴍ2AkXLX1*"}ɮyɈᏠBĂQfНtċAoRD!nymyNd@jŒ%`h@"IXQK6@|ʫAB)r@<`WBmy j1oj6M2x6 C.)sѩGaLs. ζؘ-eAB吒I - \yqDi+0|27hA9ڪa:G|>Ƀ}_|Ƨy>A{SJe - OO/BNuQ" Q'My~b\^IaCCׇ I^"৐&{Tp mmJdM" UEQPʢ=v q}\@hSTAi57! t- iK#ڢ!N*y)lўFTx4R/Fk{Dz> ŷ睼vAugc+ݴ=25HD~~jTy\c[L[ω#9*{\ܨpLB`?5z%ِ1Paz_F1bJKh0A`|ȢEśT% ,U 8-O_ Ì}G%0wඉ y-E |#,8[$ϲŹBXbZ:L /4:PeօANEjwSIeP,i %xşT^dbZq/h at\xR "9Bd@X[ WLٚvBR'56M\߆IUMH`+F $i8[x`ribQ;)+J%EILӼ$#%V`Vl( B6ë==j:Qtw_d]Vؐ% [T/m5J {X!zXIzLmT( j $hwS1~#" +Rm'NJjq* %J6+uo{E3`4#C䡎^/Lam*5?/–:=Ixo|SyT a! z߄X&jrDj)Ta4ܴE"H$J[Jjh:odSܸc k}dňUt'X"XGHR"9Lwc J b0 [#J`H1d]T+G)_lF\U0й %w;c&C?() 0.$f:QϚ8V7^L~@譨 s6C "=({j[ zdr&Q4#ut~;Yh຤l!,r,=@!r}Rq5R}Rxb42?3mƆ` 3Aa 6A5A!G8Q$vIR띳o=CXO ( J!%YRshTb"I<PQiqLՌ:Ř<= 6 :i,|:jvۆa p|;Qva>"9ːDM9ؠ)ҖH)K>r#\kʰhp)Ch()ØSM'Rrв|]-Zx[YZr&S%WlSPn ơ0v,[]ZHrK8(&zQ'2Rw@/][?em{u8Q87s8ݭ J(:g obHsST\+zå˯o?ZUkOϻ&f3?Fo}6k䭱E3)T*d {m_4[XC5G qD[ImOrH闏SYO մ1[..d<@ʝI⽣:xn):mGa]ȷ2jNeM3ۑb]J03j̉{\Iޖ[xȆ(jlV+qAY];I37D{FR[P_JI:lnH*Wѯ///ltzYI>{QܡD2U>R[mcX-*|7ٷ}Zw HnóBQT&$( BQeE*SbMauDFQ: J Lʧ"ep>P4S Cɭ+:{B+xO;]0vš"a3X7E\v_9:)繍 Bd1> C_ ưnV[~:bk/h~{;-+y<2/c<⶘T82Cqr~2U9 Q?pO_SM׫,sqtlgӪ`P^7 5+V_ujW)͔6m7˻XJjq?cOWb0Bkv8>mZoZ/_ >~㪘{T~ۂǻbտL.wN]8"mad^۬D\b,׿D*+g#W`Άo<:Nv;\2ћ=8σƼz+Pk{<ėXMӿE!'m?nt|$2 y5.r2B8(.IUa4NQp0|Z&g)۩JL-WNMR80~߬(p+ 0PXa1ߠ0Kaz qד죧y,~cPyE>Nje` 54ch2s؛cM(,@ ώYܖ\ ~߮ZoY_m29s*;1>ZaYKF6~߸2?!cn7JfNҝg+S JiE=;Z&}6YkeG*em1-CIۃ EaScE;>}O}@Mbg`oNtr_璫^QllTrh5Olz>ϊ&bGK"0>}ģٸ s>p;S,ǹ.pyX RWhrДpǦ3 ptdNc{c|5B<~:%AOVi *D*wB\="$jkRZ{^w^w.>b j% d{Nf-gX)TCpQhu! 8z+P9¸.:_.'Lcs/7'd/7Ax]3u;3wy6v:h+GϞ $yb(b>P8罗]A$?O;u 98!²&ʚЊٙ5^OUz[VgB3r0,zeU /wfetYz.;twkWrrF3g@~9Cj`͜A'b9xRSLe0 "A8୔XR}NzȊ" ;.ᒙI%;no֚55vm! 5udH3THؚ*[*{e2^Qk 8iKreB(@BΓ{}Cdv I?NKw*c0˃2Aw‡p# %l'@$"ZI(hC>ǙZvgrwmu㧡64,vhY.Z3%}1 h|]; T=8A=쒡U:8OqvrPVuߍU=!$RFݦ. A<*Yf2ZQAb3jF;ɻR^Lpf:S$E9cR]{z/x>G(K$yFRF;{t]wX%l5Bc^/gvGT#SJ_ۖu@6DdtjH8Z|ic ac.w2??~m12)TWd6?˕1vsŌ47ES^ͪɸXͧEJh*|A+ŵ-)-ˆ7GOFEptT,(w<vu5<F]Np,Ljl3TG /K{$<[hc!D@'+c!=,B(t/ShSی(ͤu@㒪;CHJ˚BϖXcPV9M)ax6%+ U]R$̃z[w`LT^*%S_D3z0hDXD7""K1aњse!t,=1ë^ŗ"r_ZN[QyOGZ!:Js'L6h$n!u_zezlG3("1.HؓRۍ6^dJY>J8f@넲C[RԳcL9(B,&RpF~=CVYT  ̭\F̳@24ЩfArVFl1 #uIŅQ+֜Ј-&VId-g(,Nj-DyK'1Mk\S\r &^AP6.\vg o[Ȓ P6+yd^UeO`z}CR9{yϟvoJҥٸE-ĤD&T)'K/'@(I$*:9!L1#>gTS7ϧX/}S(Qq{rX[ W"D _!|@!ATN(B %eMh0GV)˩D]D*5Hs.;bvP(meV{]#yow #5:5}8#$ݮ(M^2Y_6AJͪ&/Bei2(nV}MR2J{$Ϻ(֡YtO+팵&x)NEg/n"oѼCG9>O4,}bĒoSbq`}e%icq'Վ(h'*Vb NR\R$lIHTHEn&XU]=M$H[>THFl jBD$AiOףD&ٶ MȌ8cyIhrہrSWml2ζ6Dz7+Mn<:1i,/X`bc#0yYـl&JMfJ+dr(ˇ+\.ٚQgG1mW OhfbF=eU+|-gwi&kdNJڃ˰QsD1&bNx]S |Z;m: Zӊ I { 6-2xrƙφ&n^}>3F!!a:ka5jDJ" u/m;5qܮf-EP~EtFY"k  P|l>QYŚf^1{HYH$.zm|7/oyv&1]'%9mP8+slHH9hs^d#h=\W5.:VL}"4Օ`6vsš'g݋K>{y]]ᙺ ÒJ_pfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/16/edit-copy.svgz000066400000000000000000000212661231434177300266200ustar00rootroot00000000000000]ms8+t/: B@ÓUb'S[[ur-t]EIrb?PI0H$%3#`Fnۯηl:NoN@ȓN6L.oN]>e4goNƓv~ٴ?L:o/'F|%tsX$cYY);n"t]_:o<;ޜ|ϯzL`d?٧; w a=]V7^LGb2ܻQ5gX/>Ӭ?~|5_'Y~ǵ˫U߿zQs=zJu}n$f:Ȯg.V]).kd<٠mWk6Y!=]Ca0|s]6}x9/~~ɆoّyȘxW7'߆Ѳl_}Nnƾq}Gus]OY6Ag+jj= ?/ohKÓ.`r}'|;*?z_&_pO'f>i0y]}:ϓ>gɸ&kcv;K}ӄvZf/Y%n{5eBݒlwrak֛}FKzu^^{Dz4!חAo ׾5A}7;˵uj^$;~0_ v3"_F~sbeD`d:<͡0]Z@D'ϯ}7_ˡW,;xsBV2Vox8ˍg٪JPI{^Bw;e4ߺ#?rj=B@E3;ߝ]y$&G}RW>ʠrؗbi]vur4Dy!H8=>%ꪟhDC>BJ=$٪LWFѥgpB9|F>'5hKJPe8϶$V I<ϕì.>r"pQ}QDy]Q QD@&ɜo&4[rs "u(4 W']ɖ Mf%`1Z0@Up= 5=pO por:0OϦxW*51BJf;>7)4 ~pP;^v!e0n9{}?=2 /7 &sή"Y-X8 5nʑ6.J[nxݏ{t)XVkQVڵ-BXA P ;Nha^Z]E鬰, frTħh)xs۴?<:ϳ߃@+L֥SjmLڽqo{!jhWF8^H\^Ee2~` T~ϧKa Ӯ$fȺTJ$YN0$S-Krٵ:!H'Dᖅ A]KS?6-mJNҫel}}-i ȵ|25Nv]$ξZvkO@+\OtB+N49P4"72h$Y<+rIW5p*K+,zX !O$Ã`HC ]N*t3PU[Z-A;a},S.@ :X-O38DO aVV lHX6ȱl6UK3sl5v i"@RzB--SQAT@HBi^TVKk!AH`O$@*[AVqCS&+`GF2.<7Z8H|U e@R\*J;ՕE>Z!szJS>XR7>hO6m|H]^0.Cl1*#F*G|}>)ena6cnavW\s ےut٤n8׊f /#'IT鲳. =&4dЇ0 tf=^ B5Ь]hV1`BrGkxY K37\ /"@s\TQ? RC;B37LpIC֢5nӽ@ert/ktd-oMr  uKOO Q@o+h(}[i6yZU[Zz^kZZWϿw=|/~PJX__/o^1\fy/?k/$X<%; )o0xNSy!KBeJSE_̝?(pVfe2ҿ&N/v!!cgnN㳯y6Oݬ̧:q]^9',E@)kȭh!1V #$rAO2;Wj6"VF5`iH&WOю05O6,"+׊]@% O&Tz ؜('$i d5*yڕc}:~b~.0*۷^Ӓ^\2]z^Y|iR*Eb T'M%ŸPt Z[+؆,,[*LZ j%<&Ӗ H6&b#SUPF#T Wl}u`ƙ4󐔏|DŽJ%ח+(LԠB~4TՖw.܇[P)-X19WHi"g޿zvRCT&ENgyBrέo\l6-W|SYs:jܫ Ca xa$̽r[_e5#UR/[ TR_mr VMU!WiZP= ~AT9h1-)۟ QS-CE^J?CP6c B=XJ9+)wNm[ު"%O3!i0NY)5il[Ŧr0mW6X69::Unm$LUG(M8291`450J.a(X}Gfx@}d&V# 1TQoǪƌBicit,bE'S+^t/:lq۾7.V;._.ұu >{y9h_Y:Ac|tG[hG[{ FB>өLrBЎ;fHrοz*&+#XSv]ydM C)uMi~ Qb6McU^ƤfT<}@F?>"ݨKEQ?PbzOdyWyz:hm02`e`n! R$mEuP udl4KQ_JA$59rU6S%zF;viO\4֙mOյqLBG`:t&^3cUhȫ*UՔQ%;EE8pMToNpGxSr;=>UFǯ1>$\Iu1xGN^XS}䄟\QYe~*qT SCZw.!MUiJTI pAc,ISeCP#ibX9q41C@>%h͝* LQܨaޡh7D*HaMgt1\'Qb)Xxuj\IĠjTHwcu㏼l2ۃ9i1|k]pkP#'!w`g.úmppbZu8QĐNbV04tRe&G] 46+u/1H/ʽĠ>bp%Fcw/1Z'Zk{ t Tp/1ʽTo%嶰~%Fp\{}%hKtG^b}%Fұsv,RϽ~% r{ kGzPWzx['COpWU)O9d~v ]ib@6PTvU[;X:`SZ;6>ⶽ`47 `r0Onpld? ݹf`2 pthjaX6xprx gV :-$W_Y$ Xy`M*tNf5 T䬴dGwb,CTӪ(FTX*p!-_{л^^+f WqݕC.>Iĕ°Ҥ>%Ґ5!/ɐVXuR1d ddڀ*FF$4$o BzH=QK=1TA=zU>v&JdRTAW_uze7|5cz4HD=ЍM1iw`)9pJǡ+׎ dtUhJp:Bb|v X<ػv\9GyL:2U}A~h$\׈~cLYGa抽 q9O&*5hd#AQ*&M'-`A᪔V=4)`ៀV.4=vo?똞3ijEhi(M߫.gu=@=%Ksiz>\PSzzOLϪ!$w#}=Sjgpj";w*)y4MUj(g s&b4=$H4 dQ2K+j?ړ> irLf`Nھ)EYJn?DRcLMcbnU\$Sι .R唸ds*PT;U[zҴkmJ\ha~˴* u[J0MogN+Htn1m,yl⯈Y/CPE~EXWa`Kw&,FiS瞣0r#((p4k֎V= z4R89ˢҝ_7ٰ?~7/7Em؟{_[?Hv}cIcYukJ5hj m@i4 ƺ\hb |),7A0h«}_D3Vk<'xK h7J/zj#Ǔqy޴>mz:_FMo.Ξ ?gvٟ}O:B겻lsS*NjbQA,ܧ 2 C[? #t4kAW D:uqrZv*Oa?;BhaSA²th>HyY%G`O>`O|m[g^)ǿHUJcU!~ qP$JheβcĪs/~̈)tv\k̯3j"KZHxV!CMK=~>-4vgn^b6醴K׋}Mr>k/7M%,]n5uؐOVSƣUZob iB^Mo"n RBB#|.i,PzX.9dn?Rn:E[-FC*Jb++9X|K9ɔ26T2q051F*T&fʯ՜ð~+K?B%]w׫7-X,;n^SV lGUWU٣F}%ThQ8r07\QmΦil!wo|/UDl\"a4r3G n;uWxX^-W?uɋK25o|k"]]OTG{u h?H?;_5BDUў-٣]wߥDdBL``u?༱‹խQeH]/>~|p qv*0ޭ^͇wR)OXll֊d<˚~va_6M{W''M $ YDӤ"p|b|뤃 X3t%jv҆ v)B,6CRW`Pǎ 1Du&$=Lu&}׌3?uKXj&kZ-"G@ X-uP-K1CWT^s/BBY%F@H!P= p`s@`z=_8"]b~!z#]'jo뤋K,vKγGȹĒo&N.]\b鉯 FK,hd0N]T\bq͖HR#¥uE%c,㺬xm<-[7R=9sͿYoy\*SyzO1Ab裡G~fbNϫV ( .)j)>|Yϣa#%:dLRUR'aHcQFJVtD6& GUysdu٢pEUPEꍏ]K܇J9J:r1Q,(A\XՎŅ@>XKj8Is=Az5HvxjAJ9JPZRl8\JnАS|ƕ^!dPCv C<6A" bšZNbN2YU06ecFY =.I@@`CEQfEV%, dgSdtς.1)j`w&Ŝy3ϚCϹLa; &QN-c"bɖeAEuUIDų)TFS_)+J?mT5X,PCE"9)\!P ACOy4Zd2]!#'KKYTW:,E@K 2C!k'Ӥ 6B~_wu=n&ͮE4mTA^^@>Ѩ˨^kʻ p;-ݻQwƹf..n2fth'Z63,el"Ze0oyYzӦ8##s~<μ1hFm7$;1ud{ JMb%bIUjN۽QgY1|\NTE!,L|C&"+(?|Hfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/16/edit-cut.svgz000066400000000000000000000101111231434177300264240ustar00rootroot00000000000000]ms7|(ګڭM>^ֆ"U$K`HK+ʜ4^A76~nˋ x2hfi:,Wd<Ϛ7'ɟ8=yьWdbaOU3juu6}1\0_˟a0ng˳bZ&f\6rF'y'yr~8o??/ˢH>RwE!fl59-W5pWU1rY'eRg7LgSKU]لY}w1LV{l/잎Y^ϛhy6'>4?7'Y;MgwE(=k74/Gh2b2f6Z-g?ri3rr<@o@?i+j&U?zͪCt4o/V.VgW;Eo&Wyn=,~K_Ow"^r\ rQ6fxrb;OyvYڴӯJHV.WuPf x[/ξyW_< xՙ{lrU!`޸\[ vvpQ_'g8>Ŧ"1>Ŧ\d"XHټS챽]4J:Ki|1ףiT< k6_">5q.͆E%9-*mQH#ш4]hd?$쇤,|\\(tbq7KTnźC9d߱3I;+W޾(lpHJr8`wl[ߖwl~@b*vbkc/gl}}K_ ˵m_@B{ڻ fd>,|qvϊy?f?.O~Xgpx66A$&]^1` %"3괁7'JYzQ7'a{؊ IJtDnpcrL[zi kBsG>`!]>WͷV) LE$X W<eEB$:n;*I{wGy/;LFm/kc2DkIR2?Ƙ HT]4Zw~\n- ^oQxW}.v9F}JMRI:Ky4ac0b]I-{[}W},?j6[ įCW6b^}+iIfxOWwa%ӅW9k~nf$_-?5gYOEt-'l1M_ŪYL/oxaXo{} j}` -(?QL@I:0 AY$a/ 'm̃8Ym BttGa!0&8I CTXk51p$/{RXʐ<0&g1OR{$4Hʈ0g$!jBP&݇Em5H6eF@9Zb I "'5_^[j{Hl)$w (Rб$uC`bÒJJ]+T3X5  Y5OVےZ8!I}kt%c:dr'n1Cj몴xaT d/)ZƊ<\keu M#BŔ3q7%I<"'OKF$T# k 6h ,q%(`L5u":{^U+y-ׯ.y~/Tv9< iȽ͓ G'@nH̀=Yle92q#-9;fd`_{Z)dS5HSO-&BȆ$EuD.4۝ǭZnV M1E5:C"jK"! $1>AItؓtSl )F*o/X+{Kq=R53BA-ZO) i dAQHqP 7@?+Gܳg!i|Z:xٓ9w :7W㴭;$-5◱\pyNr)0nף[5}D;l&?_4~;}S(oIi}֑1o戜Ƀ=oꃩxWt}1izey*m]o1,ϱ;|p.e>ϤQ1ۅ~$}'<׭\|Rz(m)o ul}-??sdxz7AYg`Hoxsy.AH8!QE⺹};XUnT즠x1˅k"3^3bOlVx5~|]?uaE`v~S&gǫ...+ ]"wyQ*qp-uzNhYsx67'+9O-c~}u94kݔOy$t|`{IW6}~lَ{{Z=_p_ !'CnmV!] b Ji&ܦlCȞ=6+'7̋B%~?$Ц:`1ieU j0W ʑu@!E#gL+KUL@FR &$+bK-Q(h{X0ilkbH%G#`љ ތJRG!%TKn )2piCt0lOܾb\[iܣ \`ޒDE H "UL^$PgH([B 0` H2,)o{6%%D(c)i'yr)[%MXJ 1aĭQtхۑ(*Tbl`@N?%_u,\rQYCutVsBA\`b$|Ūyt.V0B4u.V1عXJa2yX s)(bSs0} _rip)K:^7 :LzW3UzM!jU~es~$*s%aW`@d T#켯pF 4yJby_eWLGԞ6E{W&:z[~}͇o?dzu1nOok;N0:ɰLh=G_Gnfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/16/edit-find-replace.svgz000066400000000000000000000223751231434177300302010ustar00rootroot00000000000000Yoɑ)x7}Q/1lc.m"$NS$AR-?ddq+Dl9W:Ϳ{}ml9?98<~?:;>;:9|}|ogËW[9|tWvw߾}/a;9{w7?V{|`oΎhzs|q wooׯOG2>;xQ׭y3shh[윿?{,۸V`t[l^,v slٟ,v'GG>`{Goޟ몖EF˿k .u OΞNz^_oߔ9y|C[^Okpݛ]{fw{d\SRRRA*A}?{R*GtWU+Y i:xn?Vj$y'b}W~~-0=p]xۃ}d$253 մT7dL-SF~ktū޺ޅBj! ڣz,Zh/Ҁ&v(Z@C4l)wj7gS#*/('r7pQzL;/Ws}”->05د+0מJK,MlYZh|1;Jo450$_WgT9>!7QdԾx9{\D{oћs+ƃ?n~8ܻ{ .[ߝbE@XNrDxq <ߏ[Z>">rcI7cE#c Yd`lODB{THFdO&D=7dž|F[CRm/,ap?jg}mDuuAng|[\FO7]ĈxcfRuo*ge~.҆.?Ѣ ?誣''҅ēsZ*$֭= 1N)M9Ilys׿S3te{3kbŪYlQIJR{ ODS!Y ٤fZQ..F 5DZBkup~Iba!E 10A'l oy Ul\Mb!ujsK\JmYe!ICA -xs1}/(ʓIM \ =@(eZHL YWSfM>rĦ淸ܣKe7{{{7ꊰ _jm㟮g)fO 3a.3?Tw>鯊~{}bi\cڳkׇUhoGG)'eGu/v/Q{YW2wfѷ~_*=:ɛ}]&y1^ 룯h&l|uv}~4C%upw*_}]goó7Gg'?Tpv8\=gtuX>B܆}rx}7gGgrzR?;{Qt34L[rEg5HтÐ ƞŘSQ)!B4Ј)[DA(J2%5bu*l #(j1bN,…9q(M pJnBB2ئΨ"Oa%~KGY뱲D|}e7h*H{䊶pմyASjnZL3nƎQuw ժl.jq^e%z)F伺HH XxHCb *Ik] ˝Zid%M;ݜ`fW}ǡ)`l*L/wڭ8)E[S6$爵[R|>=V{-tbUp0iWZ)aW˹z+SM? ߂ FI:LG!&~5bgI5QX@$+7&u܀'ep̏k z^tmB=p[3Xw`ݵ7|~Z_ON7NjG㮨5RtS]8;mǃ"~cDOF@"`Db ل}ka0aL׵l\yې9 7&42E -MI١m]KmZAt^;q*o(@> HהC#?PXZJ5=~c(9/M8:j ,R?a'&g}~ڮox633tlNLø3kV+ s (@ؽhblg,W@k7&jad(Csr,#㡦j!J%e̎pQFvF :0DCslܱEFhO 8EyMm!|+EESHQlNc7 !&X0B5Nh0,.E %5D@HBa+-8@:%Csb`TP2·`殃9@I\ Ctuy`dBTLHT|ֆe.-N< cJC $%u-mWaz [! NUT%( }Pah `L-(TF 0Q):xGsR&5(`4Xd/ML|ȚLUZ[2[|KA*U+.Hgm%dQ1tLy\xWD0ccQ(U6X:Q@XgAMj6T`D2ɖgӍ'\s)ň](cpbCIɪhL) 2զ4Z@sybA3M̱\430.]`(̙ÖD!dDbhJEqؠ(3`bBy1 SH66'x,5)e^JWKW\iJ_΍j&i}ȂZs̩MM5$xD\--u xpmF bJoL: CSR)E(-,9fdgʥ%8yW Eyem/XJICk,S DBIf`Q(h_r0E$VBKV ժ&g -RLAѰT:x]$&O-U44,Hq#W  ,: ȂbOD\Ȝ\snzƐR4by=4tba蘥qR10bDnN*-ąh:c9b< aTLZbl&X3S%} u^Xs6_1 `C) @k$Bg {ch^ɺhM,Vf7Y4L@3Jhh\5cb.TUpٱ3vl@e@E!g&^hQJ!CP1ӋAiQV$`]30ϣ.$Kk&ys1a>N@ "ʲCK`H&Lȇ؊)N>֙bT;ڦzTͲ3-)\:# bh~4QEK4!&:PWm G?Ԣ11s12΄iW{h6wAGhS&xGnL\]ZLnFw\( @; Yf 6C)*$Z( \L()! sd&ưN)0i}OFaH<`NDAnQEQ rq.S`LbbGq\rXI$w`2Q1bB-pY:-h11Z0S7j(!2-eھ8>xH)4}қ?u\X|{x {f"SFsNǗd|S B"il]qO3sƍX2tgU4ʓC5$듳&n1Ai%c\Y o8h*G2Hb#esW;￙oy6?XD8#x&PPGJ'=$hKT_a>J>*?ZAq1#ΙU26mmK>XL=}^i]sݟIKC]C&5~QĦHh<9ɋ9v~|]5{=~Ntϳ+[6^MM\9!)o1_ƫZ[ `▹#lSך.W*GB𪫠5qf_0,p=ZmwoCb̺eXE<ޕ\jR:^lvvϫhExpa6uq{|-܎UsmR\cR;Ul** jc7'L zD@[cPδx[3&T|uW󺻘OC'?dn~wM{qd#qRyS#iH_{zMD6{4Bp 'j-?"mn"G$1m؄ p_/O蠩{XD><7cѹ$ۉ1TߛD\k,c-3#5LtedIES:IrnvsZךy A뿪ڱ8/=τ"s[H"t|h "Ȟˆ LR̿r>aBrB%&ݨyKu+dtinĐa<.vfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/16/edit-find.svgz000066400000000000000000000170321231434177300265620ustar00rootroot00000000000000Mo#C_e>Hs6hqKDK "w%gH6 m8=Ӝy p=4nW4t2/7_?}vX/כp1]o?&a9[Orq3L~9V<ܾe2Gn?f2Ӯˋ7o㖗z0wy8 W͇pz˫q󋹣àsga[^:c"}#m$9}9Om7o/l=?-wy +^|7a;|pj{1%<~X{{sW?5>{<]> Jd{dXvzy6o>n>~w3 ==v7ri?|~w͸F|xøp9_|1z:ffܗe":J~:Ei2r1EO.psD]L?W8ܮޭƕ@<|2/>N.~?nՈrs}=^tq}xؾׇrPihxpx|wxj3yn|j;yI8<^f Gg__!@F d@Bsb:<cQ 1gsT3FU릎*wSG~KS0-:c/hR*-~J{˓BPɠZCħ%!oHvCG:2:%Bv|{!OQ/bȁOJ1~+OO&\QNo`//[yRH¸|8#EѬҢ 2'&Itqd:}P:"!Hmp"NSxBهD)`>W20% ("f? PaͻBSY] M=/؜d r/Bx298T He0v*ޕ]М !R !W\vB.}]Ԛ l sX )]zv\]@\sA%$I хT 1]Ե T|]9(:w uS]@ @9Bs!$KH!wGuĮ]S!Bk.\ !v!Bȹ^R.4BPS545$?$[BJs9b.Xv!] JuA9\h S.pvt!V D]@ Rurc.p&q&9,"gC߬!VxR '~}ᤩZ9RޚdZ (U~39(,<=zGϬEu}ݻpoo{Wd&f˰xs=O{ۼ[SvSϙL ]d9)k.$WGϙf<*9Iϙ$炨%n݅.$ׅetB4UP\`sK.:^.v*His.sb. ;R e@v!*ׅ\,0k.8X EPgPMTuu34 ĖH.J$57 Pvu/ js R:7+A`G T+AR dS0W$n絠ک!!c$,KK B2.A9 $$ܫ"+kY}JM+A$ C0:J\e PM#𕀰9 IR^%(B%S0W$U7 !$ةORI@.%5NUPnNa? D,!*AG +AIJ JW$`s8JZe L#9 IB :J\e @L +A$Kʙ!Qҧ:JP ((e5NSʪI 'AKH { +AQ@L@9 $`ګ%Xe L#9 $@ܫ(+hY}JL +A$,nhVKHJ(p(%P.%PN3J -!%TM'*+@Y>%SD|%mNV? "XBث%R$e HMc9 $@ګ+A JW$p8JZI(AХ)[J2J&AJ&AJj IS I^ )JWIOȖ*ATG ꕀ,ct,6'{Qz%R ht 7' @{ @2%]J R:+@khYN%? D^ D$Sd*]bW $IsD %$^%t@^ )JWI@'%$^% u^  )J+jsIR^%(Aj%YĬ}JJܚQMb)v*A'AX $RLK*AThN? -! *JZ BDS"J9 H$ Ы0+rY>%@S|% lN~W :JPe L5 XM`3v*g+AK XMSt@OKHJQJ,A>%E@9 $`ܫ,+jY>% S}% iN ~Ы +pY>%SJ//O_>+BQRRRST\% $ %J'^ %ڧb*I'%$^%(Az%O{F]|Y!tF @YfmѶvdId=>l6٦ilYYuu֣9L_f|q|_&ᘀ11J"yL@L8r:Rwc<(HuuV_n^-WϯWիOMYdeoȇ“O lO/NCy+ʼn|E>Z9|q5t٫F~|]wjl^Ĝ'GJhhqufSNj&'4C|c5$)6OMR'h'Uz7ۛ'oV4Ce_Y݋v'X5HZEi5)@:eJ)a/VQZ?b ك#< am*'X4CrүPQrTPG 2HOdB(dj3SCy٩$8Dx'(O~S;Q(tGx,ʶ>1~m-opXyMeG/#8#Z9qmyyq'Di_)-O [ws&7uT9GRQDUA1HEXVr:Sz$= q #IDE?" >֛jy۫vzy6ъfje4 2W`䪞wUOE8 A9׋-ML_Ty^(N$O|yxEaN%iG-GE2gJ1TnX [[֝;Șȕ́C}JG0u3()z=XcV<;[6W'.VgW6h/FU(u^^VQZTm^]eZ}nZ2F#zW p}ZWж~CϮ^%?{^.VPn6n^f*f[ry˫m~USvik"SMGkuyi ]4V˳rcsgի{efXz Zwy;z1o㻋̭6:`vzn}gϮ߯/MSIгܞ_\gݶg}GgMbbru'6מ,xYө5>==0yPrUц'H-OZXp]y؁6د;ghvSY۫wggg^_7<<{~(]Zʹ'kAU5vAӻ3UߌO؈V$eky:^b^޾]}S0իs~;+S$.HN'?5TiR\,lMJm-w 86 a p0penP,šm6%O皶(M*y=Sm1tslD\V*I4 (ӧJ͒D M*6e}jlrKF #ZvfLw0V,jmRZJ9"+*)5'&U !& =щwH{f|{ 97&N=]X=_}X54^_ɧ sqD6lHyCɗg߮/h3W_eΖM^/?5Cr5N!;Je:cf\fUe+3i-sy}㼱q^8olz[Ȕlߓg8U+jrA00AcP+YJ e 9hןV$P4M¬__įrWSRDZHGFqvнsaiw `|1h YvGK/a?)އ5HHK;QTw'6{I&mj7[]Dgm;_̶eȧ f9-f8-g8-w"܉pH*ڕi]c?`㚚q d6 8Yی}cp]!L;5+(н~(FJWT\p/J4I2eE:1^(c8bqv#cжՎP|zb"s< 9G;eLtDU#4%t5 e\26M}銦 V)+ص-%͒N%"m4[󑰰ڈĒp^ 4u*2V\BfQ!eSΊV[\52]6M~ۍR fssc_K]_ 讣j%:I4gD>YS2@fT3eX5tpFPO|$7m/oO6-6@j4jߟjJҝQF7EDM_c@ӹ.׷ GeY]6bhPDثet( yoS]{v5R$|E: :tL;LQ<*f t5XE%nR$PX!8WXp $#ъrpT0Ũf9`IR fm:GohD;fRP1w\=?RIӞ!;u}V2"pňc7c u=$;<&۬ 'G=T tEP2(%lŪʟ]jϭU ~nJy>Xu5Q* }?p%Pt=Ή}H(.,0F+ Wh<Χ,y`q\5AG ^0D_fn~BFcG\|vNJ jijD>ʟJ;:ǁQ3O(DŇ_{_xtcT~h%6Zbl 6oh `1\ sÕQA>KETB)FE4釻,vG`MٷKNf &3v vM$|9W ;,D}:[YwϢ5D%O;P1#6yۿ4Mh$ eh0MvmZq&DjE@n@ I9o`hQ ݊ڭK9 &Po,`Z+ĮT 2w6u!u~0)j) S+*Lqz|r|3GU.:}\4OmL=pbAIޏ}b5_DXQЅ"4#H:| 7ByPRv7-ciDZtD 9gݢbaN} X Pcyw/0hj,$83xt&6XykDž?sԊJ<þ~WF87c?}i%-;0]go|-q_=ݳ>n ,ӵ9F{TD+K˓߻Q%~;^t7HvH;JT{;5\*m:lfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/16/edit-paste.svgz000066400000000000000000000311611231434177300267550ustar00rootroot00000000000000}k9,0ffp} Ѓv dTd_q))T*2rz|2 F74}ֳh,foRw7ZoƋ|[,?i:z7Ӈї/'O7_|flpj?o֟?a4QۻOyxar?Ognd>O'˧b\Xzx{|!g^H_KZ}hl{U0~O~+: w˥ zi5>қl1_v7S=lJrRnIy<_f$ …ӏهOmwB2~|KVH^s {{7}mz3ͨo//?m?m5}L^JὬR/&}ͧyqOقjZҏ~t&$h|~>O6piL Yͯۛ?7593n-xaF$r>N/^:]|>,R[lΉ#| ?KKkzJҵ /eFJ]io>?=qV1l7t8.l'lm7CK.Ic0q\bo0ٸd%]\ږGϨqpɽѧM2ʹֺvY)QŎ5ZǗq(p)h$T]j#ˎ)Ǵ})U8N~&8bR7q>m_ kف&I{*pV ;)jWRɝ=F8˝#wbe C}Ju~@ ӄ/QDgy(TH'p;yy{0QKVoθd.~(>x&xez0SKQD[#^5lC&tw{K\{j∈ďZj=ѫX˽Ŋ}JjpwX_pxq+͖KU%.֎kKKHN`oЪY*~sVԖJ=JF={*gmui禼9SBP09px>0j-Ehs=k4o.hp*pd+c͝ޓcBRdvlZyկA[5}#-]ci_[ zhjtިp0GChCӑ 15(JRrf3mS/夡3=kAdfT%՘Wna1-ɪrd 鹫rKg^R*gɑ&O^dY%bORNm(~j:c]f:j_RKPCNjĘ1p Rr.Rl߭wkV98z=/~Zz!O~~7$h'(%PFt^#3gЇofG9ۦ{&BOS*k 3y$u$ud ŽjC(+M0|ƍPQF>> V҇Nc|i񚝑F; PG'^ A`撠 Ҭ}Xl08{ph;?Hn1V)""ʹ:HqBKruj>KW̼ TuHW+-1I,D34i=T ā ^*wx:I,f$ov? @0G:ws5{X0!Os,}X|:G8[^E/]ZSۢ4_v*E*q1C*SqgY2z&W^90e5gچ,}yّ^KC#!fha3oqb/G8BfD@6¸5~#0g뢦bpWGaDvL(Of62+U^< ؾYmu SwZ$>#Ee&YVX2=xyA=QkqKZ W Ց3 'Gm.! sZh 2(#Bsti5گ*g4Wvĵ< k' Rv?*fbΒUߜyKS},Qf,rId/Ycf1]wɠdY˿WTѼ,wUUj2-.yhVthN-՘8@kmuݤ VĪty9MOχ'[A2bV3!QyE*6Z/8?\jG6`jޓʼ?vmd[Vpk8t@0ϲaU̺s/t?+>6ᚆ7۫'9ksu\;m`2a>O~j- c_wj+#V73?)yR2~ ~G[,fk^!mhHv ~.pNZ+ߊIt_n[7~KSYoOKwww8 U!'m{uɡ&-ļAK!IB6Ч{+ zo*U3lsԎX+ \28>F\kKj}G= T7*^S`cJ>Dtlj)0ױT |xѧ^BCV?]#(#8% -hZKPN_;\RB]R^i^WzPGZJ_F8_)%i޸ㆮ_jK[R"S??L@{(7/W [µ"=l)Ad ?OiƮɗvg9+e/oDpUeIs$YQN4-|} 3ya9Xi\T_Z|uJ l GڽW_Ӵt1o]_f E+bOlK8^GW r/ it|?0_#t?yH%<.>_fOoXETV˧\M2n6Ň}|Exmwq}-NůՋ!GߣG]m7F/hqDuU^zMQjW .YOuV+aX/9o"]4݌ƛWoVo;L^{OMv`O=L^Cco~= zynTFK?v5 Fb|<7/(d_mCm-j}-oy>Ԅ|>~?;j@'9[[Q"QːXP'#xi5-D @թ#N}iqlad &J&:NrXlNv.)/4w`8)M+kj?qoJlH#Odp:R\k9BS~NFFM(IDk4 yn"xqڞo,I˜T[EA#)V2Wn]s G04N}Z\2/K[DH 0Уq pzVyp{mTo΢qnY-=%ZL[NE)z_ #ƏGZ 5sm%|m͟oRks{M$&׬rL=K۲~]ߢ{جpo2,X3R6Җ\?TLKDxEz]fgzlQ#B˼z;!Qi983C潊2_Smu \v|vž&էy4H/LeiYznI--mUFUI={%W-(jzZA:茸8{6eW5R饌uBk<;֖ *Ӊ` nUb"{vװ +]cKQ@ai=ǐ0ATT.._ںr ^MS@M'4u_Pxm  ?u}VwZܴR~hӪM>TJ&O wZ3^u/h#2M@tz(Ŀ(Q.NXm 6&b'sܒw S%PgCBc'%c ?Z'˒ 6+,O$3bdQ"htb?"cH8^KGHjJY/FԶN1vU@Y0m Bx݉D:`AD50#Yu?-2睯7Q: {4y.`Ph^D>;2T)ԲȜ ă ,[1[Z #-?TmPb[,úui{1.D7p/RGT SXa(pGw~m9L]hi@Q?׍͗C(W_ejLuSckI=\0`&~ w7/P:bHܩo1 ""P"ΪFhUvqB8w)E0FGM{ Hf&0 TR.i#∉mVdz0Pa*R< 7zl"Hأnuh}R Y}`bDmk۹"|II $P$4tqxuhB˝j^# b0c{ɪ: `׹}`fH[}j׭pV1D4d|:Hmm}!9%* =#PVl2IbcջYCI6\(.RATqHUFo ԰I zk^Z"4oÞAM@]sHm0ɰG&dfB)~\vZte=JZaG]дk爤ʁkv_.oc.g%`R_Q׶0 ohr#+EOdZA|f@$29Rd&iTNXsh Kh:NfO{ѴkB^ڡ YcE-4 XZ ҋc֒T,TJ b V+hĆӆ-Us>l`D?hlfdvKy} Chֵ1IEb-hvjty{/H:Vp_pyeovJ56'^!9fmq] cT׎lŜ{< N{S JD@Mۺ=y/Nx!˼Hxiir)>TȆ/t2IF.o+4YR! C:y-2NJ}9BMc*Z%TDሇAVS1Byoy߃J!J~ZsL,L78_ x}0f(Xc~]@]I[3-WCtMOc\ [ c?4W բn؈Q9[` k3뭁H0JԶ_YoK+go p\Z,`nZI6XXR j>;U2XcUH*%Ғ S Q[kLX.ca0n%PDv2[̐.4LI;od ͥX^=x8&3Đ$-f8!4m5'-wz>L+(SR x3SJCLf7*pW\,|[+mוt4!D!/լ_UӗjDqS$Sx{wq44{^|<#\_wl۸:JEcMR4*9rΪRH-6)5Ӕy4"4ȅ|ݨj EKDh%ϛu"+ЊWi<Mޣm=zYö[{o,u*P׶,\T5) [69Jz$bxDy0MM?.T)gͫ@jSR}6ӗ}Gȉ̔E!~i›.fެNj&3M&{m_~pXz+ǫx\aj|=ZIlϫO돣OV-hwl҄5u0T& d!5|yW߷w܁AC܃ߖ]{<_#}y5]OWyYipAl/_1$4~}XO5$X/4HqzJ7fD3TtA۴x(`r2lߪH3D$$EMWb&\$3iԻjHG"̤ΨNexS{4MҶ>$3eֺqF# ]ce&IonH6s hHYUm)^"ߖ7e3'b^*K!4>a> r'u=rΤ~=:E;3 U*<ɘJY11FԶ0<;3镳hɩ4gnETD􌰃v)U)rМ.uH.A2DjY§zCdI;]&,(GR1B !}MD .FIVg&X9]Hn-$6 )|[U}ɨ8պmȈ!6ɐ#WKHcӽ ]x~46T6ilR7XH\FfP: v64ڤWN,ˑ(e3\UkHls#!-˴FܴZ &ҙZ"Z[0peI\LmF䶉Z >fB R8蚃Ftm}# -oYǸ "7iaMqa[d9Ih5ZrynNXem#u#T5!mإҽʂd7CcEDA+q&J=g]f&]dXDZAYQjiE伹@o;8"a:4R o!"MsRw(cNPq2Bdy_ч82 pu&9Ζ7ݞ}EͥҵWDADmBuɨptudYp.2[dCfƙZ4$N%AޱY"a$"QdGȖ<:98hhFqwtS$^P 5sam}udWBs&"bƉERhh**e2Ƅ34բa,ӭD$p Ffn!Ɗ^T#P"xIж{ q.{;C`b`&،8JJ- BFIA"1y[-bJ洮.K$j3U# Q)gӳ}< @]ГFpOt )Tt O΅SqqIHDf{'Drb$"SN:86S޸3ҙԇnY+u;K5ӟtBMϯ1m$,X,LE&z,z*7;.XR߃fHseGbHʕ 3llP~"o:g8 zñ5[\R%sr\e-uKB ՞ƫ̱|=Y1̪Frwt*ago'JnQu\/952X:ED=<@-餃i{a):LUU[9TfLaB:Y *Y`LaK%3qaEŷuÏ)RivwV,JTQ_‡:Ww5ŰF&&iun1{yuCEpfLd>dad9FVgLƹHH(cX̀ SH2T< Nhx8@sd^n61R] $+1u D, ^baȴ3bFHg̪.p8%H}KOo&忦J>Y.*|Z}o>+wQnsbl0[=x;lB]%Z@5Z@WZIWky`/*0kI–m2Ap5^^r|9Om]tZ2I@ϲ:gE.lf4iIψA^8], [~KIrBZBc5R8͌'nm<%mn$) M㗴q g:5AVI _s{!շQq>X}3^[l󘴴He圦w;괔Μ6==jCf}׿b@n.b)ΙD0hI$ q 7Lʋ6 Js>FIG,^ ęh1  S"sJ@6Θψi*W-h#.S.m_A-3U> 9 e_\:NetB:.\ Q؆‰ك4CK 2 c+vz9Zt>`HΙe&NJg}(з'֋.{} qY|k@&]'-FۢŨqc : NhzXcB͢XL3pg'& ISFxQ0Iʈ瘜 m.f3VxIPd8gNzqOmp*ȌS 9KNj;wgc(qU֌Dpݤ .W@`R$|!' a&*Gf' ˀ AO %]nQ<3@Yd ҊI-JFCD^#YlEK֯ﻝo_Q64֞ò}8/JU`:ШFu?REEqU 4HhѦ\EQEk]u/m>ZjsO:Z# 4ڑ_+HLjʬt4jr2p{6WЎ2_ 8iAkQi P٭%yu: *e)_#DtETXs2Wcu}Cq%&a~N$`ef@[e~gbM?+VXRqYIwՄc dDe^â 'Xl-jk &\(<G| X'0'\|uC¡6P3J}綏!aU/di Y"gm᩷cv!$!X50mGEEР3‘3QXԣP'6V/IٟaC'U>d"@;U>/ͻURέn]`ƛf*7$~;HmЄ^ą^kCsh#Wi"0[xa񮌸y,Ae׺jN 47iWv ~R-Z&Bܯ??>SUfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/16/edit-redo.svgz000066400000000000000000000136721231434177300266010ustar00rootroot00000000000000\[s[9r~_h_֕#}֎7UTR[5[Jv+yۢ%VFT"5!uxHcze[#EćFhw|4]ݜ_^~y?Mz_xowbv>ywx3l7ɻwL7wO^LO3LʴGKFw~v2]/'h ?^gvNyw~QHFqP?\/]Zk(OJ@iT﯊>ֻ>{Qma He,]'klVlvol~;=OVx_v|Xzk]~ڗ/|Y[{ʉuخw$#3:9+k++_.f7L1˛⯳uϧ4wq,2ɛO'Ǔ2jjv2=['ӫ-/.f+~mbZ w糋y%wP{7=^GSME_泣M?Mż޾\㳛g9A7EŇSXrsq1.'7';&ɾ; D'M66q20^~8Jĸ伥Ts- vfkjrjDzjDj|hQE{Y^-9'Y'0KK%~sy'oc|=+7O >Mvlk&hVq^\(}0쳍p-ai)x^]\g|B=Wv6p?A3!z<|Jƪ۬!gDjik؟gIJ9<[Lj Ο.ڭÓ/ڴ7wr۱ݭmC- CAgEH呧e)ňt# yI,xI+H)yGТ*ㄠgA ˢ!Q9!|YՅSI[c'mAcn1uŠr/T"CHi-]cz?_N꾱pοt9]n|ų on HyƬ_#:лu]1*(8rbn }F@уcLIcv'LaTry9P-K0&zRpZL~xڨ$dd F fdO䥛4epx1PKj9\띴#]-ÄFn`a 5R$ʤ:N8qyOś"J}Vh!Ey%{r2Bxx&Xh4/;s@1f†I=G=!zq ld&W4=G ij]lkl5i6Řt[O95({*'--$hdq UlO!" r6Ү%1(r'ňAT0u 5+@Gɕ^<:>0xHc$LEk"F xG|xr!N_$%!Q$G y ֈ(%U<;$b e `aǓf([ٸlHmg.u@R:PJ)6,C@-%o+|I 3%(ӦYq$ar2`gN&?c.KR yF&8˯f d] ;f *2#)}hD) \0"` Q/9'!ɋ%AO,tlI3dUԥӘl7/$d.(2mo7|w:^xqvz}s=[?nWjV)wzws}}{Yڮ.˟S^a3˧#Wo?M91"a3&6d pW90EYRFT5i37a=eR4a4%%uB$.㺓=[W'upԥiR%K{R E'pm5V% YĬ)S7#0JO!chy[{ X")!D4IL\ALI ԍCIaa=SOACOD!H"=Գ"!hbY;dYVy5X*8;TQ@LQhΎ AcUTGjWՒKڱ}V6iz#>~|p;+l>?;gT_G;,˅-gٚwWOno:WŖl.sg*xC /vI$qޙ`G{Nx7m,t{(T1ȏ1Wc0ڠN^5JfZWd2bߺDm<5GvR+33IxLrzw78$m[4ƖC`I:ͦ(D'ɲW8(uDе,%YB%[29_ogeӮ P 2.'S`莇C7Y0eln7i8Ka>yM(߉eKq4!+&%@W~/]/MF*5Kd--(H"&b2[ l66D}6sR`70"'>WJ,]DrBpK߂k2};;rnW/k|vu-]7*\9߼+Vrl8l߭B?BoF}5\M?̊OSw۸!~O.Uei .K{WJ^g+]Ƿ%ZVAwaƵWnwy]x)~`%(#]Ot0۷|&BP~xvv?7w?1L_ܗ|VW<]m1\~󻓡cD\cqFlW.J˿o/렓^uQ _.t9Jc%hkP?ͮn&m7oK4Uݫ1]Zyˣ7ECyo+;\Q&)͔SIO]5,2Ya}93i$&'rt]'Ĕ`zDLjtI%:, A嚜9^bbZ]M;4IQ3Yb3w蛃 2t+6 B{i,e1l&hU&A1Ds2HR<0ÜӜ@sT:VN!QòtIV)O{i5XR=e0`=j\;ETĢkX2(< AcـB6H&u""R@uGqM[,>ĞA>;ȯ k5Uj+QgO =7Mr5d =_R_|δW<~N䳃|v鉤J ='ک.K,NGN%H(pӃVك>{g:4SISymMMl&mcm,HH)oP"n{գ /'SeĠVͲvE'Cdti)b 7?69fD6'i#>A'CMJꋿO7ft F+4'iG8e ۬8>݆E `Cp>wN1DwHUYPJޢ{dh>bS thSBb;{"Q\Ul62IknvYv;.RjV=P< nFtLij\R691yX[u\)kņkmKl.I"Q;Fmj^繚7DR J$똥ykA\[3Y:N /Wjq[b|%czcF,p8I؉ vi6*x3<'=s|})'6Ă@v4N%epJmK,=<'fTp 愪^1crB;sZ`F.d y"nBvZ"e)IlH@>sf&&s`Z’#j揨uτ6X˾:7L:VAˆR$R&Z?ɘ,JCj|6xC^*?zƅvpMYW'$[VZÔetZE ˦ 3Zb%c$CIC%G]8kidm>e3?`mՐV:{{fԡlKHF^ #6֒f1z@eyy`}>m+4XJr au," PIXϲ$R^6⛿I;g5s~VL eM1J=!?銇MZ)2lR|,6 ʃET8` sKJCa0""iÜLFh(5Lĵa`!8hj嘂 Z25D+9`H&m4&6:wCX, l C(KE#gVz1I$\sIqPb&fan(gI로3OV6[߭# D-0Dv\0 X3mi{(͐%shB[RIU"m4$f 0ER,2kҪ9!ޥ?J(v4$+&%̲ZO4 +hNC[.sT]0v} :$ űsnjcK.:u*ȡ$0ž+aJQ sQ!{%ꄮnYְ4h{ kLy~Xk?ܧq$,r3>4%'F'5V)=$G3|rb1A-b=''k*ԛju`9',(=sT U 9eI5^GK"<$8zMUj@S1`)h r`Ar&X>"'KE3T `!S)ɰ@7c1H.t<Cޟi $uRv%yZd[EFW&[maY^<9ʗ˟y focuswriter-1.4.5/resources/images/icons/oxygen/scalable/16/edit-rename.svgz000066400000000000000000000116271231434177300271150ustar00rootroot00000000000000}uFedit-clear.svgz]ms_~HڛJ&r.lRw\49DIecIá|H[6.4hF>ˋ|1]8l2:qyhGj2]U/fwc8<~^tǫuu7ɻwfgGax{,jq:}q|~uƳ˓?/.nh9@ 丩7W_O'EuY]-'`}ܰ^y5r'gL'Ocp^-Y몊1Ɠ\pu"ԥ]ᣮgfpd9YinJ3x5ףq8 &7ق7ͲN^gw=8뢻fWKQPLfףEɛeu2NN>Wd 'U2J5.j4 |OE{r.˥h2ibѺN]k]^,?\d8.fog4>&2S3;;[TZFj޽.dA#=0B)1:F\ LJt_ҭ%0̠֟Hþ̀xvayXOǰl]@/-~JLIPh,݆tKߨDj& a}xbQbw+Ap5 zE5.ލ>,7A7t #zVp$;\V%u@<>u"r!AoF%򄮌dIz0O9736|Bp?FUf Sm{[ԧ3(Ao(!>(fgRœפE]=#yӈtlVn!/>%j›E5vE ?磫EN]8-D`t0@)j-WC,%QISzv/a1qH~xqz{;qxGe# aTe@jH5Ikxy0(r&KOyzTQ|31sPp!fC 6& dR5Cp2EN޳6o9EN0+!('!kBPNJ!z6ɋr1M#,e{` @ɞ=fw,ԧ),WSm)=i0S575`)(* C$w{Hq%ٌkLV7^VY!k$a  @"{jkA i$[D- o *r,T"Sj9nbߤhIG5⭛{noajˠ1Gu{vq͞E-qzlw!xc`t .),݌[l]4Y˞SP\W홊Qq؈hP(J$,@s`-Ԯ#Eɣ!jBhc$ 0 Qt;yZrȏ9l{r* FIkc0&25Ԥі|1$P!1r'YeeMI T엽=4/ B%ɎJ7p%j8!'K!WJSBISĻ/C 1PѰA !t+1E&O݊'<ozD}ÝyDnCq@Q4JsT-R|L5*] S K|uQ;f䔶>$L5YZdݵ}\\hpD ͺP,LzjiI$STWi I`ĻL '}҆mŽek0A}mk0 Jt0u2́P f++ab_ &D=nOe)`b dĚ@ۻQ/bJ{mLe^\&0Vl@l)$cVBnH~;-왷*8qjaTVLPZc;nrfjnPr%F))#FѣAc4xvmP2P{ZCY$[\m|ed1+)4sK%U$: SR 03oTيNCL ޞr`#l[1X!؂850gv NA v'd~rz¬ŧ{yY9Sf吱\]!o!+0+Qo( Jv+" Xju[ :nbz0HV5xxmh a$D~08wMAARĴ}bvX4z˴:X +PۼM6W/!dJ [`QOݣ'j NhO' ɼymG3ƾk{HB?9q EIH_g`CLvܩ.2xwkOEr<8Dimטcg{иsuF_֩AwMJ?P#O zgc3ߎ(=oή.ҽ$1Q̰[eMHꪝ;>wW3Na'uB[1fߟ~ϮG[FKA\$=r,>B>n:yg|!7b)v6;sՑ*>"l4R=msEi ԣn}gh;7ѝytG:2)CQZ0'i5r xF[gmv٬l崓,ضdORMϯոIT{3W?_VWգ}Xیji^zGh^V?|5]6zWh5xk^T'OR_=MMQp0 i۩ 6Em; bmGoUN3 x=7CCFzVW,wmoygz׼^yU Y-x=O]Q?[Ѽ[xeJ屻|&϶ww2e($z 'ԛ<#;};c\;8jd6,Uo>uRw:%tR-gUqURX2벺wӫFpvۢ yEuuzuy}[ԬW/h2Zy?~O{6ՅazvUMƧeڌM/ag~=󓦠żp]eBٻww'=w9-N~Z"Vq^;.o*xZm_C<ɭ<]e&/I`U䖒EGjtYQS[-4M4nz6Hprg[~A?lr3^$C_?L5( >_eFV2f~ӛѼvgncx݅b7wޤ;oLWuue)~~cՁ>FP lٌv6C) )U`LF4eMވ||7m%LR.+`{ w*wL,yzU{_z ]|`0m|L_-y1W,@=N :7 `m+$Q9KH86%Ldj ϩhL!x)=pBݞnC@@­NͿ{&ZغN yQRw<5%m)[wIqA%sDN^akA ]8(6`d5l8.Kܪg7tڢE8xdH1t?[yޓF/FI/1ueA#[&w16mkhKH@<h#N$L2;)>v܂$) m۝P Lk+& F j&KuL:7᭾6Xb`\6=d S;nyҞQ9D @_w<ڞj  -Q6<Y S@;m_w;p`0݄{yn{ fDyCOۅWW?UL?d~lVH`́BH9і^u k@đ[\#0vP?uY8e r z'|{u7?l/УvOܚN߼X_]z~v|syy ?cOO7'7ϼo^Uwv?Eܸέ7'?_UgyMW絛~8އO_x׾WO7/ᛛÕYݜsr'o6NכoNN7ok?}QKggnEzy~|70WW?\x?](=?99lmɦ'~sjt*ĝ[v)ݜ\&~}Ƶ'%{ a#Wҟuy~L_qVn, Oſ}^ņVW'ePX|^|y|]뾻6n36o@䀺{\Br *#ݺ=4f~,7]]]:YtQ/qoog:;^_6:pooWZ;/+Q|sr^" -# m#wGZEsF3vܫHn ? +buV?6Wgg VWtR)Ư8  W`#[xk,X֛_Rfk[̗|5y~װo~Ow3F>|#`:b>v`>R|~}>){ =P>űuG Ȩu лO@N_Lo)n*ŏ'Aw$&o'n̾˃om۷񏓋{_ g;ېo\W$On5{p.c%cñXU ~I9 umG.5/@3,D{gKDy>N("ppli\s-!\0H ˾+%Ĭs6ViT@n: ?Y/[o7STCdh6:C WNW"v9v1/-KwG$ykC4h>F_AB 8xٔ1~)c6PT"UbrMzĂ7&>pQ.;ǭ}٥zǪ3+q[hs_js'8 `&SPi۰.ALblx qn9;n-"^D\/"JĬ}))L 8@&ZJhJ%z$0y)4I뜍M55ȩ &_`B`ڬ:Ύ76wz;sѻtZ.cz8ZQGhZy u 6Yy!n3nV΃_~x񢼎(͜č!s[\ڊDe?yO#ѭ/H|8́/Xxyfj XP=(L[@Ta3$!?9;_3>-WIi.3yנͷ3wz_u OTt8y彿e߭Kݼv)`Qĵ6 Ĝkp*Loǫt)I@AH5Aը'ɦYSdVHM!KgXB[[Ѷ[D^";Ӕp[c(ܐE8 H~9v(u  7:e=)5<욗[\ScyNw[3@l-#0l-<a+/:j1, l c.Y2bc'0Yu%P`:Ƴk^n]CqNXU{|qrۧt;(]j툸8莙I!qy!-$?~ſv |&t7ΰ(osg?p~8]ඟ |gkK>ss74)w4nknm^X&r P6.wכ?j*U?lh!ئ}}՛W/X#|%|系BTyqY>s/>_>WX?o}7w}OC*uq&K@ʖuv aI_8jy7Hζ0.gqCb:kuf=C6ͪ?>8<'{9~g%5ƥuq `i" cQ8Oð N~_}_];+tu/k[cymkyp$8$0Lwn-%c.j׵O6g1ٙ< ]!axH|M@A7{lC:}kt=85ەЕ̮yu &ٰZ w8[ G2XCbBs#wo_OI[zvApkߢTt}jd^֦S՞#G`o{#LJB'ki?"e>)U f{OK ~ɻoO.С>'7!Z%K/n @sNE0v *:!A[iGu:9b4 kA[msMuBB\][磻Ϩ~[1u d 'F7d-}#ŵv$EW֯1n᳋>$IJ{LɈStd%ĩtt^c[)c^fCZT*ȂUuC.#&RK,!n-!OrԴF5(~eX,9a28`VpTGN{tD~w+Ft Hgq fʹTT_ZEQP[M) ddI$-(XDZlFRFT@pB,0a>{٤՝6BmHo&&*+B#'M"/뮐[3`-DP3.|xCZZ%󢟆,ӰJה-uwwnZP7*M5FN1ȬKO(u!uMA$g~1@iR%׀PNJD&$<Ǎӝ9>d۲<5 N;qs.{x26iUlNnǭU=9,ߗ3@n>V#]{n:me{ 9p Gp5٧]B K'zzbLPם7?=Ez͗ }vE;m罨,b&g[xwOY.-U-+;uNE-/ a%lǭ^Ļ*T6..{@N_&8߾]#?&Qv̱#.َ]f#Wk8=Fv#ݎgq#ob]gKlmĄ'w.V;O}N&,;5;/.t?Q}7ڞ\"W'0mbzPQ\L@+A-9Sܘ`qwdo"cX3E`afF298)d.ܒr7O9?ɜ#r"!4 xM7Αl[0}) YͣLa븽3(xf,nXe6'Ud2yO!հs(q{#5,o$ku'SzՏ8lk{pv^ԪO!^t3"L Ҥo^Ƅ+Ղ;!4Ӭ}߅'_}p}>Ftsd6dMvaSYc!Ɠ(飵~ׯ77'g'7'*etGb秛VҦ*-0`ǔ79lNﴟ+{<W>_yy\A"^F~|~ =_]#|u;%kPxF 0Uopcwxv7Ҳ\l~Kw?u)+,jHR|zݓ;D"uq/BPNew >z2[io¾;o_;Y=`mǝ~_;eNt?=/u8%[oRn.k`W,2ka-D7ZmHoyLvϹ)ٰwK-+/f Vg]M]'|wg @{N_Y;}3)+{ǝJ)=wګhaUI{{w~d1G$ Y1ki;B\|RZdL!ݿC=>z`- Ls]cc`v~Òٰ9nR>lXR@Mrٯٻ]ʋDž;U)-S{~[i>u]^E3s~ʽ7ؽătew?1?L?-l1>:ah'LNXfGhRLX@Wu]#[ 靍>Ht96TB B=)<Ǟ_A_MSq=Yh ld bqc:k&wj{" Wb|g3*68Xǻnc?ЁRњuO녪8~kR3ωu}t$qK!tv(f5l|<:YצLhbwڵ[|"}"JH EqDk%q$Qqq 7k:c6$>Ng5G)^#鷭›ǙJ;.8<Sm<-;m6 ska>C{TXԦT%*RSET-ɾMVcr13UpX|b+lg7Xwi# `Ţ7&c#hʯ[L 9^3\osDd#tcR c%i) .ѷZQHFqGp3+^ Z V&,TМ9Ɯe_'pܸ+^ >?= 9HO$GdRqF y* bi"_d8K'O*>+ 0 nQc`UlDgs5ji@XFH(fCGtO[c*N٥ V 'N^P+VӌE1+f a%MGQɼ A@f1dwL|"&$¥KamL;ltEYʈÊ"6B\$c]@y+6+Er' /KbL{#{zXShԭ4h0+޳?^4bkh<{R`EC0M/#.Vx /ZUa@g!% f`L,:/C0c "Rh LHI}ʎ@&i5IVԅ՞=mɫrO'Ӥ'$RnU'ƒQ &Q yZx&ʚ0:5yΜjayϐ`k풸E=TRy0H^\ O MnjpZN)RS>`C<ƒEAd'֚&=I@ő815|е B`իQ|2UoDfagmdwNno1ueAѱ;ԬJ&&toZʔ qIa Ik ],7I[MIlmɭ /j+[zó?.1%T5[/3C+'Ff>%DA=˅?D=8`GLDYIP+qK eYm!BHYڇTEi #HV  %Y3 !;HQ s1jD4RH5KY8j%b xTܲSq55ǧDS}CoP,,q<E5TYÖwճ* WO_FG= nT/ON qjEكn;EaȜ@&r }UEN-EnK@۾h^}Wq+#b AZev)୵4I]lj쐧W'QC6-G|R1i'ڳF:+lN0Űn)crhߥXhppq}t8.Rp).5kx*5ZBOxdC#q%طhի#a5DXeZ,-&<8ɼu`qN*{S.vx"붂vϵRa* ْ)[.A 5q)hZ]JJa> J hӁf<,19^2̞dE7eP9aP0` < tA_O_ }3iTB,NHG LlD=9ɠRѿÿVCA[Jݹe6,? ";[ӏ*^ךsjN (RWeDO.UU v{XLE8NHnf@ۥM,t\!m1⑄%Ō\m9OF3G:0Og.F;6F_,4rX+:UTYCn9l+u jsX#6quEjTR4;z{pHjT< $ x>seq|CJ@QV҉xPԕh#EM s R`3b\-ܓZA#1,~x+7[1TO"+!/4uE!8{}䩋{\AO 4`Wq_&u`,1ώA TY74b#w.5ͳ&ئbs3(@ӨW*Z. !) 59U9j@{o|p,22#Ow.TqSi6v{6.۸%}_¥ۖ;p[m&'6T)ApAm$. B]uD [m[m^~-Tm6= ඵ/T(d~F*ٻv붱[Zn=[?ni5-[7nu=t+d/pSYnFooo#z3 n ߲D4FFp !nn [wc'BpkI'AN8 KG@ җ bz|ZfV䃵curcnf'BWw@&FUbr(Ȅ]i}s$=\SWX@lB#(T<4ƕ$%߈ڟ?ߚ5/{HQdc#}0#y0#y5ɏH^X {Vۃ<Ƀ<B(#y'a'#y06q]9<Ƀ<ɟ#y#au`$FrkH~"Fb.HH2@`$F`$HHk#{X8u0#yGQ`$Fc0`$F`$FρPE#y0#y0#y0ۨ FnF2,UuON(2"d juDu(2"(R?gd φ(rt3"(2"(E#qQdEZ E;|EQdEQde;wEQdE 8 gxt]="(2"(s ^qv HAt+|dgm; S#]1X1X,Cg8 vc?c?>_!u,2/`rϐll.6!  3X!aR+`3!rxvuZ%2X"%2X"?7! llli2""Oag)p}xP`yL~7XыuA3 &:rIBJ@Aq#kh[C ۠CePJjef3'iJ/T9}qm JH7X+A 6uKvq؈e]CxZ8}"펞\2RKAڇo.8,iPpWQ U A_EZI,-bCQYF66 5,꽂nispOj!܃]Ҹ[qy܊:Y| +7C/$O]Jb~R Z5cyy \tơ+sj5F5A%&n v23oI. _W}fd)FyxJdq{=n܉u/MaTuU\7W^8* ֒l'`Z҄y#"OnuCv3`7vy:`7o_} p/Ign{`n[خlW shVush7.]CB"W;n x7[6zp77?wֽ.KDxI}tot 7,p ޸w ux9zZwa'INlxcX`NiVq AHIC1k}?I/x\-Zqfq겫qXs]n{Gt,]Fis$@\[YXxlBП1&(T|t$%V?ߚM/{HqRlcv<<jp󼴟>>yygr}98σ@Wyu[n؄S*.67l~Ӆ5R1ΑɅNr/hd Qw.x4/r\3~P?2 xy?S`)Py*b1JĂ7S[ծudۢ[j(J%(?#zZB *hg+ |_-ΥYVo%U׋e:wU5%_4+Tth\QZ Cjb vqp'7Z)&>vcCr`zNjU=fe,Rҳ DdNϋtKJW_\M%I'U#BQNvA ZVVˍLڥ 6tgWFhAH@xP̩DWXdT@0qnWk:5 {R%9ŀB`H<<!\j9)!2_Jt*ɖ+R1>4HS 02 LrtnlYn{!)OשsJvkiіpEѐu7Tie2%ѐZ c웓B] j\@r$_=qZT;^hq<= z')s٤GVqHxE&$/ .ٕ~\Qo-S Y14%+4@ _+yGA c,-!x9HDM ]S!I9P_b̆*XQŬw_Zw&v!A wcI&+QbM3B֧.N8/u m'a3%(ŁzG>-S傠,ɪi!ЯvoHz3uӽ^gHש_bSr}kT®=?rqZj)JGEzn"sD~`E)ܤda)6^a24Ibp\K)jǓ[y.ABK,ؓ8=9B 'Nxtpvh2.S 2[`qo(%m2yYt ,Bi-T%9HD1] 0`t'[T%L^##hA-qjST:_p.F~Sj~9H 0B3ƷᎭD_|ըr݋%^QyKQ>:4ӵf5ȊC<ͳ#~zLDU3q$bT[i Zǎdny$8¶jIeG2"4/)WEJZZ;wiN!Vf42<e@'B <۵w&qޟ +ulQcjpGfg\Քk]rw5u;g$W^;&Ԁ*]ƮtށoCsJ}֎vy,k]vZi;. m0eM얼#JYvd9LQπ`ዬΓVLAXq? ZUe fRך."uhD)+NdZ:0E3'{l$c,.*aCni+R.Q5k; vY1 `F2QkRfʤzdI3!<'z_VxBº:Ymg4 SsBf\f_űDxvj;v{RnTe>ZՈ;D8LJ1yJyޮl:X| K)?ʬX93/jՐBE=3xsѯ85ՒU0kiДȑko6Rp: - YXa8/t"l>^%^K Km]vqQw37佀?4 _3&kJ;?i[ }bBB`T^&"k̆-Nf'㼂J1S:˩9YL|Mt~vkTUX(_E^B"~iWkAO2B/ '?舵xT:HN`|L]Dd1QMWb1;%= ݲmo y,%V5h-"˃ĔD忹CL<* 5`I''@q AnMRJ RȉV&i&+ cl?sՇ>)@̬b\ktN~0(wKOQ2b fqpc ^"S\MI.ˎ*Gt}7+fKނb8RtP[(囧,D ydS&>RK6QsGɖe)g6Qq,۔L\f]sMYɴ-RN'>)xrOt (nAR,BDTDDTnHF4OG;HH-RReV+ RԱ;/%Z=/kZ<1%u2{Xh))ʨXh,-KծS s?ս?d(e ǠxOqxǠx Oqx='=8(1(O8ݢ6cPR/D˩N ,flM:'56 EQ>""2vѳ5T`ihWMDԨmI肒u`tsqW#ے!oR`i}[D*υ Ny٫OJqtf?0*wFh)C !y$\8w,n«(ȉc"Oޝ Wb'ٳŏ! ?"Ës'"ˇ !CtwPw<,|y;\fDs ڳC,

%NZ5EjQں8$ŊHScBUXchƆcP_nj܉ƫKxhke-]>OE0Qv8G:Y_v ̜|SϒJ%5^ <+9")!,RB$8$\-ST4՘"1%لeϺ: N^lVe" &'&D 1Ag2c"(k!.vYSbڱ)(LaHSLj_J! yWëi)N3unNOe { F %QģUM2ٲ.@2PجCxU|&]S--SNJ=a&K`Du ijrTöz6E@WA%5:T% QAQ2; [IWb\+:n9h :>4<7Us60ܠ2*-Ϩh,%` N5\fKGH82' IZ`x] H]#0kES$KӸ++1(&:E ꬈:KIjPoQ ,ąVTTOy҅%vXݺHBeRB =1V!Th/-ց "\$Ў_ʦ&icˎ=[eyՏU)PSOA.)x+(+0:7:Cw)[ yث0uI%R|+K6Au)VFV_mVvh2CTbZZ| = F/Y:#eCz:yFQ NıP'cDZ"*x"](%zsCi7R*l?r\Xۄ(%ゝp ݢH Fw!7w-$ܮ}l:XewiqL@;i@ ʷN/SW: "k'LQkbW%QcaN{‘h|!E ..t␠ ;03"lj +$U(" 3Sv q@",%W$^3 $ qyS!`bʦ̉le-VQ)5nVѿZ)9wER³UxrD+xG"&MȕE{B_%A: JѡRk[bbH_9"fq;UzY.ɖ%.kdh-7XQY3+5ֶ٦]gxEi÷ljIe?^ u%Pr^/%9'Rэs #pV1A66I0W'⣒2H6}h\$(k業;r9>7ey\4RdA;b\ß7#&Z_a@Jm& ,d1óAfHx oV?e\ת5X\f%R 㰅Dd{Z05ft:Tp;-vSўv4.xj]q~vt @ C]J4[|P9r1T D <35ń2Qy0Us $͑TY3$WIJ&RIf` &`c M%5))^auN\ O)b38+38 N/SaV#"%h+}o*TDw׵ńTػd—FN ֐ek}ъ U|r$ytXo؃Jˠf6[> foi+LN,SY FVTx£\a MJa+0Z` $DY|,]e x+8>vʼnE)N h1Л7&ĉU L&Ďܱ]⛏RB1uZ(]Uyc*w& zWSX`IҢ1[l%xgp̅Z+\"C)pB LJbUcʛs >HfXbLSɘm+:;+yЇ#P>Iɘcyb,b,R=]RzE58X+ud"Y E z xZR!V ~#,_[ O c{oWk/\Squ8*¼$?{W^!@C;z0YqF+R1k,a^ K"yyE1tY.L^qY/ HEMQ+[ '2/IX ]iz/) bH6Vg<"Qr7 aRV"@/*Ť2` ckA7;#qfS216^908Yx(a0UF+@4N6%\JHW_\MaI'U#B/a/p^ȉڶk}4vTvaީY:,sW5Zmv hmX`}-6̱!QԪI;ʵy!@<eR0S5{xԞ*sg*U` ^+SSKǦSI\PgY xD46B$|v³Gv{ G*hBto;8z$AVλP:ETk9(U ysWaGrGYc :W=b9'[1 (Zzmt)Q&Crr2|tqlB --rK2vcMrqKTQV]-/>ءF H!tjғIƺⓌ { +#'KL flU71nͬa8~CқCE8{#]~eOUFDvbpRA4-GEzn{ 8{*:ya ^6NnB9MsZz=OZ\捺z'' yU,ؓJ6њHmP}'*' h`vItCpa;]M ͏6|ThjIwkC:arQW azs )0:թG}r-GGnΏ汒kS).Q\'HN[R$<6Ĥ5 +dwT'9O<']UFCX"9 .!G] Z xiP}9plxi$6s@| u(~/ Xq游o3.ny"GBeBCa!S&'l&q$@vTe(86iݰrA*75PI {kkØNQπ`Zi.-p'$ Ak/He[3ѷ c¬ W,=7MDgJ3Y3'{,YQGocqQIXr#TMkU,{,EhYڎgneӐ6GY9MXgШB%M:eO~YRtL!#)Svuʠ:eEbOeCH2RL^.T]U*QM'*g!Q9+a{+rZ)ˊeX;y^\Ŀ{Cg= \(Ma;G$̀& :0C_JF7׊0ρE{8,Aq2HFH˲ϵ˒ rYVςWmb@H{*yL am@njNmEDEdH(y b` ƱbdP5:u9'yWg%nyiΐTaNw8  8ހUd,63.,;lY :VL,6e?RQ"u#tFRtX뉦U>oRnlD6>g hPř HwMЊ\ o*dG&1JB%hÉ\^oEZE(:6TcԦbyTJ늫pЎ$ғ48lqŀ NMLۀz2 fRЊͤ svŴn~HA2fA'+^ƅ& V"? %H1UKTȉg>`MShU#wƸq:+yJ D6W]`_JAPf%ʙ9gh.Ma5hlĀle̵bPWeMbwZ4%r R-,B07%P6 OMko§vhaJ M9y/ D5"5l@TwѮAD@ Ub*{xz`Gdudmk^Yq f0i$a5.CA=PQ:GĚ},ɒtTD"d,CUa ,l_2ەPVs6P=Kܜ%~/UVLHhܨ8. :[$* e1Q?'؟*&Ւ'@u{ eUDaNLϸIPޝX8-1P+$3"wt>eir9#!dCٛD~VE]!D֊Cg 0昅iCO@kRZl'} [ vJG5J)PxO,?6nk,"!6!yy+^, B7֩!t&(R\FDd;S>>ZP>[y{d*yXi ]rTJM&6uwcw')T}Q965jSR|QUk\ԦnieʪSJiHOpQd,AR5*` Q}֋%( %p&HɅ$](C~~KeV֥lw]*])"U f5SسSY8\BSE}J֪S rSqUF*7JbU¢^$jUyVM 7*V&XE8VɪeߗD`3"\c `+}WOW]' EU Xt畮^+\)fqj[%U"|B ƍUb[%Ub[%gJ\`2Od[%¶JlĿf-EVmlĶJ|U˫**%lĶJ|o*qKoĶJlįnŜ *Ub[%¶J|UkUmVUr^ilĶJVmxmJM**a[%UWJܲ˔~ƶxOkxm--ma[si*q98j=L ޹e>j QujWtH8zHE/ߚK2Yd$dk;VPh91 wv Խuv>STq 3)E 2t< tf<%aW2u6?Ɓ06"%a))Q*{o@i,hhHlUG tW)B0O|,G8Bĭ r UA:Q]%%G)!aq a~Pn!0D!z,N_fNudX c)̪y1:#YD>=rFl5sȎO琮µZq1Ak4hH PUG@#+4[ÇeGjf~bnUR&h%M:^ḪHC՗c,roQ:EV 3LP[<1?B0P'E>2sEg|. *E1v5$k Zw_GUQ[@<* Ne~HԿ@)i(|dϬ(F2kqnH'FDtnUVi8OR4&3`d.\DH f(MPV]%:'$A֊(fCzL-EѤ1Zzċ :,d $ S+l`r=LrǴ8p`5 oG(GsA_/Z+ŠxB (D]DAw}I8 3pD(^ADCCA_WC?l;<ܰO; jc @IhC.zh@9+p7y?$sǹ*BqrRb-s"(Ab:u?rlb-8U F) }jNC l=Ÿf;90 Ó'ḙVQ #`w,Ɉ 3~yL-EW9E<͎NaJZ|7%g/PiW 5_cd2 Y8Ѱ.pXN7E_fU.XUfjHrYxF\ck|Y%<r Ӭ\YW#fPH^:2=rS 惌= !4 Mt|-2&SK>q8mp»DId[c!St|e/wD >x>0āiK&hrIpvn/QQ5ck@鳣Blhl{LZ2&P?1j>[2E8رFq!j:r]iQ6wba >ڬk >)[dɼf EO@1,hj`]%MRNـw`rĚ䈤 ڌt N?g +bXaS&rGe YrF vW0Ka9ksL#s<_Uյ i#4ldN$ &tLaza\+-u-f㴫( =#4OFl*'W q9RX @ ҉ 2+w ߥGurT*Px[j[mş5O{F$ Ga1h=m;KVK8k= ;c\^S^mb@4Km~a@-kYt$n!M࣏>ɾ&% `*6uL Ւު͂0ZTƵp䕢w/fCi<pSKGva yzUC"#7ߦ1`覃0T6 בc<E#XIPuF3`IYZ$A?]JaEBM!saa[0uo;1̏bjKy&玕`K&UE8:v?YsLd}%x?(xCԿjvis6&LHO9iciBj&5$*C.$y4yn8{]sE|CM-NfFM ꄲ%uضy_:6E**eiGl ְ5TlE?7ZALJi9r6uehEZ٣oPcYLGXȾet 0SaakҐ4DZx==.%v4΀({C/ J<:muL%o`|M<-ԂY2yuϡѭtۡ[Gf &9qr. hwLhsCI0lq29D("Ȃv?BhIo%Лq6Xn8+.$]?F%|ۀ%:ֆȷِ5b%d\?4JQe@睏r͐h7C3_d GƍG mݘVxe'FgˈRq!9*-C>BJ.\Tئ+. ZUID'Aw>(`|jz@RͲQNS/?沆vS`#ZR68%X Fhcz. xG0&WMnS{I oA0(!,@}X2s^nZS}*޵օQJ#+e$ղo-F+g-פn{ʩ$2h膵٬햻 ,6j!# VJ`nV+u ~rc7ڻ(yv~әc9mmZ@FBFX.:yHCn[Y2W.Qd$a"Ң!mQiN3,)GS Oiy"Oѣ}%OǷ9yO;iy?-OMV 5(T)Te9TT.+HT_#Q ÅFE8y2.<*H뚻1ʤr\TJr8 z:PxbS5dl*¦m:U4jwb5+.*v*1ZM7nįn(VNcYnqU=& ˪Buij'Zo,XYVUxysRؠޘn>>?}.OOb㨍  w&p4B{`v5WT#S#T#{q[KANkc_ 6.O 0ha8=/^|q=圎kĮ^׈]{hi1?ՒrKK~l,Ւ2=(ts=npZ*OOGE%齵TsZw]Z.e|Łxa5Ł*#z5#o^\}C%iPJ =򷋳~'zqu7^LoBܭVgwwv2/-sN6q+>hX( fPyH"CK'K|wZjIRi{hIwkiv3`E1QFJ-GA gHكH YI0Ύ& 2f%d"mHqttL^-߮mTDdSM`TfUX1&}TEޒSs$!u FBP(wّ̐ADgлk;Lbg;L@϶I{0 ~x[SnyBC,8!7Gj y"ݒ l睴=j B$ޕ5oW{ ]x-.}l~5vw3$oVEI6 lkyyg+>N!@SRhk x72 (ErwHU# hNzPW wӋ .X=uʹ,+.N=ƆL Q>y)81/IM{:e2MoTT6BZJREٴ o,n^_E;Ug,ZҨ?.$rv&[x@yWtG8I]. .Al!c,N( )@X8s"]M4ua'ȩ KQdn8\ Q;2#ǼÅIx'AAјd`1IXۤSmIlZHa{'5Uܩ\P@vKȝ{W\r`qODb&BϾ} ܕ!2#%(Qkf!K;?Ȏۅ()/23n+ #>>IPHW :IUs$%HӞ@ƶq-hnl[}m/!3t+};qzF)!>r(M΍x$Q&UeQqLHO+.eZ"wUT|ݔǜY0'ktTDVx_.))o)o-$Ѽ-d--\~;y[iW̯^;gįT,Oy5=KzշA <모־Әl(u7(hPR6o7W/pG^Udzz8_\]x~qyX^#紺&w' m0㓑{d?Ə))w?.&b39D,70EAl" 9fR>]~68l~|n횽Z2ײjd5iZ *\o8|/f?./{6lw'4 *{a߻Jp>lom&OloĆe9;^&e(~׶>ϯ3MoQzXg9“~ߟ]pS>A?AQ?VDf !C;j@Z@%5bx`Qzu 3-FZiI84M ['DL.c"3gU;'Pk jxA'H{0x9 (U@2Pu$qvݗ51` =6u4tBTdMuTN BCz5g:DDzՈ&T҉aZs{qNwzQƮE: d hM<Fʩ!ʟEp S ѫH6X(&d%F4M{[5D,eX^0Sխ LBVgTZh{JB5XIΜEƒ+j?Tf@-^Ow%O-տW9S| _5@՘K?hfbjO),d*J {ɝ ETzl;ǘ<%nI[sPDBhٽdmrm4ut_V= [ I-yjaۓZnV"XvlLXFnUn[6Աnvif[~|P*,ajB8I'‘%+WFV"ڽf:Kqn.<ئt^ycqᬷHe)&H`[V֒ےHV:IGr0URLFJ %ui>nxsf>GB_XY]B?Eŧ %gK2~qɓAD=%I:S(X1z,E3rB3*@fQ1j>d=A=.%5fw*B i qKص.d <81r]RDgIQGLV;U-YRu„\v4hfQcK 3;QC*h^7}@m/ώd}}_տҵwv 7w,8x5xIPTaŭaKػb"Лq,MKPjuFf̛5Q6SMvq&ͨmE wdP\siY-(Kgpk}-KJeþY!)jЬ2Vozߗ$I)$Y[4Y=d /MmP[hGttV\5B]MUd:yJ2 Xin/kqVJQiP>2*pe[Ton9h c"*KJQ  [Ân{l(87L5a8hj=Z 7UI*V]֛@PsѬ(h4xP}ʲ7RkكYY;bjI:v>zaA #%R**P(, W6[VkѷՄ"-;W;dX3kk(I%1FH2Zi;hME0f[M1mX5⳰c{)²vV U).;S!zf YSѵ:JmȴJ]ANr4xJf "o#qs9E:&ҚS=CMvt8nW=M#no }}`cd:M6t8Ǯ&$dD\nۍnnGdzkVU)JL+2rRf2nUE2dZ(w'ַU'?o`ٯ1;9~t|1t?Efocuswriter-1.4.5/resources/images/icons/oxygen/scalable/16/folder-open.svgz000066400000000000000000005742551231434177300271500ustar00rootroot00000000000000Wu&z_Ӿ FN5Sȁ9 "G"%Yy,昻vѵ7'' !zyO}C~~5πV7K9Oպ}qa.~?-[n_~!IbSv[9^B_`?8ns,6~] ?/Oh淘n/sVر_! @0 _zmEa?Vho:[7ie4//}B'/ٚ?y/+˗1NOVwU)ϟ?C}M!If"_IeCCT m?cr}I1si?,ˡߪ&]8˼8isum!<_e2_wdo'lo2y[h ?'qڔ|-ˋ?=ck?տNyܵk~ۜ<|?M0<+!'%''֛Yvӧ[ey_xI_ pu&Ҟ%˱ʪ;[;'xmߺu?e<+[A*˲yqe*9/$zT=&*/cSK_*ٷO{{I%bϲqD? 숷}U;"H?4FGħ*ȪXrZ ؐ4IZ~JEP̲}m 4;'OSs/-Յ=DP:+V؆9D@9cIl'q9[ms}NNЙPY.<cLF˦/ʕE˔l1쾤$TjƚC?RC< DA% ]PxFX#m*,K *L|}6u?R*/=!UKMj#";.ݹnR ~.|Af6M1&&y;Sݖ;6e Pr :E?e{ <ÇܜɠJ9La׌ ?nvβ eB@b.{TC+ $CT0Mq4i/^t0@͆4GL}$֢Q&jEꬠSђYv}2sef榑5#8ߚ* |~+æd+;E}gA$)y5~v)NB} _e9q%Φ>תo)^YF5KAyӫ9N-r_ @lzzfT{8+X(Κ c@YUljױPcX biS{VK c飂lCJlІ@cQ-{ǵr~I j{W׾u~$>^tsc9 D<4KgxꪽƮlc+0:&h816kGՃEŲG;/3yHf9)]{CF8DڕPi6IKFN:˔Eh{e"9vtL^ۚhTr//?+nsW+RC@1k1;w*O)UH{?(SActmjDN 4NpSJq@Qzi( ĵ?U~,a }$*0de$u0J -]v6l$kaKG4ZZ}M2k9g6Vp 9-oG_ @@q9)cI 5}tϖ¯@%Ek8; `qSƟ~djjR͠'Nl=2ҔU)Fp[g2uqY+_1)w$EG<Vl|=ELuNY>! h\֠YgB؇Jk[ݩS<^u#;B[ Վ3IoN]^ z)$JeTnOd ^Vݽlru' ߾4K )3[׸厘̈́u1D zj7N[0n AP0=O߸l7%:lZO!%|]=* M 1W읳(4W!·]ifdy4aڷRxLtHJ^H֗( tq'ֈA ;|h6{dј υqMRM/i jg&5{m]8e 2Qz:}j?&04\+ԅ32qj=狲$A7qhmw`ɃQih"ܽp;#V9z* ]&@y_>h)Նh&(fk ͧ, =F\/D *-ة:1<j{E[dggfׂ9!gq#c9ȮI>ɍ!;lIt.ҥ9|"c ^NF Ӿ@ͱ {uΘbg8Q5}Nٺz ޯ4MA ULUO0XmHw5x^R?_ Ĕ0J-,| %vTh>-7YanQ%o>FvgF/)}N*f*\߱7갺AJ.ס|=o׷ӷ+Șxt)wr G(DDY|Ye"x]̆q [*gf4-ǒyeK[8>̛8c x1ms>~6`a,n:6Vsf!dG:8dXӥ4kD9G1cXJƋ>%T?p N!s5ذF? Xb&ruŷU M?(!? Qjm-?HPߞx @Bs5\nHq1U =}Kwa9c/6(MO{y;mۧKPn:Pk]}'uHX|n{<( dT =lm <=¯'0$ <D>SRA6Fk 5e]?$7~(@&v}N[}|":C{$doH(ë%%0 thf$7cy0N#ϔ3u}D&꜊RC<5!ʌE% ߅X&/XAQNm opA`t]v-TI]Eq2}1$>)qA9+FEŨ2ڪJpП]u vd@J>MgRݟ}Fv;F $kV$R_;~YVWGOwG3f k h$|Y&zCdfRe hGl81 !VP "CzTnW 55_ Lj!Nݐeʤ]n-Z(+t6xT”G>^p:%ˬ`: jY\fZs|q7.(dRIph(t H.,%!n -||}J]BfJ&%eXᑥMhD5 ]ٶ64uiˑC)-FAW/|]d;*&a]GS @Mʠ Mo(k%A/Xj`_Qġ`T(mpޅ1Yҁb`tMg'-kR1~2|HyiL<_@B^T#4 gfP_gnE_@}0}vSBǼly J(8*{N)ُYvө>S 0+g؇D7+Tz g]R׷N]nt\` 3f^/@>ߺ[_<x*\-2|X;x=5lBz8n6:yJSXk^jS^T}Bq؃!)НF G~̑ O$.x~DLVp [ ҖKM d$}'mԎ܃NG=:,(nEw[8: H<zKu;C%@wG+ F{`ckב8 \+;KTͪ1!M.t검=ݗP47 2/"{YkKl &1y%) /"y:a?^^=oSbQ^s8זDlt-K^ޮ2gYeʟٙ,xM : 0Wn(Ǐc)օKT\B7Zi6ؙ/SݗfpwCZ;1Ww?dFpd:PғmhT^n05dӀi7&]? >pw4eDZx4txY;ŠfKRݡӿwŜ /V q1;"6?u_+ӼZj|ͻ/k" P/9?o7Kt;2Y^rhZ&D6S-!K-Q]%X2C}a!Nt_Iݺb}FhI?A\jKԓ$G2W Z ߒ V7%Be$HѰNcG!>=3n\RuEbo~kUq/S&\X|CXо\cΕ8w sGy{Ѯ-}X1EfM~˰F]%TqX%wdo?R wN^P;tR΅M;*=3+s$/A0ؖX*QC00h J TƠ 2/W~S IUrwT݆l/$y@&,pm_Ȼԕ6tH:KPCR {  g:Qn_$$U&`79N5Z)soJ%g<|N^dRNБpx= Q ,`,Kxp^ >0IO]U :Ֆ +o\V,s?؝>Ƃgq`.Gf "h,2'Z\qѥ9ٔnT+v~`ڥC}D*YVAsr%Rǧ9Fs:dr=V"LJM C30.( ]Tiq."P=ui%lW`]ID2.Մ> rvi ׼~jdXlkUQz:>4dwxdw{xFȗFj/gթwHN6= mJy( /M1UpחYb"\cL`ΐ>7 Bdq^A| ŇSli~6vxreUԍ'ݼ# > ~|kޜ8Rn_?* ~AvhzN(Ǧ?(km${˼FYE&+f#RIJggmX E;&kOȁmC:z_:[*fYFR1m񀍔O,xf ={K>*d)PJ2B{=:KND|GB9(Y!YWVҶtiGB ,+\nQ iwp3hjg_C;2gd,H5}` *Ǐp9m̐*֏) 'YT, i!M<5i3S9lȝFB!--aj54>Gj$Iq[d>vPRZ 5Edޏdak:VH`c#rh *A@q.6 5Qkʊ]ۂ}Bpy P\)}C| R2ڨ{&ѨaGQcߕa>CUDIsי pH3gH8QۛF@?T7Dh_cm,hY ճ?X/uF!m*攧;, =ӣPH+m ~KHrÐn낍^4r)i=#T_WX.?,P魬xsnyMHuOrwÏGQC*b =d3hhy aU}# mrwfso]hjSXPf 9ѳXX@oDwm@!m~|+\V٤j1_g|fT]ݵ ۈ eYk%ޕn!}®(u5+>)ߺd {= ẛ[IJkv9|j}7wYބ۲'=[˂a'Fɕ)5.HX=K.VzFF}х @NoK9%, a*'ʂ59oRdB$y}4cEL*^eU-FL&e\Gc v6y33]PDcvK p[ۯ3}5D:<۟_tV2M g8 \%N= F\) AKhx% d57i4V^{z3W%XJ(qŇ-{ҋ%*4 8`@<εR=ұ(wq_>* Agw6_۝1e\eX[Hg(޷r3LD45N1{qs:Fo=)\^Ȕ&l!{Wvx\=9j4)VuH!݋$qC˂W2m[26־䉜9ڶDkZii+`]YԅtS6w)dHdzK&2B. *r6|sUnTqO )vHhvHģ R.EEey(0=Ng?XdpZ>]wfn6Qgg&/P  (8aG 6D-GoDj"&}`~gr*fy_GbQ\ R|, S\73!X3yCXV1/9"フ-*l>*< E4\wF8N}2\,"aURq6@wP%Kw[ @ળvQWQ!g9U;vr="G𬞃FIWbP @lg7nZty! I@sȚ,2a(9 ,IKM,F#f(hbfJ!i݉l<"*{u F=M;>A YA ; ^jؕ?24q`;Wfs8x_wEoC,K Cj;y]5/Q}-uOi B\0vqD:]f&Jecɬ51oy0{"hHṶͥ,MÝ6$s-s؛/~L'b˶Wg dPDoc폧7*E?ޔGKp%H s33D o&K0wV̵4@?aޘc7r4n]Ve=fJHe{qbbs\RYV _Ӥoi>o~w8JIJlyc5Qh%qK%Z- :y#r4tߊ@M747MY!VX+Ӂ ?ft*6HVZyG]5non,s iqfV3t^=YH1l2jx]\+ʞ6*nX 0#>;ߓCbH;{v0 g"c'YOl2'Wy+6B5%Wތ!lFǴsE@JAȭ Os\0p$ƈ##ↄ0H5۾JtQv +:@=)n~W/xOMw\8|?Lio$gvW:Xrt>Ͻ-8)Y< &^+IxWHY->~ޥyN}1o,tNs[8kW7toj)"a-A=ݭkW(G,݄8^@  g\Uxm* O_bFۛU#> h]ޘWtj7 B-k2W5]^oߥ0/fCao H hQƣcfb?NGi?N磌_'FJF׀@s<) vF`ޖM>-q br?%k[OAإA[dBj¸珈#Ab0^~UվqKuYt-1#CL_iŨ*uѦd̕OQ5(Ѡ7+!ѣ&%4wi=VUƆ:簢)@w.D#nKi BAֿTdVydTЏtDt:h'H7-hF|aIH+ "< J 7&g6_` ''P=kWmVK0 E&aJǗ3M8c!j(9!{eA!@`*GJ2M0 ^WXAz$Z]~@[l$-ΘW1Wq S^E/fcYQ! v1n{Y#(iE~,eut S^Ύ3\b-¶}}@̈| I2af]@+Cm\AF29)~={ObuFc}ݳ!NFlSKd*⼏UR[_/I(hipqZOfj?D2('vBiЍ3&V{""Ռc Y{nt+TӴ.:v鈆Dݹ6 /hph3A}m%Kw/U7` nG|P.;{ ;\Е?+nlR:_xW2Cy!q뀸?%;4 C}X"<1vNzy#7S=u Ep̦HnlO 9|pH~Mbgi1u%7XZ5ǡY=}/ /x~-1ӣɊd[k}YK |T~G"k9M>}czIFGndf(oʥ̽tNo羣Ωh㵢c[o@8'LUECK1r{/ןoHI-+ҳmkXaL٢ 0RTEi+pN͇h<ψm-Y?cG)J88 ݗU zۇk-bړ$6SCXkWc(QӁ;hzկ a;np eL#KXvI{1=>ffKJsՀN!&VUoȷ CDS@&GBLD4يPU2-R_|#0F|L9F3iry.W$#L%rfhn9үI0BҴ]WiQ^R$p]5)n >Ld/]c9w:_bHgv8~% H=>0홍|}pvaU:j30]<_=\D9}"vL7zycs ߡ~Nѭ( !>Dk$r o/5,rZMl-I`HPh>F?pM]Hҋ:kS2f_] Х6wxb~%?Չ/*;`d*_Uyj9 +{t: [ťs!vr|RZԘA46=䖯 x gwfrtMoP-X!$*?H۸4+̒NwJ^tPDV8d|4 ص"pPS ѯޜ/q<0CcfVm5 εH:b~e ذX3oiv]}m5&Ee{k+w)FgzzS-Ax3VH=7wW~+`GY4F-bpϔLK v \lfO2<n[jP:nnR:AU9G RK*-oF^ %YziIP1:s*zɉ oJ-?^ڥcB}ZуqtN$Iq[45|o]+ṗˌ.iRq3O  :WԼ ܄ yr9L# p_{Ʋ- }~w$7 PIaMˏ~U0Z~K7շˤ7,wp,^^]|o0x۳X .GEʼn΁~-5E~Ȁ{oҸqzGf|ڠL4<,1JH9r. Bt94ܻrK֗@_`hSu6nh 7U}1z1td \qq`rD$ENQOFRG|ḞYqً t!&pZIпcj>R!S7qsqQБR=/OH:$PM(^"9{TM %8·)g$QFrG0yՄ[_9QG2 @NIuQHK_(pЈ~% Cw6Zvq>>dH@/g¾8,/C"G5)lj~)R#*M|(sb{\%u[P;B_sYg{@A^&*mfq"tpoaߌtdo]۞Mv"k}*h1Tb."er沿ϭA-n!gxzIj29?#r8J5TDNedQ1GfjV`6iA;rnWO2ʃIHfӞ3.7azⶓ&QtiD4LU9Rz;HRM~_50rpcȞ<D|LƲR7? }.:Vnajx}XIz`^͐4U: jdSqsI /^$1(oe(޹q½B/M۫]|Q % j$vLWƗT;cXǡWUt9ɦ>}":S,m4HجhfgIoR/&],z/ъ4 HIk=.폦wS͇X[VxjS3?IA}2`D iCE 1 8eV(Hhy ?8dYvA?)-^5d QEʛd! O/He~*)#b^Q ހi@ew6GPϤ# m 8io?OP܊_ENHG4q7dLy9J6#*4TJhkmۏVXvV45T8t9;InBIC8*d^[IGQѸ+0{F0B_اѡy%8>Y Jo[&lHM^gsFYw;z/V>(z .guή ~y篅 3Bq1^wmY,zLdv=Mٛ` QR7-,K5AO5SgY/!o?ras}*a, j,)^1k.gCoBl+MOZOnp+Ny2T3!VTFUC7zhtT%b~C u"Z_jCHڊ4ICF`-'Vnx v*B%Rh\S!).d"y&=P#gP tC'GeJ⡴Ev?^ XH3?:cI2?HXk1LX/D*'\JG f"7:VX}.Ǝ[in} pьz=pX#ȋ}X'mm*ZZl#<%i*h#6`dlKI*,MO|5f)X:Kz[+oμ h %eroD7+3q#@xڷJ7ܦ 3 k tpJFW[}4/_Igɭolhz5J>"[Az~P*޽($ߚd"B&~%hϏy1&gݪCZ3ҡqt8 Q:l^,~Am`,~OH}pY–اRsH(Ph?tGa>1hk|7?ѧp .m YTroOZ\Gؗ҇Ək*5X9xSԍl}ezn WIr㒮t,=1&fPN/Hc9UL8:Kn0SV9`p!>͒F/&YO\o &TZ)ΪR1o}fYeE?̗#̓ 󷗋D9I_8fdOQP!g6 ޏ0$]p5~<{AGAgZu/ĢeX{ۿcH"I3^$-Wh`(&ɵ/n<P;A'SH6qgFk}/X-|F5yyWm4cE^oiJQ"}JQK֓glg;o8ñ33k|DldGEk(^SL_vI,;b[ yI64i=,y4O WVUӦ}oA>y%b9/`R&T2(lnH.ET&⻳;M=%{u~}U1!{?}VLxie̯n3kGwdA>h;s^Y'$ͿۜQZޠ[L9/ a^FrYM7ꙃi V%>Kz,FPC~)U#6&=0Ax鰳I7XO(󈁸pA@V]S(!TR j;`\>!^ՏwR_M+3$_%85M~\Ԯ.QƎix0_6-* aYڹ~Gʞo|X!ߝXLcy#Vn% =7!a^s@ιmo6@A[H7tH̤mcƾ! UwXrHoM q!xO_CH +>}Zjie\KdawڶP82.Dk<|oOیo,6s>,!~[|}ӫ)֧9כA0SNA1dͦIR 7n& ?H@p =O m llsg1ΊYʟlHnL{ccX0_V/}ٯҰ \*Qm'rK3oUz:l Z~vpHJMxX{bκm ފ3܎ffM[e⮞*_LVdd͗Ne;뵺xxҤ~z HA\ pe!wTO֐xh1~=oK#7YXz)fj0ЪҜ~"_ V7A|JO.P,J)ksG P{-% ns |ֺqa6>ِNJCBN=ҏs 9g()?֖(DT)bCM@Be;e\NH}ET=qq!1]#Š,;-Yo""?uWf.Pd.jZմfC3jJpG 1!XʄF/r&p\H8x^|"|ʲ5I ֔'jD3Z\CY1nY<ǯ".x_+o?,yhn[eHy<=Xã8W[cG_6I\5Xtp׉5{o/[Β9a nO'|꾰OHSY5έ6R$aIMS= :MGOJݑZ/YGaM=Cf1E!UB'm!4Z$F n/Uc6QCc \hkBs߮URdL3-##؄XA p&<#BS_V6^lOH9S>dvFeZR)Ȅ0L꾣z5 TQ𢏧RJT";#kuXj/0bf/fV0IfP↜+b`U*uIl)aA$G@z"6a hm5H|D˱@.DM3>ubqm8A&| %ZP};LҶ$׭m4Ya6>idJ4#:Go'2TKcz(I0S" \=gaKG#d(1ic:-*ٱYHoDZ8">{T(Z ~6.6[Bg`ym TOJZ9Hu'Aen|VD#鐭~2P=={{Y"wS* wR LFjK~\59Kjn>{Xp! DvD^(ۭ bU &Ŝ+'5~pGgvQ]%`A&[TP'}Sfq>$N`gO __ì9 mְFw# q Wj&/zy.ucK#xVZg9ob|-$N -R-Z̪fQfRiJ~q:A$=E1@sȬ-,wj$ɚgglIIˋZmF@QzBn/ E (XAB=q;,#^i`Z܆L8]Nt-pQjHL5ϑu2Q^z?9^k;y(+k9`i\}Lz NQaM%R#L9܇8d$T$E1;3%T ;6o\ipȟ};YH}׼=2.rZ2!H\0"mY f>i"~ X?s!Up{x6mGKۆ=&~]~C 4%*_Vs!㈅92 zz}-̘q [5wlU=G82XMqB鏤8'U9JĞ){^4fNsnc|%[;UTuFJŴkfB21oZR.ZǀT6bABn N/،Ӻ5ןW Ii);|(=J[zy=YKtp⇉ĕ|=;̾ҁg{"G _l I}G/kK>'_>zjJ{; X]}^WL?DgݓPҹh35ʺY-[?R) |*]dvtO1zJ45ý[w" tҳ,lclAPC8LcTNi5W4W%)Iصݥ8z[&&ƥheW+*jeUU-0ش^)+rS-qGJ Y:z߬ .檵%q:;||=-"}ha9 o/3I,Ӗ(#Иh(h d?$i+0s1YNGv -COց,r[ht86eYQh1,#jr8*$(uT8D<6 /+4\ v mq☝D[G)`aһ/(`f|A2RioDn.v+Բ LL9A_gUQ/N5;RW¬QְOn~>fZd-u{߁EV'p5c:)I(OG-L øޡgIpq_&Ld7p[;H@StAMc0pD^>ꪡ;J񇜇m*Ҹxʬq)Cst^G>cFDBEu+W%,‘P0>Ի e?At:]|~Rv$|`Lrb-xȸ KນOvA<XTg3Ƣ~x»`:!P=f^~na;(Th |;ak<0w^ͼ[ nz~kNt=Z?g=7'쭈/// ͝EBd'7{cF jIZ4~]9{0gL9'`aLX]Y]i*yJ0? @ѣO1 , 9jGѷeV\ALތqzwquo^bNB0/ 1>+zvB>X7᮵uf'@eDZ1Ra ag`]NdK.ې DZZ%?{m8&˘o_& #= !do:?З)]r_Gw}}Y9km!org =-|ymͧJeDTQjZz~+2$-ц{帐sr4akSfo|ZUON0rq/? ط.ՃPV?V{ w.-< :ׯ*'U%WvUXȭ&ģ9qI``Gr 2sH e h!-T:>u'v]R/R%)ʥB,.  qY䚩Bs;tRrMF<9S7Is[7z}\|Қ^?@ZP^R KY/#Nˮl766Xf M. }~2nWy\hoH@}"lcRq.bҿ b{4U Ȋp9:aiW9#6eb$Ҹ>]d+E@kT,?c :% ,O֛J͙qtМeݭx &7M)U:E:$ @]%?3"rk_%ZEz\DW!׏NQ/8t kGv~_!Cs;v)9?G_ ARKj"7ږ\xlB~ $ 9oGƇra$c|&p `c[H3-BKP9hX] <݈ h8/^=dc@Xm`EI;}dFh.(? ,;XiZ⺏j}XoC6Q@~~r*Iڧ&l;?k:P͸ 8o Llk ADBJ>*+OGu<1gY3(!핈L2q?U1ߩkFiִ*sb~kLivu#{TH]oT(kboT$%yJKo.;`\*a_LA`ߟ˿m&uzT ޜzhROboߥ؏ۣAJ ѭ !e֓䁿N8ZǔuU]$A0ԈT(i|?_xGm>&:=aŧx&R_p;Y)Ъvf$ƴݗA%m4ć>DCe9,;^}{=‰=!_PM^cmu#e`Pf.ӧYhg }3_BcV=pPǟ'$ %Ҧ l9kteg+@#lLz̮f`z&L<$ͤȐ&}2mDG^?pʸZ %FyWc)kJ}B+uS#5QL'*(i^WPOqCľG_@- p[_W(<%o$+ ୓u||Z+!sхⶫ7o0=zvy}ڍ]ߨ0#m:)B f1c ڕ'C%7~91P(gi$11H  Wְ;;RlKX2DY\=>'_3߻3TVEiSM[B@!<4 C:$Wv.e@=d&j~ʨ0rmMfܐ1wGÅ P?/w xl8| q%ϻCxQ\J߭aE)Nty“0D.Y-& tV.ZyeFD$}K d;|dҺ:A+~^"ҶŃC~f8F܆ktU{~K;R߃lbHSғϙ m4״{ ov}qAUlA)[dnb>`_k^f+B>|#1F*oD9?dAY2f~!>$$"KV,7^o Zd lDviǛS<  džt@RۃAU%Z_"*ZYee=Bҵr1ML))+|x{^ A@%MY=8wy5ӥt}%GsLXlm˲L慎.!S-qظD﹤y-~teRIׇW2@.F=^ <ҭo!{xVC\'^!(|sF*Yban4 ]xXZ<!;aװl:uE.`̀:k i 5F*毫8dHKɅ QߺkR,Ua V=L[k&!NWBY:>|t?\T8 yI&=ͺn0-k G:(LYtx"Dئuo6M㜿K:M9 WDLhNd,K̒/|7 )SϽi{@=/*rG|hX! =akLȤ+yQq0y4joY[wiPYЀ9;_|EKSw]\&]숓1rDKuB="oA .쫘rQì'"pO)r %=x~7Эo\K_\teK/i^hl#QƴL'lsyJj̙nޘ%Db|%{oǪ71eagyR\L~m)` ;&۞/]M@+[ܵ:+>I:UVsŏHNJUE\v~]Lbӎ& &R6sav„Wds[19 ɫ O7ʕ<iN- C'?6&ݷBҎFмM_Vx@jIeRXbAj3 ) ǝ0UҨ;ܻ ϯE?U"G/t·ZИtib>EuT+"r7'=|EsutyhPy^'3RuDPV /78w"q~JenHk38sj3} $ f8+n_)$2/&)XGa%徽C-krcJb^ ۲@[R4#Mk}QLGhHv8yp3Ai'5%XH7? {35"K %]bg"[H=,Ẃ>$QVpsr5Ȋ^] Id8*{2BH>˳_0u^rJM5Q =\I{{1Jyeo|jDsC^cB>N5ܒc~`oQ^ɍ`|SQ1sF7ZO 2s| lP_RHp%mcDcFuyOnJ#"ZR# fq ~XQW=ؒei>IKh.6EIGU4U0yC&#:GgkWsUDօw1zCY-?Ô__ VUzIkg>3+.'5Ľ_ ɦ+$ 1эD3{uEH?|Wͬ-kf$`=%)oa.Q$h?u \W(1j&: aQ.zW~BKVk;J,;)o0Vcܽ1܇$dK[H_qlu%F7Fb<4O}x|_ ى si/DI*eBa`o%"yWR-4?<]/ I葴C 5U7刴a^<$LR͗rNt^0j?dTu,_dyfV=9ĉV%S(M ]c֗($ܮWC!,ߍp^rF͖~~^ G4ol2d=IB AF_߲HÁ~%b~RKS;8i ]]W%=A{nx\ c 2e:+ҾwLoh wSZ<ĜۈyMʧ~က^;:Cc4RM#vf,MVwtK I_'%A+u@fT p)7SR' w,vK+WD1VZ/$;f4B!qd~<>BA,02do!sCdՁdn}Hm j$//`Q{o`Y@x̨%On3BV.tg3pԎ afm5xi!mz1> nBG^r8zj~I״ƾr_h%'%x$b-8WJ4bWJ?UZk6Hda0M',$>PJɥ^.}YM6. \\UT%~^ SިYpjlQ!,['J"1v*@l1c6A*jv|~]$1t+#]]-G>#A{S-0\y "Ϝouq5A*>;>0DdN`=z$ @D= V0j"[OI\x#i):~9 d0ԫWy4:)'S+!U7]b[hN߭:O$8*egm_{22C  xOv{JCf2f3O%eN\vj^3IlI4Jcƌ*|ޞaWot95Q^U=N~0 d#'48DӧC donQڄghN=j)d\L*fՖ6/DWMwOӻӊ ym5,sd瀇kn8w r87x\Gfuo4'𿦌% IK!{U^W--gts)yWY" itjz`Xi=1S.=،aA3/ZOC*>sN_lAKD~z=RGbXn8itK>88D&1^+Gw$}MDsQu^Sq/X H3lsШ?H1גd][AW t29ZFX(SfOㅕzpGﵱϖed37ׯ!fDphZN1 bȒI{iIfx8x__l98 ƥ;/sz߾ύ?!J+m(U(Y;c 9!CYchZI(m#uE&`ZPv_7CZiXC`xkbقq'k]33)^m8^0“Glgd~R9QP57 [tN'6veg&99=ҡPt,$@"S8H@0EN7[>P1Rݒل!DTd|O4u8 Hh.k_vPD D׋7yuKMS(*mT$Ww1ˉ3_ \8!ks$@q=bY1qgƓX5(-hq_9i;k؟ yL9IM:,?[sC7qtdC^?6hgHlElR YS/v6?\JX MrCblN$?H!Av]KNƮHX\m|x)&fZ=op2hd4ֶ8*p.8'{JHUYt-_w[X./tȰcYOQ` nk+!Pm#J QG[UGh2$)_/:%,~#Or+%'ߍ~Ew:o=53Dw%eMK1YhQ7D(v"c.))ü[/s~yA$&-.-MjXZ37X'1,.ϨqQ_XUXJ 4'xT{0sGc'ۈ]F7>櫸{i4#p~%qy_Y@w>Is8D5{hɮeWpKTONWs+FIoL;]5H)o1icŜm}QJ38G+&RA[M6h&J#0 㛈fe-̓R<ȌT2s^ ؼaDL}IfX1I;A#/٦=ҺaL(Exjb|*Mck"17= 0Xx~Y} !Zf[SI>}'fU7z?r%F ?cZÜ܄"J I" qT Hpx+yEHiUZ +@9];\.Mk}vW;2q\lYe)?nуP.B4iEWܜ=pHR4#6V I@~PEhEw-n7ۗ- WOL(mVdo܏oHb=k<5H7RJW?Fg)k.s4BnچG'!\ 'jֿs"<ȱR1FG|z>"zYngY/钢 \뜞߳rΖ )xN@cR?XJxׁ0b| )3@meotY<0~õ3<<pp[HWT~H˲DwddƾɳpjLEHDbH\ؑ-dm/O䁫4W-`𼹋+*?giPTqm~'5tg B-qX !AHoMr* XiX2BwwȤW"(nA٥,Pn!p.(qYN_IS@|EtR9~^]FôGu'~[X{ U*##w/ʅDYr=RLq!ort.8 GV2= my!gEЬc$cWtps=L79 &b4F Nn0Di aK&63>5 ͻ{Ax-uٟzOrg3(zs80NVP:¸ "y*v 4/^Ζa޶}eim9Ykդѵ\ ^@[/2J( Eykkyƭ=dWW0c ŬHZ=L$GU*s4qQ*wmgf3/EW%`pu{1*ugj\* U&֕{00I)S&~V%EG~txEB>=aV V_]aMvٍW[_Z%ԵvqOmp^GORk2tAtF("^f?xr Xؽ_YtƷ `>^ܠO h=cmr kFh*:j,}|꫑.GlTa$)ƀqI=UM{.a~+:Ꙧ;#;:4Ế.! o4 )>⵸Moʊ)oY^?7wɯ_N2݁ꭊؤr.d9.\4y>dGx0Y%@lU`|6n~,D= ic =RC&q_W mB0RJ1@M'VWi#ea{ކ!(Y}لHcv+xE|!~n# "m#^_;Ʀ +S x" ag!,ȼ.Kt B|*ElL7Z!jYuYpcsM:@BސqcLZ@ϭDax< Ŋ\遥y'r ˔XYT~ZS x,Ȏ!|)%2MZ;i/F %9967ƎݜNA(h:܈\G4-x]S]&Jy.jNK2R+}%EsoiW#6ޜޘƒ~3'`lQ=Bڹ~^dw j+1:ǂ{L֞(ZoVO (Yh{asg6G#b#iErC0a?N`0 NUL "M<usnԅ_Wl,bE8{-njWA)̒yI!IKBw(ʎȆ%ж/}:\\Ή/yD5²i6댎T/g sT|eIԕ:X1yU(+ܿ3ʹqQ.ճá;%t]0ƼիGʋb +yϡ!E\RVhH-f+>r_3ێ p=K!޿bTu)v_qbKM({O&1|a%5Vw:p#uw3@L] )b_X|}}0̚5|5sR@0פ^(.JPļ~%A s's+Uj_^,"l@'.!CC1'na7+ sI G⸂4H1OioryQ΍{er* }7bd4;tV«K9X8(N.j t*ޢ_ VxDKiSRj'1ڋu.';0)יsd]_QpBBcci 4L$`{IGv[nUIZRWqk܀B9ؿ9m2_'U}6z>.g@yvJ}U?NRMyoi_q5i$1=`0?~F L ls+STzMjN :qSQIjkSl>l*.u'} +Ʋnn! %h~*N-?@EBp[A+?UmU3}A=ݐk4QXM?'v7xG`W9z ?jXej~V Ev gTd/H^/d6rR3C)&h>@ rǚ4v]Lk0m%PhO `X´1vQ2%K$]ߖoȺL)J()x*3#kL|; {1ت9~ٍU^W9g<mq^jܰ(;uzń͍q-J !U*JN_'ǝVc9 ^qyzΐLi$EM6/z0;2tM]ǣ}i`9*`>ϒAtve__>y+m$c䪉XaTran4a_{5;}-3QFp9M/`re7SN֤Էd$FBŸV c2A[,y.U$sZbPMb _N1vD55xfr|!#ˬO";]=;0#[i{B|+4 } ]=0Di=vP)?J^eGxު.vIC- ]P xB b 'B6.͔oRg[މ$ThIw!* %D4~i3.ȆW0-PhpSXzT(GΕ30JlׯNہ:me)Kfp7rl$|y"Gn:Wu6lRsraMZU3B@tF%vꚃA#l C`/ 7Tg{8)z.iN ljhF\CoK[IJ$liUV[Kk+uwT;\^5F_B78ZM.y(ocC:X+Gׇz[TK&jƕg0+t G+GꯆFǂVKWkCnKS氝tAaE kAa6{Q>o7=2,. qXlV+a'[ GXy~7nd󢹤FXIK>?)PqU'N6z,kk2oȌG=0? biQ9xﴕte%|nz+;Q^ۅs+@ZkR08 ՔZrGkrL:}j'5W* y^ U ){pAIbqwv-1> `Wj04 x0_//6(> [|5@;Wl|5 Pa8T?5Wʯg-Հ%; d$ 7yofI'nNk?:LtǴPw٠B^]m㕜Y5s hUiW7/̌Qٝ"K.$:('H@k9 Mᄋ*y w$9;];JߐYi[SśDT{yRG{"zW\۪^Q_^oل#^x@>.e1.Pv5)[K8GP\ԃŨ@-{$g\`(B qZxϓ5e6֨gNJiFWVQ7Lǿ319n_LCYV=K?Ȱwzo#*3 ]6k/m#>GWKsu](! ~]SD\_>ЏBt \rX捓L@IS\lx8 H&jkjvզaNayϿf[<=Ȳ&CйǴc'E6%k۱o*kaZc6|J^Xօ]㐝%Q ;Gs]6qj. =rr s/{cMAKt3b @dx#a ~>שe5DPh(]nG!F;bO(7oXRۼISUhJswܶ8T ?!GuzSGy%W8hA&:&[6<-#ǿj Myn4=P6U7K=İ_`)[WikNvLľĊf?di~sd?9{I6:$ B'G_FiDŧ}tC ! >/dއ_~| h3r;ѥX(QN˒mt\1yN b{SޮG{U)HQ%h BمK3p\SZ^PVA8Xxp Q78tyFXe4b{BKQT8YҾOp]ӟƤOfhT9'R(kHhFH__vQ>OV`徝E}RK0^!DIDgVUOH*Pd@^ 3xRIBTd_ZTFaZK}8-'POXSu:3J CA\c.%&* H!3|Lh{pA]]^ZXVX}E T&q'J2,F: ]`#2 PXUSmUo$#2<8_-v5''Gh>@z [XqT r EHo ͆,{uXG7D~iʱv(@ys47M"n+C.a$uO&6{$:18+߸P@IgB`9K»6c]Pc'gޔ!l3¨RFc2 ӵ9'e+޴Í^ca8C$R?$ߖG@,+p{6@M왫b=iq2DXKˠ,O i-ɎgԀ J&ݻAw ^TU;1QWlI3brs"svZgE Nl 4*vaQ\QcnAT/`T(]V[E[Up* 34Q@_Eآ4L,FH g>3IJey_T"a6gpq0b "1ΊNM_'LnsgZWh)=|#\LD"F51N>t$oֻnF܆)Xoy3ܛS3 \+i Aq]d$D<_ʁoxPs!~6~!`/n4m߾NNA& \tw^?AMW DfyH343-'FUlMTp(>uu~& _vó[hmqP QWIѯ!Q$7ؽśڤV.zo,IK뀦=:>WspE ⩯7Q'yD机[J ?j3q7X:$~w#԰uRA@a/xKbH5NܱsfCzX Y x,lǯу,M%:7ƿV /CN/TpozLb!2ABBF4M5_8E4Aokޛ |@>ԁ Ŭ%u%?_- a7"jp!w* ܶ[iw^?ڼRdX1ZG2 :DmܻB/H1.ԔXEdP=$=/ذw~m$y/nCqj;RQZE E-kǙ=;g]?=۠c" DYQA+s0/-zVEo{pnۡoi#y-Gwu0a)lw@ =2^xTby5I5> ~mh\[ XoiA`MwGKۻkSp$+a`:7k5kKf|~"nh<7x6`Z" ?ٜ^dfqV|[~F55H zL3;px%PvҲH$o^I74@2Q8u?ZRh;f]YCxak%lŪSbI\cmIa֍JJ`sM8C5ߚz-UQ r$XDȮzRkx;Qo910)/Ii/~_LkkT7 J8+3 UwkҒW\ɡ#m\>09-g[#ɋ@CBTz׋uo'įd<?ӔWqM#=\@H蓞pl="p]R]U\0kM'B+M޻߉;~i|7uizma "eGR)ħ4gkz3_AܯBogu^>܏E?}J{4 4(}.Mc 0`ކn`=ެ-yR ڊ8v〗JU\[W.!f # qѕDRobۑ/]>$9hM$}e5k%HAĚ~Co/aɼaedq V%CС8Rw&Ák~mJʖ{ B2GOa3Xػe[a&Ue뇏46OHEFECHh",s/[10ok@~:BX C™* cR yh}xV^;dR h3%`5Kk! iyv}ₒ,Okx{HwrәU:eD쉜r&5 ,;BMxJt@āog8\;O@BPYgi~,NG}iz-dLvB4]1R2^ywWn*rXۭ>ĺA1HzN4bq Yx\,)GK+8`RoBY+" T5y XSYe,i xҲ?D<6j-ۃX%㯏yLN r@İQYHNgz)d, sW<;@˕ mY":ٸ-f\m6`5 )<BN|Āq7D_!1(;M6Լv$faS^R ASGKoa P/[Lzvĕ[8-p]ǒk~6~9J@x/~ oUyV E,K(gab)v ,<)n>/Pw0;qk"o&Pzz+!-t" +ӳ_W{Hд5qEbM>nx+]PMk"9t( E FU{rى76z-NXɊ=e=w@C`G6}\;)11.3k ?K3 1D MBvDdzLflXolC!K3O~Ȳ:2y'z]U I>fN>oΌmb}g$_/Α݄xk]& ecc޲WD\Bc79K?qmDρ9muwaiݣKPǼtHދEdzmצq%RȬHƝKrNbHDP^8Edrlk>7va%s~5:j>YmT;w a#`'Nm>XUϝ8"xR׆Ä:%or=ާUљ̍NJo^mqVC3`(:^ 5B9#υ^}/a m&(;,bÌ>'Nwu˅| !NM7531N;p]ފ7OȀ,QyBV wi:?۾h`9E]Aի 'X^ƳϴczQR8')(x>9 B F0n呩 &5S1%2IUR%<7Clhy$Tx忯 ="@zT5IM -*~N̈Tf  ؿ␔ G}ǖD۫yx򛧙@I5MD]TƤ$(/w>wrz(.}!9Dmw/31bFJ*S `/#ٍy]zA_pFyT__sP,ѩYdXc7ௌHK#ψP;Sj?ª8+3Gu,czjɣKhRhuQIDoPb~/Io.z4_X L_iCK7 X6ꈘ gOftLzu/n$Eeșzٔnu4xZuP`*uVkJŽXXV,$K}`RS1rm$v.T69r:R_=Oæf:r\v-{Ϫn5o[9f%tHH緈I|\or7&-3b ׶p+0%|˿T>5z=H:/>\GߕK_29hzxGኖVoփqk;XXyelj/zEk)O^ &IF1f0U/h(/׎lq2BEb5=wϚ{Kiڔj2;3%Bo5El=翢BQ&;k/|ȟH5z5JuĤէfSR+l\_T&Keٵ2%¶Qtgl- .ʔ/YGN_q+qҢCJ'VD?SRWt|"3h, |gR~S?@6DW#I}m $q;/Fgs PGPbF;O[pZevB- HfLc5q~m&/dmA2#%rԏMT/']աO(a)$" =?A`g$k3Όqe +M&"RS3EI+׌8i fg{qT4bq#RvX'?+2 u:ְFQZ нHtDHy=:}bu\9M~ۡ."qn4h2r8lje7T/oax*!wLPa#OXUej xр@x ZYNuIhTZPD(XPGf-;?b8 sVŢ$6FSwj˕GcQPfTE|/9o?w;X'`j֭bQ`%žKCFz뇩&3-޳tp>N/c wݘ^4-X>A2'#*xqmĿfт笣WR)xl]0έb\LܑlX 26;r(՘,7oiYvV,CDEbɲǴO:Fe{UV Lyti(PU[7j7kzMY=B˰5J0< vKiWP3I8[CsR@21]cz~zD)RRl4>[KM;?q-/ҷ*)C ڦ+Eum fPk{uf%|~FiǤeaX~GM5Tsq'-ՐNTTJcP8]j+m]s0K8*\U^@+3`1&IWZo4!=F7f;qbfΏዛ| G!gbıesnD_kcX>>A|K5f 7oP܏2^*'>wYT>jQחOSSz+,4~zΟ^y,dk/ {sم6ë́ݡf%Z\}ԡ1 z΄^Xџ-y$ W\ fG6N0ӮaHٚ"VRHd>3%΋1/V~-,l+z'ΐFg_&m&f{atb||, Vc<0'CPab+󋙸(0]|ڇJ_3^J-IY7xV1$fYwS%\-u8,i<ױ&A*G{R;0F2.8OУgS*~I6PWxL~3XD% )=ę2'wӥWS4%?j{[sr.i%_v(K J#ŒTdIPwzя΅YK{jլ`Zygp˧@p_ x+hGv%%t5Weק ʬ?nhœr?Pb.jgQqfٴ9Um:E z`%KNrT{T֢Fe9f1JhX$1>bc/z7%ľ.X|{9S& 0$R֝e?~[#jVҿ AqO~oWT83+֓$61tQO]J5'ގР\>A^Pr!q[B+IWN4@Ot̸( *U#IzvZ2x'"NC2$0 ]ezh?ccEh~gMu+&L AuHֹ 38Ҕu`Yw=~ʔG0l L2z܊yLx=:'ZpNM`|f'Qcˮ˺Vz0Yc0-~D] Px: ~yjr8$^q|2ɑο/Ȗo;h$ #`}}n }_RQs[غ|]x̅A8kip˪a!z4t;z|)ϧ^[3YCؠD_0Md&}#-![4S[@ % sLYP:އxi9R{`+i)`zO>]ޒƶ[`3}Iिn "g t>G 04 Yuֿ ]#hnPF[{%uQvp@ŏ<׷qЩP-uYzGkv,.-0H<'<@ 7!CqIJ9awmA3U໘8D?y2|P4g?wϦ/%2zi _O؎R7@+fl|w}J,{O-g:K6H|;MMuܝVĒ8O 9HB[ yY"zz->XXAr`k~"KjYqI ~Nn챱My 4o}*ř"5砐|0AY(^mDr!nM-ȕ}\: GS?SECۘ sn2|l)ڀf`:@JE)|KVSZ9W,>禫M' lj`> Hakݘ>CG'bŗ8#I8l$[pas>;0 Df^zkaxfDJ#D'b wbo}e5L.MI &X^0ݼ4P d5܉Vߒz <&7N8W"NGhNIQ&=EZ7CʀTiuH˶( ǐ.ɦ5z=V/2O]><$+ÇnnޜNdO5:y^׵ڒoяjg 1F]68"d0זmmq~KֺY KR><)B__}, D!aLwkq y܍[ξU9p9HkKOMU6H @A/7::Z)f{PyAaH?@XިDGYLLhV?_d}-

    x?8 GsȢ/|ir޵F)V坩m*ٌ~ŽdAOH1-P8ԁ7pB8:ٗWvV C]e[>alcw)*œ_%)$ExF1B,6;YJbQ״yj~sgt,YxnbeIp&|rAHn}hwou@) GJ.#QR n}5T3D͝q(k3v֦X v^y/qgf':Y$1~|֯hrnsHW5{Tx`jgoci'vHCcm bM/Wu$_ZYZ!kWgtd-!\Zf%4$ʹTe%俰Ko Rkmwr\P&oHbXkXQcЈ4_>ަt0QHbw7I|'LAl1c1e,8ӈaО|S!M_YY; LGVΘPD @NK>J#!{2=$K`u6ф+%=b:>XlS%j= +E7::칮eKϢa#L$r&IKʸwH݃ldˠdXԥ.i?Dי¥%!C!ItZf%9ਫW<rߎhx2aa_ǼA13al:Kh{7 JLڥd ?РZԄx`D[iڜ/!"m?ؠ$5=N>#au!1$Y2 [bAt]ET{󓉟e>mhs)x (@<Mm2fs0u:M0b|JSc5hgϗys2D ?m}N k ̄ALkN^oRD|F 8MƚʳYɰG\fXdGB0 H{9AbHx\nH08nmn|]UB3ms|m.*ѺsTpJ}#?B8'i6Gƕ4(īǥTrBH`7G˸OQ"!=Rfib{{Ƃ^fuYCḰ+Pэ&')=@o@! 6Rθ OuB} hlJa9 SL)p|fLV/+4[i4"s,W8 C$VGbM5džJ(1Y{ohoJox@ Dxu`ޅu2]#V/yɆ ֮SaH PΏQ l**z<}]z)x^(n9| [ Q"i0G0g<8]؁',4{!7'.uNhGD{g,M`Oz'Z}7!DrC?t?&I3L/~UѵnՎQ*FLM*FF`jꍝc-^Fˮj"k|ne] Ѹ{FOLsn?2 `mnu^+ y:M.ʱq==gKwHhb-..B6t.q$y3wʯofEXdY~rqoho R4^CZ^CCW%I~&/uN'G:. ~[BVȆυM(-jɭ3}y)OF-͟ 5r" .h)rw *Us'HdK΂~Tbm 'WT"6X>v(Z<<ff4pUMwݟUU|=4 Gɒ3!E/</Ϛ)/\S%EFw7\w_`{;xNuhLDm\iy8јoε:{Vtgw.ӂX$^ܵHc@$b 2Ɗavڊ~jƌxzl2P ^yM^`-ar^eA RԂO oGcctBi?"1PĄ|[1"{o7;"i:(P](S8.':dʒ-K>MnuozH ^^UKm'thQz;kN?(HEnܶk}D8Lvd1)}rL 0&*IT|S`t+o_OMYE>iX@Ƚ,Iy*^ }[1+Ҩ[+T'1Z4{ɱ6(]|[!|sQ˒ p%5Y 4bDm;Foaiq͈ i&#PcY;tsͯ 2-YӀڽ7P]:trR T0= :;⧰,V' O(KO<=X-ΞgqNBAXfxC}fo\5-  0E5[\V}rSw%.y1{HN=d'3RΎꯩH>r ~5՞y4mIď%I|k [cs7~ɹ%?ԃla0D^["EqR1d2Xv0yR$Xq"-0GAs&JÞ0x1^Zꌅx7jc_wSv 4~ }:gۋe Rb_X*ZC~[=U]?Je}<q٥1GΧ,C xf prDxGM>^]A{VCMBWW1mKY1{ 0ss-L+l,A6Qj~sݬ(yPP6 5[0<M!QD70NgCM`Ku8CyB,1fGGa{r\=qtSo+SmjZC#*e|%G="64.@cX'Fj6-<|Ӕݏ*el0:lR[Wͱ{ 0L-bS]hwD{ZegP·t&?e[}^3HVѝG)#l擎D1kMe]ZnO*^.v"]+Bt}/('̈́3 yd ,+& VLСγc.["a@jzHy晍wjɘ')̊CJ&plڔ{Eh?R,vW Ȕ5gtGj54xEG xҼ~_W'_) 6V%ZŧsD,2o[[9P,ՙ}Ofo(Θgx.<{vgTO'&#SwY&%XHK\;"N>c?\IP+Q6mxJşxZ;~r>@f3y)f|?F3rɎbdk|[ sC!Q(-8e}D$y\M{Yu~aMrD2,7 Wg ulxbaӑO[?jxxc`o+-*$ҨZfҊV.7vd~(ޛv7&G\o%y`pagtH',fzZ~tU(0vmM0*s,͔9_riVF%zaj&) :ioȩewaRUGgWC  iTƎA#68mD+7b&֧\Ok6ҏJnmfx V=7GCaߚτR]7rjޚHaS`$}">el~%cjX)qs<`Q'|47ؤ>D`:>w%Qe"fx:/ɧhAm#gk+Uhx GHK]]1]_8g]ًOmbWG M IQ>ĒW$*d.k.$w/b2Ay']<ǥHoDX8&HRvtګIBɓt3fe_"zĒf)_-"sH#GqKzdaB/A c*G$;M'n0vN`A0jYeKG VoZk0Ȯ5P iksh>&k  cɉ\+aƨ)Y{96D0gMLs b;`2 ݄+ؙXLŪ&]" ҁ(spAB~3#d0%of!j.Q ')]œOxNY=Q~ $7|bz0h&pёv]m_cHGgaShKɥ3$TxD0o(VI-Uڝ~ayI*Նp2|s7,_q!#-O %$kЩ81¬ƭؔeI)6Q9>(V,Eԑٹ?;kO:X`b95m QgΨAKkA?4b?4Yt7N|؈?B/"_mڔyfFe`e-[i,e.KsaP^PtpIՙ= C+Ɣ')zUԊw&٪ս0SUOެT>@1rs#]FC^B3F%#swTahvpևSWavG!E1кe/tи(jH4.7gW9ǖy&ۤV1-O0:++X]Ӣ-(J]=;T﷢{L YԺ}l]VST%ϳXtɂc-^~[{m@8rlڿ УESש;~~/1=ʉ|187vghX"'W*X8&ly"McM[\E ^- 'A '5"&1FŀdGLnZ)M:WI[sbz`3 POG* }ۍ@ ~|Fqi5oGi>tvNThpK0D~A_ (63F§r_*7O/G(ZH4j-4i @A/d95($-zq/kG1y}kDϐ7; E!zS?Qz'ʢ1^P4y^KŜٙ"_A%U=9}l jƐ-J5BL0LQla/{tg;_Lt@0 i+c>8~ͨ?ؔ1Tz}-Z^mXyT,׻J\מ1w<4,J:T0mi_^Z Lgyztc[#Ì9ᙒu6IE6̸ S6!a>Òc|@,6ţ#*g rXjxLm 3(K72AV٘&XP"lę0%BڣAe7(JWKgx-,gk8&*w1NҤs3eI_>LJͤ)e9NYh&7i*bP9z3LZ# ՜esOPy=Q5qpS G 韛Q uN%\JZeENuޑ )C82ŗL`vơ͜ҽxƚk1ioFnP\r ,pLbG4к=4piMVpZWQhz*:TkE@E5|j(xR.$F.+ڦxo騨b~ɻedPϫbؿ*nby*Bs`u2 ^<Ж<[U KjfI0hb;;,5BW~d_]\ Y+Cw4ض[:f0W--{j.4?p6pfJ7<g׶KquxP9_[LEw& k:{F\7! Jq\!5d{p}_E n-v]эZƵÃARY(+y T*@1G!nnIH888 tŭ k^Ȭ*{mP"eP@tݴ(as6_ QJ3!FiZͤy|wn{]Ժ颕95["Bi^c۶eTwuhDh2Ƅz߻q 5׭:f8hH9I"ϱb 3;Mlj'kS>d^h~A&oBƒH}ۘ}YnӌHA fB۷~H湱5:>C1E w1WDx_Cقv页 h󆟋#֌Π S.U ;y:XjRɷ KV+AkDO8AFD'/wi%̀v=i>DŽt-o!''iU~HҲd.c^Nwn' d,JmkwXӦ 2Tt,].IWk];.MXKn߈ Fsv4af0PceE%%hO/㶉jQD*zR1V$ Q$lhs!ȶDDo曇6n~4U KVꚖ!;䃢/'w+ 쀝*!12caj̪>NcB5G:FS@Jo`C,'/;- sc@YOfc~mީw!-`뷖s@oa 7c{ &Z&6ڿ%'w={u~pw<.S+N"_ffK2I %QdW 2Qh6>_NtV`H6ykMxx[7휩$좤_*$ ?"GI>V#rEg+K2.i~eL$*}VeQ%B/l=5P[%<$pz>K+F- %YR1T^իmU׺!@>U)FٝpB_Ӆ_@ NlՋyodAtf.ن`4,WVObاf>PL(?g'KQl8_M+;!w |~-RVn!˦|V*(W:NSY藯?+g5(m&3"'%M_nMRlaèYLMIm-6o:06%qpA8b[+~ɋMlf.QD 4UڷJgF6P!|e&ߦq3i|#jvgK oG5Mz8 +B]~ Bp Y'DQɛV'ܬwfM߉Xzadh}y E>RR rߤ$lqoqL$*3mh͡TdGo![s #cْms`5 ;yL/$/~4@:dz/ 6; >mh^1>SWsӜlVxҡ_%!z%7K>fiNlGX!:ќJt9{|U%e bzށL!Ø&>7 VAakh6ao~ ˈr!JKѠZB>Z"@D:9Z>4JTQ;Jb#hsB5ٓXۘKe7L$z7=_[]Cl߲Cm^Pc=TOQ6.iڐ.ݠ@ayD]]z#'FF83 ! by]6ͷEkK(apgr7ZL. /zVTzZdֿ &LZV2ԗf+74'o,'g=쌇ckhຌR<1b0h7 ;\O^6Sn:P۰ #a-b> O: hMQ8gI$S80[sog" &Nd. tIXzhF[IvCc_C" OȰ Ǧ^d6?fܷHT=;eR/dQ{2{nl2!8/𻟫LO$[/q`¡qن"tfQ8K#c(\t®LMB ^ٕCN8cv <#\lo>V@z}:7+/7'$QžMc&J ӷ@BsA `+|w۫/ޟzgv"_ZJ] eP7 !@hVXrY諐x.{F<|h UAUk:x@5H2FaSԇ {C[$˫6{K8~ )׃M^ADljZT_W~v*sß CX*}`e_ڸ=r\>x5J>KOs:HZCbuC}SvǢ#:a9`GM"̓U7&砛~?_!UCƂ)yv`9_>H.~8{.2} uu x_)ׯC-B؇BfJ;D)}ySu9M& {K] ੿ɡeP_vsvU)k} 5Q>BA+QEf*ח*a*CJ1$v 'GLn>QNgi{ԋ'u,'4Z!F5Xq}64hS`Kh϶|FȔڹ/P{KS% yLE-ٵ ?(m-!Y|!|7c߷Qm1urd~Qp'qN]Cor$!k񉪭DminX)jVdCk*^ejPahcU Mvm%qu_Q0Na y;KDex|Y}혫m*kUhw~\~l):{ūJk_oB)4}԰{/TGp惠U%ArXy43Ś==i̅#mSB8ZA.y|qDRz>x( _Fn?eӖhߌ8dZxG?n~M]_v %:?N`b*qJR̜7 m.NMv,ߨ 2 1eB:N Z< *Kʩ.Eluz[.vu_o%k7 3|\ ra?6@v}:N96C al!2He ђk}VR2TӑcyC#/{)Ҕ )Rha5ڞ-Y%(V`QohRё=o$%9)D<^~~PߑUŏE>uYD[ͣ2uL,λi=#C^K7wק^>v2Wk"Fތp ueFD8HEI{.B'] QzY((] J<̾`[q5&cd&sx4@LZ7[Pٵ&zp Px jVdàꇭtaw`Ŵ[3oOa!Fh2bצ>7%Е:2&40q[8{%lNIqܯvDb_/$(QcEyݟ:b˟<\a|+!kGojtf c:m*l4~BB[5[DMėř;㍽o-,N.#'A`1W([۫z驷r%6]/ہ+)zu''4M <b45TQLoq(E Ո{x{G/(hͼs" ӗQ ,Κtf_"Z%xtp]x,!yH/#^ea1zIUȵ}icQ,-!Ѵh|.ߊd~*k]XY5 6(h-;cOxcy{KgsZwhpEްJ ~Hv@| iVcY sH^>[xzZqs ĕ{T:ہ7Iڮ0{M^Fzͪ+|-k=ȪBs%r$^+IXt5TAoݘe;DBTOsv)tn[90"[:Ls䖢IA9?ij! 28I޽6w d[7MYj7j^@?a^:Vԛn%|r=\?q#W\ch<Ƒ, :xjP6ؓvwюTn fm+M'ʊz~-$Gq>SYf?5훉q@ko@]rڟ]D1)<󺺅pXR0:i.|gA!9oI.Oni :!!v-a ./2BM 7f')$oZ6]G ߛ .gI c|Gxv?F."g]I5=OD$w}A!=~!rSS)-e7[nW^+swdW;Z ;_F3E0m$Ma%٬n'fY(巍$绀a0wM"M&!(̲bhz M8 lu'FI/b%d ;/96 `D+u^M2b(ƗYw?%t#1'}ҟ)Cx"ƫ7NFΓÌTI~`FpLY#a,beDp! t1BW9u,J=`cP7_{_q@8K.]x𝰓S,AbenfڟIMf|vWBp:c/vv횱(I1>5eNt:0|ѧxi1„4e}kEp9d~8vuo-Jr%pTjGo@ʈطr)ߧh^mWy>i^rҷȦ*ruNJg"v ugE.')}fg=~Ϗ}q':J޶(zQX0)nN׳8&[W P*!f_6 M)-DSΉHnw iAEfNIlۼ~~^uYrz˱ZM9"_&q|toؿɞ;kd>r1.`\(˝Cd 1Ʋ 'ָ@' je_AK"}swT4w?aۯzos<QSĘU^ nv{[Wv=E97 }|A>;Z*{|I/Cya@?XQn #lP3(XWCNބ}Nk~<}uCZ&#PQΚ+ ‘!Vgk~@eZyBeR4 f!C[tlG1bt`K~/gJhz| n"*襴xJ?U!F7s);a<]6YP $\vՕW7|ostۑ6P~8X^f.L䚮>U,>=cQk?FhIw|vhLO.P,XTF1y[ <3;/bNTKF^$Mѵ5o}lG B.S ys֭~fn}WHc~\L3N1re:B\$UTKVxPi7`ѝVtyg 16Cw X 4!pvMᆒ-UqJv=o ҢY2R'tOpN+NշGy&b^{3SI8ڂh& vSQL/dD_(tɹCǐ HĬ-I>$J3)D`okX`RQxѷAVJ rVEaxjAfЇx*pϓu6Ss\6v݅y|V>_8N)-S z#ґ7z\;cyHC!ꡜZCQi7aK/Bu7;suAȇלeZ븪$#}:?']~S}w]S" v3G6Pvn;Ci(I}R["Em=ߕ Ltf8 A8z99Qx=Z%>>'j@?a~yZ-yS#޶sN-RKceIe|ߡyQR= DI( /=&w~q}77]*^vR߉㣎ub(y D9A$K"bKn^|goo!~1 +ސ~rڃDB~*5[H)k9f4(spv@A lT76_na=Ƀo=v܃L+:W#~/OQ6x ]Px7{)sC<;4秿R穈rnv`FT\BNc͞z62,eąf#`?#L{њ&b/I]w_YS@J~ _s<5V0EROrx`Hsd#8^ZrpGKfhBF^(ꍙps`:]BPy2TO:&gb7_GEh45g<"62SM9< @9(7V.#['裯秧^rrα;ę0d o{RP1E7ɐ! uՋA`|"`rHh@i1#Eyؕ"l@Tu+F9}+a!{c[H28EQG59/ g_` ܦ9 G5#qƾHCΪ$`De%07 (l墂D%n(")oLn`/bܩA6f M7?/uڲِQ鋧Uͅ]%iK;"@(Zr%TyIoIg}@)(¶-܁lmt9ilXT)h:x-fOzvfg?ٻKn\,@\>'O>F/I#{>=P-XS/~|mPP!LbIjޠI0Bg}ј_( L _Ǘ.pSz)2;%k߫[H:{^q<&Yq0~0!9L?1dr߈O7eʎƋcر8k!/^|4G|nKY$0:x~XKK #kC 8'FEM(: %Eyו,g#; b@3߄w@]|럘[e-{|cǭ^aSx7ǡx3|dydVSPzk!E|9T1]ͥwhoC^RYR6? H.:-/;lG~Z>O[T:{;^vЁM:;N;k:Sqf>./}O(({ BŠ%5 2շ7BiJhi5/vJf~V.+?Q2eD,l47|s?P]Xb{ 7U~k;v*fobp]?{HvL a$6y C׼zFź-_ 5?~fּ׽KV]ΕXwrG:$/uc e?/n2հGAqXӞIFd5h ИMo;0x=6˜lC >` Xx$6Gx+KWb;9Qx]',)@ܕ%,$mzO/8daZn'_y v)G(i,pŌl248bP10,f$g둪=Hf"k[Pr)V3x ~^OiS+G9 (_k2֑\h)2xl[g)/c!C(<\vI0uI>is&"S)~Vs-.ʵe֕Eh)`hփ$2+Q[nTC= ̌?|CWoMN2quy^le{_p !t2TFDS߆997f}T,@M>", MEYV_4#C;MpI$铿v^C=;z[/̠4K߂ݝ_ǔ ޣywc6iߴ ڻgHd>tlK#:lpt@+m%?Ld8|aJ$<1l~mx5NJ c`oj;G{ǝdyKhs0ƃdB?qkecLd,҆C–U3,Åg q\AΡLRI_}~uoR-k Ϩ_ ĀVl&nD)ݳV "rˁ;&Sj 뀟Zr"ڑe*8|G͝3x/jؖ\ ?Ttc<"cjX~#װؑ5Ҕ*̱i\jbt8xkj X; 3yMd~2v{p34GM -%sqoX2 `߽};TGlx؋jNM -^oI৘UDs7PX"DN:㬓w#-9|ao_߿St:L r#Nym<:˓r2-@7A\BPU^>_șf~X'M?f\AEA 9T a *9ěj=ıp]su$z~1ŝ+i wÞ kU2!}؎Rw@`sR2.9dF5,v  )5vyOV8௲>;AQe<%ۙPs F_rUb};.IN4_ɧ6$of+uP^JQ*LIIӠOձof=`1'f0k}c@)]Pϵ9A!AO1z,{=%rCf RFo*7*Ny_Rە<t0_ ĞzK@TX=i%u`:7NGkP$eGši~,yuSkUJ4x26^ z.Y%&h ya9RTͯ_FPk譍W@¾90;}C{hS>Y:~ /`0 Ir`V56[ho/oڜrJӝV2:˯|u^8b/Ʀ!x@7M(Ӕa=a2Ҥ$s O -;'>M6j=.Z}+>>x|9:90wʼn>4љi&F/\Wt Y<]I|Z͗v'Vd%?"܄#Y̖ ,m'Mj.Ў`2sAG#8h4_W ݅~fIg^OHsZd@Մ[3_tDm>ť|}}qͤLb|^`*aJ(F@T}\WCrY}Zh*uXTX) _Sn7:T %لLIv͓ܒσ~kGwchhP97<@\FlIKRi #Ozv jOF)0GP_+uĖݲ\Dr 秅j;^G iλ.CF4<m9{o[@!#'}\Yc=3l5 ?h8}Rv_XK+6€g Wn91{{2}9_ѥ^E T\s=5~@0O@жΆ懈y=|[%.Zű[>r;ꚃ2/ ~G |m";i+:Uhogt1O{g6oKiFK+u<ֹW,RDy7*ڶq<ou×z|_y!=jOy0Jo#Gs?l&ޞieJm-fo){qWϣR_L%)]O?T0 ^%>W!~g0#n~e0Y&~d.'ZhoTnJ3iwehoB HEQ)3/,`e5ssmg231e?nǡvu hbcӵDv z(F18pV&O^mմ `낥k:T goe\*ɵ2W>gvpYWߪe8{ںWwǏRq6=l=O/WH|*=?>^oZ'w-V4E{ծEcvx,+S[vtuvEK]d/m\ZxY$-H V\qQoɟO5s}nky(B=Oz;o<=`Ji+R\|=6Tcuyfb^.>~nԛ+6o~<^9}7|L[O{';<:Sץ݋yI6NJ/ǕZv}nO_ez|XkvN񬵼C4*k';/N%]8^[7ηd{Njf-.6n֟./ ,N]VU+uk֞Nǥ㵽mJo\(svsY;jWQcڬ_[{QkV>ڼ9"/u]4Z,/>;mץƺ0k+{v*cG>=hVt0T-\6֯<|Ԋ_v+kyRi]W #kgY˵vѾ =-4^E#]ܜ_ϊn6w~Zqicm{knl/ꏭ{^^xvhnJgWjqqwܚ{!6][\۴FOi|`u{wVA=]Z/W畟}gOܓۯӓz}X:xw|.Zo'xs{}DݝW~nm6b Ɓ,W/o}2{'?Wχ۫+kk.nt]۳+=|piKlcuX{8|i}R嗺+++_o/<{ {cٞ(5xNWUsw+}kx򲸺uzrvuH!&qP,sa㬵ۺ8:?ެܾܔww۽YceX۩ MχktrMϋSPyjNߍ~"m,=.n]{(hyx,md]z]<_Z}zL;vxW7WT߼޽ m] ./.Vꋻvqy6갼wp*>0&kq}yoݜ4+g/_?>4֋cEɅ^ Ӄ_{kk0Wܾ\ 1nTw_ Z{X}]Sy X\|;3owWYr\YZ} ׻M{a7kϛj{~wz|x߸nе:n\rFKGHyh}bo/v7Og -b?vvsV߿9Qt///Woͫ%S>- x4wKťjGSflnueo~{ڑ g;sR||'ygWrjר @_dpP/vmxzc~w*L姇{qfKo&y{{/ղZ׭Ŏ겲QJo{wD#_{=߭]wo8Y}wUW_W.m)cykMY;RÓcWcSMsrNJKE`v];z}^Zy*ݮb:x?IMo7[ GD~]ѓKrk@VsTlUOHrt`oOίنhj]۾Y]? ak~UޯJ~uwSOkkƏf eLJWbi1}z.Qu :Ώ+V.O܏_Uuub7֗vj[?W;շb{{+N~ۭme`}}77p[uqBUnoђw+wÓûǛ݃uX]o>T^[w 'GwQUoU+յ-?]W^ގwK[@PzMLX=WNvKo7vn^Kovպlݞ\,@oq{X?zdw7QGc xi<|sT}xxw&.,->E{—Zr}l^)WoZa/MŅ->[rZFR;h5[E UJlUOGzb{h|0xK\dY \"nfSL?1'ۧR.[}ʦ2˸ )K;hVa)RcT*6+&XRWlt/Vi5,7bqv? (ZCfz>@~UVJ,wl5woz<МtH29Er[Ac5}/7>xÿ{7}op5KŇ7x4U/K񭙸@?5mF0V(BP]'c´1ƛFݖ4VV3{JTAjUע!˽'yU^/>5bm{~Z~hL-JwO*ðj\~$jv3K޸/Vp[;P\,]7O C޾_9k(a>TJY$c*p^{wn嫿k`QR%z۲;/aBd} ^FW61xuG,iL^]M H-Xhr?Ye_p_0OAx(?L pL w haTGjb";+(i?sSIPOwT;RHQǺ8UFzErNt?<'~,:&~QoOoG,:툮J?]U5sv}N'K}DS\0U'iTc]|JF3ͫxdF?3`9t\U#PES:Jq9fAGa GM_Ȏdǧ HǹXi_\?st*f?Εi Sv:3yfJ?ׅ}9 嵦?jMO ?&5IsW42=;Ol.΍3z3{Zs>G+n惚#^L^;=@ %: HiGP}:М3h .2O/ < M <3#8Qx&1-e%\Xz<"|›{`dheFe R4;GVY_a`,J[5+y%2f&qK')2RoTH;LND۷|GzO1IxT:Fv!=.OO8!) dQ)ˬԂ3BM,)ƨxl6C8F$WfHBaD >4ְiֈԵpwySKi0`}:QDS 4ӔF X5 d`̪BDE,s2,V.ca'#4cDǏB,ƍQ̘[c'1HbO(ѓ9,and Iq{* P@)Yp d@c:7wVs,X[xز .71]n->|kb!^10++45D0l~gwh nKV_[oeRلQ0x.e,fHM?.OE9'ʁE(dp[]~O? ϘBH;_R*,4Q:KvޖyiP:hb׋T6[OFdeE1/DCj F_j,HW08jF Tշ&b6vwbhtחjZb95[JT{Չ!5i囼17ӓS{+- a*TZS@%X" 2V/+)` 5\BEK8s:0F^i yN"-Pj&n]>.X87ߚQxHr$L󜂿aʷ + Xx]4\o-#f.hnGM#&,Ma614KȠ:0K38Qם:E0?p&2 p7`Z`̠&caɔ`s pm_?)c;:I g%ak 8IX1*IN+s\qNݿ"]Tfh쏹N GiTz<fOҩƥ=S5H5 Ib s&;O1= 3? O!\/<* Cz,4诎BF8H_w!!`}|@0dU2E_ؖ>xYjzQ@|\)ׇEŏ;P. 0Ҟ:o\F-~our7>>IyS ^߻`36N>%ӏ7/륧{oSG=}Toe۝7޽V<͗J >?'=|,~?hx7{i֊t/6=_\_=o_Wj=U2/y]>ZU)k.{ _KMµko>Wj.gkExrUy:^^ ~ %?^}k-j}U,!}nW/O9?@>wYQO&Yl>_}|0EۗmH2Vdqq WK-6s}o^\Ҫqmzq }^ؽ끮ӡ1@:faO|*Yw>n.7"Gxy`:5w)XfBӝ8 qd X!4_Bu8PEIH2HIA +`㐐ORRKАһ #aM!ݮB֌6f/;"׸#S~ǟgvF-\ki\0E" v ca{1p^ i77ݏ[:!l&𻲟>qX+,xD1Ӣ}4: @h#(/P1+% Oӄ7DP\pe bx {ZMl93~pn;<=i_ ] q 7hnjYIҹ~p zz\TQ$qÆ nkEá`u6s Ew0J4{#^Ɇb*=]^z9~̨X*oY)T߲i{iCIAڏqY[pnَUA\qC+9P8p-M.'=Bg"RԻZ~&oFe5тp+08_s\Qw mFaaQ'=q@8,xm\(ϩ,`-n:;/ۿ=q= ò0E!H⃂Kw6 {Y3u+D'T_=,d{>-)I6 Lb0ʨ]|,QDhM$W 8=l-XhY)iKKVS0Te Q3Hk7RqDLPTeg^ 2 _w@\ H`O1*T֛졯4c6S3yHw'y:ۓ<< #H` u@\y&0w>މ 4V5xKqP :saC::q*VV8D΅b4Y +H UMPϳ]qØ?J3R;u\*M -eVaJ(C;JU ; > J#׺uu0g WF@xf{Jyl"NVѻ9eG-@PzDÄ %&V:'tYZ _7=!P)BP Bmd> Վk 艥f V(' jXS̙ݹϻi:1:f(jB FPJS>Q]om֝ReV3>"c +h&3K5y 7NhHoq ;"W>s+uϕKof'Q䍠z$F egAZ ",yl*ኬˢ̈L й׾yc{XyAp8V#'8O z7~@ƙ߹pE(MdfzZ 12ȹp{{2Јiר,sR:_ǨŨ!wњd|`oqnA01cb!JGp2cΊ%-1J8 ~^jىA?(FYHG?Qoy&A<>f'R D?H7pH x;}˅% m>ASm&ס-A3ZZ*5kvbQ~yU?`kT5JgMm6ba  2;Eyvp;D/QK!  T8$O"KTZO:(b ;nw&m4<1>,ȍ,!o4^!רwփݛ%w!V8g1t%D A| d*ͱ|;f5b 3d[\f, 5;1a{ L)*1m4q{t bQi7w K?77{HQ-2?Hg|j 3`S:eeSk6 KC7_[iRzGJgvE{_ )k. 1o`1`Rur"7#KC .2cL%nUh̴@~1Ȍ҆U@MaDC-\rdvY4;yys?+˨QѳB[lKJ(ě6sT&BjqY4Xf8CјHL~,&dKxI9fj} kn)0E =oʛ5}*fC Ձ#'=D03 M\Ti;3m$Y-Ǩ9Og3k63W㸲@5̦`2ELlȇUzP Cjol\-?V4C$Xbr<?)ӹ%OPæS? d)c& ?,QFB\^fC0;ȏ*5m <$,&CI`kvr/jl7ȱX tcT[q5*BJmAx2䇶κgqBiJ4'Jk+e>xP2Y-Pi6Azs2=|g` 0ȂF9Rsr>Q]o='1bbAM%N>QīIi䟍CB2Je~_^_{9~]{zPA>>}CrA\`FHmlgjJ= g<9)VXQXS:M.\T1CnIs=y7V>tj"1;GUQun`OO {VJLſ5  U L#8 ~x2ȂP՟.X#Z١&S{h5Ґ8 pVCxX_2YGno,"xέC6|7V^w6+FXk%^{qEzZ*||=&~*WoߖO͛RZ8l]~P.U*%'>e>oAv|?l˹dUSZZ9?}f &4CwG#knw5: (KҪԮ#TVmDjz[Ul9wYAcg?Q0,w)$jA8~ kL^-IXM0>HA'&j{ol-3^Qv_Xxt\K̈NI(oD,!yw<-ə 2(*3 *S s}p܅Ntb?N*xfcq*LK(A"| TmO.kN"bar(8\PaTnMqɍ+LyќA5!4<% Q#"9`<@4Ѓ"'5e6FX2 ^IP@դ \怉J%E bȶQ7E$<&B kzbHD-GӐ>Hms>_5ɍk#:QlQXi+ |!Q^Eh& Č \jFV̈<%P$JS- ="* =U PB(!NbT26H4'FCT CC,U"YϨ2{Bh6ԙP#9D O= xmC+)3V M)C.?/ΒR&*[n4aS*k\Pm= 2s3T MO (R;Ubf2:2L w|ȌD83o gb!  Dq wRc"0~ (P"T[CmdxR)J\☦"ʬEqH̠!E">:; 6FuF˸Nd$H+q4Rl3:\F": ג'R4w,f'7I.l$Q! H&8 X7 -;őD9)ovXCtȉH!b>><֑\@OD6e Z"!#DyxmC$‰%\#Ij`L,YY4ʐ|bs VkiD걬iДLS0Uۦd(E- lzbTD1h)zЎ#RhQ]eY$^ $j,~T!"3yD^P&p8.eRCX NC'"E<dvDM G;5H&M׌ ^ (AeSmyCˢviÔFǫyl?4Vd/Ɍ6Rb)d{=bٵCyD"u,4N2sD:'Qx^1=wd2VOS3 6d,yzM:/ =92?Ϝ="ƍ8τoOFueʎ'sFDp?8$@>YVgIʡA=pȓ #Qrsrr;I`|lpz \J dW۠JD?POd3#a|hUL }&u|Wxdi9,1lyAs?ćU &桃RGs*HrP@%43SfO  JpO;2 0WBC9,{CPBmVϐ(L@!qpBƚצ&,%jR!0#gDX$e9lMCe4hHcj1{L!Z_(ACjbdAJxE,aCAe8ָ@_\4J}[O_?(OI)0ۤxt>+ቾfR^l̤EXO'¢x-C&%(+fx%Q6fbq3QdHce(I TA2Za1pMΔ[vف'CGBHA'$BJpZkT_=M99SjLBRSPTG{\H#Dd|Hl>H(U9.":pD@ʤlo}quY ^kP :#;sOqdϠqd9 |"JTV[q5DUg)dϙFb%1AX ~{dTMvI\h mZJ5XV) 1gv4ٟPC@@ 5A%3)>~!Ei'v(5sٙn1<1:lD&sRv$1mϦIƽps0e %0:cϮ&\ر94J&6SU@\ݲGwK,,I2{ `0.f ": 86)<ّc-z !A@M w bzCۤa .-fQkI܎lhVLARK=;Jtyxṁ;|AZȍ&3\fLj , {m)9QXpg""DMCSf_cə)k-.\0xğ5gSQb[U ~I #<'%ve7^sO12<+y""rb-)b=L.3S1XcTJlKM@{L%EX1rPmV=š{&u4 ?'O0M̅{(/rRp(D+=$*B+>D)1JrdzQC:R~͹_ C.C@|Έ-X c% ܧykT_BRX!5YfRib._31Rp2}Ȩ2:̍ayCR屽d=Nx%q/̤RO K +rWjR9}T,4T<3 PUh(14<&u}0Q;$XaWA@Oq7O=ob.'}Q[ԣx#&&%Tiy ;Bښ^{B5cZP&`~:t, $Oe?j`dD[a<"ȗ:/.yWØFTLBc?{!Y0sEϴ'RDŨ 8$t @e3 TCx`͢uLLtTsahXA\Ph?EᲗ;&nQYSSq(a*+zĴ;ܧSa nb0:aZ}鏄) "z/sLxJҒjI1{9RQ@}̺LFVh|`@¨faV"i LS$XzCQ_;t|*SLMY,TK+f-ut5}$Sn V6f1 VǶ'2+/ vre5)=;eF@G`qs26C%prfz}g ŕ,3rcGrdZホ@u[Ծ5OVQkyؼ)6wn~,l%FR}{M{EX|sZYnaq9 C#f||NsTcħWWͲÔnՊJF+f. w9fQ1Fxzf=3"sȍi}ˀN8{z(pӅz=m^~\;jMKZ!u*90++bL@sT1w@K\fszaT.\/T\ ^Px*J;JzR6ߤ)(;kňcA1`%$?x%:icyLl)]'J颐[&.DLWU, U]靖gÒ#];41ĸKcBϱR(ȨEDfAzDZD(C`DdKLj\X9锡(j*+K3CB$7PCmUr' [{ l{ba<1yТ b!¦+B8- k}bTBP@ &!><)1*4PR ?DBR371M qO%Ѓ`Y9J9I!q 1ۋc@SL- eamONڗgH+M i(.OcS[ogXLQ`fLjm9QtpȘQœ"Ƒ̕{kٶWE'  cy*Ehd _ ɍ:,`1dQϦƧmIPvQ  'E3Eo>*qMZ$I `0^Y,ENKdPLО'kEn15 9^AD o.44з|T2 \pӂSvXz:,ϧ8h:YJ Ɖ 6B6:=FW@j̍I${b\BD#`< N䎊4==/O RƢPf&\կ(x\C"dQ#rj8R!CQ]YUenV+r A#TM q7 $gp >#F]g;⒯&ߒ6n q˯F+˵=xxS//^/Vwj?Ԯ=_}|qwtpW%ٻOzrN~hgb刎mVmTze+skd y^g)1,v1%f4'H]&}wG@#;c["0A#y'ǔ͠Bq!$*Lx.dG~wsJ񠓑#&Sܭ+gSBebC h"tg_\{"XgK7 kVXZ+j};p+jbR^~Qnn>>䞖t?\+շoˍaQyh-.G]y(*WRU׆>]<']1/m} ("WAP^;%C,7fxgSt_huuSUz9I(KҪԮ%uZtSo|k1] /55h`;)\X#; 5i?5\$z 5@G(&EpC{]@LZ&_0UWysN{&+6Nڧ:_i*ICλ;AC&?UĎᙾ #sWI}0"dٖN,/ bIhW2t) Bn;5CJl#s%1)QʞRE~Q|gh+nFaKehPHX} DB*B=T 5=b # q 9f-eϦd;A@8$s!E1`ތ4 'G1<{N05RD6BdJOKhLSVG8ɜNҳ Ԛ5=1:vu A&m\y2\ynk̦0!k0hmAiTwO71p4FDt( QNx 1Q DL0Jbdrj')iJ ꁉq'Y#w=Z NWG-~9Vsݩ̗*.\f7 6梿J`QT&9Db^єM{STO$Ѽs0 B=ǬNքщHQa,(Qf]רdN|grdL"ubwddX?'V5̖Z`?O:*yhsxu|טq W-5,M' ƈ'D'BnuJ! J"Њi"ϦUu/άv2ơ* #Bgk:oc.<GɌYk ɳxI%FL<kE;ܦs;ib/<S \C5>1":7f _PϦ6-=`Q _ UȎJ<# 421YiLN@( 9b['\QCB`$ :<,|"Dx0$i+dnxw=mO mT-DXb ǦwuvDxt>3+e)dD6QG&h|B++d?8*o1OIN*;YA.5 gٰ xt_ᰦ'E'PApf~<Q]={,Ng"E XIB9Ov̤|#?h*CLtr$Y}j#ER(,Bq**͡GLRQH0yW=-!abބ}fX}iר<;Ht<ѯDKPj2$z<XDaGg2AweQϦd;%9oh'RqOySAoc.J$d_4bz_jpMPÓ`vmzrɲ7qPC\JH/5/{,|56uUO #1 Q,w\JEjmA$%}c&V^ވ%4C+= M6%$v֧פ8o'nR8" c*ITʼz(U@F@J 8NI/x^}e$IaK,er"w=fziMD6Y5]zxOٴT1А(K!i7Fc;I7Fgwc&AjP@T I_Nm 7 a1ixsObQeA k%]+wr; M FFgo\M(D)K4?Aө3p*Iwu+2"٘ \ y{#7"$=Ʋ|b-T1.BRFE5_JV@ 8xp2 #_:`}w{0B'AcHfU/)H FJ Ǝ!LT#AZa)Zi9Ge#+'nI @0LoqY_SD|Fx ap`ʚ0ȯXjpwe(O剱Ih!Jq[1 ̶멇!ۉΙJS$dšXCoZ6=\ IT1x:i~B@z6KKAd aP2V' .k2o`Pizbt#t!,&x0q<CUfLNw6L{@JƌZ.!Q0¿lvGeGwEk :hZ0r$GXdzGW`gZbl%X`Qӥyqn~Ӝu/0qay8pPY~ >_d2q0YHA6= S KÂ;CZ kT)zX[<\Ўm돕D̸޴BBCB ~W*˵d,ߦG fl\P DL c2͎= W@nR]W^ۓRȊ K.qA]4,Ϭl[kLHCp>Xe=c}x1Sbf^6F}aU RU-Ǡ7t@DSFLIpav tՊX]ȴqZaX|4 S/@iKE֛ϡppgrc0L`;j T\4kS;qp6v]Pޭ}JE$=o vb}Br6._#]|.^=t[cC*DV~ۂc̿6>j].m_r# .'=n è guqR`"?#~8 ݲuUj:g:% ZvjI, mj6;[\P3@B٤L kNxa,2UWrCݽ6e#+KNF}t׾9SuM*b;ϤQ ;zKwaͶL7z Fv*ӝMϙն/}NUvv- d E_rOqj)J MU-l>*{թ!?%J*'~3 K6)~]U?z4 :%j bvQ.Mz+M]g$ A]lP0MEPK* `_ˍo<*=E@vK|ҩ>" GOi~{<'nfoP{mWdJe:RTϵw bPzv˲b1\:;cBCܙRèi}tlMŋT0s+) 3)ŹhKDodؖKcpP7pdJWPzm+jݮw`h|0vMź׿ n ~+oC͇B7KF~EdKK-/=չCfP0 ]BO1phs[6Sߛt3)߇_U9RL;_{ ?ROCdyTc}7jgdl4nY(lMy7}96e4Z:Pxe]s8 > EmƓKX'2~6.W tdP k o^4{ GjQ,<\esNY-B>جԴ^!/Ldr Ki.?hmHɳ_VgcNUZ {ܢ Gh ޮ-UQbSh˳g{.a7)(' g?o0y ۉ!ec %uɒ \ J8]$%nȗҩ4G-ݏ~(Op.PWaHq4w-v8/{5uNK\wem ΐ%M!m G8^BY#R6И;73CJY w`jhN9gdi~ 8sZXp<]*V}2]ӴN/,ݐ-){o6\Le'1,~ } Eq~5Ozd>2FMUž}`UOiW_-IJyV @QDXFޖo Z!tɣ3,$ղ 2Mݝ3ßӟ#^AwNm^tJܺ\QQH5 )óåW#=5c6HE jZ/{XX<w%U֟nπYqgd ʝwW̓e^9? ⪢ٓVhx@xV8ۯ*<-D,Qx*:ӵ7I%AMu0yv&is)֨K#$7_<|0Gm՝AGxWe8!O9g!mIױkøLG,l|J>ài O;4p뛳26 6'Wه=W46J$OGaZ&^y(y\[@8w\NPCxvEu8fxẗp#Py+6NUr xhK~K׸\Jat:raG!b;/^ ߡ:( fAM g'vY_T D,I9>=C`\PmwgYZmnρmC`~١#c<2or!737.ޡ>=.jќɧw bPn䋿ry9>?CC5kl,)[;p,x4M.e;lH-Iuw5e4s (  }"':.ݡQf_z:8&k>iITPbN;8 j(83ky^ CT>X6rlЯXUNxU%s=3#wz-~Ov .=B"B!zDg}'rl^'x⌿qX;w:Bz~hwG@,[Uʜm_Ā1ٔyO|mhϳ9WIffw^C99" :^OLjcBiUcH.8UٶC"F8ӝCE%W U);a9 vO)9wQEceKhs! N}qЁd^/0z#[lgVYr+3H+؞ڦ^=rjW C}?vwW,glOƬVag]p⑽^];3 _/nx&MdY=FIlj0OT\u>Iz){se91|GN(L=̥m eg=6[`,Qbj],ٶ% N!!z7:7M9<;475'cJC*6>gx ghWwNS~`=AOZ [*>b*`Dv6W b-u^~>wr )Fu]3hbbdfOeciDA~Mdt Trk?WD$|ònE2*`OlNg)R;Bvg /Z K J{%MRfϦDp@&o ^g\qv.~Du-9a۽,mgT14txl )$lȕQ8eFѢ3ۆaiuW+dq۾_YE! v&b֜X3n =m2+9y[&jγ%0,@Wŋya5sUM6RuD&|6$8Q+Y~۷O/$SgbNiΘ=B"NExh-Ŋ;-!dlلFubw~bȝ_i!.8G1+ő;rZYA8 n◂u)@)M)Bt*l-+wEH_-ŗ?)`4ё]AM+ƙ`l̀&qRE0֒@›{Oױ(s 70iip!#/-3k1>%i,0JtJ)\ sdK]vLBز<~?)i8o7ã;ӜX0uVqA)Fkj9!f!d`ca_/,]Wg8qtxupO3dYrDu$u]Ö!q#s(W}#bPӊc o~"pމt4ߪ1IMqs+1ݯX7JitFZ{g%YTR=dٍכ1h1S>8$;1pJ7'Kw bPӊIj/NhqL&t{7mPtHֻ/o>5ƙH.v޺}Y-,k~{u+Dsy1f?&-~BOC:/ߡV+(qmlJ#3~[jZ/M3҈}7?Y.ov|^ݭb?`ZqM}7]8"YSDzTH5 6Eڿ&-?}-)g_;H~&U]]o"9rp4kԴb{z`6~=j}aG8oǙG l )߁8A]WLZ~sQ:ۃjtR&gp okm7qb_u4K} uYL:TUV{;^6hS GJ>yX,9@x^S3C99ZC.!O w jZq1몓 qi'[ ,6p"#9<3 _PqYm}}?Pp8=䴋:JՉm1 m-x'fF Msw*48F b`K1#$^6Yw#Qq!x|AM!壅z/fU֎S!U5''.:d:Br$7nE;1J Vp 8{'?E]J֓[ԴbطȌZF 'Js*c>QrI~aˑomQꑉ#|6_ys$9O{g…P2.GJPK- 9z=˷G)i8:O3C; z[=: +wV.kߜ;uFx5HC$IG|Wcq!k[>EZ Ԝ>Sq7qpIh9&TpK6 =dOK˿2>ɹё]?8Lf9<=&F4Vdؓ&+̑:1M׋Y zE5kCs-J $z\|͏?~-:aPw*tc(n})!)_Ep9y]Z7KWA iquIx֌irzο9:u_ (~ۀ:&{{4tDa9"tj0J%WramIB}噴qFWu|_,oK.^5L{".7a5}}[n;[vX (b2My̻KkR{w}KB;k6p Khf:6@;oK4e%G)ttimwpVemItЬ٧`vY7Eiv9H=KպL>twm@Gk4S~' S:ù2bV,3;gEX CFPX:[(˵?,2%uzID=_lw0^桚vr˹L&fBpΫ q-9^p]oKh:fvL.ǵQ'7YPLC`pfMWiQ嬗fR/\O}^5d $>#Gnw!Svc,ʍy:%"4_vv8ht lRt&|o QT!z vmQۜYq׬+$x=^jx=`, Rq|q$e\8i}Pӂiaѱrρel8%A0vqN J8WDޏΜc66hX _,q +®3rTҽmۊa;inn:Ò8=a-ȺanB(8VDKJ/.ŕ.Aª#X*Nrϱ!Fh' S 4cdRGDץW`a"98:cPAӱA] @]0mI(8t|ơ8]^b=f|JGF a R[ew<֛;[wAӳ[I$\8NIZ .K*D $d]A]9<,KKo0d8= 4fFUOK8JqV:YyU-SZU1Vi1of6%Gz0J {G"Z 'GɣprAMŸ;Z3ףHHL;$Eqyn-IIzIvN^sݹ/NlCDᰙ$Ky^9?cs^sIzZ/9񤻭@po (bPo+[y_`sǞ02/N '̅47F qf;KN\VE簄|nY)|Z{m8a2B9J&9i WsMoDҫ%{[|&;ʼiÍԴ^N1qTG"LX)lL;MpO0s) VvSFx4(Хh#&N 41[[]/+{yo\3C,49rdyn|Q|g3vLj6B5o:MӉ\XIfgHGC rK֞4_LHRFPUy| C,9dԪ Tmz 1nh]oO] 1Ng#RVN\qmqNnlG-;XCAM덋}+t7Ǣ`?{p / qȽPq:n9PwUe CHsQd"u]J[r()5qq3NKwap J'2Sޮc-5WDi;p^$QK h)(0Gu/&{.5tjU_iSRCq/wRJ^r}yz6Az=>\m:p+"pC8wbPӂP. MYXӯ~ \y%+ ~y3kzZ I +MH"'iYe%΋wɼ(=!8rN]d,^Zz(u]/qv!c)cx;X0pT `\ʑObC"ɹ4@(G ڬLʮS f>b)g(<8J=}S}ǵ;41sAE 62QQ,A3t'Mך4'j"oC4Q rt.yɎzJ)dzyji.$p˄+Vxg}a>4[X]X-?W-,1ZS=CGM˚zpu,=>^W5.}['u/Rfm?XݘȂ wͯ7SKNBdh; sKo_~O~?/®_9vpxNh)ꕥ~}f&8liDp:D"g"B!QV{>Ek-99,cKiFXX 7F]{} BHew h.w.اv?Ra)}pS9DͲ S\s jIvBU[Z~!~iluN/1TH\ ey)Oݚ(]|&BxwƖM2;֛廅 [N`)X ǻD!*tX1QovSݾ$xJsvȏ?w+]~,yQ FjA,L,v A|tV?BPӂ V#ϣp<[M6!g_7R_C &gH6Fx.lnqY?6wsox.S١i*k z`\ qoR,Ewk"X|8/xf\ ;\z"B>b4Tpeo)bPzs;CbbED.(%V80#^ fpF r _;2Nt*Ʃ9cRPWxB^)\Z>`fk(7ԓ Cĥca㙳 Q@+}DtiZIQد㌕߰QX*7]tsfY-B ˆYrm!uK'"dJGI0tY\Vv 񻲙kILpڪ4`,Rd̓EH;$1d=ђ9q߁$J1MM&f>҃E^kR~8,bBcB[g`gu3?T0[WQ6z4ng#֮/%B_/-xh֨_P\ɼu-Ek7qFfABدG/!;kI|3:TxN#\ ."3jU9Sqt3 a=3‰<s ou^C]].0'm}P; pA(܅7!y~ ^+sLC]Kg5Ѩv"K}¼-u,FN}䅆2V&O]XB^tٵWbA/H@-O|WHxQ֛ϋp±',g0Pb\y0B Ǡr)&%d{U4vaq).kљ*[4A〣瀉z2E,[ |!=/Zjid(P!P'9o>dz qi]Ustmm,]i#^N p ԣdG6䀽{jYk)'-RKn8/4UUЅQ,RKB^027^\T 0kTi/Ӵ\:1K!/[=[hQKp~B~Ρ*1v}xR Կ*.%_% Z׶>u2R,Hs mB]0;\C݁Gk3sSKy鹳Դ`'M䃻vq$iR񧳻Բ47 ~)ǎp¬ie 1G6Wu3W{ C}m\,Cf"&)a!aHa1^@b)&f}/H~4euwl8}{NADcm$W4-7 ش]G7pk} u8dtX.]3 )Z>+tZŴaZC+%;g\+q ( zmfn֞1 CT PiZ.˿`6&¾+trͩ xz7=c^XzN;W\JMŌb/$e 0 (őyN!/$V;1W$ϋN p& *ǃ0V4- NĨ 6S<%t1 xa#p0[#{c u ]=n=LbdWʁCz`\MMߧ! @i*|LC1iBua\G`$[suJ- 1A.bTFYJxVtu,$ZY[u4>dvV6s2@s:(uawv=c#%> dPŘ%}Y4(\2{Ne) MJ.9^(8sD9Lm19 v#"ef_q8пq_* |,~m򇼈] PEv"p֒67Ǖ-[(Y\!$%RC95$҄+q$YXh$˵kWl0=U 4$,eE*ݽ8{mkstX IliZ,#g (58KobvAi];PQm#/!.a>8ɦڋwv8뫶֩!vaCrvW3bmGn[پ)F%X:r1w>AMK&U<}=╫l]9o 1/$zUk y;z^YUvAYm۪eTfnl )NL:/Z$vs{^_V>K$\Odzb.b+v4MȄI  0'كp?r93bf`]_Wt(ozףM}Qނx60co)Vw}_ōmArl%mvbP;OUS /~܇{ϲl0k^v?0rƱBBj\"/7Pi#Y+|۬-R;2]^v|7S̝zOiVϾF?!2gbkaBJ1M gކxswka<rc 8"wMD&P@#Ey%̙5Շ5I,&WZ?nK7nGJɋMwώښ p$[ mɱW7>SM_1eg ! C2Ŭ;ݾݎ+08vW6rR\heXx$g`]L_hUw{Ivbjr[ٺBRsvx"Y}F$J0JwAbK@y|6*M9G)~$y,g3[ r75HW#UƮ0^./ u+S\~jwDO lZ2.ߡp]d@˯ٜAlʄ^ז(5'_oGΏ! dݼ䭻?a߀Ik<0AM+g/dpGHc0,vN%MB=rC!6/o1<G:{uŬz }>8.)($ j #̿mz]^ O0F@JCDKto,χ&,V߮/YQ9 c7<#gt~xQ7ωwkvXN?`NκgTڊ _}/ t:@;=(3: _mw/ˇ>}Mٲ?7. n3O_cۯ m;|3Ͽ|`>_t>Ͽ~,*3's5s::]'N(ww4#BV<}إ^F^gDyb; fvxc:n֛:O߱[Jw!+$>pJ(OIՎnym%ٍLvr؛ $ddM]AҒSe ?h-!{.R-?*U,ؖ8y;/X"kSZ`큰LmpW!1`zb~qdp>=fXu3Rdυ)chOD\ޙbDUcG .l,nG{n]+~xtmJHh@ ?6Jq6YhMc~jU,n`?6jNԴܞ9(n/ wQE lV(ݒ7n(9ݝQ뵜+I !+$(ZD=<(C0Mҵ~*eky ?<.tnҫCC{QN;zvLr=_v?$X$k3)2x1CB^l|V9 B(24pY^#LnԀ66JbyiS|Xp۶?vpgy5pEʖT.|V[uVe)֚;uu,]#2{UћϹU,#eYf<.,ơkˌ좲.-7==~wEV61S3?{õWboěLf>&ެ`4> z=z&z3)gĐn@(9+z,[ 䁺X Ϯ :'SOꨒtI KLm6I WWKcn":g׭ F1i=xnhI-?p#.m+)#1}EWU%q]h%tmERU0^86F69IIqvlC_aۏ0_-ֶńV05H[jZ/ym`ڴORK8IY$oB^7G,- /)tuprrT"QCQ0>T]C}:,]ϘwP7A]L"~+@{祭Dಝ׹[(9D>|J=LI<5py8WX~ ԪX)0Q0N;6DrFe{k-ib| v"F.>d#цD;+Yo^{yD1i m$׌CTե$#ڈ>0QcwcQthEge(ّ eL=ξ>72pCg+&9Yvbd'ыUu]TT;̶UE!w>#EW[*bzFB?{pc ׇ,dƣ7 X9rX΁nhd$7;^Ict$fu~(5ן@.{788mur韕V0?scvݍ8T1Uy"(xqCWeϮ;5,9Dۙ 0 6OK֋T" IzI{"ișxjkԴ`{^tV·'QxO^äBݿq)cjo[vs˯p驻 Gʷ|z*?顫[?}>ɏ3?r>~ÿݏ?Ϗꗟ"~D@gӼ~onn>Pqe~GnLWd_Y,<I0>8 lm}]d`*щ2תg΂MB+jiG>FH1®[@ƐU&LA¿7U/~zoß嗟>xӇV_c_?׾|O?~O_>w?'=__>ӟ?O_p)\?1L~bz9ypa^?O巟~ҟ_?~u9yWw>z>/}̯ׯ?29_O?8r׿~|ꪟ|1{Cr)MccJsכ>'~'t7ZvM87?βԄ2%K>W{y'{`(˦?-2_>:tD-r#.!\n'nUKSOV\y׬ ۣ퇡;p KpIDß)whO*M4j29~r J6Rzt{ЎP}Q?+nAq^{2yTFJ-{$`GW#Bi*X,O7,n_~ P?a)a΅a {0c)p0Gk^*='B N{(|"_DKO;tj]+@"l0m߃ 'D GCju,ȟ$7"qu^q bPӊR?yfYN!3n]즎bC??wۅljFVu!~Oftwev]uw8D2ݿ1LU:ovxu-eM^q& @6UG)i(LX(@ZHP3HSLVs=/Z @lWG1!qgEl8Jn^Pli( rdz .I=L2A \[j-( ǤZ (tP bpC't]eOi\0@cŭR{# HBY.+^|F`1%EhxTNo7L/lrpi[ H@S˯2];$=";-]'Rx@ni .\mt2Hr%rC@8ƚz(YS8Y_x@t$il5ҐqYND7ʆ%6WcqƑ; $l߼1iŹ@ȅ $vGc&/LKG/$&&bc@zNP){^p,K:ϫDj.GW/pS"xƜe4Wr4)"yٛi EX"HQ94ےcɛI!Ej;~rH/h)8 􂐘eS3{wB/Xk0e G$;~f{mǂmm,X ӛ? W_ S0ʛ7%z~)iL>cMX)G6c A8)\ ѱQR r hɹyd.]u&o[ k`Z?6͎ Zr`w3USrc`%?4hF)i (pLw7ֵw (8(K򬎄hUL32>%eL*Ӿ?eBonM!RqM YAΖc!/Cb3B!Š2^D>磷Wtџr0'  !I㪉Qa y;s;qVnȉ3P7d^6ѦvL.ȉێ_HpYEPnw#pB] /-?;gA]WLlz7?Jb.8ޙSN6#Bfı 1N9c<((.A\.6~^Esi`eCS$W2;1>2 jI=b9 ZwbPӊx0c 2`PaXxut ꇕ}:Gv$ו)uN:ƒl#ɓ,RR\$ @ctV׫# CFwl Y9\BP}R8~Ԓt lb?GriRHE '/v$0zz]\^FcGߐ\J|gXkc,{lȷ.kTdE Cc$l9.#5؋[9YKyJ{f0+``VC^(89 %^P]G`=ݱ@Rh4<8N(=9w%ɐQ\I[^ g;/^ xK9; klz!1iżfbEiae{PNʘA'&Y#?^.` +؛=d+:>t{|C<@X"Iɱk$= 6䔽y[vi36րo?Cczm?fۭ٧Fg9`d`xCdKO"Z6HZdEhP bgǸ6]bE~Qy\(sj"Z"xKa7xM'cr{#.FjNRi| B62Z}[fp)oб|Ҵii`bđ @*i/BȹmMit1T>~zFȜ78┫xNGLzCcD/Ѿ $+.-m^l[966,\'Yd;~S֡mwxowE κMa0N \RW%5H~Yz{. *{:gJ쮅Zn&?xKW8w0‹4,6,df#"a?$.yyF1՗s p9ЁGXQ>q wԀp%}]?ܲ.eS7[e]EC|i].M͏. CƔ_.i3K!1˞&Nsx !e*9 u*MQl/6_UOK̷.|'9:wwPj vcih*~G+y}CiEI.nV1U!`0¨_pbfG4CI'^~; s\bC 2~VE{RjlF|k${ y/[$a'N2Yk/>1P1B6J&)4*Te0sr룯fIb0@ [ mEΘ7N?sli|W ca"G&"R `7;|6o x wH>3QrĹr) F쭈q47*r4Rʵ!vm4ru!D-{w-Gؤ⫥0%;:Ê撬^)|lșmgEFt 9 ry~`?yczY y_u:I:.oldm)҃etr}ue#!u+qidt5Vㅅ yYt"vɵ,:3-~]! Wtѳ.pR{R3b`5/mG"u,PMWtZja` vuyґW]A-8'Rǻ{b\b]LtB?ܭqG rXKc NF/,Nq5X.ـm{() I"PP-%*0 % oZ |@`s!Xw951ԫrxA }AA ҼSpvVcT,G# vO`zmUPg&(j\HgvL@N6L|8>NC>|TԴb'^](~?T&q;N1dwǮ<Ú@Q7,O'8] {.Cu'bĩw>{)`ein!/򏃄 X6po7Vʷ@цqq}:*uuLz&F  ҳ4A;f_!A Egġ;U Nq~! SqݮcT.mWPm4Zl#sa'ODS7|.W~ Xb əS>nRLz/#jU/L-B?y/]?E3bsV!{_mglB?^~j]d[L89r2F ;@E2*d?Wjiz[;'v*UɪL^sݾo fs@f@Љv]SԏI[sAcd(~Bl?NNn r침SYe>!|LFx!g d~,*L쾨m($W1[8X=.^vM/]2B)%/xu4L8#U5%K;h}FFhv1tb0Hfv!3>~L:MvY=qw6T lM0jwP7A+p.9C wWc!bPy1g(g$jHFf'xoU Ńa]XHiâ>#x?;Tن۠ #j #:6*F) vfxYA_aJ w)/1jp,WGd ~; P;LQnu<+(g Ueu`MS &;e &FF?K6Ww0URiw ckA5 }ze*!`ip4GFD݄`H#{{tLCHws*fGyӢ&giPlwv1CC?;k dkGˁ[0&afr{tg/S[xol#6a:C6j;GQ 'ړæ|pYv %YCfQn%Am oc5l7_S*,^)F)%ڕDwL /o%)J|^aMBZa#"I9a`cg[~8~;~?$_?4F:]gNeo[eu\({x]$ NlTH c/l.ڛC]9$`OL%cɤ}Y&"3S9q[6FXyzX6mQ6<%d. Mi.Cj3_x7,+Obu_?&j^ ovCtЖ`;j:b4n 4ycC3~oAħ<ݱ9-v(uKM#C*!?.{GY89sy XC'@ 5k:LEOڄG+HkQbo,Eh@"X=uƀW:Y?NϓF{{Ծ8<^,循<ӝ~rX2rDlۂyP k~Y6oZPgHu \De7r+FM#'Ur`1bl:ܯ:dQ\O`83,A f EwZms*De;Js}Suh}CdY?Khцk+Gtb}㡳7h<4jSvd>%#6 0rȑCWۓ/͇fu1 >q} Fyk`G6/+zHvet垗}W_ W;;nnVdvAEz"YmUa)!ئq{l%-#!UNGRVtUYn $Ig 4p)PR2"Ǿtŭ_tVc;YtVo1v gT.>%]oi`/Edu3ɃEIp &NIGebjGM;l9Ïym\U?G9oU(%x߼H_ E^FB&"U`{n{ض8[\Jʎ4{"nFsse*ª'\$.)0)R*C.Tz$y3M<;(E՝~Tb"z>chXToHM/#s?  ɨ|s*bR&p@a1ЭmqRJ7D1R?zޫE I?vbqYP2YӨt$x*UC]BqY;_Gn|D3Ha.^bPPjz9>hPI6'!]$Td`3rn v'PFΫ\E'LS GʐB#= ut%Y4TncPJc:^ E@5v 陘ѮP5`:1+&E: M9{VȹF!= 9lu!6Y,${*zCYt@Bs謨o絋ʶY ]W~ (A~o5:Q͔^q4Pk7yP~IP2(7qjjZ$.-:EYsb%û&=`0`М*c'eӥӁpZ>2M FdIE1RnHL='_-1(4U>숈=6%-[K/@ɥ 2ֵ{*gTzھ;ჷ/pQȭš$KL jO>:Qց9| eSt9TA0Ȍ؝Cw bM!ojVXODɨӌhߍ%"޸NxcnR7Zo%ɂ#R*D~=EE&uI$Iٰ$h ;"ZK "$boDМ&>laYϾckKQ 'm7Zxs~z!]$R% @Q6rD*-RX!eh`@j3;[B e>YJY@Fȣ :JFjt!*K'EAG̫Dɦl!B):1[JI;p\ԟJ"[fwC4Qdt;xwQLP;o"{`ЫωˤS$kպ <8]@U+r;D'V/We32ٽY28_~流 kL4;7ivmS.!*)YoCP)eʙ솒%I ֌s!H/<-c2.< $Jy~~d TNQ"W(ٛO#~hzS=h{]Ee:m_܃(晅#"X*\Ң8_U7mNydQBݏo'V"x]ٽEH'o8J)_ƛ.{piǝ xBX>iߝUm|sW8߄eǝŷ?]|Q㷏}O[ۇ__ޱqI{˾z^Π0pZ/<& ™k@@^WȜJ) z{0wMeWYgΆ6+UVC,oۛO/ ~ӯo_7޽_{>k~/?T^/w??~zۗoON@zoo||yO_/C8>0(x?oyxJUQ?ǿϏ_G[}z}*yZyyFw=/]<|}s_?|Oᄐ׏?ߎ?/o>}MW&ɞJSJ9LQ =L~8?\|S:y T}j*>W|1eo.c?yͧ7דWi[~(pI6 8fSO_`J!$׬9ݴ!z-ayhWO<*y"6wЭv }:Bo :UurR~'T#馇:YsUPVtoo9PV5ϢA.{ |lrAaqqAsxѨ]:P=ܮ ZD9YwQrO7Ej7Ս+p0 ]Q(rV!?Ӕ<|fIfBQ9 zثq(hɐ@*%g+CdiY8Oܦ7 $q`,ӦIE{:$",l cs&mOne%o&%E9fr|P^OC]#^zx*(JF& 6GImDrarwM.*R>nVN#HnC`w7e UDJEw@{V drq ߝ28u2\EG96{ЫaqV(* dl,WA^3A 6ky>v_ q(U1j߮*">mf(9D'?p L*@@P,:>X,)S]riO+.pa3י^_V%l)B>OB|5,%1oAMdgbEѨI/R>i_eD7׊Tr1lA@RDƥ5 c=EomIW`o7'byNy1/>yU}űWb{DGIpzB+V:7r۳Bs^&vvr! 蓷rj_^I5)QN,b<SimnwHEgb/{fEYҧeF_F"_|[䯼 v<^&TsE]Ch0bB CQw9D''m+pTAuNAC0 h^>PXCʔ3/Ųw&]u%z>M5 C"jt(jW{(u#l9+(O'.Eg3!R>uy(ðNk;:ľyl"B ^3WwE˧-/8+*W݁dq=C>$u~:M^ThLI"p(<ut7|\sC|WgҡE<"B%|3DVEGEy.v)Nѣ_A6||ġrCQ[܃c{BbQ Cjs@g_roqa!BT8s@30rO7K;D#EgGnP tu"'s EEIsʼW=PIjL0WC?y]Y *xL:MO[6{:r&F0vLcrNkqQ1Ua1Adϙst* eѓE 'S.>:og} G$ށ,-AT +[l:M]}>yʜ&̍KHzz!]$}v}F:;\*&>l2 \7=/KTu#s'lwibLWM"Y']cDHLDc;P*PQ4e+EАWɪ!~X'Ȫ>vDKCd}z%eyaT =ěi`⹨n2|E^,|2"Z0$Xղ&優 #!QUL!#Q8]rw2\0عARD{E>5 f PiΎ~?̵[H*n60^/)vF#i߾;01hqG>QEzENfCzgjM9,͓Y7E!>;cF\ ਉF<*v6a1.z:&9~egmXiO}$t#]m6Sdq4Gps%8 `&k:omW#8D?·w3O%h/T~ X<0-#O,"?m" ; 1YQmY9LNhz Z#u;XYgDL͘,0bz!? s8GE [g0!qYn5jRE2^7Z''R4T~rFGI Y;_`,RYUd5^A,u=֛9 ۟/g)P!+d"r?gQ3J#fnW8Ji_z|VaQӡ,u'e~2?m69YOg"? plȏ;j~OZ*W@4{3ACh)VhKy2?D'IE>} `C6Yq%O~ߖ!j.˪0ߜZګCJe#sE΅3WL |YW;1C?D'f>E_oswIȞ|p-dj).Q$}]4]DyzÜ[w/bϑ;;:١:ݨ9  NFMo}upȢUqwI!. w |:E ..n㾉epQ\HzK8 U”|Wu"or}5F},vn7חR*'rvXusSZP",G֑l˶=FyY׹F| .MnUywNke_ cxZ`.'ԋ!B7e :_E%yE&9VairͺYer&ֵ&p {df)9D%.JF<-[KF1;x`cL|DW{̈c]+Y S"Lx)_z)EŶ}ȢE\~5D,=6l jkk%3`rȿ2pٔ Q7_HK2RrL\sgq/s$)̓5E&%IgJ.=P AYG F1d]R_ p&F"mH.5) +;VYu4rF5Jq{_Fىc"cH!b0?]|)m2Ae{'Ӆ" dMxAf:Y2SYTq GKARÑw;&%\IѪӤMY<]JRH(a`8)9FG.8֦v ,:U`)RgXD!Ŭ:O׺ajUb?tR!%p_ɺdzuj,13ld plAݸ}%c::ٗPL <^aֺm#mW#Z9D=Դn)aIH>! O 僡$PI$C6b'<6B utsn[K:w d#؛3 Q:X,2)֔\ً}ՀBF1$h M"363aQNy%B[D;L`GkE@Ȏ!UAMHo?̄KZ3  x\5zx܌-j!QO$g^>g£hifr͘w{3ǰ:3vC$guh?(Ut΍T茹n^bb^|u}&)MugwExƆ^Q]V\B!¨5|:س3w >zaGZ) 7,3r J$xTt)v>X4^hhy1%h+Mڀy(JP:`FK4Qڀ`Vם( } SYEv,24=ay<6#<a(ь_FQ%E[Q{HR4.˚sp>9\ jBxdz `oje{DȶM {󉠸gL$544Y֤qևw8Df^(w̴*#.eLk(P;Пɳɼti ]eȾ;1*\al!ʹT܌di ~Yz=w{fPgHc}aGvCi#<h;>Tkk@8d .ⵒ!$j$Mzk#HH,a,kW!Q.NCZ#u1z<[ MDXf:4!,iuC8ّg46hTtʉ+ xzfB֡D,\+ X?]؁f 0 qs( $dYW즱{ëh:gRH?ٝJ= 2q! ]c,֥0.ޒM1nh1dʫD;0S0SPhWYH TX$7j,4$9C0٩#KYusΰB3INi(j_28a I!4y VYI )r46ŚB6CJF7v h+7U9#y,&/\|6dqf5H>$-9lRX:GkHoP׸x['tzb)s#í i.h3)dAعOjs%TkY)zL0MqKV挴(Рw F%^iN$B9kh! 8A%}u8Yh!_]?3.*''ij&oݑ PTqvgDwoU$4{tO1 D2j7lB9@1 9 ޷GVEF'AVS@**kq#tx}K8ΧH!|;f ylgktLW7 awfb yR]JK 3`rOѱb<ƤB5B>*a}A;~ܹv.ݺ?"5;)}⭨*q#$ x'8|D&p dd7>$Ƞ+Ż:X88۴QѣlJɐ Z|l!+PB qoy^$8x<">fU;%bqӓS)Cw1|dތWqjS.8z|RT#lWP(u,H|mB)T|utE,o"h)XngЬq: 8j~ ܓp9[z+CQJ+/j&3?\i_a 4SmF,S}jo'O E$>eB>ky3]9;\1jKOw1A"h0dY]KM9c1ϐj锐uʸpubv/XĜ'y]y7gCO߿dm']s Åxk/o14p 'pH+Jh4֚DۯN,/~KZ!b2, q i +=j8إXq$!ԃcp n9^z|1l0ZYإ) Z^T$5wŊ-x 5sL.k?֠^n_4Ȓg *eH1)+z)Zĺ&#G6+^Ju6Wh(fCxxU}W1TH #3I_̜`Bӝ#v _XϜ$4q*Bmm_>}s {^ٿC%뀯||O髿wk_ ?7>1 }rc?wo?@o/{yM Q1?cOʆg?W2/~~xo_c|2έxyǏ?~E>hN 8GOs㘳qz͛\=AъsǪ?u-v%ȟݿ VjeK[Z.Cg8XgYOYG wnȨGd:yȺXݣo\9sA,ɇvAd'Ҿӿfgun 6OC(X vjq(4 FC£ڦ'`o9Xvhb6/˄zS)>Eee.rY>/Y|S0À`I˺[d 6slHH;=˛zl:K/7 BP;JR6phl&a&.T!hAT5{mc#Y>١3˕"ډy{"|bΔJ e3:1S- vEL 77;_ `x:H&{@Y6iאgdi\o 77Sx&Mbf )[9D0T~%ȧyF ;H~|VmSOw!R7^_vnD/BYGHhJYO@5 n"%%-187<~vhFdBg*yQrL.aDUM2CU/BG5 =?O)Ir (Y,AEآ񱈄>5OX8^CF44e:fݛs$ Y!g!A2gN:]&"p#c*R>Af!m +)^-Wr  +f&D~מ=ҔFYpu"~я7X|-/c@ىHԻp >kgH߁{1O9r\&8x6͇^pFG2ni/Bep6DlGS!τGɦӄ%997E8Z_ɗne׾,~[͉#hH[>$҆}TlSͫ F3wډ3ڪl%yun_6` 1Q 7&.篒E PO7o;__5ALX3S*qůص׶ǨӔ9Nqٌ5x|Y?qĊ !]S4N+Eb$E4kZ;۔ pV.]BRu\k5X+ڦӄA! Pj @rHU!L?@!]T=V?^w$ ȜALѲjwN m$B׹Oʹ*"\4I4ײ&\߆7h~Mp^{GC0|:͹0 4DwFHb5N}3>E[0; S4f׋6w;0\apZ*{^|~@pve.kZT 3q$i@D[&h{k)gl!0GWê㤡 %u >i+DG68 Ahu ޖyyg~Ma|TA*YcBd$%*}D*Ӛ mrr>"%NSN֨Aۋ4d{!+H2ū0V@֊"α*6!퐦 @+>B yC$l1+mmx ^hqΥ} p{ҷO$#įTFRjd+h|UX?@" ǚ٘|rK5^$—.O|JHiLbiCj-)Siꥫ|ndipepCuӴ+i,)2pj{C&܎"H `B*:LhT]j51_4igm2Fq⸃ W}娸Z n29zՒ]d$h0Ek,H[4a8퓘S=S:~|£j,KBݝ%=t&pA_.qi#x; Xן6_?jbtOyo/67|_~_~VWw_^~祅3oۊ^?P5-uo}dV`lo5 2^ZX8ayEˤ1ct5u0C[^W6Yf'fiL̚z&gLei;v)_r[_М9筺y2qh/&o=6?>SQ# pQGhNy"+.,O BԀ(uT&])ju;C5jBY~m˫7_ /|_߼o>{Kݿ}|>_~5_>ͯ_/뗟?P0w?㇫濽֫qAO {2}0b'o@_Ǐ/_ǿ#>ӿ ED\}οt `_>|?y߾Grww_?/_?ȧ×;ڇw;w`WVECIsk%ZiRv,rٲۯfSo>J#yEP㒒 mF?qxO& i| ~9d ]Ѳ EeQhj{ )jwKOOćuE y;,GI."a-yB1~*\ r ]nQxYAM b--1Lp;ewuCQie#~A;d#Mn=QH^hѣIij^DњGI M̼9B^,x S%WWE(|>Hɤ#F"y$5 =N񁲚24\B)Gvo=Hun9O)Qްp1G^$c+9 NЉ'Ic]a cz vT&/Ȣw~d;JP%&E"͖@ZT:o0#-0l>8OgO&֢yG(zV $X)9F)U Pq=BNYۑ䬀.1ߘKD0;%!f$zg|MY)ȍ}Yv3‭rڪ`ג'eۨ)x&EٽH\rCH ޒC4ynt7 Lj?2]De6YyF`nQivȞgL$&(*H7x_ E3c )kNȀe[4g/-$w JY&qR)Y9D !Z]D* 읝H"'rz!ľ=oOH7W:]e RlDE6|LXVHHFf vI+|͖#3)I5 VD H͍J r`acXf"( .8=?~S~sF1©> 6r!xOڤ"qN+BN=˨ӌg5'FTΏY3Ԑ8'9D aQ:d|:*P 흖eπݞ iE1%>60s Lj5Ԑ 1n8at t͉m,#OEGɨӌ}j> h?w]38!jH aѥ<2]Ԑyx]S֘bHrD5z:B^is}r@'Pyo5Q䎭'-$YMxYtAO erE h#;.Epm-8w~X5WR&,h*Tm[cC_CXa2E6F!ENsEDLHaDp74 Pf1!jâCl&O#1rQ#S4;'TcҒ;}ep>\zQ )C:RQ$"=O !(%3X|}H>ȮJ93NjBc-Y9DI? JP@Fǿ;:/WW+ ! M{E!]' ["$Eށ@ AKVgҎd?]Ff 4{gvRk7[6nP[r}G cSj?G^A ujZ].3>b dtw^?r7b4z|]Mc ٱ!|暬_(u-u!O$PXl c49Mʥw6? gw#a[o/Y#|]ѹ߾/qW[i>]@qQp!Q|Qw~() x.R^ԏDzy7]?A?!QSQ; HV~>UeShl1nllbr5o)2gt$X]8erzSP(UvWэZ0xqAPy}/z5:Mk;rp-c Atl|g!q@[)͙yJ!(=`9 \v)GЮn BIPhON PX,WSSdyIMpUI@$'"LY>]B݇%>|Η~Be" lܮZ? @~ģ+5柯 |h,tF|8 \/!y}*! @0Ow4_%Z [^~̵ paIm2$a$eTqīiXz1l6{|dX zHo߄ƥDevU٘umc7[#CآI(> ؉V\LU*Qg>Ԣzh8҈:8j<06NEq\.O?|9tY276~6J1W)>&>pCm1_-83kW3ْ(8" 993/VLɫD~XϪф+ȡ}y4jA7$KDFK4lի80.d` 7 ڹtͨyͼ|$А%Nm !ؙO5$-6sB]}hL! ;ٍYqA< ~_T\ۓPތ=U 꾀Fn{~} `2\25JF}=Vr'9݅a?l&yMPtPTHFqN[S $j||dp?Gĸ=Bb3(lEyE9J_E9t1[G~Ckosgtnsu*X3L)d\Eُ$ڬ{.*\p039dj-͏Hdd1m>l7` ij/7anNf+J*rs[@d%:N=5ʩ׌gb`ib5)rk29$PW vmc CA7m;}:qNجptNUs 1;vVbeQl^]JïǢP{d;O Q48c%v<xi;E9x"֬д1hxX4!X#*8e S[\Pg^\6e `k6,*jQn5DF|Iגbhqġj_ު12к2mלv@R4r\s|@=Ep]qTs3E9>đ 5k;jQ1;dF_fh5[~5Bf:-_Qb%ṻV g ym|l-A9iڱLc@R2sPs~D|ٹrAv$05BFO# N%UiӜ)YX{ςX94>ft%4^S U/ <̊Rs{^zܥ.[:͒vQdfG7H;tQZa`ڦ49pm]H鮏;Tn&? }y3Y)IZĀliHY@߃I@3O>~U݂M Rj| 2D)s$,k/@\Ӧ 僧`ʽ JVoS(Uu& "M! gw ɢlFh/6.#OXs5(\]\X'$t SNQm% Ǯ; 2Ѝ"yvʰ(\%N3BOq<y$",UonCT1_vzN g̐OBH )4oB袿JOi.j.ow ^}lAo="d^Ξ`i7fP(5;_g/hT1:}~Nd߆Rm4G+C]v߲:"/j-L5D7Y `. ݾQt] 4ztNsꋱC |ĖWMZ̠h4}ڸc,<뒗nrFsE1_QbOB>:e#G4G.!Ack=KQygHw!Ș=ǽVwN-XL08{U>}Ve*4oU#Hx%팬."b/9D?"t^:T]d2O6sl]\"c_]@BY/~?~K9'n$x*HJFx1dw+Tiv="n9Dl/E}aةtOؑ{Tէ$@"5gK7:;n5˷~",ȧc<!kC/sR8i3+4Jp{_D(L)DvI!LtH+4Cc?΋\KrV:=tfne " hK'0 0J,)5/]w@df i;x}L!b !:͙0sCiCFG0t嘄L6){!Rͩ? pP4:y }AQL]9gJv(WktXsat!7Q%E9xy75_?A6pkϧ5/]XCjsЉr[ՌjZMxRv.oJ58qIqpO 6* 1'}!]D#o2tvA/>MD \վ#zoHa7(C^-coictwY:d@^(e& Xmugѿ5#ȑ[w^|:5[cF Qfo]C:ldRU],޾φʑrހ59rXg,V<"P}yO::Nq 'E śeTEMOw]j JG!l#O@neo+OCg|,Mtc(<-*4cBڒڑ QԎҹW#e^Em~5m*[@Y\3e bʉZ"+ H`9 bn+.p?+a_ǚpڙ$S@mH ï"|J.f:> ¢u5(oYeDMJmY ) I1RHZ[IR8gBc,dvIc>R LvD $87Z;Н,HɔA MC.-fO&6bQE[*R1j,H=2"~&N t;Yus.ʅg2"YwΉ(oB۝U61s*Yh)Sgv`*gEt=~}9{j1$#2y}<5eQWqL:I-c œp$fǛNJ YX&H<90+ \C$23" /}Iןd{1ȤrPR #f ц&Pf]F]<F FR8:N . cjY4FTiT#($-+=#%24[R`?ېJ6Avx10E>FKuI!I@RVl:߁I q~F)zcVt7K|" }p&Q[4D(bg:Ya6^#anRg u*lsR7ݲ0PٜB,Ag -eGSbj V]U:@CfkDWqr8nf(xʼ`Ywx:4vȓ4m9Vݙ2a){Ca,W/.ZՄո)I;XQOyD(mV].{9󜻊9(9gtIʬ<,Cvn*aYɀΛM'Ki`љVs逝7qjd m<ѯ ϽlЏ<Lz(@8 1*-36.(b;T1B Oq:9 a|[ t[SuAsCΛTzq2⋽ݓB6A^q9R@K;s8U^40[a>4ĹL1,xQpti:a qǫ%\dަ20_V}K榉()#ZM,nr)A7tvq݁W@B37⵨~q1cnV]F#Q&'AYilOm r9p~!H.W^4)&ݫw8=Z@Hא cϵBGGIg1̋fA^3u찙 [A͡,2U9O"ތlz] YM8=$1jLE`KnjЀYs1|Uz>7mєpɣS ڳ( cE٭§Ff&҄2?Rl0 a8AK馘Ё&ɟfhbPK%pߔMqVGHV-9V#'f?ؠegGfNA?p R3ck,\΢K>Hf- TY4rB(4+J/Fj.} hYdXK-)2SNW#ը^mi9aGl˜"g%F-'!vR7Zqxℤ.8Mn^hs- ٺћHaA8N̎ntQBz 3#PW + Ie}KTL+߽ݷn3l˾Ne..0]o;l¨E7*̶+ 8r̩ [<n􆬣9z r_*'@.@Hթ* leADzZuGsOD*wQSL ,Gsg}p3vN.sLixC}5^Ȇp˰m#epw-.\ZJh1~3irRV*>vӠ:,gBb(kb1|`#0{lzEܴo`? sBkЭ{\K!ְ Jʆ:i8纯4VOU 9#X19ܙu(l{) 'B9{ E bƹpf.u;LZ!Cr!]V)f%b¸ir)MmCLadSARtt1*;uS EtoCu$^\hdbb$_Q8eb0ߟg^)I;Rq _o$'%cZ'i}m53{1zn6hyS)!M3/"|wF78X]5098;8cBhOFr$1b@[̮DNQGх#G{KΊVT[14sFpLwB^4Jb!{ϏLLX)y|Ç/T&,jfrcqC]c͗S}(XˏO,`ٺmʬbn4˸8Yg==ԺopxC-zK?o~,)rʀ>ɪ_^;5g_)Gnl,"$Bv6"Bq~Ese똊k- "1ppZ)d=ucgF pkuhǨ,(0ΒN|b,WW//x]SC|hX̋_΢roG$_$ ڈ#:DX>_[˽wbVo!:8\[7xFcp[+ÓxF9 b)Ƥ1>,Pʋ)r(c2Eb]$-h SծyDi9BiVxrB13wۼK*f:9g o&)zAZRPtX9DЅE1?V0ȡzW@Z@M,Oz7StVcf{ u? ܃g 0%Ļ!snv~`U-s5?ʙ]Ė[oԷCE?RiroM.rl`=f"̋Ba 0Saۡnuˁ9PTArɛqش! J䝛nAQ T:PD=T\x4zѡE.Ǚ)Sΐ5sJ`OѠ; ܰh6뚃i_Z+(f$ &%d-yvV~Dh2N 5%A%/RTunb͌E'{  5\cH!'x'H`C"1s0ɦZ$ 4P^",ncy j5wW"*4OiCDHRCmE4:PbK@iB%[Bje v H-q5NW,(VCK|.9LD`0q.Ɓ()J!,*<4#?XvטU˖aHg0uD[T󃱸IE]hqH 9bKX F]\v^ ܋ @ĢP\@GBoĒCˢ˓X 6BIfj^SsH9*+4.% Cݖ篆H H93)8{GHըEDoHGg>eJt(Y&+aAj @BU;D /ƅܰgBgTҠ<-8c:[nyyOjofj-V*F}aV Slx@qQHEpON+(.?_(-7.c4bA#Ps ej"Gv`gyu>|sC s:QmARdS_h6 Ϙ/GMnͨ6(@|Ыh{V)ޜT;|OsvV'0Pk kk$ӛjwS:ג;@xMg,^:$U;ilB/=?&^”9co_J֟&LC#9&NpX:eZ22|?C tXrRBP B](&Y@?j@B' 4J4qcVtuث 6~TcPR+R>/vCGKcXu1a0>B+P71fm6sl!T$G ȧw#==>B/-,:9hݤ<[wUWA((9jĶ~. 9s{L7(WswiH9D/pUYoy-A}d[#uvIb76n)׺̖ 9qwfW HHױ @HH` Ea5s'rlըǁMz}Qs`;ucKH9DO<kPl*gV}74PFH{nO+ɗmqQ@I2}WtBL#QyNwM!L]wUW/>F_ }yЇ>&I!}vYYLw6Q9r,D/18nSm[@fsk0B|N$!qף$R_ rkNk jNJMuXu0M,?&Yʺ4;NY9DL6Wicb/n eQh4eD-Bzb xK_FB4u(}"G|D xJ IrKxlk${QYhͱMg>_PJkQG?Ҋqci;^D[ —_OvѦƀfΖZ]]Eǁȩ脺}_^ĎH;/ EkHbecRuv_ǏmW﯀Tme χG3G&ԉp7~4v?.7, A:`󛿺n@z櫿c??盿.?헟?9#}?>Ϗ/?YOl\~߿Ӿ{z H'c^LD|1`p}#Q)3pr &.1L1-\ӂ$T?K^&Ucɱ^ڂؽKۊM],y g=O n/-frR'(1pBD9-b_?>_>e1O7tS3UD؇Dd4Y dײ m~?R!J1Wҧc/fE"0 RhzLTQ}1e6TnC7(UDJT|5y1Ww0uqgmH*}{ssNi~jV*Ɔj p7\MAV 4 ^,gz7;ЃT8 !*|Q*usz(IQWwÔEH![¤jcȥ4hEh塝h,FLƣŭmb:i#;iVxEAnhm2B<J+Jx;S9qbĺF؁Y"(ZY3ِJ&$@{rE0 YAe7TmX g !?hR![bfWy/ED"-C5.9+unѭjCt+腜#ʦT̼q<"Cs&Lx*wmhB |~nE| \Qr1R+\$AT#O8M7QWUVMQGc$\/sJ]9 W QU#\Q^H ' oy?;LKMNq- 0jP6`]Xl9c+rE4N+z"w`ؚ魷9XdžPs.$mskF]=vEkATi|X?1 q׾ 3b]qn+Vx3~¬/ㇲ3z_#[9Di|8kx%)#Ssfd* LM"cf)(OnQ5o;p5(4U.E+(m,>SVhvc7C7s$#%ۑ"_ǟv3(i->n7T2gmq]Y, wJh@B6[xTőd̑#7=6]:9!U>g aq8p"Axi&.#}u5%Aȡ얠3}yRU!#cCk 4ۄHC _E==@BBWo|%h]51,ꋐ-r)&;ExԌc!t>(r#m(Y$ӟn0f_arH9f8B52;($~?6PP~2;k6;1"[[X`qSmI[£b]>%\٧m,Tzxm`BBI% MC,lo!G31cE\,#6 xi(k-!;K%!}(R8ȝr >&]fSكcwuJ*39%Es/(%͝C}bogiVt[C;Trݱr}Yylh$* Ѻgz݈qѳHZC&4ɹa)4o񎎏-vasŒ| ~Xga ɥP+"52nTp7v2J8%r7Yh+#!hǽ2Lqa/4x8PjǦà3*Yh%]P[F'&xߙՋFVQH/ I0avɧBƁGfQ}uyZc);\u<ΪBw2Y`sԉvJ1|IIBԠJ@z{F!1R!@ɏ2HWkE-M,thCVYE"ܜ}7pXt ^ uv9_[jeDP_)ySe 0g—T+Q;+5n-тC"(2z,@)\Q2b#ۑf{(&] imE"4ԄW }睛8M@EQ"lA/柣fI^NEx5X(}8'ST]F(*->˭̌PY֢h?IS$: HgA}>xm&=jew5H'ѫ@&\%cĹc8tGk"mIG 9\7x'bc1>nLzf= 5#)䙏Զ9Á%&>]D <񻙃 жp#-Ζirh[^m7sD˖p }z.'()>ԟ( j\0?+жpt9Db!Y,)|HB̡ h[ ק Ѻorn\.n#3 Zr6mDG t@dt>m_B#[fI(#R5mIWwD ; -2:]i87ft(7ϲKaU */H"ގ(:Fy +#nK8W3\򷳻pMpEгwc*y>,EZrΛ?0UBb@˼E ~lc{é1m#XHA$DM U4"!cQ0F2RiپX8F CEdѱ2_XdL66b;T Ҁc5]}|&Oħ.d m9DȂDF vh! z!Ѷ?Yi#TBO߃I,Cw@ds[z4ۜ=[QY^JM;}4.{hm"4E9z< V) .`F!JiQ) R ՎiTHHp;Z1e_%ڎ̟R꧁P϶8xK6B*`u"BOO#{QgIWw sڭH;=z93|qUM '9!%R|J̀6jH0R\վqm  FIF9~D(ݕMλR9y ShYls/ ^Nvu1Llx+Ph4>mK "iQ/sKy9beQoFL^WC}+hx,ڟp e9B {?t;f*Έ]'#-Mri(ijrrz6&٤AYuu[Ή6j {9*(&TfLlvsAN_Ng-qS7t 9g"t""ʠDe`9<5`+rq*n7A+Τ)A2Z{[Ns ۛ6<+9wL1,c@Zuqp۰)LS(q \L&|m#In6s+q)YP*^HHK+c}Im6Tnh\\RBҼnnjNs_]ݭ;bhu>.^;ټb>2`Lpyb}BmO ?3uC5Z 4#."L oh͚yu?@9t@2*O0{a4l.p1LXrN3CG)X;E(PYuusj3ӹC/>< Ekh yPwN1lRNo;;h^nɽPAgLy678[]uso)?qO5t͊y&=O-`h}1jWECa\OU,4qrbR|<PGW|\2_b6^-C] rqBW!oWut1"-$w[si<`4a5j s; ֈ)I`f hE}:8p{7K3o? 2 dI[!\5ECX֚'ol_k$=2e t9 ft]P:V&tp[b6<,lyQW܌(6X +g\lW΅\q<+#ǥ2@j9p~tr%èec#(qh1p7l`5"H3,i.>˔"T,PIIH?z.g~dzI]+㨊43Хc ]`>*fJfn9ā!L ɣ'> tEhqmCA!`.mVteA&9Pbd22iF]vSpp^87q5F]K}fO7WzPbb]C -@ k8$oM9ڹ0lߓ(iv;zFKՄ L2LdNzK hM4D[jgLD p *2ɖt6u_]:wq9Ow\~!gak{ǡt`ʭ$EV{(cjil_1"11klgr+`Uoo73/\f}*"..> ClSFO úrw juRrzoj#hhruTsP@gWuI8JQyNCRvRI.I[ىWԀgBZ(5d̞ğ3οuըYup`l88}| XB, I`,e%hq` 溺C8S** w;Y!DR3a=ZjeB:!8E;@KͨZE>EN +8]9s\&6rٺLt#HMk(zn"Mdqֹb-.8d &ey`\°\Bui&te&*pfrHKչiG3곗@P<:7L~"\dSf^7S}2pCZ jxQ uM6' )W pevJ k7fg9__wLC ;{ͥfzT>͎ x9=6wu$_,tO21ma(YC88(~:Ԡ.nmDk%i: ^xlo w~Ko+ܱa'Ι=\nO&7JwtO+w[RmoMi-'S_܂5ћgʗ?|Ot53r-aǿ}>[a sxyIH~[Yhʨ"'a1?l=3MrJgkI9p_yZC**[*ɏbZ|=&_;QY@74H9jjE83tfO*ލpʾ*EseB&]\L`eiϡs|z}}{q.dM`,J굵xf&:e!E0xeX.-C *̕OuΔ0U4 [I6Jɒz]3QA)rBuiOiyqj\:nL$my"́p;uay<#7 ⚔lDjGgYs|h r>ed:]y$XCwE"@L|{_N&,gQva9WH!O/u[ ZWM|<­i\um/;}\9H3oh87REp^C<bz=xL)xtLN׼</[KQny G]%=O?uqcqA+Gu1ہ05`<ֲ7a[b~nUǟ_?[:o*mјdw|Oۜϟ~w>_m^_gD٢_/Y+?|/?|O_Q݋-~io̟/ ?aۯ}e`j(뗟o E_^:ǟw~?׏:I*i>?Ɠ'N7/Pxr E06`~5ڿ'}p.-&*iWݒ^Zw[C-KZtQd;'[r\rgΚb>S@(t"CCHkOz3.GQ*Hc琼)7 X5s=TaMa(52'ZT}{ұƙPeC[buaHώh9މJ"9lI>gA_&*u|ixp/\3cMa9v"a"%)|unpRr]hKRfωneDTk]Ă*uI02mcv˷ho럾!Em> , ʙ}Ml QWߜu_1EKz0'JDjԉzu.!DO 1f_[t)40ȃ_ UosAsUPR8f5yJL=+NK_&y?TS*hv#廌4*Z=[Cz1Z (1DIZ*X9DhTk$8cù0GaȒm/0YRT꣹JulfhC AKq,X"^: ߂$vBdKHXxTLFtG")]/Lń)D6qh89FX,>yy6]5/L泖πZ+hnu9nFI׆ lO|75(~IIqRTs<2Ѣ/(XF]\v+9 Iaarhʳ!e]Oݩtyn9|/ X'މm(!rkX|5= uæp @%?r_!5sEs h:LX}W Y$bY]7A G5ܐ^YG݈x`(3e~鑊׮QwK1BaY*%RWj=X`d} 2ђᴗ͔ӝfYA=I^P:mX gM~.`$–t:eEzHI)sA3Q6Q gtFu<\5st:z^(hX iRL z| w2!ϧ⠊"[,2;E(ZR8/]UӍﵖ:R SSUE\&9]n4׌.^\~Wp"QMk >RȦTmJ'MV]N ˒Ӯmlu8R K+8pgX".(}{S IQ+GgGRxtWIը]+= ?˿ Z5#=/-E*=Tx;;<ɸ gSMegEBҧ$"y4"(Ya =4#E3 cɐ=F<^ِ=] 'ӂM/KD He6XF]}f,Bkd'HHE/jY4,0(Do>!QEE]tQRn)HxѲSK+BDnqd D!-t zUWXzZF H8Jˁ5tvxw9D Tk,1j9OB L1ΖښV0K孯&Sः9KVHiz?갠'}>I)9oݢ V,߾ 6I L&gNc-ƨ9 v^ %I!:?FO%VN7fWL&1 i9-* E.;TwAx-ZIʗ6{~H&d,:kP B Kt7-P s+dL617 Yluw9DMǪ72קt_>cWw+.U{aY`2(Lፎmy]i\ڃo 'c߶aŔ݂wVs7￾ˏ_Nlǟ>/?w돿OOV߾_?s筅Sţ}M_(k 5nsC`W"}<٧N\^h$:=qlk}Zp*?e"{ph21"^.շ5oO)T*(G}عrPo,/P/-2@Nv?t->U#'>Nn O r›[žAb7 m7/~?+w闿_~;O~R}_~?C 7ϟ~OWP=/O˧׏7=;KB_U(/(cj8wxOo??_?~uTzywn+Qzou t_>Gr:o,ӗO?s_.?/rUO0ýd5DS Q"Au >K!~>3nP H\ !EW͎B1DƇr#nIルyvý#C;2*_%?z\RqZ϶ݜq3AKΆ)2{gKs,m!.CJ0o"p !9[_u<'{eΟ .GJou:djg5PUpm"!JPn1/d>')ړ]"TN=053h/Jl-dKDb EKŗ\&5|P 'v #2sbn\ mnj2ؖj^rᲱЅ&@uٝ潉19=1͘75%tSs SMV"'J27̠#]+t uZjfv¹2 "(S*)U SR&89P} >wQQlz,B&BcAO^ 1ϒL#815CLj2E%o!xN7eKmq"S03 C0/E̜Ne0=;SYXg]&Jz"sהM2$nR ,SR{ AaOD{P)uNC2U32VC1H~ލ,BSHulM:T^BnJ +L^vuQ&[IlfjQ\\s'?Abs᧙*4ul%9utMZ43H3 _?8i*UoaCTRLx! U7sC]Kr^haHjLΧHw `3QXY jb37Cɝm qr쑈e+6ߊha[M##bMf `fQkխj4{s1a2C ֔*ZOY?'&,!`lb2Te֔U?5Jr&teDsK {XYd?2Qz$QWjlJ'M}nT/0_$gI#wl^3sfnׂtZ9X^ mz=\w jepe9v^@-HP.DU-!Ё?d&q.GNtK"pk[ģ()a@E 9/u;7jmꂙ[8b%罹Pz޷aUIP*jcL3;-H8ctiK̈́x 'AimJ tԭzM {qGf wR6y  %+Ґr19D O̜3S݊1*dB/?B݉鍙-?Z,q|WLT^Q4xJ ;M@L9}w8c2Ķp@~U7K=p5HIs0VÄ=eL!NٱZLU]ϜH2~:%֮*JS-S0nVꯘk7 dpC^?JwЁLԅLG3op[u:zIy%5=x 'UoGW2eLZq9!6bgByM9˗kOGΓ5#&ꉑUٯEk^zJOQ-Va>"h= EDZɳq) ٔ4x&&_vQ{Z| θ U"i \ZT2 91ALT)>tPp&䞼06:Ё6JYZ^R1єAa@'= bg i>Uq1-E-Kɱ.MTZگHs^KD1IH-U~%rNwT+H#D)jy~&]x '/5:#Uzwgzݧ N8'4|[S53K]2%Ttt $VA9(=`'xX:q]RcCS4f `gzAо]P @4ٿanʬ"-}|F"wHk7^~" boBF%?t3KOO&;~ tRη|^;}!p=173ep'K3Ms&&l?󾩘^߭T.bY };'6淖f/n&e_[W Rקp"t;"PJʅr>x,\5¿P>b(e4O>J lCҜ9?˨EPk=-qqK4luo4}XjVQƀV/WT]فh[W"K/EL- )0řGBV1~flZpR1`5NuW@Y̐^m YUb(9rs`شm*cekR<' HVywMrv sH[ukS$c+>E1XuCr|KF.mm N V([?nqS'GNtu{u9: ( ވ8>uKwkX//sJ~3ZJ"}+cpD:$JQU_SĉwKT̋,e`Bw&N!hMhvBy_3XӲh An22+*_:>4Yg * º x@M k]V>VnUѕNVYڨ6m` LrA,RR1I(Cڢ; p(] Րmr;KѯCRr|nDT$m99bY^]3]7#: ́c痜mU] ",5V(XcC.,5s,|u.q/SY ,!_x"_a֕:\y``)#M|3HPb2H8m7sr;vV!ѭ65a@)zٗ\M)v6KըNHڬЭ{2A.^#MІ[Vz=;0&v9Dڟj W!sC:>D4'2TUWKD!Ҏ0s![b1xنzīߔ)G1zՈxU$<[z<%~2,ZpXM91$q"߉ٝlmz̹> %rT B  Ԫ̲UZO (CM(q; KӮ<;r,m쮲 S:L5%B:LsG+}Џx;LD]*Ta(lr}L^Ut᫼zؐ"s"i=YF>;hUtNk!PrSڒB1T@RiY0VծEL~؎UY8x/bnI6>Sv m֯*,ʂ&ORi6X s&7>Tmz~!QUHujRrC4T|Ă$*AxjguPҁqJ;LB-n6Eh+yx\s,w+;ذ)P4z6P[6$Gi|PtgZwF}vZ=4P%%@TwG!nej\g<}!).D@vsgTJg+̹ Ϝ-E]ZwP 1PۻڷRGMERy~F 3QH-3$U.#< JS?PtO.H;5jIm{j1j,I=& o)]acN&>bu8I򋜊N4HsI ؿKFmBExΓjgCTx:'c7Bâ Xiյ&]PQ%%jAe rPvYWAf!$\X=312nd턋`Gy4sajIQ]j8gB(߱ee誚xmezplEk 8S*tqJĨRBTUCZxpbB=ؐ7D]T_wR"Bq]yP xo4K"Ը>o3H#hv{>)L n&AMҹ\Y:;o)5 :2өV{#'0fs hJL+q>Go.ئ464ax}?"?ļ97ե!PBg? &oB*(T;PK 0J./B^ {2ԜB攋Z3z9J6|Z1D7m`1V^A5 F(C7BQW0+o܉9`e3:TGL!L];@EWepbxm)D%"( !R)(lfR1s6n;Bn4m!By;73a5b zlpcm$WK=9~8/|J֌TT==gKA1yɒ=]dq[vĎCI-+ԗH6b:nܦlqG}/k+}3Qna5k蕀#( R%asinc90I8hg7AR_1S4]|qJDU*i*z_t!aS_b[c&zhB^1\qէȮ*kXbE~t"怗FtmfUt:T ##|G*NKvLDُG-Eh$ NFKQES21:*dع$e"n8 S!2)w~0'Dy9io'_m=zf-[4p5crGy[d9}LO2<,=Y95q1eY eR>Y iͦQB>w^D!8ξ-_ƹIOͶ(硃'IqYσ5zv:'H jRLPyL<^ׇ:ܢ.c]Byy˄QSMs ᕵfb a iԺ^o6jE[ pLKMi&rj9V\dtړSD,ݟeNݝBi/ވq  -pL/.fb?=Q%* L2j]f+am `yTgmIE0=ϢqYsŵO=_}bȩ͈"nI d̕1ꀷ?<=:z f%^hW$d1 S7]  Y[wA7(QӦu,61&$3"Pnpz%DY9}_/b1+fdt l yu ? ԀsH]t/]4CVrHe3vvz˄ pSKn``ٴi]b/CKjKy` .5Ώtz^fD-+gN9S2nw/q1p5k!tI1 ֤OӋeylh144 }(&5ϳ:g 21 LԬ2a.]Ni]bW`i$4\XX+#XZ1>E>I|ԭѲm,JV%&gGܭoL" lfȜZ2]6$*W+}<3g TPL=]ˉfv&Pz:D5 7/ ]aj: Bfۨud{l˨^e2'&v>v>#*% fYd9Jn#md3zZK#ӹ,igu``]TJP۹(hGwaob&LKP񸻤wUwC)6%J&IS77SGT5uV`6t=uWmc+L)YsNgɔ3{VVe/S'< k7.)==0,cGfXL\\00P{cI~xF}qҝx0ʖE+g/\;+;LGJc%(5r˖1iT{ۉiɆ^sqNGJS?cݔȬiS_b]5I:ι n/FDLRG޲r)(xs٠XkwCj!jGԢE {%'0 xźL9E<0D$V扤q[&LdD}JG%cRVS8/Ӳi]bRVo+&K" B#KUOL3sAuuNom碵Vm̢Y'!oDR&]PSl0s 2ĥl8*1ShEᢕҹj%&k /刀\W&jwS N(laU'e ,\Uerxьx&EŻ=-q1r7zٛU/u?zVR+ud:=F#U#/9Mw[һ]![LTUp^Ax-?nRZT ̎*:3- MtG&[?@`ӺĘr4SacK2.ûb&@@ݖ`qGj64#ÿ '+yBtP.y%vo{YvDL? %Io2*6+ i >dmhq|fbW-&"<3F0Q+sPbjsYyP:Iud"WN<1Y&"kZ vGv1w~%s4[hB:Qhg/6ۅr{22S8.oE[gf61kK`^g2f@.kmӍq8IRN41cP3^5ZYzl̜%k||LzJ̢Hgϐ]*JNnbRB#e$q D{eI8ܽ[&p2D\GG(f 'otE]#rleY>Q)Iw:qɽr^ VΒ%Wu߇&uS6*C^ψ$UNԉ%pYdL@UV\:rDrVVqɑL4d,9rݱcBpZrIl.Ec"77)^+Wt3x`j ǭ򈝳u#xÅ*Tqd9y3w\Z4Bǘh0._Nwssu4~M]]l M3dAέNLaz3}SM$b6l4~K\bup(:cytqm3 Z`2rԸGZޏq[eoQ\Hw|T2 fU|K oC=8(f!(IqCܜ$=rTg'c9d/6:el՗Xdy"pN$%n zY&7~Q^96Β w8%;7;e Uܩpa] 3)#d%SZH"ܦ_'pʖ'CM%#h)Œ2xaiԺYNuv1.C nu[M6~<5xdI몘ۡdy2!)(Poxό nFMWK/(kJø9e/w8 e*뢎ᛛ/< 8-䷱O'%8EJ.O5梈2jSj"x6澵kielZ`ޒ6V 7i9K[Sg;S1' R4znF[*詛:p3U,M߼ cK'p{Z6%m8:'cM({8P7a[:-e4D))o[D&XzMc?G޶]-:i,n&T`BZ̜0ljNvt?cxt1[,2H@eem&6Y. i'Adɚ )h|P˨u*e[u=Jfo߭ 5ؚdUb, nP eom֥wP t-{laΤ:o;}劦C?CV_Rm b)$czӇA۶-ܶN-.mLmd(%#H[k.3{6$y0Q҆>%39ֈ͑m,mP{q!b]ƛΨԧdr[UZޟxrQy2bN8Rq0;OƂzlZ9C-yO@`%&O]7ݨnF9ɨu}'_' KG eJ=ѳ'hZH}Sz8ٴri0뻰*G4D)g󖬶q:FZ1R݋OTT@+xv0^ߙuhJ &L,[b3 h@'[F\2+K0FF(*)f)@V1UTۯ*x>YRj8SQÊ;b]3sFDg0FX(dFD:$ҩ OImǻR@!apmSMZֈȸW_ d0| (^5+g`kWv:邷%RZu0$ުg+}2i} _;etz4c#@EW.{50g!ca6s˜ @C导 Ha!L>$P6ZXdW!nd-yׄ>ae,kapA&*91^U:F|2HۮTˆ l^yl2om#$OU[Ns$(zVXm0lS_^-y#8Cˍt9kݨdYY>YrֆQ33B92.*5yx߷T 5K|;؈q['Y1v褎MN3`Bu[h SHI1aj( ʬ0h[zn;}??FyeP*CCpG\[D p=Jo_>~|S|{~y[w_P{~owO|}?>{dN|go~ TAvrvbzrS*f TaU@jt0"B<3NrVtP6nJh>,1#=Th|amE-]J24]3xrmc;zrAC7 9ĵap^jJ~\Ñ26 ֋___>?=?ͥ}ӞԁW˱;D$F*秴Xh#վJ뷻um 8'ї/wOw/w_ߪkg/om$|ᗻ/O_㷷_>\auU^/uw^Iդ߽4{ׯ|*6>믫/ϟA@^Vo}wW<ݶj .O/wïM݈sėkVBŊl*-ll`>ru*5^ «cߡCIP۔8pwp~]߭|i|Bralw#'̕xO0t,9" ˑ8D뽍b2$Jf?8f7 {շ;FDMٛ߃C<<:!:4^ 骘FG{* o/o?vy~YÞs>˸e-=[%ZW=!-<9%eȚG!x$/E\u/FYpsGEtn}v0koh9\ƕD Y܆nH/"[*9buLAty3lre-?>˨ e G95[;yUs|(`棩fg#~7j }pCM ͺyHw}P7'0}{x)̭o%u/ZZy}~_rJ_C-6uP gzXB_И e1/:|H1*cd89niO\p𘧾[Gm8|#vϳ܆N샼G.3ʭ yiVQ37xآJBN|١ i +C\2${xm惌RY#5,hwtNl@pʻl彋,V!2ܳ 2TnJaq+1sXx -viNͷ1.mT s$W3e똴S;7 ,ҩ7ԐK;m]tŖ+s+D)jna)R-q"'2 X/®kgx|q{æUHX|}+ckzhv: :;Y%vx+=tϢbry f*x7A:|d'-T*1qͥ%H;:`!%E6[+ePi['<! C(exCURNsHp/C_).P g_2CfXvb VO3vbRXX r@YX0C"5jc5@): u+ɀ@ q)clJO\ AGJ-?HO[?%8X5 R*qcc<R+Im l!*%Kr(PODdDe\9ca V2=d_ʀ 9)J,9#J`Aa} p3pD ,Q;C̹#uL~1Q(ic\TƄZS.< K߉G}u5w.0Aw/7ow}\(ckzbFW}+lV{sp jb(m+ \.ߨ"9yK5<o2:qY YRV$|A/74z|?~QepѣpdrI<,連Fӿi(FH{s8b<0-`J&c:58 f%+' $DcP}6K4َҥ4 ʋa,aYNC:uFH.&cʞ~dU< Ž7B5[,n{.Rgxx +R9áWYaOovvױl/w`K-jQ֎s1M 'QѺP. nn4v4v"o`k%PG> 2Ǭv)ǻZkȦߣFsZf޴6Ɍ-gmۯ_tf0g8J;dj" "5\.Ji4tjNӹ>x =;{FzW'<"p8*8 Q`q`jM B ϰڍ,rK H o`Hǯ5 ??rOo/?==mחW^}8Owbo}XCJ~J>g%χ\,r`vWS_^P>,/>qyxawgo</GV֎7aA{r;B몊t[*#%7ǔefN]~#wRYZ2C[ 27ԚE/WdQn5 e"Wetn+.LëBvycKE,mNttR><ṙ79*8{w[$Fȋnӕ@`Cl6<ӏO!4}aCU 1=13ä ̨Acbyt,R)S>)hd' B6"ou\zϔ%pwd}`$P @G s0DK8Y“D[tK\z.{VnrbҀĔVI.[J|u(UrD" -L8oI-$ɦT[[|}19R!~v5P}T_uϟf}/?>?>gr\Xyx{C"p彔_ɗSS9ǽ=M+L[-zOeqylZ.YLdgOO'㗲w;%LwVoih^x|m&+Byyy'ŋPJ%;Vj=yQs~2[֫%>L/_?l6wc˭'_t=A,>v]xͯpiMOmNt[xt9_^s "+?ޕO O:|]@IOnwˇ;h+z+kaJj.rJaV*u^&篻!0fs,VP2˕2HU.܍y_Tym5yMCG7]>r~0lBZw?n{1۠^4:ԿVPyY;3BP11Nqfq5\*^8E:fw)[L Ngs\hY;|7 IYSssz:'|C[jP$~OG~{ӄO>h;LL {DG r s*:JouzWqdߡ 6L/\MV[tMۏ4 #?ft4QOwt0ԥ;%PJؑDwi*gTN *g3NgSWh DCu;w4e%@-4RH-hdJcDibhm}>.`5Rad/%lf&>RSr^u+wI'ϻq!̻R/?]:;}Atc]bY^Yw#䖻b~T/-@@pVP FXSy|a+Q0}4+ .d܉c)@T5s`́AAc 8 Y)f LS9s Yt8#7q0PF1ͽw1q邭^cm4 4oiIe˽iYjBnTj *0<> 0&u*8>T@p9߷SO]Ԟng6;a!=e.%o;mU=4X ~HCiJ)AZp8k4-x'qA3-״&=6uT=h+kJ~ѡJ[káJ+}zC}Xi]VګV] kV~%0pi+. K6K9SN_b)R ]+2KW?k']jM.iҞ;,^yRv>I1oP0ЩHC(c3xP] xPz e%B7FQkzV ip*?S!Sg:$8"m;I.`єJ;-MiRZ- T$pq`raH-Sgz[yЬ44%\=T0Vr֝0Z0 YwaV<\Ӆ3"`Is<|)z>KZ?v uKOԶ1Q tC,30 +gIaJ+yy}aTߜ]#iMkC(ivxZ&vU mIV_m|[di|(Mz۴U6M#̂T4PL{yrzt˵NkC$ö~4AK$@{_hMF`6|ᰎ{/mAi.IjoŪ(Ơ4:d]A!λבd}O]z1u05m:xh(A Ɵ6?\=8u jAc " RU9=6݃Gʽ<~]Ѷf:}W 'B붫]r61 k akCqPUl=!C.2GG0XihkIݥe9݄ͧ~x|Rj ުQ%DZl6G팁%TrY--Q)z9:K*':TTJ/?}c mb$$&C$FPjyŸ(PYzjNDM  ӊUG;LݠѰLl]Brc-1'o^j6k>vHmpMZˑ.={-K篫=0|шrD7c~WِLJ ]jV,*SZr^dd^q2Vɗz;Dk[ū/?V9f3[|+m~\>ߩIyk"e~_-G:FKϝʈ+u~g4Tz.h#crE}|3yl&{+çwgBa !=mޟ#V00{ȻQ{p⵫HЙ%q<soTHe޾t?2e- ⷏ Or UF ח%;wڶď5C*nFY{,l_-;AGP\0[v Βi 2Hf[>+ﳗL^^.cm9o[w߰~<cKkX(]W_ÂRlELT0uek\ⴠ+ VtSJ Bp4ӹycpcsXW ~V{װO WY;4k 6ƮCd*;i/c4ZSI,@ ӗJx}0-t,R(u#u ieVJI@8ᇴ, CQ_KO~6i+vP43Li -/ȟa#.g@; A30qJ顕ZĘOA0DA _cMGԮw?̉δ@ʱC4  RY%-AǗ@?K<*}4tvaW َ>(딨3nY+eM{i蠦Fˣa-9kzP.){Pa}R h2 &Nq=W;5tw/-TY.`{O]&$ׯfO;9΂$O].zx >=FἮ5a3Fԃ Ιڢ:9њ c,@ N0ȧS2Bjv,+KʴRQ{.:Ur OڐX/}$>RtLpRʵ2`HF)ٶFyoxHNR ܇4@!tc1o=d*Ậρ [`SBgHw}w@E<|~Ƃaq?uM2@2TkjO/tS|hF8GRm]E?S2\Nzk nzͼlnP u}%񕨞+x<% .;敧I!lˮ|CaKb!5\q\54 SмwIT51%%*&3|Ҧ?]#-ՁB'J:hu07}N]e0A;μ#ϣ@'x94_I5hB;N1^1yLe]<EZya{c0Y{rR"5t9J :@bɡin 9^|R2BΝKzf|Pt)u Y#j) #L, \ˁ)Κ_m]z)?P:.J{b^"烔: ϟ$Cwk :(_eUU]!9e!7M/z!eNbOCJ>yh7.%SY?AQLvmf0/ dYäE7CȺ4_cTIKސ :N uG/9Wg[(IiJGR裌YrFg4UJ>)itreh-UMJ UOT8:_&CfOa f>:T/SSyotK+"uRp%~$zCk'((s˱Ĥy7D:]4CMT'"eNsd a(#n>s3N߂)I{s&RHJAc7P`<@p@E|彊&WaLiۊia1&N.q ,d\#RBQJo,&dU6(tv\@\^j(\b/ I(NR[$~_Q=n$+֣V2jN5ОOª8)1e0&>}JAI( `빷ᐒPP>oa%)TYB %N3:Eץ0shHH3"=M3PN+(@l̃_!+'Xz4ڃ/Fv-\%D%~޳xNIDBľ "N]??oMj8i7v3en( N8Q0&e_¦e)6RC1& 8`f+ġa%-I}4cSQIkR"uuڔBnބXlNq<{ 'Rv }IkyHVݎLXiQ)@q"}"-Eʳzڛ4CA=ebLz:%#(SKR8Nmsw)H&4Ya=RhwUT$ 5 h l m8ݪ_πo>T֪O`RHnu9\"ŷN[ y08E9 4m\Rq2+4@JΕ1b(:M2g$o䴛{ouJ.MWI9G|i}'lHA&?^Ud2vJtg&9 )Waxf3XZ4(*.jLǣd&O9/:N5z45/-Jb}uCh]6qF]vQ$DGv<)` kYAi4r H캽'm w^@u: Zj)`F0*4*+tr.1*[#̣)f5U1L׎4i4Jn. D`0"UDfDF[:0 I#4|o% ćR eX+z 4\V,PQ VvA>ah{OjuesnŐB̾`VzwOR0xeSAdž>T)Qh.*k/ͧc0Ç?S,ՠ'7j?5`b0ϳ׏"R>(C"fo ADh:L6"}&G1qnͽU9ʶ3 RFh)Ffdh?::<QYXK"ךޕRU-7Q,w{۞@7lmy]UP\/g/7__uW~qcQNV]MgzIԆ#zz> ϝB?S7b2:"ҡ[#\s9kskk>'73wmI2>.Ɯ*~jd LRlP PPx%JvŔR:ꦱ Q]W+"-$*f\ i(?HG=`5_4VWvC3L9+D횅^VI9jimS$?ҟ7kkB]U䅲 u$} 0VC6a%QƸb95 pSZG3e0#zB.Z19P/ܪ44L8mvvGiXeբG"PLHwt -=[ MfcetrZ0!W= 2p@4qd9Sd P!Ǿw<ƱQQ|QbUe~ZNqQRh(]TYv=͖\5qs%l!E1@FſF.cVd ;QLqO0X .Ik=QJLtS|(^Ì;(׾t(a3aEP ol^B5r S fP?8ѩPV|?*TѪrB[~a/IըS`zb{ BK^AfA,~8E-HBR GG)9"3N@"~V\*i逎rV8m&mZaVhdwPA) C::|R' t.puLwzQ8@ؽΦ$0ˮ4m&W+&VBӴV`B흢HP[4=%&[~=珳Vϓyqj6Ylj>GOd7O5Df#*&Żfr5̖JTS|BQ˫\\ Hz|z0_N^Vˏ|W ޒ=c2\*]L?-W[i&< 4{ڼ+ܖfgOsjtyOtA kZ|΢ *P#'ɉI!~s`jfPǬ[!ge'O` -eO7#=[ki2ud1}ݻ5=+<[ < `#đ{ŹIezL iCdcl%ߎn{6x4'PoWF{Rɻ "|nIXb?D]^i) `;[ё=KI,>@+at!m7oWp)A q5< kD̻6Ǭz l0ǮZd;{}=*^ȍDDۙ1+̖ʶ]~Bq)?9}-w7|!iHdU V:)Q߯?\+focuswriter-1.4.5/resources/images/icons/oxygen/scalable/16/go-down.svgz000066400000000000000000000110211231434177300262610ustar00rootroot00000000000000]ms#_x+$M*._ʩ\]⒣]]$RERޕaF$AH4Iih]\,<|4nz__,NO?|.`ޝ wzlvBhv.ɝlU1񮸫v8m^5llz:->Lg:wt>]eSx=-Meh~:45GʸɻZ?l-]!~;ns9@),fk 9:lShzyٌ /? omskUuN|1^fbdWt4 9)u&7 -VZD<~Zk5Z\imVwD.`IcOeyw<%rґNiiTzNl@`i4nO` Q,I,c=^ncß'sx1TNo_ n`'"ayp2s듫bvknN}hIc @}L-\,eͼz:Ǽo@;mR(w7Oo&&w7߻@ބ҄kMM>ŕ^];5ZG%?'?vcN%WUСQu{]qeKJL1;rk,j0-cX<6(!F"KY6ٌ0y@̯gpf~miMԸ1L`RSˁLRze]0>p 4ymI6T".r;)j^eؕXJ!Y[5H= UxA8$S3f@Ie0YD} If>o8[!~[⸥ҽaT`E+G[$d?TQ3PHA"Wd,$^'E;hHR1DSTeY4CBPd.A$Ě2QXc D)WgTXM[Hn*ڊ존)Eʹ.|V ORglTzuJO6f?g.IAcTN-EԇQ8}zU6:4|`Ny9^s*ISJR{-H2pM5&Ppˠ%c|̠Ux1l3CJvZF#!]+ ✴Z+@A~D nhgAEW!} "`3vmO0((~A"EԃzRȝg8,^j YF9zUMtq~{9x^vpͭpQXKpF:܍$wEf*ڋlA+g vaH_| ȿ)ELl P/oAxTv@d᷼htL'بJ3+a-$䅧EcSe831w->&"F>aAb^3DYI!$LerJ`L0hr{ AUf8r@ Z]i a,h^iL4 Us bS?DuODP0u*8j|{ھVt ͇ҷ^5bt6;oq3[iwTEdk[r^7^Ÿӫ D~qE~rYCOG7WTZm>:5;z{z nv1O6>\]/ y͇,^Λ=myoOkbvlV* \oN?n/p1ɣ2X ?#]~F"3e8^[Ym&号-V_ X-tF+Q0X:Y ŰD !ug ˍV`vz,ƣ6оEߞJ%$Ysm/.J[enټu^S# Fҗ>tt,ChU>^ԕ]rT^V-) F1ʛx(}$ HbM'I1,RH,c2HĂ%'ٔNl^4[i;Qn's"*w@}AC̢KWm ]wPV RF:T1y߃1y/IpWIo+G mN˪Y!C&‚nt}  !:QH[l|lNg7Ycr2SPh)H7f;0JQ"} D-`BFpB}Oh%jHXjuȿ`ۿE~~_٠"vr,"FB}! (m(Co!sD@SO9$a @rkbW r^,}%Bə/JUѵʅX@`UR@@oZr*8@Ju7­hq!`_9z_Cؙo2B}s:j9d9h:>9~|4_ 'tҼ9L߽~.ч?O1 o/W' Qk9QV;GoW׳Vn<4e3Y`p܉:QQ~K3^^N'd͚l||VRJ~o'M*|EfⓝiK׵gU; ̧׳Qsk6a,x1^kJo5"e3/3|8ۇʍb l]/b(Սܿi*dMNW׋77flӚmq[onhx7g fpu>ɖΦla:7gd0]ES&ww|1mK"wx>hlk7Av<^PCޖcp<Ϭ[os4hFypT]Sh|1Z^js7|Bk3==7YqlNkA,p|4JKE`@iΨj@d{Q(|C1\R3(-_1Dz4&3I8'Z4:{5iUmi%\=U`166Ū= SJ{SQ,1heY"2eE c*H$.U3P?@]zwJPe]zP(E~J!u*ٽp⏲^‘W5V@+RTH,(L[P";h#HRDT+,:Y:ٝkz1 "ëx =5eփ%UIʨx*:ҦHi; ]t9ɥ(ƁL^F TQŸm6:f?[,D59B"&ҊA<*WTdcR3yxUHwru[lM7Rg% 4HH@KC,# 3qp#0EvN!g6a$I  I!reB)Uɴ1qF|WWBbPH$d mrhNrj!Z)՜JTw6oAbRK,/{ j4TO@Ϡ>H?Fk ZqvZsHbj"HxӊZ6mJt] Ǐz? 4$'`Oṓ" NbpT^_S X*HrOw!rae,{oQ 5{No۸ mn̺%Y:m?OaI6ǒdIg"YO`IIgݩ41~9v$_GOa)4>}}Iu nt nY"aĭy'FP:¡#Y<ܨ]{JO]{B/ vDHiS!?[. >%+?{TaX,t)￯J&Ջޛo"=]{!߽}ڽJPbiHóU#p_f#Dvy[ Wmz6!I= !t7 C?X5zoʞV8ٓsDO 1ݟ7 XDE}<2uA9 //͇wՐ] Ϛv/z~靈q3+S-ԖVWq{y~I<:^f88:"QQex:.?RxuQz6+&j]뎇x^L6>\^-::n,^̛=-E]7ծs\+ew7?O]~B"kH6 Nhm9`՜+ڴ辏hEjlNlp1f Ƨ'E!by^g:KDy>/~= *BHfgǃ%]J-f?%eG;;͝ٽAG6ocJ9e (}rϲaY6zZ~\گak3 ԩَuؙQ@_dڬ,\|Ԙ\eyJjG ^'[Թ|c \Md {!GAp;KbHQ *Zg'aBT(MR06f@c{'ۻN>q'"bKj-q G/=H.ـzF㘶ב91ә2aq{̼ xΣ*ͤ;r(PHR@O@%%pr&=j%0TGՂq(R0Oh#&ːGH⢕("7n1!*}("8v9YO"% H@,}[֚҉[r.BBRИL% +62lAZ}EdUkfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/16/help-about.svgz000066400000000000000000000323551231434177300267640ustar00rootroot00000000000000}ks7W*_6uo(qNYlEK͍,P<0!z%nE`0@ht__>^M>-ַ#Hdq}X^q٣f~}1Z]/^]o?䯋zYO&//Vn7il67'׷ɜ>:xZ1N|cj0c`.΋oWjxqg ~^v?_/~ ?Jo^~t^_\?|8?|=f_7/W9c=:r-:4:b x!oHnWw%Hg,\{rfQnޘkqq{3?_ R/쫫[-؁[Mˋ#6aOGZؗW/>-o.5~zyRuf]? 8)&әg Idfշ/VGK$5B#b::nssyY\##H+F Oų"xf}w1"#}_.nZ 6،_,b+Ü&U_ u(D 3Yw Ћ| `z?W OPOMwՇ}\](0@0`0@FAV\12."j\`dYSϑ>Y/gձK@؂_p{-ȂY}V nzz[~ @aezrmUY]۔5l0y?`|Odawhh2p y6 @,m7Ƒ UbEՖKQs$Rc ނѿmOsP OQmFc!y5pg ^nĻCKW2;~TQ/fV5eľR"q.-d3W^-i/Pi_/Ma:)΄VMA2?,,,$J/)ϝ>4?zH(vbÁv$0n$šH\f_ߕ~>^ a`;!{huBx)pиXApd-eUH|#TBy9:n}'/Ml踌Rlץ]rvN8ȟAbڹihB7\دLF c @Cr1@_le];O>/糷\۷kCPD-a*]!J6..z5CǰU|5rV+vW5{>ӗO{CN%0}w~#PN:5/v((P7_J,D1Em;B\& ̅/JQ¥0]8)[J5H UTi2Yl4 Rk=c=}Cf[ MR`0 grB3P ,UCxi,h8Sti:am ;ӗ m a`VLK䨉KB%R(,u <&^. @zA؎T(ѾT@=hq*.K(mSel2:'%rZ уDZ%'`<G2S 44CI>#DZl=ms1l)rOQJ*t!klie,@ dѐ*"*yOy|=fybj 8$\ìC2C,TtWV%W*fZk5cX;ZtIʶCBǺxc,t0V3#0R$VXx43-d :xC[g8TeCq2Fs-XvX8UV`ٱЯ'Z3չGiԒwU r5Bv2]CSBI[>Ŗ5W7k갰&T?3V{FvdNYg,tXn sWi -JjョCKt%0{TB[OPW- %9rRBeC7gk}:Aq-?>0,jF ')= "ہņA ('KӤ1?ˆ' Z3uo8Z~CE­)D`!aVj[F,3tkj}RW1bLJga  y̲*Z) kC?2C>W`vJ #{[KKnPa;~a5P 0tʟzTT&ι2A!㊥hTSJwR)} ?^ 0cg$MO桏AB@bc wEG0 <|8cZr7PktTSx<_v!c'~$e{/v6 |u?Ŕ\Vhj%`$ Q0kAqf.k@YgL:1b a:TA &WE0ְr+=x@ӵ<QHFZA#&|ݤw0=alHP58ΊC(zAKTAG*~Oł:In3s S@>" ZJ*k){D,{R6K;dvS%S:] Z_ZŴqX: ϙ)O9~FrjL)T0Dm0 3K3 c}iU}_n(F }>ʰ ֡m.}.xؗ}FhyT K8j|JZ6hs=b7_zbRd\Z' cnfO `;Abd}6f' ʁ^`N85&9dOH[Wc<<3m?c?rdy=R⇙dbh<&Z8Tpg)9#'z1#w 蔱cQ RAjaX!./xT+nCzG]]򨶆@CSi|0-?&:?Mg]|"Rz,t6eU] 2h.p53c$ L?8FiF?zf.τY#,Ϭɗg֊Q1BHܧR&VX-)jcjNm6.$7Iz [&4d;j핬Tv7G6]%Do{Rrk)w ,KYto#LVv:Wo`%OGĈpԶ-#%6 D*2 Thq[.rJj'T&Zʝ.**mz*"v;UuBHݻ8z="QhG+zhu\.wQ3MI5hXo%Q_d:dy{l+v,Lg﴾,,umKלnmTcmKT7*b~|S0^[fczX}r"}u<^'[/#YPjkr*~ݬPt#.On_2%:oKokJ" /|IϦ"8/x)y"ա5zL(x`PZ&uUg!$9^]U(/_%)t{P%Q䛢 J29.<86| JtER*9_8^hC{M?Cwlݠ8˜ n _. ot܊zP]E>ʭQʬPy s2ۤp sEy&w"ϭ GVu뀔Ǝs=Ԛ۔~}bH4̆ ?}B%mCǨdq<ֳ9Mo*dW!(Nj*;.`CPJ aՓ!> 1t㉑>q(5| {OM]zCPp mwq XS-4_|B[ј:*nOۮCWE?H.d ӤGKDKY8-Yt Ej'os5un *=F%LOgFW$!ш-TA MV`10n6IF~|n}6陵ɛm2+ d:rr0ԞCN&l\cuz.%TKCDxؔ)DnRhԂJ a}urwU@ ݬW-NW׋wfD/'Es"z=Z eg59g󇕥bJ|}"[2<.\f!yVTir%rEvjj> EiU2cEf۴ Y5!5TBu+mRGsANje,щ9ijF 2]eL ZJ(ѶM8Sec ׸߻E~O.<;Օ\CmEL6XFe JUX{r`k%. t?.߂+bTyjEtf[A`+\Q%nk;i#5rXz Jd.:k]kQv7!(ٗѐ ̨'hl;)CFKW2RY2q#ؓwoR=Q2G'z<\NqE}ှgPD  =9L4t#`}vÁK^xz =x_GǓK_xz KWğzR۳K:\(8<](P2耚PՊ{gy:PҁGHzu`=$ց{u`&3ePۿrO jG3|~R+,SYň$aK%Phr:6Bd@J@CPj-Í"!DhRdslvltzC4AV@s4/4XSbbqFp%Rθb_ !#~龟jl4F JJp-JK+4}$\z%@j RjЉZQf.j%=](c*yX6>ȃ}x:&{-&_VJL.U* Y#".CFmKfBwYhh@Ъ-8)'\V| pVyrF=O[gE)*„l]c#Ʀ؜UYYÅ{ܑzłWoy5y?.uG(O :}C>2H ,}BiٳWebG`hbǂquQZT ORruMX7ƹ[`3h}^D(]V 4kXs2yUd#`a@.3 QRSpt&] y,iщ FP]#LԪHq9=ƍUaNhmLTsؓ?8W(]J/΄BQ !x+ !ɲm!B"8RV.((f I=!YFD &StOfǰF@eؒX*DeBd_9c ,~ *rXM…x" 2;T/vH(0$.d))>2!."ca{ LiBT ]]&VW)1f/r# S^.z4ɪ}.}P AmkDLs2p$eK 2@61+8Dy,$է̋=֐0\/'Cl=&7'eyb }ꤴ>b+C MQ2RMZm;jSO52Y[d]V0ŧseϳp՞gd_~cG(S[^,6"Dz`_Y^i{j}XJȎ@ʛbn瑅_>ҘFC&AZ3P-eQkz3]Y~Z\] !s{ŷYĖU}`vZ^inwI}Y~\~]"_7zls\NS~JdM 4o6^~a[4ٮN&7Nk*c/Mb?.6f#S ?^ߞ^~%׫6+n}8[/{^@\jVhP /=8˓>{ӏ'Z.ZVw8< GOWMԇ4}=`(*Hܭ=,~q=8ij=5ܣe9#T緿^盻mM_e:W7`_⽾#_r/nSyvKt2j٧nO>6\#H92w.Hyޑ*}Қ}ROʾ5{/1ꛖfHʹhqNd.Ovr_xdU OtnQ+Pt> [-D{şQcz@[d}y57s_CM?ǿ@>XЁ;-(R9JiQӍb^DJlA~Z0r$?JT~5CJtf,3&B%ry%Iga 2j&&8!EЊ ӶD RmGe p\N=AkEmRawQx¾Q pyƜƝ4T\tRcYZ fT;5b" ^ua5.h.@w'p2LS-p6qh(?mdQlpE*ō`hh6ˉ%!fӁ#n!3c$Bz{dA=\u7/E`:6Zr/'\|/Ii͡[aRϴ?MV=H,JkK2ю m!kcZ"J#^"dYVFٌ@ V99H%)Eο4XV:mԗшeoR :Q]&R#,][= vX#M8b~lCS;kSlRVe5NbpS Rw)"KР:e֦5!˯D{c͇U&eV`r1R"kLgi Fg"נ xeGOm9+}v%7TgPS81 8d;t9qݞڣ$[{, bP "2 .Q6 J.FGZ"8;E-Lr2[B["NoCwKw JvTtUщBjcI,yw;B\ܙ:tC\Ԇn;n 6Ǻa!\o6cfz͠s-b{Ё;&<>Hxvv|7g`(IԄf 8:/!-[`?$t;+* O"&S^v6' øvWiq>vf02~\)Wq4e  SFT_|+X_Q.>Xv:A.m tv"QG?tChN7$0nvJ>h4݊k;4r ,qRרx2F#lGG|0Ӕf;j0tnH9*ETSeRv ('KG_cvkŭnR,gLtaFpp4w 7pQ!0O@:@a@aj *N4߿>aLy]Cly)cąE'ofh_ rP j`C2N߼adx)UM+߸W/^  > M B6Og}ՀQwshK֧mqѡ^S %^[ETН<3>`=3n/.-ؤBeMoޜ9HZ9ggmSDp,2nbo޼:u>`eY}+aIЭ UwD FѨ-Xû顥fUX SQ_ )c v.aG lWn&VUIJ#K ҧ òt7hMD"ټu&oo֋ z1 /tPxJ9 g{sKBM}Cl4ێCfvxSAiR3a;ƨA1jMWիvW<*TknB o1?z3 EM{4$ L"+&y"L<~9&y<`0M7d0MFӤ~0MF/zI3-8ټ>NSNY:@|;MdaI3&(%/{Zr7 H);\$(`=:"e\ H!نRdsj(EvSd75"Վ6d3̤ 3AE@3aVGB#Ϋ:BxJ9<Yw:1 {]G*dQ/˳Se}aiq=*3,{$A(NPFE+=/v\-pLŵ`Hy.ʴ^~>V빌Nk8k G{M@S3^+z?xȑ1thX!TD][hP)*m{Z H$LA ٩#!wY~BH]>`ӸG͎t%w*8=~#`jGv< ܁9j5u-40]mPB8*tyrTpv娃q]C&K\"R=4I`i8̎W̠#J㼪W URc#To=U*nk%*<( e @L~NPy/)B)RQ 9QPr*I'ohu6RPvkmP~@2f,Xl MDXn4 }YD:DV4W*<*SW"MJ QWui3m7&%SWL(PqUT􇪜iJ /|5441:E竡Y; M'c GB,`UmS*ĪVEK{m/((1Mee͢f}J5j][JVtSRI Fy;[ oM1ǮF)5m:BNF޶G/ASP.WQuU9V~ajꦑθ;* /pT-MW񼚜ϓgxcD+J],r JX >-W3 5wGGj>.jY;juyfUѰ$䵴+wİ頺/Vɴ/d,2Z7gլ?h7Bj"tÍi_:_|yۼ|o钵j pp<_ՕZݍi5hS6Άuv_6uaa=ߜai~sm3?=]VXľc}_6Mwfe??D4cĨ^/hJcQ)Z#ƲkGcg)*XN ʤu QKiM)C6g2X=Jp(x0ضEAAcmSԱ6]~GuO;BS!{^t,ACiV%ȕCi֖U\(~7-rJOOQ$ϯ_N-|(/v?Eδ(He "J)%(uKMG*ttU-&Xff_Wd8nz2P} WzKw:A=gT}[0w$Gn4LH^H".c;z~©CynIYZ$)Ӆ;PGT2*MHU2V9شqhȵux*@G:|PΡpYNݎ'M@r1WĔU5kQ.gUDs/YX 7Nd@| oʤ6g٥Q>&'sTaOX;n2_@Ԟ^fޕ(j >2K^Feef>%{iߗ,~vAfNvݔB)6$[rB4! { c/!(N9v>Tfފ.Z$){>[MWVsω\s ]눯ghVuMXg`n|RR /dl-՗3'ckO̰k-~:Fp3'`gs(ypB7z;Bk㏓զÍ/7?CŸZ4|v^]~{?EO+Xߨ.e_]MλB0]o67|8_#^`4}D2)xoͻ|tŋڒ/oZ_-0Vᙱ:9Z-v!Ŵ)'o_OfAMS}ۓ%Gbx3R湝?XꖗonY],06lI?/AOfgFěrг)8YN3xf)]Ά e9Moj{;w.)Vp5zZSi,Ƨß71|a0|?6 ģcpnTb ߼ةLo;]T%{ńXMz?aK֝NVꝌYmV1X/A*ÙWӓ#ŞYqsrG[st)t:>^+sZSJ:oMi!{/\8](ٳ4Fir@-~,\I)UTT6$>i0|*Q7&֗>gDiV2]]WS]~( rq  'CO&w'=KVm([;4kcϗ7or9uqjSv-S\-)Xo Qvcxv 0oL1:/& ZT_~czhr:Ijp'\J=R o#@|b>]` }=z_ºLp*߃ *O0I0=Uڔ 10 3CZ-¤TcQZT=Sf+F:ca<( EAÌxt Ư`t'P=@Į 1bĮR3B,*sRFZ>y.YNR6p/㋾6r<^"x=4a3NZIi.LN]`ߔ75Pَr8\bU1čQ1 b7 (}evց]xkU T`:ZXavޱ؃.+P@)ԯ%TlY+,hNЍru ЪyA[y1Ecmz2btه Zl#w&d4mb@ ÆyH4bk{XF̊Y2f"T=)$4~ 03O@G~n(:@DpXQ-p)FbsKhaEGP2YN<82]nh3ISӌHR@%Μ^ t)IDr} =^h@{*c݀d tlR ;gw9lqpPL9#uR1JA`U H0փ8סA C* (M<{LEYFLr6ꉳ셷(a F; 0X G#45{ 龆hkMAД ֈmwKl,0cQ6]v4,Ҭ̕3ud#·ȍzXЂ=(`N5yP%. $8XFd8xQ'eJ.MbAMԎ. r@}d %!5^H61Yh&@K3 `Ƽ3rԐ@.膄"@"r'M=z 0X.RYC{m2!h`X& FORjT HoJ&wI@@5%17Wf6K^𳬼 ^j֐z&1Kz]N.;ZBk~кl),($YZ wˉ c0!er br]d[z1Ҧsi~Wpy>\,6Et01g&':rC$N<AA/xՑpGn>"=$SBGgeNKEdțt@4td2qzrdK={ E,DފB _ZZxՔh]}5>|O!]E 42J&Q: U#7UA8 팭q@J/^B5*57+3@F z6[}d(aQ hxם:|_etN &:ηyV;jƊy5$ ѯS'dbml2޵g> c,Pi)f$, Uo?j]ߺ¶d`(#גF9_InС ?_q*7WLj撎Y@v'[ϨO ,`fLfi=*N6a%eZttiw l2& W{OiL0$ߘL6{D1ynZaK}a"+L2ofP\!Ngz PDsʥ6?֖Zؤkb]p^OF=Z@表?}aN?O L2[-rc|1v$9t: i܍DbT|C 1h%qw ;$oQ{}(ʥ$y]]{-)*d`-Fnp)*G&J} 3zUĝ2ޜV4u7R9@b:5,ĂbM$:+7СU~ (U)<Иe&nlguweӹ{ u~;dN}fmOm;@B7~ A90Op|2UrOd.FJJ<5`Q˼uWxasrr$/5EB0|CțOZ#U՗I^4; w2( 5m?w̠}K+ʋ؋Sސ|IxcUn2jUzZ^ mE^Ct_P2rsFGԳv=: 44sa{ωog([ݫ.23bfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/16/view-choose.svgz000066400000000000000000000171141231434177300271500ustar00rootroot00000000000000}moɱ ]K3,uW;98Ip>.huW^ B6G-z$1Y3]LW=ɯj~)B:=\/nxy'rz=xz3??5l]|Z;_ޭV?~WB/ޞL&_mfzjy秛]W.o+oߪ|(ו0|h֘,?߬&奭O]J)lSjt"Wuv-<`9iluz,$\]nLϖӋA]>ջv0P]}| ^=L뢇nW]/^Og_.ϗ{=tZ_ίo]ݜz5؎ =jo՘\ϗ3hVRϳO] Rw= >I]cOnnZ|y{|zjZ/OsV|j~;y=_}mHNO~~(S[Ͳuem㵷-Fή%>wCwxҷ?jɫj`J?:G\>*L拫WS[^^^zs~zr~f_˫l_Q#^lPyv'a|߼YZI[b~=_e~ǵh+l|1'×4y{ ۷c4Y`(=7\H*F}נ4K훾䙀>i_?t߬_=jƋ]O?N?/5XwYE7x3n qsjÅoߛ,gZ_Lo-t̚I2X QDTL(~<][BJ iSJU20K,C!.)"KTt멺 m:jxEg.a!_˫ itRd[nǝ.GM(PNBPC3c(< EH9,'FCBId~fOj_4,鳏y8mN1HY& :(q{%ɠy-Mf)A/ϘAAܢԽ7[g4}fr̆k鋇xJDz߼ȳa+}}jonQ{{r=(lO^1W#+=gqx9=$sJ*tj1|1ً%-隯si晒t &OF5y`K6a(n)[T21{.޼dJco-3g]glt8HYCj篣r޵ Y VP6Z޲*7оp+𫴥15C=<%}A^gc-~8_h013\(36_;҇#2IlfGZ8KLӿ p%)?==]ne"6C.8pOCػ|q9[<UGbes]wvd1v/O{m{ʐWa0~ZG؜w/xuӪ;{*۬&۬My,e]s?w[:_ݬ;j~=kb0^\WiH~b-fIoժM]sw٣nѡ*W ?.a_[5ϥawjy(S5i\ͶGZ~^NW͈|>`f8x/Y`Waz}k]^tufp)(*wϠ]kHnoٞ+0+;#M]x^O?.n/g1Wwx&faºh nw a&@d~lӗ٫6xE_[fW >q~.U~I9+ȮӑD:і4xs ɴΘi £lD7Ү*`Ym/~7~&%Mg{#{h=3Z޶Wh P^k6 "iK߄ eP?ݫoW?Oooqx{XD4;d_ףbc]Z^xs--_tʵѷgVh S`$ma9 q6A8 SgLY`asoB<`Dn9gRtL 8em$3Hjť?}+&P,6;ýj8]HO Qs&CPb*{+ ˔G !Д9YL$gc' Yb{YzAL Rg;\av*Q, ISgāgH(w씨1,G:}H;0dـr>E +x-\2Bb̥Va.`jQG$4 GCJf&SqI>l=GF;H"K J2G)UV7JNWz)#7b~٭_\\w< [L( 2IC( FNZd#.kv~Ojk?~ Ii\V0Abv6Dyy0BROͬXF!Pe#0cYB0qNAohkC0*RI![5:}2RΘvIY s4eB,5F\NHq Rprl30Жb5}D9cqb̹Ev[ !uר3#u"cnx6ܸA簂w$PL-6=8w;H  8k'c kx\ܢ 6OTa"`(@\$ Y sl^`sdd ,(bWG.D`BH$gڍ#S3 r(hv{ Ü8g,ԐYGXpP!c%Ssƒ5[SU) dRn0,QSRN^:#cCf yXH\mE5 2l YYR9ـr:*#+X?X1-5 еݻJfn3a=-Ǻf-g C9\\d]ց0jvg%'ظe-ztKR>`cEaJB΍C6BqReoo^ͷwj&(ʒl@gWSQ8Kr`ԛ2HlN %^ #$4fc$ $W f9$7oTD[dol'Yw =-(Q xV qy TPt!&Yt_ʵK %;(k5A*@=Gx&h4iKҼ l=GX;Wdwr(J"Nu \&G~\KA /t~xHY}x6o/nb#.j0z3\sysJeQ9e((ڷr4a/6[KlRʆ &daàN#1n LD`ȪCqa A2^Y-c9 1'>&(G5bi6’:A(IAXpo.l$*qVHٜL(#pDNe_c?y䩲_'7 bǷ8z5"X&IFHxSHܳg|nq dFBAFZ -<7Ec'FJ𘈱^Ma`Yʓ|!Yr=.501^O 0 Ƙ]f=?err lZ kLu:}8|h&$Cx;ո(JIoPN7} R8NwvFFA9ΌދhVY4oEiv:2G% Ȭ*?~6=րAɡAIp,]zF 'A6@DKmMcYm aY b@|^luD7x*eR;bh=-hE+siяg:lPq&ZnB,9@J}0Bހ}Ne%T儛} ¤ +Ps;m2_PYARcI2w8);fo0/7C6sp YPS©# Hi`LT[s_;db4@ _Rdmַ~$h[.W nkXs&q:T17:BkI2$GML=7LAl g{W/ 2d J,gBY=P(I!6Ij[tnkik BP!8lls'"h{yPնyPG lIi̫Uq~@2XrmZbq6;/?_OJKW {-rZO-2VIc,O+HP16eT[ZVc[$H<7&smuϴKߌ'}V薙P9Sfâ4e/(I9$9dn&*jV3(-Zd`Va f@Yש`v*yy)1\38>Df3'$Uq.=\FU L@AJ#BVx;EH+] ۏ裠@enNڲ1C"G) s#6{O2ќQ2B;d.t(}M 6Ze2,X\-c.Wl?& {T`%@˧ɶ0 0B͊s=!x7ty0M> lzkUpP'iR P!JƱ.Xl?:b1Kc hÝNmq pNgi[˰Wњ<ױa~w% ߜ5oh"ȣ"&z4u5~i֬d``pT~j>"xL 's.3W/93t | di0B>tEϷ˂ѿ_z~&QN%(<>UJ2V45>;Qf{t0(,hqy̜Uݠx8VR׊PLχ͹jiql~ƃ|L-nn Dw}O<}~\&ޯvB<~Of:MreǑQ<8d`/uFbIn$ ;Ğ;_D+'$vIA14%@ p\h6 q93FVkMq2f)+ʕ^g2Y˳aX/ OzcχM.Bfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/16/view-fullscreen.svgz000066400000000000000000000577371231434177300300510ustar00rootroot00000000000000sGi^@2?nm=Ec)RAҶv`5!";,7]Uʪ̪.޽x_{/___\].~~yy_?zq|8}?oN.^~w8W׿b>y/ŋ!˛OO~~y/닥bfqy{sD@G/OO[\ysuy_>>=2,y!ʈx4{@3i\z}87<&ݦF.,n,n>\?TA8_/y}CĽ?Ǐj |'zOo::yu|3d՛oG7ƽzwtg/~4J4`|ᐉy{~9໾NNn޽eqy4|vH]V3);};hHڛ?Ng7]Սăvvq2O޾;m{x7T_Zw8R=󡾖r_4KI8vt_-|8~#*$Az"*bh7ɵ;99x~G2515ї$;3FJWmV!m.b<:RdBiR(j8NW ˵ʹ-VsVdxdH7s|}YS/yy~; ~Y\Y|&˛w7Ƿ@$b3 /2Y"pI㇇/ "UOD$~嵲UOͲ KS,HmŎFkXXb:z(г.)WDYߏ9?M}r| + }('./+r3pp\D9>' 7Ԧ Τ;mFe@E3CwT6hVRjV05 bE1@^|eXuk"82k3>8X5) Bg .:&YoWу{E>w6rK:P- 5w8P-k:JE-ޔJzTlh[]c1r!OzwTLX9ۛ#}~;('xfmZqػ8VCiJkS#֛lnM79`moqbD\sw>7_nd׍%nFMn׺K} ů -4.xDbd (J+ P\qgz*QQb׃S#PČ~68Op d%zy %&"qDdY1$S߶v1X푒ș-ܹ&rtivh l[h<b3K}6/e2QhNA\,?x<aH34މL >&"[D-maK=Ϙij-=Ly&NĿvuЩF@P5ξzi\+LXgp[tW \ "3ŀ 捅#eN1c"*\1 ,Iq>l'8=WP=?cyZv+Rv+d(i:IbC!rz_IA+g`$3N}O23%U9 :XIhR&*Gj3-y$0){`b$4U KI fLZ:7(J5yoZ wiHzZRW#0I$D ӿ|a) MiUS>tS~j M` M M$[n*ңJ-/L7r:~ MK-L7Ճ-L7.L70ԞO0ԞO0Ծ-,L ӝLf€H2*(*Յ.M#_.IuOάV2V; ticj! Jq5~P6)z!%ɔƻёjL,B ԍF;Sڟ$5$;_h2Eַ1d[BƤGj}z,on27]-Nq;P)z5X܃uAƿ}A ƾ1Pa=Ծx.6v˿=)I5Rۓ$dq&XxևM6j{ Mw +hB4?=id{u"s|XY}쐑`.$h2&):eeѠ\1a6INK`*H.:Nپ. d.y%TQ 23H=A79@EP9}UL~.r|켨u hƔ^9+e̟IFcFWFkS+aM=Ut[MHyat†Vw8)Hq9=Ae:Swgx&' ?Ts5"O~+[FWuƣ+Y*cC>8"i>Nm{Lǣŕ$b&FMaYtd1.D]٥)l/ȳf'$LI*xQ|u5VL<7}b<1"[c~pm Jݸ(B$sb/~E&՗{\&"mll4"08Px֦b|Kl 4]4N^93A|T$͚i} *ẍ́!E~=Bư͐S4F&*Z&=Fn䚣 4 :'"dHBR7>*Jy[*K,Ap`4fzI#QlLX7e Pgo .MaI#3F(3WUƊ#\p5!w2G}VIw`@/-lS23_#[wǨ:j }3be,I,&/}QON% xlk5ӅkeOi|9fd6R[[dbAځ:QY5 xzq| dP ا*Nf'GGrm $HkZ}>!߈># \fĀR5*SN-W(&p4P[ Zi}+sp2u4%45d0YhԉW[o-h5dևc"5U-lF *ZU")ޟ?`DF)4TPu" FCL3 ԽB%-%DgcƓ'Q#>sꊺRxy%jjV eO3CdCB!S҉6ц p)KCF4+zf~V)W0SX^'{(1R,!c!U93`dM+dö]aOoM ?E0gʞ4߄5^kg4Zg~Ã@lg͇*l^\lI! U|뼨:/n> mn֝0 ň?2a I똣7)!ѓ\3 ɐ+2l9 &e9dlē"+UKUu 5PչZ,*a]t# 4]č:]m/ hFa!.n__9^nI %*)DaJYVpYn=f鸱L6 <>.KmVwB,h3f@qҶ;`XكP, ޅA-R վGCS e!ZrtX*8e6w@R~1L5m |6|焺.$gF)3)Bhl>[Ii"aDњٳF U+e>3dksX!kf$* dJ;~[SkEy9(G)1s2N E6λE %,9 5HqܿaFK"-\l%PF}UDOW59}F4N3M0stbNҚ]*l25̗5aox=7?B)|1N>w ;NaN>w _SbϝSom7n$IwX8b%K.f,Ѭ,VR[5rLcdd25:EfEfv-g5:2ZO۠2GiGf [oڶb b3M'*"+Pk17.XTrX4t>4LQ\?|lnCyY5e}HZH&tuwܠ|b[LXɁUW RZި-gWpq]AߝYK銿F{.qYl͊V]Ln%v`ȱc៤Qd| -F|p}8!j)ulޢP,w\슐+(]Kh#pqpGɓ]: NU$T"{lF\Xȹ)5.@JBﴟׁFq30{r# 6 D(1[z#%f+ܬ;!1 eO&u-m[ U~W a[e|3]:c~\&!mC#m}%l) 3F2܌]OaؤN>ezCv[g[}l66[>moXxǷJ%j@?hۆteit̶ϝVmfmc&m] *>6l~o*6^mVהֳvb[ cGsFmawGe$ ԬZűlr4|z=\){`O)bjg Ǘ޳Y+8ὤ^Km%D^2Nˆv|"Nd/{ԙs wye׍%y7̓ժ6Jm)+nԾHT8*}}cEɞri W.xK~QKW7L0 $/ 5RmnJ2rrf ijN옱|꟝YY0*h?9-wD_4#IIPE{\?{86C>-Ϝ8@r5A1K^iK<|~۷\d9 }P$y+,jڂήdIjl|oTDd>^>#Uݶ\-n*ʻbưuڇyV N -K:fkZuݑ_M꓀RhxRD^YHCpG=Db{etT./lv,cq=Υ=[G3a.#sh\΂M1faT,p+vv h/Y'R n*i:)8@lxZ7hcI`YtReRp%.z/amg@uq ٖH$4s`'a\SOp /{H XgRԧ*Pu\"DP;۾(Ά3bŷW $Hb^A\gxOP)?\܎^'<>n">!Vd'V I1}{ia`ɮmJHʰ3s'+U\2e V]W`k U"SU#Ѩ`as3:rf}I!L(  Cz&|HBd`&/*^Ha pOR! D˭qgA9> q[Z]VL ZqY+^%R(*6;"9f@E2}QڲSԐ.@j>w98Fr a&W˅R8.<1M$ _FP>Ų!*% :+bk53D*fR%`+lJ6MN1lCȉ@,iak^=P TQ o/p9V䥅"YNP@b.9UtB&RN!tK (M5 i]h&!֮5uŔ+PL942vaA`URynhJ  5Qvc3'L(eB"$~!>Qxʷ}fI=̇0EJ`҆&XeI jʕ]mFI Od4$/+pv7eM$3!h+P@&n"I _9?+B&BK餐N2G 2ј8Ȱ&b)!},*ތTu(*֦el}:p+l<"_AkzAeD <&`اH1 f:4=bjRqz x2bo3!|.`)#{g(H|`qyf2P7fIͮ{[XHH" &TY!9)|PL#ir "|mAdB9;8&MD#4>@9I TvSQz5JNa˸r97h

    هRr] ڇ+6_8jӮZ6b3Q 9JK\oh><,#:|lzҸk 8n b|S0<|l+A;ҪňQB{.| ̃Wv:7 uإX"ay1g>I1=o:gb۲!ݨ\g>VKS3xPRʺ }0o}~DzW43O+[&L rυNgc/Vis5V%9aƆx~&ޯRib"wl'!us:nk~1aj %_/IIZJR<Ѭw7l6Xo6Yo>ێ:e u>`a"`̾ߐLn-VSNbFb,H84LjexVf[ YyW?чHdit1R9)s+mSNK<'[MYVPsMse=^ԯM9cgE4و>z|[MVK}Z?}߀RH?E[mV}CF{RpD<̮Bb*T;8FIĈHHk6 6PTxThRqH֠ (6y`f.h"kOMX%)VٸH2&҅L^< SM/k-EnpK&(9/343 U-vuk(cn4*Q%+VR$Z'p|3]ng'OJ-!S?* 5+NMp4;z8hy2QXcEe~'û$ * «& mOM۞EY4 9|>␑C0kf+`"eeѠ~Դq54; !]d|~)5[6U |usUS`efv Eα""(_2!=yl{IY^•CRF[W׼53z՞wu,mo"%A]J~;z޻:yq2rV!kfF;8݈Ԟ:"&|(d ۄǞP4s '57'Zțgvdr͉@{&].%Lg+$u@noJyVY%FZSvlCQ=N Pgo .MaisF(+qro& \DȬd/>"}ka<ޑ9BUORQ t0be]XX }QF'V< F6Sնm4Qq>f_`Dhl>we!Y Rv8F^@Ӷ#2t1gXQɌ~!{t$@# I]g|_W`L:MĀR5@@GAt + !, E$2cVs LD=O8rK,#fUZῠu :b \3M-"Ar*Pp#xyqHH1B* *" BLbeniI*fD 1-4o޷ \۾өzv)9oCR=8{7 ۔Ii/xpGێG|%7*#Xt' d%BmT .m"qa.SԄ 7qyFwdjyyL)?JT]ZCHk}kӣGp|+fI᭓?' :ތ9)sRx@IasRhVOfD01y U>I!*y/SpJFs=i;% :!}of~yE C^fYv|Y8i~%BQ] ) c敒0D ͺS0(:ƽ;2EV*J4}6FlP]캃c$~ "f~杵%2ǗF$.58#dYLltUiV׼>_2]TDʏіo)4 21 adD f4QUl :d>yUhT \+BUpuS>k`$Ql2.U2$OdJCb/!^PJD Dj2Rv.inW.Bu]+e2XT֕%Ek@)[Դ1S!ai^R&)Bh4 *)MA*#l`ՠ0EJk`ڬ&XeR jȴ+,?'/L̀CY9س2e.kL !E[DaƔBP~||,6u# -iB ft? Ȏ2hZClVE%o#U"(*:e𪬫"XJLK i`Pft^`6QB } 16x>}VɈ%`WsbMDb# hn9Th\;͑DOa7Y!9)|mށAL#ir "lYL(9L1 (,,D֘W̱zvB+B^XH=1mhԄ@63 TY]11dM 0R=`_E;obp'Ęp8=V{Ӥ͚t>f \Jc@Q>FRJ1Ah7gl7屌՚1RG݃u N{ VVg쭂8\(^fą9 Z IkHQi5{JR⇕ J%&)8Jo^+p%ϖRGhRgnH!P EPS..|/Aݖ,mV>T]ضk˘?ʜCZmV`VaӑMwNpvEbvfزA'w#?^g086[v2U+-r-0/6Y|gAm8PVp[ްB\M<֞o,5({يmn s"6ąh >V/@ۊn ۶G2gf̏/>+B[ͭ'yxޤ_oɻΙ;Ι ?boE.-o5b$8>4N\(>C [c7D~=>uNNy ۪*iH%W_ w8Q)ߓY. YK褙y<9[&sj3 80 e%`gZii۔BpR)EF2DfE3;(z-'A&YN3r(_:hUyC`fk8nujZmQwrfQe0P.u[Dy$ i@ԗY1FUtW!Mȯ۞=^٬v'wJ)^0d尮UD\5YT@8f[R*_T`ef=Ii6q{TV`Dpue&b:Q0WhXָ镶ebY-m+ &ڼl ! $jbЫOM㷏V>&[cm3_{Menw&}u%H$#YB W3JtOx=s A3y=PM`{#ݒjY7dqsۓF٫D",(qiW X)#gb[HvXz= Fji߬Gv [)mX& .ifABs~di#26soN!g~HK =qa[m |޿>$Miٔ8 w9gɮ C~`*T_MQM9($5, @='2VgDHxwJ( 7Œa0wT͐`%.@=hAޓh=h9Wso%J;U JIV je]}&0Ǯrd Q]XS0ym9v ¿A',_.z _]8}EqFBA(qáϺhO3R;Jӕ|c;B9᧧00+)j7͆<'.ȽS+vQ #·Rʓsƀ~/1ÛMQ"b^ FtAgΡO_ 5=7 #0z]U57ɚ;OVPׇ7Ӄytݮ{MAwEsG?}_"ZC@ݼk8i1Qp^b< T,w7X*#rJ:H)5)Jz泆uYJ͉AE)\F=E \7M:JxU,ҳ^;V AGY<_/\uq⫋/o^/y*G8.~;ѣ=~A>}l$8|w@֯g$t |~3̽r=by!7 F͵zn;rIϋ/VG֊3e>h̘2~ z^v_q 33_.zP0Lߥp֤P5lW9iX|i)ϗ$tx|~9{|O+so>Jۛ//w׬ϝ~}Ks~#4q_Mj)|vUՇR,9USo>m|u@,no/?ֿ/_WoƜ+µ_ϫݲk>lڶqDķoٚټ}]7.-?.n_]}یkWFo޼~[լ:z}eyuןxr^ǥwK?rwˆkoܬ./^\W7_Շ^ÇX {nu͝wvfއW~+{˫/.2oGs ,Ng@/Ys&pvooܟoo~ZtixwoP-n>\.ywm^W߹r?ӷEY[ț϶-SoV!e5m7˞iT[+P:{f{o0Y~ 8a]8zsK֔5s`پ߹&?,1bi*k#ݻ2PL4Ι@MtT>+߯?>s"3۔]a=k]I,BUUq׾j ˥)~n%_4&vz׶^V@±kw=0)DDjΓP%IƙI! JQ}ɥDF!ȥ,svc,1s>#'V -- C j /R2$ Fz_8[Kl{//g eP^R~a"l`VԔ8$܎p @ՓlD蠈۰ Q= *2d%ZA_VWRe HR\ltړ_Gl9/qF3H69tPdS>\0Chq:B)J &HMls#D ipO(gj)zdSq㛯Me{nS٬XT!éꮶ uaGrz">΢xRŲ5c2%Ao$}a9B0{q@pEI%~Zm #z\Pˁ "Hרk(9{B(9 PR~Zm#|\Ѐb\Y6BڵC_I4K{xӓ93EY IᅀD%*d8'dcE|aIzR%5*9aI_V[H$ HmYiwDÓ}qCf,Zۜ40K?[I<`RcD堉n|~q~A Ƀ@QءwBڎl]D)yDW]"2֭kbݻ")œ0gs G8a(Ǡ*ܒ]g'*TXBeP 0փj$I k\w%7(Ež_$ !" ADHLN=LvKM5g]6ULpmMG뻞sAW ]lH!j-l fmB!E/XHD8JGPC>ãˮ-M%Hgs=75cN{sSf&ۛt NDuDk'!2WHLݿWjT&zB7\r9Dcv FGnaʪw"UG丙dhI㪮'DgcV!Ϊ,#b]<~Dk3 b!܈Rh]Ȉ%^w6j_Bc ,X.HehA`rA cR?fVu=#Vpݠ茓#b]JZ`͖ã&ĺyJ L2\a厶&nRZ V抨a0>R":SeDAvxr庒q3nY܈3'Bï7$,gU=ֆ*-";r찢(xZ5(wn躔yd;> (o'7众ZL~8Y8(Oڠn?sVFll{;\نz9T)z/>hÔthOKZxgQ7em;@/k>#GiDcKDu lo>OtFJsoP}IOtscEwrXu=|@CKGG~9J&G}]u⌜|vYR18kqWt IJ >& ,O@%wuXu=q#Cvץ#QYB ҙ2|ץ#ǣf:e)UU] I=n"rG, `}&25ǖLSj"\ g L.ת܆RlRdJ7aaX NT=r\  p*Tuj+Ǚ=Pya,6Lƍ"; ʻI.JyׅBarheqRl3O& B=l]˧ ܝ`W桒:7%#.r yîpBHwRc!wīX =zUB+Eɲjd#7 ٩ `!)jGQ=<ЮCRqj*KG;W#+tܘI{X8V jY7+4g^`o mb$I߽h^ 2O&C\>z24?as6h\H+Pp"Z#]*-+V:#LLe]QYR,B`Y6"B㳝y WA5|+[͜ cqcwPHD0ӅD8T޵k+YU *y zlre-p 㴡ji;)?FсE3A32B5ºy/Tm_Ȅ]0ܗ3% zӪNބBPUh߳wx~XP\@kN uE8wVll((!$TǍͶ h}^ {haX  ͺl3'XlɦrzBCD~#x|gVt=pUAt!iǁ|a*X0:⾛ [юUw%U*-B̽OjDy]+f_ ]=۬͒<( i'P8,먢` a<{ºyoOww뇃`*xStkLſ?>܌*/~G Æ$(4 5 Ĕw L>o&B*|($~`CZaQZJ{U~?+#"/pt>85V5Beǣ\?HZ6T "~̽0.׷OÑȁx$RCj$>lѡjO?%럟8vD!akAWSO+[OBf!Fjti|ToUa|\ ;+3u>1TONQtD+@Q<_7?/yIofocuswriter-1.4.5/resources/images/icons/oxygen/scalable/16/view-refresh.svgz000066400000000000000000000172271231434177300273330ustar00rootroot00000000000000}moɑw>NfG#/ffPdS" I[*Z6=l dDddd||0[\_]{s?~ۣˋś˃ݯ~_d9>Z~Oْ.m͛j6^ܼ>9~s,;9>\/>,.no!A_/i6]/n.?^w>9m#DDaCy[b~kUn96/9- _L]e"Ӷ"],nOwNnO֚Y!;^:;}JzM_{ۧNf^PN5kzK9aC'elm|4^>}۫]|]\t\vٵ^Wonڮ_~X|v2bv~zv(< ƪODL1K6M)!]Rk^ ?NZ6/l:rS;\55JLX^^- <_[N q޶xy9IοVhnu.OOomǹ^K b?[lMzpFDC6Gi>=1=H[:m8L, ::cnmk?,{ԟ.nZϿ),_ Ci(圱_ݵr@$ys0 o>:'Q1a9qΛ&zʬ no7H&u`!7v< &F?n(ش.`iبY**j#߁qÈ3J*`(aIپ$\=z+Hg N2lT`amm.=r~u? [npOB!& 7wS01/wպWZ]a=yzў,-!v}ehyBZw|i)},yӤgx &v:)`䧣Ӛ=0:@~H@N>!'sW&16& ` L$o戻!% SBL1)MM 2wʦАITdJ>Q鐉s<[ .}$&d&iIAOIH`[iK rPX" Rf"%-E"OǾhwLtbFV1*pb% x LDs)N)!XY!}/1luȾUeO.IeL? n?O ԓKyفKj"fY+{l/aRU]Hfj96sLQR9cCYI9Ff8Df&/~nk,<大܁1#/ ~-O!Mh &0HR].\_vTQ5FT_x@$ns_t0{׌q׌1Kf>OeW?ak۰AI;g[Ql$aqtKZ.mا9coy0utw0(hC#CVh2< Ѷ*R} 3V~O`W5zY n'Zae6b?lfcL?? aВF>"`g&c#Lmtv7/6Sʄx)oM{S޿)d›l{v Ea\'mx\_o$J]PۊWwi7QD}~v@8mmYc"k%DžeÖgY&qoa| w9֓e:)_'Y,vnrdEycQI Q-Ѿ@Gn*z:.IdBsIf fNM_VoEdlD2T!hp-'0 xOAFHr5@zw"EMBn Q=hP{@*1HYuXo(='0dO8L;v bN ,&^J6Fע'PN\m*RCNȚ)qQߍyp`po"E L2X,T^pL"7$2QI@ǁJ|B IzZ3 Dp\o,{:(IҨg. &FQ%Q&աOȉ9aD==;]\OG/ArhQBDxWk_؞Xhd7$2~w77gGc OώnW({NCxKob;1t$R(`N1 .#MaKCbL ΀_<]D aXDi,R\Æ %El,R5H=)0њMezT?mU<P)Ek!n;nqZߌwW5wb<[yiח/N։bHp_yE;9yߝ,"|ˎ[4#R2F5Y|Ԓ4)%{%&ƦLY6Z@8l3*zU"urh'|Le]c ' Eн6p/kaLaã ̉ywѹ(aì%8(]p"PdJL8'q>HΉ -I6d8#X6WesaN$JM頻 M6sm3+Y\X_zA$.I@s='U'-(C/Ҥ&6IJ(kijX⠐5!b@"Lb b-&&ڷvҷERһI2dj 'wBnKuciPRXGרL֠L]O`$t-4_5YdY*2yXju3D9Q@ZEMH)Y5։X"sHv0cv@nQ#k3GHYr*ܵQD@[:lR-X]Y!csNֱ@jZN]$%lM-7jwŵdl?%{Ӈ{FpBxj^BK^<_^h[?<6o?޳L.ÞZz7>zjiTH' 6T-VnW;qƶ ؐ')}-x^`5‰~ߗmE)pc;A?هVo~~?8.KBG蛽^\~>nW0]^kipV*m t2XJ]Y6bލ R|zk@׻ۂ OX%VK]_} {fڽ#ZI@.>#H!3@JεVpB[D"RI˵'ꝸڜ%VM&L`303MT!R'FfE!9Hc_'9O*y10UBƞMK3p NΪY@F%y0d[P'eHXs4*Vk'#A#9!'F'k(ɩd.ˬs@hS3TFZE8՞AUDd83H٣M*uM-wFOFlhٴC#!X%eeli\3'eT62fR7 2zhܔcҦaY''Zߓ7QZrÖIdm/ Ibl%&1IQD["[/Ǜ.u}D`=<栚U [=#/ 3+JsWB]ė4XGTu"UŁ q՜6˂}=yrt vv)6{Dg1L{DXH~/2nǯ^n0$./.5$jxb6h(<ѓ81 ȎܨRYp5 cNfL3\:m 5 {F9K$3D}%{z %@3 %3Sg#Emdu %G u l=I,ߓWD /;a t,UHԋ~#p)}o6A7cof7 cNg˥;px.Z~_rZD)J̗StJk4e[raM+hIC,^s&!ȥJ*9x0Y_v#k#~UJV \1#NN:Q'w',Ԕb)Q(Qza=ֵYTDXFKV:Dq5 Em/HXLK`p7Hbj4y5xPT^Y Du\ԕY&U"̝ZWmFIn7LfDI 8 |*2*d/ۻ 7G?_moOO/?~lvoޞ|.A}r|43~yZ<|\؝/Ww'xfi~4<nwןn.vjy{.= #̓B'Dj1zuevuScR)外--/gY^; gj~[eomn ϯwCY.\rq~rW/'w7'ח7.]\Ώ~a_.TU/jVM^tՃIehICB/7׷޹Z6 IdzOh%_ojt]|{u㢬J+ת.\m?|%N~H~8 r[#}J}5E<QJ==c\Uw^׃}R伔u1_ߖV~n^Vg UFb삠o5[㭓ҼlEb|v^GDvuq_Si^nfӫc?>0ScLr9^:BߎrcSHҴ_P:fؕnƽOJR(f C3bP4l~2ƦuR{ÎfKg`G?\A?+kw\n{u6 8GE7[ZA̔:c U :C\ZjɈ(4 ixi]yOxvD0g`g7O{ٓiggǣq߰+\Y='i?G2#s؛_? WtٍWξ8{P Ҍ}-R9Jۖrq~{.e,emtX\,ߙ$s OofޤppMQ>3TTm5ispu$w{lwﴔxG/X;0!wFZE ~]᭩-5mk oMm/~ڲ%yC6*B(4C5`u%Ĭ3 ?}ןw=>`xٹ!#p9s$ ǚ]S&g7ԆыB-\Hv^KRhK,W wе+$kcIYcIPMJl*p)wdYӨ1ƁfgP*+/y)U@> "Qۊ2w4~)ʔڰp@)^7q|n> '1}9%̚ѕU(CҀ3]6-J)LmEUeeT%oK%~w-uSa7_/}s~x~WV?_ߞolikmuUu&aוorsd(VX gO=_Qrylve= ӮK{Ƣ_)}w|tq>{,f?-fŷfw}=:> yijo0oח}BH8?=??]ޫ'iAwߖkgo?OO݋s}Ok`lu멠5z3@s٧ Cc/N.IG_ѧ²੡./O_>pO7珱 6GW=(LA7+ Ik)ScS%-5%ۜ)bN9->**n1{U7=aex~{yQy+aeh9 \^G Q #E~:nK$BbI!fES(FK1^qd`J͕ZXҝ짥K^3DVxF|Y[:\Kte5K2FyOfEdYFΞ>o4񔦞ޞȭH%E!Gfӫ{VFmk[֗n\-=ෟ.Qk}^> .]|5c6hOi}ޞ~mjх^Z.~l3 l3M3(E2}cvb{SlgmT'fFE*-!QQ^l9BI2f(ⅲrZP£毆~;q8!+w7B},f %J7Ӟ{e9>ޯ7?9{m0h xh7 $ R*.WPt`&Ä]XEBnQIžy꼳J˜b ͺ3H ʨJsB޹Ç*6s73d4*Mc擊[C)! DvF&(TnNbpʰ+*tĨ.ZÖ́ۀpW>5&0Uxz"| 1 \I;7pdXשbCJ90A0*liCq X)2TVĐ;]X*FZ̢c׵$T0!)k` n_|BϥzBAA;4MA;Z}-!;A2t!%_:h`7%ZOakHաTjXACUxzXu l4v\$bwY°F )ArmJ@ZTҸn^Eg0+n<N937A Eb8'^mA  :ŽNgj`<*ȡ!hj6JTth:u ,@K[[[_`a݌B+ Ȭ53qෛ9BiPI7xwכ{w %M:N0$sAmlfs-#"!`XkQiZ,Adjيi:DsKNs"p&6̺w#:Hw3!`qX$ YOnp!"aD|jpsE$0gOm[Y|8cb* *:b;mvl3Gy|5Na6(kXVtvqm .(!%*6 Wk|Pk )9BL;X;wS1D`۠BMSr0;[q U0M%$pwI ˒fޙfe@ӆf Ղ{gҵ$hji^ui U@j`k:KUleA"sP6]j[Bk UAznE+>f?I͜ *2"A:Un[ ^QQBZ J3(B(w%bnƄeV(QW:k <ˣwSz:-rqߐa^(,^+$f0֨u;b I[8_?Xd+>j?#+HkKye5(lvFN-;3͎P[ŁA & ,@>0 5\ Ugp7aȌ;9ar1 Ⱥ}pC8v :ն<싘Y4('l]^6-kb@1Dfeu BЮ[NLofzmj 0Ch B~ZVZ T(츇{ڬ.DAnFX>-X4c7=6skVKRfe|E"\uI\)* R,mdh"!Yw&9<ȴaRy1m`SZOf?}_Iѹ'h5HK.ZQ\iv &Я;ԶU6d IĪ|]E Vtv[Ρ|uZRffPBX2 Ũ2>f?-;87o44r nTQW+f,f""`-z`-;CYUh!M%C[U-`LM8U^ :Z -UJ A7 &[eg%Gd,5†; t)~87F' G9IeSc,/U^*6iXs瘐B9նv-=T:LŎx^"a]$UT#9kf݈+ Ne!b*>jZU,:-T*v#vżsVS*lV 1b=umed!0-f YOZ,²‚ yS HnII6D[X%M(y@an&0煎O*YaW@7u\_Db9˫ooao!pLN f R XOK޵캑_1\`vYd?#0`dׇr"QMcYFݧap7th" Fܙ`Nz (ژBZY)+X)kM!&7<[V!9( :pPvaS3zዐD<:#NX{D%%yd   ˋe9JH|kP^V4*D>6Y\?ݪcQ$!3-D>JvռC12p9Y#b~25pk#FhPTčD&H O)Hv1isѓ:dks1$#JgvL]:3뷫b-b UUAI nuWKIEI֞ H]w29:<'dW_dEBVi `Q.Ϭw ԕ*ɡ̋]p_[-9X0,:n3Iqt|jkٍZ!E%d0zW"{%Iˆ!˃%&}y˚[[bB*Q#R#`jXE %+`E Ԥ~S@pN ᳥B! Fgv"J:S7d^un%M%[gp.@0;@h>""Kb<"V&wxaћX YNQ:xd.dY, B*6A^ Y0 puzę@:>&]qoT@\*'듲"dai%{WҷLbΊ E ;J>. OO ܎v)KsX E=:<; w\lgL!Y  0u|fo9_&@BLfOA,c40ԲI@ӍG9쳋\ d==A<ܵS=6< 1 q ̲OCzK7^k TUeeF.XN cτV{H cēAXS}ta!id q4D^M$~d7.$! <]: FXM1 nHAz_B Lk5HNʎ.mw={ZSE =)#wxfflc,gA*6VdN!fK-f9찗Q2I)A0QWP,U x ձsTPK}7$[Eg"Jwn49cU\hrLGnC9ɬv '@jIXWx}-NnJxR4t(Vf`I)ej,-OӷGWv_1(ds5N ?96"hy _|5Xgv< :m?! *{9`gB짴zj?|x~Qϯ+@UVM&N/?P^ϟ+=]EL@$DlL2y3ϑ@$"5D^5e%tmBC2m%5WIllўOgED5zRRzF.׉Wּbrp_}E& Vm|s޽_Z_NSiY?z|iկkÞwCIR7wƗg85blu|p4ҤBzwBtp#wEҘ!b0Xޥ%zを0S'KhP|nI`{QQLJtpBrCQ =dZ߯ JǿI̻矞E=`ޡۧ_n ;wJ1mp':|Z~'rDQ@Xv 82G' (9:::a[dFnɗ~juԛc&\\movqS9~?_;gGfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/22/000077500000000000000000000000001231434177300237765ustar00rootroot00000000000000focuswriter-1.4.5/resources/images/icons/oxygen/scalable/22/application-exit.svgz000066400000000000000000000146171231434177300301740ustar00rootroot00000000000000}[oIre7qHh -l]lIR$AR#i~+-+ͥDYY5?wO~\^^=#'˳㓳7Ͻ'WׇgLJg{g{?yq<^?prɿbo/|NV _9xdhyz Uc㣃ꀀZV ?qytʗǯM2VRPc㶦CYyZ>L2c\M5W/K8[^)G8>u&yhyuko`/.O޼n'xXvC2iЅ]ѫëALJ?Oog?^:>=|u<8<za0oV_~u5?]'ןџZׯC<5 ޓNZe[`{;@ ^pfWbj6Ų݈wq¥qr4~0NމTCmŒz^W_:Xn,^;XXr݁Wbqߑ%"]YjXrY&s;whe YmD--XRiĹ}q,Kǯ_<⚴x8d,(#Nje|Y/qm}5q<?q] ,>0 9:sF'xiA95qli_]wز_?^`9U2n%^ϗ1J.R|G3%.(@p*bOS܈@,_* 4ŊƷtWN].N] ".wl5PHHטn]Nt<:JqϣU:2T#gI{@2QS&2>%O_մ#Ix'-t 0[bZsv&J9qtŷq,*#3,5:5,wۻk$P {RI  D5x]#80[)aW,,eAOဨq,Lq47atA!âh+ im>&mLBlߔ5߃ldDc`jNLXNT:QgA vf[%c> \񞫗Nzm ;}S6}I8zGPdtL '6eխřI¡BJ%0m\p)xǃ A["hu%-HԂu}Bj2P )F[u1!c Uchh8?DhأX3&꣘L.w[D?g9~n;~uM!fŀl<9$>F?S-=D=Lo8S[@L!b ۾Xu`,ٰiM0z*GԵVRm WS,3/4ֆ;he?uRD R%ݓi>Mo n^-XRK'Hyn HbC!"R[KKm}, -xTTJ22 jimpie99:S9SZ-Hfff< j!QZk`+E&5VxH@ya`%o KC~TB8؆LkM*qhCm f{G kt\ k^m77I/ú œV렛IB؉i>4o6&fS7~R|Rp7̿DI˯Vnz["G<>ڛy*u/OݼdǓW7]YH|=~V/"?]jm/Ʈ, Yt9taxSxٕ _-%-7i=]y4`SU(id[ OsqZr q3vӽ|j׽¼b廋j}}=8~?!~ղsJfݾq-:fehI kgj Zџ)doJr`㧊uBnFARؗ~KyV0P#p-p\#bx::z/ޖsmSѳ:7^޳A+*Wb&u{^yp|6:aUM+E׋fprzs˙旧^P|1 Ƌw k܍דgI ]ym{n]i\[0fF s"w h3Фl{eΥXӧA/ : 'k`Uț5e^6p6 V&ꗚCIw8"F0?5[o?~b H1sƈToRfh&ļanAB5ZX}I6FV!2 S 7mf˦yCCD41 jl`SEMFaU\"kKpEk7k]%>^MW>.&/ L0,* (3(K:Rm"5,53p( RuQe MxUqBŹwj D_8>l+휺:n`)auwP/T!0D 5,Y:̠TG0v,kG0vӍ#6Ul2d< IcȸJZ9Tva|[qYR"Wn6s)2C!0[9V](]#ʚqGb@o "5 4KFQx]2hv =y7P8_Nu ~Nϧ>x6p)AEw[@JR}[@5+. K Ee@lz})yЦ{ N%gR!3^6gfeCM.2 w{w;t{@D[Lg[36a_.=9mS#l 1IziV_[M&D'!MM7bް0AsD>ht^ðišiM@c!M soedwFFTuQ]96i 3v"6RL`,ܰяvCMzJl h.Ss)bZHF(5N* S1=QDM2`VWF0G^)PrñO%`,<Ǔ H}rYXx!SrŐAqV1&cќu3 dgC)Sdb os2ýoaNmU3`= ,޽N',cy"t}O O_k( 㪫Vs<`b`gNHb |97љ k6b/p3n&7an }C-$"%mH ## (ϱ^7!5!đਆ4MVe#JYf^`pъW1tc`!#\@eƠOC/#iٍuB(wFgtr=V7D@DWpRPqjWlFJd>. b8?E)"s,PH'c)5FEggSMکU cA3 J;7Aw3ӄvްҎ&6bNr6Õv԰Fhkld5Bn chGB]$P%"o:)͡ lNr6(/(qPZ&YM8zڡHh2Kͣ)WIV2TX'$ʀD#0hsܵ+Z7pj/&($U JHQRASEO/$Φ թb uQ gŹ]apgj\斑0QJ:D4ހ2->!`NzsĿ^x@ ĕ"1 ҃2_dF¢:AYj(4:9ԔJ]UAL* AjZz:'f7pNTivH9lPF d~\TF sfI8P+:SpLlUp̒N]aհU)'6 *malkXh`c m1{,:J sQɂC(,|>Y-6> | ) &X zrC:VP |5 'h EE}>6OH.ޚ y .1N Lzk*4izcj`T-4H T0Y;4ЄRߖEuK E|0v)E0K'1@p*oe# ,%'O)d[#t#g3rfǍ=68JF~/ 5Il%̧&cϒJ7u*50|5vr">aVc7:g݌eaEy6_-a.B^W07 UqY.C3mZuoz}ͮecD9s!fUy`*J:4Up-?jq&ӌ[&ֺPϟy 8[ի86&z^j.C5qXfVǓWUlw ٪>?8לNp}qs< #kc/`)'WYnڨ!Oq8;M2G<\'@;BjXtEp&E3q8x֪X8]ejF~dqVgJ8 u͋۳Ϫ|^CQ tY#^5΢pSM=#~?,7}1+y6Myv^m~vpj qpv?xr j/x,<2]e WòlJI7mKH#yp>qH\).7olhSnw6"ly.ulCn͊ov#.>G֖A~E:͍„='PORt ;<98aͼ#C)BX |UgCr=g aG>$bhNFI0􂸶>tݡaAnY7!JR~Rk¨!ƖDf <;q!1NN(U+DuC|0Ze`VEzlܿF{RFH|5bc @g#{j+PpAbN*IL1NxZGtJ.hC聵߃J̈́V;E ;&(=r\sFFC2@dD“;c{ѳ7t )Z1"RZ0m[MheΥ=^1etѱ>5 0&C0Gaim  IfpoC␿'+G=aI`lh)ǔ## ͌2Fƣg-"3 ʦnJ?Mn?NB>Q =y 3 a1S($focuswriter-1.4.5/resources/images/icons/oxygen/scalable/22/document-new.svgz000066400000000000000000000067621231434177300273310ustar00rootroot00000000000000]s6BS NܛN:inܽehu% IV~- QEHPLJbw_xYc^vp1'W_y7NYeQ6[|w߼[߹.Giua[9̖y]U-/G2ɢ .:>,?Nt:(v^^W yp|^Fؠȇ1%E^.pKYH4yYk8#E\ͫ?/_LEcS9t@y pPݕ_@k̜jp٧dTvԖwlgy̆y9n>zsT]u|:誋c/DU3EI(A#FmV}>e#4|xZMβY>Ȇr(}6S8oqu"'yp!՟WZ>T*B{~d?-EOg9 ZVj$iĐ(z!(w17BYC,jY兿5\fU,S3Yɿr MqUuH Qvke6#̟<+/sAҠ{Y-f3ҋrD+Z`L%}b<.s\mj,6EL!:UcPWXNxi^lƿټJvսϪbXzXkTIJ(b_uC0ѓrAӌ@1 jc,|ZaY(gW1̻cJc݄Fݴ[ތZgҲNq{¿/! |‰1T G p6]385bz:poFϤbu< qQ#k۾%.qgEӍ+\rt;=EfP(mC[`?o)hF*/թDhMUUu))K Ӫ%Y57J~zyWc~G 0.ik)1)ӨBhb h< p{&8aiǍc+W@?oqa㱢'_*r:Y\a<%6M7(~RÛ5FQϛxƳg kD,}}xXpFZޚgG83Z'C ax<5qmAĽ{N k˕{.,' *ź**u sX.c" 29O6DhEyM\`BqZ_ˈsXpob)e ?{~1'9Z2uc)p~1"oKSō١Ң캲6I9 PUhxh- gڙeD D'NqV1cV]$""#'Z$ȓ cyZ g#M=;߱w;InBQn=ʅVHWYtMd%t[R(`Z,PJmimJ 4Q^ws7(ߍs3E[kJ($v;)_0͓coT38?"ݥ&S~'j-:)Mt^H@.,4bS:60QQn\=Ӷ__0u(QۂhJ$\ʹqc~.3L7S F`7SI*BVY]״IT۳r_r4 ^B\i;Fy3Y#xkE?ޯcvHӣ;28Il2~Ëk]Q_ ԦV j8qi_e#+ 42ŀ0my R$#\q!l P,[帔֧[ 5 j7q{EUI%GZPY”F[@ڋLil[rp6D a@`{  1W@=0p.9= g8̅BZuʨf(ܟkS &NHyR&S툥5#];B:o[積-\ǨixeЖNm@?%qڔ|'Kˏ2O/K?Ƴkc?/JHy̛~YZu( ?~AFh_( 5eVI=g6?qo='Eh[' E?տ ]/ Ǻ904_?]_~N{ZDyr;c$I..Fk_CKNbjgYm"Y먬5 sˊio?Yɳ:* }9vXaYT^\J}nm8 ޒ=D^YbwQ%slʱ{K%)azP"IDY6Cs'UQU?V¸Jv#B꽑C+oM~LtTA|xZш/* IOioT ,fy1@3zd??9HR]hzIhmL3$v0ߍ6w(i; 5Q5 S;3շ=&E ~q≨. .dl\YLKJIBe0 /a (>+=RHTЕ y Wh5HBʲ]РȤȉWm#]c.2:,Peh hϬ9"鲬ݝv+wzDh^jkka i=ummSv %պY# \F!/;|ɘ 8!$CT\o|8 C=k,kP(?hx<dʝ;?1Բl+UOLq@ T1˦@l6Awӡ52xi^ Pym?p(K*6m ?ٲ!x\+Į~y+QG#Ew9M!˜)G†w,`PJ/'xvJ_W6V!{ ڤZ)TT#=u8sqS9 EQ)c:@4M|k:V:mQ{O;sqhgFya{Qy[=(]^T,q}2W:o]NoC"ߵg1Oa@`mC] f$/dTm0LY]'JP&P@Y3aw@WyTJ%w9>"6~%"% 1ăɄ%kN0z+:(8R%plҘRl^l be+K[LN) kϿ;*ʑ"4U$Mj' pkhtFӉc^ʧΫ:Ay}ޢѹZIp=[K|sgϭD<̑Rñ28EA=FFF䔹@8EPto[@\kQ}=|lGr CVFa_tlA)kyr{!x_%ngFr~v@4zG$ nsfl)2 }[] Wk>fRwNO[HlZ-,ziT8Z$/qsWi1eJ֯&u *qT6n-#MI Q9j)m'U }&C@_<g% b5rG[t3auhSPT׉qeEh u&}ܝz8eU9#uڭP8Te͠GI] @ELu؊ZqaWқfS>d#1qf˖j5 L9(0xzaZ0$&Qs-vgP(׻:wݙ?|$- )/z:RN<ӏ46:E>L屏xosLi\0A Wd}C…dJTsY9| Ƨ׵;.AO;iҗ-A5׷3 I}DXY+")\>DҲ]%)\w=jseق*D6+,},&LVQO Bi iuD.D59Ya眏-f}:ӞY50;^3߰7-AlDfG TƳW>JZCMk z~1F 7PmX|QX$& "nS;y>* ZјwngdQJ7C;g|^POػˤ=(Km1#; Z#}0zbrZE}AA;U'fG5uVRѴC-V3yh+ܙ쌿LZ0}_<'D,nd 2G}537-Z@E4'zXOd (A~9uS@,c4PցuT1)[VO?ssҽ7)bP" K狶FeocĮ g&+-ʻmǨٮlC@8oUIeLu=R;0f2@V ;hPE:vvs.łn9JLhlg%XT~%wS,ΑBM$ ` Hm3),]3v?cxb/+{IԵipZ(A᳉a[3 6XK?k0#h%Ŷ--8dPJ9Sm3q?'"1YtK<_Ċn磐~}(-,h;x\ܸuck9: ;vN:_&qrqɜ%#QʣN>jT7t0@5iFl ~;j wJc/\~}3x!˲LiCӾ%@{wrs?psDs*Ka<85h[VtqO0g+x_/ɒ IogA[g<#B Z''/|0_ NC# lYwtT_;0n+IIAtDE764 NHnh$,m_eO0?ySȜa &6O+;6Eݺ*&g$WoO Vv9W7n$Eq G_ǜr-ޯ:Bhw[3TfgqIR, pz97z>!uO))}dдʹZ_MY|O5M`J,PFI]s߆V|߱> }/%jI *IXSH6y3 i]bI::")DM2cGI&w!0iysAnjg6[$vn|3l*]]aUm+wAsoQLouglE#xOʺy\~gQhD1̥*R5+gh49Dppg0AaQv(f/fՕьZ _־C4x2msw}zkU7x-[+xfxnZS7pk2)g[˫Vz ]8 <g0:mƑ~k2+;mD=+<Ԓ{R4/ ZC_B'7Iߡ''rJaQFbx}}Jo~BU0ze!U}dj+JDž 0c垮 `-Qb 3k"S[ӚS^*4ͬ׺=VqZzDOU=ĊQ!MiqA WDeaYpfyl;BzMy״}5K_ĜڑhvBl_GAwT+흑F]H%mՉcWwr `΁{> `fOEʨ}88ZF"_`u(R|NDϷUJI7w; >I+J[LWQGyiک6@RdA}kF>n$hj<~! p9IlZ>"3t n7P0.U=!N7V7~Dh{uRYC~=^oN[x{cǸ3]vzG~a3Q6()8ymyOtF¨z+* \&)ڙ9٤8i zr8Vb]Dź%tC;V-mȌ<}k{>ڪXs~WCA`oA6/=.ۆvJHk=9 78GN^o"6ɮ":VwD9|PХ2FL$o 7j!RS7jqRl 6}3KL@,#U>FK>M3ӥ:t,VǰrB%S#Kf; Y0}cnҥ q}GSf]MTOC@oLGXȬ_ jMA_$?{W̹Pҟk@ù#msS';2ͫ-@v׼ -2)qO1vD'a*C.eHhBd3"rR:xYۥY%O9ڗND ۭ.ݷnVĥD={Hr$s`A|7AaV?M%} g]t 9Qpw_7}Fr4:[ +Ć|SO\m+-Uup=Zr˷\:3ES(9-]oW_4 8*0v"Dn͆էKHZAZͨ} ]g qruYKއ{&O#-FFTQyۗ>/H#=`)0g3ypGz݇hatBDyVu5T::Ri^.Κx;`ϝG^/QO=RZp 4,h?Nq.AXX3œ˹ |SHPcVnh;MPz'M> Q 9̲&=IUMh 1 vD4MZxh 7.hdAs-0ɜ|B0#CtaCj3d*{$n3 CvaS- kuS,!\FHb 4|3%e^[ Pdl89-Vh鹦QKg2%nȅs„!ܝ2YW}5zZBo7eN9g 3[S=g, $Ɵce ȰĎ$~x( zx3\QA=wzтߋCqk׺ `4HݕYBE_rG!o* pIAkH% #/:@(/\ߴ#=b*>Gc mYE"5# C?@Hm XP{-þr7_%9{Gm=Md@nR \>a;̋ N]iC5T.n^Q1{p-5薹EBYe" yT%O82Kka^rVγ qڟ8lE1I.d >э@ƲkUU]mٰE nNB8 h,xw fh)d{|"R"z5]MMOhW*J]*8ԷIꪒaߏjm4'ǃEqMsЛ*'"{ZQ n0IySXCxثF׊qT>ޗNdxJk:8;C,k9AͻR\3^7qip!kp>cP)f~DS.u|ڛc4H&C`k,Ry|Țt`*14:`M| 颎 PEK/M,.\\v*o<ݕoOD!RMpPAj[ +)gV0qͫGAv>El6^enX]m'ACMvWg[Mv'7[l|i&r-PzTHoC0`y ?v`R"OT[w}.&5 pqS)Dd9̷܏G(>l]bKQwƛ\pl(㮢n=Ve*d)PJ2B{=:KND|GB9(Y!YWVҶtiGB ,+\nQ iwp3hjg_T!\j[Iyt0SLSWXOxwZD\fHQ}~|g %KD~yvZHGo zTso$r崅hPHKrrrmdzh\UMS7i"~vK JJ;aF,lM  aLqyCt-A%=B}ef}&jAYQs[p]U\Bu),iIQI*^$QCD%2=iHϺRvf I齰?A5x>M ,T{čӘ&ؾP؊ J+A6.'@WMu!OyT.K'j|13t8&\*RDuϑn[\&:jz%:!%6*6,OK⯇OdryfNoeSs#n/E{~pc~4>RSMM!009FC+_Ihs3Sg}GzGWCϏ?^ ǂ2dُpJz#Zo'l i+[Ლ&Uw`:S4ꮅNFd(Z(t 1\vGԨYI%GQMP*]ISSv*O&$ߖ=ٚ^ ;7JE Hau@깰]zuŷ.72b.lrR]/a'0mSEXW=QDx$y$"Qkk.bR-;,v }Vu2qQ4Y3N_1$v}CYwm,-mmU֘o~YYɄ'6qc'$2Gp8w0qhJ-ᕨ"n/슓4{XU6zՒt0^Dc)fN!r|LwK/H,߃Il;JKǢ!O}S[`0mp|mwƔqYUbm!7F}hjzߛ̐3yoR87TXGy '8Ro!]m8zS%RDžNh6#8CP1:mUcQ*:׽I ;"ǒ,^yȡyelQaw~u Q!'Y'O-3qb 뜜׮*Xu.Yom $>WMmR 8ˑ%j!M9g4J"dbd>.pnҠ{8`MOCčVf^ DytQheQLZ*le7y@X7CA8W4CU I󄷆Nf|Tܛm1RaoaRH TzLWxǮya۹j'4C 4$ {,zbY `U@RAS)~o|kQ7~J[x沀qC'T00qT&w/7Hfiם׈q}3̳3AC 82o.}.`nݐdorݷ!1 nޔ|-`:\:t-_'S:߼46$zl`vG|w& b'Čva?~g"c'YOl2'Wy+6B5%Wތ!lFǴsE@JAȭ Os\0p$ƈ##ↄ0H5۾JtQv +:@=)n~W/xOMw\8|?Lio$gvW:Xrt>Ͻ-8)Y< &^+IxWHY->~ޥyN}1o,tNs[8kW7toj)"a-A=ݭkW(G,݄8^@  g\Uxm* O_bFۛU#> h]ޘWtj7 B-k2W5]^oߥ0/fCao H hQƣcfb?NGi?N磌_'FJF׀@s<) vF`ޖM>-q br?~- Ą9v^ D\è!. ]um^,[-, E\]sp1D(0]wvu `R;SWAQS o^NxS_D> bk㻈ʠe,dRӜ~n{^ղT:xtj`z L2P&ӑsyb ;FoBbwg)7+mJ~و$ZTEQJ, ڍ=ȋBx>k43UM/15.Ͷ$qr:y*yvjaj.:] KC6dkY "11A|PTum tc6INii1-FFAoVp+:GdGXWEȽWWxpxDв(bmkoljLKPL|]Ƭeg;M_HU5ll]'r;_c9dvޑ,W'5\ik̛(X"&tʠ ȑm wYë3T:){L \Hq2\5#<5] 7]MSv&9{gVգMy"e|!8h\@Y_6Ckv JF;gvJtz+;mF,qxsIW*:7cP&,ގCח'뷃Im}Q72Bٴ`6ŭ cEyѧ)NFm s$cMG5ql[jtE>IƚW-+:(-2!5Na\GUّ 1/Wj¸㥺,:AFژN&bT hSf'27%;G/v1,|Xfj^rg!>7^f (hUpuAc$ 4J2P0  u|t-@lxd L۷弻HFf&yۡyFo&iK Ą֥\(Ljⷌ>RС>LKڔLoZx}-PN9yh0.@؍Vq@U(cMrѾ?wؕΘ!eׄ // !׊ά4p3oP*FJib(n 'HlsbE)];wU^?缰*0o^t+t3( MqohЛ|TȕĐQ}HUw;Wzr*GGucCRsXQH ջN\Tfw Υ4z!OK_*ilr2`QTD+<2 SGT"yI&pl-$A0Cst|WCѠgE/o[;& g"_w𪧳dWv=ɤB*z]i@9"}^f[;4KWN`*r[SVidmI)䨯?{ɂ匓,l"҅IA0 51qwX'qC?ڲ$Y34/&Ȍp vP Q+#EJSG?@oN@H6 BMo͇cG |y(/E0@1w]&,K%0,x;2 ,\V:GuV4#>հ$U$^^Zq|Q3baޯXZP|ϵ6_%jy"0Kω&dwS5MϽG 0#%gBpUB+ ZQ ۍ ъ s?a-IQgLMezɸ)"]py[=,}L N"?:~`k)/go.a޾WCfDz>$T0. !¶I.Nʠ B=m' Y] |[é u2qG*`)ec4r4ƌ8jpy-?z'~\u3"dzPu;!C@x~?_sqjƱ,_7:waViZJtDC~84 >6WF޻Vuz>`ýS@JrE.Ώb~rHK~t)_/y+! yμw_⁍EFqÐ8u@܋{LWZ䡾Q,@;'=޼웩qкN"8fS$M~>Z8 $EDCf}&4|s, FPެh] >~d\í5% _sxN>F?#ݵ&>@1$\#7yQG2Q}] ^VG[:Hշs`skuO^y4Z𱭊P &SC%Oͷ$vFujٶ̵Rw`0{lQvB)"4{cZ8C4^UgDݖ韱Σ%\tRKxõ1Itg5٫1c@U43JnÊ# oPW?xKtXwgj|8Wr{2 o&ґIv%,Y=rG3%j@u7!" ) NF#!KhAH"lE\k ՖUs/o#>WE4 M9E<+c&NْNZ93x4BRgWYo$YBiZh.f ]+C״An/)JH|{H]Of˗.HU;IZ/1$3@z aHF>8G?M*pN.X ;1ȆP`Vwh5M7͗ zt&yH$0 $pkt(4BA}B.$E}n)3/.l[IU;~-Shjw WyrTL? ZRt8M()WoNYAP`1Dyu jHyZ$ON 1A?h಄^lX[f4 Ԯ_ֶGGƢ2A=5tJ3p6ISО$*5ͽ"dK_gu==)^ɖ e]+xOKU滫?Npnv kܣzWq2#*]hZZ!'߉MtYu?}=fNKʷ7%cVL@ N-@T:>tf<_1(4JHs|k{T:/.#f3?aj~/w:oI_#3)/4jPXwWzL18 @gHOJrJ.6r' |JP7@H-u5}(Z7ob)P|mdƠ*#%Dɖ7U#/NXuaڒ‡w4YԤS~9ZtF=Dt΋H J^IR!>A_ۋ8Zz:'~]p8-pFAIU7ڮeFXOs'tdPVH~MijCnBC<p L=D}c>p^҇㛆ASߤG~*w-_U?ml%XXnme};0sz/ԟV,Hٔfi`o[jx%6$j3jr7Xu:NbzIwDq"_ {V8ƏHo\KA.wcwSY,Ey"D@Hіܚ ?d=7i8Entg3>omPQ&z~I%]Eo9hzE[g!:rM]Efy>{#kh ߂Rc[GX D egq/<%p~$Gq@q%-^g֠1Jc=:W)|{wkHK tX/[0w) Pс:7CqP:G2 Z ĸL0O9"Kĉ@" xIbUȣXj>[#YEjÿ括EsIMaqY8-e$1_DD5l)]ː相9LV(H'~$XG(IkCHGcV&lu}yÔ3(F#9S̼Bj-MϜܨ#k (@}%pC8hDˆI!Pֻopj_s;8M}$]3a_!գT՚?S5B)&^m9xG=wUʺ-!} د= }Zc/ȶJ8D:70oFR2xطWmO ; ZS>C*1w2~fsڠ73_<=XW$Lya`?9o*~aN 2E({٘#35cT0rQrE9}CZC˫'A$$ Q~\iO^꛰r=KqI(4"g)=G~&/E]J?p9x^dOm ?S>icYÛÆ>`hI05|?/i9VHz-.@I`?D]Q%g#ZĠ%u=޲bqb?V⬴3tQXkOC<ɍi$=0p^s/L[wfHve^5G˸PX$/ MQ2HACܸa^!ŗ.w̒5V;o+bN*# +͠0ҒjD¯ d+{<5E{ ~Tl@8vHyHF*wE(b}{17iOX i"x+iͱ㶀hӖ{$YQzmgbs~HlDSNꋆ^s%ײI͖̎YơZU'گMF%ϱg+ܪ bdE>u{G)6GlOVHVUW\ЎY.cfhEeMLGS;C-Mma{΢E d$J[HHy?p2,DU;I2Ջ"_MY{§o2?1C/ o4V}~|_\;esx`gR6[ Ÿ'Ohnů "'$w82ްQeodLXpv5RL5Y7!'N'7y<h*+*R|!=HI4E1?!ir:ѯb5!yB$mE|_!#YmFYE`|ik<{ !Kz)4jϩS2uL<Iy`쑍3~fʲc%PZ̿"[wB/,$͟{$&s"G[K.xSf#kk}R+qC>cǭ4_SkhF|vy 8{EL>,D?m- Pˎk4mk02d$~J'IzW,%k-|XL[7g^4 I29}7ځg񙸑g M /V764%ʋcV=q?(^SoMO@\W4ǼlnK!P8 : owEPMe(6@t/kg b6~Ze'K$>8쌬aKLaSVDC9$`(}4П}:b#05h>G Cܟq~HrTe඿u,K*7OͧHfn#~KC5QL,)mF6þ2=u7܏+h$J9qIW:֘3(m~1*&qtzly)A08HzА fIA|#qǗFq'qW* gUCq)~偘SQ7>x׬2~gKA~eE"ޜ/Co2ae\3G[H.?e{ 3FbQ2_1wSc/V^KC+4{lv|0ZC D]z(G`vw\ 8l} ޵>,–>[6"`A4cgilZ%Ө%3O6_O~Kl7p}qGaX5iw65 b~)&w;$UCɂҭ$մM'\&`-Nm-[`nqsa@zMs27ducBͷI N1RN+h P@VaJ]h~ {d>3wfhO{Zw2=q#STZ׆?1O4yn%fw3-!P~kv4,/ސCATsGVo-U ӂQ!8 ǴxY$K|,NNeB6UN7`H9>Xbti}gО{[z2bZ$W#sX٣O%@'Y HLʆiKϾɷ [֜0)V}D?6ox$o"*W Ykٝj:i>ŪsuK&ʹLeb7#;I  49ˋc_mBͨX lb-noY-0@Y/#9y+Ғo%Kv !z{]ZHNlpFZ At٤Ty@\^e x.J)LD*XPqr5It0TM/;/˦ΕdRn?exmjy^dc4@Zu/NSMksBl,\b#We7EW[NOjDQ7뒄AI|09 6ܷbPto h-:BL$|f61BcR鐅;Hk{9qRڷw48O6Ԯo4h}xlZ[xE##p{: ;?npEJ)vfrGQ2{ƒ^\mdA5}@yU 'gUT1ffhbs̆_hŽ _e(̼grz+2|4.YkvضvcLU81Tqj/q597x㛭F*)hK|H iـJ$*4-|*e&2,L0`rQ:}-4G2.%;m[KVZNXr"f5 >·mFbA^˹OvMխWkq́HSplmt)ǠRK{E2fyON$L)w7Hf 8'KL66qgO`6 p&pf=tӱ1U+ivKԾWiXP_.I*J{LLvpuwUr; b{`$&%RѧY[E\t(%BM͔?9w#R(Fe䖀c>kݸ^{l 0lH'%အfji' ǹ3OkK"PKo& 2.hE~WQ>"H88}_.aEsxIE_r7hk>X ~wZxG'abh64q8lc"$Lç64))})N,HPO7zF~惯͵ͿR%i="w <5r,9%A+3Ov_UL[25jڊ`x oJ^Ȇ{,e‡z}km#HO8.mxQeٚvZ$ADkʓg5og衇Ьv˜ ڀ,JWIy|De<4޲Mwcqxqj  "&Eb:e16 vW->&i[傀6\\Z Ŭl04lXH%vQ7إ1=tM$@)őT_241,$7"C v]*RIF?Vc -!rϳ{U0r6_k'%Kj $Һߠ27w>+K "t~?Nusһ\;g&#oid%57 h=z,8j";"[KT/F׈g{bόZCV*Ub?hȚ?83 _.x^ k >)38df'FF۳ /aVo~qnMkX8~r5jGP<C<+-7G1J>JLP^t|v֖Nd`fՂ|F(34a% q}8R آ9dV8^>@WEzJׁl۲m40j pAKX3l~ Rʦ_LJ˟^/¤?}kJG"lhҿFĻf+=ҒZiDR}!ޥhf/懓Znu'1PWSy2LD8&W~\<^'dJCyDz>~N[aiB[HסC7عơJ1 x/()&VDD0TNd.*Y eeqǼYҷ!۟E3P*8mHGqd͈~읮b- *xHtC/ &q_?Г@Dϒm cҺ:~* Ӕ<3!;~77G y>ӶmeB6[tTg5H$o;/{A]r.ʾ{Yv˹`w=n훷﷦Fج#zR۷,X͒% rYL^JN |q$VMEP6#(=I 䢅jC,OŠyDȞ8]fu/40-{nCC{m'ET_?5$H:ZS/L v}``lѿL/5RKڼnr yVO5VM >uXm=TZ TwyC2CZ*ע蘝\*|KH.48o{ϾqWo$kʞAHD Wu~$h. M,\EHy3^4DQOo,ϹU*8˽pI#YQJMLmL.?ˡuZ繐ڃqœzo=ffLZиN?;#K,&݌8GyAqSbϔ=M_bV/c؁m91EbꭝȪU: #b5f 3!oz?F)rPAEc@_R*S `j!7onlFi]RҚ~wlMEY~ʁ+ey㤴D>FH%]-}ڼ, %q:8Dnn>UtfNk@䳽ik#E/6׵%/G=SE=B_T.L>e@X"޳I`(YD\hz_eݬǭ\HO>[~.2;[=w{P~Hњ^;g:6{sll_Q\(!&LK1`wr+OzN}$CctU?MSRe2Ce+swe~5 вAs*ށ*lZnhR9I)#^, |o=zoh ZR]sڒ8goxD|>up>7n$GiK hxd42чi9Ov]T{buxp݊'yM[^9-D4:|(MsIwL9UMAC:t* Q.允e6|8qNp`-ѣ@0OKG@ t03 s )N̷ִa"7JajYVub& Uۉh˯؏ѨK̫aVQHnk'~Gp  H=" NPf +8L1T|ska\vzPY$/&bn8-n$d)s 1RM8u"/uPNMCöUYi\?[;>O0&9`Nd܆%p̿wTH  , KwcQ?㝰5;Pf-ц{7=l?5'fFa-e3V]cVD̗tt΢L!Ƚ1#g^$\X|?=30&,.w4s^MYѧ Oki5^2+. Z& o䊸DUQ;8N7Vr ^^{!مS=;{wO!yE›pZ:} zQH0Ȱ3D'LomH@Y--ޒ뽶Gf`?GzznyJe̷/^ ȑST_Oll hxtE˔.9#˻H1{,XĊU/8RG/Tģ7"Xo Oޚ2 }zy+4NN.rQs+syz$С!PO#+rإI MG0EOV_HO[ǘb{z!铕G=&;Cc~:P(!IWiMH:o7 =" (9LGF r/Z ?s>4݊q_vR4Qkks.P;+\]#BA`"\]\c=Ica!vu zhr)*5/Sn"Xr?D]()d,ZB7[-k+ʕ._RQavblxolVULM`fi(Um)b qv3$ޘIu4YcӴaKOy4-+{\}[䒵P'u~~Cu| C$]²[sɸ_;Nm襲:fǠ.h7ܗ|`Z.N`s2 ìQ]r J+I|,4jezuĝւ>M{7:1]^w1yMߑ%(."?fuBIo)P&n% G6kc6I7ȅt6S%2V"(@5-=ySNZ뇋hCZr\HŹu~9)3<~m_T!F}x" ⡇7ʷ)S̔|"!pb4NvZ]㋼>~rLW׈ms|0OH+1;15M>ቖ߄V7Cr\HysD|Nd{sկE0%דLVS}g:~ 7~b)Uώ[~AoLdeSDwʓ:$ۓS8n_+>(YնC-L6W|=h<ʺ[TCהp7>R'qUz'KۗSEA[A(`R{evvW+*,V Q^$T0#p_~|9$ab 4*vq`.v)B !IEظf,rTY ǹ`LVc&FG9>.o>iME-f(Z)ɿ%UѬ|ӑVeWO, x]OӾJ yP?@GP+wr)ꍲ]O ~c+hIOOI1AdL5sX+}[bw``Өtt@Cgٿ2ELnIFNxƣG>V R,1 MpX>+">@_Re(Fו7KMYjqƊ<-i90I,XmC:gO.(<,S& `x2M9ܱ ֢w?_ LP*@n$/L$G-<-\DjjG1_%81*yѕHK`D1S=yد{NδIbGĆn0}˃4]׽.bU+"atNOa! b7@pć: ,[?hd=D\ay{֗o10?Q8{];c1)HOJB1߆Ky1=荪dE8UBXװ+Et@@2'SL{::ǽgʚ@pk,@F^6.xme\_%!}[\r!<¨DsTemRFDAMyD1bP3i,߁ |q˛cFLTI'n'z^Vػ9V4촍NKElD )P~33mPX&ϒXt&DbwEDd`aUҕԾ MAKvTS6_%g-n?իbT4|8@JJM:lf'j ^&p`sԪ )lzANSp$(#PfGJygQL37V׉6h)kkj?Ug1s?"x,DyOE;{nKI|>ufi=!3WBƋD|TyR>CZO5$;UX ;FK'df^s_% ѥF~)ۃ9!CD4x/Kule1i\TZ v2" ?5OpuPsR'MJȿr%S8]ThΏVG<*b]m . lÇ͵"K` G QNYRG|DCdsyTeaMk5#;x?DJ;lTk~ )%QB5mK.<`O6zo!RLdxԷ#01qwH8IN- $A%z^@},I.minDS4B/ΞP21M VB6DpĢxL^>2Du#4~_: tС ;迃oG[cXJ&JMBx­autQqt !\T'O2 }'($kX4EHdtp7JG!B2?)iTߗ`TE\CXVIC ^3bZg4 -qN>R,E]C7X!(??9v$Zrdlvmf\ bQķoMu5 t"MFu%n'B֘3X\YJz{&s h檘{s_5 skZHo91?]‹54|t;Z=NCS.7W5?7vF<%%~~EEC\Z0I.HA邰UC ]6:=*MoR=4e'ٿRѠL݆2I_'c:O*ܮ vjA*4z/{FEq6zshtjm)|Jf򝏬hU;g ikcZ ~Kꠒ{~ol1\|_= bDΞY_I/&6úT4^Ano#=zbЎ1tTP%߅/Oip5/nj//J:AX* l| 2f 0(3BTkS,`t4}ɳ SlĂW+~eH8\b kiTd6Ɯ52\C6K&=fWQi30=&sfa dH>ba8eJ-@#ֿN%>•)\݂ʚ(_&U 4/M׫_Dt8!b_Σ/jQ/x+7nFI:wjmQBKqdGʞEIY=>ƮoFta6v`z!@jW|^ ʓqRz(Hôtw`AP +kX}G4ꢥюcW@P~Vހf諡$v.WژQ43"B}AK58uk~!|B(~.Cְ'f:Y8*-^[71C5A/R3a!bbM>#vl"Ӝ,wG3OnhyQ+/·maxu26{x "{PMu)L_cӉEOA{g)AC- /-^2Lp!Zr&VJzOfC>=G|ބ Rlu;Rc>ovԹC&,eY&tBGY祈kfNl\S\RXTv? Vy2)$+x@w C?EDzNbԉgfַH`|+YE!W9#,D_Y7.WOAA۰kX6M:"X0f@PЌ54FrKWwJx^2pFMBN؈~_o]d~A5~Lc0LA+ Jʭ5 +,~ϋsn.*<[$Zkf]l7}#\bj,:< ~"lӏ:C7& _qY`S%ɦ ̄+D"xLEte \Fեzfށ=GϞ#O4Jٞ5z&āyd^\dҕռMǍl<~57׬߭ڻ4}T,h^}^/j%S;...v9%:PeзUL9Zs{(a{r9u}_Q !*r LIm;nOJpqYNomY*7U!h|GBO|L{P}3O9Qʓ:O<46/)z$zH֒6DUAE{+O6b3er5m ɴ6|@t$&lEG!+gd |VXrDڰ/eS`Vo'U:/52oxPT/?YT IrN✌hDm+ҒK[&os.GPFounޫ] Fo8_/fCO[#fK|V??/# W62u힤o!W Toe@FG?)Dpd4[߮Ϋc=qf\CHGGDS׏J5ᨽ70, ,&`v.VP*?/u`)oL},8{5wd({]%Y OVҘH^NKrK Qn_.k FĘ}ea•}ܑ.z#RRKu.< g7:όcCf{K"2' n~J ZwP+]5$G.LWE`2P+<Z蓩ҕ*.1~|esV'tB2mt=J!CGu]ocHFVne95BPWѦ1:yD%XedNmWkȇȮڷ!Gi(by}(YN*'X?}F2S!TCL277(m34}v֞~`2.&jKt+צqջ'biE6zy9XsCyLgZ5T;9~<|ZSM#C:E}g7Szhz_Sg$¥=*/իÖf39Z[м,4b:m5=0,4񞘩U SI_blưi'[!9'/X%"?b=H?N1v,|Ocxuu"m\G;>&"9 :S~ɩmlBcdhDZ kI2{A.U-kokb-#,) 3']J=8JT#g2hWb3"D8_-'1dɤ$K<?NX/Rӝ9QoƟ%S`*1ݡ,n14[$Ay0-q(C;/M4!C0<3-7YGY842Lik[EqRc8gK% *,:\f,:dر,'ao|Q(e0|ݵI(6uxx|Rs^u#-#4xZɔaCXxn{RItE?Kʑ'YJFF;sƚc;뒏L˦%,(";1ha^9 xoVBU̖&G5e,LQMQXSEd,_Eg8ը ,*hrW,gj`“<=rعQޓ_m.BU=48ϒFKN8ּz㯬poxRO\Eդ9"遇W狋=dW+w8{Ld_܈}HBRô1bԍ(% vF]&e4R]MDVbln2_kI)dF*c9/lްt_ o>[3xpm$ Nݗ ڈlif^p}W |l|"KOA5aydQԘ{xJRp<\?꬈>Tw-3UխҤ 9y@NaNn~bb%$8P*bU$8<"p*- Gk㮏v_l.I&5>YdHm.NPZR7C(@!Z "qAgQnVҏl`$DN {cޅ$G?nwj7ɏy~Ȅ'&6+}2yG7$sO15$[қNӎ)gu%ٟ3SJ׏5mb!7C mţ}_FWFz5z_܈9TˊiXb #^r>=q=,WtIEmuNw9gˌ߄_v<' %w<@kb`>zpZU0_KL/l OP=^e~_~dh8.} pRVW !^_U^xH8F &䨗Jvexx̲GN7IB ,i? ܏m8Az$O+*[?N`eY;J2`EFU`cpY8GX5"$XF1$D Hqޗ'UI +Rt~]xŏ͕x34(6VJr:³z8 ,a \ &9Dj,4\kq;xd+}Wz dzy(RBZ7KX8,V|ɂ_)x~":?}.|#HCBaڣ:-J*n ;wBb`,\j8v7 Q`YkFgꆣ+r}C6Ӽ|hV1Qٱ+g:9 pczmmPÜcu1G#']rFͰ%\hq]DDKzݽ <:Ͽ|}'Ej{9}d?'+sha\<c;thr/g0o[>,ŵjRZB /up]%"5yp 談+^ɱцbV$}# ݀ *q 98̨U;U63s{VʍF0ИyA3u .b*FMʽXqv甋aaba?+ђE#?`l"B 0+c+⯮&ƫ/bh}o;8ֈ68/PU#'Vef: Z:Xcg/L<9x ^G, l:D[K YK/nvP꧅A1H6^ U5KW#UOϋem~ >>BH#@0|c8=0LaULӝyp]T{7PTKoxw{Zܦ7eEh,WlJG@VVlRsq9WCJ .qLwPsٶϑvzD/f/Icڄ)<F{03V~dއOs:|mf~!R>"6]:,c9ߦ  I{}͈yfamhoȂ81&g ]V׊ҁ0Rʇ"a9AxSIʀORoNToLEYt?؉ vPd06Z(C!Wg/;TȅhxHXcs}?=CkOK@7 'O~O̬=#4aa !knn'0C*q&&zs 迺R7BO+Rs6zZ}1"Ƚ7OfIyV;MeGdh[s͗>~coo~wI0]pϚNJ|+ͻ|8Wё;fX pE.|/,oOf9) kR/r nvHScV%(b^?[ 9{9lzuč//OTLGX6cj !flơ7OаћN\9FLzHã q\A7P<(=29W>{1[R SX2:MLD+եE A s rPAmoѯ+Tmf4ʃ)\)R: QZ9.o/(8~!1c ѱ4V&gm0c潤#c;L-*$B+r8Qɿ5nGo__E6N >=zE')H֦ <7~NA40{?#&6RjČ)OFhg*=_d&oPN[Q$C5)66 g:}dlo{zxoHeca@~7r[c7Ґ4s? ~ Q輕\(+xb 2GXaj{鞻לʐk4QXM?'v7xG`W9z ?jXej~V Ev gTd/H^/d6rR3C)&h>@ rǚ4v]Lk0m%PhO `X´1vQ2%K$]ߖoȺL)J()x*3#kL|; {1ت9~ٍU^W9g<mq^jܰ(;uzń͍q-J !U*JN_'ǝVc9 ^qyzΐLi$EM6/z0;2tM]ǣ}i`9*`>ϒAtve__>y+m$c䪉XaTran4a_{5;}-3QFp9M/`re7SN֤Էd$FBŸV c2A[,y.U$sZbPMb _N1vD55xfr|!#ˬO";]=;0#[i{B|+4 } ]=0Di=vP)?J^eGxު.vIC- ]P xB b 'B6.͔oRg[މ$ThIw!* %D4~i3.ȆW0-PhpSXzT(GΕ30JlׯNہ:me)Kfp7rl$|y"Gn:Wu6lRsraMZU3B@tF%vꚃA#l C`/ 7Tg{8)z.iN ljhF\CoK[IJ$liUV[Kk+uwT;\^5F_B78ZM.y(ocC:X+Gׇz[TK&jƕg0+t G+GꯆFǂVKWkCnKS氝tAaE kAa6{Q>o7=2,. qXlV+a'[ GXy~7nd󢹤FXIK>?)PqU'N6z,kk2oȌG=0? biQ9xﴕte%|nz+;Q^ۅs+@ZkR08 ՔZrGkrL:}j'5W* y^ U ){pAIbqwv-1> `Wj04 x0_//6(> [|5@;Wl|5 Pa8T?5Wʯg-Հ%; d$ 7yofI'nNk?:LtǴPw٠B^]m㕜Y5s hUiW7/̌Qٝ"K.$:('H@k9 Mᄋ*y w$9;];JߐYi[SśDT{yRG{"zW\۪^Q_^oل#^x@>.e1.Pv5)[K8GP\ԃŨ@-{$g\`(B qZxϓ5e6֨gNJiFWVQ7Lǿ319n_LCYV=K?Ȱwzo#*3 ]6k/m#>GWKsu](! ~]SD\_>ЏBt \rX捓L@IS\lx8 H&jkjvզaNayϿf[<=Ȳ&CйǴc'E6%k۱o*kaZc6|J^Xօ]㐝%Q ;Gs]6qj. =rr s/{cMAKt3b @dx#a ~>שe5DPh(]nG!F;bO(7oXRۼISUhJswܶ8T ?!GuzSGy%W8hA&:&[6<-#ǿj Myn4=P6U7K=İ_`)[WikNvLľĊf?di~sd?9{I6:$ B'G_FiDŧ}tC ! >/dއ_~| h3r;ѥX(QN˒mt\1yN b{SޮG{U)HQ%h BمK3p\SZ^PVA8Xxp Q78tyFXe4b{BKQT8YҾOp]ӟƤOfhT9'R(kHhFH__vQ>OV`徝E}RK0^!DIDgVUOH*Pd@^ 3xRIBTd_ZTFaZK}8-'POXSu:3J CA\c.%&* H!3|Lh{pA]]^ZXVX}E T&q'J2,F: ]`#2 PXUSmUo$#2<8_-v5''Gh>@z [XqT r EHo ͆,{uXG7D~iʱv(@ys47M"n+C.a$uO&6{$:18+߸P@IgB`9K»6c]Pc'gޔ!l3¨RFc2 ӵ9'e+޴Í^ca8C$R?$ߖG@,+p{6@M왫b=iq2DXKˠ,O i-ɎgԀ J&ݻAw ^TU;1QWlI3brs"svZgE Nl 4*vaQ\QcnAT/`T(]V[E[Up* 34Q@_Eآ4L,FH g>3IJey_T"a6gpq0b "1ΊNM_'LnsgZWh)=|#\LD"F51N>t$oֻnF܆)Xoy3ܛS3 \+i Aq]d$D<_ʁoxPs!~6~!`/n4m߾NNA& \tw^?AMW DfyH343-'FUlMTp(>uu~& _vó[hmqP QWIѯ!Q$7ؽśڤV.zo,IK뀦=:>WspE ⩯7Q'yD机[J ?j3q7X:$~w#԰uRA@a/xKbH5NܱsfCzX Y x,lǯу,M%:7ƿV /CN/TpozLb!2ABBF4M5_8E4Aokޛ |@>ԁ Ŭ%u%?_- a7"jp!w* ܶ[iw^?ڼRdX1ZG2 :DmܻB/H1.ԔXEdP=$=/ذw~m$y/nCqj;RQZE E-kǙ=;g]?=۠c" DYQA+s0/-zVEo{pnۡoi#y-Gwu0a)lw@ =2^xTby5I5> ~mh\[ XoiA`MwGKۻkSp$+a`:7k5kKf|~"nh<7x6`Z" ?ٜ^dfqV|[~F55H zL3;px%PvҲH$o^I74@2Q8u?ZRh;f]YCxak%lŪSbI\cmIa֍JJ`sM8C5ߚz-UQ r$XDȮzRkx;Qo910)/Ii/~_LkkT7 J8+3 UwkҒW\ɡ#m\>09-g[#ɋ@CBTz׋uo'įd<?ӔWqM#=\@H蓞pl="p]R]U\0kM'B+M޻߉;~i|7uizma "eGR)ħ4gkz3_AܯBogu^>܏E?}J{4 4(}.Mc 0`ކn`=ެ-yR ڊ8v〗JU\[W.!f # qѕDRobۑ/]>$9hM$}e5k%HAĚ~Co/aɼaedq V%CС8Rw&Ák~mJʖ{ B2GOa3Xػe[a&Ue뇏46OHEFECHh",s/[10ok@~:BX C™* cR yh}xV^;dR h3%`5Kk! iyv}ₒ,Okx{HwrәU:eD쉜r&5 ,;BMxJt@āog8\;O@BPYgi~,NG}iz-dLvB4]1R2^ywWn*rXۭ>ĺA1HzN4bq Yx\,)GK+8`RoBY+" T5y XSYe,i xҲ?D<6j-ۃX%㯏yLN r@İQYHNgz)d, sW<;@˕ mY":ٸ-f\m6`5 )<BN|Āq7D_!1(;M6Լv$faS^R ASGKoa P/[Lzvĕ[8-p]ǒk~6~9J@x/~ oUyV E,K(gab)v ,<)n>/Pw0;qk"o&Pzz+!-t" +ӳ_W{Hд5qEbM>nx+]PMk"9t( E FU{rى76z-NXɊ=e=w@C`G6}\;)11.3k ?K3 1D MBvDdzLflXolC!K3O~Ȳ:2y'z]U I>fN>oΌmb}g$_/Α݄xk]& ecc޲WD\Bc79K?qmDρ9muwaiݣKPǼtHދEdzmצq%RȬHƝKrNbHDP^8Edrlk>7va%s~5:j>YmT;w a#`'Nm>XUϝ8"xR׆Ä:%or=ާUљ̍NJo^mqVC3`(:^ 5B9#υ^}/a m&(;,bÌ>'Nwu˅| !NM7531N;p]ފ7OȀ,QyBV wi:?۾h`9E]Aի 'X^ƳϴczQR8')(x>9 B F0n呩 &5S1%2IUR%<7Clhy$Tx忯 ="@zT5IM -*~N̈Tf  ؿ␔ G}ǖD۫yx򛧙@I5MD]TƤ$(/w>wrz(.}!9Dmw/31bFJ*S `/#ٍy]zA_pFyT__sP,ѩYdXc7ௌHK#ψP;Sj?ª8+3Gu,czjɣKhRhuQIDoPb~/Io.z4_X L_iCK7 X6ꈘ gOftLzu/n$Eeșzٔnu4xZuP`*uVkJŽXXV,$K}`RS1rm$v.T69r:R_=Oæf:r\v-{Ϫn5o[9f%tHH緈I|\or7&-3b ׶p+0%|˿T>5z=H:/>\GߕK_29hzxGኖVoփqk;XXyelj/zEk)O^ &IF1f0U/h(/׎lq2BEb5=wϚ{Kiڔj2;3%Bo5El=翢BQ&;k/|ȟH5z5JuĤէfSR+l\_T&Keٵ2%¶Qtgl- .ʔ/YGN_q+qҢCJ'VD?SRWt|"3h, |gR~S?@6DW#I}m $q;/Fgs PGPbF;O[pZevB- HfLc5q~m&/dmA2#%rԏMT/']աO(a)$" =?A`g$k3Όqe +M&"RS3EI+׌8i fg{qT4bq#RvX'?+2 u:ְFQZ нHtDHy=:}bu\9M~ۡ."qn4h2r8lje7T/oax*!wLPa#OXUej xр@x ZYNuIhTZPD(XPGf-;?b8 sVŢ$6FSwj˕GcQPfTE|/9o?w;X'`j֭bQ`%žKCFz뇩&3-޳tp>N/c wݘ^4-X>A2'#*xqmĿfт笣WR)xl]0έb\LܑlX 26;r(՘,7oiYvV,CDEbɲǴO:Fe{UV Lyti(PU[7j7kzMY=B˰5J0< vKiWP3I8[CsR@21]cz~zD)RRl4>[KM;?q-/ҷ*)C ڦ+Eum fPk{uf%|~FiǤeaX~GM5Tsq'-ՐNTTJcP8]j+m]s0K8*\U^@+3`1&IWZo4!=F7f;qbfΏዛ| G!gbıesnD_kcX>>A|K5f 7oP܏2^*'>wYT>jQחOSSz+,4~zΟ^y,dk/ {sم6ë́ݡf%Z\}ԡ1 z΄^Xџ-y$ W\ fG6N0ӮaHٚ"VRHd>3%΋1/V~-,l+z'ΐFg_&m&f{atb||, Vc<0'CPab+󋙸(0]|ڇJ_3^J-IY7xV1$fYwS%\-u8,i<ױ&A*G{R;0F2.8OУgS*~I6PWxL~3XD% )=ę2'wӥWS4%?j{[sr.i%_v(K J#ŒTdIPwzя΅YK{jլ`Zygp˧@p_ x+hGv%%t5Weק ʬ?nhœr?Pb.jgQqfٴ9Um:E z`%KNrT{T֢Fe9f1JhX$1>bc/z7%ľ.X|{9S& 0$R֝e?~[#jVҿ AqO~oWT83+֓$61tQO]J5'ގР\>A^Pr!q[B+IWN4@Ot̸( *U#IzvZ2x'"NC2$0 ]ezh?ccEh~gMu+&L AuHֹ 38Ҕu`Yw=~ʔqt;AslreVZikCW{vwCJjwLy)=<H]ŗu~.A.Ȝ51't)-cb jKL@dYcls_OѩLۿ)_XW&S=nE<M g&<՞r|^RZ8'&n0zee]G|zt+=ȿ^1OLW?KRȮMQ e(Hd˷KgJ0˾>DžίCEpzV)( |-dl݁G.zgyZPF K r8e0\i=CgB=O鬡]NLlP/v2Gj-- \ؒ9i,(C|=4S0'.oIc-Ԥsp_7\bއ:qcBև{]4n)ι8y7w{wt@[X~IqMmj0C׈VJlh<†XZ+KDؤ`N)EW+o$ΦMw3]Ts$E{:L[_>޻3č s@]?Yɛ7W(AARPgSBHܴb'l\)36KA|IBQW>%3%o$T܏Ʀ&:zNW~l+bI'cnHZp^h,F=}zJË Y0J5?% T,޿Ÿ? k Z'7IBXԁ^X7>LBIuhsPH>Ƞ,~/6[UQc&X}[T>.)JmR9R7e>6ӔPm@T0kt>%)W[ sz@w65en~[JR_DQ L1Kxٳ_h~u-80HƉ rPCO^l3yvʵ0gct"}O0LC5 *G857>[{ YI fcd3SrӐD@V6aZ in0 dMb艸ܩ,is&sдVbwQU?gH&Pщ5xBL%}( ftwE=p>ent9|mYLfѝ>$9}00,otG}/R,\Amț-J4d,"|ݜDZWX:(3*+KW!G#_:@ft#9dQ>Rִo`9JVZ[ܔlT6llF~aG yY2Ơ'ߘ (iV!@w+Vo2-`̰t1߻`Kɯl"Rkv X G}%Vk`ݷdԎNY#%OL()s7vf"N8ڵ_H Kk{D,^tݥ 3V0G\{\|~oc+/b ]^HQm#Ge3-;<З33FG,f{w[~M>joWV9utcg9D+Ú=*ysxn5C74ǓJ;~ڱ HƶkXۗ~:v/,-g K5{[z]3:.-BJÒmqqe_G@fZ2 iU_إ·6V]d rl.(7$1,A5Hky1hD̯ _Lyqi oSNrM_Y$]1JƻQ>& 2i0hO&p>\t@ەwϷEayo)r O*zM ]dY˨5OVe%2 n9i{X;]kSDlmXb1+%]at7 i|Wqy~y-8$xmCF`URmvYD/!6a 3|>ԍ)_UɐA&ů,J &a#n+gL k c| %QNuGRԥK:h֒h1 j,B["]t^yo\2kzgѰ&|n|]Ry$sz%eܻ A6eP2,zRL`w$ u Z-p+ PEoǀO4vV_а/^ncޠD 6%qnajMRK OՅhP-jGq1rˇTfB lcܵN\'7)">#Jz#jE8*!V+V*C K{-'imDD't\d_+Xz]QsUw2C Xt"n,h5V9!SS1gg2B;'o֨(%Cboۑ s( Џ~0 *AExj.V5a=VrP0o> X8krK0u0ܽvR}UvFEzzV,C,7[hk&qAcMفFdؿ#.Y3ou-˞mo,q3#Mʺ6TmVϒNv; 66O460gMƍ}K)&8@]>\3&qb49q\! [+#W禚cCkNF=7z`g%7V p<xMغ~0tBB:C.DNk+ŗdCEkʩPf0$A [`(oGx(K6zjgSTJ opK>qH=sZx<οm/]_?-( 4Q#3?`@dtkfޓUh[A :{{'E~ Y4LGd#"轍3DB&ǧ@=DJ- "Wmk9AY!KOzDwML$&ڪGj(p\#&&` #0 D5N1/#eW5}Եe> IJ.h= ' MT97UVQҟOw0W6giJ_&jpXnbظӞR۳;ob4SJ`p[E!{V`8t7",S2n,?NqS7n4ݷN)V!-IơZˌGzV?vLMzٗȺcƈ#iKjl-?+d&yyH^֙> O'}T#zOiϚ9UvJ;9$2lgt?P*ZEU+*X,ms;- 33L媦;Ϫe>~[NUU?Vd \Qug͔O)zՒ"x.Ȼ/x0< :4&"6 Sj" &sb9 r_bC^a2IH|е9_IMv,vcVdmj0M Vh%DXy/6+qOGnOqX}$*`oDz'리"4,x KYǒ U1,sP#D5lt>iJGOI6)˭ؽs&ᖎpdrw੮ H{Y=zs([g2y>P|N#葊GP HLE6RIG" k|.-c 'Nm/D;!:ˏH RsfzyExEAPlPPY1-0 h5L^Bt< FD@ػqxR 5}^mEd _f!e%8X6mJA޽"VM|)IUo+dʚf:Za#~5C̣\Geu܉7 w|ΫAϕ .e7z7PxL*@,XՂ:Vg7eUUdx/G3Gl(j=aVm=_3 ?çCԓr^ѬvG,^%[?]^@wzzvn$(6h<{ <-C?9geh3™ E>_ϟZxdGl1TU v-G̹(>^LX2Im1o__}9L0>lRN{x 0y2Ad JJN1eY[t=48AH Gyׯ13xt*J빛iF!J]@5V۸M^6󫬴$COVDF?~T/g8呖'Qs5TpvaV_l2C(kJfy+DYG"RYpd,Z؜՚6˅3gT Q%f5n, o2[1Ð9sglvyW c{M,_k3LdOI~vRYVӸ <>T\c[;!4]:$GqF_"1LHԦXhDMd_n]Qt8N$rK|]Dׯ%1&RJzH?S >$;<Ve1:S&^2fTt<5EȍgOA}ެKUH8$}lroNm ĨBZ3!V||lW8:΂̍SFHߖ`?,hI=*ziɣ?@9E0 '߷7ʥTl^ZtM=bXA}f;,M۷"w%]&ĝaΌQzs @,'Ӆ Eҫb䁵JƄԿ`"-yr%H*v$1})Z 3e42,K*f;ga_($BL^❅Ɩ(O ZDQ,-._c3wh6&cBgx'W> lcy/vz^@UmʼP3Z_[u0~yі42tx9G0c(u/[ :$СIcJ Y *fj;OacdlU^C'rLo`[T ̘ Lr㉿.#y{Kor];04ԃG8)ʊCLAP+0;}ᣐ"h@Ʋ ˃L:h}GsI KwN} $ZgpLt쳂+cKg<fmwojwCϏDd,iǿKB %.|h[=Rq~wsj]UU 6Wg.Iac˒|q:d_/^Pb-t6 96Sv ѢwXTzz?OQM^d34,׫Tc nX6<ʱ-"XRؓɠΐXa|b@2#^&7I]ۃ ∫91o =ݙO_^(#vQ|OF_?}P>#ou|4̚7l CF r:h;f'*pde%z[?G/qVxt u[Sa~gRMT%u$ 6eԤh lh$ocHF߮m1!mKY yTD-N,&UI_.xrৗOhsD~s{ 4`gAEN<>{5gHpB=ɩӏʨq돓_\eјpj(N߼?bNDLvf\Vv|5cwl!&g~&(0ї=t:ԉ/&: MޅJayrō1ZfԂxlz}>ԍҌ|DGD6K [ A9,5<&X}uRܿOť]@+ lLz,V(fvG6Lf!Ѡ͛h%+`ų5TuAM;'iҹJβ/MfҔEC,4z\su~o+/ F4S1sݜ&gjq2'(5iE)Wt[#mS < tTԋup1ݲh2(U1_s7<ֿ9_\ MrFXCtWhKщ-Z%x53SޤZOp4yi!n?PM/F.I.^!R;QXbl-YJL3ݫJ=5meBs8w3yLaik[Z8KźD<aG;5{i=r#mL[׸H.JwIC d^>" 7_F-u ],R<Ɇ~rFuvPԂD #cW7$f^VdIWZֆ5widbȽ6(2( nZ09 h(r#ڿ4-f@|^;.j݊Szt-! u4wm2*ϻXi:CocR4_cITHՅV3C$}X [d&6ߵ) F/] 7 GkcIG {$omLlovt,kiF$gsv!f[c?x |GU֢ۡYƘ+"/!lAPyőkFhgЄĪ` < NFn,5y% Y' nvҗ If@;ӞDtcR:Ǔɴ*tuiJd$iY_1/;7fc65;RimL*:u {.& oDaIaUKKO3(ڿ|IJQqD("xs=C+(o64RsŹEd]l|7wCisM7?*%rfb+AVuMKJe@ lAї;uڕ}ivq0g5 hfU^'@Pu1#y) ^Wti p[lU\ǹ1C'3K1N6ԻĐ[Kڹ7İBHVYfoM[pջ}U:OOA֩D'ԯt 3r%$xO2υ~4aP/':+mr$W]Ei(-VGՂ8`p},z_p^)TS*]۶z↑k] AJ*#NPYB/ M'6żT7 :o3lG0xRz+'^1S3uk&ijq%(J~hr&KНXÐK] s>?C{)+[ِeS>+Lw+{~',ן3poP&ݯxD7&)0aԬZO&@7qm~|[8I8 ?&b[O3q(\G [*[W3Suq#BI2o¸4pN5_%7o裚~& خTUxbwB!⬓`MgFun;3D,X0}pj2߼"oe)r})oŠV88|oq|}Ǚ64{LPo*ͷH}ց9 l׶9Gu{@敗TaO1[j c ~?>»՗oxfnOԁ3;M/-.2(qOb eu,E_/ {pރ07lFk:Bҵk  @$IMzǰ)[kÄ=R-U%?A&H/|"65Cf+^?x;ƹO! >tVs2گ{Am\K.M}|tw񄺺R<կuHfQסW!C!3%@۾~驺&j =DsЃ2(}/;9*j> ؅苚DKng P(g "S3uK}_v|0y!E^#&j\JzIb( ˳=Eϓ:a ~,8>N)%g[[z#qdJ[ܗk=ԥl ߩܒ<gl`m, > \Ѷ:Xj2Cb8؋Z'SJ.ߡ7wYuz Pn}a5DV47@y5i+2!ŵJX2RH~50ЪF}&;Q¸ ί_ztO[2<>vUd5*4z;?.d?U鯷z>j=|ٗK#U8A* 9,vr06$hIʵd+wio]ʱToEI 2}}\.,uVsϱ'k1 =t\ %D;4goXN%Ob?A|P;} 4bCII9$/-t[=ʇLA]L*Y̛$PmWɽ&/LmfdU\9z OÕ$,Hh  Bun2 nEb9h;tE-\-}9D^urKQ$ ĴJ$DN2&¬O5{Y X0eq`/+@>yӏT9.䟸i.1y H?zvXtAAAZ(Iy;hwzA*q 73¶&ؓfeE=Bģ߁D@),ȟxW8ص7 .Z9.ay]Bj`|Prm,)h4S\ ݐ}$'~AWNrK4ÐOpIUMo7-îޅM$vO#<;WY#o.Uݤ'd";P?))sߔaɭ Fa+_F9;m2 ם-#"GD6LSlVLFOfF]0ػa&?`&m{fYC@[P4= 6HR 1Dӝ엜pg?R~:&qgIW1KɬKqNJ?K]S˔!OOKтU<qUVP{F'QZaF*$q@yU~?g0@l^,b`0 M{1ʍvGK8dU!ƫ: 0 1(ۛۯZJ ^_%@ZY.oq ;+yb!8~lXݱ;IvXc$ TiTP'qgg~$e,2H>I\;" ))w:m>{ySaBKD2>D"b8`2W^_u{am}qb%|8*7Q h usLyRpeSrQS4/ᶫMGv4~9 [d{f麎c3W҅WxBt^F>cU3|3\͞@NOǾ8i`%o[(NKDwV7gY-pf{+MlHw(kOEk ւl/eWfd|[D$c74Ѡ"3$m^MvϺǬp~ KXm/~Ski7_quE7zy.lZd Z`{?z۰P FbY&^Ie)to5S_ut8 Y"LGj!Krۤx[Ŵ)|䤣c'E{iQ4s _?[] ~X 19&*(W̸R/قc Et]Zw,՝G7/HdW< R"w)25K4"NʷO>IqHOagNދm>h }|ܝrg=xfߋ!u'ܵ}?!ML ԑ ssg͕HSc?VH P\~pF7 CRr le%A52]*0"˪쒲,t$Ye9T,rjoȮ‡VL` FcPџ|xBޏ9甝l|.a,SJmvoMx;SA KAyQ[t9](Po?x,Qt/l3&rMW { (#|4ۤ;>Qe4Lruy(y,*}m<-K{ڝE2ZA8n]_-Rg|㸹F{$AXN8q&z/$K+9e&(>2MƩtG_(Dk]++&ݗgАLZ8j}l걢4ڥ٣N $ݛvjH8bNEVLC.)u+.xo1%irKښ>\e‚d`wY?3tc m?. ~KxC2{|}.g**%M+<(մN+@ubzl;ggJY]8dmpCIH *8@b%i,QIeB'8'裼]l =ᩤuV~qmE4Jy(p/bh!cH|Z$b֖^"|Au5@`0b([ O HeO+Fsp|%90< 3C<nQ[]t\T9N ;<>+p˯EV'z)uֆ[={Ky1ve`V$^ءUPNR̡4NQ0%R:sUkN2-uu\U_ӋFBx>^ٓ.>޻.);#(|Cσd!r4uϤY>vxdY*&IkP7::|l8}Ǧ Ý - "ζJh]A:3  Ȍ(\<WDQGg ГJn 5ΰHk?V-g厖~I)@տ"eB~٬i=Ha3.pdoґ5"6}gf {xoa$b}vo[_9'o%ⱲФ_ӍvD<( YV$ˆLJMsI;?̾_.o;DQ:|1ü"K %{wk]%Q/7׷M ?~GѕMopQw}W9LeA"!?HȚ-h최`o9P8P;iO6 *|o`{/ 񈷞OrFqU;GA`J&^|KLz KT򧨃 t xJnatD$44Uz③J Ery0䐽-WjIϨ\tΣ蚜˗/A]PnJ8c_$!gPX{02JkAk6wCOrQ}HMr77&rw70 1Tנa\3&qڟȺD{mlH([Ӂ*.jVɴ%~zS-C_i*n<@芷$meI/I; DY߁~,n_H^IODigj#{=X=Y_#q^}۳Y qRؤ| u5g!FĮ{' bf>S{CNa@_~b4vVV,_vz4^b3Y'=; @R3f %Nd.? . 'GE闤zlzzF (X_ tᩗIB?U((ϐ^i&Q1O $5o$Cf3Ծh/Kg{B~)uvEtխU$E=Kbw5(4<9l:k8w}SCU Đf NwE!D?hZZk, yVg?n^2Eb9oħm}e}uEJ1w^XG{x~}UG/V]C>A|%n,ai\Evxiio ?| ,%|y%5!It`D wF#W&kvoꢼJrnm,'nQs$+}[#vCDoŽֹ:tzhw0Jg/ ah7AO\* ͶxSv׽C:;4؟Ju8wLo57Г81 Tk9Tshhoj`P܂np\kXjH|Sʣ9c9D)m7ph<ޠ]i7D{I.u9+TKfG"Ϗ.,|RjB% }L?e U㰿î .w~zoEр~eC:zrſuS?cX\Zr6d-Lc P?zs_H$+l``E |Bq1xV)P<>S#k?-\E'_@=Vl;&xG'Gb흵aCYrکFz83 Xa>'S CA=zU !}h krF=./zV_/o KBEޛosБ`2@QנDH0.1b4ZwK`~}lyTߟGgV<%ᕛ3/:- sJ <S)=uib/~|@ȕ~ Ipk|uGݼI܎^@ш4WVVσ\K3``xd|ё'*XAfB6w~]u qYUaŒzx4%LD};KM%3f+(D2"}Wɋk6Czb(.,1u牁Āxν*gu5Ɲ vr;JK7M[1t^.T$;GC˅0 <~l!k^F_=b]/UI?~3k^?% _.`oJ,˻~9m#ه:jyKw1] 7g j#ؠ8iϤf#4hpy߷eN!}vF0,h(_`tV v|إT Tqn48)0$фC/9pa!G{t֟QB=-fGiwlocJuѼ1w4oZzo]3~f$2:qTxf Zvd8JrbW_g%dm$U}%.+Ekm s+ܣ)>}f BV@OÛ'k"Ϋe9U]teH fmȢZe~Z#?D<21̉BP&q2nidz0%CzVrwHqNTCBcflhW0 cm{=QN<%9A2kz1&Kooq]S]]i~a˪Y³.V{P&^)iyƯ>?:AƷTLybgDIxkju Hb@^{+V675$#΋X5lKQ.m OW*[W:JAzh1a5P,]kXlgwi H4.5qlC1:} 5wMGP|WXqUüUaI?cMrpFG` 7,p_~fپULD#6lǁ}Q)as;[9)2u#o{|;׏r'+B KWYz ҨYe{  *x1V o'nmɷMG3:C(/~q$$]i'V΋7[3Uε>1WvRtG6;ԓ7.(Z א =B=@|vۈ! )Q#7D/)w@Ny:/bOL% *,nܴ:xoNd5l(`aMb?<5Y{%<FZ/=, Tpw0|j~׈/[E5׫[k a_C聝پ!PM}|H),X I|y^0As$9]e]zH`|+WO-4˷7m΍tQ9%ӏN+SHW>:Gw cӐ|PsZ@Y&Fi00iSMKNVrdߏXd>Bi[NHve^4+j|:,d.$>[K;+`z2mANn‘`df] &5ha0ùģnqr+CB?3Z3{/ZYn-at2jHc-K/:cfeRؾ_P8yBfR&D1>/00TaSo#@*^{>.[G7C۫riǹ_kv.T(&k(b'𐩼;GzB@ \s/*BgmT6˘Uȿ18Ǣgj>olfe_DeRy+!U >-{cͺz,* ,zF{/b)}*xjlB&$InAo˵#;144ڛe#T8,Y>:cu6m,= Gd|}݌$a%  o Aqדt%3ǘ ^3ٶwGoBH޴NXd m.#6y$%WZM|P#c(үtKbnY."bB5t#4]G!GVP ǶR7yBeYA,o籞X̌әc4IPL~A]ڥba@3+G7ʜMS*9G? ' h[g C<˞PE-l-XGWRRʝ uA؏J_s]͆ib>n64r veg?4OCη3:[秽3^kPХ4WK :+yj)"ͼm͸vOꈷK =o5_v}'^[sUW@#Gś}l{lZ|*~Ҳb:a@"ʭ8e/ׇs9!}#d87erGD=[LZv[HZFZP빹 jg gMƊD|z]BkyGCڃ}G/<Ջ[ l;S>6D6% \ڏjtV2[3_u՝F C=8 @h¯sclw{6*IUeSUWz=)v ^ j=lbe*Js̎\~p:Ԋ^ZcV2%{"n] / byVϷm4/N^fmz:OߔWxw15yw3b@c#[(ˁvS(/Ts{Ԙx4J `ڝ\S̅2L:Br47if=;z,K6uJ1C'i |Mf mf{]+t$jgyFyE'~AIHdt$]Lʹd5hHM.GSW:N_,zt~Xn=ASo76 AQ-=sEܰrjz*|^NNrWO{d8N=<m(UI_˟ٛVu9k=9{3Kzmx sEWfujV\WH? N3+4,Bk'pѸZsQ7%;?Asd9}r(eM oTUfz{<+&rA}zՕpzQun^.^ʧ;j/F-gVs]^i^5RkU*KfnzT9~\Mr=_lDJ/YӨO^/_:Ys珽t#Ms0 =?vift49juӛLSfR~贋Yދ5sSf1SY@ũq??n._W/=1~Tr{ڿ\t#|MU'yw{T[/3Wá._tZUN?ʊ`ٚIb}O?.OiziEboJWGSg-5 ᓮKxv3(u(wrbOz%VV%8j~0 {c}?>g%yTzߔngG}0Mf\ ËRTz?^ (sߞ5Bzqv]|^ܟ|l..Eϊ4\t^O$x #}o31 ԝL_M*+﷮]9f_9{MgYEZ?RTs:{|﶑o43~r]*s3mkR᧽L/Yi.7O^:;>JSS0σt9>9nOreV7z(y{rԞyZ+<İz|N;Wꆲflgؙ%Ȧ3sᗺOes?]u6Mӓ4k?]HvKVTT[^]^-qQP+^uQ͗Gy~TL{79*c.w4>~3t~Afo̭^-vuu[( D%se.N>5ǃs*{g:y߼b֞K[dO88%O |Fd>w* 9MBSr=GyPOAߖdiyּwmEn4LNMvQ4wt(5?;͜˼NufjNFݜ*B*Azx%AGP[V%e$׵{Юţzr~YWl~"{iixj3^#b|a?"9Zi:m dŗE ܣ}mK{uӺl_g~&9og|yz}|97dZWK5A>ˎmeY'kTRyڜL܌7`vD~{V1ǢqvJGGe}>>SM_n˓ljt;oN'R 14J63u8yH7m6Ϸ" dNok^u2 ul͊=d-ݺlo2FPyoIQ%m k}o oQ:J- 9-#Rl<,&fhEo nˠVc憥;?VCb5Ԙ6+*k$>zٙыp)dxWW(rp}^<$n-ߦ AB*./=a=yG2.vVI%$%0ЛkIPdk䶜QLRg a>kūJ?p:lgp͓Զ/hLx`s#9k@PcrD,FE]$Vr6OSM07<&b b`(4 їlAJd`qaQ!ə |hBHBJl )-YEdԞkeը$(dlbKq`zGvz)‵$l^ NSR01w ƀWS a| vBkl \O__(i3q`5!4T2!uE3,ڠI@*$NH RYXT|~õG@;>Z]EPoۄ%v#/ &8l<P-ilUۄmAF qs03׀,CVFdY i&(̔Yjt) pQALYY\B f񿈕qm%*9FА{7Ax%8a`7=&>n">wWcyбztpȿ}>en[=F;g`]*eD}JG :.H06V,D4O!34vKjpd$7̻o¢Wʧc{z LY8i@v:x')83{z [S5Y=;;tW@Cu c&U+)%qV1pY8 (Uv8lxjYBN#-&q@-D!#!3t7D+)Ӓ=h47@-"Ξ0PTӸxkEBoL Z#ſ"3t#~M84_`=J &6Q)j5Pâji`Ym]wF):~5Z?W^~;"QroXSlZKw\X $u}??j)M|]jgXcSl {/P0ɘXA-08j u&ґr>. q.Ȍab5H(TsB0p̹b%u492{0^3rƆZ߂BERlf; {R_nL鼭MPd,5@Lи>*`  S`;i# Rs,_ې (/:j{ tٸzCՈDeKn!1$) (,@ XÐ6F1ju?e]zubDЗm$0I(3ǡ1fnmIrW PJGnx.5@p# D nj{G i$ 09٪mƬܦo#ef .8'kH)jo)%OJSnr}\Jﱳv0  ʴ ^v}oopq!}"8.onjQ_ Q:ZJP+QZжvQ!!ĨuEn@9TԧX-TuyshH(9R /)!4#-sN8b[=Z(Û# bVv!{i0 E+W60җ,Gԣ EѕP(C3S9q'3.D dM0ҿ\h-bkʵn kW4$IXP9^Â|%ȱ'x]*ģ w/.p*ah- 6m]@2HǡH8_0?^b]`u rcS?{ grZYc]J -,rGz pW<$%pPgcU±eƑmT: ,G!!;V`9rʠC T]aVfS0W-4 k<ƲTƶ6B9ۓ+*F"BE!hB0gC8'DGRk/=` +|XT[j >z $N<a i A %YFl6b%i*z@`ӢЌčh}P{ra~aovFT-DXR(@Э&ɟ,?֡`%,A5(Xs>;X0A&f.8e( 0/ *Q|MӶC~ZRad_d!AF9xa1 ~u%엒TrFa0\{whKeD^1acMo9,RXv hh2hEЋDp[ߙQϱt)v<8vyH rjRQ"Uh"EҪ=+ 4g-Ư6-26gw9C(3d&t^F@L1F̅@NNDPmݔn9`Ʉ0]2/cJRa V9{kbʉA%w7(Z@PM61D ĸ bhPÌ! "38 $i :#'<DBMd$,[ZpWv 1r J|;)EK1L(,f%%]M݀>މ:p$1a# L 4.7 9 @..+7-,,(SY 'ʟ@BE+`#A,8nw`#,/K9a1؋l_pD:&[LF7SY66P8:ń)#π$Xָ'=L$u1E[  <`GHx:T&l.(k.F10 hDT-I  (}Nn˳Rp;ҳxMT>p5 hgvA.hXȁ$L3O D?\ց]aBR `4 v2 v. 7`X8.  "\p|y*»$R#xEgUCaԽ ƹEfP*1wPq6J,==c tnw|9ۋd,wAWHVK: +/@P3H&,8{w&jŎ/qr a9_+* kA#̜DžՃǏnW i-Z+*7 86y_^W;e` -LK1 9X("bRXaG#lLzcY0MdFo-ȺɍAm}u#SR>cYC*]5V3*RQ-~tJGwʕmyYI7sp:MZxyjKʤ3pjNО²X;nh߯n^DT/ucؓv`:: 0߽ x(FW+X'S!c7fk\ H`@4fK&Vd} 3rꈅemϣ6ƹܛ B;,?*]`8x,){_\>N%!!܊8V 1!Ya2zPh_;fB?(=?LEY.s^l(4ZZo0ZRh'P(VP gm tPqKk m/D ?U~c|ӣeQLʹ sD*%栧b,Aa6z$ *L}9UTrǔx6k9dJ^%g_*R_U* ]{e/~ g Q;TK:GCW wy~)zg78AM\mt@G[-8$Φ;8;=I+*ELSEj?w0wK{HQ#@1C]v)3z[kl qtFpO= $h0 Ǘ=a,s°cxAŕA0)Wyru!BژЛcWH$yۥ {EXA ?c4VY/a7PDmc6ԇvgOI.}QXLB&, -ii pW)ŖR/}96X~\,xYYM155.`5Nx`1=4D'o}7H;8go?$ }|!bݛz7J?}4focuswriter-1.4.5/resources/images/icons/oxygen/scalable/22/document-print.svgz000066400000000000000000000631751231434177300276750ustar00rootroot00000000000000}uFdocument-print.svgz]o[GZf]Uxdg`&DȒ!2b"OȸTt|C=l֩sHU7g?67w/1Ջmwחww֗ٻo|>ݻw ë՟..vgggm߼8%~I?r{BH:x÷?>j]Ym7+Li߭HW??O/w}}"%.6/6_|r/vu5yZo>n}Oח[zۯ?^yz{<=c.ƻ7˫ftn_z}?o_~ W$UOwU"W-n~>ܿZo7^.6?ݭq}[(ޫ˫.7͛{~_]}ۦu1]>כn߮Rz{w8^^_^_ns?>kv>\^\vsj\޾9  36kAǏWnfwmo.6%?BrV~ HE ]H"vg.M˟>ٓzه(Ʌ5p)gQh>?'%h ~tJFX~S89/|sRp<}Y\-kҫR)^+=;P%çֶ$1Ú;խ/QR^Oٳ/7c!UzfvB~_/<~yn7m?^AɧnH>A"cX-h|WϘ;\ӳ ĔI)zbK+ RpYZf|$UX?/)9CyD!"'}WoKbߛ<6Q~k MnQIYWr me[ V4ǔMͭ?SxDHJ=ZrsKaq_OgYԓPu#=4:kc_?~݄I(Mݷ MW7!lJc_v|M-7& l[&lu|Ɏzj>%~cbeg.$=V@ck=~ B5_v|'K(9 Xv\Pz.zMڻNzp/@U_W=K$=az.,s>E[_K;i;uKbh^ Bi^91538ȑK=%.̭|,%l=wcʐ]ljtvaPz.zHyv dgqvaϞvk65:gˑEo3bbJEA{YN=gƊ%_{YN>gE"K'ﲗ,85:d>No]ZCz @zqzYͽɧ'jn=$0:x:'--̎Ɏ>nhjv9P{.{J\#!ӗ.zL(yTSK:.uH|5;ؠy=K=yR'});{Eʛs{`LlGyYAqG_48uϥEtj?oBi^;gf,5:gytC*RܽޤDҋ&.~[jY8t[ا`]n"Ys.ѹr"IO:NOf-̎9[1y:gCo yA_!2L/97jvShݳIV0{ C(PDڗ2lOei.kvvi}ܾ{J1[ڗ 4nrEO-s[{HzslQvK=۸} V*P{Ιʼnݚ%FgHzqzKخ\z̑92'\={$=X(=cե-`==tme4>\NN>.˰=zVSqUN>ʦ9B8B =(( O9@rf__syܽtNRZ2I_l>wCBvl^Cq^:O}lH,9=yHUHzqz꜠Yktvg qz/I&}V{ H{q{KD&(-<9{Iyfס:cp;'9CB.WedlL٬'EBe/71ѥx>Vaa,E犯rT[?~mTE H/szm62Fo*z} 8fhǷi2=$7>w 7AUzӷۋ=+z> 7cz^T@T6զ,|T@7%Ѥg!~M Uvw{Vv_eDgwp3_NIO16=+zMJsnc!ǚ= mڣYJnƒY 1g `m,'.s_qȦ}>*A&^/{Mz9}t\yViW7ޤ7[U_TTjst핸g+U/a*=&7e"=mҋY&?}Eau}NO2Qf_(}G^)Va&QqY`(YYΖR-=M+Iɒ'cGdG{寇^sh'Ӧ`՞޴'ךi)unPidz6#ڢvJ^ʎsv閇C[E;ZHO.sznvrMEχ&աU_UJszl~V~Dh7Ь _lQE;Z&ؘ޲I:Tlþ9g;ȓҟ+X/w\Uz{]9I_kzMz95Z]_/E*xJ61iu!~+z}\94{Z%\Mz9=7{ZCܟ'Jl0uԬh d|>V#VaN-zgj_SvMv96]sדr~6t|-J.yMv9{{88+{U7Դq~ݕU $VaΎԿK^p^xnM{iremL",YSvMv9{4E(%M-xE\U{{✃_EMz9'JNMv96;=_+x3s8wB|?Vb;cٹrn~]'1C7l9?JxUvc8?UA&Za? Mz1=e<_72sh'<>D*Ӝݛ b oѭYe%0&ۦ=^??3d(֬=zUzKB$ozG(=}&}>?ĩ=/ê=YiΚ&TQ!'7]֬5W|N^OMz96MDlEYUzK>ρS끣I2fSs+.>wfvhY%*=I"66szhMe'ɦ=n宁lE.{shud{%+Yi*OsyoG00+z>7A֬547 RO?GO[d96kͅrT~E#WqN/Zs4簩M9=7kWjE;ZGI>ng V[diωScIoZ^ʞê=i̛szk˫Xd/,+{|ads{m֜;g+x4ʎsviViieNͪsdw9dsݴS]9o*z >ڦ\]%ꮙR=~/e8fϹADsk*I/2=~L׫u}NO;s5JUzc<4Vz%ܴ'Cw;2akE?n5Mz1g\qk%?n5Myȹ|4 A^ TXe97۷57!EzM[.^[leX ۴k[}^=WqN/nĩqڤwspP[5ݤ7S[Oo+{\5VanNhWܤWC:9q*z=qD6n4|79dgz>VYVViN-z9n*x[těsvk6?b+y 1wf:>$X# *;٥>W 2W:~Ɋ^$%u^N|~Z/Y%bvox5JR%eS7ՃYuU$.~x&ۘ^Y?Љ+KٲW3={M{˹}4?ePEH4nOC*Iu=yMyչ5 ?3|Qoz=zMz96>D狞sUQD{.˴i2疽}P}IE;ZBy$ݤ'SU(5p*y=p0Va.-y}˓ V~ek@=n#8A?ϖ\Q> I6lN=Mn9}Q3,`x.*=۽Jsy q,'k/ 6hfa9ME"VّY87  ߁9I}vkKe.+zmc^m>aU+y[㾼tM$$Obhdߞ[v ˃K7<=U'travQvgfÉdUjÂ:anJ }Y&ٶ9'|y go3$;>{4M0FU(&e}voy<"Oʣ[ф#z_xI{}{m6t\j*zxWCO/vlJ_õ)e-huZUB'ͩe}=Fao߷_'I{}{h:`VYԚ&f6̈X+x!VRdgf1喦4 O-z$2Wk込5{K.oVWbا&=@~(Gq^]$VKl/D$bzߵ<<<5hR,+wXbTձmqyޗ<_Ab|Eo1eӶ1Ĺ|ȣg=OGG$ZYe_+ÀQ{ڷfeY<)/os؊>EIz}zmɑ?[7{Q\g5Gq^:ھi^eߞ[~%' _+nꢓR?>- TA"1b+nnW-}'Eϗq{=sΞdҞleOWRz}}s>$OU`VUsxFi[x7=ݷ=\vlEU&B =dk 󶩐IE&Z@sO/z pVJ A!ܲ2sm_lJ\g+yvQwwǖ\HwW-5Eo2hKWT&v5!W8cy$>}4-7=}zoiEZ֢̓K沲7dl+b==1Gq^ZVM=MO(쑫RBeOWI{}{jvj]o/+zx{/FSJ=9LWfVe:!afdq*>VySbD+G{9q}qoe\?QٳO龼rLzs7Qޛ ڠƾ6>XPKAd]+yv3LӾ7ɗʝD[K<.G3c=X ckk F|W!'q]SE@ Ŋt_II;sNvH^݌GLþ<4[=9_)2(-lJ~gvAy}hvtK[W@@յWWAy}yjv`OӊM1&aM(oVwREٙmّ١Vʾ <Ƞ<ضdS n YE&ZS>na#2nMt-wIyڗ<쩢gϞ,x>tޚ?o*f |E"s؇f4xREoQ-'q^@˵GVAv}vnYf\^-٫:Oʉk}xl6X E\-4dygGMsem=YX+ztSw 3ޕ$<4yq,ѧgdPl[Г% hY+zcG /6#< L>7y*af./T%Av}vkTU\=r?}w#>aC|#>ߏNcY~8ֿ`_pV`$\vî`Rғp1?d`Y`ߎ`FȐEiqx;B<\i1Sb'#ǑУ2hQ{##/?z\ap9hK ^z]+ f<}WPlO7$gD5YVxwEWnB85U,9uP_Ӄ~WyT85nu;כ&1N6 ү Ei9oޒe2SZ \᳧ ^PQ0ۯnFLO]WqogY^0`gy[<)'O n鳼l\c͵9D/cdb+#NbI6;fԶnlvwf7lٍxn$/^ ÖT|Xߊ_9TыB_=x3ѣ{Hrp+ܾ½x}K鳺ӽI`Y^An]ђ+ܫP!*鳼߼wuޘg72k9XiI;"7>4u MB36قR7;P+頾_ 99=||2dg#{*Vgy4?{G[0h4gxmS?XJ^CHq=)}UoyE70C9} l^wY9X+1!f;72?̬UKoezsW89m6=8>@6{ +PƼ KVn*n@H"u,k<.4s[#<ƧD%%|ŗv(^B(,ZZW=n4/EKRJm~_W_>zA7oͳWoy ˻ӫ^}yϯt͛?ꇿ?wwO_᧏.?~u!ۏO_/]40O/oW_⻿υu_4;&Ϙ|? |K=*M~؋c}EhCbv}@WAK$~+%7'ևt 4ǽ'w1#x+@ ·{`懾f~@S Pt<Ȗ=ЁaXPAN=l p<=ЂaVسiPD= y!h{{AǡcOB^(N.'{ܨap.QN`(IjU҃\4m'ge=qg.EZQgZHFtf\k׸D6R!ɀ>Vc>f3J{0`C͗)ʽ#RZЪYrvS#X)@N LD=%[&6.hIEfecvMցKztɜ#L,t如KzcI-'+<;YiO:Y"jIȄ m-17eZ̆)VVZ)c5#hꁃe9I@ f.ɡV@k4cZJY(yM=̈\1gIe!-h!hAeAR-=0;b^YGTJ蠜{AgL9A/[JW=ڤ1gc'"^k] b^%=^A:|%MP#5'cҞDB֜'P+b;ݳR>HD:webX[N s`ǜcLb\ʓ́mfA9.=Rfu'; #CtTJ]6%'!h5YK{p'#PEۘ} Q̘LƽFIJ]ʓ+UDԿkc5FurtYړV戺Whv2y)/"R[ʱkڹH.3}m"ZuP#ߒ&!huA*9JFnJ3ƏV<`dx+c!=1@7; 'giONYhN7J*+ie}d#Ag:Åj@k NVڃ^^D’ J{rND=&J{˘lҞK:3^ٜ4E&%&jAk? 9JxsJvh%<<I8XE"K{uXupl!=qC^יа{3R{͞IWJiWND3Qe9iI'ZA[zt,t=8c4#n.с1,eU:$@;n,rJ c=eD",+W84bd&jg>&R : sIO.Ή-*3231%lBU`^ܬVF)LJO=tS1EIOh^[ Jvv Z֩$v]҃v['y䣤Rp=ЎZޭyfa]ŝQg<Хxx Rطۆm" 'Q; 1IOQ+/FN -@ʚݜ Y̺$/Xn.XBH&"Jd.dH:砐f!jvqHY:GYV`< Ȳ >)m駦o9HYg톋6)MK<#lHfQQW&Ÿc|j8;t}f d]_BS`npm('=< \Ikg ,\f-%$kx \|mF/[UI3YZT4/Vޠ42e"~FXp͒GՉQnr[+6y✌u iEcCqZ+Y*6-M -MH8fɽqHfiXMUb4/h|γ49r_Ұn=mB:KòZ>mܖ,#٘ɖ;n*A5  ͣ@8x&\.Zf>Zg_p\x56 ,7s:f&V@5Kj155a#MnB:3$vڷ6B6R@6F1;Ǝta;I,\IuFx6zFZt,[|RGX+tfHf_txw9Y5gk Us[(xe œWW!iHN^vB6K8SVZvF1;C/Qn>rA5 7\5YiaD&׺A:<3F7Ѹ!i&|)nts<;Y4 -T ..Sk0-H5'{%J*t҅u% ڬm&rnXƍqGq83Ҍc3XrC{WQ\loD]B,%K :A:K2nt I,jaB&mG1 cܵ]ځkv*dږP$=ѵP*P6z҉vAyN#N:79Q݉5:IOY3tF&U]pĤH'ᡷ~vWcxj(2x{R7s\m=u87+^VggY,כJN ͦ$]lo MTYi՚LV`<;L VWu"']mR'c1H:fY_`b(t 1z1nNQW)9HZaA&&h5(u$1A]Aّ0#i נtcT~`C7 eC F 2.`YYLY,EZ mv F1 5qTʶ5>ւkШIʼn(O|`jtouҍnJYNpAfA&cf]~OenNek0;qFWGuó#3pfRzx~JP]P I9IxX78u Sf|nZ*d]!wjf7{kY֌3 B TS)P,PԐJo^ЅZIϒSNfj d=+MR(t %Lؐr u$Up?($3H:]l$$msJ7)H:fy¢#޹Żd]@ai^]ЍV m< ډ4j싵V>c}βup?4$m'niT^і6ҧ# c4vtk$\̄m`ܞ.#ݘEDiQb苴<%-Hfa\,Jx}UsV 3(6npYR4+ *7)mHz4.lAc(|}aC6V5hY{];,qwFWv! x#ɽC؆*t#IŹa@񀾠-@:xM.)Ȫ͇V ᓬ.ٵcyx$IIK]L#%EDDHf!x?:yxަg7]|#Y`4ht6B6 SuIQ4dID:{{th/+ W"ZeOߟ/GKO~4o_L[}i-?߾?S}y8=oL֤\_A%=[C?(uw3緯OW _5=?[h7ԥ y&9l~ggo_!! }Bs߾Ŀzw.6)\xd̐1{P??*E+_ͪaU>Rh%o_B& u! J)(O#UͻFɤΏ_;8?q} F &pLx1FHK7BYZЗoD~#lqF]1OTmDž=JN*>ڗ] yf<1_Qc=ϏJGh|V'lǞ79@OpSNYZs!QkzGEbe. fdcѤ m-Hbn, 2QRz dlys!HgCW1 <6(3 F5DhwX]NadKuM<=ceͳ0}AY6֩)8d%ղvK0} M/H1% 2l]dp ç1ř1 2i_/LG#mLc5e /k9AqXIEQqBQ ͑w{TV: HB /$kšMwJ $'D.CaCuZ ԷNՖ:8,=z3=A)Xu}u#D9L9,/sX,?j3.sdޣϑ1PGI1"u#>â>}EBB4)< 9vx^X\^]툼X031,P䖭 ;LQOmbg]Pjv8c3|T CIZi~+%Nњ=lUdy:ۜ8{c+gJuzWguՓuɀ(SzDk諳ui=L>u o?t Q[͛neoNN_(nIsB,] S˩o~dC?̿|?yas"p} h;pߝ\:8.t=z~}_O /?n_}{i?_/]7X|woed bO>}:G蛋O}xwd34np|/gO~xq~/&qoOq #o]sOߞvOe:fb{ǟvu}m+OYYI#޷ :Z.ؚBF>tyg^_>S0;r(Ou]8:yI% uN]:ٔXANp)r7)C`WWS2:H99e.:;`5-c/_TMlM=KJ1KQ&fIw}RǸ3f^#5)1I6D]=_V]C}f @$6zg꾢HVFb4s?8:H;(z Xt;A-eI.Y" I鱠YK Bive'UGLD%qNu:ZCb=y,l,Fk,*Il"91n>6w =c!r $)[_LA(Tc+KQq- )̑FlwTMJF^$)tת@J' ' D)gM@ X"u^/?Y+r>&#Ђ#`!S`e%)-2iFkQe.Y"@cմKXiYpz .eBW@?ty ZIT 3w /h1g r+d]L=̱2I FPg.XuP!J+w LFAʙJ7(iiI)Z;RDP L!hǕ)ؚ;CQJ,Xq7-L vT*XҐRޕVNw.h7B˝4'_=9|M[ڻWyNh9ƯBߨk"@|}TRN*UPWP9=^g҈p3ƓiEhDF}XWH+ɍz[ z c%LV)[v~aVC6-h# #zmR ꜵJ%hQiL)nTQ@P5#a6澮 ֎LCR^̓e$)+S"t;*+hiF)ܪzvP!6אG;ke^XRsZ*P.'3 )ː*fpY#jc=NaqWjJ ZQ ,#@ EK{޹Lq^'& Ɨu֜Ȑr8nӸ7㨜#)wP B f P\gt4 tk~}@rO|e2h"UhD6w bK:T),!yiu%pX_PٕE YR␰ 8IY@s<O3>@dmsz`AU0Ga6CKYMA6$h#eJz͓҄P6![ǽfweO(:@ =nԇ cfU>bJͣwiS?w>}Aefocuswriter-1.4.5/resources/images/icons/oxygen/scalable/22/document-save-all.svgz000066400000000000000000000761361231434177300302460ustar00rootroot00000000000000}[o#Ir2 ^g6 ax~48խ$P"&K0 "#/Ud|Q룟ۛ7x|49y/Ǔ<>_n.f׷777999n1-GwǏA 5~wGGGC7go>,WzN7a18_7~T7#(+%SSAr﷪Ut(huzW*}n£z9Ԝ|yRxpjIq3{?Oc-Wwo3WGWo-^]9NW9.Rֻ=5 za5 ?w.Nx>ߜ.n~:x=?/O2'f= rh ?.'W\~N۝}~lgM?/gl]_GJgǣ.~ׯQa̛u`g?]MDyn>&>N]Nbjt˫;9>:2Ӈps㉮Xx.~}xh!t[aSatfpvSq8q^CW|11:?_.vq1_|鉞^.^E .W㍽ǷQ8||~9h &u7(Ahntp+&- ]OpeL͞/'ҩ 5W>(:X^`>Ξ梌G8{v]\ GٴvU4n3YK'+[9{0?DwF8Թ/sXCp8v6"' P$0M: |;;:=7{90b?Lc6_&L @ ~gk \!3-io7LvLNxz]^GIo>**e/LQiSTF0!0ޤ8ׅII^& & )Ө[}LzWxsR.~Ocy GḲ r6_#ڃѹWbD楄;備{1Hd?FbDokz>;{#z=,7#WG#Uߏ+bdFDI^#G +))w vHA/|~Q/ħCK<3`; h_h~asy\h " wG߅Yy? F{Pϵtvيh{^C3<9ß~9T@(oySI@Ļ1e(sjٻrK >rs6Y}/}ܨ7B>qCɰ}e\\} %$s'QP/vcg9_lZ"M0X bn!2*+nR*#٠ st]XLgZ&)zrmҳƎpt~}uomPeN/ֆӓb1M3)ɂ|iHin?ʬn.'O)k 0p}v3x\}aR.no|pg-z|퇛m_onWWß3}]̆ 0j(ҵ 8S {oƸu5/8efO;"«+ ;OdstLL99`ċ9jX1?v@UTjIAvjYyj44aڔ^}͜kH>$؀*!lr3@ I=KO:kE)V5tvQ21ms} Gf>V_:Xɴ- {t[ sp11n@0 x=M=qwkם8UTv8fDUA|tP>'Dy?Q4m^΃3UEj2XrR `͢vbQO5x1{2CRNa) *.g@DXk`oKu)3#&"5My/(I9L3j:Hz XTrx=[ο9(%DFıAbBv` CyljAV>TUObUŮX:Z .U%8 QDSUm3/vVT&%uX~KlR(GE&lb< |J(uH^ VϮ PMOMT)0"gLPT,|u |r\1N%s/R-2~]ld_wtQ&j5"4;(h8*IԠ "Nӌ184f@|f)遱hz!d_gۥڶP^7*|eI#aPƬ1%%TP)RG?lK=iZj[-|nR=4@נmRcwʘ"9͗#PZv8W {O'61yme@9GԼEywIDKcTH'b]U7nl/stDz‹S[joٗh L}{FrT 5iGo}y{j).;jtYd(J$r+Ѩ+vLBϖ=s4$Q*UghYP$Z*SwyUkCN95MpS֎}ŸPwƎN]cA%$]:C{x#$Pn#'b2@zBxb%.\M ";rniqrm]ɠN B 7n|p .*g Wgθ1rP *c:ۭj\-8znCN[sTθ14a3PD%/g-0{#Ǭ ƈh`.d9VW)HWK fرDDX}T@:XgXR([)ƎDu˩3v$”\/ٴ/v$373_rMf*#atpuf.}#auF2 IL3r$kGr5W(0I:h`9[:ZƎS̬iAfhHoH^EJ3v!D1P{cG'9Qo7i(ݪ9btFR W:˫*{Y˄0zBe U3n9*N %zFכB630%CunŀN]ZUz~U{#Gۋf,HQ+rtp!V ,[ZUgHq rnB]ݼvGZ=֥%N }~}uoyRۨ A_LYwXb#eV-#é08Gńa &nVmބ9&F-OoGGD0\Rn18Vmkz`ᦶ- Nñ-i9(!NeU|X;CGlqb[۫rbvnX>OzAěmfT݌'^hQ+>0@8?^ϖoN X;86L-uW_Ox  U]"#uībP=UH|ؘW@Z 4S:{t"27CR: Trm`A7ft IuǍٕGj`R9vz!ʢ7v~I5)soXU0af-M:#NJE֔%ƪƺg+U _eGRiFV7҅ 'tƍ}+ { aPxJw09a^V G2޼m1b8|6b6Fc2qacQb/x E.d xmňPq<~OhYj:jbj:qg[7l1KE;p>Ҽr"tL^c֯jbpZRrvj8bݪ6lG %1ntbScQx7t<\´yx e]ttՎ/{SQ+6 PÑ%V9^8ߪ3PQl6,@czh$ |lˬj5>v~ -˵gнn5Sn[\]Z8cZDFb!c|hKOhkT4k1 Rܸ7ku75jy y0+;Vh 6pZong"Fcڒͼװ8[k1q>ʼb4VxIGh{fh]smX6l\c{b6jd滴h]i9pF4)W7~2vm.q~؇эPqNN);j:lΛ0LḐ#,⠆ROuםg%#BlGh-ba;vWT#VN=h\Ux(CG]ᨕBa{7pR#3|s"p‘V՝z xrZx^z zpTӑ%67c~+5-aͽYf-x5j8& Ux0vp,8c|i2p{|KcoX#ҾީcAlu\mf[>Xn5MYoRV5޺j8V&ewub8m˯cfcC]8wn5j8ZXUnG߮WR mؚz7ᭆ(q޴#p<~y E5jUi[j:RnkBͻ3_N5FKޝᆩ#G,oҏ(5 ) zwv[#׬J%. b8X-UoܢzFt/%άLZ`호ȷQqb1lr4ΉtUԿwԺ6f#Kzy bPTÑ;z[U>##)kӝojf#j}XpxC :꜇!XRlaj8Vb,=^myj8 - 0bC U0ۈ1WMo6xMltx%GqqסA={SkMgޞqnj4މVv4^v"Gkk&^pb4Xm 뵃sh}K j88MD8xIu(fDH}6l[rsW( eRƀC:ޭEcp$0﹄{#U6oW]b4jMZDܽߩ8ZqگMZ{Aơey\ hSKBF|^.h.4E<2j6RV 1 k<bpK-NcZJ GUi .O5fh3mlJm<=1n]ժg{3Qkc~[QqO,}=mªx!ڻ0<1r/ඛTzqu|0p w]Ur|Uq}]p%quVQ,6zE52틻v)7!6CÇP(6稈um;^۰*Rw<{[V&h< Z;+F9Ė|{ֻТb9wfsZʠX_\Vt89gk1gXl<š^-GcPlob/Xb4T3xVp`hI٧cjb E|\Mnaʙ6ă';KLDŽԬWY2v<5S괿u4zG5bぺ~wVӱ׶#}٥V1QcݛfXlxEBvv ;sR/YLv$hJX FX ޅ]e!h\[|\CDl(VD{K 5wŮU3KVZͶ<҂V M>sj:Hk,1b3ylkxjo6TMAMSC=Ļ6DU )Ü}6TӑZٗcƍٱ#!V뵊ATpwJNHmMs՞SKq]}/^b鄸} Lh8{ticQKqW{]H8TޥO8t+c -IZ#9aG`bnt ªʎbV ЊYKeGE[ T!]ZgPh|X +6CX\eI~3vQӱBm8v f騵Jm50XRgE%VZ&e>bb6~8ɼV c\߭]b=9{|v!8c[pc#wc9cS DZ(ľ]pڣ]'g^ZmlcY,# wg^b8B j6b)~nè8!V׵לb8ѶG[5b_~[̜PqjL ۫N86VqC ;GZv[R8],q*Pp]zêb%|(pl\} 1j1/3ѡVmg]0J ǃ؏mYx@JOAuͨxj9qhK ǶEԺw#x8̝QÑ[^0#Win||nt$fb޴U唘ZyhgC<b6XjlI Oojku5/?9Wm mmMRp FջI-#.xqSQ{8~T1 #ޥE(D{wm-m#V Ǚx 5A{vަ5jj8N&Lmc[Q M8倱QQkз0+CL*:NQ mFj6\@?RF5ڲ~([6l4 ʢ3}l<{< wĉxjxlcXj8VeXdO<¸QV,PP,#Q,v|Sz qZsr6zzurA'ZkK5[ǴۤJMH cX,tL>X`1]mro߄mb:łf[hj阾R}1h6ʼnGZ{Zhcn-+1hxUQ6xtc.j:ZikDA0f>U#t;C%vݘ7ܩX1S^o5s>bmcjҞuڛb6Vm wbUJ6&kkp,Ӿ 9_#yb8HXܶp,J]|]ㅧMPñ9\yabtZݱ1,A@:a~]ũ+4Tevic%T!W7kqdj(eaM{0SF@l›λ=5RBgytq1pb:N}h'/! 㧦M3xPq vzeIR:† whU^M5W븧UC#XPeE?{j:.IJ+WPqWJǶ<˽:m.EsN q Wj6VklޖѱE1h,"zú[5 i9օwgN=O-oʼzb6R+>vk^j8plǰĜ*)}nlb)#&rƻ桬'NMGRld oݼϑb:kҖ5&fci-ڢwaSK9ˡv|k[.1˵39CjXUdB˺7djhHu8yV^;'Fc@{2ޕ]+6ǴT1hdsvGX]J DK+͙WdV-TŬZkgj:&z&cn,A6!^c1MUN\%u3mg|޺Mb:V\L4߮%;{t,g2r8-c b2Vw%J GB 0mYK .O4Lb86.Y2R ^{9j:6ttkl ŭ!U7a5usj:¡|PRǽe]NZW61B뜭kwܢR7czW'"mo6wp*%'v8wj8*5'|f)1Gm ߣ3Mb ~6UqK*k܇HZ1by{w|U[j:ёv2vJMǥXn1ޖEb:^ 5=vox%6Zoyj:q_eh>]W7tUjm<%j:ju֘o|j:2zipdLDPÑZ=gǺH>r~UÑj [~b8j9C:pl׊D+G RKZ-XWx?uy_bn KMv5s`Ym!:߇Z5CGX&5j8+ZwcbO JM(# 7fp J2!m6pK^盳􃘎YbL[|e'j:&>z(Dr!9m`΍D9ݏK5C3rR*+7mu>;b6v_~\o l,țyqPhφ1"tڤ0f_TCZy[lg(1[a3&#zX%mX,0>j8"{*'#J (>-2pD_Qj:B긏3nNIU97k 9RqNk,m j8>q[f 9X}n>#5Sk1&.57z_x U%! ]u+uwZbz;t\s}k/9bi9S`xjh׻5zWbظyPGkx+ vcXV k2״޻ =ƆÑjU͍yh[b:R+$-MY]qG GF57m!Ŋ6zh+pX]Z0'NF֬>8 CF8>׶l&D8xV@`pkVuLY$W G`K:1hGˎU1j"!عj8ZI-erAm & E53Ċ9z,qcj[X1%cjڷ][jj?cqT1N8z=uiߖ&9ci y0a-cYXZ{]v95i$X%m::5[kqo<:I1[*a:5b{&ʧOM֚ /r*{pl-:x3փcþm7gP1=pC&! `̪xL\e|m=BLǑA*3BNJD[ˊ۷a;zH;wndb_ڞ[8P좰qz:n~}qKf"bmň *;7Z ]*z1R8P񚆤by7ȩSJluo^b8j-َguũ(H2xGBbM-tZEYGIRӑ%֝.X:R땖6,1\6Lܼij:Rn!)4sUƶ'Z8&e;fDNeMA֊8 Mqe֭Zy޽s F1M)Z#9m^-1Lh~,BNGFZ.QXkw4+tL7Z;B0r:f= McX]7pLvk}Z \=mj8U҆+]cX փb8jm6yݶQ8FXjhEF-[DԊXq n3̓ZF2 *[ .ĽxlR9h?XuڟEǛ57FM*2i,jU!֊6*9j:&LlSqsb(#h׺s0kłe5j8Z&ZoڸuX1{k̆uطw6TxHl۵&GLǡخGoiM6SM OYأc޸-Sb8VHcvҒ~^j8r0o=p\lƣfأ#꘏m]/S(t.八xZ iXz6<9b/;+cKGXvYӞb:ѺEau΅Z^XF_G .Z'7*F;pR PK"YoπjU3ZDk%-j`#fVes]Yj6V}MZ3]mqC*ٞm[xm{%ʑ|h 5`q롭b2Ɗͪ/BZu!7YFcj^E4zTj&ojkz\L}Zy{UaBd#,0r2VHɘvq@o`{=۱Ym-[J,̻dܝ@0m(B\c1MՊ7Ich,ʽ5VMqBzv г.i|{@1plH]u#mfs c؞ʾxHSӱ)cX0,*cQv^%Kᬷ都#M]՛0N`NMGHqJXzUz1xh[D\8#iSq2trV7iPqvzCNRq}*pVq(xgݗjU5,&㖔e !}t\HHg(1&hm1rM5WڟaQxUx!6~YweYl1⽶1,vRMǃ،#m7 5otͨ=;-â8.&p<ʫ˹iriZM9e>Ґ=Z8 텁PvK5O+eཡFxR7~}+c/Жۣc@,R7kCO5c{ooY%cOtk*RCi[X T1K,1k8muo_vxj:=<֬V1&FxoX!# UFB *%ڹU98=1Fiiy,*FciU1ݦRƖ*?kI%ecEξ/llbͮ70F ^k=qb:6_b9Ţh׼}ޖ!֪:MچMo\t0!ӍR63 ‘NA%_ӢrZ/:kU1JZgĭ)ۦgCMe+q7U{j::L1CIGw]<кpˣDuP1v\<9ۻpL~X%^5SkZgz:+/p۶L1\w9:Qaٌ{{8rl-bw)fcQlR'cۦj6V?Fݽ;ˍNZOiWlb9ӱB`5|{t[[ GǦXhFGD f6pD9oXmY"fb8BkYXoڲzj8b)ӦfG*c.l,8%vtDyPqv_4HlڇcDOL@F8l-cbt$ŽѽN ؊7!#)G<Zi;G^b1g^])׵h98Kͪ.U ڇ2rp\w{19Hj[sY(FK#a ۭc@*&ob#ot tϼե -pKxL٨5D[c5ubK*mv ј+{2m\IA\?yvh,9;۴X5K+¤wa3Ub8Mў.ͣ#t{Ƕ 5K6ƛ5tBjqShRQ+6'1lsRƆخᾥ 1K1{ZӋXU7fcS,c^ovlZ:gLr5QjcBXWF@awoʰ3c;kB G).!,H}0[5p C ,zǁ11so\R Y%q5Gn!XnwAL {q.j:jўswwj8^-lwN Sj?pIU9+GmX rNM[$b:rR?W:^EfȐұmg/<*NY.BLGB#^#}2]cԪ4-õr`WP1\>lgdZ;z6chFnrfnp +Z]XNuDHU(f[01J7o|M5C>m1ew.d e9oh{Swj2j%"v+ߝ;j421} ڨ1qŠ>X6Q1V_5-cpL5xuX!v! 3j8B[G j ~#(0Vۇ4gͮ8ѽg~8!u1o&kh8zf@ؾ=s]b6mv|v3fh _zd'lVB뇱 ތԚ)[Ͼcz:Rk"1}guH#qTÑZ&n}|;6(+VxS61סfXuoǶ 1W- .ބ%uدW /sz{R&nzMpwn S~|^@ǃw¹~<(v.gYZ];}#lL%qUޭecV`aUzV٘Gs 7֣[!ec-W?uaI13/C9Cunb6-Ѷ*qV-b5m£S 8:?.:p̐1roYb1.mzP1!Y0^;JLǤ؞Tּ!9cJ:fl,4xJ,i2ˀPF/*Q٩Fci㔅Y4d۠g&jh쐢: 5f& >۴ell5[yfD/n}(Cj4ľy!Y3v}&l,Θ_]=4lVZOz1S K%.}#Bߴ%qj8jv>eߨ8±{ UqNr01eW7Wj8jzGޜqSj:RE;xxPLGBIK;NYRMGOzcZέWUUdq,x%j՗9umFREAwF 5bŗ@Mb8.m^~h&p\˵Eu3kJ vZxX ϋñzh=9:(fcakt\MZg},ñ½l}F |I0p ľ'gc@,:wgLLVY1Ğ}w[qj6flx;ol̒qg1fcBW5b)G6pmYb8mZWskUbP6ˡV#-+G Gڴ罰sj8aiܮ}n!:# U{%ckЮM{ۢrplH, cSm j:R۝޷a15Cہ1C(UFw5bt\㞅e;7b:.{}7޶Ml\azhۮTqO8X&h<`C5OkvXzFiiǸwaYb2VBN\ ΢\;)zv^R6\;7x au=Gְϖqb8µ{+hz.ssl1tDvۗڠCMК]e^ap HY<">j8V;! ͇1"gcX1; sb8 [6rC,~EpL 1b7mӷJ llW ?51lpC%c{%v<`9bbcqЪTXāz6њXRF63.FGjyQƩ%su*,k666W* >e2dcc^R1V,AY`ձP\YE'cͳ&nm 627ڶϙ-p26Z_;2nɆơwFhwq@t>Ekx)Bz6 d+2kLzKhYY!c9d3qƅ.1adh,esQX T=;ұͅ"?ۂ%'gS+*n%h*6ZѩI#C#آTN|4Xl)YuEw׋d /̈M d] ; bc#WYLF)*:Ƣֲ;{&elll#Kس*>F!uZ646oitYP626ΈNXju,8eFơZ]- 22NPծ 3?Y°qW@kCe1ώ%ݩtkõ4g p6?Cliܗ 打H*dvϔ"Tɲώ gl;k}6dcqO.4Cyҩ Cc+A4jc+wuQl8MUu2f:ldl׫hX22W тI.5ؼ| k66!'G5XaSY{oJ{AlsS*`d+=FܳU^[̫d]uM^^qU1^j=[r)CaK[g!߂pSzlIGqY5kJdt\# gV"G䳦RF|3F 5>edl& 1YgZ2бqmRv;gO%G,c]Aep }RfYIQ.G{ zN8J.3UGZ Ҙ!S1adp4epН-(6:W>FQfG[*8o՞FG7Ղ,#V 68:} 6u`=^O's1љ9fc/[G7r .k٧T1dp S&X68" t{tp *k?%}* c,ٞP3ridcRY61]su6:fۊ>c2l#Ǥ`uF#ؘMeJ5`%#We!}ƌd;hM|τ\8#:{vf`C#FhUۧ\lhGKw\ɜ]gCcqe%tɌ3#dhBcNli:fsd#dahq:%ڝŵ<C0tf+|w/_^{h̡~>_~'W|۫W?Nxb2^ቯ$}?U2qސ Lohy Q>ud\?:.18 )maXwM QAUv_xӍZbfhWo7E]TɘE1=~lvYdQjKq+Z< J3%viMU&l.* K>\X;WWɎ>ؘL4y1{U_&kMӨ75QWw[ZvךƇ=M,kI7jM@^߯tz-Ѽson~wzO˻h}s#:n/޷~Puh^jO^ߴ?S l4xsA?>~xAǷ޼g?o-bo}/?[__|Y?/ot}ϳ۟޼z{;͑bT<_#xWz^uo׬uOoһ^gkuفjuQn~ s,rfuei :2fHr'<J7 8,7|ÐKw o߽% >GoǏ?~(̨;_E -n.'/.$/oF/*&hɞ꽓?/[?F^_? 5pT{9+4unu ޕFrd(>}1|17``h4Y޹;3$U&=)>F^D| M\?U~Cg5~e*\^U^ZBgi~̀KL cSy\=P7[lZZOvZ{hՓ"hBCFQHvwYM}ʍ۸ݍ@eua͊=O'O,k݂FVOY1d0]n4U&iv-otAg7^'Nܦ[u)xV$q$l(]dCRo\r"1UvM(e\Kȗ+, _-VҹjC+toKQS97+OO$kZemlW(8HR,2˶b[km]" L{S)r[;AD?Z9S+ ͔GWHu ƣ*Bup\ ǁ']k:d?lH8DrĶK@$2}h-4PD&S  'KS}OKb'hIrʯ<3|<wRK][%jZk1O]^, X_ͳxytīI>(EΟW1r;e*!-u #5cHvH"-LƆ;Ғ&5$Y*'rP6 "NbCtJ:gCqT񖪓kI ]vB:clwf-a% (+bI Y kt誜d![Oz+wbsN+kB;8 Ê$pV%jgT gq>|49Bgi3i@1Ixc;OqytVu3߹kܦuqmJE6nS*MO6mJUܦݦrqnr2m6enSƺMO6e(H~$)]ܦ'v2mz*)S]ܦqL?۔Y^C_m[ii).ʵ+dB"(|X|vtоjO3_|xƯ WFG.q>])=Y"w䄤 M̄vdD9`,c+R*jRJFn(`80ׄvE ( ѤcΪ%9Sng(V]CrSөL-|Tv5u70 /)3s5&ibOVߤ# lIߙc lN,$/5u VGV(`7G+ʝriuhSx?6`@rM]]FsIgTT/n}ҖeBlǦxki_.ű: }eYNS(!ȫc 0b41O=a=VUP,;d! utǪ Y9I25tVQO{ȝiv"r|QzL1OJ,Cgilӗ}>P  4lt5 1+ImoW Bh22P7ف I$4 4 L$}6BMPhLQS>Ed6Jo}n3@Khk='ͫS-S*>*}V=*ǘC,t}{khs!ym-f"龌8[ˀ,#"f$fVH˾ X5s7栺>2 F}ɱeɝe;噵S^*x席R7h03@L{] CT  > M@E֫4HaʼnuQ3G#-&O Dy}M幛Yo'tYMJFoĀihu>Mxr>j%n6Ç䨨fwoQԎv7R= (DE\)D cW @d9?A}Sq)tC\($=O<Cg1}X|*Qb$ǡ14e>a]@ %A'l*ݗ'R4շ(ie:Rݒb247 7a3'C:D$H!;m:{QS(-_N|*BV<<'0nАt:e}~-9o9 u煠kȊ%a#ԛDZ2{b-}syi'8V]L5$ҝ0`)ѰoX.sHƜ B!} bA 4yD214ZM.֓<.8ʫz!'< 9*Cai~B1]]y1?>tɌ/~!c?ݨ|"H$A<3Mh1+"wc53 j&Jf.6{5.3Gès^$gHR9vwJ49wfB}l1J *Y2LWݙ+Y1u)Nh rd:1<<ć@Jz=$D $+$ S$X, ka9PυԘ=Z?XQÊ-Đ9sRso6س ß׶^Hb/"MLh' 夯 (: .SY=$iÕ^AoA'T)yȒ4vp0p|4FR]6ߋKUzH_eH+"Ф\%HA4qGAe 1M! 9Lgps9#fCxeD-/Wk /.W9qMKӮSZocB("n~X $xʞ]#` '*UqfЂgi}qw Re]+@Rc,_NʘnB M$& 7 cae'9SingpY^9Ul*=n ;B9+k5~Vk͏ % !q@HIPa04=;.f)e7^ΞZm\g'cC` hVxLwmS&:N*t *&i7/vx@#3## J)=M4S%S&@z9a-ߖ[b 8bL]Si2#V6}ַ⩼Wx`ơJMqlW92+ ?^QvOǝ'Ծm>!m ]=ه9#Z|-7 |3ʋ݋֌Ӛ-{Wض5f᜽0AY81-; ˇ% ~xi8XPUL0у Lх3yh;uK8ﳉZF&Xĭ;00x8>\!̗߯^2dѤ vPRl)SЃ. ~[a"љZ Hf6t9NaB'op1oW28^3*z[-G-2)tI* +!E`w'Ѳ iVXʀ4# t.5ZE"qs\9޵_;.I 4z7!QW z0 Ĩwl :!-'`L?QWE4j' h)/X2ۗiItTդ%]XIQއ̱I`cU8(qQ=и~t vt{\=$qhvF͕Ǻ~x4""$(j";r)V$z]Xel2dE#SXW_#REKZ13?=a~=G׃I>8ZuV dEN5iФ<jY>Yjv| GC^ۼޜJ)p: +.ZV8d]踼T% QZ;y.-=kieN k+#9.>Kۘ'U`RaTliIrc"o^!癢8Ғvutٸj4F)?&Gwvi&{VL'/G^focuswriter-1.4.5/resources/images/icons/oxygen/scalable/22/document-save-as.svgz000066400000000000000000000216741231434177300300760ustar00rootroot00000000000000}]o9 祍M5]7f0>.d)J2$ʮ_$3S emڮrO%?ͻagG˳wox׿q<;=[ev6y}FJ H/^7.oO?_(i-\RX/?^T,L;^_Kʪoje\޾_|w( -)UƯ>q_x_?]^pUӳ*OU >V>ܾporVF۽4w4W׷o],kUx/QȏiO~Zޞޞu;nfƪP?W~>Ti^VMtvٺÍIOds&ӻ޾&ыrX=8ԣ6;ju/˻_7c;nGx_KwiT[`U툵:WΗWn]WIw^v$ܺqvuquó~omndzA_Z[o~U|/N?-k7ثC1#@$``:4}3o}?Vt?:]_~-[SEYM::,5=WS7lrwz駛.t4:gnEUwey֕?vhq/φ4Wo,o7 n_' ἴPL9(iA`$vVEL}:MK9&pOx.#_@Sߘ.CSǢy49JiCh2|v5y,ѪII m(k63x/MOGgGBu:OC=!MLXbr2]bT pHάx391 |k}a?Gt}&{9#qHs$)~k {ly"-C҃=̦& I'\InMK:׏4$S"grzH0K4YR$%␺c-7ӇóBfCQ>UdG\a"vue}7uezF!7ޮ^vn67{RWoD 9~XpB b*c"|wzMV[&F a/SI<̦|337|shqasWυH!_ fbvp4"d2\sBuCvy= afnnޝ^ϋ2Dz5?wIDVkߪqVEa,K椿i_q(@ *rl^Bԥ|QcCFZQs'Z-կuj A}P3n dcE<9`[n )B Ā等 9~]!ǟkǶLTSG@q}-Z M*Q#h:E Pʑ 7=`?[aŒ6P1dVBE5CVJVp%Q"mK@df|('Ж% H's V32/1{X!`p"Cl:&c:#9aBNwpՔdT]k%] QxCbsLa:P$N5$5gV>o,MQp1Q:uQt7ALý{A>W U¼#=‘  yj7o$=&I[b=!G̴ߣɟ1ׂlo_ x4=`.Z)4{8b0c aB xPU㱪zT-u|ggO/ĖnelW/)GGͽ= 3i=h`$P$5K(9AR[{iB)1kr~vO:[?[}<{\s ({y(] b* 5^uVi@Ltd3^|;>+oю]AQIM[H.15..me]T̅cdt3I rg38gU *@ #Ⴐar4g&w2 J"ٗ4A]jTzRജ,e:ҚAj\X.F1 T]NH2EP/1u[UW£M*D_Ns&(FrvweH%%D\ͣ*1UGU>֝mySaS'gLN&w4#A1ؚS1tp=3css۞ :_cAlst%gq(sLoš$oODaS58-,̤+oA¹d?t(ۼDLy7Hx[bH7gK_ Kvlq,0%W4!&Z2@.r#"W¿_j'(mq2*y:F1$Pir׆*ufIb6 {4(d亂\L+CJ3l*!WP.dv ̮!M! ]Bn@ J H\CD*鐒ĢųU<qLhw&΃CW%xMyb,}CZK0凈ł3'@b"# h92AI 0Iol] upŽѪD]h'@QB UqXaL[Jꨤ#dF=#/@AZt&QA)HArvm*HȊt860girҊvXdL0K'ڕ*hfC q@R,ئe {U IIk뀏 $\SZ5 H%h(ˈc¬:Հ=tFY=L'ŕh:F41487Ŕ9R dV'fYRIG6nŭ93|[lBt{W`ffR9Yj@#P;#**#4pJ̄uYq𠣓YjT@E{:Kv#B9N!>B_Bhi rlTՀn|`!D$a's|ig?+LP϶98knXޑtfMR^X\ϦEXDڡĠ$] Cvm -RVQnp-F5bB^;rҰdANA6Cn:sp{60P5"MhY j8ujK PZх>y'p(;z4LSqk0ƔiRxTaAC#D7ɡrA 2 ]v;:WQ,#T(kMex YϷK:냆͑'ϥci>4b+fL9_%h@w/a1+X2̘2ՀBš9*CAL1v2Wl; pΊVMa} %]W4kie1Zڍ15 *]UaaS a>pڶ8U'0[@г꿫 ٍq $Pji=Ztn ٣uqϠ^PϠMF9 j*dSU.;НQ!BF׽=o~"77̐C "cz 7@nP(a d U v]bB(o"A+de"e[XeC,A@)DϷm҃ge1lO@ I 6 "b0-"?NDkw*%A7Pt0hwm(xdSIOHRN(07(A dyq@^/q􉇓x6*hЌQ+.G%DP}(F9N_$)Ȩ FV#U:kaBMІ1YDX@J?Ե)BյB^!$%P*+sQG!CZ+G9#,d`p}{oimiΆ~Cl6'H!QW .S"Jd:ѐHDkC/kC66"Dax~.(I히IMGY=eD\Iy{T$:]kd⊚1еmbbrՆzɘ+H"OȔᐘ-T0C3Kߠ #/T2LE<2, #F# 9ITu$eqL>ƬѶòa2 79CFP1VQmZ1tLi]`i  k7{~&@w.-Tsڪ@#DZ2Pm;PjF$ؑ-I4=Kar7!ĹZ{|0Pp6fnHȸhy@1W@9FXPt2Wwo~n "y(t~:|{g*x&#i?%,lٮbҡlDi}ڀRM{G1y~԰þ_ԍcO(l Y HOd> c4,22FsWq5m'`J+z B롁Ȣ zRAIGSmXDkb.,iP-nDbDUfQ'Dos*ROM%X:&J. ;%Fظ܋$(B@`%`dãfι,} @AS9[g'(u0*AIzWv.>LՎ2Վ-ףa+W;SR,b` eC(uɱ9^v>hA|mw{<8i먞)&΢ Q'N!0(]Da=e-i fEC7[x%Y*T`9{Tky)[TSwd,V̶E#QCcXN/CeOZDvH;*#Ris26i/cD0h{xI|zJkѕtP&3PiWB7  e?.?hwe_BFKQZO6{ˇMc?m$F7"OEz١?9zGʞ ?csSAYvkOlk|G!Ub0.ho4ztN,lQn(5+cFy(hH̠LshGWP4GUA.ns2oh [+(I$r?Jƀg~(s_Ƈ$'MeȽlVyFY&Ժ@Q#&!Hhw%}~HDڍ>IKM0"2+6tƕ>TtҠ.DD^ºM9al`:&[u)מ$id)כëc~i3O OHR'+zT2e(=WІ>1jCEnt3_zOg֖bg' |>Ę/#T9f[W^Q*]usCzQz۬-2q̧R ST텁7(0@+UIkT:RJ22ȑMzF9~?Laf5EΐUe9*'Δserш8UN(g\{_n.f׷777999n1-GwǏA 5~wGGGC7go>,WzN7a18_7~T7#(+%SSAr﷪Ut(huzW*}n£z9Ԝ|yRxpjIq3{?Oc-Wwo3WGWo-^]9NW9.Rֻ=5 zas:/nO/f?_]~P_?}~;9].>t:{=z~:;_=ߟ޿]_2'cf= jh ?.'W<~N8ݼߧ^vi(rv1[F|ta~qpu1_^*Z\].oŗIP4r:8~|9'^>χꗳQXlRw>/DFǶb0ݒ?? ҵTA>noW0iؚBy"Phh_o.xdw`lOPyMͮ?>ߏ}~igZUKq,o6~zQxSJ`pgM<75 smhwo#~bz %NӤQI=!\z~o #ÄQ'8_ ~o2K8pīt<0(g0=~JH|/F$j^JH3_.#,|=;Dc$IQ糃7m{1ȒzH}?xEѝ?Ri"FFaDD0rrg`d~poZB|o14?C:{`6 ͅ+RpwTH]Xeg`D \KgVA K}W=4s=?zw3If(1TnO[yS2?K!8[/; Q/7WasՇ Jz/_n~e:-W[*=kmoh}GWw6[Q&[bhm<=H [?32,V8N񠼺2xiqoݜ g7Nէ,&gR?G+?[~f*}5~}59GlX>-]3f[Wb=Sfv#m!ڻ ZD6G;k^NjnδFsf h' TE6Hdp;B av L8 B)M6,ceA_3ڀ+$ROl"I&6J;4)a __#@YAH1kLb;DmI9x)`4)T` wAnV m[}o) 5h[îs\:؞2orN)]d^$gӉMd^tPB*ϦșLm{ɄQR|H҂i3iGvuׁX~2E!$-&t9Tdj*Hh#qh(e 0a>!L:xW6S<IWS`st耚B0 8 Bd9? ecj<^E=E ֒ P̌r/ftBk/ /eps$H~tL4Tq \WkW(0Mu-12O-=xIGxQ&TEKb20utRރd_RPU7' m)mWDquŎ)ELhh 2E9C"HgDIWф99Kr3=1E3&R,(g + Hz2/D`5іi)ũG Jo^i*=\7nT *MA7jtō֌AS7rԮ&X)7r4)(ugm@!9tE ,Aݢ7r4*`XT;v /Q H蝱uE@ZƎޗ/Ȳ9trT Ԗ IZ9zW}qPR"ѻrZ(<7n .@71G bՊ!ͫKtRpg+ú« -,+TwFѕGjF9F_hܬExqo^b$:cSAI6Of+o&̀Xcnjv1{  1r^VT{ƾv@P(}x3JΨ$Y 7'@+F!hI\5Vd_Q@(гj"RgYUlc"vK[{_ܘU堈-Pj"v 91ZulLĮ|}"X3VM侸1AKL:F D&soH7"eKȑ+R uƍT]9he92u4ZX0F,]$M1:#Gk%B`d`a޸A@f"RzFnբ@+K3r"QR (7JW^<B:yvp /jƀ%qDg{ ՜'Jo(^R{#ξDKe 5JWH`iM 0<L+ַⓍrqf= vgwg7¿^LﯖLewby(@ ތl3;O^fj2jF$d,ksGCj=c#2VM:I>aE1[gózllaUPLGq 6&b8&a uI8%soaqj8jE]i$b8e6Yh!-b"W Hv⎘ZzӑoӖ;j:ւ޴zonGZ;:׆Zzxa@n_.VOj[ryl󣘍~-9q&qj4jvaQj|6{̃w4.6xH[?N(vRƃxcx|y٘q<:mlbznYmF7gvBFB=_}9'n݇ZS93fhB;˾7mӷ;s fPF6^MNgѸZ74LU *Ѹ%O(jf mœ{( xk'O OTKu^j8"8|vmFX;igFhi~PV%#ԒpˍTV͸a;=j8^(H7}p[p[»\6i\;XPMǃ\(ꧣ3wp,VbSaӛF#!VUc[fUHٴ{WNhX<ۆwkپb4؋cpqoƼb4i M-mg# XN^ͽx˨ӱ"t<0ߙN1C,gV mm5髆c@,cnQh91qΰ>1y1kQ4t;N,)>7WLq|r6BMTK&i0rfd#o"2rd ;C[zFcX<\XZ%mY)XTKۇ1̎^!BXwɀSzu;l=KA5{Ԗn潆\ZqhyWUK?Bh[5G oòfslQk|6h$3ߥ 5GbO χ3Iq(K9ks>wnDEuڧEwMPqgvބyfB Dž8-a5b}|8ˍ,9b;B#mtK GhGڤ%o׶rJFhxG;*GPrC:J GZ޻1vX!|}kT=M'p`h\PMǣخ8ztm;ˠ,b6W@85rh+-7F`l W#f-kAZ9~F_mSq!2}5䆘K)iŻ|6QS|i驆#/YPƬn9cܷmi٨C{lle5Qb8jYUl=vpjhԻ1 o5oF9-!iM[X,xT[xHkRӑr[nޝrJMG1Z°W 7L59bx~DHHV8ԻfURlu/q0TqĒhiz3jx)8mtfebGl]Gohg㡍E"tݸ7H-'BwP?ņBg /VW*^/|SQ*68^n5j8p0O0bR Ǡqt|+rPSr8Ɖ UH!TtY]CLʬ* gt敚k ;Pj8&ł"nlzY1O1aR Qn*<|pRc@Ӛ>cA6xK._ᨕF[e潆1}j:VKNڛasb:rVӱ6警cC8^%cS2ߴUDZ՘0AX&^;pDe!Lӽj8B~+o݆j8j1Lוaybsgxn9Ufhu_z웲j8ZOgmj4֝}g^yL8[ X޻6qNlվ{d֝U.߶15YR+̓=o`ymT۲1I^|VS 5U<6j6nHYT<1ĺbVq`zmSq^ha^|b8ZIF<%j:{ #mbC +=ڎ{5bz\k:p<ݗsTN촲8Z3\C5񺌇qIJhH`^+F8ԖW[l VKq4lr`l&RLqKϮ;@1'B1lgܒb6FM\5-{r6lrqQ1&]{q-O к/%aP1CiYj8f65&h69SoaD m3ޅ 5+|cޖ߉XZKaxpPJp86ݩFcA,ݨc[1gm_uej4Iծz]A5[#lb޵E]j1~oPsj86Ğz,#;btlͳL{+cn9(f+_1}3{rVXϽIk &VNGh-ˇ95!U˭1ab:rÀ8%ګoҺëpmXF j DCY]Q 9H5NHˋc}b6ж9 l+PÑZin-j#)W|y%l퍋%j4n$]N-N>l\Hʂ|ٸZt[3=fJU{uOY)iKpJC6TQ,֭±k\5OycͭJ1O-kWj:j%7̮ 1RÈ}ۊґ^Rתe3|wFduХ=h~[朔ku丵MtqBKGd ׉Ъms3o*2p ߽݈{s[M5C-Q.l bvOԊ/In7i3ݩFc8y?]#lLH٘c%lLh3;LV*xlcթXZVYoκ#p-7kh5 bPӱ(T}oj+p,*X]$lPJz>кj6vIx==ʸTr8A !NƖ ~}L5ZU7fV maqr6V?+Gߛ1Z#@2̍{bK~hCV >yMx%{Yt֋;iB[(wR;rqC L|9b8ԇcZ3ޜZ uHH U۽V u=8^Tz'v y=6ԲqgDzR()A+%p v,"K Ǡ8x95Vx;ZmjǶkn1&hל|vHO9rh[2G ǤX׭<b8nyΣt,j?VyFr:VI:s߹M=b:rxqf:t,J&s"t,rn1Y&,'cؐcu8nj:Z\ՇcYcC)ЃGX)cSlG]-Uűsލ9 5J4rߌeܥ*K8 w>&#xedؘ7n畄P[P[vb)mD>!&l%3clMc,:fh5wi5j4yh/fld-%@Gj^ΨH7$^#] GG͌Tk)+7p\} <8pM^rp\bCF߮+U#,pʀ-1+-b1aջx}W,x%i_܍7NAڴ>mG=GE>5S+ܽH0m(B jzp U충 8Yb:&fʒR3<KueQ.5:hxaǎJ5K0ބm5#t,t>bãt,ڷ]XaCM ۍ7kh1h MCX1ZMGZu>ӱWUoz<'tlP!uS7cY5QR^g5UH1d>gj:Bj g|RK `BhC?wmZ ъL(߹eb6Vɚgz<#FPƲ^ph 57^U.* !FjگN"bKF"ڳ]rߌ]Nٸ+v1Xzܵml*^Hmr415SFr`|Xgxpc[#VOSmYܦj j:Z!޵!tdH,Dʾ7n̎-5 &6_U ztHNc{UrZMGRlsoS׮Z:{0b|)tK'ekXgBKqأcM3|Z:#mGw@JqZt/.|©XohALBM ;xotۥvSucVUv|hj8VDZ ׮.#pLvu?-rj8ڸ} 9<[DŽGpZVpG \ &6'*;pL]vtjDZ[0CLGUlnGƒ:l޸-*j6֊0/!( Ҳ+pܒ1삎weHUYU3V/٨CSfRKHG7pLK{ZF^q)X!- {Qo׮2:p0iz۶IOǍzV7cuVL̻=&F :"녻EmГw-5K괏0bnǰUñ(we(sIp:`I\a.cCv,!cX8Ľy&)XDZb#BJǵ\<]\B GhڇyIKoi85b8t[7fݫ6Q;PqBl7auoz8Zh&7_FMǁT-߿LZX˨-5G-wodžYb:Vi-pj8o5pUqr/b6іEnCٲѧfVnPfiEMY#NScR/"{ebB"`1b㓘zF`HӚxΐ+j=Ѻ5|\]H847z<]&tVjBUpbY-cz9f6j{&l1]--7BSKJ_0UG)N<3tJD܈wkYIFƋZusT1J|\K$t n6abcYoJ ,{hƼNŊZNz{hި+){o=5SBos_[;lRqhuxw6Y[cIVñFrƚ|55cQ/!uG^%'hL D/Qj8jfqo ^j8vI}:g5ñ!v }e=j8'Uӱ)[cm(n?U S%} 䛵`u:,b6vtZzX^l^t)m;ݾ:1i# }QV!-a=pƹVqV G96 N8j9yo2p[N۴[RWY{>EzՊۻ #RqWlcSj:.´w,8BlWt{KM+x[?S*@캺)ZT;n-PQ<|SӬTӑ4|M# #Kf"jԄ:i?{<]GJC[rTMBñ=V;r!cV$Z8:߸mnZ:"mJLuǴYj:SsoΪnp>ԪR=|6Q1^i 伃{b8VjBQȷe1+cP 0i;!cX:ߜt`*#,;1P1!)pCٍ'RMǔ əxlsnlL'4~]"|l,-hj6V^Ini |fciME۰F{60q-&m1tl2[ džbTͽ>ERO7i 5*i:gpQ!6[Uq>1Qb8Fal#&rܰ8RR}qs_NBLGPYet̴yx#uXc1o9Pq ۺ7k<5g{wq pZ7it![5"W -9\ot\3)j䌝{4^{KΙ4[MSDޭѳp6Wv8][@ [&Ê^b8^I׾pd06dT+jnCӑZ!9m7o;j85ҮiD)VĴ C[#}j:DN\S#cSlěK Ghm־9 pZU!# :5acV GhMՕc*C GH}hyb:D|Vr:V"ZVܾ sѻXGs&ktDZ85bXqC,볦ϝ[b7xh+F4t\ V߹y0j8Ew8VCḔv4$=p?ϻ1DNWb{5|Qkv<[e,N GF4wN?ït<z mj'"-:=MZG,tԑZa1ߍyl,tJaMTӑjts.gpLz7=q\-5a/s5&r/mZ VqD4X`Xoʎ?-ǵnd\܈5ҎymZN1O iηnUdBEcnr:j5uBMǠX3uǼ]cj 1KYhb꺩cBXb8 0mqm UQ6Xُm=:5+R_pQkie獚Mو6J RD+2m"V ǢcX|pipju71ohWj8v%cg W ǖA[DUĢtl,*<ެ1j:VI[gQ#:V}VQ%6a=g`k3G1F֝Ç1\C Gh-|,[Uq2}ƭÊ8ޛd^f6pþ#߶{pGڵd߮5>b:v<xKkj:n}: E5mќqBrRqWmqx饆J>ώg-fد5oP\5Q|l*}9ZGsٯ./\ JMHzԻx|]^r82Ҵ;zwQl- v.tj2:Z GXv17ך8qU5ڱ|b8Zz{$'p\Wڜ4"Z u(XnQ|1׵/Ø8Rq] 3oҚj{Rl:#m{C(U ;Fc@3[m1VlVx0dԪ% 2xH5Sk2,rߦѣR T0ٜ|V[ӣbBfnۣ`L Zm&[ Ƥ_'gaɔBJƴ|cYg6ގz,h,ݧo.nj4VeY fޕ%?hC2i-VIFcQonb6, ňcvIm۳cCB5Qo61{U;7GzM)b=XatV󂏘(FXg}G5!Ulބqsj:B܏[Tҫt,,C"BM %I厓hI N{uE#U U3EC%{F5AnӎylZ *GM r+*dx%aᷓj:fmAVx+û޵5b:7ai5RW_hp:{Xj:C/w˽;RkYU/-ONGnъPÑ{GC,nFFhwi5ѭV^XMؕKs1f6a-7z{S )iw\2j8V)nXέ%U91(6JK˻weQyH5K+j6Օj4TE^HB.).rxyfck0nv}5j8]F8홏ӱ)Yn5; 5b|gtDIݮ0}=KLG@l 7m#Vl8aqo|;j8BkMNXv_U%#puܷ4'+K )/|l+pjیbU|pS *gofm57>&zsޞ]6l\;3p&'g\?yNl\ a~Mq$樆i}L9pl[ylt<ʚe~Yj:Z?=ǩx.iÑjU½Ycpd#ݓTÑR4*)f#rn2A(E,'HVչxm6Po|FmWCl uan֞gt r,=Z9X{孚Qrתx<'nt H6=Gj*KMXd;ܽS1(aeݤJ:5ݧ\m'{c [Ua-cj*YBZ8YycX}w޶gX%˙a`ef3đfcXoosh]t'6/}bj6j/:°3<5Wط zp6q!վvӁG:S]E4^5b{sƨBS"/liF9F.p<96ZDqV G!ڊ3j8p]cN Gj-qeh1h}3#!v}WppV`UV<M1I)|=!p\JݱF>D p\XT>*Jٸ5E˱xYmV]wbe(>;%S؋wLA PjweDR G0Zycn5Rn7yy#ce{.=OMǠXv_ncX—Oƻ5fRF!h[j4Vo쭷c]@\ yo2hLJ r%qFcI^!ߦxǪXZ&md Qllwi)c؛lYaj66v-mY+ ^DzY5bz㖷f# =c͖وRJ= j6b ̸{S@NGhV1nYb8Bm?Nqa85G˾׆|ܪ8%c~o`1;8{vj8*Ḵ8{(8ryr b:nKsWVQ+ܼט!jmCKě?6R Պ0qX]Վք1 SBoa;sb8V{?EH5OY9ojsj:ފE_'8;.בsʜl.2SMGm;xitTwZhwb:b?WT&i5:5)UywtV!fwhՐ͇2oTZa;;X&p ڙvX\-Ck6p6ss-c8^ڇrR#'BGY63ҀQb~hZi8>eŔg-_u)&cP-ˑxCۛSQ+i[݉T1ydkXFՏVDzfrn['cRXCCL T=Ëj:V=^̛4(5Kܗ}!;t,M 랋Tӱ(c[V?2tl`|ۍ1І"ol> ZL~뫭Qk6ϦXFtlª0N9kvpĉ}]>W |36Q]Fq 8ԛ85bFQn˜i5Gkr@';f#rh<^?mftDNz-ӑZ9e{< @ GR5ؿԪ0qK۱Aql\4rǛ5Ī{LJx;5Xٸj9=u&, l\~^x{pܓ0qCk' Xs]M˞r8ľuLLG{vyվ>˺ pݱEu%fcz(وn-ӵhҳBt>˜Ytx m-Ol% Kј|wZ턴uQl Wc5M5hq[ݯij8Ɖu cixF tȈwi; )ς,j4ZL{Fءb:uxtClfXNiUd-rX~J:&mY5kZ:VXRLbD!uس-3oPtzh1(-lG 8X7gY5[kFG7l_:6cM(ڜF 8Pj6BkԞdhh2Dx>L4N J9G+;ߜemߪ8jQhǴbSweAC6Aߎ5j6Ή]b |)f#ClԋWePZ8ilT)=l$^nvp,Nr؏aChВ6臱NB %sp/ܭ21W}vlo6{j:Z1^U=yMGT1x5vh mZaT&/aURU6#t<칷iᕣigfK[lmx'.˘YSZ8kк]TZx^Ce/m5R?p}8ϨK8ͷqcXt\o{ΊñhӺF^tK츇Yp,(:8iy]9b8Цu\?SñNv wKP Љ i+1[vm3#cC 6 `y^h5j\_}Qki=fɣbe4O|yª>N̊us.c0xqֹǡIۛ#p±6"ߕ j8N]xxF7pu=WCc御!1j8I1걬{r8Rk"'o܎,1Yb&.to+;PӑZ txHߎzWG2ڸxW,d.۹q!6m"(gj ۗdCv{b7ǩ2t0!Fi UzרxZ㗰 {5OO;ƽ ˊrbpr6IӘ7󂷘ѭ޹ýpXpoW î9µ6xuܻu]w@KG Mt᝛c)#"۾j:%*3 c@?Q1 ipo>9 5Ċy6W1^hݲ903r8fL̜#,cjgޤ]ẅioÜUj8才֛`z{vb6VI崷!ߎ ×j425pXi?,)Fcg{=Fzllnx xjUt|捘 s[cIhn||L8·~%X p*zWWr56w0*eH46ƂͩvY-*+bBĶS&weV1z>1C]n`h,AsmjF6@L [h,4Zw04`뗵Ey}-Xe익ċ*xVmX`qt6RX#7 hEEi':ب RU]jhWب %W[JQ,GxgN)MBx/x{9 kqV6(mh6mEf^hlK:+h;G `Nл[EFG󺔍6*46C19Ci5$}6y|is `l4OЩj48:ʤ0.ٖc`erѥuCc`쇧'Yj 6 R104Z/1-<' ~R4gՊ1 5v?  eehd ݪř 8l̆bc,ղLM(-*N'8 -EfTQZ,ᥩ t5nή]hl?^K,Ƃڼ;KhllKS6fFuR-M446oZe-426ΰR7kHu,5e$Zjqe(78UU*y+ hzŭ)Spq E;mqwZ`-X;Mr Wo(r-'2$3 Ahǚ6oN,pƬk̶qg7) - FɠHCc 4jcKJuy94XT,JQA#c V^Xhն}تPd\NkuHraYwjQj0Y7b\V uJ߆zIwG4%eɐxNIw$mr߬ /0V|n[pVE[XUzݟ/]mUR>l$5rym{VXsۧ|??|;I|?o?]}:c}[]>XWKVˋo[돧?~9\AՇgwm}{/|_zs;*?i T=q7GXQs$$$t٧=M9iw;3>U{/8ϼ8~˵;G^/WX<Y!!8eNm7^XW-kBsMyRjDP e"u$ԣΧy@OĐO& 7WM1J95W]wF=e8S/&?CH?ߩQsex>}>>Q; '.ٚ=ӷ-ǫhdkRSSG-mkn5kk^jT?q\nb5ag <};r\̳<=<[N^I#gH_t15zU[g%WM =֣uw.I+eP1~,^6V[Yd(RE5=RKK1+#3"UIIURe+?}1u CW~j#TZ}7xEϥjewfkYJ8URVR=P7Xbjk)?ʰ:$E9TE" )Ҟj_鯷Ȼvp5+@?0_Ćң?ϯX44ZZPٟY5ojt!JXenkQ|c kMttcܤX2#]KHJE ?_ϺBHV{ЀqՇ߸w Dz.r-{1CKa"Azw;7dˆ53mXLuH(xD;㨠}TLA9F*pVGE<#}KT`n `$utns;1U6 LV}"^Rh =c@>W fDU5(Q|W[P|>)@^0VWu *%!mXb{yQyU BZ*j,Z* P(Em\7P\k[bqz&Kѽk]y:ADqX;W )BH& gUEq]g8Z!öxwDY/N$^IlaI"Ӗn&-4PDfBm$8Jf!%YhK2 $d?AKR[ ۏ,oRS}sug).Z?~f`Ny3}- *,,YA؀5!-&܋|=Vvp6R=~cQv{w>T \I>E(,#$7#-|bu,;`ʊYC N@%qw̥4O$A܇ϟ-:VCzcťrRs"/Ar3/)3޷jO''B2FmMT=2kwWAi9"h9BBTX`! hj tVQ4(a9"+ܙHtt#4ʊqCEGMwz|^yGd8`ƨ,@ͻ.'dQԐWLJk7oH2lfC:F[g\_6X AvpKqrҀBxnL$-_6BnT*a|Nw t/Z|UugU)S*>}VzVUFLUY.Y|dDߝ7Ȉun|0LѺ{0Ec -w+*(g4`Ȇ,[ܫC]wp.&x@$z'yKY.MmeBljѭC;*˹$*)%dI݅ 5QN9bH4h Hic*,1H;%]GHui>$H6QAձ}ݵH;Vu5ϴvR2z&"gzc͡/+p:ssZ QkS*iLϏaoUjۗ/ϴ6*Z[_ z` ! +c]7'dc$Œ\Rdv'o$:kȸkNرH c1SZ|ϑ(kZQDc3ZJRc)ʌZO5P~b*ѕ<^~swOv4fe41Ԑ/Ql?<!~LLթSi4{Q ϽgB_ֿY$s۴N.FHNP ƸCS`UݝKO:Ł-t}vK+ָ*v@q>;I$c" 2+^H6͑Q 4*EQ$JtXUW@ *ϵ쉗_@Bivmm#hJmk(3m (t Yf`fi6tͮp鍑FKpΰʔa{d|Ɣ6C& G4v-rrt{K%MEh G}ʥpHZpHv%-UujT+BT IRjWԕ :\/V^418Wh*`M!bA 4$e Ё2^J.bCf\(@3F|񱹮PIļ@-=Cb( R,*YBd9)&+m|<nF ɊfژL hK007je.i$m80P~|GwJ`ʹ1 uY̺ gU~ѩ X6d:Xf d&'Me\6 w(":x`VJ0Ϙ[큿@HNE{Oo/=:SH.f.j>`8QikPiLvhQkgj4J }f- oJRcćPFK!."- HLBۆ9cQC~]UBre]th+{ya k% q8l枮צa"‡lquB~02OV|޶~5-vͧkkc|<ҒUx' om+]§'!~R<=bm k8~.x"mK.8]4OG >q^{~K#fxq`یmk3~|/nhNj@<o $d9Y|?{8˛S`CyNΜw߬+]3Howb!KgCOpA${q?k<4=NDdfէk߳Bme#z2Am忨{_V਼?9?nYfQ8Q hBi}ǻ|^~ތ?Z%BZn&aKvŗV-geQ\zEA~~?%& 5^n8XO|> l]ebz>gi1a5W9V%2χU䖹L`ڣ9YuEME)!i>:NfDRkG·J, a,eEUb$bAzꭄ%_UN٢Wm:dx)o'򤭵&bue~NڤE35)rMۓbr1-+f)~^?fUͲVضչgl,^j4IuINI\K pRt}dHw_eae2:YQLz8u_f_^qa6饃+^Wt.wG4-)ofe0JekJX\wGiPxc޻5ؘ|߽fE;+]Ff cŽz66|`s$-ޗ@_k5vd>?Pn޽I:dn<ȧS|N¡>g|߳t^e갠ux)}6)GAl=y:[`_b> $SC pui' qSJe(b<#9( +]R(k`XAiG{ G&1hȐvG/K"*&KB+n&]iծ;Fu -T"J9-n{w- 4UVh4ҩ~6'#0ZDž% PbbiVswQpp~<=U|<{Qn5cwv=qP䕌ax#Kyq(3'3M؊Y E\2LcV$)F -ڰ]kjZ Bk8ɾ4-=hjY${Ҁn@\Ӏ{ tBS4Pq [M0s6` \U`&B=5YoisMNf\dw3gÏՐ~ܸ`~>|,k(so'߲Qk|2լWCEɛ=E4,2zr,?\bb*hJ&(BVtA'@HQ3=jS5? T(dh cs-bS~E9i'nm`fGNcLXl27)Aiw {;a@zA"J$=BC+t*C0h;Zv x#8^1LBXˆƼZb3 8KZᧅуN gvˆ []yYD8ɡ;JȎGԜ̇5_g#%/#وxL_2=ZYZYڼ>"R >"J"#$B;<"N)9^"HӡXzhd")c%q" y."^Bh-DC;K\,cv'JM}!ᚍňh4I2XARh,bɸ2 f`H63P Mk€Pu\\OpJmo 7x`x˹4.Rqp00P9e 3J6+ ;(ɛarٞVg{8 O7_d!sEx2s؁=|.?zdpI1dCp#E=Q?hI J;]_7j=RPH#Ųe5tpzJ=A$ȋfWtȂWyQoA={뻷=?vhOﭑs; nu4/LN"7gi\u30+i 2D\%'MܝO)" m+%Tm7kd"'zc@v_07٘E|s3t<ֲ̋d'5_jF/c)_R2ҽ|+Rr͍l~ կp<O9Erdpu 8⇲uYeJh)̮7kRF24o {xT7J|c(,g jb >G]mմ^޼# ~<A`7U ᛦ=EHG&z$JHFrGH4nϯi#8bԴwSb0oӮGq$0o~Gb$("Od:^MtsJ6Lqr>Oﱩl) !d*+lT^I ˊ5q߉# r%F DJ͝HQP-* h ՉP@EGC%G1 y/P@f\c8P-s>I}e0dۏ۷Sߜ5*}Oxj^DH-L$cC5a8("u_J$LH1 (U ]JʎFnDan/ 47J'TȞ+ɲVh I9B7J}Hssи5qg exхek῿,iQea8 /o7HfmVD20QpÞ d׿A\) q "?v>%!.CvtE}__ңoOlgJ8_Gr7Wv 4(?zqnqOImh 2focuswriter-1.4.5/resources/images/icons/oxygen/scalable/22/edit-cut.svgz000066400000000000000000000110461231434177300264310ustar00rootroot00000000000000]ms_SH(뤮J*UI꒭xE#[YT_ Pli%2DzhӍWOby9>O|>}}ÿn߽[NO߿.`/ޞFr W;[M_o*79?mU3[-O!I'~މoބE,Ϸ% FO#"\bFo5u'ua4|t0v[S?w 6@hmM5?Ow&V7;Yn޽9Y{}XK˷Vw-l݅O Vmzܮb P*{h2?3^Oͯ?>ܾmfSu:~3mN+cyOrfr߬75Vͬ3Tvw`|]\Ne׳{E?Lݷ9Tk4"^J\+ʃ/O.}Tltڜeյߔ[mj~u*WS7#q8mS?܃ru{;/.+uZk'D'vm2د}ڷYdc.5iS JrXTƢR> G#C҈ҜG#C4<"?nN㉙SA.vP4gʒ,7[ZL=~]VzXYcQvX$%8T,.IIG#.qM9xȖȢcXLxՅXHLAȀ1 ϖGHX )>>A9L-=|?av7fOyԿK^>M0G10awU DɆCJ_u,);Q2Q'O$[؊ Ērm:"Z1eL; kBsG>`!q9*9r:Vs2jD*cBM6b<eEB$f;*I{wG~/{BFA(>%d(MEb=- dk5.@dHAE0k3JvI4[l1[}(߸}1n*2<#q8dΤ(LgMIp!D2SJQv!dǮa`Q3쳛AfFbV^ԘhUmE 0ʤ\8?_}8,ȻGQ˺t~ܸ9jܦ@_zAO^e [/ŭ(3rz7"Pj8[ 'K _?-t_]Q3tT*קchdC/c0b&]I--5skZƇwr2R|zyջئ$lHv&nt)t۫fڜ5?5d|֬G_:X?[ofmY\5: 6/ߍmOǾ}n&Ţs28`(IFA#W9$ F!!) !ftGE!0&d hPQkvcPH`s.X@KQ+hy!'hL)9Tm9蓅2t7.10I]1@DͣB$g2P-a I "ʽyA5_Z!Ir)H3)U+:7CvTCTZ?X:jFa*h6վ$9@UW躵'h12FC[PǺ)m?R`A%`0%Ssȓ kȚne 9Fp\-S.X4Stl3 :Hʖ9TdDB$+:]$+Acw<[ݽsM?ܬngY?VŮᬐ+rI9bX,ҿ[6%5 &c+JIʩr4*ZohE^3<-H?g} K40DK;kOqڽ#5s[rd㲋GbW[vW̮ɃyBΑ{f%GɠgkY9l"DϹUeAXS[",O6+c[I[^6E6'$b~[mI$d5dm4GaE2IH`~.}ޭ'IQހd4K@;d 2~eL Dr̘35T)³/R,W٘h"(%0 ?'j%? Ș|[Q=bfA<@%X *WQa2{cMŠX,%p214KRh!X2%0p>J!gAU>"lG& "eαOm_3NH +%+KuL "Șpjc]֩;;Q;{OES<OAJ;˞ ŽXdcH1x8cAjoz8>h;kϪ"AYeAL(sP`3J\E:*W89{V._ eʞ`P}T4~쑔qiyp=~_5.kߌ~=~ԗ8Ex3_LŦJWнp->oCxWus9izuvj-czߗ1Ene p݇N7WM Y,t|8mWfۛf{;hn;_;'dY-u{.\]RF׾奘Z4[[b՜V~ҰsC׸'r散5#^#BHU ljVx5"krq?s)?v_cYM$~yv'ঢ/\w^.K|_W@-vvxace-_L_8s#c~s}54OepZZ;8ƜѪ{>w]Z[x[uQq5qV0!![9BL D b$A!ևFI+',M!iB $C Ք;L2Ptjޏj4 $DD)cBtP?> L)J,좞 ACKB(:އx>=!u'ݧ[YlOcŭAU:I% RJ\]OA[ZD* n"%3* Z$9f+hdLSq2{KW`_^vgᛛ$OyGhB%ĜM]o%EfRG)*9S1q5{K;:ѨM1 AR}vNFxĄ. SmsP 3\ Դ fRvBЈ;B)QL &RKtٛ>zwI/SDW苒LWH;i+I{]TL/ʨ+f\Gְ:MY)C -sT13TLbM T;.K,L`1c\Ǎ'EP4V)TZVQ֒z5PW2bA"ʹ"0sW j;b2iiJ5RL;MIСvkиb&Xb¤mohFy.!BmԲ!@{B~}=`v+3 %~a2s:ڮ9VFF,KY5ά p 30`W<7z ZoOhSar/Wo8>=<-fa=LBY }j554BTDӧRrsP>}j5(EXk"͎)ǴUtHxSe>m+©0g F@:kѧpWwQߝQ{*kx[(,"!"w{ ;GD Ŋr*9ꚥC } - D~MMP"70/hream ?m_dIqY^Ro3c.ecF埋z;Y{M\{j'"yۢ=|{G%Dj-Fa}zU+#Z{Wzj=}U+TkpQOjuwmӯ6[.eDVV Ҧ!-}N-h&QYTցҧVjq%K5 =cxu7;Z>tҢd+o>Ë&uINˏjZIsS^)!HV(MϨL1,>cCkiqo!*#3@ S,O$K]4Z=M>4 #C}Ҝ{mFl~ܫ+Iah]%h&c8FN1t ̲#{X8w~!7ަF VWrfSmU/rh(J>5ڳ?D6u>Lp1N gtJ1E撬\rsX Z5Wý(6y|stI5B\8)"8Qx 0o&+~MISe|'eVvRr.Rl?w;@V90yM?ϟWAE2 __fvoh۫k_юΘ>8s~8 \@mvw Bi0oڧD_G+:jϘa εㄛT99Y| 4]X6Snx}hLDEbK9 kBM- [hּfiQ4hlc^jbcB-\O?vL4F#Raa (52Xw2}hذ\pFJR5 MI*7LpSTQI(Yq2;㚚/D`$yj4 CAN8~f2 &(/.g^f+)"|6"- dǶH^eK"\;fJнSWMea(/r&SajCy xa1 Ceեr\!3-6#*OrH-R':)S\|Gyx/54[E#DPeaݞ&{iz&:lh@@{[(X=PS,gFa,gx$Yf 8j]\Ƞdp/%,|VֽLZA2Z<(BܑەJ Foޭ%еIvZy?m7yŬfޛ.kK.`,{aԸȇq{p "SϪJi6dyj7 2lEntLpSjLzlv\LYSqEr(s1ME@+4MטʋG:8k,s2~ z_2a;?5VGWef|PMҡxO 6 n@w?ӧ^7OuZ dm_TANPFZbAfJ 9V Kj]=O鏍^ԲҔv!c>4Tzɷ`:~@Jzq"~OS`v69ԽIK>+S3^u9e@j+Ud2聎uQjҋ FͰ0vܢ0req0VPkӣB~ zN }T%%Bw(-g*)TheGSa/U};lG(1>4fع$:S&Ҽ+@ZJaЧs-/asTJОqH]-jK[P"K잓gf..%ʝkc1VHK g}u_i m:Fm[Y-6҆;ȾZ֩^ulMVI]j K56(Ɨױ-O K@a=(&kՂfWB3wqNuN6g ^ ST{kţgӲطnkMpDfXqkMxK(s&sV][ gP0/?qɧiЯ ?~/WUR;HѤݔpa7J terD*6^_/ՋߖG2w)akY,bSQ˻gK/?Nߟa4|F Y'/ٷ=1ԙ}͹ݲ\ TcwB#n-ŹY1 jiJQĔKC͂7+QX.@@V|H? +y>};2ЩӷbT,W dY #rc@ϺkֽImc;1kyh֒y o!m~QdV(#XONIXajQk;}tnDKc6 p"G>\rf4 zƉZ-.Ǥ gnΩGxfD;UH1Ǜ;m?g(Hw^(2/ cT)#F"&n/ҍojgn{>՞+iC/cٛzOU-&-눅:trz/$+)XH5sj9l#Jvȩ0 #8G_9r C:dI[Nkk ~> 5HCaÍmC?P'K`0ёtų.K1kqUPiU8RDõ:?IH*@ʝc2Wk~ k10:&OHqJsZjӮ`LXc0ß^*(lPt?$`> cӺ9g?E0OFVF¦ɪ=@ y/r('Q9%bGYjE':"o͉:qq`6pC"S[*c5ⵅ\i@ѢrZk]^0X%meȁ&(ί 4c ieJi9Sb`-uEC_DQcgR=.1.hg%LEV:|(5yñC%rh0dMש`i[ dEQsZ׆.E=<CO{2$hpJѴU"t.Be3SZe+_ nm/;fa?oiCU%뒅xgC@T!-O'nE\`C0y ƈЯ֥Tdq<)L Zfqڗvl>EI/SW~WVJ-,j8 F; qGܘK*z^u5*>[ k%:`%s!""E1ڷAw@^UD71=:cX\.*WÑ]q m+kRQ} Th ږ#k#x( ]ӗ ?}Kd w O P/}1ӹ(Ii1 oj60kU1+ɪfh d`|`V 8 (ڡz)lչckHD+VNY I)YjW`!LO:^@oQss'g(Fӹo(4<2V$%"g@Klv:K]" ċc g7/ɧ_9E@Å "`;Oݡ)p  A5vYf*O2XU*&Ғ S Qx*,Q[ny(y";KǦ$v*tk0@"\;H\]o&M49L)HsZO,ާۛ-XT^Zh#Y/L?5ۗn,Z6Eiᐁm)Wv}  R {x}XjRgJnį!KHrSFXyVWB۝ʌ=E$;}ƒFK#w m,E.m'P,V4#'nXZC QѸ!""Îu[qV^3r"9"E&}/#s'>KnE:?RQ;HiKeu۫>|J &S \FDԖ_H "@8u-%6*rܾD^#Lӄ73i]+ -Y95R$lkxj .W:B\tuR$+)LRHIfvkTGRcVc:whW$3y6qFS@T#huن\D$W7A5RrUيo+3GҺgev2OF'aHH.wRW;PΙկDh`#"`BJ'OSC8)&ƈ%ó5(Lr3Zr"PYp@gD^#*" =v)EjO)ho0wVͭ#$s.KM)٥<,4II#V}0*R&V~bLSl(M[nk)R :0ۜF3壹Jbk9f!rM((d 9<J G(4KhCQn&f#ƪ> )7M2$0dy%6C82b-ln-`#H9yCɌnEIj"JkIj>֭.Y1u\]zSxZkNM.pU|JVӎfJbQ2 \ >4PDξ͕(Q9}!waBrc@ !}MD=#.FJ#vg-b )$Gpo]% qɑ(mQ\{,!M&KHd3t9VR$K8dz ̥0qZpcضД&pj/Zβ%Bsz6guF5 ajHKRWeėҤ\:SKQZV{\2c!.CmFm^U|0$RnA-Z X9OjDLjlP~>Y"y)LyDSDlxYnCHM^ޣCkP#vYoZ-‹đIڂ>Ried7CcUDɓA;8B)׃7{N#*W눔&娻Ѵ5Hi5ۗ)x7(:,?,A+j;1T"[Fi,W{!Ncu*9FgCv`}UͥvȜà CDADF&*ʁs&Ƥ`] :BYpθ2k!SL%^%Nr p\svV*@Zq0pb`GȆ<NR44E#񀸻 )%^PAj D(Q9:r[y5`R@#|1D^#)p442*eRƄ3ũͽ4N_dKRR$_s 8Ngz&zQP9Ci-a(hVr>UN9kCV3fʎsFġD^#?p,VX#)/^5F:/CBNB}d En풳ɪ> `QW6IDH#`{vrNE 9fJ{"..R`cIn?Gr"`}\a1)'S *o\QqkrwgHQ1j?IJd9f&daJE,2Lp`P蹙6qa/ر M[n5k9Fq0\: 9vy9NGU%E[=gWN3|Ր3R-+ 0R/jHZ܍1_aYĬ2@CӪ)zz$Lv˿8"kŸHsjd0Biu⡿zA5$i{RU)LFPh(i+A+Z%˻1ϐyVy849N<пssIRqwgIOرt;ss-/'a3y,< +c'ΥÓL<ŕJ.R"Z׬<OSk q)e꓌xpTx aϕBNGLn8(`z(:87h#4^+Gh&)O~GvK ǬPv7ھ gf_9P LQSm@>LV *]/gO-u?ݼ>MoumnX5Ur2<4ФuT'F;r?㸥FM 78>oTG(S*iiINp袜QqFknW[TK6Y^R4`tܾN@@ۢƕ HN:l<3P[g>rahoHˮ6\{ivt 2:En"jx5R8͌Ŝ']LW٣wmq6'du4@4f;iv}.2^ƉU,]MG+¾s'nh1ii3tmt\/:-%5Op@ moXfcL^0餯Jb8M"u(4 bN0\'S͕+)L|P vMGZ&1yX#kB p_{w󼈦n0YP0a@cr)Ŗyʒ"%+v$&{۬L*j -hٲ !\^BY}B NItDc20+ Q .s-: EhUfj=+ Vs:9ǤmH50p\aH ZOȹ` =N?Lv1 ݽ(o5TӐޝ.oݳ+i v%9 it1A= }!=kPO3},W4?,_pgĦBiBy(WP+䉉`3RhyӢaKP엓~qpTdFv"9KF"q%DAJY3'.hjK-IcL`鱞&A0)1=h@Ǧ &,y8%bڬNe /*j3aa̋N+BtJ Bu@;I HBIo$dCFi*#C dYRLs |v%ַeDVcIyak};N@-ZX$_) mܶi^0 xtcFR?!nׅ#EE&[++K] NLA}롫`#aHTT)V`󍄓DwകUpZV $A0blht9A xKڎgZF擹-H =idf9eҬkP .T*v:%cie1;thQ{%u`) =)ٲldrF gyIy{$<”tSRf0|=3XᰵMCa?X.-[4#raM+"021G lU:rnMc aTt 2M Fan&*:%$vT!Ҹ#SxXjh鹬5I!Ґ|hSt)2\ iք}!XuD4TKPa !Z!Z mۖ-ۦ&,TKPHy+VsA%r≴)iLMX&S&$rӗPj*ilD|RQCoÄIiBGv劲_-S\WIH\ӌL(B30˛$N{T$ݕ*)w,G +:@zZ95[*9Jua=.1YrhBˊE>٫P-v,װ$7ZJLOpՠG'T c[2Qy&3n"j*tAum#LCZ#)w,\ھ`:$*~[{141}xu/yOWmQ<<LHc;1浜7,;UkLYn*JXҼ/hR͙T{#Cf(I5m >qvЎP`a38 uQ~8[o j)M;rV#;.m]m甜3LY/G*dē*[5 86E1B)PBZH[mtN≬FS;54IꙛR566hH ](3/N|EaӞa0yZt Jcæ SUL%F rAʆ4+UAq](8yAQ A_@lF](@Щ^o#3>+ŭ'ɿd.LfL}B!]M-D)u6{3J\BIƌhR|13ܧ\8 z`EA/jM/?m~Y7^`VxXe d4j OB1\˜&C`gb뚼II>O$r,þ8Ѧ,sȓ-eKבAZT8(|S{ZYnj{VE M Q QLr"fa M[B0*Qa" _p/S[Kxf[L;oұIڊiaM2B{0C{s;f*L *=W=-Zk)Hwc|0T։0Et]Tʱ0k[ ciSK;@F ^O2IYQPtb%{sBo&C/}m1:dPF}h,h1gPG0%kSI 6@m4Ԓ5>&6t7DPhNϱ)CKtwi-W ^/a/)gX}/>sb})-hWt P= r99XwDEU ˵4 N!+XUt U FRfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/22/edit-redo.svgz000066400000000000000000000135711231434177300265740ustar00rootroot00000000000000|o9+t/\fWe'{ v<%'~Ʊ [$-jIQdvc*Vo\L~ܞ_]8&ӫGv1M/./._'q3._.=^'|X\??9ym:_ɳqiy?L&鋣%EO7;=_/'䨑6f~{uws:?=]6ADdWKkp-ai)O_g/I|-)lh铕uǿF6'gOw+MPd47k/yoz'k=Ш5}~%ة)b:ΰϧխ ,R^?F3s*@u 9 '5WlyHY=;DKr$ƒGLiStO80a|]swJ0G3'ʂߐS`F%)ʆg4+"fTV_mXM󛫻:/rvq^ Mo_O?2"|U9qur Ή 1!?&Md_e$JMojAӁgy {JӅ  ѓtTL:9N~H .Y*$0ؓU(:kiXm8(d{TDyQM@ )[]HS V _dǐٱ9G`XUUF,w_&uYo8ګ-.fyq䧷w8p?96.l:ˡxsw1>y^>>ݦ}yXle.qO֞[xM*$鈓 ;WW߃ic_C$7cHcxH#np{?-WC=5AߞXߠm>q&WkvV#X.Ѱ[c&$JvG *g{O$3}cO~q"dڂ9̟-[ET$zަ(D'ɲW8(uDе,OyzQ W,qh"2n<&08ed4>djO$Cʯ%~7[J!yŝI$`_TS̱WScKA֔ƦofN*0C~>u$a"Oj`2j:^#A d7K@Y:&9×{/D("e˫fUgT}k\8ͮެꪬMᮤYݿf} ]շ J~\Lϋȫs>jym꬜nv7eU|s*n쮰l];~eZV(JU;O/h37t6]LTrΞ>8>W7?Z /P׏gϫ/.|^}쿖~*F5@cz3떿okY/Q_tʛ/Payaя?/.&mWwofeX grU]K#j6` !rzbm{wl#o.!=]+ :NFr u_b18+E&J)+('̸buڠ*/I3%6sغ˹|+XAWl RKԆ[" ;Ɣ̈́yXjK6H V:ܟ:kbu( GaiN9*+R(ćaY:ŤRpc G"1O{)1XR51`=jTĢkX2ר<* A*BZ0JErtES'R)!")sΓʒ'5DL^ЈIR.^XEr1r%J++2붅iĚ=?=u0^ZcblI ;Fdm7);XۧSRlz=GS͉] "1e*X=Jgd$Ud]3"q YLirГhӠ+>N09tHLÏMط*瓃|rOQd;b6CJm$* <'R LL{TA>9'9NPT<'x*~Op4lf"=9'=Mv,N7vνSCxXOc} 㭔|e?̣TL~bAD %2Y W=ry"9UM ~_["Γ!2)b 7?Iv̈l{jЌ=EOı;^]_3uqYzonG8e ۬8Z̢Ypqg-c fmwo=;b+C)* @ A#?J0ힲvN)EZMr bTI8*'P{6ؑlvBT+푀JI0sߢcJP㒲A(w̉#GZJ]+2n([^gSuI:D0lSz8ռ!REP"q6'],[E/Hyˑt\#[CAX:*Ũ$N'0v}1mZ ܼ<GqJH~[B?y'Wly%iO^/74;y=*'6Ă@v4N%epJ-K,EN֩&4 Ub>$6s F]ZhFDܯOK:jR41OِL0 LGdSLY'aI\.L`X6 Abi$J)~X #2xu)"I2Ѻcr WR˼Y_>iS?ƅvpMYW_°-+aJKz@\e3Zb%Z1 Ck\Ce76ro# қH*f6Xi`=3K5ecX|TD2 rUi4=*%v·uh QtF.k[R$%0x$1A4y6,=IW~WD૿Im;gջ~VL:IL(5tM~n$ZPi4( =M [yp=Go2N=YxIiT1 FS$1'9"zzLĵBb8hbhc B*hmc$\ HdҷKT€=[؀ek֢j5b$jI*:v_&Pb&КD 0(gI로3OV6[VsQ\kd">0Dv\0 (`ڧ4EOiS";WvQ(4|=!.)T%-^3A0k&5HHPFBtXBZ5'Ļ?{qg 4=oG3JbR,k D-]Fږqj2'Aumo(asC9NZݤIJ2LZrVro#qղ)U7ַ|cI BG;іqalִ+"v[nds0k2N=V ;RjZmqpj9[?tk<\L.k[Z3y-SoUZMϖ}/>TIUt5F &1}=. ۺ,.FGr5mu5Nߎ/O;}6 2߃R6ͦJwjc6-͖7/OoFݗޅy%.(VC @E1xhii g警OVq je#eK6mDvcэ9Rj~^Nfa|qrƗ_It://U2-vtUuhJ0B#1.F\A'Z׿vNYx@sҰ/7 B9m1 jT\hRQ?,|=vB!.( w<%*J".Db! O.]pxqF?~#=È֟ס>D<)uKu\b hpdbΎ#\GrףJS0sllxD0FUf  X[)B'om0Bx揊(!a(U<mGZG[sO5՞ϗ1‹n9I B֭q@|0CPf]P TLD x/KfNLP!e@jHD^c5G\yAL3c=fӣsӢq0 <$c,;ز9` 2y5%o-8E`N[(?w (D%ּ̢ȋ2w]ѪRE#_zK^A `v1Ǽs!" ?pAlT۱ZPl?p%u; GCq"͊Bׁ^Rʫvpox(^B(^ 5BTדT|uE`OjAb'zDzDxхF1g ݩE p؄wbclvj@i0؃hֈGm)܃dj r?!;Ph=0۽@ -د~7¾7k S {F9r$_;ciȲe1";B&DXh1":$5%o .U9f4@X͆b"\V$d[ {6iqK3ʦPz5Rبw\vy-Ba%M Dm0$io0/r Jn(S?(K2R#YpJdYq01Z 9U$.z]ߓj,8`tFAe0DL _ҊoAl팠VauH!CX p$yۼ Q1O  c>ZV91+;Hx;EH!Nr!c.kdC G!b.rc :!((bj5 .;"ƛ-D"4xzch!Z/!W"y#DsZ H"&F@顒Myg/; ϮuO&0L2<3Yʁ(SjH;F^hz߷{$z UƬ=6@ʣDdOu)5EO!m|a5&CبA`=hܿ-xфht:8|)@B%JݳI0>ާ_Bƞ-Z;J-(so]ʮSØ4/$Ab7^bf5 6N~ؠf#f vm_Ⱥ/Ϯql18b(s{?U^[D1 ;1H uKf9`S}/;t3Le6%sU${-2WԒV*2P[uou-"ђ(# .;4罗krO^}k|FAݶo]6+m:ɂ$$jſqn&~fSC_\[f;r|PD6;.:W.spYwľD2_PqF[-00E9| 㨨Pb9G*L(6ÐCdL3w=X=4y} mуZ*O _7M|1Ea(oMVʭ>4ަ{cjfz.B?ӗܿ> *f?I4W:qﳐfuO;`*-7i\]z|^mzX %޽O'jtP&jZLXdB #uRZ$З-x6[nxe 7]Ailx="vZL^m췿?-?]Oznw|ۭv8,l~eU GW>w7v F=(Vhe*%#ݎm^(e ~/,='Qe_ib:gnX$T1n?29j|:;O&vz~=m2Z&/Fג6ZVX~1LZ]]ch6BiҒ[p=K%K+N'q̏uph; a4W[T8Z _Nv+[g9N%5|/F%wm4j#aL]olkODۢh 2H(z>yUGg?7;x# #,lA5w^右ލ `ڍb2.o,t !`{d|n2}=+O@DLIuQc5ѼHlTkc} vƺ CZ},D5&OhL.oڀP~;f[^G CH7ÀT`k8>1c㝉)ےN84{2{dD [~T;h&G%E0EʲЏV>% Pagu ٍB$>'^N$@,W%z5`E;-.i`NSdG$>w߹" ;`I IT|ض+Ob@^ aDQ|ZCK8QSoo$ptрg,1DH[KTNÁQ9:ob86;mljp yw6<2I|dsMc"7p?9Y~g_NNN}qݽw3˿}%7.ouӗ̿wq޿۫/7W7w3v73onGw>|{~XCҸέw?]ߝFcW1%7}O} ;:&X|󊾹Y_o^?\8'{w~v3&:{y|e%jYpyՋo~U^pyq ns/7?ǯ^C7nʯn~/]~{%?>?WߞcכNLOW/nmn._oEmN[j|+=9/n1_\\ޭ<[]]i*1woǻ͵\FsZ~k7F~w7o6/^^P^KF% н"ѹw--d%ǽioؼzצ[)o..iW/j\eeOVѷ,> iB|nc>o_y>,yFd+җ2oXtCpyo^zuKz偫CWޗe,_˗{}*|KDjk~._l 愴; ;0y_gW7/iM{P?J2ۛnq4$_8W/viju"BohY=ۤWGY''$H7'ZEsE3bD/?L;ju혿oo..hYm32\ۻȰ}qM7zMHE{kRNܝm~m\>q/~>~);j7?j+C#>őw?rуl5e?v`o>R|~}>) 7Cޡp?".`>e6&N/%"~aBQ|~8.;޵-1!i9ta.پݽ<gWG_|G_;/\9_OǴxߜ^kZN KƆSgױU@~9X[9-:Hdٶv>j3p8 ɒp`,{<~jpg\"t% usqxЕ s a94b 1\UWbRuסf}?מMɟM>Mqt )JL2M/P.;ߗ[Kˇt{v_Ѕ@㝵Tq[!lds b%3-?6>qKlq闈H~ %b־ L 41őkMLcj)/(sӂkM)/Ts[0~M_0~kY!mTVǻ:{ؼu*>D{7G@BJB{cJu 6Yyo3nV oH`]Ň:c64sR!}73v>s{+VhKA?҈Pn%}z'DOwjᔌY0GPp! XUDR3 uB.TOʨc3G ^e`z=SrRgwצOۻΤtHskR{u;?V]ëCG>xm-.ziKz)}<̋kZ'M@&\;x2ўRZG2hD&& B#ո&UӐ(4MkgsKE)VψFnbݿm>;𽝽rHޢv~gux\[c(~nH$#NB+:F~SK^Ů:QڔJ3v>sˎ%𜎇 `l- Xl-='rpǰ86j0T͊ڰv0dx{XyUSM#ݻޏ|i0;5cWMw1E>O7Xш! KK߄0CJ|[.}-W%|}otvsV{4JLji~ыnBlڗ_}l^_/_+}P} OrvU|J:gU VqWqiw,==nyS=9ř9bC6x-kl6g}c㘟⣉s#y tyma9y]G!XUg61u&شYc`Ǚ 1x~]zn\ZFQM|W;E"b?4SW 5ӕKV_8z;k$r<%Sr1DZ}b8VcQ8ӰqJNӇn ࿷nB=v][t=z!OO@OB3O> OdX{0reJQ[-Ӻf,ӿ0{W2,@ eL\'}#w4mS-_G;pk! v](Nvm:&y#,ʣ#L.@h-hMԣ5|JGb,$ =ǧ \Tkj,U?٥?@<Ի&. j߽<\`_5z_CavQ% ½_~ҩ hPwMpE>82pBꄯ:ZW1ԑ)>m5)J:1icA#4!8VjkKj/5<&>Ї߽{ d0Q^kndx.!mUY*!O/%l- EA#T%T3uC)j+3,jAaq N }w=?֏Qe"DZ-vX?[m\p_kۏFzj'Fb1, _MZlF>yVC#@v4SEJ+ytzt|U"иGV8W7܇c[DzxFN`Hyk]8m.G4|lW4=@wp>I:'U'Tn8‡we}ڷhp~6пz^샛"{ ڤpsOųvΣ?xm5\_1?e\vߦf' LC.%/= P؞K_¿{j*j=$իkO44a=Aď;~GsKv}m7N|wow}w1q8Ǿ`nD)ǷV/vy>'=MjV}&l}4X1Ãȇ5꣹>. `}6_2SZ٧n!? dm1cVԺ3W=F^!tg.ܓX% ?O>˜ԝSm.045ZoPgJ02#Li09Z))͏ا#codr om'lwEhg\\Ppy}qê5[={y󖚙 "b{7*oon/6L&=eE~X>]ߞXYܼB2I>%l}fޡ&gbDt 'y6ĩL" Aدמּ쾫77\pK3͛ݘ~VWF7}tI8*9 gld*~ٗo6wggwgmמQiC~}yuyy'%>g@ ;lJ?>87S|yuoܼbMԻכ&<3삼~ D= gPt%&ٕk]>X~};/W U.d|z~Si@*eū//Ͽ_7ٷ7`/^]!Տ\ao3PVuF{&K|_.m\]m~Wo_~_T v<*u<\齭J~{#W(iEƃKW.5y^ikvTѾv¿6!C׿'ۯxT\6}W?ǿ{!~Q/LA -~߂/[⣏q'S\zX#T?~+ó浢`߬W5qϕϸJ%\_$\3~>Ak}Ϭ%vJAGhjG=>z`m L>p,> aɇak)6,_{`уRqL2 ߯句ίtHiѕR>H}+6ևu:̯tqNӿr̈́78r+`1]xL!o~C#~OK=ۣ6En.6pLh|=4c j1XC&ص99=壝R o||.ţ|_jɒ+^8O"OkLs v !fq_e]KYLX[h-RR AK̙A!j^į׳;^O&8.yz!y?;5t(5{|@ވ+-~ O7TF ,HA.g##֡vN ym)\`* iwޥY7|~Vgxx'ӏ<]6)73wx<,lZ1^Jʦ`&) Ey I3->@:m"$w %YADv]K'()gSJCkXdY $'2&&=D]c|k􉥧ŠebCw6cd6%3=xz{ I9HmY[Fn(dg^G3I4Ӝ,,JqKw`=y||IR )$z̞9SOx`MjL(n8}ϞxC'iR=$8[ _.9gZd48H24! YeW p }"g|ʊ|kkw>浓<%B'+ؘ3 Ke*O GZj, \:[ѷ-|сaAP4 Oz(QP1-?KKyaG*+ΗeM $!DSx x֋f$XQWkˣ'.I1O!Y>$[XPEC׽IwACk07_OjrLBP1|#<tG0rxM φ )ڐ1Oh\0bϚxD$tEeGKE[A5*+8V<+8 W}L|:~H#n e C !@ \P8˓ɤm\6ȣJs$xxXuDX`10%r#Z;ПHӅP24)oMJC7$OLfU8^rlQǍ.Ҽp6 wA*x|Ja^ )ĦKh4lߐ2i RYV'o/{ǹǓዓ'WRrЦ Kb* cȷ;'\,VfR|e3x"㎧=*&IZV2Pq"o݆wN%y]Xb`* }yvQ,-xsCFM92P;%YސD6J֜m0Ʃ*%ƒU`"c(sR-M:l԰(o'esmϧz=nȒV!kNj 3ަFp{, 'y Z$ɨA SLW7L` VzdY'A ԢH Bt366=El+osGM%z"i. da",UOJ@ q`Hc)(ts@58PKJ/ۄn0)jJabA83QsBG;[xqU"z1y-hey!(ZE8*r(k:̭Q#H" 2 ޴8SiQ%hs^ZQ%cŞy,,TgU`i[qbj=)F?Ӗ b+zK2Ska&:".RТ#mȆ蒘DG.^V]j7ojHD^ hrPk^^U\1) )&> V|x[A}L.[4l85L5nٸWjK}wQ|*FdD#֓>sj-+6Fmx~Lb DÐY^-iLO-#.*܊VLV\跁&[^ ʍH"p9.4` ߇4T\YWҭ`4(V^W )'! a\P58CiˁQ>C]|`HH t ֲOQ\p7EDwދ# U@8!p(IEBh0 !H#F 3qɆe &L|S 7c"4=*Y‚#'=G^O_{]Lőw0p)-zڴ(ɸ=2'ɒL#IlT|2Ǽdsh1=E6DYiQ!$2#]cBٸf%7EV!ʮJ0ugMC%8>d9Z9i`M@ ,Mߠ]H,`% ,l =|O p 7(>B_  HȊBHydiz4FLzEI4ki.Ԕx]Fˆl8L OR,; Dꆓd#; 0P J|dSÎy aU E UL~$|^G]WL+dQЅ0 yxM倌vR\_ '?GjxHx D&Tyc-PAk{DG<U O NIb .H ـ`SZa% ى!8BVV&VA? w PV2F"XcХ5⑪lUXU8J3S`r̫׍+pb\b!˥`R;{outnr"aky#qi)vy3 +a`؅4jfCڜ abc\Ԍj% μ-{tᳩ2H8&FdfW  *vt\!)pWKxO{9+1Ap+Q"ݱ YA'\cuxuXYrj$<6IUD(B|| V䱠iYm f8r+뱶 ݋_hSXQpL:uZƯ8HBHVWnC9!$qгJd'ÐYɕ$b_}59A@fk9$B%:i682[vT\rKPCz&4q 4(-:{"`?NaMzg A[ vyg/% giB$Gti @~+Q +^b%UeUeНdD'A)E4jԨxz:WYu A]u(RA@&ε0iSqX|Fx2c0jM؟+Nl3tq5 5XPuͪ,zq] )mZyy2T筫ZhOR q JƷ 'x5 dAc MO3"rH(y<6>-6si_2N6tj=V"ey&IZڪnE ٓ `UjT*NiZ@Ơ '8OVFfQ $Jl $XcdZ4]%8(,^:"gѨb|52IRD#[K}h.3A^ȅ}ns8E1M 7A * D%' UKd;?RH6C qˑ!̠ jiȖWyh-@(iCZ %FRCQsUޒ@vxC>\lX '4HћbeL$NqV= Dun9IJ$Tt =k*:;؃"j$G&h)(.Vn͐YKdZqX@&Nl4[tuw jCt #4dxG00I8^rmY`o%Y~tL}u՚f/3:Aԉgf8,'ap-.%K ȉP?̊cFtL%\2 ~eIU\ΕC 8IX}d4'/٫^tKjglDy.`HPYCdMBr433+5EsXi6Ks@8N{ @T@x DP6P"dd1*|E c}[pz6-;x6ΊyIH6 va5DII  ,K-|6Z GCʖkѵikLHPqrl"gI[(2XcS'*g~&gI4h}S&][x8ғ$."JEsҬf(a[4^HƙD iz1kݍZn5$$!cOvuF@[%%jZ WLhA4JAhr}H\\Mƨπ(H j<'1hJQV cY}Llcs W.I Mk%gGqݶ8S\%M/UTdN25~AV5D bp)0ªcT3p\gL~$ٶ@$0 /wquz-r45Mx**qGr7vpNp4VcW o~ @0'`fӦ1qLǧ6&Gg r( .'PE5&IV5?Xl-ʮf ԙh`Rzy. i;1> `T9o4`T0*!Q0T%|\iB͙- iz.'rhrQ'#XEuÿ2'*) āڂOG}@[[fz6k싛ъ &fg2cqA).S[VmA0bخ-(;\K4-(Gj Ŀz_mxj })zmAj 8f-r-pb[6k Vq 8,:.v@j@{ul鼺 ׽@\b e^٥^"+ G@nƘWnxoqA}"3&.)x-'F%ɷPK̥Y&V |/4XlIs3Hli.F$yH ~V2f'AuVϾ5Wh)vAPK-+vxi+G2j$-I[Dr58'D >:q6E[mAeUN7Bn-ۑjƍ|iVjYV %)0{5᳔r m<.It.]K/ymۥur]\.A\Uz.ץut.]Kv>[Z~r]\.וw>s-t.]Kw>Ji,]Kt.]ϮKr}֭VKY\.ץ<~jt.]KV꤭tue.Ww]Q]Kİ41қv0jG<41,M K0_Pî-wp41&aibx&=Z贖&aib`ϺayC&&aibxeյ41,M 'Kélť"Ml,M K/aw n/M &.K$GuPd9kibX&O.I^&41Ġ[]aןJKݞ]{us״eޥoՋTaM Wd||W/l8s?\^}'_B NCov7noze֎CLLW Z28rK[[_ piA̜Q?#e-UGfqB̵$ggqG"s-4Uuw\9|S9kFi Յ:Y/Ct$-$g[BGd m$Sh՝V-w y?N˜q.@sI AMmex2 ܨU8Ì48wvD0^<  вi*8yqGI - eN[;vCD\jY%9v^RP4hV|%9^5V9XOcmdL_q&KHrd7sACJё_完MhU2l\IZ'C/T*~3-{B9 x'1 0!rZZ&` mڲfeZZb dwQIԬMlSd6=wHT3dR BXkv_H QkmM.-=ɳ 'TA*qH<2ڈ,fZBC~2ϾD*Sq"DTm%;l_Nvqڽl.}Df:rȃ2kbgP\lM]B S5s_ܳS6E=coe0ߵW[4&"7$ZѺkgOa.ҍI4e Eޏ4wNܣ  AQ`mWYdtq 3JF2bBs"1Uү^m=c·ܡZ8K^ BP&;#d nj##u2fȂ4q&fU }D 53 8"25G-_GʧpD\ʀ'LH~?XyD+P=/&g:#r?RdWZ_0&7&Fsf:~6uvaӞOQ%iA4@m}: &At*[Km+O!fxrR2qrkIRDT5ȫka.C盗CIN[#?Hw8&[%ǒz7RX ";ƺ܋SLjo'Um#1d7K.ΡT@E/oa^ot$2[L\&xuV=I2 o:L?\lm5Oa&Np;K$M '{!n<9P a(%s0@;Izli AqcAk~ lg0'j'kx2s S]߹# w{r e׿kHw{ S+Uwq]DCz{wݻwCH{GX6Յ QҚBe. "l/ZB $ ܩDyp 3!ThҠd#+*,FuEYBf P^a-ƙD6> ͼ֒vKZJDvֲ.D';'b5!f%F4P-P|F4GKQ) QhsS6rZF\Nzj (S8R$m8X^:Kb3j?`2]^z(ɱzӊzo&V7/ԨT&2Y" XU;1Lj i|}Kf"L,#ibdYT&7 0B*o_iHYH% &t'q$:&YDYken \)y"ߗ *{SxP ;Q2kcJ?d$ʠ' jģ)~N%]S.5#``(4dwjDIz(O3lP dD59_X)i ΢0m (baD'h!YOimԙ;$"e `5^›rt2h:i3aTF&1cU I\KK[Nhe@)x@pA,~VKnOQrj*n+U->]⤷ܡլm[\%xBp yUieԞ|UQ.&hMš)$hإc5tn.ҵr|R+#[%-$V G, HC$07ޔ5IC1w>5A| 2eC{H؇(>H lMf'YV4WmujzۛEU?W p'7^-,qc.VXik0C?eLߩ8Lŷ=.M˭PAyLSFDQlY|2ؒC5\;IxNw#ZN(,Ԥ%9nOqA޻fy6]f}w# `OqDHaBwdin~Sʼl~9{(]POL{pPRR]Fzvx0A5uHK$\vL̛2B}#KK a5Z(2"ǝnعvGrűMR d"HIE'Thl3MD m$:E1*爼@oR'Kn;D0#h\(h[a '^Ms&iX9%̛&dqXsedߝUnC"բ`,DE@9A II#eGY&19iۛZrtQI$49N<ڟ>8X&VyL5ya]MCO|qR5)OY+֝FBeݭΞsj|aj(('>h( `NGqң"*9PHC"<Ӭ)A_~[9{8Z\[l9YCl@;\l4`76JmzK8lF $zsj '֍S K#4@m0t ѓ>+ V6:i11 Xk+gJ{)$aC%oP[BֱE)Vl<MכlpL|pJQ$F(CBGsJfH`SA 2mB&Yh!J[  KFhTC4zSg7ܛKGnɣMUc%nB&Ĵf 1{\BL{g 'nB;Nx\F,#&#+9 ]>:%fwRb"$Җ GnJK >-%FXu?hiHӆ6z$c2dVr<)L#n iF4BImcI\rVDj-1IW"d1+ϜRV9~2bA'?ڦq1XE'(  Y%>H<>'didH42RP+0EڡTʶd<^-IjFErUZvtbhy.Fbyxhv&· @CkKGd[F5QTuH T6%g[Pa|ye'.ء+BS V>wEG̘;pi_K4ˊ&i_?&g҉iv4/MK/xi$[@&C&R4/MK7?峖&i&TIzxKKo&}>\&,M'fiD?&2Do&i˖&iHsYYNoi_&_|sYmiWgyi_gM؎/_ןyM]۳wnn:Xpп:,c9̔/};W ZMm?~կ%)M[_OhPnpZat5 PEO]"O)\߄U) |Z=l6/NF-뛋Oo7zq" d{iyg7p46כQC+F?+$F*O G֌/Su&ӏQqޜrs}Gl|)+*zY+cC| McXB'_<6cC_ueEsDcsx& 9>8=!MyNm9爠f~t{\Tg}yKm_}{cw: _O8pyqW/R\6#)z*3yI)n%}or$>sRus7)Bqв^c2Fi84F&nF2_A?3"%K t=TB+ <2Cf_?IDSrjƿv{dVM)I>Ju $P0I@:`mDBC;. RĪA6]ߌ]QҼW [ !Ш"G{ Uy:Q({ Ru}>ىE KDr8'ɔQ W{J&9R|EC5SQ+; 9o'NZ$ 4{va!D (bp[+ o4S Zm)BřcC*FL-H{B3A&N'bHH5Z4?B9['C(틮w37s%r?Z4&v ipȓ61H )h ⸵dǭ%fܲiH>&h]߆zg; e+K9*MPéM)ӄzGB${{vk37h5 Ml*/BLRf1} \YDR@h."=94*"EceM |!F,D[tpB{9" @QAQd8|kZ' )3?}!%qX6Bd(>g2<Wj9mpc q!Zb\ā#ɩ rvzA= #̼]l*$.JaAlRC~8< 2ͧDR:Ѫ. B*JV(䯤^w#Ln'xJ9W&n[M$ |^5hdejӪȁO]AogUbߜ_Vh1YkvDȸT":N,iIu$gw T֚L톬qq?!Ȥ d(yYit8M`4 v+1[Δ&)@Y*"LbK+0k]*R ҅3Hh `%D3q h9K DjV fjyKI.M%\^[ʟ4pi-o$&;:FC(zFl_%Zw('::Y]9F)M]uG O;E U巓T;ώ))Y*IJʧBUW=E0-U! V )KCJ㘢Bk8E9DʏR1PPWSGq o lGф3M#񦄰R*Re;QLsTyQI+`87hIڰh-oku<]C m89sT\/$f9*QrQ98^nRg9.Qv%RT')8E%#RTh{< uE6lGFu=Heυ h(Cv)Ntn4Is<8ܕk'CDjѐ6l$āUnGuО6U#ݮnASt3QI6-eM7m\!Jˤ4 (1 (hḺG?l8K'PJ.%7DֻIBJ(M8nYT.ՕXfdW{~/I?3dNadq%KwՠgإAf]ZpJn/)2hS), =ۈ̙4}Bqde7F}WE(hZfK$%(գJʼUNgKèE轔p< 1ёL}?7 rFM'"҇97zZKlO. S-!蘦% ^DLYArK_HY.tO`_M1&eYf9o6-uřdP_&g d*>.ٵZc+;V4y\,ۭeM:6.(O (RE+ O)NIb@rl7-yvD6F3 .4q֬ݔa D V ]XvBCrEƽݴ˔Z@W敻G 2L Uk8.:p餡ԓ.T ]\qYCI]d+LJ)Ds-.2RZtKou2ܬ4*4T9F @zܢKM[BN\ ڲމP' J1~eYkT)>HU9~H?o Bo8Z>m8 f㇅Z?@cRdJeQ3)F\A($AyؑYi >uvK+ͶuX5VL$r!g8@@ݺ/ !ąKfU 3uRmE`6OȾ j;P4 PXвx(g$ [*)h>מJp9n9l Q5[ѳU 8AOTOhr!΃C8Ko?=l֜D7&nf=Yӭ=t pr{2q7H 8Y 즀Ô<,yC)`eR`׏3Iu; Zrcc @KHi\8;4 E  #ld㸀BK\M Yi<<>O|: BHE19 bQλz(^zJqw Hxn-"]Z+j+鵌Lec+DjӫLd^MuJqRf&2̅_ȨRە䴋4=5Zʓ^(; ʟ镏Hڬ鵊z^IK؜;\YccUoJHVM MYz>kOQCV9bUNGzZ^AcȧJLmtmY 1,8o%`*0# ·0.MtNsˮ=פM:豃g4A)F)-?S>?]t|R >M!r|:p@)0[R_ "y fbAgn "~&30d B`iM=#K91.LWW7iXXsb$d(|&dWPĔ^ g:[i>udLV">{6Oh&l-~l5QO|leϩk5X\@hjuVf~luqXTqm.j5yv~l5aj&l{q~nu{F]4uUKƪrҡvMĬZMEVaoU 8+_輞YB>뷫#6V=bΪ}1T=YM3qxfuy>դ$j*{z¬IOFǼ9=_W!!"pzHa;$vJ52>kAˁ-uq4L Tzzv8I(X¨1ÝيqVfu/n¡n1f-L| G@*C|γI#cq=v.zJ)4ۢ܎Ŝ\zKd[Dz.̖gs{g1(Lia=yoSaDlf+el Fl؈Jpm;6>M΋ZSQDa4e~mLF"AMY|Yf:WԎbu\⚄%cj-.!aMbe6.*í K4p#WE~mjY mũH2vh+r$欭X--(v%%Mq.+g pc1M rc,O]wL _z[ρpz[{bXu{0&oHYPj:@ZKSMB*Rܐt6gUzECTGɤ?VdవB݀#7$E+ b0 aբ٭VsUWMmiݮW'E Ae/jܟխ Fe)Fge@FO!LINyԄTU豃 tz~ CL|0"puE[qe 2̢(=cw Ygut3gz/PؤVW-8HDW'uϫ":3=j'ѕKZ-)q6k6p&EǕI7UɅE|obE۩NE!tZT%/eXv4ρF*䚶2%[$ ޔ(*X$9#W*[>DuѮ|N$܌Jxu[<뜋" '7,R]!FԞN?@)y#?آ`oI#Jzӕ *O:O$L_ʟ҅ 5r_ZaX^ z֊!OT7yԮa ycH5hU/trdK%edk,Q$k~snNI&.)QV|AzIIfR9]*%7Fg(7ZhJ }sS ɩͥ{#BR@>9lWe8|M!zT)6^*{y+i\4 fxA &dL]8U^kiMI~#KWƛTCgT>w-9)G{]k5B9HUt D^hrez^ǏlNu7U?2@lϸB瞇䢖q.0%JYGU&iGյ ҉,)σ<8 ^KL q Rq." ߔm\&T;cG<%̈YW?dqݣVE,ՐɣMHI2}$!WZ=aZ܌jtC?.jՒ幗Ѩ@CgZtl4Qbw1:Oڽv%je`_إKM>b.zh}8lVM1HإvT).5>zϥvIx_\JdϻK-KiӗU>>h,H[Ñ 5:,\߇vSMooUɮHFUj^,%ݨfn_i'j;*H`𩉧?6=ZI/oljզ6Mͮ65Mn-)VnS9)yJ 2PmjR>5S+}j^BvZ?USڥkIZ:ۦR5ЍjAM]B`TnjTLj1+Ī8gT "*YKP+$Qd=>TU2PrG|jVjS󜉱OM;mvvQǥ&[/SSJTvZ;{SԲ6'aN4uKZ`S\lj]jK:K[ȺKɃK-&ni&5="3r3o6-&5͑5y4Ȏ h)M=7҂kw[ʼnpGI*z[]Y DGZh,ZHlJ}R;*.Gwi.7 >=υkW RoSMwTvZk~]?[#2NZ]zod+ և#Lb '0qbn{U9U_M"ՇQW y.ӧ]Diq31+ZN?Smׇ*~w'@6yO˓}&ЗWt=!Ѣղ7%YU2&SC@4yYMb/myyܠkNF1Pf9w(˦m6d! pqJXzo?nMJӉY!,dbfnkժmɹ] R h*Dw4D`3o:1} o}1_?o-#\r _N\rm0|ȎCr @ǎ<@^/\;l9\@k@Yg+/9|B1k@*|0`ȵk@9|p\K5 ok\oCk@W\Nk@k@t#hk@"k=9r 5 ן\Ckb\r@ϿCkk@BkrC0@A% hz{eŐ!nhr 5 ׀\5 8k@_r}>r@ ן\Q䚣1 ׀\r fT1z%',XrʒݠSP3`Ɂ%La-!,,9KXrKgcXr`Ɂ%YrsQ۩K,9Kuf.䖄M(K,9*Kn gx`Ɂ%}q`}owv,9 Xr:ʒ[N!Xr`%XrȒ Xr`Ɂ%Xr`}GXrK.q Xr`Ɂ%KeXrr Xr`Ɂ%gYrK>sKXr`-,5<K,9K,9l_}`4 ,9D~ EƞKnzKa~1Kn qg`Ɂ%Xr_%6K,W`-l{,9KܧYrs{h Xr`Ɂ%XrĒ[_'Z'ԛLfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/22/edit-undo.svgz000066400000000000000000000135571231434177300266140ustar00rootroot00000000000000}msɑw Ŋk++7vb71"@7 4*v7ALJ$ʪʗjÿ}|9e~{wq}R>̯ήgWo_q\&wlzy}5}tu}oxb>|X绳|wɇL׷oO^Mkϻ_n2aNgg7-d~9?Zܝ@'0nwg!켒3@-IJq|j1x|uA:m]1|Rzʯ:xYɴѫo߇+ uמt5_s-f6+q5}?NVx9[{}TJ{n~bJ^`A9M+&821YY|v8]:cOkn=QN]̦\N㧷'dz#ܝܽ^^ ~5oo\JqvS1O}j]u+\ڶZ h><%^~~Xi[\,߇.hW׷???׳tt G}y764:Ju4'`y`}0|쇓ЏDGos>Tm*Z H{h1缩?~9kHlPNX)M-^v{ ڦ61Lr˒I|SmyL`/fg 7fg<;9f?TKB3;SC$%=\P-;xZʸ%Z%-r_~?0>KqNH6w.vzuW+Oc'4@r`N_mpŢwv7߶حlsM75K/G)Wð-V՗"5*nCbTjGsE-ZբqyvZb/jRn_hj逤 lw;r о3TaRv2y@?U(qVWʅܱ %үQ ynjIGH{ykRo#=JKNE } Pp NZTGВQWEzu2FRQdcsLIѼʉkS5Uhvfsq3-یX>$` ϞNt;E/"^N?pBP\@rˢ.({Z\lH7Vڊ*%F5\c k`Փvc ) ?wwӫuy쾖aُ_.=)Y 3*@u 9 'x;VО,N1&$R|~\N(. *@Q1K%nLSpZM79 69Y&cÊY$w*4eE/jdr 8X뭴Cڭ=ÄZ&9t0:DTǩ('/7wg/]YVQB҃}[lƜ@+f1$;r2BRMeHhlw'93v8Oc~IeuJܦ!9!d*\$JMe3soaä0X< T @Gc ?M`Ƶ ,e\[&u(Iz>$=<\IFYzXBjީ]].\JQC.kr+pRKs;[ÜP42#ҫgPd*(=FvO! 1[# Ib^RȋI a+(;cpa, FQcN(H%}V4l6[ēF>k%>IiOS 19Z^zZli1XBA&0SDE/ɑGRпvRt‘Ʉ3q|,8eI&H Spxi٬ z m+2#fH ,hD*1rNR$668?DkH%:&'o.T2\KW3Rd1R|G9"tDW^]K#p3KQˁ7Sn{/u?q~?yEw<*TގOV>61A-IF&񁞎ivݬKNJwK 7ŻzqC>L;^=|=I2dj RPnt?uXp1-)5XR&Qn$ؠ',"^bYdY,@̈J,jyŬ*3r֣5 #%'%gUgo"sY #ܓꙸ&)KR9@AQfx q1e ށzBZ1 s;?ą 8gwlCE.'T2"nm}:mÁ2n꟱qu=/>̫#?;?OO8p7xmu,֝ewy{9?2gwpq݁_,6g2xw?jTH' 6z~w=T$wG+%$VJT<`i!)~ZJrmc+Vy~b=C 0}6-'o5r{2]d #(>y G 7$7kʯ$3`n"~f?6j*ђ)TPI^r )5Dh̹MJrlye Hi (9Ii)5ܔ1mP϶P6{oNeL`U'T>A[dʸv|BrO]I?;O)*#LH(KvP%'#\xGEm[h̵(vP͢Κ=bL@k_d!N*k78l_4J{&SwVޏMg\?x|3}fv>{*}-\淫&m_9XОmvn_5qYou2ox}77Ӽ ݆9t\Bԫ1mu|fԋ_h~zy7_g4b,nneE7p՜?C\ |Ni* -e]b:.T !۟7uÓilOStg}'}È8bC'o{p":&cAF9r̡^mޮ>(v~觋_旗ش5]Y}ՍqNl޺h2/@BmvւxnIj-OE\fkȐUG 40+ZDcIGqkdS)yu3i$z$'A5ȁq9>s}AS;؀7`8zDG˩%" Ɣ̈́yR Ж&!hmAH[="S)ɁrԒ[am4'PA ($6r)]o,bRz'FI zQ`I1Zjg% wO ĢL,{Q62/G!Cv%Th<,PA JI흓5U,yC]Ĵb U4FA#&奖\꽲tyƸ٢}R;Qb_YYGɴ^.!q;ζć[,$GÛZϰ{=x6ۢâ} <o |'|B,6' xbT IKh0IKJYS$=^4\y'v$󉅁5m΋ zqA Z7z>0LNvr2745L _䋃Ҍ=?2qx9}/|T)'.Y>K-[]rK)_<勧g*L$g2O ^s*j7)* \<|С yK LUS\Al%(g`%zR&.DZ]Vv.j` XO% f<)h2IT<{`|aIX6_\[w ]8!R:< 9<)eKg+CjA|A+@^Τ*q`2 >jt#!h$$셤N`\BbYL"ǁ ?&+xxW3uʓҀ81 VrACnTRFĵ2QljB8PfLLpHjj%ȱ✣Ħ)c (J"&~%Z${XIِbA%8&+1"y0YU’Q3- Y l.ė_Ri1-%~wX0q#2jp)"IbG1VJ~}t, :ݵ[[h)jwIYB-+ 0%aݡ(lbFK x;0朡MBcJ*c>ge9 f^3k*4 q,Ō:t@ڱ;3fԠlKK@$/7kI=YnJ pnPc7J#a{GnSW[RR*r/S&n&+&puV0w^g5 SL4dZCGs/@W/J~:c`c+PyXv|Xzh!,4,:#b)X!Ӈ[ZLhxDZF`hcrBhtqej1A,ܐLޘcUc@ XZLJb aye5FDĮױ՝:n3)hK$0 sL<9\yBxZ`V4*1)bŜ .hAiR"A)큣.5. qM*mz7H%vFmRt͓ezt(xUBa7%YOT1)aAjQ9aYH$:0f u䨊$ "R}Q$vjHKEtTAqؗ}HI6FV֌%) +FJeb$qT)ľJEb_/aT$°HU^$6.g%Ldy)qɇ2%ߒ)F l6>dFdSN<lyfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/22/folder-open.svgz000066400000000000000000002640061231434177300271330ustar00rootroot00000000000000Wz?G FN]ȁ9 "G"zkIU爻v7_~ݟ21Kͻ_~_?N|t躡_~Y/W?ٱ_&! @0 O_㧿^z0 Cfho(Cc~oye4/}B'ş56F+q/c _lh@_Vֿd}/o~;igf"_gCÆ?,ƼcUCC㧿Mt,OzGtk͡;v~m{@Qg}7:D~)oN8 zegmmOI6?c}x8YIWp#-L_qMmu]\_;.\1/5;βDڳd9QYugk tﱿ{'|g'ϊ"8,VC aeRzqe*}slñ_HdEC{L%vU_2ǦToQ 5!KĞe:<$ <"YuZo#6Wip$>aǕ%?: >UQ+=RHTЕ y Wh5HBʲ]РȤȉWm#]c.2:,Peh hϬ9"鲬ݝv+wzDh^jkka i=ummSv %պY# \F!/;|ɘ 8!$CT\o|8 C=k,kP(?hx<dʝ;?1Բl+UOLq@ T1˦@l6Awӡ52xi^ Pym?p(K*6m ?ٲ!x\+Į~y+QG#Ew9M!˜)G†w,`PJ/'xvJ_W6V!{ ڤZ)TT#=u8sqS9 EQ)c:@4M|k:V:mQ{O;sqhgFya{Qy[=(]^T,q}2W:o]NoC"ߵg1Oa@`mC] f$/dTm0LY]'JP&P@Y3aw@WyTJ%w9>"6~%"% 1ăɄ%kN0z+:(8R%plҘRl^l be+K[LN) kϿ;*ʑ"4U$Mj' pkhtFӉc^ʧΫ:Ay}ޢѹZIp=[K|sgϭD<̑Rñ28EA=FFF䔹@8EPtoLC-L 5ШB>6c [#W9!+#ѰQ:<i̽/g#9l?^ ; _=kq\m]9iBS@єo~>W.IiO;Χ-~ToH~4*i-_ùUQK܎vƘ2lk%SW:o8qg7זJ6ߪ>@C?3_p] O# -:♰_dP4)(fDw8Ȳ Ak":>UX N=:VvIzs*2fУO$Pr. w{z&OOlf-Ww¸0+M@)ڑ8eYS ?0-A{}9LWaWVHa]zYL6!wr̝"j'm< BeY?ƘxGv1{9lǔ E= \G`~fOG\w9h4G~+̀r抾 B2O S>xS|ZL\Cˠ}e㖠[ ك$^vX"S.O_"̇\ei讒`s9lAs"|Oؕf>HG}+娈D k}Һ|AwlT쬰snj^iG>iO@\d/orћvl_Xvui#~~Qr*+Ac CõB]X^ l?ј?#ow6,s(kNtIMv7ߩ/@]eMa %RmPflHV| R\=s9o{OK ڂj:+Yhڡ+ᙼWLvva y-о/q~73#\͖DG- "]='2儀i @}? Һ[)x |vرHc(:US甭`9H[HT1_U(Tsց{W%UE@L DO2ɷ@YbWMxPq_]clW~6aa! {ҷ2` }+n 4"v};}GbAy7(y$BQ@ŗU橈(≧UAlB{fOڂz|,w]ɸc}@ɼ30g3F~z &~fAmcU<ɯnO_~C;]Jc~YMSnyT8:ֈd_r\mLeJsĀ*Ps! &az:${itVIC7ҿxN"m yZY7ОMor^}?:P;PюyAI-CHx];NH s)(0hN(*ٽtG~um @rðcUYiWU5S4އ)lM: ҫ%*柟~DZ "E֣ƌe u3YGYy݉i l:ՉtI꾞WHiSMƏ}x`͢;x/c٭d+"䂊g9#.Ha-]g**;mO:[Y@:=} s$ajd>0I-Rl !K̹XJrxmY}o&$CibL\gL%Fg<2(_jJ t1W17o?DZxGθ]4E{SaΗI\\2gI@)H1϶:*&`7gw@{ՍdL72PMA[(ڢCu0n=ǹ{K-4|`ߌ/^zȲ,.vI&Ro~5h 9ZՁ;]u47ʟ)Kd4yf[DЖCOňЂ I axGHcg;]}sNp5LJRRP53Q MMB KۗhiY O2gX k} tDn9!%$Y/A]c IQAC0.fso.,#1g\qOWwr!U4ct MPg*wm)rZ=0ёJ䐺MRfdGs\*>2hfh-PS'&0%(ڤݮo}i+XDghoھÀMeb`xFŒ|f,Ʃ|$ڼr.$_S]jG&[A`e49ʉ x3~-z7> 6kݮ06]ߤ˷(@`:3d<'e:.?Gp賨pSUR[]psn HVgciLJN 0}(cts ߊD }3hluSvA/k!@ojLjlMǶ>r5ĪrwADӖzHmj6:lX2Oxx r? '6+ OArb7{ME_8{yR1 =az@w73G2f?H1][/Zo-D{H[6j3/-k4jʣж!P;6s:Y H8VLLyo(#P|J66.GOs`ZmQBU^G(p&/QE\6~t 6fkӭG}fv_NC/ʼ5od-6䕘${Hl1ca(wJJcet ƌ3W(hjTJ* 2 9Q^.sd.{.IiA>wy;fP2ãZ'w)GY/詪X12)0.za,, ]29,-7qG6W)O߸F{z<QX;m.QW"(*w3R۹K) ӳ:1[y8xP.6EJԉ֠@)Ұ=inG"g;s2y%#Zsj[;!.SSQ;u?q5HL4/zMȇэMG:$D!7MkG$p!ӵ9s f߅Gj6ǵΛ0 \>w>JI>ܝ{߁ɠ7*S$ 5Z]pޜ R~M`JȄ)*@kߧr'omwx@_P6J`Ki zoaN/ o~&*7zަ:Ţp4-[Uo]ec s?eS;3'X22u' aTP*S X77\B7Zi6ؙ/SݗfpwCZ;1Ww?dfpd:PғmhT^n25dӀi7&]? >pw4eDZx4txY;ŠfKRݡӿwŜ /V q1;"6?u_+ӼZj|ͻ/k" P/9?o7Kt;2Y^rhZ&D6S-!K-Q]%X2C}a!Nt_IaužѪV{Ԗ'uId 9ȱ1xfZC5(,~I/_+5S/' {NX+3FHFg uؐ=2vj˼`#GK.WsKgBt 2E+;Z1VNRdmV5v[ 5Ho l2^V1kpie<ˆ^b|H9*QsՇic̲6l<nHo >Nº#*n*U'BBG*Y ?PY3Poӵ_볶>\%IGQ A+ǩ45;%SbkFs9ocvу~*mR j_綠f^ЎP]֠Y+Ov7 |EQ͝,T2ht;O(td.2 ~BMb,2tpˠ;=^]e]mbYd{.P}Ju]%dnI68I,aƐC|zfܸx-' 8=4{,^MpSuUx~ 6X1SSpW9kUO ܗ[7^M,)2g4z~V}}Kxۜt\5xs,<7ѓ\|Ɯ+q|#J"=h ]/Z{b(=7." RwGPmcїܑt[JA&aR":q{Bȋ KA;~7HϬϑXB:`[bQFF O5<+)P!4R0^˰/\-%l&! fWiN(Qum{OC#Hjµ}!zb SW#,A K5=&vT.22B gD e~nUHtd;kΦ}Z*clB'[8yiLK9BG­OtD7P?,y7<&5>wU/dW[6qQh[Pw ݂Y4fFvȴhqMEdSuKh m!dxZ;z[`#|fvy\\7ʉH,h'maL`Vdqb1(ZZz|AavA 婗qpj| 2>Khl$fb/D۹_ΰS*I_mz,OS5LsP*_dc7fV]_fp19CF\{R*x )y~-#.CLU]ڨ; Mz8qWQ7^Ȟxt287 +tzUTͲbڂm/)X>5E({*b|܇U<(S8dv{t7Ս&?sPQBh]۳4Em?:4>#$ YZu{W`ܢ@Vڿ|C;2gd,H5}` *Ǐp9m̐*) 'άA*J촐&6HN_em#i G0͏erU5MBܤ-Q~d;NT()-Y"25 +Z0@1 A Au5ceEύFoy~e||96wq77~wDH?j6jE4xQT"eX7wzgX@!kϐ~QiuY9C1N#0zOd, :X ZVpB/5 _";-YŜtEx3uzq޽yƖ/7 &.؈E(Ǒ>Bu),iIQI*^$QCD%2=iHϺRvf {aj"5}.؛X4ȉ1CMz}EhՕLwWlN]N4B% :_#>B:D ૩]NwObf/9/ pLTx 02o U#yXZ&:jz%:!%6*6,OK⯇OdryfNoeSs#n/E{~pc~4>RSMM!009FC+_Ihs3Sg}GzGWCϏ?^ ǂ2dُpJz3Zo'l i+[Ლ&Uw`:S4ꮅNFd(Z(t 1\vGԨYI%GQMP*]ISSv*O&$ߖ=ٚ^ ;7JE Hau@깰]zuŷ.73b.lrR]/a'0mSEXW=QDx$y$"Qkk.bR-;,v sVu2qQ4Y3N_1$v}CYw බ_gQ*kLtx۷?,dBprIJ#J;{R@4ՃJTvRkpo=i*j :fK"鱔Pt+i9>&[KT$hpykzcQ␧)}-U0Nm8;Wcʸ*{#ξY45Cf C2!.h:mxk;8kpCz!SPس|]quklc䄫Z!lw/fW^t=/X!Q")0JF(vI0: O|beE kmXhVwݙmDWM0B)*< ㄍn7XӮ{)j'T4r! ]T}Eq*@K(Nrs$`Jcn[ Ǽ|Ë2}r;S'Hrqm8upPh烋PFuNkWKYGkK8w:UgqTC#r$} iwH| {DY=Š,/πo%ܼ4C~5qYen=QsZYT bYF5֭P*U7P<EC<8x$D#U2f@A7}58{[v|؃x@2v:$v'?00^'+^=div  qxDH"Xc>>vPT)j_[bZԭ뾟ޅ$,`.U%t ̰L&1Yku5b\ l)|a DА/̛K [7$Y)盜7~-@;mH <|=[d3_~#N*C7>m?!.]Tη.#$OaoVƋ~)Ïj3JpX+<ffʉL-$`ڭkilI%x10Zco^ i:zr͔,+gTŨ84Jbѓ "٧Ie|pH0 j*e97h%;ߓCbH;{v3S 1{\Ewkt'Ycxh<y+ot6c9~q" VIP\H8B}ceϑ^nqCB$؃m_ %}q ; Pog7g;.B>d47O3;+kdpz܂[9:ܒ,QRͤ <+,U,SqG*|x1xl~Hot``( rH%JB[I_w?R<'ᾎuϷP:A^} 퀹-5ero䎷4 砞V҇5d{+[^OIcnA/N X^~*Runm Zwħ/1ͪu n.oN +: s!5+O.S7z|r|mm07_q$l4x( ѱ1U'#ҴQѯ #%#k@Jj9kF0oK]RV~M|8݆tθȖ;ƷKPG~`dkdYg57MrLiD&s&|>|<5Gj@'1}.ڤ^hۥ$*R,2S-_ bk㻈ʠe,dRӜ~n{^ղT:x_$:o `t?mB4!̻SwXAqȶgrulDc -{"(\y{TE!k<5ƙ Orf[`zNO9<|Ug ;0Prb~iy!2ǵ,] >(j:¶1QE^y44B#E#ވ7K+8{WL2#v~"+T+^_ r 6S \2Jsmr]~$ukڇeri<7m4̥@bvOR.cDn[Fm)nsP{%PmJNz7-<վ(<]k{L4[ F`۸T* UDı&phߟ;NZJgL 2k‚kEgV7@Hv(ayIA%VմG|wI}7BÅӓe$S9}̮㝻GG*s^Xis7~bv|i i87az4Mh>*JdbH ~*;❫yZ=9sEUģ~|9tJ$a' f{|3ш;RCХ/4w90A*"xՅ)#]{*<$8 zdv1neAMjyb s HB^=#{E['ڞ8V'/YWmb$9Oo+j=6á + %=ֵ(HkbRx[$ 9\$멺5w.1P@:U>hPԗR[Ic;CSxH2+dR@!u.? p+~>/e3Э%|D+'0L 9)erWx۽drI_ofBZ$ r\`,wh쓸L~migItodVSY;(H}ƕn"Sz)#hj\ŷMc' $ষCܱyzA<"g E똻.L%g[ZuhM\GVɉn++ M jXu*kh/ CG-8R{bMW,-X (TjeU/lky] 9{q(og4.uOwa y_ |Ehb.֚E_V9'UZNOz ^Q򑛼#(>r[Ʈris/-[~Ĺh﹵'s+=H7$;]Ҟy@pkOᣙqĒ\5{Um'|Cɑ%4 $ u"TU5j˪TxE7ӫcLr"jd d1kdi?lI'o<!3pc۬7ik̬P4-A3ikڠAe %\$GWM=®'Sq3K*@XNߝΤm]_~B G=RvO$q{f#_#⟦]{XNڌLW'OWQcq_HӍ^ޘ\dCw_S0bt+Bi4&\›K pCAi!pSpd}ڔ~y6ti_su>uOu⋊,X>٣WFU1t_FNNVq\H;T)Ank45fn{+ͿMt%i >[h7h62B~@cPiTJ"d˛n'mIVû^,jҩy?kΜe-_@r":C[$…ROlv퇐aV|E-=ry8IR~|8#Me $*omJx2CwZT_:2n(+U45!7|\k8SsC&lBw8f?Mà)oRXlj_̻6ŒMm,,2žO9ixl =X+flJA z匴7-|~Q5dSEE@5t׍z, :S'1~HƤZ;IxV8o=B+hKG7p쥠WD;1;),μaIk) f^cj5Ö&gNnԑ|}R]>ҒW|Fx8!4_aDA(e7 ֯d>c.˙/ ːQjMJ۟_y J_/ 6<؞;W*eԎ>W\YP~>sE d[Ys7#])<[Wb'BSڀ|!Z Hn|\skm~qzD/vZaytw0FȟηR ?0Q'S"Yl}ꑙU*MZn9(|9m>F!-kՓD„(FY'/bpMXI]3SU#?RnT.}~%X/'϶џ`)ӴaC0U}?i@>^Ig4+$ySBE$"AϮőy-bЃŞ` io߸~J~  U|xvb+uqVZ` (,wLyʵ!D4VF;F3$M{E~ղN/e\(\C n(J[ wn\fpKSj_ԂyfI 7Sn'Pf@iɂe5"ƿzU=\_wQ?*w`pB;EV<[ IC#Ż"I}1ƴ'I ~_ZU4Xq[Ti={Rp[39Y?T$]6")h'\LEC/k$wfGfD ,P?~fr&O3qhn1e}OH#KF #6'ZY{[ԫl.hˬI˱^3K?2RRF&_&@sldT!&Ŷ0ڿuO~P =BPegB"`ٿrJ2-$ZDMүƐجD#k鉬U0۴5=%=f5THJ)F&e $p@<0lT]? Qeٱx(-o_g_tLNXO=j ֋9Jɭ%|)ґ5Mj!VVہ5|sw_\4^>m~="y y[[J[e5BI ڈa|52R}J%Kӓ$=_+f Β>,dJ3/{}CzIg3LH3&m=&i +.ZD']1ܶ>#R'Ֆdm|Yr+^xV1pPw) I@&ـHP_+cc j%֌tocm7;Ǣh 3_}sX?zߓ%cf?vFև%0)+J0>O>f1{O 4#!8?i}m*2B pߺGB%ܛ|C37?(q qޔ6u#akzBx4}ƸakLS ?sCNǸi:[=bIr-!`".=NITr;.҅M~YQ>Z aKQM-k{^UX0[ұFA_f6i''k%8ξp,̚4;Qњu1WW;nz!dAkVB^ jZK&E`.O0]jfޖb07븹De~GQn 9lT꺂1P$i)ȕ E 4܄bh 0.4齌c~EZ_ߙ̻t3|;Yd8 j)n*PkC{^D _'~Rz''~2!zT*z0$N1Ҵ¾DhϽv-=RI1hg-z+PoW9,wYg,?O&eUUUg_[O^ GXk o+վ " [e< d㫄ɵyӀ@O^5fkD_bULDȁ9ޏߺ%fZY2k{D$YWF1I6gfT,@6`7SNKCovVӍz`ڂiɷk%^QdjԐ_ =@ՈAp.-I't8Bσj# Dq ^:l S*3iotBB՝a5ֽ8)R[;OܧH|Uj@7a><H6tv-뭃j" בtX =zΝU 7sgs"c ;3(~hQcI/v^6o2S>s{<*sB33zMb9Df^wi/z4as2QbXfJac 39 >{MX5;l[TL1uCXk*L8QX8p㜛rVMvqqFjI[pSi%>$wl@aL xCKT>uni2!x?8'cl [RJGPaiV ͗y7Uʮ~ 4E7 qtTX3P[iᐾzA\餛p-+J)r~`nB8Bn~ H6Q{Q}Rag^J-D"jatbpۣ֤O\H#<~c0RNJOtZEY؝-%+N`Ln ,9OzSv6# K'O&Kb֫5_jh qN@P) 86:cPC)="x''{;ȍB$R3Cϓ%&C[Yrր'0[8j8sևת`4;%j_4,(/JT[\RƁE[^=&V_91=0R7Ʊn[© #YVYD%YaSَvz. ^ x4iF1ã?R!lE(}YlƝ{(55d1^Z=rL}3_OAM="}{dppYùL$4!WBvMc0)Ӭ-". e!fڜv@m)^rK@ C㿂1?in\o/}=oh6p3дƄCBJJ槵% U(AʥPPN"(frU}fiuvuwH̾g9<ˤ"o/9|KnH5[N,MB D;t-كH<0?tN8K x6xM1vAFBSX D^rCJQǾGe '^I G('iw#?Z_)b ;^9۠O}'T*-V5mEkLڅR%Q}/dC|hy2C嵶@'6<_H(¨lM;d H5쳚7ь3pkhV;kaL[m@%O񫈤<>J["2KVo٦Ļ1Rdl+O(3֘M`W \.ſAub" VdNgB"Dn}Ǹ_/9jy= nsk@ I~DTqvvSő,RCwdKpXkS27ǟ%YLQHU@Љ`CͼIEDKUq@, wGT7>ڷB2"0ܷkU9)nL6!..#y$G|!H3;>*U8 RY]0Q.VrJ2!;#^Mլt㩔?HZ]$+, LخYLY%!|/J]0[kau-f= ~!<;Me*b#Z`M!;)}~-r885 u"pF\N BFTq@-rAzuk..MbV6sO6Y,y;(͈y UҘ& | F̔WYXH/JjNJvl!^. VCK }s*DD^¯5ߓ%5VoioP;H:dk TO^VH]T| ȝ3~4WMN쒚|i=Dg5%kD=1gFdv+eI14mIdMљ]TEIBFkK'TV0js>YTm_tN)vIalQ 2+tj/{`CJt"=_@6Rmٶ~yO J5Íj%,v6x)e@R/&%Oaҟо5uᣌnt_6Av_fzNE tqDB iy4`{")運PRKl4R-+gd<]"G+p?Bg.y2<"Ja=MA?F4HP| -$qc[ˡ\Pcp%i[Rx"eVPФ r5!bмcdO.f3HyDA=!=NW"*]/{ԟfy$SspGup;q00E6_N%m^7 9F<|'aXZ&@@:F*?STXS ExȀD?S!l!I-kQtLx.>%d[$z=gNV+7s_5oeϠ́f\e+: o4ao&r[.f"O"(߷ܪ|z^8޿M~$,(%&ŶaI`vMɺW\H8baNL7^_ 33&-hm{V rr[UΥ qnFP#鼠8Fd)gJ/1A1Yۘ"_ {1Nd*UR1r {=E۟Vc9Ko1/)`ut0Ʒh 6.)iM?;6,?2üqR@r "# pg>m^m8a"7qe7*kmiot ޴"CR●ڢ!EůB*ri2b O,Y$0,t.4 =GͯnV֏TJ.$'-JSAR?hp֝Hg3 96X|į([P.%U;SZx Dv'pp'B>gv1~wiN֪Iɩq2Z!}JJh٠e?@F 6mWzo 4 $BŔyK\R{/Cj>=7kine-Gjmpm<">:a8_OgZX› 7 y#˴%``v4f<2 Zk4I ߜ'px{.=Qf]B ӹ50.;w,Y\~ 17 |N72Д9]rAL&:j(R!a۪4.2+`xМ`c1QQ0 PQ{UI+p$O!BO(9]N}9zԭ 'o ^n`2nCwn;ShU̥};=*n06Ծ`Y#p*U>NW3h꽛ƚ3]O@E2G~}khgj? {+"KKgK:HsgQMoޘȳZt~V`,MgvWS E?GzWVDĹC^R/̏,PSd'5KCĴgQbC~-7crE\il'z+׆؀S/KBmƽCql($kTdXWR&d6$ Q쬖o^}#3NI#==Fo<%2[ ȇy)'CvH66Y4[eJב]~__VϘ=,bŪ~e bn?z룗Em*wGB ]yIoM>\=rS\'afo(y B`9ߕ9 ޼ =BPxn9$r#]'I+/ϧ-{cL]~ug _届Y@U_?Ew+U&jIDW@$%9'DOrrx(TM:?IbaHr>Єra୹gdܯ'6fRY3ؿcP4rK>0-l'hQ?ra(.PHS}VYSN njTv:NrrkA]ƦIsony=Nޘj.ևHYN__:!(\wmd~^#fIɱZbuȤkapBEK:_^ymj+U_銼y - }E!^9.:Mڔ6^YS/#zhY<}DPB۔)fJ>s1vEe;E^Ns?9ͫkĶ9iv'$ X٘ᘇt?tf}DKuoB^WA@Ha cv9}μyQx>'2=9D"I&aw?Q[锪g-WEgoײ);IG ɩAu̯sq{j[!M&+4e-rz*סkG{Փ*%\y" K^=ݲK OB;DIUkr pmrq*/\xAt1~H DO]jKFCmri!r"Elupf,F]TGD&d1rQ##DM`^7Т3AW-߂꒪hECӲ+ۍͧ Yb _]M{&Z]@Z65ohXs|89jla6 ')8nxE[(#(&߂~ +DJ5N5֟rvCL<'zȢԏ=%$f:пF Chd RGXJKݐ+!sJ{Ee>P<)!z'_Y}C՝* {% ׌2H/9ԯlj J# i^o!"_4hOsuW;uJ'8:X(ιg~ev&vEpc_~)usf.*4GYw#` ƍqv qrNQd.6sg 凄HiuWD~ɿV^p#ׅ@(,?kcr>"ơaS *05"W|JOu{*5p?t(Hy%'t_B&2 lt?D7)KgO(&u+!gXg8bQfs5P,"Y2@yxUQD|C^Y!_rK0`*s"pN!,+d֤-ʏ3DcZ)"审r,GP|Jiz9k2Eb NkxڶT3B([7S&ۺHr& Q@]!kLjuV,A| Ju{%b=|\DsU9pvw/Fڄ5m$.SE>biv-U'{!)@+ʚaU;I{Fgt[ˎ"!z-m$tA*!So.GIsF¦7gԓw)hPBtnDzeg$yV@1ehn?IL;5 J==Q#tI94g~OXi޿ɶ>W~3\GV  w1?qkuPI=76OO. >awYίWwOeppg}Ŭ$TXa]PiI =C1hǘK:v*XBK엎47r ,ls| 6cOc!t0:>Yy߃)PXbly}$.g I1Hbii~*2c]lYJ!% 9n3i2ILy[1Ѱ2nx k_XZCPJݔcnAeM/gJU/d"o:S/Q5P zIJu#x$x;֊p}\(|t|# eߢ⬞]u^vc7j#a0H;0@lYd5 X+EqvIP~IM_NL)=d$aZ; (vL R5,QduRwhGO|1+n LE+o3GLPv yMsx+m̨Yc~!>qp:|f^[f*fZ)۲D$?~8U10ƿXW2ojP}ISV):Ν`^tz1]7vIEx;![[,yv,TGF\'6){.)F^Fg ߟ+<]f|;""AWh='1A3t_^e$^0"׉e rX/AجrB+֧ OA@m5,d|K,3 NhH#@Q+;N%Z.|J5Sp?G!u/8,ldSof•G"ScZhS:fF. R= MBs@ZŞ#gϋ\n~'VHB%lOؚq=<{lE.2Jj^Ԧq\6LMkVcݿz>*T4`Fikxj/N_Q{I;doqtb[Ђ *{9=w}0뉈=S uy}:>k'če3tk<,4wǒ .wZA64xt1-$ӽh \t:AdR|Z{s漛7$E _,p ?>۱~ iAp)f#lEo-~[ XÎɶKWЦ9'Jrwmdq΢&JGk;d\c=cRUQ_,Sش ȀԠfr]0!8U=ܖngNBjsBͣr%ADwSix}Ii CvxPcc4/B}EZRzy(7}о;LxCJƩq2L&dDli4x4nx~CwkяfUc !V?4&,]XfeQd8U X8Xp_>>!qքըé $nyJ6l{(/(Fq&𤶝 c'%̊M8̸,ַ,z*̐|4@o>#a!pZzѧ̊ sik=ʉ'䍨ge_\']}?0 ƌT|> a[@mH)yg+ζ&i@ϯqzEMMz.yFK*9H7 ,,pBMƼ̜ $] 0w*on(Bn ' a,˙OT@6Wr#; vi{\MEL\hp:76Tk=c=$\kpi*=Mȕ'g'd1躪DNnaXN_@jm1FmuǿF6sF׉]N4nXQda^ē҈HH¬~x\~Vsyyidf}lcOs=,x*EFt-l=~ zސ"|љF\}du]LPDO0FUnhRƙ :ˉc6@6qH{i" ijLtc76Q̞u]D:w%*"=U3kKĚ }OIk[XK?e' 7>g~}#Ѳ[ a&3$$' ߆':g/7*-e*4ꟻ~u3Ԙ)*A%JhcNiCX~ckE2)^_ҁ՚oN/2<%NJ['32w~@ kkj+!ÊEb0,V:&R$5Cc w|,TxvE Anb|T337w63k23u" }zhzzERa~P@t ل'Ol=e dӓ$O۵u]ifMѿ'M)瓥gb1_G:|!Cvœ#r /7QmҼ FPnsAX[c:DbtD O C#z$P8fM#ޗiqkqBZ"FΓ&4P Y<4eD|7XӶC]=WdaM@𑒐VIKkjJO'u5Hě#%FT\t| Λ/f[zK *>S +?m At!+%Ll >roe}b*%b 7b") &tIw&Bi [LBFd-\E_$ֱB`Ft {l̀29adZxtqfpp :E"㣐וwqs>p,@M9"m؁ ӃTe)\*7dc-5%Gr lB@K?+W(rGngz:BĔ7j>E;2[{=Fs.։uݬ '[+}iXMP/'ƥJZ](7߯g_5# b̾0]>H=DW )hHz w3FgF\Mб!s% 7X^?Q;Ḫ{#^HZzΫ_"G0 (@ NmTJH`M?>V2ڹSwI: r6:}|WALC&蓝m'P̻LgIkoL}[1 |ź~GXUi#[+O7Q@rAVӏc!(+jhҼ"22K+5CdF4n>]~NMWGcg>oH )!&a6G>gfkOD?u Y ѕkӸnvŴBE^zM<Y9<3yG[*Nmp΍na>&ב!{辳)}= 4I=)3p HaRlaK3Ai-heHBF1exOTKĆ$/16cXL֓-霓{,[vlcџ|lflx;[N'N::IL#hapxicm| V@6L!\124R~"-$ lo*E{z}a5ݷp5ʔ.xaod%*}o{mleM@E"Za诃l sd^Z%~',[b{q˜(޷suJ)0JJ߀CNPǭVJ`]Ѡ<8meЦVV!ڀXq`\IEZ/LJ>}-)$:TN*f)T M?!ɿ -]ٙn~tto520 69%)A.(N -<)e:M):Z- קQ<M^!RJ&02.Ij]rb̗B&ן9| ~t\bkuV̼G'4h߀$V hD8o{Ķ}=@cZ.,B^:SsANbER*ŶUj!% x@@(doY0ICc㍙-M9;ِ׏ͥ.[qAԋ-BrƐRH]GFbx+q{}*exxOǣ, |&4-"8) ɳޥrdK.3K 2X7(D2Z$yj:<{[$NW !n)Ҁs [aZA1{[xF} N;kTV.@2IR@L&"+g1|vu52#̜6oX/Q7Ss-ti6Jt6w y<(j̍=[<9nO -iiǃuρљ)%Gʚ61!Ѿ+I#=pWÉ/neE4ropTё}/9򸈞vx[zY֋vbb"6:컜eoB/j`;XTV;u 5r0TG=8m-b/%6̏'(w/F/?2f4c>QyEtOy) + sw/ /V*p\_|$B #jrK%2@L4阨ؕ3ߜAz16ӶMaNIñMᣑ[.Q`9fؒ .Oe"%=A C^ o`_ޓٌ"^C>2̟ԹN0|:H4 teb|YZ[cD5wt-WC!:nz|@8֋LJnDޚ<Z^qxFYj/hF}p1+V>ɑwzn@eefԪ ĝaٹ̋=`UI#\^h̼JݙZIu^8L;Ls԰0h"sё]0^uqPnO`OAWWqX]v1VI>u{kS*ڲ 3}-Q?ʱhC<vxWrg6񭿥,إ7hf;( Z${/\ÚpŲ6ڿNZKzj s[ Ag>mf1`B`OUӞq_kN}zȎMoK(* Cϥ7x-n훲"t p4[{+qp%WS Aywzb+6!~%Y8&M.'e!Gc@oU%'_M #GObgBԐ#dB̿륔i ?fSb-Db|ޫaJVl6!XEd >^hlH;=Nnimdt#=HsH+K?2çK9z)JӍ~ȮZ}VshرoӅ$нf<67dA3.s+k@G)Oß}"Wz`ifl:t2Ve&a$ƶ-#^; c"j=.u ALe֩N7vzN[7'u5$?7"M lpcRf`塚LJCI0 f[Ո$e'd7'7, ;~(2G-khϡv߀Y}jBZ<$Jhα๾Dӡ%JÛՓ'o?'bfwٿDHEQpÐ57x! Sm8zH=Ol_ju'9=o^UP u^zRH<ʦ#a Kp?1׷7?WsKhx%E+Ql:#KG܀w7_uu}z^U!h;L3-As\TKspz%eoWn1o*s游"J>s|HwW:(zHh__' o _ L59ʄzD}D@)±Ky1}z-DuɜJazx@~Ɨ'KHF,1zn5K3xPt~hJG.m&}B=$fQ8 RS\}si+uyp-)),&&R"e S(ݠׂ~*63RAډ|dpb΅(-LuY7񘃱u}XaFB+ 6 1^ґ&[qVԕio_7ࣷ}?ww' pUYw"P]on~㏓$kh~WE }MIyzL p`Ej\bʔ'#3/2}ZNTT(hD3K>w2r==7 ~_BE9iHB J?䆨@EBp[A+?UmU3}A=kNeHZ5O(S,vΦ<#0Ϋ= 5?FKJqQó{*?Y$l2v9C!@ܔf^4HM  XetWcMa.5sTWr,aX|r(e%.o˷}d]A&%֋frzu5S>=MΈPvlQ*VIݫh3ߋ8/5Q_gnXVԍ\bƸO%T@w*zspb%ZD|/ ƏNC+Nw<=gK4բ&qP=Ss~ KIvwIFzP.QվBwv_pk?0S0 @g :mB/ ^/<ו6f1srD0p90?ia=èfB#8؇Цvcuh0SѲC'kŎ]}KlQabzilTyH`c-J|<*p\1&_/M;<3k9Kbs>eVu'tI⊞|H쭴=!x>~.|"d;%#EoUKI  !h (|Nnn'>Y7eL<>:i̷\IV% sTc K 5-pqC}A4Yb-͍>h!3{!.lc}'h=ѿtjL.Js"}IXGDs96@q<#7+:6W9T{&-ŏ쎪t fqrtuY6!zSz p=x4'D4#}BapRBqRΏѤR%E}u4*+dqrॵJ:ߍL*]/M}ůQVW&j!,I#CW-%5ʳ Rg#Õ#WCcA}+rѥ!)sN Oݿ"ӆsՠ0t½(R?7~_L8,6F-rãO?WJRt~7a2y\R#?ݤy%{(r8ғWzf'}wv=557dFs뇣K@{j1(J`7jyA/¹Y NJ5)]{CކjJtkm-ƣ5FS&>D|WbwWavtJ/*= $p;N{ȘKu0٫Q5k[^< nćĈͭL>s +6>Ӛxq(YU0*+׳jR}nNso7T3uäUI'TycZlPW!w/T6^Jά*p״+DQ~fF̨xhq_ۥFvIBSTer[$R{NpEXsּSw;o,N|4-)MxX<) YUOZeo+GXmU/k(/ /݉[Rxul/kD/ rX,BȮ߿qΒ.} E}5f9B9}򗽱Ӂp%L}reARQM\0z?2"r ( HImi.z7yZ 'd7G|,m^)*4% ͹;ZnTj:܃#̼+{oUP{ح_Nz<7de Yza ^ƪE%bX^/0 ۔+5';}&b_bE3Z ? ߹@=$E[Lsox!ǣ#4m|" m>B!񄐃U`JB/h?HVTRBgR,A(eI Yܶj:.@ʼU~'}DvJ\oG#9v\Du?}|;vzq0=ԵEb4&N~2Hʫ͢5z7}>>%iJ5}5dax_ƌZ(Y_&T4pYH)Fzy'23~\_"\'{jdOݶn11mv c,Dzƈ`4u~%"Z[$ҿ`Gx]' _JJO(2 ~TO<drb!V*H]uj/k-RR*#0-^ZF閁 {'):~qvbx BW|g BDj^U^Qs@ΐiK&c=^u8S bXm/-V ,v }}uW"J*8l~xf .ur0TV(Uu6HߪUg#4 X-,Z8"$B`7fCp{f=˺ EcvOflXYf;9@Zɦ~!Stjc'}=S\jHo\(^qd!% asxh.13oʐdjaT)#| ZZ |oZFx Gz!U|DMT)mo#IjR=&U 8~B %eP'TDjA^ڴ~jaCPd3jI[ ax]Ё;`\/C檝ƨ+[hgqIٙƂrK9lыP -ֳHgW'6}; ((C1_7 O_*wW}ݿ_0.Im*y("`lQB&#^y3flp/J*dـF J_M3a8se1ucgEܦدu^&D3-+By.& obYFq'JSfH7m7#n|7qdP橙FjqT⠸K.2vLb"S/7RK9̍֙rAum;/^pXH?pñ "}!ܵskA-5\9?H™J3rr6҉T3:3+LL﷜ilxT/8 q-:mm~Oz?\ͭ8~cpc9eP-"ږ-YaofdžsG.\o~HU_?Xr?@\F~NKiHR7k6`o_'H AS.HOU;&k+|"3YڼTB$?U U#*6G&U*T8\q]p:?_Gֆ;Y-c {s8娫ؤWш(KއMmR JĤ%u@+b~"SrWv(ѓ eZ@FV^bV zϒ :ߋӟD5ϻnۭ;ϟUwm^)[OO,F-Ӊ#WBtz"6L]rDǗ N Ї[~uJjLG"pGfPY_lXg};?p6ly~lqJ5);>xo J: =(a`̞m҇1} Z,(堕9Kl{="=~87oз4ټȖ;^M:C6;E/es?7E^Dm<0-\~lNn/}i8aM~dN-Cpxłd=_T(iٿJHi$?pE w a|yGR_OyS|)EzTsΝA3.ῬVxn0 T^Dɻ^z3wlq)^7[w}{!g wyH(iV*ɚ__)è-#7rP2^ƽ]1] &,q[LtqH^, |,5 ;;HBr'(㬿!U!(P&;Hi" aͿozbFwxDf$ |i]+ JTБ.o|?U3jzE! p *R=E:÷ӿRL}2yLiʫ8z~yb. D@Eaj$`IOPF8d.)ɮ*@BJ׵?j!\&]WfSfAAFp4]Ŷ0UEZ2#g)LaK5~W _@B7W[h:/sǢerN>T=S`Q>`ܱed}0oC7_0`}o^<|mEM[qK%*YCF JP_ʑ8J")vI^1O.[K]4[ ȊNQtY&>2G$GǠևIbMs?ҡ7X0d~Zư2@ +!VPM\ |xU@5?]%eȽwJ ucfY]{ѣ'ɰF]nNt}0*iٲ\eO_L"!$i~4[DƇȹ-5 ?Y~!HL1HPLLI[<4>u<+a2\tB܀TyXgz_Qlɒ|S~Fw APx%YyT>|qAITֵ=$;V9L*Yk2B"DN9d}wd&̴[w2&;!DuFr)A+LLu|r,VQHYb ̘|n$=F8 [腬E<.~MIJD}7c,X7`t>-;כ&m] *͟'|Z^V7 i̎NM k: BqpL7afb`r~Be,5*55Za`PɀuBڜceX:v1:,C=$V)WA~ՋqJ nImoO&jHB|̑4҈ Iiz)f?֪:0o_{ӭ{\//Ӹ偟9u,e!JҟTa~I&=}1Z_cOk[m#{/ rIRFOF0(G@-hBCL8tq?Ä֖T'4l'(3AIۚREr  Gb@"/`HK&j^ ;CyVgz) /D}P)@֣ -h=F^-g8.cɌYyV?y|H tº<{>^vJ`7&} .jt/m0GXQm8R?5e'v^, `_sU"IR#U=XāD =y'Vdon L!#>䊝{A5CXbjjjK "&!};"c2=K&X367!ېBwD'`Mo?WpdYsyЪJ$_Le?3s'd KgFxx3jK@i/˿ nB.buFhu{Wo+tBr.!۱{Ѹ6n_sQӀ{c^lo:$BuE"ukkkӸHez|R&x}s=9-vcἛ=ƸnY&gۆ׬KȆ]*oա/l`BHkdV $Υ_9't$ԉkz"ozBauآL2W UK5HP9Z[MUcͶWb;ӆ Z0 6]vd`Rz xxFP_y#+_b@րqHzꃣ>cK |u|"Q|{&hu'yU UM1_|& Ϣ,IGP;*g3qn{!b io4$jE{7(1p@$R7=/,4Z!Х{VWe Q~fuD솳ZxVyx:&=:7ra"Ќ2_LNl :]\)(V J/ 1(0 ,C Yqjo$˅08Ŕ[[ǫ#رa]U܁i,F<3h/(1FXfk|@at ogED+ jHh cH_sF0C{zͻzsRž(.D[Fķdʿ ŖXp@Bk[S|YJ[O֋ ^_M_tWD히}${܂@F\_#Q]Jl|x?=ŎpE[`uyp~RH,<_2se6\Wr="'yۤdqDU3sx*UNf4Ek WPNq"F gͽ4mNjașw􏚢6_QJK!oyV>O=7B$[ \.q$c4`pvHekY-]7lH)DTkr- J53wd3TۿV׷ysnH恵+ ];Urz\&&B@1B-ahr]uTI[ ^O̤x@ &dG^I؍mPF%_O&b '.*RYe=: [tN8aQwB{Ƒx /?6(z\ u/;!`94>O\Qbq2r yvU3c$(ǥF┸ʹ>.UN'i- ~IU|i:״Q2JOD:+F91}Ţgn^0?J[ 裸l5|#犕|#RM,p^aSz.*D{?KNѪ5@mx2*𐙊_HPl^ThK/|YTb&|^6izi+SU59~^'|TPLiBRk& F.;KYㄋy% {=1ce3Eڼ:3-rm9MTchgNZn}GI%:bkF)6 *f}j@ZYza(R3{deʗ#L ݁R| /88gniա?V+eR)+:kjbpd\E+8[PDݕR5ը`pp&E1rpѪ9䳖An-"eO5P@Q[?n|z+aq@m93 GkG/jM֢t Vu\Q`C{J})?[`iZd "+$Ea uw杇|Q9#Qn1oncÝ'dխk8r2;k!Vv|Y~F$3R&ޱ8w6Gk2ql6Ӡq9&txN.'0 Aև3^}5agF縲⅕&DDo"ҤkFx33=8q);fYкpkX#(s-i^{d"$Լ?1{cpBP 8_7} 67˰~<~G&(`'^B*253G1=\ K7]ПK05Us0tPaOE#Tvf}:n8@폀zu1nL}N, oѓ}6_3Hhx~sѫc)Aѐxv\1Vز{9W"׵1s,U >%ߚ3PfO7(aShw/h̓T{oj,rIRTըK'郩)=aL?=zOaiݵMM WwwvtfBP3w>PЃ\g|qNo/Qϖ@|gs+1g!c0vZBѕLQs X.> Cu/+gNv3,y~:l4g X գ=W]Jku x'ьK]\(+Hd˷KgJ0˾>DžίCEpzV)( |-dl݁G.zgyZPF K r8e0\i=CgB=O鬡]NLlP/v2Gj-- \ؒ9i,(C|=4S0'.oIc-Ԥsp_7\bއ:qcBև{]4n)ι8y7w{wt@[X~IqMmj0C׈VJlh<†XZ+KDؤ`N)EW+o$ΦMw3]Ts$E{:L[_>޻3č s@]?Yɛ7W(AARPgSBHܴb'l\)36KA|IBQW>%3%o$T܏Ʀ&:zNW~l+bI'cnHZp^h,F=}zJË Y0J5?% T,޿Ÿ? k Z'7IBXԁ^X7>LBIuhsPH>Ƞ,~/6[UQc&X}[T>.)JmR9R7e>6ӔPm@T0kt>%)W[ sz@w65en~[JR_DQ L1Kxٳ_h~u-80HƉ rPCO^l3yvʵ0gct"}O0LC5 *G857>[{ YI fcd3SrӐD@V6aZ in0 dMb艸ܩ,is&sдVbwQU?gH&Pщ5xBL%}( ftwE=p>ent9|mYLfѝ>$9}00,otG}/R,\Amț-J4d,"|ݜDZWX:(3*+KW!G#_:@ft#9dQ>Rִo`9JVZ[ܔlT6llF~aG yY2Ơ'ߘ (iV!@w+Vo2-`̰t1߻`Kɯl"Rkv X G}%Vk`ݷdԎNY#%OL()s7vf"N8ڵ_H Kk{D,^tݥ 3V0G\{\|~oc+/b ]^HQm#Ge3-;<З33FG,f{w[~M>joWV9utcg9D+Ú=*ysxn5C74ǓJ;~ڱ HƶkXۗ~:v/,-g K5{[z]3:.-BJÒmqqe_G@fZ2 iU_إ·6V]d rl.(7$1,A5Hky1hD̯ _Lyqi oSNrM_Y$]1JƻQ>& 2i0hO&p>\t@ەwϷEayo)r O*zM ]dY˨5OVe%2 n9i{X;]kSDlmXb1+%]at7 i|Wqy~y-8$xmCF`URmvYD/!6a 3|>ԍ)_UɐA&ů,J &a#n+gL k c| %QNuGRԥK:h֒h1 j,B["]t^yo\2kzgѰ&|n|]Ry$sz%eܻ A6eP2,zRL`w$ u Z-p+ PEoǀO4vV_а/^ncޠD 6%qnajMRK OՅhP-jGq1rˇTfB lcܵN\'7)">#Jz#jE8*!V+V*C K{-'imDD't\d_+Xz]QsUw2C Xt"n,h5V9!SS1gg2B;'o֨(%Cboۑ s( Џ~0 *AExj.V5a=VrP0o> X8krK0u0ܽvR}UvFEzzV,C,7[hk&qAcMفFdؿ#.Y3ou-˞mo,q3#Mʺ6TmVϒNv; 66O460gMƍ}K)&8@]>\3&qb49q\! [+#W禚cCkNF=7z`g%7V p<xMغ~0tBB:C.DNk+ŗdCEkʩPf0$A [`(oGx(K6zjgSTJ opK>qH=sZx<οm/]_?-( 4Q#3?`@dtkfޓUh[A :{{'E~ Y4LGd#"轍3DB&ǧ@=DJ- "Wmk9AY!KOzDwML$&ڪGj(p\#&&` #0 D5N1/#eW5}Եe> IJ.h= ' MT97UVQҟOw0W6giJ_&jpXnbظӞR۳;ob4SJ`p[E!{V`8t7",S2n,?NqS7n4ݷN)V!-IơZˌGzV?vLMzٗȺcƈ#iKjl-?+d&yyH^֙> O'}T#zOiϚ9UvJ;9$2lgt?P*ZEU+*X,ms;- 33L媦;Ϫe>~[NUU?Vd \Qug͔O)zՒ"x.Ȼ/x0< :4&"6 Sj" &sb9 r_bC^a2IH|е9_IMv,vcVdmj0M Vh%DXy/6+qOGnOqX}$*`oDz'리"4,x KYǒ U1,sP#D5lt>iJGOI6)˭ؽs&ᖎpdrw੮ H{Y=zs([g2y>P|N#葊GP HLE6RIG" k|.-c 'Nm/D;!:ˏH RsfzyExEAPlPPY1-0 h5L^Bt< FD@ػqxR 5}^mEd _f!e%8X6mJA޽"VM|)IUo+dʚf:Za#~5C̣\Geu܉7 w|ΫAϕ .e7z7PxL*@,XՂ:Vg7eUUdx/G3Gl(j=aVm=_3 ?çCԓr^ѬvG,^%[?]^@wzzvn$(6h<{ <-C?9geh3™ E>_ϟZxdGl1TU v-G̹(>^LX2Im1o__}9L0>lRN{x 0y2Ad JJN1eY[t=48AH Gyׯ13xt*J빛iF!J]@5V۸M^6󫬴$COVDF?~T/g8呖'Qs5TpvaV_l2C(kJfy+DYG"RYpd,Z؜՚6˅3gT Q%f5n, o2[1Ð9sglvyW c{M,_k3LdOI~vRYVӸ <>T\c[;!4]:$GqF_"1LHԦXhDMd_n]Qt8N$rK|]Dׯ%1&RJzH?S >$;<Ve1:S&^2fTt<5EȍgOA}ެKUH8$}lroNm ĨBZ3!V||lW8:΂̍SFHߖ`?,hI=*ziɣ?@9E0 '߷7ʥTl^ZtM=bXA}f;,M۷"w%]&ĝaΌQzs @,'Ӆ Eҫb䁵JƄԿ`"-yr%H*v$1})Z 3e42,K*f;ga_($BL^❅Ɩ(O ZDQ,-._c3wh6&cBgx'W> lcy/vz^@UmʼP3Z_[u0~yі42tx9G0c(u/[ :$СIcJ Y *fj;OacdlU^C'rLo`[T ̘ Lr㉿.#y{Kor];04ԃG8)ʊCLAP+0;}ᣐ"h@Ʋ ˃L:h}GsI KwN} $ZgpLt쳂+cKg<fmwojwCϏDd,iǿKB %.|h[=Rq~wsj]UU 6Wg.Iac˒|q:d_/^Pb-t6 96Sv ѢwXTzz?OQM^d34,׫Tc nX6<ʱ-"XRؓɠΐXa|b@2#^&7I]ۃ ∫91o =ݙO_^(#vQ|OF_?}P>#ou|4̚7l CF r:h;f'*pde%z[?G/qVxt u[Sa~gRMT%u$ 6eԤh lh$ocHF߮m1!mKY yTD-N,&UI_.xrৗOhsD~s{ 4`gAEN<>{5gHpB=ɩӏʨq돓_\eјpj(N߼?bNDLvf\Vv|5cwl!&g~&(0ї=t:ԉ/&: MޅJayrō1ZfԂxlz}>ԍҌ|DGD6K [ A9,5<&X}uRܿOť]@+ lLz,V(fvG6Lf!Ѡ͛h%+`ų5TuAM;'iҹJβ/MfҔEC,4z\su~o+/ F4S1sݜ&gjq2'(5iE)Wt[#mS < tTԋup1ݲh2(U1_s7<ֿ9_\ MrFXCtWhKщ-Z%x53SޤZOp4yi!n?PM/F.I.^!R;QXbl-YJL3ݫJ=5meBs8w3yLaik[Z8KźD<aG;5{i=r#mL[׸H.JwIC d^>" 7_F-u ],R<Ɇ~rFuvPԂD #cW7$f^VdIWZֆ5widbȽ6(2( nZ09 h(r#ڿ4-f@|^;.j݊Szt-! u4wm2*ϻXi:CocR4_cITHՅV3C$}X [d&6ߵ) F/] 7 GkcIG {$omLlovt,kiF$gsv!f[c?x |GU֢ۡYƘ+"/!lAPyőkFhgЄĪ` < NFn,5y% Y' nvҗ If@;ӞDtcR:Ǔɴ*tuiJd$iY_1/;7fc65;RimL*:u {.& oDaIaUKKO3(ڿ|IJQqD("xs=C+(o64RsŹEd]l|7wCisM7?*%rfb+AVuMKJe@ lAї;uڕ}ivq0g5 hfU^'@Pu1#y) ^Wti p[lU\ǹ1C'3K1N6ԻĐ[Kڹ7İBHVYfoM[pջ}U:OOA֩D'ԯt 3r%$xO2υ~4aP/':+mr$W]Ei(-VGՂ8`p},z_p^)TS*]۶z↑k] AJ*#NPYB/ M'6żT7 :o3lG0xRz+'^1S3uk&ijq%(J~hr&KНXÐK] s>?C{)+[ِeS>+Lw+{~',ן3poP&ݯxD7&)0aԬZO&@7qm~|[8I8 ?&b[O3q(\G [*[W3Suq#BI2o¸4pN5_%7o裚~& خTUxbwB!⬓`MgFun;3D,X0}pj2߼"oe)r})oŠV88|oq|}Ǚ64{LPo*ͷH}ց9 l׶9Gu{@敗TaO1[j c ~?>»՗oxfnOԁ3;M/-.2(qOb euFK,DW!' #\ y &N탺ҵk  @$IMzǰ)[kÄ=R-U%?A&H/|"65Cf+^?x;ƹO! >tVs2گ{Am\K.M}|tw񄺺R<կuHfQסW!C!3%@۾~驺&j =DsЃ2(}/;9*j> ؅苚DKng P(g "S3uK}_v|0y!E^#&j\JzIb( ˳=Eϓ:a ~,8>N)%g[[z#qdJ[ܗk=ԥl ߩܒ<gl`m, > \Ѷ:Xj2Cb8؋Z'SJ.ߡ7wYuz Pn}a5DV47@y5i+2!ŵJX2RH~50ЪF}&;Q¸ ί_ztO[2<>vUd5*4z;?.d?U鯷z>j=|ٗK#U8A* 9,vr06$hIʵd+wio]ʱToEI 2}}\.,uVsϱ'k1 =t\ %D;4goXN%Ob?A|P;} 4bCII9$/-t[=ʇLA]L*Y̛$PmWɽ&/LmfdU\9z OÕ$,Hh  Bun2 nEb9h;tE-\-}9D^urKQ$ ĴJ$DN2&¬O5{Y X0eq`/+@>yӏT9.䟸i.1y H?zvXtAAAZ(Iy;hwzA*q 73¶&ؓfeE=Bģ߁D@),ȟxW8ص7 .Z9.ay]Bj`|Prm,)h4S\ ݐ}$'~AWNrK4ÐOpIUMo7-îޅM$vO#<;WY#o.Uݤ'd";P?))sߔaɭ Fa+_F9;m2 ם-#"GD6LSlVLFOfF]0ػa&?`&m{fYC@[P4= 6HR 1Dӝ엜pg?R~:&qgIW1KɬKqNJ?K]S˔!OOKтU<qUVP{F'QZaF*$q@yU~?g0@l^,b`0 M{1ʍvGK8dU!ƫ: 0 1(ۛۯZJ ^_%@ZY.oq ;+yb!8~lXݱ;IvXc$ TiTP'qgg~$e,2H>I\;" ))w:m>{ySaBKD2>D"b8`2W^_u{am}qb%|8*7Q h usLyRpeSrQS4/ᶫMGv4~9 [d{f麎c3W҅WxBt^F>cU3|3\͞@NOǾ8i`%o[(NKDwV7gY-pf{+MlHw(kOEk ւl/eWfd|[D$c74Ѡ"3$m^MvϺǬp~ KXm/~Ski7_quE7zy.lZd Z`{?z۰P FbY&^Ie)to5S_ut8 Y"LGj!Krۤx[Ŵ)|䤣c'E{iQ4s _?[] ~X 19&*(W̸R/قc Et]Zw,՝G7/HdW< R"w)25K4"NʷO>IqHOagNދm>h }|ܝrg=xfߋ!u'ܵ}?!ML ԑ ssg͕HSc?VH P\~pF7 CRr le%A52]*0"˪쒲,t$Ye9T,rjoȮ‡VL` FcPџ|xBޏ9甝l|.a,SJmvoMx;SA KAyQ[t9](Po?x,Qt/l3&rMW { (#|4ۤ;>Qe4Lruy(y,*}m<-K{ڝE2ZA8n]_-Rg|㸹F{$AXN8q&z/$K+9e&(>2MƩtG_(Dk]++&ݗgАLZ8j}l걢4ڥ٣N $ݛvjH8bNEVLC.)u+.xo1%irKښ>\e‚d`wY?3tc m?. ~KxC2{|}.g**%M+<(մN+@ubzl;ggJY]8dmpCIH *8@b%i,QIeB'8'裼]l =ᩤuV~qmE4Jy(p/bh!cH|Z$b֖^"|Au5@`0b([ O HeO+Fsp|%90< 3C<nQ[]t\T9N ;<>+p˯EV'z)uֆ[={Ky1ve`V$^ءUPNR̡4NQ0%R:sUkN2-uu\U_ӋFBx>^ٓ.>޻.);#(|Cσd!r4uϤY>vxdY*&IkP7::|l8}Ǧ Ý - "ζJh]A:3  Ȍ(\<WDQGg ГJn 5ΰHk?V-g厖~I)@տ"eB~٬i=Ha3.pdoґ5"6}gf {xoa$b}vo[_9'o%ⱲФ_ӍvD<( YV$ˆLJMsI;?̾_.o;DQ:|1ü"K %{wk]%Q/7׷M ?~GѕMopQw}W9LeA"!?HȚ-h최`o9P8P;iO6 *|o`{/ 񈷞OrFqU;GA`J&^|KLz KT򧨃 t xJnatD$44Uz③J Ery0䐽-WjIϨ\tΣ蚜˗/A]PnJ8c_$!gPX{02JkAk6wCOrQ}HMr77&rw70 1Tנa\3&qڟȺD{mlH([Ӂ*.jVɴ%~zS-C_i*n<@芷$meI/I; DY߁~,n_H^IODigj#{=X=Y_#q^}۳Y qRؤ| u5g!FĮ{' bf>S{CNa@_~b4vVV,_vz4^b3Y'=; @R3f %Nd.? . 'GE闤zlzzF (X_ tᩗIB?U((ϐ^i&Q1O $5o$Cf3Ծh/Kg{B~)uvEtխU$E=Kbw5(4<9l:k8w}SCU Đf NwE!D?hZZk, yVg?n^2Eb9oħm}e}uEJ1w^XG{x~}UG/V]C>A|%n,ai\Evxiio ?| ,%|y%5!It`D wF#W&kvoꢼJrnm,'nQs$+}[#vCDoŽֹ:tzhw0Jg/ ah7AO\* ͶxSv׽C:;4؟Ju8wLo57Г81 Tk9Tshhoj`P܂np\kXjH|Sʣ9c9D)m7ph<ޠ]i7D{I.u9+TKfG"Ϗ.,|RjB% }L?e U㰿î .w~zoEр~eC:zrſuS?cX\Zr6d-Lc P?zs_H$+l``E |Bq1xV)P<>S#k?-\E'_@=Vl;&xG'Gb흵aCYrکFz83 Xa>'S CA=zU !}h krF=./zV_/o KBEޛosБ`2@QנDH0.1b4ZwK`~}lyTߟGgV<%ᕛ3/:- sJ <S)=uib/~|@ȕ~ Ipk|uGݼI܎^@ш4WVVσ\K3``xd|ё'*XAfB6w~]u qYUaŒzx4%LD};KM%3f+(D2"}Wɋk6Czb(.,1u牁Āxν*gu5Ɲ vr;JK7M[1t^.T$;GC˅0 <~l!k^F_=b]/UI?~3k^?% _.`oJ,˻~9m#ه:jyKw1] 7g j#ؠ8iϤf#4hpy߷eN!}vF0,h(_`tV v|إT Tqn48)0$фC/9pa!G{t֟QB=-fGiwlocJuѼ1w4oZzo]3~f$2:qTxf Zvd8JrbW_g%dm$U}%.+Ekm s+ܣ)>}f BV@OÛ'k"Ϋe9U]teH fmȢZe~Z#?D<21̉BP&q2nidz0%CzVrwHqNTCBcflhW0 cm{=QN<%9A2kz1&Kooq]S]]i~a˪Y³.V{P&^)iyƯ>?:AƷTLybgDIxkju Hb@^{+V675$#΋X5lKQ.m OW*[W:JAzh1a5P,]kXlgwi H4.5qlC1:} 5wMGP|WXqUüUaI?cMrpFG` 7,p_~fپULD#6lǁ}Q)as;[9)2u#o{|;׏r'+B KWYz ҨYe{  *x1V o'nmɷMG3:C(/~q$$]i'V΋7[3Uε>1WvRtG6;ԓ7.(Z א =B=@|vۈ! )Q#7D/)w@Ny:/bOL% *,nܴ:xoNd5l(`aMb?<5Y{%<FZ/=, Tpw0|j~׈/[E5׫[k a_C聝پ!PM}|H),X I|y^0As$9]e]zH`|+WO-4˷7m΍tQ9%ӏN+SHW>:Gw cӐ|PsZ@Y&Fi00iSMKNVrdߏXd>Bi[NHve^4+j|:,d.$>[K;+`z2mANn‘`df] &5ha0ùģnqr+CB?3Z3{/ZYn-at2jHc-K/:cfeRؾ_P8yBfR&D1>/00TaSo#@*^{>.[G7C۫riǹ_kv.T(&k(b'𐩼;GzB@ \s/*BgmT6˘Uȿ18Ǣgj>olfe_DeRy+!U >-{cͺz,* ,zF{/b)}*xjlB&$InAo˵#;144ڛe#T8,Y>:cu6m,= Gd|}݌$a%  o Aqדt%3ǘ ^3ٶwGoBH޴NXd m.#6y$%WZM|P#c(үtKbnY."bB5t#4]G!GVP ǶR7yBeYA,o籞X̌әc4IPL~A]ڥba@3+G7ʜMS*9G? ' h[g C<˞PE-l-XGWRRʝ uA؏J_s]͆ib>n64r veg?4OCη3:[秽3^kPХ4WK :+yj)"ͼm͸vOꈷK =o5_v}'^[sUW@#Gś}l{lZ|*~Ҳb:a@"ʭ8e/ׇs9!}#d87erGD=[LZv[HZFZP빹 jg gMƊD|z]BkyGCڃ}G/<Ջ[ l;S>6D6% \ڏjtV2[3(Wwu'l_r0r^GؼMwΒ1{{VR L+zX¢;lmRmΪыpʍ\y3x:K~36)'l6Dڽ^/c{ʼQh?riQ̳/uIu)7Xbf/cec!iLkjHdRlouFT~ rKX-,QsQ8=?>j9|kwrI'OvFt•gId}k;v_^Ϥ^dOS7co_rtZ<Ϯiq*u)S] 30zӏTyGg: q|7SӞ=ma×w]+v%gXųM=NRbEVZ,P?|/u:Y:;ׇc(_n5_8YSz*֛Jۗfȏ:Y3j:z9:;y_518<գt5s!Lp~rgou TXh(njx3?&_pV'v:쨛p l켜ΜߖkIWP)һ+5I%gKu;w/T_?ue]#vCϏ'w=zkU:OE.R@W,`KƭNiq\LqMdPX<7Ǘ/<,|=un1=/-,&٫HW.zz]<ʪw`^,Ib}</Oir~i9EjoWGW]y+7;Z X]??:']UfX rqT=?PŞf*jny<_/JYջ? l$S>9S}}Kkw2 ,u-+Yjo*!LrUʌe^&wJQdFX W~k4VԮ[Ketr[b6δ4k{Y=aoN'/st^ S˛ޠ\riJu՛r^~=K;???{aqdČ(䞫Qνmh0_zy{eE0e'VTN_}Loan{}-[ɨwx4iBrOFͣME]dű2φ袜+&Cdl̛׋"^8.=/AW>bm gyI[:i. 뱾+XŖ1 ̀ ^M/絯=^{dUE8 ӽtk6_m3݌hvF+|Ufi^K؃m7OMʙ]BnHcܰL-yZD+=3AnhH=8*]*+W W-eQg~hn^1&6L&s}R7]^.亣s5>~/A.S #^:&{8^/n}[޴*黫i83})&~dTz@Emx9U޵2UPOEEcEگ-k(ݴǞ}д_s& bc6yNbQ]]%glS{1Y,RdO=yГL|_g|Dԓ}9yзeY%pZX{?* ],2?e~{?:ngݟfeAgκnD^^\r*azt%AǦX_v5K{Ю祣Fz~YT[ly2wi|jVs)OۣAMXSWuƀUs~-K/"G*K1S}ٹ(Ҙ)tedO}m?^ /{c,7@eT!רӃKN]hk:Efs ۳by^(`=ͳ#U>:?.ə?l"}^ۡws8I@˰«h+'ӇL?~]^hBg\.٨H>i-U7+/b"O'ԏs|;xkw$չOg, 3HUk?OeΛ6al^n 7Rbj0{:mS]t^sN70ftۜW>\O&IX^3"??KݠQ]:;>1KI\nzZ1ssv6WXJ h*e?c[,~~#_46=ќTҙ_4X?Ԡ K@"  f~i>$nHbowބE=ϫzO`PxpҀ:uNS6!>qf,aA.{ww &% LVRJb0/p PpapԎnGZL$"Z C&{G\3Bg`nVR%Q{hAo4[D=a L׊|OhAFK|Eg̩ E"qJrBc A GKZb @j# W1-)"&p3 ,`wQBC21ic腐xim,ZprhBĕy&MÍ2:0IF6Dt bO1kc6:1jQLQI%1&As ϛ`88[ )dİ0ݓª>m F︈?-呉Q_R׿hxQ( `VG c|v6Pj7zjzdMV:N;' {]'ϏZ{rw]j$'J^'XnNh 4-s֯N@i@uۧ^)/u1.ӠVi֜LS]oJ& ү ;'?n)Rcb)N5v({" Y-0ٟPX.ZYGqѴ^@H*d ,䀵:XDI-X'F D2έ0TWQ (IIZp+ nMJ8 ?Ik.F`qd&blCNhҗ }eqK)(4M 4< "%9AA*`0?6$|< 8D^6!t\OwKBE!13aܶPjNc:H!'9UL%D#9poĽR[o%q~T+u2mFI(ͱN2xvE}7iq1-*F07MhD8 ?U9Jуa}ēD ­K c+xҀpL Q:2Ca l6'J,Qʱ.S*`U"t#T:W3ثFfnT+#AX]&M 8anj6P7۬N^@=')[.S4B:oˣ~K #4 X@b;qĐCu~5 @k :1t6P5QcY@-$cD4@]( :F'봂'\.HT }ORT23 c>F:!wE 4~4IPGr'@`$npS'{bɝFB`$'0h6Dx@) 5s>Ppi<.? ^JQ{L)0qPrێRzijwd_`&Wu:=,0BayptR[Uс%7_Ǔ碪U.Qկ% m{Ia^02;8U9e ZәxHAuJ |<@`MX4F1AB )ar+c. F{kG@ exCl.uZE (Qkʠ*u2Qor#ƞ K‘(5Bj@ phtS8 ~ŧAt~0 ` Åƫߢ5AA<EJiH=6%rb|q@I2|ׁVjCM(UƢ(0L,v@"mb#H< }"B"ĩDt'@e `}4:W Y`6>4R`@!pPgcUqeQmiT:` ,G!!1V E9>eСVB+wWh w02 9 $1aT J=\&8T0fzp*$pczϜ-< 0"p H`sR`f7d(]+D[(cGKhLKe@ },kmυ׸o'O|U6EB+ӗ М0}_ |ǼXT[j >17= @)$Ɓ5j$-BAbB#$ H漸BPP,1|AA񁊞ش(s9qZr`:Tbؠ1(.ARcf(caP8<[M?Y&FX/5*XjxQ8#46{*!t`چR+ML.8e( 0/zFUa7+BEJƗ  2 #dO0޹ aИ8zSaQ4z h2ܴ Pѭ[5j_4@Rou`]"H{D7{.t zױyxH^IҗB \Chii@{ vF1 DSa4 cHsZ\1.1xiKG7)(GL-%naVJ ejn߀P,Zj{1ymP0Ȩ 0,dN2 \NAr!|X%[8*J wQ Lw^FNB z+m~5(3d{fm @3=9cɍ\nl8| & FD`^X@ir^DХBD;Wwpz7]`tOQ[$pvA KQa 3(A3JaЪbj2a  1 ͢ZD0BAQ:{ϷT=~s%엒4rFt_0\{ohKeD^1acMo9,QXv hh2hKEЉDpWߙMϱr)v<8vyH rjJQ"U`"EҪ=+ 4g-6-26gw9C(3d&tNF@L1F̅@ENNDPmݔn)`Ʉ0]2/bJRA V9{kbA%w7(Z@ PM6qD Đ hPÃd! !38 $i 8:#'<?BMd$8F,[ZpWr 1r J|3)EK1L*,f %=M2}=uHbFPi&]Zs4t\H\#WnZ(fXXPT_AA>Ob+w?c{ MVqFZUYp| 6FX^ 32s„c+пR$ tL%.(*oL. m4m0ptR.YIqaO{ $QH‰ v $-'zyR. 4tL \P ]b`,5.$9̩*7"Z 3@P4(sw!!׿%58tA@ONy\: PyLV\ɟ.GSI/?}D5/ED# rAw`®nP>&ܸ[kպ'Kʽ/zREs0&!h[d֗sE;%H}4 ƥyf(Wuz %k#9A &`. 2zcz jIjѯ@'{Rh\E1O\y$Bڔdqo}ᐌC)auCJjk6IM` \c^rYI򌫋r0f~t]}=>[^wN9.r:Y2/d7(qJQB-voi/ҭңˤ{ 9IvjдӬZk_^/ol+ 10n&%h8 E 9X("bRXaǔ])sc<$ goxjKiQejREk/!A!jg vSP`(|.p6EOlg#2;i(~EAJL ]lh ߑBkm]?U$1 ||2yS92q) 3.4EhCLٔ|LX^ﷵgۧC{{ޯaFG0D AX8_8 eA#Hv}\OPH2D (r?Y '["ě] 9v5D! .%L+ b1(z"j>;{w$-š0E @3!R(W ,}96(??\U)DLMK-X]?oʹ_7q~͇$][oo6Dy{I0R_aϿƷ_F/4focuswriter-1.4.5/resources/images/icons/oxygen/scalable/22/folder.svgz000066400000000000000000005160161231434177300261750ustar00rootroot00000000000000Wu&_{b|rBD$@-d9_#:ےkW-N9ǘ#~ֿϣko>/O/O@ާC韀e,n>Oo?kgo4suA/\B [~]?nU0Kͻ_~xg7OםߥXc ! @0 Ϸٯ_nmk[Qٟ%6И_V2ls>_!/ٚ?y/EH˗1NOVw6oSVtor?ӿ P$ȟL]6?lOf}8ŧ UCC㧿t,Oz'tk㤽e_otq>P/#o/4EUXֳ>˭]~2ۀ8myw}? cя,qsB'8Eo-L;JqCcu$+!O^box?ߧ. w|w/O#:俠_]ۿA#G""8B؍6iC6s#y;HY_s_lGEBSC%IYb_7XF%\CowJ˵^;07K 7=n;݈x]+]57*foYx PGiik }9 ( _~Fh|E\( (N(o~~;`i?a_O%?.Q7ٖ|v0-tkeX9y~!&' y'ϗ_n+)!'%'~'֛Rvӧ۰eP=&@L ,M=KcUwfYBwN`Y^ (8a;>yVYXWe"8,˖ŕ؆cȊ-K{M%vU_2ǦToQ 5!KĞe:<$ <"YuZo#4p8!!ފp\y[c SSdZF|9TlH}P_\-ON{Wm(f6ˋdѓ'9FחBN"(G+lef"$ nSdGI nyTLٍجau11)jh3OD5='tE_v&eʢeJv_RJ*y cT^@Xm?BTSP(B#@oU%}NG&~@N便jw)ɗIe*&@K@{fMe\[)P ~> B3R]] [NnoN(9Tw͢ g2ʽxCnNd q% EҰx~kƁXbe X;gYC2 F!A y`@=*áI! Ws?vU4ėh/:dfC#CCa& A@k(ܢcuVЂJh,;Rv >{X3sHPoM>܁naSb흢 kWVz?u;ZQU?!R^}įfȸTgSskU̷^R#qĥ Se{\zbNY6J=g [uaaNjLP؅kt{ D,X *b_@b|x|k,~=%~  ұQA G!|H6hn (͖=Z9$vTUk_:?y/9l % hvO963f{Wz>YijS] ܃i&ݭZOii'_H&(O>ӱIoM3u^Ѡw J…Zr0./0烘;{n'a*=]) 16w5"')J8r(=|4Z *cs?>c2 :c JYC `.q;}6㵰ѣ? -&uv۵3f+t8Ma7/zb]^˜1$~s|BgKjֈdKMC@"y5Jkgm)?V2~5fPJqpmiJJXQKi#8J3 :p8,Q ;Pܢ# E6>ES؞oNt,kv.BkЬ3!%)k:̑njǙ7./o=L %P*zwg[c+^6ko_IoOtՎĔǙ-[v͚,0圢Hi TߓDa SB Cu<\ruW" -c QM䪾/A3q=+\AF5W MA(U~ReT'Zk\rGLfBw"^=5-K_F@\߂ T('o\ aJgpya>.KvFwpoYe |Ʈ4G<0[)GEfJ= hL{rgR&{)|æ޴e=ĊK[a~2S^(j5 V‚ge xܸCaEYcu84Nj䶻N 04j_DcށGEU+ IyA=b.h S/yF_ HjCr4`3Dj`„Sꉅy#k}j]"XTcT hY HEX 佢pW33eko|]1Qud$h$:j Ҝa}>1h/'Lrdi?Xֽ:gLÎuF @YQŨ>l]{X=vIFD¦ B 'S$߻!uO))}dдʹZ_MY|O5M`J,PFI]s߆V|߱> }/%jI *IXSH6y3 i]bI::")DM2cGI&w!0iysAnjg6[$n|3l*]]aUm+AsoQLouglE#xOʺy\~gQhD1̥*R5+gh49Dppg0AaQv(f/fՕ=ьZ _־C4x2mswzkU7|-+xfxnZS7pk2)g[˫Vz ]8 <g0:}Ƒ~k2+;mD=+<Ԓ{R4/ ZC_B'CMOO¢( a*ѿ UCGuTqm,*&XgÌ{6rD%ϷW# DiL1_lNk*^z`O{+07^<[ixNjҀ$)a8|3T􅳗'ccGH tQ_=sd)n$BBe6ҲFӿơ<*H..lmi3E)4c`}Q1ŧdcRy8P ] ?H-ퟱ5@p Zeu$NlUe*n|LwH`nKF1ݼ,`pGaf4+  ^F[mIL^iJHξtc8&r41VFGJnwe|Y=s^"JesWVIEc]48 ۋeeo%)9HC o> pq^fxTD.E;W=U+F5B4=8S3^e=[&=F> 5]>hO/}'s:# kG-% qJQ`wtF Qcs;wI"徖SzzV'f+^o#Ŗg*:,^K @>ڪjX+N? #jJ~!ƣH:Q=T(^Tv"'MH$,s'}nBB&ķcD+zn1]mkG=Dt6uj*j'&|IE |0H0SH9&iWΰ5LI0E(sWV8XyY+JنVfL:zi9mAqZ>ta2DWp@X>9 ~3Drs|ljgv ^fBडB3Xeuv `VZ! h 3vTe&jba̕]Q o٬Trlڥ+ի'#;'B\9{B\$zXA B[lB 2K0lڲ/ tٷ0KMFܨIA]s/ C49CTN,2|2vCT|~.e7xL\9pX5zN]k( }L,4`gIn\Mzw5Q< }3-^c!~1Y6}iÒpO]1BK}B HOD4ַ)/_K(,FC=K;* iW&! TlRKi*fenf L>h_bXȟ:Wm3pƿ/lnܺ;ZujO!ɑUb396FVެ_{[4x%skvEӁf#DaO ssިlvvWWN-?q TydVhj|.r\NTBPvE]}6xG" :S,-ªFV.#}ki5-@~w-@9f-ypsOjJΔ;g^Հir F낿rߔ;EQ|WϪo)OUqR08' ;za㡀Ϙs/o=cDiCmQdE ~V }#~_2, uW~d U6}O$l&%!8/Ԏ`s{|NJ̊ K%e!elh( ZsB#1h`C ˕Tfo4bU!߶4I` Km>4fp \<0/.8u >PTC(cB{mGŬ)/##pNԠ[ f4@MNSMت(vP&bJV}?UEМ=hf5uCo$͂vjF1$MOaU AcF \+ƝSx_j;i) k4JqA^zVȒn koč>%G_9AƧAi胮Oɻioќ#G=dH!k{e%(L*51 :8 ,oGqU.{`w G7Tp]r U>tWR>K5Aim)]Z5ٵF<}/c{Uawy 51m5ٝ(^l򥑚h;@uR"M€i*|ۡ溃iRJ%ClqSafoe3dOEMrW0r?Ba2[Zߥ0䪇cp@wuG7*q3;|Ãڭ7C-E[׏Nd1m2ʱinzZ@a2Qn74ppi و<7YY!|βi9mHG㫰Bgz]E,H^*-"[{\ԌB}/v}X2JIFhw/G}c _ݘh[lR[8%+Vߵ=KJ\ ]_3@>1 HRh5Pw- $nM4v6W}g欚uRoSS>-R3Be6}T1Eğ3k%"<;- C=mf97AYHrBv@({9A96Lm}㻆h\UMS7i"~vK JJ;aF,lM  aLqyCt-A%=B}ef}&jAYQs{p]U\'I#xϣJezʑ.u'@?$Ej4]7Pin7NcjbBa+6Ъ+¯ٜ7iK^u*F4I}<9t>WS,p̀_s_p`d32J Ձ;>G}us 镔8ۖبXؐL`?I,> 'aCxE ;Ou-QѰ(jH%WL5B4t -|!?o$\lNQ_ ??z}* l!g?zV9+ hβ 3ͯoj>f/nÛaNA]'  ҄ž46`{Xc''\8%Ԋ)d۸{1[򢻠4(qtY2J毭q B&|7FڗF2Shǩ[B;\22sr^X*:b ֹdqs\u6.J*J0;,GߗvN7Gs(P 9 \;}_K=/>7? hY7Z{Y&9GEu3i)%hQa \^u U#W4$;QGB>Q%soHqWiLJ=Hy 7+$cSAbq3] uC&l窝 }.АOT!M~e)=VcHm5O%U!Eݼ)m]HR=N__RUB Qiܳlxl#]w^#0ϖf@ )ʼuCB|ywzˆ3pwӻeN{S6/z8"_Pr8?tsSҵ|aL|b`|>mLFeǛ26p bc?PanfhrI݊6Ȗ_;s 0F@ 3J'7 ;LɲIqvaO?N[\Z쀃~N_*=9P+š}T-G)T S| -o&Qs;m?co-TF02;UUkf~ki3bM\x󽽝iu9\YYw~ԮSP WDS)MF=69([шHݹ)PL, {HOwժ"gar9ڳ_Z8s, Ei ZV?oÿ_XNeW?g}B )|Ru*Ljr1x_-:R8 M/ЮwOkƑYQ`ޝyL?dA1|֗.?@qc"T>׈ 7+ N@;˕+G%(&x"؋Kg(˧0aD+D'oDW[H=޻"|z&!5+d ke:;ܺNC&J 5﬽W"MEyn!; *]psn|ثu>K)F"M"74X@﯋+w6RӦTcfwħ|g {2HigϮ.?CdLWbv=>b֘-Z@2|EFʛq07Ā蘶{_\H)U>v=2i.k>&P$qysd[ܐ`B}_.2xB#p%T' i '2)MNJ'+ Vg7%1KğkE3iO)K'T\Q 4zL/n%9(+=<0gRɼ}GPftҧ}ϻ>xA9f>v-NpP1W_r`.} gMjn[ MM=E$9a ^ Ŗ}?򘥹g@s2pᬟ}[e3)Kh5x{jDs-2zB톣\ţxMJSp[Fl8M~`[ u/7xtl@q=74|1rHh'ehҧeBx'N!F3.E">%qoŎc=Db>x,="YVYlkSZG4=I;A7sG= _xq,do 1." f /f6)vi9`!>˼vdj$4T5 Fa χ`\"nA~Uǟ$}mK)e41a]9פ0}Bh]ۼ8rA + HWt0bL9`e> :LlÝ1zݴԬG.U:iA)i0&T"Oq.2h٦T4ij[c,5Nl: )W&5y_z A4zP:TX$:o `t?mB4󎑄?UvR<=vc*5MLUK'9B@ k- 0='@\꧜_J^|Z(ls NWjvLHSquv$Hկڷ0.x.N6fdI+9Cn:ڔ M fAhj#_WܯYȸOY 95n\kM  a>ǿB] /9).6c9.D?ѺYAò`rv}mᛶIRh 1au)1"v-9t}=6%'=ӛj_v sN=&- vUm\d*P*"Xp@|\'-v3&t{5aˋBȵ3+  $;Ѱj#>c$ʾ2)ؾEQJfjݣ#@9/9Ww| a1G}c>ʴ4CS0=&4rC21$zTtd<ǪJQP?TVT:%H@=h흂s) ^?Jۻ  J<.=Hg [} zwFP=L2pq;\RZ wv$!rpy mOyCϗ+L6z򧷍E5@PdZzO1j@C"rsʀU2Y[R 9+A<^`@9㤯7 [dqEt{q{L9.CML]0;G4Ilh4I 3$:72c\C{T>n@q)c?.ۦhMsPpw!< _zD "um ˒@ - -:4&.NLC+D7ׇ@]m͈O5,:I}5pWGa_)F=X~ئ+,p*2_sw a~$LsbF~< ',T 40Ds,(LHY\UF!C +8VoBv#CDkkhmDES:f>q~|2.!u뢈b,~"+*:D^>m;Ky~_p%-8Sȏ%=8Ac1rKEض/5 B"̬htm 2h5(P;'ůg}O[I.hcC{=7iרߖpjib|LEѷ X %i3: 1#\^πIWLH&zNt}=-qƤjO\\q,4Kp׍x{y~E.ѐ;ƻ}>ȡնd.0UpF,4ep/d\󣘟uҭ-]W vJFB^3ݗx`cQ0$ar1<yo 6P'I7ofG.!AӸmm)!NwIY߯I,< 9KƂQ873`'ûA߯"fz4Y1pk͢/{ ^HDw-ɧ=~L/ (M^ԑl|e9-cWzіi-|?w4Z9uV4|l-焉ԿPbhI?Fnx"S)Qp]~Zz-s}q7̞)[xPH4={%ΩWm%ug(E 0>Rj^opEL{8R!l<٭Ε ÛɃtd` v.i< yܵǧ8bIic=Dݪ zHz Hi:[*WCe\KodƈU1h&9BSxp522ʘ`{5ӟpV m4G5 fVPڠC״5m K.ߣ&Raׇ R},'NgҶVK .bǯD?!gB'Ƹ=bOӮ=J'\m(/V$ÎF/oL}.;ԯ)1]4h~CD.M󥆅^!]렴I1%1   GGn)8 IzQ|[gmJ xpw<4VRS̯:|:ڿ:E}G,Qw:/RM#Ax}eX'at.NO_˔ 5]=ȕ&G5i^DCGu-inaf_ѧLLη jk8DifwYىnPQkJ,!VT?N|ʣ !՛qV5%.'f(} 2bv@,ڪ&`A޹@SB̲q<,!kƖY-M.뗾zё2LxqMqE.}= u+50b |MsoY@OcʟWw8Hbo R*z%[~,(U(̈p4ָGIwaA&-]a](O_Yl)SwدЂS lr8ė@L \b/?>f-))KKȟ`́y˝ۨo HLJAzP" _W<$)?y >&Fb@k%O5)~!k{QXE;dןa7)iQ6_ ]A WObu6[xtƀb_'4< gC3R6YrFc>2^ @̢A\:ǍF=p`?^pcR$<+QW4#8arR+˜v{Kvĥ"H89/=R~%hpM7NQٌ[T޵r1FIc~)ǟ@[^Yδ4GӟƁ{WǮAoZ2y8z;V%m>QzBwY\:G@?+ 2/e<p_> ,ѹw\1P\,9E˿5EؼsFdUJ*}<ڧCn)=]V# tm C08T@t"j\㷾/F/Α ~w+>1. <S8q"))^ҨXsh"0H@bV"+.2{\Ran;d\NKY@1 w6Q'AJw2d&n~=. :RIJڢ%ثU>gj [!8D]g0匃$ʵC31paK37Zfi>. Pir+>#<ѯ0DRvq 2܆C2Ggr1ILeHD(U&Tͯp4L G$鋳}A^`˼)Pbl }gWTȼ1AIsbiljo\?%?†XÅ*>nj;:8+- w0]z;<vCurct+I #܃ ]jYA@l~2.}{.ɀŋBS7F%z R;7.wXW|`{/j]<_Λr7 sgJ3m dk_B=*Ͽyx/û;[0z8P!"+Rjҭ脤]w$y^McD*~|JZsŸ-`|*ڴ=IVrT)^ۭ휬*.C|G\ɵl;yp"eaqVoj k39EQ's8 x2G>tѧv]@g%̓i,=UUU6e֤X%ZџF))#a}/Ea|k abjOU_r:}'I?Oh!mc!Fasj%-_"o!'#35 QA='ū A"WyS,$O%%|DK6~>B~50hy_߾h8`xC' [k² F )C:80Gfd@%JcvMz2 xַ Gn!'yo0 YHvp< C^c\K}+(*|7ybY6~CԁY>2::/Cܧ|:kC^V a+҄ I""5l(kWn_7c2Exlٵ/W1#xa&^3n#77Q<a뮍Z?E8̮){ 5$6JꦅeIs8)Y~"9"$@n?|.xO7l{5%]%?+yMe,~hMmeiS n~)Oڀc&ĊT<ߨjF"RnDzd\p@DkX~baI[&xclV[DV*mnBEȒD s*$%ŔL]d#2τq8Gj6{d *`ᨲXI<7󯈳K:i&bG'qp,If' ko5 ŜQ%֒K>ޔYZ_&TJq+/.Q/]s^6kyӼ Q~O~[K{-z㚇$M[m0> m)ɾ_I3KgZox 2Vb%͙u=Ap! @wvf|&nBOVF4}VDx-}n[tV)ÈpjK >i,v M/|FGd8COJŻ$[lS$Pį|11dl[}HkF:7N౶cQTS?J ڙů>ع EV1;#CrpPj %J 'w='m ϑBxg?ܾ6n~!o#!˒J@i>R롙Rq qSK8oJbͰLOM=!< >Rc\Ձ將5& J۩i?硊 Gcx4­F1[}*G| 4'YRHt$zAՄJ+s3YP\_xy T㍽5k߿~xyd_Yxr7' LXi>**D3 O>Bٞǁ/(LXT k/}| ]X$iƋҐ : $t0G '?*X]&y,({wO%Ϩ&=/Fcv-MY#yZĠ/q3V4}zLrl[ g|QXc8aff̀o蝍hMź+w += ~ՐEsuGt+!/ɆF5%o"0 x.j5S[oV1u~X@ã(7^Ӝ *Yu]P(Dm4CSSʅxynB1T4UR_^1Y"L]^֝,LirO~H7ֵ=/Ähuz/?)= n[qYnnKԫ6 )K7Pߑ*[ m`qn1GΡ140+6^"K`AcM=*~h ={V݁jiZlaY"^;ǖ=7+z;bS3IfRz'a**|ҳc-'V5Lķj_ ۭ2UBZ|wvi@~a"qگO*&"cǿo o3,S="xfN,ȇy}+#䘤{~3* XKw@tV`)'!7PH;+A^=s0mvɒ]}y(2j/j^8xҤ[:AV8a/v6)p1W.8ު|t S e8JV*Tz\\AR{'+34κz:;$f׳ pDXeR7rz% 7Z$@d筏z'`!Å_"zkA$ {Z Mn:z{%<&{; gh#f!M,MJF"/9p!fc߀s  R/$# ޻ks-p~k |څp/OKemWӖEM5lh&^B[!>^<K^rZ E iOˀ/]$aTYV2I$њdY͛hFkv8z540?í6 UDek%-yGt{%mlS)2O ~xtk &0. :Fzr}Y23Ld"c\[b 5Tƹ5 u\${??ii8^ZgHIա;C%@c8,ghϒ,(QBD!f^$"C8 s̆#@yh Āvx[H!BSt۵\̔I7sE\xzc<#q>n:gTPH{JK*Bwن}݋ )g χ,.èT[Z 9~YwtS&vrjV: ^TJJT$qgd.Kc&Vl, ` &ҬJܐsE LT.I-5^0 :hWOĦ21l >h9v^cȅȺugXNYL# 'Ȅo]U 8w @ږd C B1+9' ,RɼAfD #fJD,,chq$՗ %f5}LE%;6 aHsGg] TCxAҡяX†uK^\""MךIɒC+ɷ7͝R~$Ogo/S\vx*>WNHmio&'YovI͇}uZ|O 3ȎbVՋ5"ٞE32rD qAtդ6|$&L.ˢ$,>z*sO`~ʌ?·$ k<|m(n>\ڄ3T/ϥnliJ ,Q́Oݩ6]!YE+Y9,L*AX@}\/:N;0(h:NA=E0!%U`u ?l[? ̼'kF|FA@5}| ;_i )˃0OhRQFFmC/ ZQz'n `O"!dVg=Et_(dw%6ً{[I 3T .tg!3Ͽ P&dVX{G$(>ar81yu-` vq1Aha4:@(Ģi>+ v |E N=QB^Am[فjF$'jM}=Ai2gl)պY%2ɛ-Kr3s=c@Ka/Eo3Fr.]fA;D r/ߦrmH~`ib۰$obrh;d]}_y.`0ADO46{S9ORI7#N(t^Pxdj2G3%Oӗ˘,v``i|m@zk'jHv Lc["OQԥwPQЗF`::@M[c4Q{ZsS`QrJaqs8)mp q9au3RI׃qKo66BsIN0O6ﴇxٷZ:loZuው!u} DQTmQirW!k Ӵ@~1'{JQ:mzWY7qG*%ϖ_̎)V T҃F`ryN3Nzc,[>W-(Ju Ӓ*؝)-jD;^88!e3 ']okդOԸTvك>uJ%]Y_Mlܲʟw|֫[7~TNbʼ%.H)!5 C[47Z岖T\}86Y[gc0E-,ga<ɑeed0C;3 Lqw$wFoΓ]8f=k՞(p.\b(sI:pWNq 3ߦ,+ -Fq\RSNgS%~cА~5 BFyeKyaî"sa _'+=,~c4ũfR*@UR`| hʜ.9i Tu~G]5vzGS)mU_EOB0q'ؤϑ[{-~Wrüד!;$,-]Q2K.R/+g b 21@NyK6;#.ӤBx{y9vފ)M0˷\4}d\(VחP1k2i? 7NN]M.žT^;Y7k TV LK=I3lnOAy5 cKn!Ti{%)R/wu֔SZ7]SZG)Bܛ[@` <^P6] ?BѮ#Szb%.Q_\ZH!"`w,E*KQ 8C,U *w9xd3u45y}' EUK %*ro:vciEaVOдiW!'vkϵn͏/idY'sR.eSQ1ylm#@i"3>fk%oCl|#l5nU(x,WHٍ:tUx篟ЪA%6G2rU0Kh` _IQ# ߰sT5Xw5 A8'b6It:|Wm\EBe*„`BAҳL_/B 9;v8:AZt?W __MҘE)dȿE]HC_Ƞ#'?QEW6/i(f'rؒ_ə1_=iBmoywE6Z^*cEp3oTV܂),$_TAΜPCeͼ9ޑL+Z"/~ !' u{C~6&)WB(!pI0/GQ~瑣X6|%3hh[cp){O4QGySLYr DTvX0S)h;}nj,`z0^ WWiSbq0PDZ?lZ5d#eM/Io ^rlH)0ɷ`#:-emo_<\zݐG$(o≱(csm:,т=YC'R7dJȠxh*Oʇp^WfDPu'Bah5,KzNA!qbr3/{pBڸ<<~ȃe#,F"+ڟS+a\NF]R N3 s__~d]\_aJݜG Q*oBqcܴݟB\STC2>K Y3C!!z~Z-w_Ud!u1;)KtOqhln0J7,̠i {dH)147c'qu`{ $$J&Rx^}mɅF-;]@Lڀvd|X F2!i 6%$1"SK%)8y?]-эhʀRJ; DJXiKGn"S:awH8gWקs. 1L/#"`(Y?V@+A]y>_}?SJrv,JC0e cT(F]:S:_{ *o}5b9@B;yn^J3`ֵØf_DO7>h9>._סֱqnٹVzl2,<FnnqU Lg'D3%Z }q[_-r?@?% h)V$*"B~V-$hDUсkCR+.wL\T%8毯F;rLhyw$V砟?>?l#_5zm[c4iGD-׿"7RK7j 2O8o\X!S[&f8䳳S!Q&KtU,HtŵY0s;{0{NJ>MXlZ6ش%+-t xCs^P8Crk鰘n"ZOLt=ߓ\?oImw #Wdf sw4\ٮ#bܯǠn-_O;_eV!Ly?'< ARj@W aOWl]fd1I^MҷpO+K?WJ&CB%-"m{<]<;WmomF7PыzS =X(i 8d1!= ҶMsMo[7&1jTvBYKv&f&Ej&"YLla=cĮZ{¨T,w2;V"۸_pPI8~\τ80kLq8y GӯX{f  ثcߚ/SWTmd05}eŎ8#G4['t݃,)g^k{]1z"bB.g{_^r߳Ρ q~ ڻ;ƵD5K]$˝}м͆9 ^/9kLK+t/Z+~6W)N,m9)IQB./1\BϾOvzcCZP&6xf'[~ћGߖְi))lIܱ][}1YɺhYe5WXXTUTe**6h2`)5h3Ga+LAyU@O6ڜt\s_1]?Բ0t^qRch}+,-o͋eqix>o^f.%ʍ%v96=ސҀq} I0[eZ!3Н2ZY՘+rB|Ȭ K&ysYT/Y'=Nվ3֮(88_ܗ1OFHm5!{5*p*++<[},8ۯAi^9% 99@eQ#A +g8d(@K- 5.5MM|~o>ҴWq]dN Nҽ'#<0 c_7 /ޤL_ pkE7ʸήWƷ Ft:'88=&4SJXT->%W sDFF.1;7-jhOrنljd0>{e~f j"S"a)z>&Z[q̠Q[sQ͜ub+l;:@4:96mT'k4"%50+kv=װp\^^ڃ-ٮY_!,\ϼD0:bsQfFfzSҚOIMϙ_ǣ߈yl=Bj3F 2ya ~MFK-B 3ͦ._d *5fm C}cuhSyZLqx,$t`[Sa/2O  cL0ݫښ}ȣ"sL2K6IC8$ &=ƬhvCh嫥X7ս'̌ǝ̚l@LBa^c,^"?}C{40p6!s %E%Bc}>oY_.$=vm]WY9mt)`!ƣIhdهXבx?_Ȑ0爜`MT4ªQ,\V"%5BtI;ΰYȣeZ|P&־H-ѮD*)" z: *W_T)d&Fm98xϯoh [sBF"Mq?_ 12|VfWϕ9YiX-cP~u8.|$$RZSʼn{"cDM/4HQơ+U:W$:v >q'} Tv g7,xC]`J">\[YJɿmÍXHb ƀI ]ҝ|EC*V"4Ӽz,PQz1t,W+ +u!+$݀3`FLbamA!#]܆/=D(uy, PuSHvC |Ylp ,JFCMOUE'1a6 Qo_iCMmEZr>um7h}MҸ{5k q(ykDl/]_x%pDA&CNݓ-dt?*z-40W^('4H p˟uu1yUbC6Ό(o˕ I<,y)3_{SNhc){&>Pq7Cixޤ|34zI,Մ(E,OS%Qۨ@=qBC4}J?jȀI&FMxѸ젶}BŤbVmiBt4z?D>]l1Pצ^So??G~x(L|Q斊S[} sgOkudv^(fJ_OMqRk<\DX[zuL`rF7Gkb wu%QLe&3a* K1S29d{ ?8{:䞻D]')u')ގIt}@Nm_rtG2oD>'{!^Zg/9u۸-4S6q Hy-If/Je?^tuؠ~M-3>sMe2eaf 1^XYJz}^lY@6s-1pjBlFVC ,dvC #`\j2' sv R73Ɛ;-$1$Adat脑^h슄ťj^}߶ʇgbb&kp( 'F:I1Mcm #N p}lw~a\%EߒuB ;$/  ƀﶻ"Iڦo[J?rԫnPuĹ_u&OYz "#|P mO*ɂ'xI9$K)W^r{>Xt }nX>cLtg]Q6iٴyCb'1͜Y: 2DomJ貊&u=3)3 kx꿈|e!_ _L LSxGC;w46 {>EhycF=YhɩǚWo Ot+裚4C$=P|qv? \vgL4t9<oϞɴUC[4<~9Pw~a;x2h" dFj>0Y-m]kby<)ŃHe,3ŰKTGt a&NmcD$:©R;Am#ی ʴO/]m~/]&g);H48,,2scУP CuXqڇeỺ5USwbVy#'^b9X<5MO,Bp$J%]̠G_x_E$hm %҄'kLp) JK*UF=x(D+AVd5.L>Jѓ $u9i{Ac8bslջ5-_N6_tx#}9pĄfO&=>$pN)cSdKzxi l~5s`tf A2ML#fmxk0}H=pFo1*cYQ:k[?\,catdKΧ<..)ؿȡ͵9>=.l؎9cÓ 'UIxEelj 0,KtGIȨJlN[< 4YDk(dpU`2NDJ8IaEO ϛrsfEպJIw[CGxP/Ԣ%x$PŘu-.#twLze/[oQߘ]r]/@@H&I Պ/Y<4WD''}Յ]`DH1L{\9Qנ[-22rn=\HT %3+[Ǯ! ,7`88|MWlQpa\/{ڣ`f~Vj:&A2;vL7|ncLʹj`p.FShK6XNdb3 -SqIOPм['ﯯ$w6Pm/9C| du- "blM]lm_֖c6QM*]PH᥎9"SҠ[$&.a:C}p 396ڰQ>\̊;Or䝁PaY%n2Gcqj}fvn܏0~8;^IJT#,FnHp07`?!MWvD]EWa0k9LKU\=;^bIg`*կ[c[~\ 9.,7:]/eŬ42`#*5Gsb(FUW?bw~.ԯK2dG8 _]YIoy*:Rw< ԅ"m ì[W8'|ME2-nipRzުE'p^b Q@??g|2Ru6^.ɒ*f[ D{~"0Č-8#pF:z=hIPɹzxT!+H*GܸGZ& {p'|c/fKa KF#Ch%u;T!bnAJ7-`LFy0E+v"_*Xrs!J 29GMEo $4<`l]_$tƯi7H_FRcgXFZ72LLߤ7i+ dF_9F?QLRϝmO|b,;hFN{kF?@Pf!S*AuŌ0bcl`1GG,:>8:$G ^= [bp s'bju 2 8F+JIQó{Tj~d/H^/d~a]ﳇqS?@↯Z*,e"<k u1}n͟;B]wd?%}c58&?BX)Y"bKGޕdjOqJlHi&ǫWQY:ca`8Y%`V{nj69hPueEo:՛-!lnLIjLכ[):%~8V0F; r8߽!#HU?衟c_N{ K,փʽ7uyʮ Z_K)똂Qg@h>K>o6/+Dxq乮1b|KCs;Yc@hx)"F5K>6˾CɝoL:'_8u6^gΎz K[ekC()ǎeY\L:õr;b4j̠ o\V|eMӧtI⊞|$Vڞ < @?qw{o|lL>@Zy*H)o[Պt.iCB{ȽkZJߠYhA,bt@ƥRVbmSl;9I"S6Z]~`o, Dd28Kf`j4¯Lq%ٰJRZ>LK14F\=~Y1׃%ԹW_Mn^i/c}l&?x{o%vՁN[t߾,Qdf#EpJ b'GwNFj}.-'<}}Z'g2V[:YzP`R]pd:s6`,aTN u#ML!ւx2hA1fs1W#Vѥ'?mXķ6k<ܐk>@;WbDӚzq(Y0*苟+7VjR}a$ 7yoaMTӦP~tiA_ܽ|Sx3+='j. 8iW75/܌QٝK&ҷK.$:('H@k5 kEp$9S;];JߐYi[ SDԗ{yRG{"z׎Z۪_Q_^Sﴤل#^x@>.e53.Q Ŕ|u#ia(Cs*oDVf| FImp͉o=t.0N!'8-[]Қ2px^@kԟgJ}FWq7LǿS3 9n_NCYV3K?ذwzPl#d*F?uW_}/m#>ǣ7WKsuS]*!ЏBt \qX捓L@駼ؘxe8 H&jkfqOÜ&b n\{#Jjʆ?=;)qX;}C%VX H)U\S ~IȗYBvC~VD#=u[D->syo8k!4 't:1r h ~Q7S,~P9hlsD L@e DPh(]؏Bvj=$rqocl'MiW)YlrΦP ӛJ=8+F Z } c2`ó]@Əj 81opJh ڣ4p}V7e5]ǤOfhT9'RR(kX$9& KGGљGO?Vd徝E}2K1^+!DIDVORZʔ)N(6 ~TOo<bj!QjH]uj/k#RQ*#0-^ZF閁 {'):~qvbx BW~g ih! @ oRg5%1:~x,w_W׶׻;~UX$D)1B"xCKcL5x +juSG[}ιJ2"rWrzWkG [qo1yPU6^ٟ`ϲn Ah1Q'_Z JP`{ S`ۊ)KY5 @| 򓉾͟AZ>V0g(8XA򒆰n<&Xnr1׳T!l3¨RFc* '&6|5oZx Gz!U|DMT)ߑG@m[RTa49EcN b_L9xδ؛2%{F繘.EdTnj;q| `&5|v36LAdMOđ7CR=.%H Luڿ#+ѯfnp-6D[gSѺSE7xy"t?@} (!Y=c>J^bd2ƣ=Gߔy}qǰ+q 2R#m 444`Ɓ5~1r5ჹX.]k7ߒ^sڕC:4,''g/9=oB^~˹ƆGEL%OY_paѲ6õʎ7W>>CX)mҕ~fvPE7xāH1 QͳXn$Udv_Fx, d1hyʾP}e vԴ}{(F0K/Dx^O[V#OV<%TTP|sv)m v86 |x9 Ϫh]CXA,G]&ſFF Xb"7I7\ +Y yL7M{|DWppE ⩯-R'yD机[J ?j3Lp7X:$~G.:=Xm-l$ٯۄX+ő`J1-,[v"N\jغUi F E%1aH Nܱ&sfCzXY x,l7|^h4MW[ D?*HxrPxQz4A?$\&BH5ɉ~P9=m{WɁHyDK(X W+AY2%P睼{Q :zQKiSsąx=,pney%؊{zb1BhN逸S2Sf?B` =6C؇J`:#+ a/c絸 THg] V.aWTD k 6]gu{&AE@,i,VL/a^ZËqncC|Gdb[d5-`Jzd;܋t+1^0@pn1ćTK+kK<_iחX/gӘ#,] Љ\Y[r#>q3D}OE(pɳɦ3=4&m)⍂ jjfv|1R?*+e:u#igH&j^i74@2Q8u?dRho;]UCxaz>Hܱ}\GwYCp\8.[}` 峬 ,[ -,zI6~U~dg!|h>N״AzK@wׯC%! -"1WeER-4Jab_%"J*` M8C=ߚz-uqr4XTȯfRkd;ci)xH|iOzbZ+m֠ o&68w(fv0YVi]i8ɪ}fOJ{*KDO>lp"]!-/eȿ6bPIӍ%t+./ur{jRW| YsTk-ƯO(#A~,K~0A :%>ÿnrNM?2ϛ4!AePz->bĽӜ x >3MyG/Ol,< A> jփ,%%uZuH#X4qB#k佫ؾ`}P.MoW6LaUVw܋<#"&^ҜmnH&<|Ej|_K\cE܏E("N#)›8 *b}3XB2L9/7 oTb-I$ॊ*k%Wr$<89?H]Sy;rVD›cfk[1?Z8DgXNZñ_E@zt jEOڟ9%|,Oo $OZ诱,abԕ+WM09TwY>vRܫ}׈4P:f7=D!N "u;v& ǯo0-^#>j|JOv?z 5 !G5AoD,FνlqM5™*Kc⡙2 yh}xV^]2\tB܀LyXgf_qbF)?;i (< ZZ>/ծ_\PMo|NTN@ :CgF =QPdY~z_[ r]>ޚNȟ+ѩhS3V%NqMWLAܠW^5@u|r"VQXb ̘F7G$[腼E<.~MIJDNnBY:oE-;כ&m] *Q `CK:!Kqo)a-qBA>)&̼3YX] 0]XTM2`]P DY&xEmyY%?IcUl_b(G񢵸VJ~@5Eǿ__Dy/VNZlK[!~%; (\mWyN>)5S__RD4@C(E8|r vOfOJh˥ JƄy_C33Z g3n)5(sÝY*qڸsYVƛؖ4l''O@GFTH*}MsPM0VAIqڛnx}|%xQ~ (i~֎SeFM{b;$yv=_:o{x0]r(PH2J~~Ԃ&;]0ĔC7&o|g2?aG%Inkf:2|v-D0+jS&cC!g5w7Dqx8m}ǠZ,PRؑ[͞- &AF2_jy+?طsZ8,%3-ڰ(eDɣ1uSZ䎺3,AV}jd}WmMIq-2BmX|Xy4[9i Y,E^!§(kZwA5 ҁ;(Ž2IfY.)~O(M׍bʪ~B78i>yQ!H=,~I (sUR*ci7`#Ƨ9&tPoF(Kߩ7*7"XU.30^t a892KXxG'^!" :aSn^=9^vI7`7&} .t/m0GXQm8R?5ŕU'vQ, `p"iR#Մ=XԁTK?z/NXŊ=e=wS@C`G6}\ɕ;11rk ?K3$ 10툴l8ذ^쇬/ Gȭ HǝvNbHdP^Ú$Edrl>ŷxvifkc4sV}g7^鋩wO6hE?'^8 `]?w#[;ƓI]?&lg)5V> Μ^ga6'MwM˅| !L7531N;p]ފ7O؀,Qy3V t~L}9,) bOW&^E9!27}E~IũKmfG1gNZؼMh~7"X-8aZ #S5L ū50k 7gcJd-TJ%<7C|hyTx ="@zg%Z.?V!w x:ͻהDv]ޜguyMWn"=Ӿ!`,/ Y1F"> d (\\>8>g]G#nὫoJ }N66quJm>&%AEƿ{,ֻEv{ׇ@ ɡ '|}{|U3jR)% n+ ~6#ii3 e+9So_-~!n>Z2Vg>Ơ(%#Yht! J]5|.>H"ŷmVwґZKn",-pŇmY?}GE ER^XB'͡.*ɠj J!/e"Up6v E KkòxtrUq:Ɣ[0V=޽}Θfr/YoyWoW>Ņ'7CjB i㽞#..4lqcf#GcRD{V}s~+ʙ2+9G҉~ccb&!r6&&u\.Ěh|)JmMf%afoK"?Y/kxV2K7}}?k\1={2MQq .;s}^Eu)+ח.er&;hނ-oD`!`C.ʿ2TcD4>}}7MJ>G,\5 Rմ}aFS@yvpU *bĐx!-Dk-iSv ˬTΕ 4}+RV EMvb_YX5zn uF7&X Km8̐ނHEn~B_I6UZҹ.x[}N:Z=xG EhmR~S?D6DW#K}m $q,:/Ag9:hbQo1onÝ'epevBYV~F3Rޱ8w@/hO1dFJ?&9!^ODCOP3HDZ3p{~pZ$k3dΌqU +M&"JS3E䓽W3=/ěwAQЈǍHa ۜkօYGk9HC"%S!  An:w/puA;їaSkC5z֏'ݯrz6$1KUz_SVH3>ah%`?ͿQSBA7;_k|DѨ ٷQ͡$[v(yŒۡ '!2q+稭$6dF:j:ݣ1~(D3">K7[ПK8 up9AFv:~IgE#5bjb 9Җ-|:n8@폀zuW|1nL%}N" oѓ}%16gтYGI<*yl]0έr\Oݹ#~(+ȝ Vc>UA[X /p;`B l%JSRvX9l[(p_o[P7TRMW l/=H57꾭%JN 9lI!(15°tK bP]ƉWcxN}myJwh='K;@m!2UqR"G.Ld8;;X I`.tBUVϑW4$3m|c6ʾS' sSp~ _ܼc|p4rp+J[u/[FI>$}teFlb.ο,&H'' ~a%?cp9d &.@K92;8;jr C |eݰ>TQR)I;ΪO0&t7s΢@j9aɏ̃~hz* SYcnQ!=q"sjV'J ҟ7_JFrs@hړA)c}yqGko:[z8ESGe[6a^<.vqbmoɒ^,b'jq<~躨@uNY{qA,J8> GTK?ľ.X|{ӈ&`H5~m:~mԬd 5ZoHVT83kS461tQO]Z5'َРB>ʑA^Pq!I[B+IWA%4@Ov̹8H &*#IzvZ:x"NC2$w2=Qc1ڡٓ_ Jb}DP!r$t([Ri[OٞA6 "nvt!3啦,(NǪvIG?cQ sF$d/J#<^޳sKM*| ]*{X:P" ghN 2F|ˁ8_% Qt 3VdмxnG8& 08թeGK㛿V{~]u$Ow):a[kT9%鑢՗Eڧ&J nI W ֓Il~@Xm9gPY}. Lq=*;jQH,}S.hEo8DtD-ŏ1$^U% RγI gm%һ w+ ;]ֲueUBnno_M,p3,(NRWQ O[;v=߽^[.܁?kd}: 8K~()m &K8zx< Gz}6y"p*U67,Z _ 9>Qh/Hca)wg${ /GYRg$ϱ!1: l$}j[p ˅,u)DǼb`ΟW|ހ8TY8G_i;N%ܐ?YsR٤{f6ܬl*גpI#P.iX i+1E. k2I7aU/={ERX:رORF~}vw7*XDLL5Ct+hA2˭8HoƍK[H%@yl1 1f?q2C[]V!9vʹ$SlK~S~E?bo}e/L!6i &>~60ݾ{;h WSyθex{.c|CC0z}h4)ۆN?~%u$}-*A|1B w֚PeL0 yڳM+7`zaGuUKu\eDC[T8.Qk9tڸ$N`zipyeC(&j*4ʧ[dhߍv%gOY BOݭ{f? #_p9/-buJkD| Wzm%kN49`qۮz{Oieh-(erU nSȺ;|5_07wQFv?G,&C#7}0߼I缈ZދLKy8u% +)CҐcgwShH_ՆbY>,FG.]\ RL$~H ~q|M1~HY zT&ݍ;^&;q9NIȰ3Rԁp#$>ٗ_1vmЉc]e⩠`*̰ )`ɏbRvVJԘ)GlC-vk>tuyT0l&,WS<7{$8 ^(=`M9(+s^}ID3w8N+Y_ B31Fs'`Jo9HD,_t>g\m ; _`|vS؆T?pk +i=m&qyfJSW2V(}_Gi @}Hvש'M^U԰Gr0߿=xRYD6x~SWP_Ui'>MU賆 i r͞l$#+P֝V_y\d#$+iiG4Q CZ#ݔyK`[ I*`MZ+ 6j32^MG%_'Lu45e "Qu;G9봉_h7łAY0"b U-A T䴕1,.(>sx/8G* ]]^-G`SK. xGFh1?T&s0^v6`l ^,,6$Y.kGI2\RƻPdcGeӦ>H!U.7iN*jL}oX1GSQ_Q D W9 >y*ZSߓ1ѡv禿=fRnٜOHv婦  UKM^X Kݽ-6OR39 !A#@%ٰ5L*WTNȶU\%m޹^;&ۆLu8 A?B6\(ہtm .&wnoyifOp\Yfx& 8;eI˙TC![2{*#3wXP֤[4 d "`UX$CU;SA\Ѷ9^ÛȡMO5—b)*b ױLs&~Eug,F0Bbqn!.NIUGJrq]a6I9TvɘvK?߅ *>5'Ԭ_5\ X`}֫pP0o;5{nڧCUo%~H-VV`>]x$0S*󌳤']42|:nlPt| &ϯrX|R|ֱMc?9ꠞ1Փ5mRØ? ת^~=Qp#t^ 7&=ͳH#E^1g=vfzٲ;Kl} 󋁤@2!b[*Q.gI?3+6f^ͥp) Rd/(ԡqGTHַ{=ʁ6OۅY \nJнI~Ϫj>l7wuuX_Qt-=qM\TOL9>ZEݏ<<oq:Y)5WVo 4XKt/h3e;(YIg/Ze5!|~OC9c'k7<@-gQw2^69a~ĺfh]`aj_Ud QJ wG&l`S|be_"5QԂGũ2xyq,\IFo5@]x dܶ-iBo&g[fl-F6v(=.`;"3H| ҐwZ7!s{j9M jojN " ~421iDѭ=_E4m~v-S^:>d#"0mɊjvex#$T/6DޯpG'fm,⠰߿$S1mS}56#vu[WeQ$# ~v { 4}4 ] pc7$OPN*^ﰗO2h{ScR$~ RS( h#5 4aDcf~OizY*I/*i#RyK/ r+[o FuD  zk!|QM]1}rNپ/ND@drg9=$U& m~H o񡣓Sv5OPn;Rx z(^E[|ߪ(6$x¨<YPf;m28Vl 8ǩؖg\^k2{!.1wYHN6=dS3VΏ$J ='yKUfs'g?,i_yܾ <+`-i|>d2KFSE){O%e2\1|{n2妚@n9RhqT ]j*;8kTɎw{ˆdGkr;8 ks=3${|bl%(ݗNPg}N'%r5S; 9ᑰw^ 37eۣ[d ͊"1 :XsEOYQqpǔ*C wv=ijޥd (}{H5rÜh3m^Q/3RvtZ*WۙrSKp1f*04uZr` [#q߲,me:äQ, .=z:wPaoV[!<ՕV|vk\f( X+`v- eR>хBLޢffj*z@2YӋǠ=Wv9Kxqjhwy(&9|mDYLڐzTP46sπmmW&<6*T0gkDbO舔A]e~T" 5ējҥS*S~Y5TB`vKXٵ4,"Vm@[ZdG6kl7s"Rr}!;߾I?U=lhOFw81JXf**j֠Y=8[ÅQ=,]t,Ǿm >-[#6ۭ/@X7&z"֖[uvP6os /FF2ؽyo:.6I:|B]V,1_;xXfRȝ8u8P `Kń1.,YxmKiLۇ}ոlDkϐT+ѻLg%[{;`dCHz3oxuuZ+Z69Oj~z<;>35,XnDW =:/c5̌MVK8c.1,8ҷ?* +`f/S]DM#I̵hxi#6/2-ŸO_@FooneV(h> }=G9Uh3Y\U桍"O# hN،bu݁.(q !s($? GdT$cPBpqs<`Q7z47!/ad1Ne8-d<@'z/kwr h;F{Ye ͅs,{C) Zdi&NzR[: Q1fSP^f'#VwGO/dZ9 f@IcD(c'hQ)9y{ҞV.cʿK"9D|\%åcI€z+ 2$h=n 3A2L7% WdJ8SCslF© ڪgQۮ:C>%vꍴ0ѹ+ǭ0KݙŴ .nl]LiZ9\?$s"Ix@ /71?bZJ{^S1_]XOf'qڇ}2,|sDɛ.9 ;MSzGG)!$χA+S+OwTw":>W[@ۆC3 Ig̃,œxW7N7Y CK`uwsT0;YQJ}j(ާ} ;d9*86u]~:w"2ba8߻L2K_0ppRna&"u+b3Q'LSRƸo*:1>f4ފꏥ)\0C c%֢5Uǽi(1Lhy~|nĤl' C̝?2^g7:|@/0W<%MjmzEc̆:ζ![$~[(Q]uNL9s>FY0C1dوKæmomt@an-*8GD8q-,aA]Yњ%JRAӡ҄-M_Ə'4ZFm&2#yclPBx"Ibt4dL؃f`"|r}Ѷ&筶1tt9 Ǝ1s ?_:$бHsN͓ LLnPdJ:|15MxQR%w{4GP"3Frf3niqy|k/a$:]i5R9|GUff w{8EpH_(9~\g UR"!BDq}Fi|Hqi/D#Dto}VpmKbLPOM~"C]> A=H%ƦzWckDR'IvУưc*5g-[p Ӭ:榪I|YwHE5 - k#‘S =Z$DՐA5ay/('H*hQAgԟiKXz~icrS@8 D*@USC\M#] 'C+f-c!1'Մ2G,n(MǛ{ I[Kj `G T&GKc}2Mۍ@qQ}O71 kݰ9.L#j(^ܸԣU`NIw{*3&y4h PlZE <-Nd Il|Lr>}aCڶ.&~iH[Xmk.Osq\z.bMiɑ_1S5PC! !vA`I$ӂ<=Ž}C?^zFl=PP)k$x ɀa >{K@^jWwAiփVx#5ycʨzZքW-4LKX]8[1_aXۣnrC҂៘|_ ly!y3փS[4V3OM1B_yZYqݓ EOOoLKzRz u&tKF\dk(E1XkCz݃0}ӭ͋^" ^H֌j*l3"Xuf2ެL0K`EQ\[IPyVP):N2aa 5b ̤Uk.ɰ`fҟa#)w"ɽˮE[>jźT\϶i2,U1_s/u"S1>ٹ\\uLD<Oȑ}ߧ켫A=7̬0Oy#eLՕq !m-Fkxn?P]ҋ.F/M/Gl!J;I\r-Y]L;G4D*쟚@!]\Lܿ6,t(~c!O5jcڿ'3[޻枸o}}`mCҥy[)$y3Nw0(HK"qp3Tl~zZd_h}@hWˆ֖pH}D0Ev0mxQ[z3wCY?13tsSg$yUCK1M*wIDt_CN壍ϋohw_#ޤ D.M ;yTojH x% yj"^ї?y#Y!ο#)ň8LN[/(CfU~<8O>X0Im0ܱjϻ7hR5S ÿdCk pY`=kd3^-F_Ќx@# (KNс^GRT cỊ@w EֆKOZJEB_q ǝm\umspKSBje˙"HAc8z|P&I"$^?u&b7⼸`zj@؇}X4"X/hߗ=h^D #}WdUr^(+̚;lq qY;wTVrv(RлptA(;TqTCC ͝< :} g[lL'LA_E|.BYUy>>տr [Jv+|5@G䔔']y/[O1ja6T^4b]!l{8S#Mq;QC .zfTJn+J<sʔX;k8l~G+C3Hbdn@cyu `eMf0Su <.1 '):4 IWٙ9A5_4~A5GWe$jͬi*gD_%r+WȺ ?FM3Tdn,*9Fx 6j #qrf+uCNlb-WHi8-kI=7/ߦ$N&&locÏ#}Z_6\Iw.SңG "ͭG Ιk_1eT^Rʧ`J_~˧Vl!;&pOWӰ*i* Q

    V|XyFmg*y!Q}=G}԰c u-mY(GϢ:~1;kG'uZmWj~Bh!sD#ޞ//ۀL$5(zR,b3f&GXkaS(| 1*ѠJZAD>;>2+TQ ;Jb&r$n'uaw ϗ*kiEn#m^mwecd]{/h ~ޱO>ǚ:(Bɴ]+jyeRy.CD+7= 7BHF=_21xN/#؉p]#Su[dŌ#R}]P, x%(3|sl&gW~/zQTFV9䆸';>y]zu"'/6f"hIO"XO؝͸iCƌwuL|c>=qU?Ox mǻڅ6R`ڏkDx1PI`m{Jh͚pDJr`؛LBL ם>8<[y[H~Zrޣ EK_!M#+#d{KS ܡاc3]u':5*.M8*Kæ%9(s&n E`G+a;,wʎo*(ƒt(e: fgmc$s0\wnVG0z_/R 9d2q@<7ju0 ɛO~df)5RO= JrGgKͧKQ/gȖVz 2KJ&RmTm@i|.$p`OKwA뷓-m|_]B ̑M{>REl*i,-7vĤ5.=Z6D̳{1Dr)pX+;'56nɯC2~-jq>2SB $J1K˳엞i6_n@4OM=(bܗ?Q߳wOYkaL.FD= Zr8 r0WYk)253LQWAvҶϫ )*Wǐ՟&1Q\K@Gi?]A/:TSk`ǑvxҠMОlmީFȔ>SWnP-|rK`ZkRR}d4(.CpfǶߣ"c bF`/NjL)%|^y+I1OC1tAQ ҆%, c߿S(|>n{;) G,ς r*K$D[v].uzӎM"@h?}:_$57Hn|8Oߋ}BXki ;~\6v'C al!2He ђޥew+HFG^0Rx)S\tj=YP Xcgh K2Q"<!^і k% ;߸IJ r7TSx2 xVB#uޘ ]@tn3kOi7ʜ _3p:Z ۩[1B& {kL+c4"F*2MsEq᎒U fZbR91k2׋Gd)̤e:0]+o*ƮuM60 ~=76=q2~kwQ b/0 HP)+viYſ)!ȗiAS C6G^P$jG)h_J5F@H;#w/Y38zS'F0Mp'$f$Q'ecv&xcow#8C5ש:&(,"مyev[_UF |ZfYz|DٴS AS4{onx_gHw Z 7V8~KaL8v s0\d;M"m[LҬta,(6v)"#[WOM2c)&wV>Jx5!I6sJ$8b0Qlu'QG'^ ѵ"/ND 2- KBݵ۝frO>푊h[+_11(IA׸UX_bŠŜs܍>߾ևd{6u ˩$)DIC/zpH\0BaBӊ'*~g ?gR8䖯ob$ jPN|6yam5.5/u/z ՑxUx>.$aGBKmP0ewe&mpG Su7NOMÛ3#"8ȫOPT751@ N7o 0RF /Tqc ,CE:\={*e0r18x'8A0]1@B - ];; 8 a?&أfeE=@fģ߁Da"wF}3U3(v vgQL0v&\l1G>(mW|u|4SInHv9;\nɝFsi!,\EFh8rչ)rcvB](!{S$yώUEKUW@Լ+!D=D.?zJrܞPv3uH>Љ;—QkeN{C AKa@b'XˊHg͵?[]No<ޮ䉅?l%gMB~5Irᩏ,PL&Ku_yvGP"!4=!1HIdookCZ"Ҕ!`v!ȯUYǷJ?ͯ}o֖V+WR;:^7ǔ'WF<ƾ- K6F}BntdIcE64sMed*!vElKj϶˿^my/RWp5{l2>줙 OQ:aR,X6gqLz] oQ*f!Y'_ :3M)5DSΉHnw iAEfO}i }>p [8л]Ֆj|MW;˸}A Pw^tf{,E  L|o6"Z+9H, ̅&j'PGW # %bظtkx:AmQVdX6ioXULBWǕt0qqH7vO~4 }0f˷+cbrEȌ+W4Aษǡ'—9)_9} wX=Y9RɋgFvf/g/'ek|OsԯTgy硂}LvevD 8H_?6w\Ye/Y"C?{ 95S5h~54oMHٷnW7/}>-zudK**uYseA8teggQAϥ-0XV2KRi;sʲБdPQ` !N {`G _:[39}|CEw ݋Cz?nRvIJy'l)L)ۡBH5 .lo +' կ2n o# ~ZA{`f;Ig0k=xo]$'X|zƬ n?FhQ7|6hLruy(y,*}m\e‚/dVoY71t|WHc~\L1N0re:B_\(UTIVxPi7`ѭVyg 16Cw X 4"pMᆒ5EqJv=oҢY2R'tOp+NշEgIsU_'O%]D4h֛bz& 'z"FKN-8O-E"ft@J?BܐT{{mY s J» ߀TFb0{W=Y2>#V} %`G=sde}0D>6> 'LC1(PwL%,NaG"|m3gi?>a> {>>_/7'xԀZwaQ#!RZٚ#])Ͱ:HgTAEܣU|(zC 3,BrGs7m]^^ z껈bP/2p ")WlNU:2FĦ C>"SNLao89~ӭF{Ir;`9dZoZ" Mw(0`wOi zeEB1xy|)_57'컹RN4uC1+m] Ω=HeA fG}#G];4_B70cDW6 !EM09 U"k d/]ӠT™J=%|JPIzϘ#r>Um)x5W,u/F!,Rɟ6 2m*q\6*fJcP8lý;4ǿR+穈rnvio,FT\BNc{zz62,eąf#`7#L{њ&b'Imw_YR@Jn_s<5V0ERO`H{d8^ZrpGK뛠fhBF(ꌉpu`:_a.^!(<'R-LI+ % ":k4_3L_O ?2c΍? @)(5V.#[7zyXEDm2A=gdHY :r/%X0\"Py *u=HQ|ve~9U]Q< Erym0䐝-WjIn\tN蚜˗/AmPnJ8c_$!gPX{02JkAk6wCOrQwlF9QH |zwkPM꽃v@@w8 d]sdH([Ӂ*jɴ9~zSr%Tv<@h$P0^:lIyv8B^0,7 Xݐpk^IďDiej#{X//Y_#ôg!&2čKcC6Ŝj‡@ۺ:(p 6Y} ΜRߣr .n;eS4_ceżS5KL!i)uEtխU$E=Kb5( 4<9l:gk 8w]`*QbH3-mQ?5N'چ+$ C<&09!8H,|S_lH)9-f; 쫚z[ui)qC8' K*괛fKM{Kgc`6#.1Ik2#J3Z5\~+T_W2߅ˎpkc>Yv۳ȯmb5#RFU(I=6$vU0ޫmF/5@m;t6i?Qp}Lo57Г81 Ti9}|xHLT5n2" x;As q~!U) "T\M@Sx{tѦ$e;Y>f ^o8XbNMgc{ziܢ ~tFx\73[6{|n[mXUUI˿`lY-@<;v7S$6O=ZDE F k%˶N ƨdV-X3Ќ7 /P_'ÿ}Y 0dۏ1uq tx+l 8~l5V}JU[ U7g34櫫NgS`w X<+V'IEG\ZX N ^~WzйTE={0%";jg@Eފӕlaw)6O絟./UNWtIk=DhY\|6`(KN[ՈPQg2gdr7]^X!Tӷw[c1ugU6YsUu ?9LѩܔZ4|6˗yb>@ȕ~ J8$ǻy ^idgDSY+rʳwrm/π>o#㳎ػ!';fi*QǑnʌV᪸6|a"!}qQ?|^#*H4_<βa_lGGR'v |+" ѡ*U,'=2BA^}, P 9;e̻:D:m\ yzItu&6#'-y;}g+JRg-+2hu's:Ay Z5DHL=@o*f$&Tnafֲ},&{TV<[Kpq|#Fn%4̷#awon:PTٶb4\gmqdaW!]q6C 8 /ף}]oLác)01_b cΘ,\gRQBc,b>N]r)°ne{3t%:*;$6W`}.2t]ziPa$4r/i4'~.=n]XJLDgBq|nYgǂ# b?U9xo__++v.UC,U[/ +c8h" I4K\ -߁2'DgPO: FZ+ckSRm !64=-z[{ ̇x-տc)<|IC:鏒hǕY YeIU_|oc8ʯ&8FlzR\Џ).}f BV@OÛ'k"~ T[V[HtI˧Ǜr_ڐE> |֫[@|0'>"2 aMs )ғ<7ߕkǰE>R? ċ9Tlfvxs{0֧Eq9*q'Yq q/OA4=u37K6q~t_yь,pYC\+7P[P&^)iy/6=:ATLy>Ϩ_ Āl&n9B!AO1z,{=9ع"4*TtT o TwRotoy:'F7oZ{yI<ط #h l }Xu~<؏%v[Utl笽 /=, Tps0t5UDs7bbgkzK $쫏YC=0?oTy<>$ZŏN$虚[40(l *xY9TxzH?O 𽲊f][d=fm~=E|-stu5Fo6!]$7Sv *&Ƿc=Kֱ9w]>"h ܏ѿ_F0F0cv Ma AqzkCL(o bDR㨷Wm:#770ӠƗ5 ¹yˈUV yI*-~VޮھGw@SQ (E!kq]%f,1_ikÆhe{o#Q u}(c?P7yB3lȉ,k u1y'3xsM1{T4Q6iF̿>5J2'o|k`k@SƝ]zUH⚃X큭q yu6L?=D̳ U۲/v2-ur/uA/ܸP1xa5u>ZЬ&ZkAM_)Wl_йՠn7J~FCD ?N|=wk-t)Mh|Ӳ:wJZ]3-FEv3.:nRByϷ7ңo'_ SI1}$<4tO( P/3TRlm1$c<*+u8h\2م6xP#Ie @/nUsV c=^Fi2# u9^Q)MluERu+ Elx.ջv.5.d޶h%|޶tMfqIP1eN3ѫ_lW9#[Q~_h;$S^jߚ o{h>TyĚut5`[€Ekq ^ԯ/'sC#d87e|GH=[׌Z6[JZ:~HqSs#ܽkg  gMƊD|zmBKyKAځ]K/<ճ[ l;[>ֳD6%\ڏjV2Y(|h{2@N z_0tk2ƔuOp&.'Oq/gOˁɭ&4CƹUQ$Afc~l=IA\AC\mеJZX&-lwB^ K.[eu3R iK%`l*;WYS PZaM 7zrl,ZN;'g'F#B}Z9+7"KhJr7p\J_h bslez:n{zo 'Սh s1˭zPD뀖,q!zȢ9뭮N' }Girebj'?#[n0.si|STD :P8Gp`vja%eINVN{lufڗ\]ӺTWճ`;7v9I@#6gy>Sgl=vYlR(=;%wl騐p "NCM8UN%%h0a'Lz,I(h!`S 6MoňNen1NV=xòJ y&IyQIqi}Mjԯ׼}2w "kl"1<\}5IHvr]4A9SC'7ICZz9e3X5{5C-C{mޛ:($uo౼v{1O>X1{G'ks0ui4<ǷT5N3mTeHl78IV|%'-6ƚTp>"ֻ){#~^ k} 0BR0>PXi/LL@SzS19}[>l2:',DK2b{$)%NL8f92xyJׄfIFj 7X ^ hSC)|բGNr&e?S =G7(W{=XVbPťYOᤇoi۲k]"'vZ zHAIkaH%Ԍ:Dŀp0V+޶g'Դ,$tD!oxA"(=$bQցDByCvgd/t֪\mlx*$,TQYGcAa@ePc#;R\0Cw0 bAr/T^wۼR2H"/p`|:wX5Uj5! '5EjuUzнg{,CoAfgi>- g!醔\jӦ9*JMy$CPmәLEVoUd'0.!z:;4*!D^u*5jWR]qT QHT]*)TU_ybZh+H聥nMVjO 3ˍ^_W 6cۼخ zƛ|cغLc*8<Y,,[$`1cAn'۞WD?Ap6ImUD m rx㧢 fY>'R/?=lK18mu􇸫#Lb*[Di;wWE Mq1E>}q; h ,žnyUa@[%ϥweA#귅M!` ;"XDqmc*~b 4yL,1ۘR1I<}ZB:E] 2_tyJvmĽU~4G~otB?+Őm |H=|Slޮ? aO[qL~LM}?nWC?7scp>/Mӟ~a{ȑ$C0~֕E{p*ç=^ELX-W{{ PL-|eԫ/$yXFIK?9vNFo&υ|@E'.l!/nG<%W?Ov7qr3/_ɯߛ]|H?q:$A~|M|J?o6Lȡַ7Vb /m:C؎1izxLe?iFgy$SBWc~93/ &зRT C¿)Z:!(W ;Б׉A~ӶOV#E1 FoL绲?q8 %/0+Y_ c}_ 2 ?lew#s>;zC`kG|D ؿΡ?*7fE|>q!sHdpnH&`8{܈&Pگ27m Ԭ(J_7gaLJ1#s?_!>DR=_ww˦C>2fo!NNCO#`;f9=-@Qxp>PG m[(PED3aS߸Fx1_!3ؗQJC#AhCbpԁUN=D? X=^OoG#`ahoVu`adB6{aOzf#v7Ey[;1!\Fd) I8&39/FC x7v }k~ewVA V>5-Q7=^C-H@Y?YY<d^{?.+>/ϓ3P2FQ{> {!]6qY ^E0iB/L3p A|? +@e"?iHJN ៕AuHSG6?G&ɭGFV y<6owv?$~pG1>0xG|Sŋ煪WȏoA׋ 8P]R FC?R(SH~t5Kkf/7] yʱ'~ZE %O ߮G>̧jA&lȟ#_ ~-:~O?tz7@~m;~$zqU>68M5*;!B+8 J#sp`GF>Aӧ2}@EP&Ơok5$D!ᯄō[ ?&#*4(~VE2W!?YTg@/tt`4l~c$&࿂ME{ZױY>o_sw}e!Ϻw@nEYXn9a&Qo;~G>|`3}|Di&I]) !꽻o;40 D#M_l)AuqPe7mǿТٔN ۿMz+u/}e} Mί_6j| -k ?J~29G|_rSF)&k),_gn9_ۻ9+ r?/2O~$<|_үf~0_6gĮN{?cCy7㿖|+ 'H~῅$]79~[~";_p 6 ӈ5~?3->|o4']Eg-_9نoI~xoJ8Ç/}}ƏO_=kgh>r3>oOAbT6_&EԄ8uqV>SYVM#0%4 WH@$p>}?~J"N1;!WrhSth~?g~qn~>KIoω~&p s PL1!AL ,kU\3c-dYBgq?ZO5}_²{>ųl~|9XbY6?7VY>Jǭq|:j,r96% )|N~+;7_἟kV^  "#SEgGB,M.H en܀҄OqǥN=2bU\ DA%SUʑ+/QxX%= e%eL*^@B$̤mɦd&[Z%Ey*kǒ mPyxAbe=g< u@t!rUO[gH2=檊bEu](1V} Y8 'fA]ǥȱx4'S@JƂXԅ3nf²ᯂ5F"v@hn rNv#~BP:>K ]e&IJP JF9y[X(=%>4]F2EOPUa vaOyD7Ι_elK#7IJZqnlL^ ũW-[_}ݍ:2yUX_>I'ZJS?\|jh!v:jݔc sVL@T:sAWFՇ+h͢մoNgq(x|IJ2t; D,JDzRu>AQgtөu嚏ŗPep 1nѐ:J+fIpp<,Eb[cN2UV%#ިڜ: ̒P۞ =k+D9@-;;<ߥ0.'iVci6}+var|ԟ4-A)RzqMEpNV/ M)mw-#EۊV ƧrY;mUJt%Iw~ԈyZn{?)[]-3|EP ѩ⹽:sҐaT(>d߃R֊F%je ;Yp}eM)iޞK x /]naLrزFC^4k@3-IBU5zʆI9m_p&j>5]W)=Qe(=;Ld]uw%oBk=XR!e1*Rސl52mOWv @ >mvgh9T\lk"s >릯Eބa\tRfYW{KN_Ӄ/Kur.~ k#(\bD4J G{ܶ-RS9w/o N*0=e*)Dc'hk³K;jqӟ(z}t% Hz^w!_o ~Y&zU(^3l/)Qw3uZ\ ;`nUw⫞.OŴkF7Mxe%aO)cuѦјTZ^E{$f+qWL2vߊڼ:"$Eôq_62 ?ۣwpI!ꖱ7g߅tջ1f ϘUy8b!?vf+ƙ,Tt&_889).-2vlPV\oFکLN zJUP$(ѣOmnbAV_X#1[y_{3VՎk{GlfȂpϚ/V8"$Uڕ#O᫑ e[_ſV!,f69<=w2,1¯%*#h%u>*,Nk>uCeo+!ieq- ~Dz@3B8>ZO7K@ GLY$j_biې#u}`R|xM='ƺyt9=ua|[ǖ~祃՗l3ӭrW/w1n rfzX < dg~Tcz/{A &Bv'Cy [^,zru"<峰%zsQkg=(]$ O(Рg=!_F3Zy@Y]\fXqfo}ꟚX;*E ֌ٕHP}b]{ZWzgš)ΤiJ_>:'p`>wt>؜F*_)\X=Di4d$-R^7SMOcAR6eZh8rmL{~g5.du=I ‹xѴJRxo2;=i40v3y4X6f,| rKg}T~JG'Qʿ0 uP>ˢl)K=DYS+5ldu'Kuq?P Svs3F}+_nЍ!4tp;ECdקML)nUPh"i+OrD!J5^},,bˋk ҳȠ#)#_qKkA ؤ3H?@λutU<o옘G-7Ϭ%}d^¡êr.a!%a32Vȣ2xo_dPf

    _D:uBM߷P{ՙ@p Y4$>yP? Tf$ڃ.~r0]wom1Lo^:>/OrfA4ε2$&NDG~BGe.[19&2}˂5N^~neXa-Ξ1 2 O X隚NC`vsvAN8]uh2iQ栻m5zdSڗ1nBI˟&qqn uۥȲzvlCC!IS՗%c%Ql'Ě< aDP"a<)[^g%bewϰoe)'Sig-\aKc}qr d!sA,%1)FC E2W )PP+H,Gdtf(D5uiO9[3{ĥeKr#/.GʰQ9NOiI^'V#~ 'z xN3]Dԇ|N! @8!8z]iVt߱ZFͶ_0Pt#VuQ4hsTh3qqG'4.=ϗ &E)(rGjDlv(y3,|ڜL4=xu{-53=NIl7t5TcNEO{{2)`V:J֭mN\6XFsEv+{b|W7!I,k0W1Nj24۾^IXsY⛮{Q fuNi,&סjTr5 v {@U=^t/shj.%#OZ1J'a)lI_Yb\R^^uyٕ^xadze4k@|r3`#:=)x-zrJ =zIo*U]-(ƅv֗!}tۗʌ %/"ƌ@U_Y<͟hSw,q>1ߦxp K7m=r䟇R| ǃL=YЀO&m괵 ^pW4fהD{x[4N"xԝAl1),I^OE->u%?4D4iSIP%|xU6q|[}(b4@ vN^p=Y%}W:g>䣨X q(|~d1t}T,6jo΍3cfmףyy#LrqPGh.\~0p ȓd夗^[vkuөzKvB4f~K{:c=[\$A2G@K41fl#y{/ȍy9r-qn+=Qc0$,@Hj VG^.h;Jn]БgtϦ T#ꩼRl_k a~3˶AޢkQ ]C|QH$C+gb^{OI-Ɲ;^ &x#=^MAT5_DX_ߓiVTʛ3S7IE#7 5o%|m ]|ꠌw [ըR Ya%S'F1UU&1!@1 6ncwuG&;7ػ 2 mB4r[.9kq]3<:% @g{o职jۦG۠$qhC "*PoM9Kp}i4Mi6*aN"O)49Q@;H%wQ4dKK/j j|d Nɶ}#${'$D>5cӺdr3JWOt!̘qNP ͱu-۹X \WyW /'eM =ԔȔX[R5oi{q#!4-46ۙٚk:zEݐ?iRaK )Kpgg&YH7{tdW_MrZrt0#…6[nV~q#~Tv15,vo؍V!e z5yR?dJNdP3pyQ7*69L~Jy^}ekbQJ|AuF&u,ɭ^qOPd"6gbYfF}%]rR(I X \ݦg[N0jrDk*F˾6X>˖v}1"B[m:?B|2?H4qzPU2e'š g\RM&3SrSʦV>&J5+:TD(/ 0^0"u<ԛ覓ShνEw4^ž݁*sՀ,Ɍڝ"FJXәޛjVRf'Kgg43 : Md2UF>9h@;\UVOi+G305&r12]/KV:z;nLWa& ge 5!kՈP١axUl$(:(y[CrHV}Xk:rUN11oa" t]~^ҪͺDe>0J RdIpYc<`I4A5G!(n2ݦeqp~mz?*zC%)#'ʿinl+.1gfF*1ayK)'cj-ԃM7So*m>cI o+ U1uޛ,\cO.<6{6(E8@,q| lOwPwMūJYj.}#rLOs7mm WFJW>0!{BƮclvfvMI.(j#fX`Am3MGL?Kߐ Mo `4=j#eϪ:\P@]{, 4rSNvʑ#(k"d8g7QF-*@tMR޶RͽiӼ Cn2|#."~+[´d4;2ڶ&*싑'zC)AF.˭yF áM}}4\TUǺ.T@h^)rPyK $ͦZX甦j/dIek3@OciSG/Z*f =4zB٣AyIS+,rf5R6ylRCe`!u ej>4}OY@ 9'&LmP5-q oGUf u_@/(3U.d`SL A1.>A,DP|;hv5w$JE{$s{qHpbOy0\9=86O q SN%PV{NbGJy@-!TTnkWgMo[" M"ȆH0F‘\aj-hhcn:J,r8Z-$-PTyZ>pLHD7XIwTZW-^$%NpfQ#eG6@i]xaKJQL$*>Rn=DZBDE,hiGcto0S 2--ڦ PiNh~(l:ZOAVV\ |{Q<-O}ho|5P )pu:'q1d-$kT~;n-ve[M=b1ZjJԄe\JbQrPV:PnH(fń(l#Cb8c=XstވP =&CI& sfßn6;Hx~^8bSE'0Н1Cy+KoIu{sRUfm>7~UOm8`CR qy "~ a\m瘉}a$9j£b>òtSn 4IA87R8ZEyr|#q᷄75L=Q}"zAd C=ϵmɟƟTZPr@O_/% ܧ{6Y\B}QDFQ/@y)e C!oRxh+BNݏ- R+J \,ϺR ;;#Pb3a )c;Etp#붫&¬3I: ՁO @ɩFI-I^3mݼSR1?oϠ"(ĤwK,u\dA`@?\Ɛ6QivEl=^}jIE2 CBp12M3{T 3 ygBdl $cNkbNB~ļqg25<ˆ@˷SiL(Z dn(RXlYyuZ|QW"se~T&8dUBZXwҔ$f~|@9m_5Z;%Hv ĢӴy88!~ZvKwX\au_rSt~&$,J@BҹSbd@s/;O>1Df ǾU'fǚ35Cxyv /`@!NUEPu<~%>Y,;^c%~J~/#4l/4NFEym,+~_T~K)]*2b?Y'8ݦGnrJߍ-v];0ɞB2ajx s+|rc]3'RZOk5/]pOggp`}!Sz"{2gaU&`tgt9_*BsEHGz U)?#Aa _4XK{F E ?lYdOX9#A6׸cCrK\Y0H.c!㳞/^-Yî^Yô>\љհ+=XqhOL}ȹo}_m1l8'*bs;7LT}۹6 $z|뤼k9ё 9hedj%a7<6Z_/1p8:o'[ݚB7J 9KO} z]Cic8C W'ȘYOv'+aaKPr}uҞ<Uk注e&Y@Χj{K=#EKW=$qUc Ro7~ܱz *Z̅dfIo}`rs&aQhhLPqw& i<;/ R<6FemC-?ӬfC{* Ul붯: 7|쳋1}.₟\"}d~0L1 IX P^@ Ԕ 6 D\ȯ>3o-R4Ȯ~O7I#l)LPʽ,ʷ1>*V>r>T`PqvJ7jZO|!č lV+W "A1윯2BizP4~=rX+0k"9%ayZ[6Z_Ê`DtBRO&NL$Gl6%B>Eƿ ͯ.o}O jufħgh x ٨: TJ29GlLr v%|[Di kgZV@7(~&>>;_eڹk2c͙\?y^V[z1!)fNC oѰ;D8̰iGƔ'hRQ 3ިI|O[@l1+ݙ% z,,-5 6eo-\m.7W Uq>aL: y(s%ф'  !-6Q9BkC.~T% =˔JxKl w: H%> 폴=:B@M.۩l;q=zR MqOYҐO32N U%RcMל2kQT?zX1OPgz .+(5kTz/(ށE*id Xƒ\xֲUJLr(Ӷ3{΢Oc8/tڥEC7s%| \cA%;ԦȐsQ<`/6LnDEKw͙L!ot( ,YH-?._5}s1ŠHڪa?6hi4z;1)B( Q;ru@* <eȾ&#g264D*Fn@ כ@ÀU}yU>VQ審+\$, JoHg :HO@g(%:\n& 0 ҵѷ$6f 玗Rqu0C.*~0<’uǿ_. RՏ5lDa١Upݫ %#^ޝHAn+,tLm-#.g)6m?\)&1(`ePigtHë*4v4a>LOm>V6`4]T?6đzuFzY D-d}:O-_pd̳eAoiBþ[ѢýۃԾx3~,`I9xWx>Z]%Ude"R ⤯4>b&dƽQŲԡP}^/Ӎ $a`)?%2}Lv`ja2iGdҝ*W&Hw彎1D²ƥS/P,<= %?Qm6D(1.9Ӌ#3\H9,uj~Q[jRuZ{_d}ql;xYmSCr]P+@/^S_҂\^!m㢌E12Z$f$n.h̓O4:,O6}]ꂵ2 "/}dBiA_ޟtAmCf,AJ4 %[#pG ,|2&'/ްȯE\tWMwo^ҐLvɎ*V`S{2DvD LgD?Lg+?SV{i:K4jj( OzUdGfއ)kĮ)nILSOyļ:k4=\}0EW7j%ԔM9R& 5HUrR̃yeȴ9+ISm-"PykJ 27: ϟF\ LqXP1<6X:~Hz9U`BRh^yv5; ,<ڮ6 g0h+x43cYb#\{X#8{a0#_i_$Xiqd&~%g+-%[ S!q::#+X3,}*go]&:/)#{V6=a~^菿 2'r_,gIUeQmHy߯$-ZV%{#6*o!|dfVGiQ[)LBʪ못@>no[ZفڤK̿G K.]!/É9u A :wtESvW +zx{@|"d9!LkŻTky].N&gT=hx!0'EI7o&1.!X z-,I&7h@&(*e^]`F>2w -w,̝Lk%+9+DmNss޴'H93/#TwVK Fưsit§6ojT!B)s"N l-/Oq%w^n^XCeqѝ_wozSϖ=RQCr]$}v梛vM<(Xjj9UY̺clt{JPly.>PEW|fp! b\AHK P@(aEj܁C&>cg\<d)T.=K5Bi :^4ޮ{[uTƋr1`~e򃴇JzTR!.$ e?qaZ_;-j3HXPWp߷:op3 8 jX/pp+(BNP!C&z9gWy i0zV>f $ LS1_/'jGI2=+єPx<-Ht/eخrBg[f,K ^ 6CX'뚭e?yϰȱ@ lX"ϞK:F{1r~y LKM[ƀ'ЛG~-;.;7r- qFYt)0opxy *k\Z_֯  6S:AYRN,ߣLJN2Q?^VE} t $;(GꀾX"h}C@ب:L)MϳqF}m01R&pQi}tPTwTlpr,tE=Gơ7)5E0̣c)5n~֪@#by"2dmؔ&ìY_,#%KNg 9;8 j7;h 5bF uS;|iaDa}O%8 dT4Ot@gAzvM+}۹F`? ͆$ŮΣ`N UwfϙuCf,ErC7]^ kMjC^8mL>KcS}mc^Lq!B(0vΘz3E&GG-y|L󵈻"64^oF&ƎXy날ٿ7(n'ItPK>iqFoj{ E?]|Oaeu.r|3".PoSL G贆̈́}9j-xROȖų~Ћ+T^oO H"\{!!x|շd搗r郇o#}]W;ΧE1&PE$CLg_Mm(~GHYܹ Y–%r}(`?~돰ۂldd gli{!K3c-bE8׍0< m wM/'W] on!X$a9b)&q.cZI 3i}~$݇*Faro0SV AC>x͖1 ^:Duh],B:W+4 9߃1]~+;KH/3$2^6fe892cyR.PY Vw\ty9~#gRgVP2=} ViD1ʋ'+X6L֛E o<Px.a:D'3MDi6 `[Ys}yQ|wL߬EL&ͱRbSˌ'-C^50cê(줋4">v7O]QU>ϒvzXUv.k+K3'Gj' 2˪~Q7pz,EӧI%;|M|󓷕͉Fh3k)I.Y|੼<(dyFߎR50.owHQ_] mMCcjM3Fq蟊,qpC5&e2qxQ\nz]{y,+ q:&L?˂pnde<JyjNjG)hƜ\4_MVB5@iKk㕏ҲDʑR+|M>$v^gn;4s͏:lNΓ`vDYވJ9=7ǑT˩ͱlNR$fĒl ne%UN7&\:ZݏawF EH`-Y;TrIݡ#PaZ$[F;:9xhaH皔i)2ktR>&):sy%| 1,O*tCea^#n5&tʫj4.B/aty+_[&%45/<؛W *w[ PK}#eVb(aZj6fJۘx`s ۤ7di[ iA{ _bbuB,]V _K@'=>Ε<:%q~MksRZX|"Vur!קFFN7,1W)辱U343⼲wVOҔ%8v43Ӡ؇RxM0YG( P+?QO 1ސDO;*0;X;gl%q&=l q6+8wXYևעdh|QkTח5GL^x'y[ ^N?} ozhݖ5SÿFZ,85{VMC՚z7 u{\KUvrj\|,;<92R!mX תE݋2rUŊjKa4FeFd=G&t>\vSbӔ/j[.&*qw)R @4ѯ Sd}.k 8H6V}Ǽ`]Ps,mDS>ⷾ#lvXn/yp2哖fĬG\oƥ!s UiE@@]O>["085u|H/`UwM$̘ ^J@6z(BT-OzǶb"%Y c}@ ][$p!bc[usr%^sW,GMλzf8W5T<ׅO/O yĬhG$]/dtت6Z\۩l)==oSM޳J_I % 2#ǹ'e—!44]V/%X71ޱLK`gAļ[ANW!YtBk, NLB1.vUE3~3~xe Ku G0 >V@'ӿF{햌6)3DmHSI%W$Έ0aEgi+kZBEFp1 t9Բ7/leBJ`AþfY苌IƇ.9C-Yԇ@ >tb6)4jєۉlg2?0D'rdYb${0? %iEΈCA/j2)N!Ywx́ӯ:r3&㩔?մ.)^HϕX^] j(yC0^r|)jhڇaA6RA{z |5Ɩ?[Q% ¯BNpBVx2GxoF[ gC3g5<"N okV˱@.M3>ubai8^"| 9ZP}zwmI3>_ֶԚ=аb!LDiFtOdb5RC0c"\=eaG#>g(1ic:-ٱZHoD\8">{T(Z W\*lk7=M;lUH%"|1Zc}R2JA-=*ssdeAA?ھK@euO*I=0-7MsDK'|71 :A@ ު^z1F QD?3j - bU&Ŕ+h‰dM t&ky fdtuM)*O}IDHh{?EݘNlQu(>S?Uj~.z~.ucs#xVZg9ob|JL_t (LFKK'X V0j|F(34aE q}8 E1@S,dT{&8Dwp ,U`%' fߚA&w>QPM_e0Fo l2xDa%~4r,x_}撗=8!S#d/C6:NowA&gm!ʏ\gߎV+Ws_5eϠ́Kf$_e+u~$h M$\EHy^J+CS}y g;*^{gߦ|mH~`ib۰I`|hd]}Uk?yΧ`1?ADO%-hm{S>ORQ7#/鼠8~Sbϔܟ[㏂V/ceFSnc|Ek;U+WuFrŴKMfB1ZR.Zǀ>T6BA|n N/،ӺĤ5pUIzʁ+%y͹sb@r2"'FdHE]~kzy=YKtp⇉ĕݟT^j =;̾Hg{,E _^^+'OܮjJ{;2)[]}^W@X"ܓ`(ZD\hz4ʺI-[?R1 >J Ro{P*5ý[w" tҳ,lŒ#~Eټ|Tp?ιbTNi5W4WDz)gvUh쳹']ok(ϭIqZ!>u勵./^-47/ThM_!D2o1ޞjv:_Kh׭J|d齥SoB̷)ˊB$8B.)Ɂ1h~\+}M!Qox^_谋\fs7&Z=(H }qpD0@0= 27Ěv>mHͅn?{eZVVIsv$ONW|YPgS͎TՁ0+ˤp|nk؇[#y,C+.6iPp@鐧x',?ݶ3[{ܟ%ŭ2 8Lnw!M%4YFQW X ;r.Wq}( ! 6fy (cFJDBEu╋V(|݅Qrts ]얎I/c7*֡`\VTcEUaq6q>|a,W eIW56cYam8leyy@f`g>xǯԫwaM뮱L(!lѡđ_Ia=ٸy `\kw[!=\A2nz#Yb@ 2!]!lg8{s+{iqMZ˘nA/_ ȑO=ƨdo:?1s_~Eec"Vz~/ct qŮ^2 Go E$t&5Aꁷc筐2: 3"F!]O]#!5z\~-]ZTz ^~4}ڲ a\GO|v8]1Eؙ]hT3ZDq{/']:6Q-_vvr"лr9c{wCfс|j5m <pQѦ ,pVι%ߗ2߫X".NW0 H76sx$ˠY"H n+oBT]vVkU8ڥT#/mGYXi><( 6WƌQH Z%SD{c|NHs J_iY9%spw;!+@a'f|tG6q""0IZV3y2UU1Z!W9QyI&$ 67}NAi5 "o>Ph);4ޜ`qC4v XsS6AH{s%)zTDqU bZp0@cXD~|~(*ކD1S yA ϓ()iuyCuRDWUeq|0OI謾$+1;15u>;tf=pSʒuoB!J'ć0~c_p:FFxleM+I0)|LVyz_a0ЍohUU/mҩ쵬t NQHt{rtm=V}QGmS_VCbGIs򌞊7ţT뾪Eމƌ~) ֭O(sf{% ..!y\ʌT0ZٽR`>3 "ǽ[P@ }2u̢eE''CZ(/XU}AUZڥЋMQ*L$#tX_$0onNCH%W)zۡ 2s8x xT3q$ ݡѪbVZd~eK w@uA4f§K+ӲۍͧQ/x ^OӾ 0@O3LؼpIͺ>P+wR!ʍ]UO ^+hIob ׋^}P*8VaoM?Ӊ -^DpFd4m{ڵ`V> #9čo…ò ~%b4=t0o\6,U=Y7&gϘ& v# bmEǾ{bwPM@b? ZZ&GmNjhBjٜDֶ_m}'A~7"3퟿Va2'iQ%ue%\Ӽ^ZH$oOCWNL?Q_G67bq ޳0bv rؔ.T+.+y&tHŎ;CuaH w_Q<6K,JUzAo1>, V DgF|Uf^5EV@)cgma6 &tT9 &؝gh )Xyxŕy#SL& MIWʛ0&L\1Wy4)<8_]E%{W]@j:5ohs=ط8jU- l~F]pD(w /:\N=<fw׉hkV8/%J!xjlLJZb$8-_W+A@{g=ũTivF|N={K% ,GVwyJϩ~ Ӝx5:7Mͅɑ{Yz$q`H bk_!Y[Ej LX`Gp5Eyl;kե\݈i8+A]`1 VDcEIzmdFh.\2Aܧ& TmLSb|+JbO1>8Wg?Uu'WbcHeEh>y5t2r%7JҞ!B4?)iaE`\X H]_3bj9g 4 -Q5Dv>R,]AX!g~aiP,iekhO'X8sbTW 믭.{g 7$Yňc̿K "W\'4]r͋XˋR8G7y292Q:`_[uzT2NvrM]`]}z⫎%\ɶBpsV߀)ߖ6gߒLLjӹFlYv !>K*>aWVh7\&ss]L|i)o3"zv'[.jGZqT2שЧTB3+\_PIDb땃E0;).QAy.x[(<%zo$-uu?|\K!qѣ¶+7M'o0>ry}ۍ]ߨ0#nxt"CEc0cZxVcPvMw\SBr20L ( VDray%(8[OZPO^qA%-YwB]L4(p6͝.FUٌaS#|~@S]TikA;ẃS{$k5fa?rsˏc;!q.N0#jcg7/~?B N,/3[ht A%L 4(^Q-gX B?Fa^F ;boy;'s˞WdOZ _ tkbp: <_6QFtA4꺱PJh/%y|pgVxSŬ`sB8[u20D:k>9씋y.ce0Ҩ2r&|n'xk=p\|ҏ T҆fud :F|-Y`S x|-=AM㆖dƊb~W(3R-UbL1sF݁r횿By^ _Toᒜ= o_/&0sc=e$9e:˴g/|U~ ~w] KV(7g V, ӱ ܃ ¼ L;ޔ>D~}bx2Q=HSYb{POY ໋Y#-ԔPօ EM-VNĊ_dȇzM */qJ_]9QRM,?#]Sʗi:C`:j;pUsAa7R9[ة;4,Yfĵy@ C翠E΃|fb.Tk6p^$3׉+ץ8L5AXRL+ҦV?K@[Gn6-dȥ=T&4eu$PP}odv%"tq *2[Z խ Q/&΂itXe)h%A=TatŔY#/Η s[&:Cָ'ݬ A[.< %U:NDEN-QgӱjE\ R+P2L=H$bC ͔tBl5c0&V3K T9C\T2 rjX!䘳\~k'L e5tI}Tu67'`hU\[h~TiZ Sq^rħ*%Qj;/wN)%z"4 i}֘X)LJgC̏D2)wk ksc? .jE6!PԤ OȅDP6R*`dq^@.DWF.Kã+ߘE1\#zbM/wBRt۞/MAK[ܱF: ɱ>_I<VuHdNLYv~]DlѶ#?L0ޝ\sdav99%؇9o??4_Ņ?1&ٷB!YZмU^fp@~/Q%L_"Aꙃj3b3v9;- T4GF :p&]~U3Y _诬/ڡ2A23/yEquҢDJmQgP>^(,mq*B$x(2zCa a6l$ٳd[gI@HqVҿէ܋HB(;#9q7 D\f duYWܪոnYpi:>~BUm}ʑOGHz0ypK3B٫9'5Yֈ7= #1$ %]"{"Zb$Oҷ>̷WŁg7 L椐k3P%:#"܉d8*2DO]3:\;>A/xم&%([$@ϽQƹwz%7eXu5}>M^B!JT_{*4:[hd䢝'/v#-lނ&坏\VlC1˵f |j3y /YOM[~5Lj:5dl\SF%rϩ[)(eAy51geh .f S`s'f[L<&?d yA􌿔zD s7 R'`Hc ng% q5l ߵ@d\Ӿ@ȧZs#1C•!z|XY=T xr7}_Έ@Q $dw/ pajB~1hV\(M_#iBɒ'b]m rtnIE<ޔD\b#דquq?,2iyj 6PAQ'9q a:`sR"Zh~xZ.#i6mitk . yb*F* wC@X|ҠWA1ȋJYT[ 2U5<} K,ocly9Y iD-3TK[&k3.~m֗.ˌčcߎ\pLX>z1?8T5w6-l4oՃt(RмIn8yɇ2:΢Zeҍ8cqn?gng],0vs37刐\.O@15^=^p*ck{Ǵ&Pq7Eihlg%NX҈(IY=dL#)1'% Wt l|CK+:!=xX.`5"sNFGfkb@hEa:eߗʌyrb\"[RS׮>mtF䅈}A¥uܡ&#Rbߑ݇K43\?ć1\rAG >ۇq}dF|1 @@]'?;J,@q\p#iʙدa9r?C[hhbfS%+!]bzKo^ޭ2O$i JE_K m5=A%LA<Ζ9ViT lҸԎ^*:-G}˜^T"MX#,*v+O7OrAZE1&_%Ɯ'+Ncx `9]Rn_Z]68qb }{hz-,mk8}by%ȼG2iN aIL¤ *=0Zk"|ԲO-,б^&_ʕO;8ӊ%ym5 ӹ{e~0;lRQb)o`n4J|);}_6e|\H|[|Lrz?k` U"$aD'iTrPqa xKSuTZxٙ^β9-i0F=v`Ƃc 6y\/Iz^ݓk6* G֞- N6n=gEdCal=E8 Y&ddzݥL~>@[b<8HM % _XYR|}ߛϽ6,& Zd"ЌZ7\-1d$ijC<=NO[,88 Ŧ?/cz/?WN^(Pc߆A*@"'cw40 ?:ޔ~˶/%y"q-MTIjɟk!DX%8Ru':lC$J|][׷]ѴM^.EbT3i.JUkfڑ5zSim$ }mP;:*Aa@jZR l&ڨa+2hH 0Zg=MmAO㘶 EZKc*n~0N,+bY&S‘0849ض-$'v08A [@uaEm"ԽЁhcf@ky='|cs%;EAwnln{K%$$DA҃"db4X% K{}J%xxO',)k'0ͥ< 9DZsȳu߅eR&63 ر,7fo|0a0| %I~ P,p+erj 9[Jc6kYHx~Dȱg+dNS Q>$ 1VhA],Y p6졯l&8&z(ϴdB !|q@yjL4L zC7q[2c(#08뗾0zGaOCHX#Xx}Rm6+HLDirW> `aFzmU]3 pvM)1HussÓ} .*ǖ@E= %9'H;2"ތ}LCw׻UW1<QO~gWq+{NfGn_Yg*F_fqKS&_cgNJ0x38Gܬo%r-.v"6D`79sͶ˂-V#Dgּ6}~K%f#@}^0S|I1A d:"zQm#1 ~˴w/_G@_^MLr%N| D9tt?Œb%R"\ꮨ> !Fa[}'VUWOP^RѪ3yP.BuyEw@w1~Vʏ5\p2Fn?c$`F?~bwjbx ?͏-|S _Ol(ov(R9ހ@dG6ii'w 꺒ngFڞܱpT_ mK̾GF!|$Z2*>Ȋ1i_bX #^J>=7P-=| .)Y ؿϵ91*lq(uT7^]I@ Ú\fM5- CzB.{f3q'RTOR`ʂ]uX?^|U, !}İ.Gժ|}u/l+ >+ )#_|LmeO8%^5.V|(HoG3"UdU=4P''K^ YBXK_gz0#voP>DG[]JC-b)ֵ]"|Q8 o߿E=qNiu iznV7pu*w::?5LW=I6c,EFN~0$yC J62>ՉJz5WCD->p &wXU~3>a E DT0@`AdʽmӺ :J˅ck*%ڸ@_/*J,MEekkM6e9Tq ǜD Ov*l$lL`>‡.^75dY Ԇћ=nrtH ꗢ+ pvԥBP]ު؎-z..kHX) !:)K@CawI(JAr"0q[Y0ǢֽehD\,@1 5T2~;X" VK2?"b5T=Db}٫ijV\6XET*1 Q}PqΑq(fON~}eodweLw%=c0#G һ=FiNQ7;t!^ ~9eAK^5]8> eA83.3صrL 'R6;sqGA[`*sJvf( t8!Q0e#5\FW7Vf]NxgEkN;c/z-*U2 ?LqJ\Xm~< 63>C[+ջqlhfX6fS%,can"~!UWw#6zE3˙7/Z!uxv8h3FI{k84$c$ޏJԆjS+L I ד2u/oG6]`78ϓT?).5OpEzu2uݯa]8@ܒ* Hl>gaM4v]̘j0mgmTsW|іPonbb8K[!lےl&t~k&ڑ+q(!?d /iz Wn1TE O38&# [ T crcSTcOڬoE-, _FQ1C\KbXاJ,ܸXE)?M*`3 }4y=1(㛅Xϯ\ʜ^Y&b }S]g"hHCZ 9d˹C_KWkto: ;UX^Jy3Adۂ@av#POE2U:mhKr(G=#޳܇ؿs!X26sAl.tL7PbnQS( ]h|"~ol|ʎE-_wY`KZ3ocRqJmlo 4#J2p#TD* 0vHur/"UVJҝM~^lȒm!pr : WIؿOi.ȊWBc%6CRXcrG_lD@=]UlIy'(vu%s%y6ct:;< +xyGXRuty'X^;k-5.͇IfUbY!<ӥ:Ox,rg+xm}Fߌ#S)8kLTkgb7wYe3 0>ph!+s!o-5]Dah'f!H(ǝڵP*Cņ7 $ty"Gn:lBXx\XbaNKt:0QIst A1L ow+jͳz`d׊ny@a$ TCR|qVƈp6( -ꍗZ*_Ծ<@ȽfL2>e6B, _ubPCiaLr]ޢ]2QӮ<9_)ixV\h̤C#=SL_mXwXhC UjF) r"fNfPf39?TsU㼆U@?\{ ./ĈL>kC39Wlx諪xY7O<-䧞S}J(^DCXOjHMUGj*TU Lj̺O7S>^E!{ WdVDhOl fwh.98tmbn㱼Rs))QzyLk*oI׆R/V?ekcRFe\܌j$2fJ4ޭ񣐞;NK򏸮C (R__qmZϲLY򃣑D8uﺷ~l"#3yzL8`;smxM9P088s'UAJ>BN$n69TJ_;*PZEH-%Ѓ3k0ܮeuπq@~ *볌mw>}?;@VcިsX?Ul6y=7BY5f)C+\EȌgn3O%;RVo]̧}LDb#y[/M1UՎ66n\:}TN v$Ud8 X@֘T%"AB~,0K4w>Y5T?ϥk` pa{# B?gm kEOP&a;,~Q9!h /gk@ L@ ik2" (v/}q6ҾΣyZ%(Wo1uԫPJn)i&Ky5U6]AJz}sS Ӣ8gK{JY %q1^q̝+ "YJro z-z/u_#vkU^Gq \a_*ND%R-&*l'W^$;IG2/ᙅ[OV`䮙E}%> R( 0A8Cuӄ.'W%J'F=gjdR2G9D1+e-ܹlRK2?JL׃WS(pbkY k'meg+ϷoRMN g"P** uL~o;r+X=16ͥ*efBxG±\vE Tq'J:\J!? +_E*VXK;*Ɉ ΏgMMGH(a8*@6ɣF0򶢢}f0;LaiF9'3?Js,; t5@Zo FێHM5AekgKbo@ )3t~2~5f>nb/k'.g-WCJ3c2w6ڀ,\:gFxw/1"֣vNT|E]T)M#$JYW5ejDZ`Ra=VmAP|v?󒁯צ5/Z< @9̎gԀIVA:7ZAi? /l{Ȍ-hcp$2rιgh#MD3 mƳH/)T(Na#M1ƨϲ&qD@k]m\vs"P$֊+T'h Gc3 ZWLC'Ճ -}R$=P*|5ss^]g)~/;$ӹ|$$hWw"DOqA8sޏ.fu[疮I㫭Mk?o ʽ <5_ZK%U?΁+\0D0.OgOYPU؏pmϘ7ذ~7Z7N #]6|U>ǣJV`pC;`1$\?~ ]~G7o⠜)ecHEj;#$zaKD9rppZ\,\ q>7$w:Y+W4`"5W2T2:3pr&&g:%1 ~Dt3㏖MmNj;\8!H|ШKH,l?LO%3u o|}хCsnD2Ul72stz_4]f m߹NJAF# 5z\3Vv^MaH,.yNY<ܶk>yjldVQ .8E]uMq#jmwluer8ȄaɫXh(`!6/$9KjEO3X^%?ҩwTSEGx1C+2 !GϷYCZj'lʟ$|J2ZM֛_ If@3eӽ]'ž"{-`^'bblh.JS 7 㗯TKRQ+!{y<Ʊ `+NQTݢƢ\j)>YR`v5rd_0n0MyӜ4WZ៘1@ZuTxբ(" }2ϮYu֕2%Ħ38q%@`t'bCGU-.=FzT@@n[eURK?(<#[d1+K'fЕ&'ڃIY܁b*h{K1g] FboaPӉ (jۛ^ꪟ@33T^E ciJH|H|ſr qE!w`%9ᅥR%(MFT΍F3)Ῥ&y*/܇~^6XIz3+y+I%m++]-C 8 #٩}N~RU0Gnge$睌{ Rٛ +ޣVU\e{'Y&pȆoy6J]rt#=s%e, d/M,zuG; [ߔX(檌XbfkalXj"$>T&E)Wӭ\5  kf&B$"|PDvգ:]g_t <74!%<)ğ@7fVڤC%:.pjQ7 yYVqY?g≪]Xx'#(+m66/]:Lzy&v# E˻φ+_wbPӍ$tJ2{:Rc,\Ui肔QƯWL(Ń Wrx[9xKk K~|rME9 w7zhJ= |JT"{:"=O<ϣ[.O42< L^x:j ƃl7$% J H#hXiL8|P{SiFK3.= ͿtYĦ\1UEZf^(gHYDI{Kۥя"\5D~-BN[h3'!3hyYHVY8 x~~첿=u֫>h4,똃/`c79|xO%6uu]A ouP WX01|hJHPt/Cmm%e V!RCmeP$ WP#r.VaF*׼ػ>m*wlr1[Y!x?$" $SD̐^S'k>0 :>‰, 蘔R9hml9F„6|fLP*=*ibB6!M<;gt'׍ __ʩ]Ãv%QٞZ[@wU'Ʊ*QzLi{cײ$܂ц &8` P_ة#Wl+s+^f< [9ekaϘM8RZn&piIxJ\;݆@c!nmA |Ӄ ^I܈ty]W *dI5 l'n3@J,)O[ ;tUR3|΋h' T|tPSdXœ5q D#lD#t2ȽNVG@JcNrs4>I3f+ Kݿθ|,z|<8E\Aۗ7Ih' 0{d]~yT/PR{oQkvUH>ؤ6^<\by˃Ul,RJo>ޢ0e1cZGVɯ^{=G?G۸( :F66X>@q!|vdu}/B(σhZx9 ?x0֏0'C`ց80m ]yB~vt7g[pXOV'f;"6p[ P8.v$Zi:?Ĕ\Lf =C|a;QЩXNHk!{S/J\r$ž okbyK\z~~bq `֪nP `b*-vO/ pPkW䔼x(~뙸f}!y?{DΥ_PrsEHW2YlAf:&bP`qe&vULSIl4Hv#16C9.1ԛ8yg:W'WlUqR9W~[1]3%.(JqOa{ 9S>QU E;T>'Ph'.T|U#a~- 1(0Ɔ8wWE]TA5ѣ{7( D`̲E xa{8x,ְQJ8z{xf"-ӛ^lӞ:>3I4o9Ke?LzhFZkw=ǝxZ3`*ԝvcI VÂ/LmQVbRҘ<4[wrmR8 .(zH&%e*D  B8٘+{p`k+}wj@SDLb ȇ'eIf2(0,Uq>ʙ1vŘZkSЫ#8t^-Y܂ef<ї 9JvsQҼ)Χ KF _mrˊRGyvfYo=@ 3" K6hԛeaDH'r8O }s`K]u[nT[Q۷! v]lc}aMS΄^^S(/k<25Z֬_rV&m(4 !i;u1>*%H/d_*3pG:+NO>Kv7.lgD:翅XG]%X,Ax8:oV =93@">>,̽όoi(\5y;hܺ;\kiFVoay2[򫣿Ka)&.5bBtbd E7j3nICUU݌Z˫/Tˆ1 XK7WH*XۥhY\)jݿ?:>smHrU6;i(r(Ij=7sEe[2\:Ilsr vӾ*X{k>Ӄ8 caNJtֈyP.) z|8ep:z_ntѫ9À.=->FȎ/ٍwmPA%_m@dD~CIT8t/l`]J6heu,?|<ǞY*](F;\мнL c@,o%V1CNr}N}})U!ik;B۬ vӮ/ Nv:[Dʓ={ә|EI*!)3{jT>&L`7KMT5\u#r1Fg/[LYx15(IMV]ؖ>Y Ұ߷۴RUkQ&= MN 0-YJ~CE#WB7k{d-vT~y%z;`(ԞphM'՗$yexB+_ w~MXQibJH:7NM(/r.3G3ۈZ?+~+𘹝M-LَsE-mlN.yvT,N748KȮKZtw*[=WDMk:p N]6IM5uS džH{`Jڳk Fm+=>k]Zf7jg 81jQ-J:§ju \>?y]O!f_ӧMT9D,#m&ݭoVME$ڷ q%난EneӯˮuE|wgm@vcʄ_p(XV;C;׶ LE5_w$]* -e}f u/\Yx h܎䜕Ov~DD>#Msx ܫz|VZ41 3QGF /?Ds u8wIHoO0 X'%/ qg縦兕H6"UƄӰ%U+pҝ"̠q)4Rp Xv'Wd5Bu`l qI\KÄ#d xAn&"NhV̘u\il~DQc(BE$9jߛşgD3v>=Ka'9?IG/?IӀJEK1xSƄe,,s4*/(wMaK aaqvBK9+bi1EQMAfh < ьfHDQ)V<apr'M"c7FPNE\^d&L6leDZ*φDhp'2xE1o#{Eeie=kRڑr\_sMfQk0٠Р3⋽eܨˁ8XGbɦ1g8Wϊ=Ъ82yw(PSr{4u_;zͳ䬕7B+˸ J-v˵Gi:x,Y$tpi [ul3 2˒@4TV߻/ KJWCEv䷜65;Ѽ-{6TV#PV K] 5f7-v'feԳ$cζTЏq\~&ԍX^Ԑqu)-"/XNc5 ǨP:+ h qRǨ_Q$=5ڢxA7)̅~+q ?5MC>٧7梬{YRikOK5 Gӱgḇ͠9"w W/ژ9$$$a*TG ʙaxAVmܲ*Yļ}kS|&J3 ͠>,l!VXiH{!ՋY*Uk;N:_0^s兝ztBt1Ov;],Q~^'na>zN%OɸsS6N`H^D!DP*|fK [PP"@<Vxd%2YѦwI4e 0A>1>@|Vf +'1̡`eӫpٸU(0]' C/|6 gw\-O<<|YE<v!C*iGr?0UtV !:O0o jF~yRf8.YbߏĂZ"PM{fZ><}4Vl˶#Rzb .X*CGehFɎ%Fٷ-?Dϴ^z.4>&Cb3QU>@R,ES?1 R!%{$QKvd K){N+̹}3hRQ ǀ7S^O@%ѷlAK~Puds,: ]T9XЖ*Q*U"nf~˅8ͼ_X-d*T`ǭT yE†᳞%תЈLƷ`2<⺜Hπ'TtBJ-Lu:֖XՀ+,=A]S#Rj: B?WI|~@XmTxwP9|z={sZ&qD,CS1FtzqeRi`O>}Qk[ sm)n 2B.OAMqlYp;/^4??I&к:E,Yg TX(y.mcfcJ6pFd:9֨kDڕD`IkUo$妻NJ̮{bÛ%zfрN7/W VԸb\qo}fje7 :'a܃.ޡ̄?k&C~/=|ܡLv j*<\+HyOHk^rh#&[q<T*GYT*QDɧ_OY_eQw׮Xoy#iQONyJ7@+e]B೙o1j瞷=R-uGqou;PzjrMޫaeDz"BH`|HV=VeUT|,LVV}b\1i5\yWڔ Z܃oihޡ_{5ᆳU '2+j0%C1` rPJnJ'sufЉrX—:؇()fA~lւb6Be%~KZsx-WnVog*b`= HZ=af)sO !dmauTL(m|qHpC br1=P!.K.3UoWkNK&L Jhf&2q4.0C4F۱r:>g_7hYLG.v0@[,rg;y+6Hv/q7{ELut-&&Q uhHJ3Qe"bAI;]B#e]/Q[~ƖԮ{Sv?cWnbX `-fF;Gx7_&N#:Jks޽4U],ZN :[) 6B@}T[P|Ű ^Zɼx<d{7 dCOWO'!{!Gv^;mS*;D8;y<ڿ^uܱvǓj7O]@65-͹=y>kIE ֭@ťlrB pZ:cqeGDv^:~8ӱ@z+VEG`!WJڌ Ik,XZ +sAMּǷ\'el}dPMʁ !x~L3 ,š,&P 5)N&"-& f։Eމ9U֔@%(9zA7 rOSHn[b%}I u)֧4֖`t P1[m0*U8) <'k7OJ:8ņ3tLB^WЃ#X_"rWA5>\4^v6^.,.d].Oi"Eg\RֿH7% *CSC4f[h|^c/=4b٬Ag7!Q P ,DSaƕ#!w';OebkR3F`7L.7a,Z7lw)=ŭVaQꙐ 'cq{\Re1atAIjr@{&z/C d `HqT UՊ)JW!֞MG`C#(#fx8F5*Nh}Ww)7~a><ƷIPd׎4 eˆ-9?a;j"Zhk3+]Iׄ}GNF*ӿ՚1 . s\ ^Ի-_rtƗT: ԔfX|n"-Vz3 ss`*RΤi#B@h^WsMŲ:0}Y^&? Ėj ء><#lKg{k'gˆLr .AQ*G&&hTu6Sܥo Sjz!/$Ob2Z_^Χ++]햫u)7Й9 !k º-(-=g.ڦSҝXQ#]63s rF+ȡow\SETryW45t,j;r5# 87_r una vrj\Gڻ/jYOM`;=gy,RQyaT/5hg5OZhݱDACs0f'-g|_WRzuuZ4\}׽vFgle&̸R&uzw' i,Rj,xXNDމ:Sa Qh y-RwkEݡuC u + Fl]YѓRu跠choڥ{1o\Zc;(N;V4Ulipڻ~fl6ckF.4JWc5qGcM1jJh9oJ9%񈖈  Z{8v!F F7MuJЌq}+m KTx?S~WpbpTg6:NU;G=.wtƍJByX_GDV@ƣ0$"y0Og<8R4d|e1p4s!.ˎ3ά~M5n Mm& &`ڝGkAAO7UFsUҭ\+HEOgNMoړo 7an@P ۨi>%O`~ޣGy n֬1'LsZ!:hcvZhaEߍak*h:tgu55)gM)ɠ|qxI{{Wl +mʵ'wЬsn󲬵ϟZ.) J$N稢s}_X?A2ra^~V{T~X^ ~<2v@yi0/LPmZfYU*^"3J􋸚%kJ2c|#Iɕi;'Gi*Qr!0p-`*H RslB{i%zpf,պR5̲U1< ATNzK^4J덍Q@=?T7}j_34/V kkj4d#99*Q^K0FsԂMl*WaS-KdP*4sS /0(EγCF&/t&{_0 {&hz@"q$88ESAU9!ȀglE=N{'7X~^) Ӏt]wM޾!3UdDy^I6BLM@r- Ad8%?'yZHo NXٶkۺ'?k7 dkmgV:cpy_ e7?j EMHeʆ4'-!5mʢݧ/MȠO8? #ZF% ~*KMMaAD(Y6<*%doXa!S$2".~$܊cM8-ș0-4OBͰiA)1l>m6S~^a/Njw*1 B[ˁ'௱YhmCI凉O^]tzk=ܮw 4Pb]m>H yEq]8y",۳͉wڼr[s|iN2gql߄a<"\ ?zc7{Ȧ̾g]_SeiUBz# MՌYH3ͯ˰uְ?e s,V=w3{oogn%̒ XQZB/ĤfrT8<ӣQ[h"t+Q&=OTX^)Q#<;4=`cPzAy #Zӕ-8Rq;2?/woBI~/s*L˄r r vH,^1#O4ha2NOFշ(x{o\>sq*"c)5cSz&똶P8A9>Tx7l BQFGݑ&̞ߌӒG&8;]V/$_7+zgvTh,/?U}yv;E翳1.cFCOmCeF_T&GH|yLkO_]o)eBZ.᱖h+ƄSÄ+W; “F lVp_j}O:R0:JQ: is%VxuS]YhUw&8orwh܋-̅w_ HN5t@Q#[ٚRBUD q.M:_>n\B |֯P(/43U`fH+%6 ٙ4޳S>+{"cAzقLhȀqw z~TfV+_v#u8Xw}NC 2VMB(5RVrv>9q%-A"Ȥh" :kqmϯ`{n Z=ЎQ*Vy>u׳[ߓI0܍0-ߋm=q $ طˀ6%z6J+L9ʯ!%JHp,aQOMkrI8 @?%?RN_͓}ىqM'2 Ֆʇu6^!nҋKP U_(l(%/r& Phipd+fz %|l&QvK'7jh<l^`R슗M) VF(E>efg lZ3@HE+c9bzS0Uĕ2qtK8H/:{y˔yk_5D?iB?82#4Jx0=F_(nxY{K@ͷFBpA) v:=wzBJֻGR쪈y]=ZID j-aUgm$&僄칣(A:/٬)7Ơ/eLy'L(zE!D|3w%ȷ߻= F1CkYN"?lUd+C D>pLWԑA=8H䠡!U_ ~Dm5'z['lI%\vΞ7;-03km´h6RsxD甯Oh&ʵgTWY,m20tէA#6 8DvjgΫ@k6[ʗWF]vo㯴poC5UkCmui5%[ u`ݲ˫kV^J8:u]1C]q%)lmnIT{MS}`2"ńrm|:1,BCFiEXܯf&\"OJvģq_@]RrPhT%G[:hY7A KEo^N{AezfŢ&cn(2ݘ&IY*ٻ+xdYY7 7o><i &].@c4q3͊]@Q>$pp:1;g#y+SN<,l:$E%rWC! T~K6SeVV ;k÷ռ⁉xs,X5W`qm~@ ?] GEO=vJD57&W6K@^+ԅy@+pOǯ?XTy/jXeOE7baŞ=yE*aQĜ4[)5_@`(14k-0%7 +().@TO 7TRiU*sAj^F5բz`]ӳmb7M4)E Yn"G}*܍by5NwlkMXE:'MC~ e=_YVPڪ QV}&jܪHq{boS>7q2 k3(V/ teʚ3$!SK5[WAuJ,s%5^{9ƅ LMm_:w2F@DJ3Nԣ|cw2ڎmh A7dGqqKd)2Jՠ|4ڀGJڦgxlrܳ\RdòOxm69@0ԗ/",Lfiy5KF+.|jjxLE5( ~*JW \ubirXW eÍ: 7p߯njGLzL3vGBWޜ毅ZP03[- A/t~(fz_3&xw.ށj cA@\ܫu$8 ;E֤#=Ecxx/kYSF =-Q:Wk`аb^iybKjLRg'T3Q6 K`ޱNmQزz%-<6e>ۿ^G'km'!@bx730]1K\엶 ́rHr4$Pצko<~K2a(s.`:GFv"՟OqTM(:o/5)St'Ш*kqՏq00"EL`v͛M½xk1iZQ\ע'wTf4ݿ4piDL+~pK8|*:Tiy}E@|bS{Z,$Z\7u)08QR/RvˢI?'oŰU&DJs8ue2 ^E<=}*Edz3)SJp4eBH5"=ρ,:IZ6yňe;[>+u{B`j .u>4L(toDK 5o@!M9 ܻM&$˄ږzb.O5Jg4Drg!Z|u^Zu/~gu}ҡikk$7l(P '="qphٵnTr;-_5oB;0 _I_w5>@9K房[ e)=aRai6X)q Ix%drZk"jaƄRK/I _&wΚsi-?8]Nْp\gOjڶ6 N)G&::GbN}ol V1C$}X ]dcqm0xG mdz!p-y`( 135!N݆ҷ[f?>vWynhU%$8Z4rTsI>?].4Rq٥9W$d۳YDo1]04UKV5-9QC)>v@NJ((kW'"[Ub:Ü߉O3:>9MR7% M@`b?΍e=Ybq[Z{b玾jÊ)"CnvZM Z& %LTzw*69m?]] Ny {ԑand#W)?qY藉~zTˈJj:K#WP=tΘR.Jn)%bܘ/-rɝc5)Wrͽd!=iW1`5~0Us6*HobY 4[8a멑Ry ! 4)waw9@99%^ TOV{7]{{)P;A= 9?,l2QZ-'F6#Ã`k>h^Y=&aCU1<;-XrbF?S S>jH ܉5 ]e 㳳?Q5J'vlwdxѯr^z&g+km[tpEu/H#6E2up'Jl[RjEC-ϥOl$'!%)GKD?B2xǥG4 RЖ ;|r`dRӍ\/ж'i=_U_b __WPE/*`1)0 Y}DzSHuqGGOc'-VIK3YM|$-%Yഃxq^^+CѓI; g 1Ity*8{HalMx#vC$l!96K x .iK,2~v1ԜQJ$7] θ6.Jh:ixRqi/7A^ 6$,27߿Y XAj$rJF=eRA;2{m2>9.plW'Eڸk08l}C:w(&tJu1Z{P Fe& aN&R"9$vP2;!.57Kˡ.k+K1Ioq6ci̫/Y!Hq`xR >S=uVbKKK 0c ΀%s :x@5ΓH2Anz'l ,,hM<_^nbQ?dB? +DE1*m5.s!'h~z><үMc/눔~>Cr wH̳{Xr(u`Xlιz ;'oWvήC2j5a8d|Z˓'+\UXRG4zP:8/9{JΦ>ZpAϸRC/nҊn,z CS4(|[3 W,Μ 2* $@K>&z]uzu$"5_@p?=:_$/Hnx\?oe}BX*!+z(vQ:xl!RH7I; 5+_^i{c?gr`+AMB}ф*ZE X#u{YJ7 H"m RJ/Gk_ uZm,>ѵ:mĐ#U?*2^=qq+32P-kjUQu[1p`0*za4R>nЮ~!F(=M@Jru'ՒkHĨL Ehh*f㰖z1s)C*^xEb_/8iQ41ba>uĒY0t:-bz&#+GojI|ii9=~*KDB06bC B4@y 8H|@bRv~W-)>d.Pxj$`=G o49sDy dC2~QgMI8nu6G D6zto4M6͑h4f ?60ɺ(I~U-ƕX߉^^}Nadο9nK_׎㛎x}64glu.%o "IC/|<[A;` )1<WG\YwЕ$q _6FAUVzl޴U:4Wj#ԧS WKeJ`vx`01-AQA%DPƺƭ*voßvue7&FDZS#ۇȫ.) VbR:'ɫ;к]@}h"H}:nɀgT>Q3S&G6о>lw-. CSvRso]\;q#gØy2- 7 co뇼d=)w=xkE p?"| 6Ӽ⡉$p?( >< QdIMk3bO5"bVP+I{6!$܎u5`=AMX `k8഍tCry׎/W@GNr ;ÐO/a ./2DcߖI >۫lv2kp .ZGI-?"xz;W=o塺.RE2!YS}=\v|J|ܖMPz3y}P>Б;aǿm΃ӺxZytDC"Ak&NXIF3"[EV'Gf#{ڗd Xhvԩ{ey I(7u"~םUP0-x ED'x;I{\-a~<]J]kJ.+bMUE%*$~--VC4O7NFäUI′SQ:\+v4z>s0D:a"f^kڧ7Cv-P!aQ)0Q;YU;ɞ|t9qSLAt#eFN'?.IEfp`ӷ嵢OzG"R`g_&%#&&uyRM|ԏLf)O} uNn)N .h<[@.*u; raΓN^}lrmWadsڗʈ6/#Io1@NNhioc YGm.@+"S+Un#`$h (lSuƞYMvr b PWO4_@C,8*ldNzc?lѽKSU2&_uO3h[[;)n_h6"qy~*xXdӈ2c Oi0\jo.Ǿd 0ƴt;Ǭq7;O.T0uXF]ZEhL Z,c aVCmG.lsf&vU bv>chcjuO+pQAzj2}F^<-Nס?rK?(ԨpkhOxOU#ܕu?L_ސ7ɯcLP[4m˝W-IXmn1SD BJ6i8 0jUNPkmҽa}pe n$ypx)(tySa  LY˦c:Dƪ씰,ti,rʾ?U%ճNgt `Z"?Pޞ|pBy͜cX??. a4UP[ $\4єrWnC?F|{Z@{`z[Ic17km(Xtf= |ˠ+>P׆LoS8SbJ^K/+ϸGk$Vc |M lQIT.3qܘõG֠,8? QYIjOJ9aȍ6ԧEpG_(Uc|PSf҉gЀ 8ێ>QmWk!U}U*v0cB`JO}T8-!^EKĩcCjʨ=p\!V4K2u_՗,&mGh)}t[-C>1,񨨵Ve/ RIū[aV oyMֆ ڑ‚DD=ئk~UQ* B gϵP)[|) 'XʎN@4KT\hd a:xNխac^%?uT[3 ~|?A[&jpˆ^(pȱA[ s m80aKWdZV7}- MO[2yo@*#7:SXkw2>G&)9;h-(;mˊ!ﱉ`!rU$iVpi"2`Gj[MFHjuKJw@z4* NP = D`ˌ(Z?-WD^gC;ΰzV-FvJ]۬!{h9m"G2lW3,AgX8 H 6ϋL72^^[\W د.>x\_XKogr3 սg30K^yJ\`-lzd)VXl%.+s(<8:$i ơHIviW;Νa-wDtρ^뀑5 [}$klΖZظW4Nj~IT ,sR‚r7DDkۓ'G{`SpY~ C = #^ik3a e-Cmzi~&*<q$&?3P o2 p(džFr'w% "jPv8zxB>U /{Y.xX(}rYӮ0dLW*Nn_{59/ gǿ7~;u}()jGxueMa1J@( J>H7>zB )=5ȱJPHRߘ˩>MЃר]8CU[g٘ޭ4t[/i^ kIG]*G"/UQ4&vR˗0KeMfSC}qʼR Cٚn|?x~w*DaIʧއ<䖩 c6q+5^[:UC~`$}Ok6l1ie&zKb5(4d?9X:SL 9fԽ]#ns@0aG(1G&M驵k=@s2 Ð.mŢ>G[eyʊ{‹aN߰=xqdCič}O7*&  (A\IV]xhwnu/xkb8Ȋ8FØ;CΎAQV늧7sNO'.aq[zٕ|@}\!`Ll ;%ɽ[= `> m^9C>X&* MUk ]T%:i(cdç^bpd@Tqh?Rx*^V==?LGj\'O/&j_O?D-kXQrG[%31(ߙEv27gR}s|1 P*ad ֕c"氿î5NwyzDyXp v:j.N6ȭ24`%XXr ~릴`/Lo}\sQ>zsț $>l|``Ioׂ5ͭ>ϭ;u Pr}cD_|;X=edl7-,P54[z(+V/ijCKK[8EKSȹHpR}>'R7}xu{Z` }ۧPVPyC;645Zq ,S(=2Β%T87ĝ>航|VYJ 4.k2e@R^\b:3_29 %\d{o>O/]_=N(({:U s̋hk{-*.x8YiEM-JCcy$?_zE.صcО`R@Q&MXZ0.0b2eΕ武B7ܿ]sQm{F?e50{|\G))XV713zIT NgPؤadQX.SFiaL?5 wlM5 ~UałZߴPo%0ߩZ|_(եRL#(D0"Whڱ{禘Xx j7;[qgJ{a N gFm44]#tpnLm3gEi)iVTw~x1fR׽Jf>;^1,#:*yIVæEYcX&j1sXS^1a*܆9Js~GpOcCte+,OU_3 6 iܝ)or>W%tll;$ (ʝv%Xį공7 VtST^t(dC?< OVQ}x", ω5Xvx|ҌF D^]1֪ mNqp'$~2?זTy&<:E:̣z} +UJS@p+M?~Z_|y6flIaUډݮ )F+uDV҄ШzaZnk\^J}U0u7v_b0+~ܚY}ϸ$uxֲs-VeNt2WےZS .{T0cdߐĘLHDZe7bJgkIN\pZPky&1w7v}`ՀbeLwP% FN[)_;7Ci*hS=[=w%YJ0TR;IJ`!]MmF. ;4Yp/46&V[]-FCrp0_KGT[CBapB 11ga& h|.cgQBc(b?N]|V5a]fp tP<ѳI6,+%PY x]zk*Hip?6T0M})dp2Tgw"Zydf3hlX*E=>h(_`x-cn ydBTzc`FQMQ. !?ڣQLX [{JD=v5m^Ai?03F)U[ϯ鍻qOݒ׋I|ߟQ7"#g X ?i|R6wGA64CCuBZZHR_biNvMkj_ÆΕҌ-}CM? :e[LNˢ4~iMS5~ec -%ĚƇvcH FˢZ^RG YU x daRwT_ H(xaJ(rsDB9 @[ 2"H'~U`g=kmYnM:) q~(yg 1j/du/#/W2j̦u"gJl ]b q-;. fy6cydN@wpnvnEIjpMcIc]+0qᘊһZɂ Γur4 Q'%n!Jᗕaljƅ[ݼ-!pB5WfՅ-Qt/ՠv6sǓT[`s+d0fioBoҠ%r2oEM",c!/ZLmɘ4s]N)Ml%efDf |==t*91w\BƬ5X\E'Unxv,zdVt˩i}2 vX||?l>>auŽlx"l驼MFޓb;Fbʨ\UٶoohDq2ҭJT,~:z:Vy$\*/.i ]Rz;jhcђ)z7ͤ&BP|6QvWb()e %0’h_IyiĜ/|5 :C\f02яUXA8́1ЫEqz{u0K4dUuHܤY̕m\Hd]NL9&/^F,gLi@{NVT]=[ƒ<ϯg5]Ív$2Az+,QTFOo[\+X @qXL6*ʣE-)c7-"]pwq7;.g7pIUȓXQON& MogTxښgi,lq3퍧l[ 6.Գ $ADwYЊ3:/Lgv&$H^=;p-5n,{ -W6 υH2f% lgԢ3P[M8SYZK=;VXmzISuX!uV;]qd8[sfP1tQ|ll|mϘjǥ8u^C !^%١Y3.-wĭ ._>/Fc!E6F|4NJ똛ﭽTсT>\&t?gm/.U@+94oOmbx|_١1q/ ؎>,( .i^DB6'm9TdF4)oOc[d&n>F/#nI(yeJo R%:[aFtq$'*L.r$Y>3蕕ѥfo]u1t1̍4zk(~&mh5(&-/ @X>uQy1ec7-%q"pKr@ mG"tjo-k8J(;~}$Y$Hr}He"L~ng3Ȥ͸-i6Q-NL7Q0 u2xC9<%uERҐ5鳉_:q1 1UzR'1k{Mra3qb;6HӬ?p!YD?szi҅W .q9<̥)īcr3t+&&zv0F< );Vp]:LU5'.ܒ +*Mo7ij73/D21+mI|ŷ -~[7\ `v37+DTΣ*cK i푳c, }anA7&JKNdyw8)#{JV,zU N#Ek!T m+Pi7آ8+e# <*Ձm'D-otz>|,lapi'=kW'7+[.@<,\X2X9f&^VQj,kTn>_sģY$9ۡoڙy_FRE ~{w@f$j@U.obI8ܜ'=܉V$\*K)# ګO.YjUx= xZ%1t *x,OJǩ0q؃JnP*\|QDq0جUǣzklZo frRϥ:fodm$xF s f7!5Y`7#n oJeM/z (*ɉsL3Glũ#V=oVރN'^S=E^z\'*YiқԱov)fkyaSm}ުMMbAŃBgZyx~/JpHmTK're'.H}3tk%n H]r[a6+2Y,Z.^5Siheb*z>k0-QV0#i) :7,afMrsgˊWTWE2UrZ}'Ág&dŰMf)B|b;M.sK^djW܈UqYJkoې^Cf0Ot0ETclT g=1̞hΧ4(V!Pad22_ۄW.Yٞ보 LܻalfeyF pM+,mfG$2f69՗Ü\٣G\ChZH1V7煴ڭ=x~8ZČef!Ltqqióu,??,=V%}Y-LM+;iȮ6޹U&8 U%1_fF9k`:ǍӞwbx[;єOvdi3[1?a{;(/{Ahj#,X~#Nm=lPf[]t2ԛQs0^T/6V,Uin>;SBFc ]7b]s5UQ9-/(M1YƝqm8Zp Fؖ*!cUQwv݉'ydOSXx%l$}k`pcf*gzUj}#%XR.dρo{m{lt2myƮ2P86 ɩo>o[T\^^Iz}nZ}^N2g2ggzX]Yx~TL_CwwrNpmC_86UaXfuSs[=20Ll|ڛaF's80,MF2NljR28b|F beYߡu"ak,X:ٙ&Yp̓<:%.lr=tbmQٽ-v4dfaxCsA["s{:qj:Ul9NgManz`$l4/qW/c+O&+w~;յ4L&dC?*#n^̹i,֦;q Xpu_Xn̳vؤa]R*qѧ1]Y*Ƣ_K&YI֮d2BdK Bc_UaPݶ]Yb ڈבDH6LRq#>q*H71hv<. 먊t~NrOۼº1x.n`WyR䣲 1槶㶸?,q{&v(-ӵ'8?Ei IύEvV 9KJV:+׶&m_/zj,)~}sdwL+L$Dͥ]UrBܩssUݳqBU Y`Q圇f}OD?yp5ҒsfaB*Sx]]%1͌Y4ᥑg'')-xn>vIvFBebTZ0XsHN4Ѻk&B]b:JOu,͆{1_j E{TɦMM%|I`+stmB^pJJ94!N"F lX!v}Ti^cQVd3G]uKL {$]^FY+P*4 Yoxp7@(eeP*[ajnEavZmGPE^B {0֑mJj$I|;^ iߧA@1 TX_~_~FQY8}u'z2#Ν$-2̫Y'?4Kyzw_LYa R^|u3FlWD}i\fYVF=ϟ>m(g/o?I}ޛ9l#fq~яWh??΋>!ji'귷 6 ߵEO0}umkJqxE1~῿ՏeaR7bhץtF4?[&C-PI$A0ua~-'@쏄W_āVsI[8ݷl'klDu~,p5.vws{\8'eg/^_44ukXIo$?݋Y? ˒ߍ5P,}nG{Q343^p1ɞoFQf1Vdg!7ry6;u 0^@"~t !d8 ]RxpL>4'4IBѴrNApy7(>tpFx(BH\ht#pA"EѝA.KP$v*F,_^glj/O/(y7! 1q_ ,Ca*"pCLS0DD!dJ`Z8ɾ4f;[~cI7 Mς:lX}/?Q5)n;]'X,ǜ?!'h<𗭇 /`@4܅&;b@A`i.o|ƃ;Ȳ@C7 L8:;0()MAXP8ߓ;_'PnF ҁ-ZNX)tDX8"/×ܒ{6xSB|KY$b{tT[Yǁ[9SE$K{#I_J?D!#@1^ZEwޟCѐ 0Fjy6|׆  @s]A)/8I#P|QF|GdPcqD:='v>nbMY7Ex#^[>M#!м9G5u}^n ٷ ih}L][#ʴĜu&2 k5_7 ~F~?7[]focuswriter-1.4.5/resources/images/icons/oxygen/scalable/22/go-down.svgz000066400000000000000000000120251231434177300262630ustar00rootroot00000000000000}[sɕ .=Q=3vƎo(JSZR*RIBSm`՗'/s*dAn~ߜYw{_߾i=,gvqongopׇ]w۷ݫ> ΦZ7rvvV}x5|%f_^t7ݻvpA@[˭eݻP7#U B*1}t}UwUeDe[^}L|v0C]TXx]՚vˋݦp0_Gͬomfv{]vkߘC/Kmwr{}=*̎>\jPg\;_\ѿYLP{mc~y~㲻}lj5Rq(m~9xx]]Vbӛָ.fûGnND{-grVWBDPW﯆Wwqz:z:[CUwtk]l Z姻Mݣ9u_?77;9?،b5/7zk==4P1o+ӵM%VF.OΪ7缫pQ+߼wMw?9Q|wue~=)\,9Ǫۺj8ηz=U]ioC!DY@e|Z_?Sk5OofMYF'umհ*w-+7QX7`j&2~>>-4r--F7aoŎj?gxXmNo]=I~X~K| 2W*Vw&?3:9lqA8atyuu8sog+{Qs|x'ga/]w2w6. 8f7O9CƦ>OFXf@Z2 ỿ_6U^ֵ?CLO5=-?!KO6!@D0B /<'f0. LU1:k qyT bE235Pev?W8Tqol_½Rm/u.N[4IHr)!U0 -%XQ-/躗&MO/FޔfEe.*J"n[H3V gIet7'fٟ̖oB'h|ouW7fKS^vc5X5kuGQIqd#XF+ƫ?fg}f2hvg u3P;Mս1007*6b(p'F"C1,{&FsjMDkHFkBFe2K ާb2cB8.*\ K>b;|DHS!+6M[|`* $Mr~Ph,d5{ҐcB'\ [s؄x)O _!D*D>1Hԣrp!nJ(Y!* @e @:$1@Ybچ" @5E1fLӎOK^h5%h!]U{╉~xX&Scb-3EE3%t$!,3&fvG)`"R(dI%SZ87F*fCXr&#$!3dV5м'O1綈$ D8z/olv*n#Ug, LA.*ξ=0' J% e"AA+f< .C"PЉ g`U X3;@އ=T̳p:3*vG0!B)Y*R* 'Dubb[o Z?ȴMg #xƷLm20Y@!D`Ͳ]x~{ BҾD`VUpܨAR}Bq⽯(l>J!f`b02*9qT+)ڳY d F$41X]'*ك QRb ;oTx.GUlye/>Ȫϵ^.nA1t]~ux;milws]TꇞOMo=:0%LMAGIGNيN!tm9Q=#5i]nD!2(%m &Fي2 UMK|"̜$T:ꑣ%0[`iI"L!elE+aB8WVcõa) EA3ls ?Ki!Xk;ǔ""ts| (($IF٣Tl ,U_&2)Cw?'2bX3rY$< dj_5, ǤJ`?&mhxb}r[n83e(b;B ,5F;_ﹷLO~g & !5қD )&`'L=3>{y77szh+ڌIw;(Ntv9x]?]B9r.(4^_YH'HˡW_֎s|-.O‘P0Zҽ#:;fJKYd󢇧JHq"-h/ґCU<u~~f)3G8*I8L=AѡoڞK{[ 2,szU V`%}=~Z0Z4g5bVȔ. tbw%/H(mw063:efs(߮u/D^Kr< $칓+3W {y!FS6 BXfYXظ!a "gK{n8~N.O&;99v;4k_篌/)Ng͗&߇XV/~km&7ݫv1=g#>kD6V)h X)/D>

      ~]݌OΧu«u_Nf}Ow=t>Zwyfc&Pw8^jKT0Ӳ\O:.Ofӓn?u6d;]οWjo>wTp8z;f|~I8NOcè / 7FG+w{#;tϒ,=r4|8I=j"Dz`;X]"{5βK&|qumw8)~5eI wql'9 Oc:y4KճգM,߿ӫC1vXF{u{uғGXt.#D#Xg7]zz_5ϋ_O۴R#ɏCT;H)rRa!Rc!!0~@IHrvDŽPȣȹ:ӕӶc]=z3c_!aA. mL^Pɞ}[nCM;ܡT@ĊP))C%/eW5OL:y;<=޷f7yw=:i1ёQIQofX3o$>D>;tLmΎoJ\ "N.eꮂVoKNzhz-M 5GBDzX#<+ChO)Y}hF&_rdX /6G*.(ыdMX z&{T'GI%GղfOEE5ZJ,Bm6nDMO7V@| ͧcVjc/L{\DTΔY@؉R<> 8' ?mvN4x#0N o Y2-WxL,l=(z+$Jh+<jZ%o5{{R3C.0ij>DM`jvhPK Gp V~Kzx\DưB`,gWvI-i4N(f yvW=WN~-) "ӍuOMjZIՍ AIΤf@l dLPDimO^4A38+.%~ \[RFX⁉}CAm<,:y<!--R/k_>3?=߭tӗ?OxICUNWe.ZYu^5_=:܌VcWaK'Y=0!Up0&t(Fw(u 9xH: RGPݸ@:0t)tPհQ `f9HYݬb A0Rw vT *W"Brk॰h.Rn&2MmT_N;s}N^WRRs?8?vӖ:)uө^ܖ4cb즙ґ.쉘a7^z/=ˎ@/X&AAi4 o4iQ8zU&$ `6]vu,͢DbPM[؜yI+h:छul7n<@149jńZ&Y9aC a,ڐՂ…WaLB\@̣ 041 u^yC`fARTz-y襸%Jvh 6ta򆶡Ci3.trFi=+7t Ōu) ]%&ђC )*b 9zk ^,8<T#TƀNM85, UcInTVyHu7EZىZ-0uXJDiӊbjERGF)E;YSz>S:#f FH5*n+P1-FW 4-nNE5DvY{i-+6܊ͭg6WB& @ lo*# lzTݬgǓxI+\dd!cjAVJ1 )~AƖ`F{TS9ǫ}nX`v tmp >hڿd%Y:?a&v ǒ meDvgQ,Yz}ZOǒv}]K<@:(Vucim*7O>S=>g{Ol7v V-PA6*J;2Icf [k_{ƞ~o`c}wC@~/aFջIHmj ̺^{ k@:5hT']xڿϚ)SIHJՓ'٤aQuTyhs&-B-޺bZ%#Ե ZO=/su[LnkԲ}ʬZ9$z",XuOM0|^*;2S'*ygZHYMMtJd>g*m4(kYGQ^9T[:AF? pմ̜aq3n'"Y*{0V.\4?/[{D,pϴm-Ӷom%ۥ-#hsk$xz|tU9210[fhM_Y6Y5b+{{ fDѐni < ]{q1b7[PQ J"&O| ex =^|'i`i$qi=Sc HȬѺ;P#]D84%4"v^ǯwHIأt/G(Fe/ RSjsT3kӀ |ڧfhx%kݑ+zlPC)AILG j ,2 8Y޷Hq1lAFʷ=/oGJŽQ9wkV "||KF "((HrzzBe%ޙ~AF r|zAӫ\eYi2MӷE>3Pj򅣊hު(#}]jV Zc0`iKTE͌ Bj1.f0Gy-t~ܿz^;M0J .DgQ2wɇG_MʹFtgWբOS4i9vUjw帹{Uda٬# )Vkv.kx3N޿iv5/?5uU+vbVj~_k.[XՅuM7Q݄^ŧ.Eogzz:Z4]TAnO]-~=E*ㅰH - 5:~|#T /~uss,{ܢ- Y779@؈?3pV8~={߱շכOg:{8_?;lxQVt@z#ˣ0zu{wV_ []GoVOgZWwtnBR7?7F jSֈ M'*馣iYZnA3F j?TQ:L@IZAS@*aiV3q,$2] a61;9fcBA2҄4 5#b lPןdzlo:ee%(A(I3:NmZ; mHxh^0DRA"ET(I mX/_˵Wϧ/RN*c'R}w~LIwSbJL|ݖ֍m͉lݞ y j\ԂLr_DcZiUZ]O~s&^/m۩ ?5v7(#"@)P${ȁ+HfVL%96Nϼ@x=TeԪjwG]A z!ixqZO?ugGs"PbaUqY&!Lv??LN,=2H2STde6 Y3 oئU3dE5؈{淄uϫO/Z%tnm?~,l.L\Q2rc%WJ2%^`B.:-ʰ YyLrMs4T BaQkB Tҗ&!Xfiry0>+<.eG_bA)QFɋSŸ8Jځ)xw`kJԸfV}exEGڴ`H+4~gï̐{fMff)3cܐ,7ff13̌qCf&ϝ!27&]~TILeY?BfXGd-=AuW\+kɱk4QujXG.P\ͼWBiZB\ܠd -}@ACpe2nEY ; EGC՟L`Nru0cȼ1 $' C&Rh NRMr:);'/qd_2ћl6lWf+;%bg,q0qZ8i8c8 ha2&_˹q8jqr`e0z'GiQVc(Ǎq89h8cq6."g֪6N$ab[QJ 1qQ@IJtʼ+*v ;h0kO VAIq0B7X eq'ƥ-0"ZЁJ-- 1{LA-_(gw b<nb_qs)k'6y=k@D#|϶#ߦOh2(X-tA*X@ hPf%0cFm ](n\kS14+q:i63*MZYAt!PgCDىE*8o^VtNH,Tp͈7rQ>\,e͠JP5()>nFCkUtG\*Aqidd|3t -:"`52(zytd가j%Xp*xQ2:b`i iv)X].XX+=&W1P#LW5.t0r&M}qFa d, %C@!߂ jI)gϤb`J~!4Wd)m6=6,B#focuswriter-1.4.5/resources/images/icons/oxygen/scalable/go-up.svgz000066400000000000000000000137521231434177300255250ustar00rootroot00000000000000}[o[Iv{~y#Ti*w{č A6EYDmO"iR)k1 ZuY_K}_?:%:)'OWǓi㶦ˏN]]_6Xi:9t5'FJ7 qOg˂f1Ptw㋷f}bG֕3x4#HL]բ*_VF22/i*v<]68_T4ռ-q ew닫tx30~v|u:=xs;-7vדLzlz:zZp:< OO>?%`O?Gi;_Z"Jm?n][J5 D]t6^f.~<9\Nn^AbNO/|:.֏Z[0~he0>-zI=ex",By,X(ʏq%FakerzF_ekhr8cx,ۈ1=%jixoˎ>:苟^@"\n^U e!e4~% spbVW=^u:noB'䟶&&Ī{{!0!Y!a `׻gzϰbōVm_5@1{~1!g BRP8:5^,U6X" HІI7k!cʺ+3` =8q,OEM̦",H3se \f<-G[џdzw2͢KUuךl{r44ܟ. 8`4 py1 k=)=XAIHA"s~Mk~ K.N7r` OUWuc7]Le0L஫X.``K[ % \^V"Ȓd_,m ' mDc kV1kF4eҩ&6PHNjݬ$e%/Ziy`:P3Ke2ud!QBu@ZvY]N!l1 J "!\Z@dhKUy++_ꈫh+G΋+PPz0knsQC*٢mum5Lh"P0MHEBvHD$)4!kd&Jp{x5pabK艁(J -Q%bzMJ&Jp+lȲXU`jILZ$9jF$ّ ݬc{ 8;%}Fk(98S+X[y rR'6Nw0j& (QieOBԄ |%!qJCsREBۖ@ b@]<`B"UtG{f⒭~0fA5#%R`_@H)@ƫ'5$k1I2Eldɤf._IEC͉AC `PiH)R)N}wB MQ1y4jy Zzٽg 3 YŚAXKD4T-Ev&^C~UPm#Kq7j:!Kڐ"_6>x,d-9Sfa&-UY;7 *t)iRHNC۬D 8iذԋbInT}P 720#5jRfڌ:5)!HaBdZQRC\IRDHU˃}wN)|]N=r "!䫐YObPrҞ_*~ࡲ!V jS"EvjFh\%,aI?v\J)zֈn>?'ΦmSjJf rԳDxCO/ebk]\d{_P_d@I9h}+ v)ߚ~}]h5wwk,!KN v" oʞ7_ٳ {џ,E|gn_NX{sB'kX9MH ҳ$p?~Vi$ȑܠiQTyDs&r[x hx+l(Aj%5!XG=/sulw5IkÛRgqsZ"Qm >G H($Al JN塨ߩ<t#+[hӧ%uxHbF?̒׷e(ŹSV/-=۵zB!yٲCuXʪ8m LۡVho}$O,&Jډ؄zFϷʞ7_o ݬ jk6{c f^?ijxV1hl}V1#R-Py3RQ\_9ᄐ6.yla$[c㙔H Zd=[߁Ǒ&b;;3 q _Mu.a{p4P,d}  W@X"nT<zhrv[_wr{7TqQӍѼkWUkMWoDeiWtLM>Lk*26-]pۮ֝y3UY3e6Le|^F}>W}Ta+@O-PMgp4 {Y dߌ_ܸyf Ln []e.LËVRۛ+E6:Yy2ҟ }.Z'zBѮvm Ɨ(o1qNnOF -GrڮMOc)IDǧ!j&D,<,*hRs E$ a)iS`+zqc10DUIL,=b$˄Sf&YJ9)8Q ,fh$G(Xsz|E#u( IA#qv#qEH!e4˨ 2ëslw4B+nCVekVFrK9+l3bx#_ey}g1#?'ƣX{wzG-lX}jƝl auV~6TR{ew 2?a;ŻƏ2}7focuswriter-1.4.5/resources/images/icons/oxygen/scalable/preferences-desktop-locale.svgz000066400000000000000000001700401231434177300316750ustar00rootroot00000000000000|[^qs+_bE &`7(M$mSkUoۤ36f΁Su/~W߽xz"G{r{yg篿y/z'˿{o^<ۏ/}yq߽͗_|?/7w_Y|v崯~WO>𣱩־oO޷|+W9Z ~uͯ|֜ _~ՓܒyK̟K͛o_ë?~o_ǫO~o^|Lt77/_~w6x5Sͦo4&̔;'.쳯xÛ/fK֗?|yIU_|b~zd_<ɟXcc}zo󙑏> b#iL=~H}x]i|zlUwk~vloѭShsS ]u r~>~I߾|ś o߾|_M<*{<} ?\_璞ֺj揯ǵ韺4G!ࠞ|"i󇯞<1orG_%+b#R26-oͯz޼:~Ӗ> Y7;93HkM~j ^(~?3'&A~÷=E;<}=Im~L?|jMfIfryht:T,;&Ǒ1iP# {̛/eOU%3{X&8M z3GÆd\lSa=x8_W/? ^ /-m1O$Oyl8O"Zo^|Փ}Rj>Ϧ>Z,\[g^{KsnDS *8ZW5lU1xuͿ6ףc7߽7v,Kpu95Zmˇ:_?ŴO8__ٜuZ/X#]d=dyua|8@߾y7?^_?9d8Xr*}TT'RCcntNb6qk&H/>j>S@JwlߩԧϻNJPXÓZoK.0{|@@r!y iHGHy; ##FU{@CMNI'!cyO {k ~b⣩Inih}':[1̟kU^pPٖ \e q>۸%X\k!\8s [h 9Чyݻ`YGڡRew.ѺծCT}7X@ʚG I*wڽПgm\Y۾2?#7\SEcvgXdwna#[vpiQ7~V?ߺ&| qĤy,А@$r,~D.оPD6Ȫi,r~ޫ\@C.9GDYcu$~Տ0@[66pZ>yE`9ZDp$ͲS#t8Tܰ|MW+c&bZH9vNyTgDnLa2A; fx$ rȮ8;t= h#}p]XG8!aOxjf  ԛ%FN0,n,,ar\ 1 !P:^w$J)@ £\Uq֎p81 0`g,gt*(a܇&Nγ7<Ⱦs}M~vsEHsp);9ɊNyi(":ܟzjp9~ !@HQL49TxMŬՀՁCUF'fa܄Ձ00p@kZ79AWqJ>zEʐY񶊕{^75@j䩂n0ۡSobPc>&(ĜKb,@mNoK lA ?L,9E"u5j1x?艠` ,- ŠO&"桞9F @[[E,9)ԧ)~-'{G1"y=wUbDV}(w:۴T7lI`#xM#-/ 3:wB6.; p%$AqSbs\INF@xR͘PFM>*t>N>Tqǁaqvց @b7H.ԛxWi*ls.R;VKbW^F/$T%q" b`# (^lɄmEq8Og?blRST rN%oe l gfC#[Si =&yH| a%77$1uXyF BgCM frb {p#9>u cJjOZO2疪Ʃ\8F!4竅APi)Hyr1ȇ~. 7#}C=^Iwa5pP9JMZJ̠j"ԅBoʱ_t:`=+68E^6աyѪ5^z³Dz tmcW[6G` UFrVȉG)cȞֹ-yr)/ۍ̬5"Lj2&% z-ܾPmhZb5*"G(0=MH JtyA(u, fl`꘹G2=x2# b kw N맍cL;@]U>ޣX RȀuXRa@ 4Jhj@ J-%ԩ'Bw=,7{fٓmJDWl^52&sFͽ8bY'aI&Dmj=aAzDNv &H:?m .yJlrAT Q/䑡 q^$~Z=iaA4uiG9 :3iE{6ҠGHAʕgkwYbHxQ/4F(K%Z΄L+`SLŗ.*Qk[HXmK:/#̭ PrJY's7dz놸X.3'B{7RCJ $oHA|-VhG~Lb<7! y_q޷=NLo+aKWXJΫ=*Sh UAMLw;0\| &Akkp#Fm U@$< :HM-VyYmNn,[0D1."}!+l'.qpW}%(gm~7&@75 Bpk=@L$mcu:.펖 7'Y.9d\dZ-9jMo+Pk\"[ G4<_K(B7[tgw;l8 ]֫w<"O\>ۥUKY.ӣb{˥ Iڋuぎ=] C]V+8[U*^(م~<-w)+99觌!4WN>_/slhf=nLHc5)ݐQHy#d(tB̎Q𜈘[`NQ6fGofgjvbJM+1b:W祙OeM"`^V6ha<A:\ntmi2A-0>{ He3蓆lY ڠt{hyVǯ=`j! @6w)m}Xγ+n_Z; ҁ3a>Fe8?xfȈыb>7ǧ˙cok][HЭ"W.B !9ezN@mN"`s#cUƐMb9v>6#;eKَ6m0P~YޅGw}BΒ}ǝ(HMxQ7Zq+9lќ6jfh,. 6cK--8W?K1qNDεM2)NY;;=+3Q )+i0)0@`x[s>ԊJneQAr= a\r/ϕ ?f'H*}ZlVXʄ_'oL0r*ywW=,}#QH=DK M-x(t%!Ȕ$v v吩\nWꉈ@ :ٱtcF[AB}]Vwٮ>VbNܶTcEa{BAh oxͦm/q j-m?^J[E\dp&oJkVmMYm.$9Av*>/ ö>3O"x;e`,km iCpڡ4"6Β`ΜzMᓢC^gى(6ȩty-¶LdEreo m4P6Ub6MDxBEUzjvb@~eʥ=&7rPZ^Ic%^Ec;PP3z5LY;MWh4FK("( j 2~~NwE&᩺wDmQ#;uu4cGJ,_4]@bꒈ(҄CF =(;]f.?V+*>OiցU b̾sCͼ:Yʽ/J&&ErrV m@>p'|*7&Vyű+./̟(]e30's4 Y;wI;8z%Dҵ3MrQтUՇɬ8v;۵dX86!\#0tڱmN;!w.E;aWkӬQ5FdºK"g(cZ1ahq/#VDcG4{eZ2)78*_ȹ8U`sO> Kαk |n\Ƭ&~3&U@$m[ܱYklhCVsEQGDPyYPhC{5}]ٕ6Xʮ$8eWq]*úwuW>vV]yʫ+ݕWʫ+JA_*]UXy5+9+J« ^+^W^f;˚宬֮k]<5oAcA,l]+eW6ayfۃ8KkV,p4< 6p?+?] Z< Ylyz-lyͲ ,lm&ЋVn8arȠӈv63]V콃f_ L}t*#iadߐ=6Ep,K,sޫŔ!9ͫ5c'`{(vTW\7f\u٥?y1+v_x_9 o^c"-;Tϰu #T-n˂?mŇNslYBm& PS<l);p-a Nǡi'4MΣ<\eW$yo}U!v<w^Ml;:u ]H`mZDW۩;$b=kx9ݴ*FHy|OǻB as;:tk1TGЀQ)R#b{pF]-D]F{*e+:}w;!TfX "< .RƎ؁@r9.)p E4;b{{a|n:8T,;F`#;,3bx"pgRUPݞv }{_J8B•OV%kRѤQ<$U+_Nͨȗ.+GdvNE.$mZbB,=Ovbrgx"r9P:F-؞lRYʁr-`yr3-G6J"fszXvs :H%C+cmzK3dBR1U~NvR=>e.'.P2J}Pͣ]#0`tNY4ϳZEFRKx^DtBBV{`o%;벸+?:fpBؕm.|U sNS^z SXpY?VV*fZX4*ɺ>XYvS=`}T`wƦ.!6i lԕ%"~T yǦܾKm8Z}4#$:p3vXY^@N .mg"o67cO>q< 9w. lᢡ Vx./`kuW Qkf @0 M}֍&+ ]A5uV0.#q k4IZ0l++ I)?-}' *F' q/V]\Gת/|z"*M8stP!y{s2fʪN"`'<(E71 "Y%b&7S WUBNtԐNl l{Octl "@7z~/ Ѧud+H!c;:Z0"'pvH$O2QÑi Zƒ C}Y#wHtPg]SQ"c@qJΤt|H/3|NԪr"ۏduҔu G(W7w&tqj]`\srFp'߄)&x ,&#jG3&$~OX JiWSY[ֆ)y7sS5Ĥ>>ܕͷ%3?C y7+4egz$ɮciUmaH4k0s|+g~U͹GYƈi̋8b1>j0~`sg̽X1pYLSivaތQAד~G!92V# :r+oA?S DQA-j3ill޶~&©lf<_篧?tbԕ, s+e&EM oU0;b0gƤ? rh،uq*@X;( 81|bܠ"csa nKp qӎ;p ⦚wB9V?[俜z`.ʼ'0QQI}kw='T1TW}_X p0tjO,r ;{ 2zwv{#y^sEbAp4!k]R$:XiU>5X-LۈasgOo-gv_s%őOa/9s2@O1Fz7u06S4W%Zs OB1lɘ ? >{R6oL05,nX?2S۟ܫH1yr??ݢu 8/8NuI*;5^qӌm]"ψѐu+g!SB7^SrּghGD[ȢEZW_KbX&d85qex\yb_>'| 9ruv܋feH LlX3!~!CuXwF-\K񄧦Y#8+FӀ1ިظ _40E*")T*b(ݭ2 Rwf톍I?%0( /0;zLa%Wb:{a_'Q_{řr#GA\2tkjL__)ʧ(;;Ş(eѽw|}r%ڈ7bAa>p{V%G)Pt`9 ciE dq d.`KwLC SW$~{ ,l[(ΫA:ϼ?[b[aGb0.M'ud˝ksV{m&Ĭh]6;C$&EeAʦ?x!8@QS/o/L:&z!?WļHƅz-Ei1b|ɮުvs1VR U9'LH.0r rA?G{|obڋ1 :Ոd"zEnLɍ; ![#[7IOBW<]?[jf$,~$f;uuy݊NWzxUf.4g6L-8Tq'f+(k_yv -HU7\pq7c-z5FIJjҎG\]J;AlnQaZt*Ӎz=vdGűW+О3=k gu8W텟H^\O-O$jlTKwR@+ j;Wn$t aʍ[?]H4q>QgNK +Z0T6 ʬ#w~0!6{lӰT1Ɍ~nVƣ:OݶCp/'fh-zFF^zڕ㓙 )$AqD XXâ,2Adž5mƩ,* 0 p7GykAQ$wc>_WRF;y=In]8Ul#qf7 !*eQ+S($锥)ӈMC % 4hU8pn#d/^{p,a{xj&գJ>yNԃ.8`X(ErW! +>7W/8e}{gm0*([o)~7w']<ԨQ~Rz*eOyܨ=X/cJ5*nb2)jgAk09 dFsD)ˆ)&,,c܁ q2!& h+ J%]!{DeIȚMe՘Gr)d+dq#oR>/ɻtce셼vSfŰ1+b#G; #G i* ys[8g$^콳  Ѭ0.P a g +ono9;;y8Z OFUPj{xW2R &7{A@ {zD2דxH ANRSr Z)?>NIeC2!nov#<>BB%"i(\BI:(4[VY Q-hE HCT?}@h]OUN.6D2`֬(Nx dNTh*|)t%@̉-c _%p[9fu|Q'tL)+I}A0w\*[NׂRIB83kY2.!*֙X@6ukPoYYd B9ʷC< ,Z `>jnטZM7 %퀵ȬtAD*IF< J H% 5PH$ l?%r%G*(k ('IE"G}ٽձ| OT|Lƿ@Z׭@ c'eyCk^If{ 0C=RBIʞMQhL̦Jq({$)a{:)O2@@5N:`Ɋ>,#`9ss2k$O_JKedR)7fzS\_e+ζ* "VK$ݎWfNYP aAD+]` T"8ۆ*uk}")#&8y2ՈN&XƖ`J|ƂMڶɫ;@L/Y%5lGH iC'v:jN4fM'wmgH/ چ8Sm39),J%XPGޘ@uftd8sHX2T29'&q#JֵH@NSy܃PsT(_>Idi9@!ǼD*V'*f& $W)Jx%AX ASro"A8iFzK?BKs@CM9ʈeSJ@ 1=4A> u*Hu3 $7"[O 2a Tz:@l7nqr#Zu^9AN="Db |* kn))BR>cp]6'ӫDU maTWr:9 Ft4l6_;(Q=<ҪuWXnA$1Dr+"m/#WIwyU"iʖ1Y 6#3D%FTVکhuw]0!jOJ@Ԓ9E0Q!t$P,q`PtSy& Id<>X4*xwj:rǪHMPպK-z2LSW'$(Y,6a|l[r3')Wz^M@h|k?@ii9jPJ'P-b3+(e^sHk9Bky};ܶ$pi$*&P2@pfM f@Dq r 8: |N.JH 9joveDE0|NHB>/oS JQY16]DtuAH&AFo溆 d& &JJr T컊ؠ՜3#ukl qYTD-+b~޴LJr9e">ѪP> @ @ދ#6-;w$Uw(8KXO3HNj_ .u=:uCx^ʬH ~ no:j4t$rԃ-"U:&VC.mj.n@~ȭ A6S" +%c{H^(-&L'S(礽A2l%K$(h.2X |zJHAy|۟3r༔ !8InRDaJ gLj~BulB NnDlGWNxQ*^4vNEٝ6eh2?WC?v(k°<%>$ Qd(NQӰ#ްw )G8J쥲mvH+8"Yՠ_ h*0@Ә׊rָeA&: Y=yU۹׎UJ`޸MJ8Z拭t;"xb'1FRYW ("=ޝ1P:Nڈ)a&(tɐtX52 p $nrJCMY_NlUjz]lH dbFn|N <9#plV)dM˧VL8A*"m*]pWg=Ԕ e_9 \́<\ `W)ܷFLԋ`@r(ۈN˦R&I`etIjL@;RHI*@'L*i^LI`J9'ږé9% d踢EU:Z-$8ۂjOH*iOTN@>я%!woZ.MCg9͉iA-ұKM;~7؆R9ë݀C dR,r9RI d}7L'hjk]Ӈ N(cNɛU$$PmtnC4S曰  2A>O"? /9^BT3@W]r2eAg^vg[9Dv4mo$΢RM7}dsJNT 4F ~܌CER|.z67m 6"DiU_%YLG0E (A&R!2i~b'l%3)D59Kȭ7:tH[$wyJ.0g| ;]6Ss"GR"g*Orrl @@ ,YP9\Im6Ƅ[\"&<RE[@Qȇb{0Swa*6k tsO[&X0>2:Cᣋ62*ORkVb9&#4.(q(ﮀ(DH#J lӶW*SBw3p 5rT@X+@y;tCv!/s@@ےtH r.af6*@ E1Vc~:@X&~wN3W9/޹_oxYͰ$E; Ag& [ WIζ5Jʑ;BpJ7qn&Avgx: :'滯pz!_Aٟ<13kȂ8)Mi[ F4Quѭ!0'h# QYٍsbz]u"6N9:rkS{W+na|7p9F: PX A+*nŕ! [3Są`Ja)HFkk{>+ ]E 8jN.'k=wl1'Q"4uf%s(8d ܧL!B ̋95kD-wzF#4 '$P'*t*Ľ5>k-:pD R AtPJjُt 4̠L;}$ʮE~-,!(-r*pxrn ͉r') zfu4?Q"H?PwydN 6k ՘\ +9dQ٩ĪcEޫ{oڲ˓i5\/$*ĞnT0&HMNPӔ~s9b囮TgjPi^q!heo>Qu2OQ Ő}]I$YUe%c0˳Tu_٭4 &(Ǥ]_h5M$/%M--uKW kq>*#X CRdfΎz'N(}}ol޶^&c5;4I o(!Kh(I( BΠ/*,LÙ5zIIBdy/Ƨr=ʠ}'S6҇U; GCԯmfwXBm7>Sy[%H/[Q:)u_ö`s2/[{GP" Y$ߓRcA0⹌2%ܸnqc;~"|wO/_9Ak dRa3[PT$[-;S:_oHB*1/#>9q]Cz#.ufV7d4GD|̻lww!?GYlأ]-ߋx:`3Hb4i OM\&ݵ,@[’O>UIfI*ܚʇa.#|gHiT_2>:Apxˮ] D "Hpԏ@Jdr% *VI(]$d.a }u$Ͱ{ϸWx/ti]e2&zRfԌ<= o=CRko$=h/ӣXڝS]$d+Q6ڿ/ ^+kʵ6c%]{M"ont#` ֍87ש'k1.wMJ0UFی3U#E}9@ @XĦθ" 6Ko^t؜f]A {j/)H* \v1nMT5>@hw74JM)%58RĄ {ln.KZ}c<$d!b<`>jG|% WxN4]ꎸܮ=K9)+C-@{Rw`Ňd7ޓ&e9Tl;s\ VQFዚ =MK:^yM1_/^3 6q;wƮX-rs~<]?{Gߺśd5#tt.ɾ`<ؙ_ƋJ+ ;Sh~l!H-M- `]$7ƒ/F2w~)@yiHR665я<ل? !:Ne]9 H8@F ƃ>"CߐgSe\x)ЀLsgoL^|ƫ䠑[Z5 JU4 Q%C]viM2ik6KĦuz'/#IijɳKIYwڪ8Hp@4yc0 GŒcjy/w unpnt Cr jָ{of%Wx}ģ?w?wus,sœS_k˷8EviSwA_Bg86\5g*bbv|艫.X]Zb>"Ə6d uca'M[H'H7MbBZ݈wj𙭸O&s/by[ؿ/a-j#6<fCk)N Ό{8 ׺Q6<=gϳ 3q~י_fưX$h4[w*J VHLD-*R6H} a#eL@rPlCb9vAek%lq05^FĠaK?^㨛^?X57¤{b5aSHBQN_Ҽ2EI—pq`ݕ䪀؃^ܐukR)L_R[| #ܧTjqbCOI]]~$֣!{Eoe#dŷ43qCFHwX>Q,`2Y>{E]{GKI.u?bX{;|OӮ$1k.y=.0+{x;!/+9``=죩$-a0ݗ# 0>"qIUyal$҄r=IpB~|n!з y fїIUnMD^680{32 +EXi-L2݂"]Ʋ{)CrW7! YB-'/c돷N$Ya ¤^Ru:NʾEz|׺I+G8|~$Yj6/F虗MWt<ڗꤒT-cy{IkF9t4"9?x%LP mIS )̴$awK2X$x@##J55!/iIo3ș~7)Cj[8(^O ኤPgqs= 5n2pߦ qI ;&[``,l,8Vt"\, iiBGY)gE*A"ZaX R#[B"6qR܊!T η%M8+ +f`r8 a;Tٌs \NB9r`/%HʜPN B^N,>%ԭ s`̦vѢ2H[/6%,cM?*A_8os4>AiRf%UIÖq.o!In< a.KvЄ69& 0wk0RIhc򇜻aar4W7L$l$a xwr6T@+ $M22W”әj쳄%{IuIKP%`&JH=y/5?8Shugs@XQ5F pdn' }@~qTK#+ r.i2 ?Id^Iv\.io5_I~KNnMt^i{Q$ȸhle묒fS2#((y & UN3HqԁV xj9]AM$)A~'ɼ Ns7n:m>wQ) 94PҨ`0RdvRXpŷ5A &>dʂ)U]w=Y$n[w@ԙb$x `:ᱽXݎ'@Y@kjHt s90;#;@v'xYd l]{Rtاx9c+Iol^K+h X&@k4г msH^3#P6)j|˃t@7$$Sc\ oMSGzkj%܀zkXXs)ۄd!V$fa. IR+x?ʑ};'`{wTRϸ&snvi_X,!r,|z *ݸGG{q-E4R|1gSW4AReoVfa㷖2BA+f1c$Ua~f5-eGj0tn[)2I0{;b77.@K Y`;dovA s zSqy0[ _EԒ`y;kLѕ$% qAuwل%;Q^!8?2>wrl{ X`ؽ1,Hʏ1Tߟ8 &?*df<1H{4ipmQ[/~%݊Sф(=AQmKa&8ڧR=N`eaI|1QvMI;,@}C%9~UZ F6W84`ޓ}^\Ǝ˺ hR㱊a]nS/u  2yF8D="D́3'%vjMh[ƹK~$: jzK' iK Rςz:@4U' Hj@hb 9q0$g] ("G aFQ0:2-.i\ԍ8PƜG!`{ K Bj"`m(?sY;i}EMƒC\`B:s Q/@ ՃKR}N :n X?H#A@x_jX_9kt.z5^ 16ϋ~W/go05Ѹ.)d."t\9߼c5uBjr3 %P"֏7[-)j}7qkR^GR/|97~羆to;P卤tP&[s69#HƃS2pX1 Qx <% i=hG,1dތ3>֐ @'G҃wIS;Kq_1`NL.8aG Em_R,\]ny~A&ȘB,eŃTxG%e?'CzuA{dw_y]mn,߹8>o%!tNXjHf%FZh}evlW bD0aZL2$5FXWh-ݣvo*ԃ6a|__*i{˕*w.iSocfJ =W4]{a&RFKsS58OWPu5bAo{uʸ/Ƿ`t퀊 F ,69ޓCG&W/I5i0+@| IPQ YwlI LOݤd59OX6A>@ǥ {>I#?'*w;~͋{҇+sWմ!g-J[ŕr+rܒd8=] ˜wR Bf,}sҦ5 Mм̫J&y9oas{IFȀ= ؕ@9iJ!?7;Rz M ciKET0J=` N[/f9K0)ۄwmf/AݗQVm ۆ6xu-u08eW śqV vnn:B!M dsIkE:symj oRk{?R i>%L_ȸ{ƝOwP'T!E_)QRWFs"ODE8|e$ݣJ@OVw6{p IM7%s\u!.`8.#H1Ah%AJX\Na[- qޖQ\ qVR9Q+[A"i։X%2w ~9AzIF\@ُbT!])H%=-\'dRlC^AHi\6"p\AX2IQqz93q0V8Ŏ:]z LW TeoWmERak,_ @s.h]?[kr繟AMqЦ߅%e 1`fILJYy̬ȑ7 /g7=*@Y=꾚x<٘=~@b?*v75f$qvzzo %l -{}}J(AdQx'Cۯ޶r|=7k/{V*#{7?gx}wI2$qˀ~?_> CfISEPi2f(]"U'5%ptWi:meм(cj rwCv58u$ЪSSj#}s{܄(v@>w`E Aб^ED5 Z۔WŞN@3-ri[a~('g4^H7)e+L'`'CѿczO|K[V7͞tzvQgBէ-1qעhOu7#PQļ{p/=QU:8xh}k%&hZY="6=-f}J:R"w~A'R1uIF*uRO^H6U}oY6ө(Ylj<o\\7VXHrp}@^ŜdowOFx#$Jc;(E D<p_|Cu9`>ӵqF}W"_d4f rB~ng=;sp? *V8/ W Q@ܨPThv$ #jvH,eS:'4xaRuF6Ktu\ r^mj*yzAVsi$FQ k@!'R\'woV\ d}1 B0I~9E[DE y&(Ξ|2tPh= %¯ށ^/ [I'))#~UPXr>{yNEHb/3a_6OV=Uݔ ҌT|D.uD`n 4ߪžѼG7$ftk'^U:?/}d%L&HS Hkq[~Jg 1뵟nozX" j}ƉM Ÿc\bwƟ_atd`% urSKb~:G_f WS5I=:$ Yt:ˊ34Dqy=:|5[OwQ<JC4F9)ǵOM5=mJ@=|t=KYkP4}$$ra뗍ۡ:0A0WD Ur.vH6M "iɵ+o$nxrh9I7.H|Nxu4%ion3@O%t,+dl6MBvړ 1@wj^ҽj} 7isv;i@3I?>bd@@[p䂽1O Wr s}،:\y2hFQZyJFd{ @+ ^%b][!(j{ORK;zhޣF'?% `Nw 5T*UHNփ끪yWus7+| *gFt0q}D9!@:QtAԠ5sq4s/4 XOY3*T2@̘t ci"}8y@|J"+M K$ [ ADNd">`yұa~ɰo@}(`7u`R1&n0}E#6zO4g"ĭ*Ndsn`= 9~1='V(Kн7 K,:\ B @[\Ң\jЁ18@'!SDz_M(?o'R; * PcE,_pBhp$~}׫](Wcqoe[DM5ש_o*UU~S H@Q!1dyVz)IH-A*A[<{ .d)i̺1 Fd4褒=ëiS3tDl;{ x_\eY@'t >Aej`D+{5YH43p/i]̗a <@/'yb(#r | 5Am,@շU>z֋TM~{k2yCK` ~ ?}!Gk <Z61qH=ϳ o&>EzK^IX @im /2jd 1ӗy MM5'F$ٞk2r~C⟩ Ӷ_B4X AGLU+{3lw| M R&SD{fNkD8S^l?}{>^;ـH$nE 9(BسVLt ѫnGiX{-tnbyO _~uv D3e~2W͞ϖpʥR%ߔA!}YF<﷠?o=# yKc(~݌)G2Uц/q6iu(]Æ&/l24F&sC7 QW+Z>%$iL(c=ao@s ~G(6Tyt,{Qy}``}VtGj-9ќ>8]iY-I9^|h7\|bxc3n.d,hq\~- vIc;[v*}D,^ns') :NC4,@<%7xCgC'$ cWX` Ǯ_',>uGuvz?$_i/_?˿^1Ow"M??/_z~߾25 揯MCs.wj] g`w`b ==Qe|ĝLF>VDu}O;@2Tgϛ˶p4}NIi%L;/ߤzD=5S9O"넱PxѦ\lk:'k<>A}⣇=۱"=Xd,5W]Fݹ=q嵀4 SNo7TvLk+5{ /U<$ː?`LV t?-!u `lqfAe!`]ZRhW^l|HקLW}rl\ n&M+ 0kL>nzp_PweB/e1ϊ9fU8}F<ѡ?/|:'>ָ_#oM6V8D0&Hu/U{FN],#*V]jɌ|xxN#}4g0֪Q~Ls5EB*y8*rLgcX%UQu78S:7;/z5]e6l݄rS8Uf$ v;j;HNcFͪoU%j"4aeDVvV:G8.|z8ӵ|/|/pU|? {:Ű\V(<1bɊik)^Ok=K^oL 9qVjS<`^Ҷn>:1,33*<__đm~ >c˵s"44ʤs{舾NPbgNU5d:{3fz =BJ81Z@hs8:Oz`,: ߪ\d[4 1#6~o4US@4σ13L+j+4v T_N#i1-g*_Vdrdž%`OEV蛇i QkDm" E2qhӰ@SpFǥ8 CU.P6hE(Jg e'2O:K(8rɧWca; j80ja y Y8 YQ,Rz<\w14G1vޅeD2'| ].HPu֧j_J8<-6za&8k_0D##YHh 7` 0t#m8Uk{ X=%!ttσSpMR.aGb:8"zP 7&;T%p@W ̬kR?>JO67jhFݯ?-gr連y'lMھ2'PВB%z:f'}hD7z QK O26>ؖ39Tņ} PMHaZ =W,FYgk+۰G ]O))gjX Ik>DG hsU>-kz[ %%)|SM7ݘf!1텎bge&5UMn5&`jٜe/[uhu6M8n7EH:֎nrU"ȧV[SO/~ qI"4q8`u&I8J@ߩ3-J|LkBqS߂\"ՊoEX-8~2+/;6 elWaGT/v⛆[J%V(_ƵS4hy͔|{ [>%Oj x7/XFwj1޼Wt>xA-} wh{f<+O:.:9Ψ4aRC+l}:i\!c_t%2nnmքzφL+@뚗e{kӪu.([__|4Z .5~8*37huXa<. +F.,`?ksg4A) mAY ^iSVVm+wh{ȾkSlܳ&iAt @Yѹڕ(X'̯ZvO@\PS#xٛ#bZ)Ѣ `тcZ1ȳkiL"nK|InvƆI݆R7O Jʼ4^}{$ͳ{ZHfx@@6O&e h],n6tE,6@i3X&܇%0I{!mߴfI?px>ꁫO"Re[7EPv!Mɭ] ` zj ]æ=a@ *@58w3~_ D[N */t3JX<=>?`~Xn_Gg\R@l$֜, 3d Uh|Նcu^ .fpćIhX6f_od4ʆxBx@#BUEB MHܴ3~kC}Zp\|@O5`w`>ã|!5K1\C_bB!H=MBjbqKiikgݴ$.}yzebJMicY4ר 싚4|js0 [bů_bL^(_y)#~na58T_i-Odal-3zedn>`)`P:͘?0 ݞs/&bA,ZRGՄ&.%u\1u½; sJh#xã:X{ojg[ky+~D@VtUYWK BZ'O9Sw(P/2b?>û39$bo=kJ(mMR' ja" 3x\,&sx9W zjAY:{ar͙ȕ6ef|2ZF΅emx ư<0_dV[Y@Fkra&d.U8Re>[#"`a拴sr"6wI̎H..ik؞- /ٰlxCOIoD w{@".dם1ԇ%KͪZS>U.CXQ0z޶noΎײEp(9:T-N@uz~TNl55vMp;Zr Z[FXµ!,TI;}؃{MQiTs;'u? knasWDن6NY_%4..8eF+$ޓlw#Z0- GҴ5PkN߫n**wcfp4.KR= c(pD&tמ6]/W³ 8Ã8 pS6;#[xc25c,mF W'bL8yM%XE}([_o\;n&yGdE<Y@y~xr}S1㛄 _p7\& wu*4+KT?Ļ4\>QśumgypsDY27WjT(^Pi@ @=v{e7[B3cTqm{o/e3(7()£\%ݾ u9V1l{!Ap8yrҌPF_Ѓcg&DkI+ %5h to@ 7nCҵDS2n7nTfV[U{wR^f2BpK k[ R:QlhVhs0=+xA3Gd ~9' -ɖ^ h"a}SOUfijGKNA c)W3[J5&Ȫ 5+&R)7 6JU.AZC1(`MDpP" (@<J'-tM$B⟅A1<,"2BH&LxxcU X!rplD⭐ewu]Yv|BZnZZo_{},DG[c\΍[aF;`Hq|a 8~Nhn HO% :X/ \ SM8`kBkmo_f݃0M t@%Ơ3.IqXBF MU@}1bq&vrSrp~3үjf٫Z N4:2'V]qQa,)%e _ућl)q*vswT7*}-~VVWvN*_-Z~iY ]+e1A_&oW㈵0V$y0;eMy4aF~n=(# joW2ac>U7AdV 9kaRT\̝㉇v ~,mTNS Ooj=(2R(`i0#F?к=f 2VmJ!/5tPA J:؃Uwmg:lK[#zՀ]' Û2pQ9)1gl&F=^0˲ fvbR@CWץZ`xY!VoT+@%9(ASW at}`dgm-={j`p_l)jWXMշ8zi*U;v/ggw6Zu `>"JQ*morx{y |#vz%vQ`&^+!{6~--Uф k+( /6){XG4ν8Y Oc2N՗sejwJ(7_ۺ\RYa2FwAw90Zn}膯=(> xaJ)P~D/q[_qgF'p,`KXrE&=+e)@#nOt/T$e%ü PSJs807;GiSOn^0j7 mF v<? ^vZYWG=e\KcvXu{}{wJLEʼ*]H3?W5^ҞUWIW1Ցk}=%|# 4|A)_:eSH_8HRMpD=vl";(<ۍIyf 4- %ӌUY9(q>Ub\-&n*̿he-ߞ_a˗CGtU 8`3RtdGivZEMŠT8ا 1(8k/h(B/QB.B  kz bA<# [ք"碀&Vmtx|F42r%ds ?ٚ5[A:ׇSv8J33ȅL~j^Y2:DR̲Vvkܮ5< (9dK$ko\77pNB*3Vn~cWt I},EPǯ pI[DT>pUR?X1Rjd3XĠKP0'LZU;`xT?aPbUh~82wz`6Sp}p3 LX椇I nj_}9/uD|pB3D,ȍ?:_ݨ U&w_*;b7mG<\;DR'Rn$^ҙߩӄ>2;F0ՄPs }_ڈ<%J%wW6PnxӞ, \V;setna# OIAф)`4K 3dE*Qy )=m* am6q9s^ `l`IrM}N_zM7Q"ztP8OmF(KN pUŌ'ַL8 Q젝o`j.pΤNKX]Z\/A8Ϯ/dx ky5w}ڹο+b'ܸ * 9֞CP.AO@Q jer.;7Xw179[|JmSHQ~9%bI_?\)7_e4a"h]^3fF09w)0ـnQc=1uxL-%w<3vo7%L+|%I:a}`ǃ6S~k=1N&JҫO&btXJnӝ*dby`LcH72>܅_xA2kK2@A 49ӝ 9hRZ`b{4@3x&4sM-Pꙕ!7yk1/nڌo*n-33sqdm 2j_xt~zͥBSF+fߨU(Hl{$/fˏm4nAŲH&O*/æUK5HZ: aG%l_ lOڕ҃?}p7S>&F]XBŲJ9?,Jkv%+`yxݜeϓPCB^ٺH3p]h(Xl]`B`xrtKs6ҨuO(#em +FcVT R,gSH7Ihs][4;1%H-.w/䗤L%D9=grJv:8͉{u@e bz)}Z?讦CR~i*Pw4n2y>zocN{v 8+1(6WUDzZ9ӄݬQf%r*!&vFܑ|G沄vN.Sb&^t:%k|BdU5AaJS+E1&8,D{Ϧ@ꂄQp0VQ*s1?^~4V _a5a4ܝe z F@37ިWٻ;xR5zP5#OSK$rCBY͑XO/ !BA ~J-L=!; ~M %Tng|뜰 N鼉t`U@<\) J솒F{fAe^LIr] s5В+5O?W{-<)u!G> '`l,Kь&@t@Y:kS©+i ^c,Xhz;`c!D>hsI\Siq1hO5 y.̔0,`:WJsۣ-D5Ќ5_{5^j]r@Ĺ#w8f3?~ n4aw%JkB,]v>hƺ2S-_͊\gP$]t^p` :/[#Ԇ} }k}Ҡ6rz#qGL2w%'zM(I \ HބBph).&V\k! CT8E }dO'.Nvz /tiԙ ݄6i!q~JByفb`}OLűei}IzCaW&P S t6#εd fi'5Bb02XSJmz'F8KX=XA|VzJiy#̂X!lǚO7~MDD W#N5aVeGbI5X^'cN @' M 0F s{}ʩfb)@.Af S1?)7:&&0v-pxh6]5fJxⱘà{_pc.]'zf5ˋoꀓSOj@Ī hv =MG50C qz1ز ⹑t2 n1BM sN],ߨMtOˉ*^EJ 6R„!-\0|"֌v@7;GIPyJxn6CD !H=')B@Ѧl (.ֳ;1 y% WviKVS`b`wO2I6%nM~Kt51v G y(#@áʲVKWXkoy&|IY֖=vL(auW_{uV}>5~Rp~4ETJp$jX~މ$PpK||]{PN<{ùt^ a :ζ7oWu0`0 rd}V?VK\OQVQ}&7"@C׿2 ƒ1h|RIޡP%tn4i=w񁎑#J jyr[*OZ2k ɠno: yRN90u:%UYg/`UZ3fX<-f7%Zh‹Lͬq\oc P '1wZ/se6a Yl;..ŦԥG] Bk;k^CƤ=Gc.vmGIW:`u|gQfg@ۖ&dBWq*! 0E rP*0x;36p+(T)nXiք= yoEah,ݾ=:_]yB38:G@ZLhpH|1}w®|z=?o)/3P 1FNSFnfm G̞&zd\&'>!"|Ιñ 2žg6sa*x= ;AMП֛Xp~GM}clW5du?ӽ4<p `~fzYeѿ: 6F,ud@IBuߘ|VaムvrtZud|ϪKB`i(҄S@~)mՈPWށ E 0b '*rv/43~ ;?rvi2M3/} 5dtsRk:`DǓ:2Zz-Ya5< ~0d.YC=x39,5}g3˚)M1 ^a]wF;/,j=8f(%cJzbEO֯SԒYȯ8Yv6ӌ5n.W\VIl*R/ɤT5>EuY@ha^0L= \مN\Ϧ+`C CzN( ݅FuI#KpOWf'ՑS%Yih|,`te#.AeD( 0aLZ_ZwzooԀ3 6vCRnĿF&&gyR=sف1!38[巟/PYM _;~^qzcԺίi l}8Pc0U_XzB1q6JH2gjP_tA49,W0A%J~P얽̈q')UyZ: `̟Cx=[SlyG ة݉~)ftyz XګS.֯]&"}݉]~w(JxWF_PE>UKP9#b 0e`^NWڀx}Y"_+K٧i,jqˈ%}j/v@A?kSM]WP!6<[x$P{49?t#rdREf?} }Յ!Z]JC,!@X^E k]Էub3W3lЧ_YuBQ}%kq^Hw܉eMXY3!R'QwAX+ (~1Ԫ/[#0 l3xګR&䦟>,+ve;_F:> {{1Dmǝ }e)NԀVY>t&a`m)ߧBM DK(J't;#M%Bef*$j#m[E`dz]@sWpθ"]aR9(NgCCk]Al23pv-([r0}kun+`^0n>aZnQ@;ap^'p/. ~{zRMmR*abDP/g(,'S%z  }eXaՄShs/')l%b=hӄӛUmόYy'u@œ\l*V)EZ+MfYJxƳyR 09]`^ʒu5l]˃`_xz»0/=t,jiWρP>&j  x/D1TkBZNn:a35Jeּ>85"q}e>iZSՄa_'[mRIݯZ׳['`mp)\/[e-`LM;=|.\|t9hƨY_血}0Hl>Հ߃1Lۄl!aJԸ]ٰ=̰3eWI:ۗ4DB2'ɤ^w}p0ftl@<'q an"b#):%F[KkJ(&: +)3,Mȭ^$`f4@xt423hu K_nگ/TP*Ygsw&fq@&̌>hA:$1 kW0/+eER1FMNu1X1`BE畝]1&xD2Gk?ۜRu!XI6;xa) NF0 am_ F^Ul ` \W^u֓  ?ktÚ,k-D'UF::ߠPE`V_ AxEfU`AO:W(5m.NCh5DS %%=*Qک9\malWZUey]ujMZ/~*/)J?3uaO@Wi\Ul؝}\O83mL&"bA' 6/;1MQݯ8r09,}/gbͬDZwZo&O~ؽ P5?+F@OV}9z k=d^xcqwg@ٯcD[/aa悮׷X aH *Ua3O<&^{Nx(a~M08\ζ dg0U*4]B,ɿP2CxKi[Ss0V:agr kx" 2:BL2vPb lŽlv@[>4}CA2]Ob, H9Jy@^Qˆ`uğO@` _k,pryS[ L"n,m=\qA$|qj]e2K:sKI-4;4CؗP~. pnX /j-h3BLـ~Wg .= ti~c)Cl hcu8ce]RG0ޙ륄q+b;,:n+sP`!Ԟ(e`z6;Z~at@pZN8UR 7|3:qc۪ʟ9d&Bɉߙ@qknyze[7x)bBMqA!^)ݯZ_N hhw_pj4a)[p<jbӷЄOJ6\Nh ]'T5\B:yu(!| 2_4'ϋ-=5AG'6/~{?㠊h=21'#g_˰-aj1 a #qJwNyp8VtbM Tt `M|x}P`6>H~2I¾oKjE[.y-Ǿsh:p6UP~:-z8K:}3}_J ~⾽eMXrͯN,@ '<{ @ L t:NvL{ />-`\SD'>h{5¸bKẗ́20<`ٗEFE1 #KA \"ʄhVi}JG-!j+@mVYi?Kj[`~g5Hb^,QBO¶>pʋջy|&pFez%&ޒ/vM4Sʰ,DY )C8qxԗ0`U8O+$_I piz3]eട04ڔ[  ƀNnr֪)a.&Zu Mo-%RgY`zP)uRj2f>mEojфi\.i(0'!T i!(AV]@!B'g_/R`VN% Y>̧dj9K aj'҃XMl,( c8]6pʲ>&I~r p'_mU-Ɩ!ĀTFnKЉJLsWJ;eܶl89m[V Uu̱\ۓD5B[e}UI95ybŞ 7"^{]r=]bm6NwT(Ck%\oпLN*#1v_U]zn=iEe&~+75< b^lӲ+VzB]s.GX,yF^IN DX; 3RIhO2]@% e Bv=*l:)2d|+M>H %ЋN\u7-}m2i>XZR\HowYq+3`Z3Xml!Sv !/m q/LyZMqid,lrd..&77`m,_PFPXf6h +ҬPXXT]_,GF[8߽=`F]G?de(蒮F{_TCJ0o9Bܾ)Okg3g 8/pm p'մ/8nRepf}> zKeAXM:JȰ'`Z|5+{\HJHD!8Dg'^3V hDz\ Aܞ:lL.,Os1$" ddHupZp7wY8ti)4>&\,o:(l=1Ir/E~EHޣH5G, Re8:\TA[̧kB2r$^TU<+j0mPMeEL˰{_ rY=RҦ0r~uƒ&V)@]wi 'gPYWV3(]@uyأ'`eez3Wy7N@>\MѦ`N8AŠo%j~?&/DAhSYnmX5,3A(%=v1a9@%)ܚ B=8Nzgt`L83OH3B V;fzT߆X4K3jAq'&,4PeXo~j8y kb׸T>':gA(}0ty3ٗ503U&} Ō. =8o`wx^&{{ycd]6u!ub2 ۋpi70(qxZ vpjwsEe~qV;]+qP'N`tŮ mr_lEe[vLV=ÚELKhkNK%E0j}{q"4.+U?k*s#-7@$&ܬ)[o5 :aL1>aK` kMhVȇd|giJ;5TcjyGPB̪ 3kYF1.9Mc[lg"`t .0kSg_.#t}fccCxC>40Dk:rLSdA];fˡ,r8ʖM`vB-k|ߋY* ֚\=(ksƤ49W-K" a״5Nm=-?a{0NQM }]@ KjOӁiM3I'a̼no N+v4,:+Be,vf০'5uf@b\' e^ v\}C8sw]8hMuͤ(a׃69lKdŲAL-`XwvSdNw]8ϽMsKKZ]~ǽwFH49|Uu v"\YeJRF SO[}u&;m,~Ξ.'D9zH^M/zZ;PAu9O5XӍ!tsPSB_htbwe Hye4~yBkOaVdb NJ%o2(aZ jkPj 3\7R`0i\>ĥ,˼ڄ%n<?W)a:na aΛ+IL}`WvtgiWkVpҿտ=LcCRj߱ 8 ~ӫ~saQ}5HSLw^2upr.Q:o#G6x] nc>p|Dv;%}Ωk{,349֩Em#ϻ፜Tl)@NÇ^{dCvq[-jPPW>]_x!gUu]Pb^ <yNHO@@mCLnZyRSgY-{ 3%z|%7W0=8 cSQvƢ37SA” 2+} )xPO5.73F<-&T6Y50bm?HO屮L1(2% ]R ^+DvtBKnW XgspfxaZk MBz_HiA;U]/eܪe0LHM5jrz3 7t>|aǼI 5a }Ns+@#U@jF#9sS l$OjA16mJGr[F`XpRP6[wq"ikVN !r1v'`eEү6̟zIyf CM\<H"b\u =,]c{e ҖbvL@}5AD|H/]^3yfҁ;ЊیZYs438l?ĽgQ]@-=(E(_!ާ] +55F1`F7L=ԑR@^YBlb~]!)B7QBF4r^Մ}ems> h /sMaJ֠-0 0~Ӵfj8td_ ]X=YKذѽ%^0:_q_ֲ!ܰ u JGMD*Iֳى?`!.u@-%Lu=o.&83Ә*ӍU{[´yY ro 0_ʿ00̆ ;95J9,2t@^L d ɲU,K?Ƀ]vCrRVWl_;NXv~JGZb8!|- NvH ^A}_He@ LT5! ]ƝA\Ke0 v8e0Bg02pm8["}{EicRT2*!XBYW[At7s} g h[`.zg9ϭPb(Q}T3@.l::w6{!wz0y6!G)_sm2 wі!{f8 ^X ay`+ɰ`#dYu tI=^JxvV{_ѩp^GQ/ . emEinA MD خx:3@$ӠZeY1P`c6aK&^>"lyvT<yA~I[ސ+$k'cd =uƞ|6v+xTK26Kkg#X vx /! k0.;`jA>E.σ#'U];n/r΋?ꀦp%BL|:|ӄPzn|kW6ͣ&A Oo{'9 XA"SCfo(^ٿ(k:`iT.׉Lb)cVZ .JH-/97 Y9BЉ8R/J RE˟ÏW 21s0tguߟ_9q XbT2, .5k <瀒.3"Q& wE-溨^B^'YLhSn{5<_w׳ۙmE[Lkb yD>`Qܢ eiEX#tZ段OX C8}O(Հ6mGjTn, 94\Wߕ. M?,7,uz{Acw_=!*C뀞e_b`u ހ!9l}#1;WW0[7<^lkn-'@"F[܏nA_J8Ž~Zr@ڌX`!~WO*_:sǣwV"T ۅ-:ys5*? z p<%D_ob0΄'ͼشkKָāw],f!Iw' `Dmb֥ԉ<ۄ !KrVZ>`,=K``OU;`EU@&@ۈa /-ad^ ! ;>C8*n5Jt[MC&0w%lBf@A]a p06E!(=gtZ]ݟpr' \EF)i]pm.9 BZFʀSJ7M Xk0ݟN s΅/`[nO1sxW 㪵%RS k)s/Heq>a-7W.6>Nb pǰnGˀajYs6uP-KaM`yz6]65bQĜ6}%o$Y;9=R@Y`51VWVM5% *pd04`_!i(]˃#׉}_A"=nPK؋"1D}p4f@eYp$1g.C>d-M8ZNLSx/NQo̗pM皎-`Q) | !#K2)D(Ο &ZObl2쥊%e4N/w?_q6a)xp-شEx 4+Z}`09$q(0NiFl={#.T f mM|̬Ý~hqNA_'J, 0K`fq1:=$OZBwQADHIȟV$g-LY6X-cO_zCj착JT 6zaXPpE}ʣBH8hӪ J } JYTb䰮,IA8{]>*AYV%} E ✾ˢ<8||Ų8f%5ޓ6;lyWРԎnB oB lϡoOL" OJV RM# ;Lϲ!er?=zY}_`|! +LIi$}_S}aTzYȟH.7W6u9)J9B{ҥJHHVN dbXs 2C /K%ˡ2[z{`Iӱ⅀‡W6;<G qS h;M(Zd>넓39Մj(}eq8q"^] $bѾc+F S uO;Ϧ`f 86v},M)Ψ"}zALcoN Cx:푨B_2}г"vx5v~VYCXa_UKx2wR6~~b&@ed_Wv:|#XjipEU%XLT568VXrgg.=(tyJ^׃x~zlN2XivPBu։ep;s)4=3VZZ_ 﫞F D1B Uv)'= QfO]b)8+ce:zՔ8>`ΘԌG\]2NWlx ޯ#>_SXoVekqf$O瓥QԸ\xc B}i4;{M; 81!NgdgUP\3/BD:BLkE@V#(@7&pXgLA;˚Sc[U2~0~%:(u~'Ա Tò(zvӬ<&gg2HҠA߫վo.\{XKW  a[spxOo•s[iyVu2a%,i.u%PZd@G!Фy\nhB#`Bž?.Kb g^jg_zp2Bfti~r' 4ej=%gҡDSF4`ysyEՊ82ӋYev@J}a'i#BL-Wv<¦%po^ \>9#aa>+F5⃘&%Mϱe0SBI#h/Q sf! ,Bla)89ҍֵqO17OK/|dY0#Y1c h߫ΌZF0 LѬpMقif iƀb:&xIB̖`|Ձee6X] $- C=@״V \H➫>8;Zf̤eTBɣTa,xQ+zp F@&B4w,K9@慌#2[qGRMNXe&\e×' !96nM-VπrUim]7uӐ6Qٺ%(A.:rd٪F !L@&47r(H,nP¶ gY쉺}bf-M܋Fq(H'Nidwdp8@`}" Jd7veU=0`7˽ 7GooWLrx:mm=<s¡ Tw5 (Pu{~˜h"8G`4!}py'mM3S![rJҁzO0Q,)"M!]ok d떏uJ@wĖ{7|eO/]S d?l Մ2focuswriter-1.4.5/resources/images/icons/oxygen/scalable/preferences-system.svgz000066400000000000000000000273721231434177300303240ustar00rootroot00000000000000}sו+ʗ<:Tb;Srjvfj&)YTEdCm18wo?\\߼>[\\]|ų?۫ˋ/]^=ŗ~_oN_,~/^f狓X,b/o^}lm;?{q zNj*:&?J'zd8˛<`*8ʈbwO˟bKD~a  }|uwA6kɷlqy͋5m~?XgO~7_<g!~k[j|~)Yΐ`y7'?yC1fto/~\8A6M_nڝUZ<:87va5ή޾8rӟo ._~}1oyp]%n|s;هoys\^ Vg=ap.O%PpF<'}̀JП4*C힔gI5-^<&N 9'ZM;&&um^G$ۼ;~o 01j>ub\KA`0उYLJE5δL32by꟩B2Ml޶glϋ}J\Zw+nq)pwiMbd݂30'Hr;JU>1w2@&C;,:/zvO0sDrMG뱞wkDBZ< 1"F.)T`%^y{{q{EF~J~_,8aZI>77oN/C5.zoNoPti ?\UiL}~_P֔mQD)YF*0G~Aa6^t- J W.}f7ßOo?>yRLCW!eBr+sZiQDT[Ն] ^3]b7z x_0sK:]\8iNK Vcx`uksyHwZo?iU޴uO;^ AJ*+M rYjjU>0BK}wYWm&'umG\Jx#h˼oY\^_f;9;[QƫVп,H%Bh XfA L, bY|`&E&/XA1Pr`,cex;5%e)P-!K8tpi- D+x9p/m@U|[s@8 HFH8P:K5 5R}@#i<bT06](`2t!Q%DV!rˆ+e0I022_b S:;W ~R|/M9[y:4Ԗ'sW'ƹȊ{v35>s#U3엑}~;|T1 .^(eLm[{'e:|}RD}OuCh=MD ncV٣rC CJĜ i#DcHg#VKS'J,?RD>t0ڜ(hQTH# ;EǓc1ژ`W"lJJg5zɹ2_Y~"SLx\Gpf7IoN Ol\=_qabfZnٸx>C_"͟eҙu3MndM@)H<-?̟oyZ L5IOx+p rA*$PTpVEws,ܡ@D` RJ6s^eK%7D(eWIbHo4osϋ]:p9}&K/o=(7-X JSOFi@}Y;wVvyGnߙv*`KWj߹ejKܾs.o;W@R#g:xѳ}wb=kOh7Y"JM;n"&en羘 Rz4Cr|~bRlu0;X}XR7!!\QS6 ͞Ly_Ϝ<VIzyj.!³jC{V9iCI>qzv Ӆ R GSs|5Y5jg\N"Ѧ[jW`Z٧eUQ_$[Ỷl({h^!es$:њ#O=Hn,2fG*N9q?ŕȆIDq3׶ӫLq?i&嶷i0L^:̩U8N38&NP>1 N /oaLlGtw#TbN)i~K+MF'pzj:Q@@3(* qਪ V]NN];R]$?aб 䈆Avp04bQi`f@jT;:1`j\mIlXd:]lne_>[qҎqxoejї6Bs@'+* hẺlSVU}bonoP3~`n+m,DŽj1N.*=gyجf9'(}á7e$@H:-H|5[W )&oa{Lx3s,><@멶׺A0&oLJ7D9w|L)v"v8tI\6D 6N"C%mn"#UD=29N^NohS7Pzz7]Hg[hI fScYUOR T!H.d8p%FvNP U> snw)2`F|Ә \%3%KIMCrlKqlTlČ K5@Qʼn22z=LʖY: dIP>WcڨRZZ Tsf/eH:hʐVp!!if=I=M=) @@ HP^ t iH 5WPof{!*/ ZjHِf0V_Pb!d\@=i%C:Zc=[IfQҫ@uB,TPK7[HW) $7˒"u>=ͩ?a(g%!=/^|g$ثmG~ҙ̄K сOk^5ǶVu ?"7ZԻi.nbdEg>A'".1Ag91Iq }G;hٌ('n'}~GV / c8fcFduŘ<xNn ȏ-=69Jq ?ʺ'nVa ۆX0rSZi%cqEu0~}CTMRd ~߰%2§n>?uQYen "蛵{5.ϺHcai@0=iopx<`-^~:MrWß_8y߮WMoGh@mWg fuaeWu#x{DbIˡ'k@_X>/1T]{#4.nOOoOF̓'^tggg/_~wa(tg/[@:7U?`^Sd{}qsl8/^!woӋ\㋱k kGKS7$_<o^->W޿:>Gэ^i +\{#nMН4^g_%/KA) A  bX2L(LIDHV!T/ J1v:HpHӥ"146uPXfH$|ITH$^AE[ ED5LdFIҤ Ep$ŀ%;"#8@Ua\ 2Y7YJBRW4> iHg .t&B !6˫# ґMGHiv3t(%ShX$V# 5k0蘠d4ؒVPڂ5՘;7;Y kE42 L)dvƵL;d$`EZıV6Ȝ#wnAajPx wrJj,H%eDcI=l4!JB+tWͱ,"Qb68:Td8-*U9 fP A)@G&j Dy4$>..A0(WERCT 8Fg5ٕWeYb"R``RAl躼m{!:L,N |x #X۬D3? ̢U dZmJs<=Ħ,OԽ/}!I~ԍ0k-U؂sYuTITi2& j4b0V ֈ5an1*sfP kiSHՎ}3ӞY{xӴ ɶ y\QP&Ɏb(̮2([Kr%IC96>2\֣%~v:(פ:˜`بӋz5T $rD*bmwUk][x0 XAN;"]|cL#v]j4S..O{{q_bˋ۝_K0DD{3e|H*F{v8z 5%Sa﹃֨Q; X7r_h =jUd5Ꙁ~%)kkRx(keRo茌vߡ.9-??v]J\qDF 6becriܛhٚWf0҆egZwPC"510S$;+nQ0̆r%vnjȪ>fC`3W*b}ghmlH=8SGnemeߡPruDYF1̎ !gS9>f P.Q !H:*]z "1d%l c  t(3vJXIǴF,Vc)c%XPvj(͎P8Lߛ!owew$$| zp{м=xOd!os῟7bhb=D#CxVDYԬKYu&1&N]J@w96* 3{W ۰RHѕz\ dע"(Tv{-tŢ``M*nIB/u`@M 2;??kS]yPE(1j- !W+wJ#$'$:@N#C+(%P e j4@ j.QcZ!\F˒ْg˓xK:1ޚ1 e90":2c3Ɇq Ԏ#h%rl:u,@G)TOV@"bձ7w !+;Ɛu&8-}cPs-uC0,$SO$a-BV7/3.Y`u(r"aޕ=fISm{KvL%-iPْ!gtFT-Dt(]6j=%J i(CQlty>Q<)k`D`.9BetƜm`=z؛JP-9u`90.Njs}N<#)O2t;& בd%7~{Mǧs.er#K!115阀 †ᮘ V& c:CǨs }!080W@Ɏ وxٗL?>H'2 ;bqBqPtj!=&vX&|O1-{vK}FEs!xǬάԙ0ί.I;H4;Ps?~oMI4$W=y6̆epcS6ā&ŔjȋϹ3Oi#'WMZ+ա+vRh195]ehdg(2N1=xqiB_1Sz$HH)^ \Qā alqPk4 mh _gn[nr \8-1|KLK3FC ӳCv) ~x]xݯu3r?_VֻF5+HږCr" \SR U8۱,HKLK@̕P0zr){EF zvGMt>5κi+_6%_(WQ7)Prk=Ʀzœ:7yai"d~ &:3BDN}SNݣd Eei??#p9Ճ #pg;[NWG`wma\;/d* KwaKD?[_ٿ~Љ}Ǐ?mDfDU%h?*x݀:v('^lLD؀]ӻ!Ĵ.ԿwXC#?kC AiUv-0R.Q@sJ:V qdѶ2ajPKܳÀL5'hQ ;` u*A;inɀzɂ Qt0 ,e eV'ׂ}DlT7zScY`cI6A 6;5jY[GjK("714m?Z#LhH@\k*7& t 4m n zRQ&:6)$ r3z6^#Fv SQWSyTEy#@j7bTdK=5&kLA)vk $;tҿarb;L엷7x~NMq&Zos7{5|+:t3P(2HSbo fi.^IZx䏟=w{-t{0̐=B#A`L|=F鱗jy2p2B˘^ϒckVcM???|ˇEc?O7յ%hyP YOΟ櫀0 f5 IjUm 8Ew9(,;xCond^pM"zsw[Qψ CQCB\3FnF \BW [ܼq[R¼{BFuW/ՊrUqQ$0p4No ZE70])xS(AWZUi-_t+J BUr3 iԬXxEʪO25N}sN",9V2&.v[esޕŒH%>F,#Hf +zOYH|FKycJ|#k$9vcRvxv*-8RTzXZ YL| b- ( [);5ڂB:KHFl% ԰H/D+/}Gl8@G~gU= L-3bVɖc~l(LQcK!DoQ%LM!"(AT TPNaN݃ ybOB mPT^ ,0Jxߜ+MnսK Q|*FO7r#ƦL y?Q8)K/} Q;qfJG5)?)O'Bp@jRX9$@$, Ea5ub:=$0b0.ұ"Fcq,.Ț&R<2d"#֮Eڰd-H{(wkX=-'K#ARm JoV?c2-%ZWzš#dެ5kP #T bQ*?RJ`F,5:HC qWMAM!rI옣XIuL˪VC:ob;z<+\ESb1W HO&.֮LM]~ڧ[&*}SڝR!73 aM$[2޷rt=O@IܘЩZ"څP7)d*.X/PӔs0#V,ߪ\ߚrm++| A)g؋B*yH r4Qx ` pرQ5u-1aƔ;VUB`n$[yvlB03V FAd* ]:fOZfd9yXA1lnJiPu̎r A h,Sq8I#b~Vg`(B|y0 |ѓ}qN6d3 qBG4 `wq94ϭk)2}ob|乌(^O3]L3~V\#J9a. (9 Q9ALLH_2 "ݽ%{L Xe 7F Ga~ YFr#XW|pVΆ-A+;J^Qt3u z #d `%&)Je(̦4^Ψ*`(Ar*Qז &N;2&7-K /Yc9햂1:^B*Ze$O$6,`)Bˬ$P=.+ &Kr{a_n5!focuswriter-1.4.5/resources/images/icons/oxygen/scalable/text-formatting.svg000066400000000000000000022462611231434177300274450ustar00rootroot00000000000000 image/svg+xml 3 3 1 2 2 3 3 1 1 1 2 2 3 3 1 1 2 2 3 3 2 2 1 1 s s s s s s s s s s s s s s s s REDO: Italic & Underlineformat-text-strikethrough.png focuswriter-1.4.5/resources/images/icons/oxygen/scalable/view-choose.svgz000066400000000000000000000174511231434177300267260ustar00rootroot00000000000000}ms<WL{"oܭÎ]ْx I믺D]nFth,ϋۻo|yqy7Oʛ닳77῜~qqѿ_fq7oOO? }z|trҟy9::^߽8COWCN߬_8_~μFۋw}2e(Dy||җ8z}>SOu+UNeM=7n|?s׋?O'<_ɭ1}83p?,.__^opۧn ŻeZ y}ng=kH۬|yu8/糯wǪSK/oU*qy7&e.￾߽Y|n :TIɓNf?>vw 9rMbe77k?zo%q-`zU8Y^PN| }DT#cE%wt |~mu')Mab(^`G?IF;|/VFJ㽡A Vo$;PKs&)ƛ _tq.~xq4(uqBCY{O-nf-Fz{v}׏?"ZtuTJRg(*k7'"eͨ_W!.^F88I e3_0H h dBW``R쀥G&}U(YuJ$Ehu'Q/Ru p!wJo=_Y| `Uˆnl*P"EgdR#DDPAQُ_LlsܓE3o"Og.Ϯէ +J˳ QrU7BSWs)-xǾa 8i8;sFk;'\b"MC/v(kv_cqU8 \Sd|vH04pZ7JkJ w41l݁߃`r `$UAڛ?Wl 0d\_J\_~-/<.5Hǃez;EE]lq]<ѽ94}hiuic{iE_JbxxrQSx`sm^ C܇#. u' I8[L`Ոsy+?L~3fƂ>`%DK$ m&2BBINWJɂ_OtSѢ DJl & p*[8"gl p>HiX1vVSc.DX^t#UB@.VQRЇ|ZE5|V͗Q7g0|#,>U=ĴV>w.;vۙ,d(\{ N)F+}T"2?ޮ0:57뀕'CO|yݫ{; <,y;r>zaJOO亢!>i_V=]]W=Y^^W˫E/!cOu]?]_}DӞ3V+W'~We}}}Q~S9"Ǜ97of>x6;\ܟ]ݟcx#}?>$?փU;PʝcoPGpΨ APU{ \dI郢u;džGz^͟WF{D~tqyx0Uf~&UDۓHp./C '{~M*etwмjZ~8|pxjzyK7W|kb3_{q{uyigk=ZXuZ;}GoK% .nh|ͼlޟ鍔%ß'{}y_nW fY~YگU(V ,^r,ՏI{MVSZ$ JA5vjnn԰6YDRr0{1 PffYzH8Fl7RC m p< ̜ ,\l \.>@rI 9ATW1w4@)i ep߫+VjyW-ܩF~0D0e)F5(1UvoJխղ OY9B,Vtݚ c<Et[z@B9[Q.:35Gc9 l"O7]\sq tۚpsy ީz b&v+,yQl`&``f%մYY1fY8S Thob9"4 ՓPfvVRihSnB(,FLZdOh3Ĵp_E/MEacPDe4$" s0 K*J&#Ripǔ  L0ќa"ѦTZ]H$A`bhbOh7GLkx DRI7QflF9SKX6<"Y+Hy{"uѳMl;G$q G9RD3œ#[+;9B\r^`cp#P,xrJSXCl.qm^EP 5J$n5(g3ZFDI6wUp,[HdɛMl;A[b@ҹq ѦTڬP&*\t* k*zꝪPI0 c0 3sĦ8V Q <ԪTZ|֏./cy?Q8]qybC\2u!u\mv;B/z3dV>vBXL;('x!Rdj T-^j9DaYZAvKe eP9y&wamDɱ9'= dȸIRsD+ȡxYsoGEQ|#agU -07D1}}iF!BkUS }#!ȸ"U*)=8nZ:??/G=}j2G \' |:H\u3 '-Z>%Fx1FY@pzgGIt@PY'_l[}}6jZ=fr=r}JZ`A:8щEJOhײ  #ģ;X$q?шr BU( !Ǿ%JypDЊu&,9ލvAb;j-8H¢31!rQ yB$!PS:vќ`b!r]&K@qY@A5ĭ$l[$! VL9rG iR[<'fFn$BŀDu*xMCL0a^Zs 對ڊrzHsD*D1<uJm- (2oRuku'APA>0 H)FH'ƫ{NZZnscaeMH +C4-)cg'{*F`di@P b1/kh?-6YYUOto?.֯7b+Y%V2~o;yw ?v##*Zi)e6`9cӻȉMF? rG(JgXnTnmn$"eHpdIBc" Oc Kյ*&B8K5L(ʜ Ns #c ߜ? wb+chSnmDBCºJbq:PeoìP Yo# PDy>w .odGРi6zImlp4!X;ڔ[+ y9B Q1CIc P"ކ4}eT JaÃs5ʭ<ʙP0:A;dB !لk6۟vhŢ 3p [;1_wmqPWPNO1>5h w͊WI+6EQpDLSc nK`q-0:r / BZ@M^F R']Exdگe U9x 00 mm\gv6'L U7v_㻯-E5idDŪl/][7Z 0*@(SfxqqpORPLe?*э.ISIHHkeDն׮sә11 5mv:`zAfw{5MC^dž  @_##^v+RG,*C+l%:1mv`A*G}0˪7pAqZ;;Qx}hX^ &Ta(s}q}P+` ؝qZY] 4q TڠLDlD'7x\D^}rnA.--`I0lU8\vZ塢+;  ;LNj[W0Y \RhxFbDlCa˨{ Z t@Բܫ l(Բ;`2XPc>nVkH%U A;`vj[!JjZT R+LmSsvAׂrKDqtQ+D֜`@ ~qy@Q 6`t} kH,A.Cqz }FZf*.{aA99)nДXE3^,di#\. 1eL:jG:X .c Bùˠ4Ϧ߇| &<͕{5M঵@`*ςFX=f'_}O/C/i"!/B&eJFG6orۜ"xsԽNf9zL $RFyȽT*#R׻?~Լ{O~}q[ݓuu̡x&WPқYl2_lCJXhOA|GYZ(_qe>AEʅxm/Kwʇwg 69b~m`AxLk~C1ӱ3 /|:(Cp! SRÌ^Jt8O0>?L\/\ԑd܏?q|twzuvzy}/\~}vf}7ߞr}7Geͻ_~Qݷgo~ȝN֗Ww'Xx+ڊ/~Ynͫ?~ |{vHo3+o03ONeMJp|&ˆoff釩7o\Op ǼM_#W?nNW뻓wo*u ?߾8)|^0=>>Ïĺ:^:ky/g'wƽ~srwsyqrv}yr}׻7L=)QVby]%dZюww\__=4><\/6x_us;~IW}I?7W?>M }៛O?[ߵRվbs||7 mI*OW4S7|TѷG&?8(Amtl9,,o/~hh#'TwRP8?>:y,}֧==ḣ~¾!M{na<޾}}~~n lkru}y}Wgu^ܿ &&8~Jbߟt 3#f4W\w#CzF(#@|78rҠ=HNs˙#^r\ƚ Ɍf>B|۸2PnWΩYV+$CddC~bmGdrjzۻl߾]7C?'p||W#ߞ^5ҟ~8͟ / .0`DB:pdm.s1 ӠpCv"Ӆ)0]&% tarfqL'/)aٓ}d)ŀP%<):BP- @]%bQ!ajO2_C:'DȶT]p7X;y֖vտ_>n[S|/8tE>I4 k:(PLoK#8G;lQ#[Ma6WA:,wuV);=Nct~9 : s&SfУ4>g;C)PFg0B,s=VVu9՘yĸ} #G1¸)1~ aZ=ၴXϝ3\1K5C*:PyyN"hN ]v)@:p;3Q A5W^/iA%ĩB)jXPaT]`fqA\r<@q ~Ci&Ltx^&bwo&KM[|bUvu9MpobU_ةX}U!ߩXzxobUɧbU+V΄f.%UI NŪTNŪ(S*z8[TTlS*CO?g~(}Pl- ͇bCS@^,7񄱊g?a%rݧ`f;}}q9h0Vb~W Z_5u`i&՚i~ JtPiO)v895ՍvG{wS5'> w"g9$$g$7S尚ʱxd<9%'48UK+_rp;,u`OW?ҍ1m<jqn2\vUc>s=8| I[3S!1b_nDŽFj.FL`7fR@%viko}8hbWCd(Eń,>2b:'+׫ F:>[ Kdrya)  ӼChct )29'Ƹgƌttdx4k5P# qczq fDG]1/ ʝ!bAuV)檽hrڢ=ZwZpQJt_XQD-0Ŭڨ/&{D )bR/>~Pe5wj M@Qm:WGΔaiNcц7鑒QrOYeXHy|{d 4g1' jh=JhLhL&(9X+Ji +GLR'+S} 5o+3bPH ٴ/6#ZV|_d14,H;$z/>NsbV̶z9N)qaeNt}z>]J PT5'=FfjpTx ڥDf'Z,X&B|yPq펋ګ‘?@SjI)X+D#Jެd)Ÿ2]mq|e#*9CfD$ i^xX9_ '|f5ӐqQ1C_@gMX:f;x+Kͻ䅑63Ӛ2_`! v_h1}bS gsIB@)*"ʧ~:UHUb!%MysP#+s: -|@q) p2Z{kfTfNeP>I)^F SdN:hšSxΡSdN:OFxvN):N;ƍ% K @"Eg b'Ǔe Ehgb[W#Fxh{F[3-P~匲ԛ}#;muձwܠ|b[LXɁ*_=+rjjU]ܼv %ޟT=%.m'KY[HìêqRt-k>#ǁ }$㈰?0oBC@#ӊM>clx6/HF(Q&x"d J窌{I_{c.cO\q 8y{xVG)jDAegRd\qsPM~PZ( K97H~㔸v 6^i^al+%F:zn㔘G.pH7q_>lͷlX?-;v-/m[oʜ֙&;pt<t4}Jn)dE p3LoMƘӄ!ߥiip[blk:MڎxyMf l6cGYܝCLCIꖆW qr`Έ/Z)5[*UTVa(XWHimyJJZIu9$#Sp~i*FmS,} ˚4}fc3v-2job6:Ed mǘm[gL[+^ΧuS2]u<4nRJt*0FcL;YJS"C@"SEYyTؚ1VJ^-FJЩL|7黤]z^.]}z@04p̶)DׯÔ2r@l禩IN8FcS:̂QA@DxcK\>{86C>-8@^A1Nm-t6m禥-_{D_n[xq.\Tt$J)ܔ,Iͪ ՗8ddDSUjqSQ)f [Ǭc ` .ܠ^y?B8ⵛ,U8ڒX(Um_!4O6 ((%IYT+[o< wԻyC!{ZFr[@[F=R=[G3a.#sh\΂M1jaT,p+z#hĻ$sRhV6R`Iq:~a v3Z'DSNj-wYR n+i栕,M)ff77x66/. YO[,UW"_qTX'mI]DB='}6E>!OfNpBW"*ba?"Fp:N}L^%(DȉH c۱;aRzOl8:)V|{@* V.!zLzP 3iPB)rkEz]8}aEZ*ڷڦd ;:p"Z?e*F .u2~LA[` U"SU#ѨNpfs3Y:rfݖ *]P&LdYgEr00/?p/R! D˵q'A9> q[ZCVL Z qY+^%R(*6;"9f@E2}Qll7_Ԕ.@j>w98Fr a&O'41 p~FPN(Al˦T 0y!8O"RI:dh3`)r@6e~:r`B.bfI$X\N jx{kE)o&/ ,8D/,S]O@-d!UचBW&g\J@)Un2 dlЇR^ >ŜM" ŔSS.J V%hm6{`ό}lƎ0r8~2JY_>/mݤSk+)!+ j҆l8Xy! F.By}wreoQgSo R2M4qJ8;؛Hf&YD( 7$ӯ_1_r(BBK堐Nrď@dp$a- RSBGO!D{1PչR XVpR`"\zd2 ^_5 *K9)c,>E!1ө))/)&87׀'#6]͏Lx!E`9~3~|#1l ?`xlJ2#("Fs`Y" (l7P 31cj-4o+ĐuzkJ0 fD'r JB- M():˘ʒEfKZBFPLֲ*P6(˝M I=%j6fP+:ϮO3]844U&Fw!N|yovawQ&ug\rυo=a3ݧ%~:v_m۟Ih8zz'>D}d &1oŤ؟.˦lC/Q;|Ao2Z-rL5揆P~1~AuCLKlT=L[k⾍qkyܱGnߕx|T}x4,dkiXlCga3wnƞh8 ՌN} M : f Mr2]N۸omne-P3Cd)n3sЊ)kTDvB_dUV$#(ҊIqh:^u9al'1ӑip:9·' %~&mz`O#;By?2nTǎ/Uّl0iΕr՜FY*'r}GE̼j;0=JFKCt}_n?|V8#w;э\=]oY1Z@jwE]#FD@ji]UvQ@$v!1W+(m zHiV&b&zi=$ ;IB\ B'd X]Zn &p j^j{hڎt de% N(T`ʂ(ŵT^*P5=*Hhfm yN Z63H%4ěe%!+eReQp%.>a̱r.4'iZZm9Wm5iR FA9 )gb,.ƈ&[B.[wFb\*Iد2R`wf5[߼=;#;8߿;? ҍpH˅ ϳ`o1u(&L A)u8H!!);s+~d?i{^2Wƍ-77 BJ/o;K)ϣߖ1av~[ ݮ&yڮ'? nĉ%5#e%[VmӎN-~ݍB;j3d"XRD>oDBE@?!=#"5etUgfBéH]}YD={Z x(/@±2cCæoDhUHc۶$߬rYuz;+/8dd:fG(H|aY4߶=4mGjj}w $NG`*HSY-^pJVM*ߜ\Tv.XC$DcH9WL{JQ)m A<¥ :\h{hڎJ#s{k2?ƛ=XZf2dPUTrc5ԍXEF$Gx թࡂ x-@fbCv|8E.ol!46ևزՔ,)K;Kq@Po VUesXmO1 *]@}V2_ɵG. clC>=gY%?f˪A 1T1Pk}n~F1!DZbLJsX~$y#}H{2~MBOIp]w>%Ɖp$u?["~b0Up`>NZ|.Qav@ ;`]"q.SԄ}]\^;?]SL-5)EJD3n.^8Rxv#wخmWvb&nrlEP;܇XE3Rq峜!4v{*1iSPC sQ(79,kFޝDž毩a'zȃ̅x~BBBj> =Nϼu!:JH΃jۭKs+h# ґh:&rBF]mI:-E?A̽ډZgVL?!?ףӣ=ΧG^A{~ WsP;sPx7nAὃ=+t0xwD{v"|zw#'!')Dc4e Niymx'vQ'Xb~73?ڽ"; [ C^V_Yv|sp0ni~%BQ ) c晒0D v`P&;2EV*F4y׶W=smؔPZ;uHnsD<̤惵%4ƗF".8#O8d9XLltYiV<ߪ2mTD뿾%lJȦ/k,+CmYk%-+ATղZN)ie@0׊sl 4͚8IOE59}9ZL#t3q %, 8nRJr;d &P*֌%M%Vn7rc0R:shZco#f*$۝Qʂ EH|M_VaP%%PEt͎4SHim6TyC`Qk$sQ[BEZǢ ^uVBKipW!# N@ J)q>XЦϧy1a(q X{Ov5?(Ba!6ݟhPA2cqhf/=|uS`gKu bIQiβ@dB`W`99|D T<.1hM=B󊟃9dޯg mpOA-EmpmWQ<-3ME*V8LeƘ9V2Ę'Ɏ&kJb18Ny ;!ƂS]{y4ATWòl,e\֌ ,TCY 2`頻WA<3F:㫗#qaNå]ϨQ̐>Df1ljJ77*-HVKS{%&)ϣ8J+ p%~qJԣԯ|; )ʵC;wJ;*xueʜ3]WF`V#Fb0}4c1fw>|7?}ي]gWbYF㺷qeզ;,(4">_;#Yvsgb9DVl#وxv?m{}QC_#lhޑ9u溛|CG\/܊6_wX8oϛtB~ϛ<~̔q99 .M{` V)eЈ.ЇF:y~s inl}?~g "\}&3DUUJAqnS$)&$N3sy2sʫ̩#6YM(BoMۦJ M25 4;(bAkdn8=@~U j@:zl/ZtR& %)-+G/R9ୂ3 il@~дfu!;(x-"S dÆf?f qײ2gğ\)5J@Vj50+3MJU)(%8J d8&ǕAvx8,ub\N^pLPxsx||cy.&E_>.޿lm6%+~s(V~zA^si}c0ӷnMvXELvEݻwWS'T>J'rJm#UZGw4t,#mYJT8ߘ}zדDe9%ir_=仒3QO.SH|7z!G [8JSPzNJ8Jr_m'Y+_#AݛŻ?>)yOHL Y07i Of$Hu\3΍[H^$In>=:fE)wߚFMc};8.N2S8a 8t~(hF: >G?}H!{EIg?ZThXsgxӡ9 ; &ð{WzȼN/xk15cX<Sx`֟1hc׫N8~hmplkƛCܜ³(yJQG+ބ\kovb442:0v]!OZ jדګL$?00E$!@XϘ' $CMOM :P"pFNӓL_?ϋ,~O-׷W>=w=^҆pO^?9hfhn^G 6O~{ &f"y~%'dm[dU`%>軵g x |~>.n>|Gw w_mC- \/>Z|?ڔ &͵w7_ƇO^cz*9TZWu@X<<|g? gpmk?Uu{[4U`,>86yZ?6ۗm]^<~v5*JÞ0~˿wc7A{?n>J?>mӉpw?"> ?z7>Ⱥ'Q'okՏSG>lOo->2+>^/zԭ?<mt.Y2.~fow߯nzKUᷱ o>-K뻛/N߾׿ϷWcDnH?=/xۿ-.aׁ@{)~^/ⷥ^yOeo{~{PtW5[1 ?VEhx}Cakt(j-\$s\.Zu׫|o&Z*m(%1]۱+X*3jh^{SMz9bozse$XJvIhPm2QMJg;oN)aZd陵T!$BUUiՖpljzC?T@ ©uyH%O@XE͹Q]|R"{!J])iN[#A]=5;ÝbA֣%;+W ľ Vs^\'AƮX.vK&4GLkVK&Ri͖(DQnP(Cba5>C :N 0E^*^mfs3*ꝋCP0Lm_kan'=wHyGcHxf52yR:XEgm2j¬EI'3G, t(4[9",'ŐTU@"K3 v!xZPtp#-*.Hc,q ,fR1/-E&AX%gQ& sCQutԄ.+6LR*n'J9S${X`5Db62BNd*։`(F9$9bzd`I`Gf%/:ʌQlP#L"u"J>[9pA#u f53G&T[R67Ҏ/v KkK\'F"(6KZ`PSrMF9\ p(:>AdoU17쑸n7!nS# s#0ҙ b>V|m2lTsHxc^p4aa@UնJ:f~dl2m3m/z33Nəl.w)z@p+bt5m@sb\6%Aw#$((twC7No0@$aRBMڣ9cã}'MbwT7,T枓(T؍EmVkY6-K)HR!.Tbhۇ˿وvyϷW.e%J^/7/QB 0s?g+,#ȟ1șlWEAժWgG C`m>HsH#DzФշK3΅*S#_xV}8DI(ѹBR,%h)$t%"U+^D\yϯRQ|qghPXEBUJpUA5!&V Y]*1ZZg"RۻnCA $,:S3mFB !R%;ThaBs~kL&.pY@$l$\!qtzbK.-̑nwS,quabj3ÌBH խSl?hH$"x[4zqJyll1Wm6P֩(({)#J!ҨpR-[ ku:GO1dD!g@k Vw"ȧRU bt:F' ikp"tK&՚ d<d„vmWX2b2NRdkQ|St~` G>ͻƲg/B%xB[a18Z%95@N Cp*` +N X*YA`}9aRlY#㯪tzМdeMHgn$,OK! iZQrp#Hx_nnO[iF&mx\2-9*(b0p5u>:?w*㮆t` ı(PE fkơN*֩A~I$ NRl,ࠥ҅'` n3wO }V`N]D3لj{K AлK Q#QID<.Zw*PEn9繢C tT d"jtLA4Om%-<PnBy@z$, 殘cw/R+lN)Fٕ0r0PmoyY #+h.=;#gN6O掲=湂ŚJ= ݛۍؖ/2ZvA~iFʷ HQ1) &cٚAᆰ"]AYr:ƆNU3p3mFީ;`ow|N]tEiN|B B`J mMh_Qa/* | B91p\ҠrWDve2w+}N ؐa:"fāO&Ν"HfQ^n4l{ ϯ(omN]JX"6 huha0GZ50kA3#ʁB`P4!jO9_9'ŏAC;t+$-FB,aAEeaN!yq5_S͗B2R(0<5(+NF9˴Y38:Ger畀[&I836;#4RyΝ#8Lm_ w`yB( DjA?ctϛ˧#C$PL;(Ofa%anP6'$u(Neb:c!|J؟ L9Tઙ b>n$kRE%SHxN!oWd9j`X9clV-G+*Mw~! .pM]Ӓq LEj}!2vraBͼ6IBV!WvB+ m/a S+̈}ƹ|;#$)<ĭ.- bC)D , Oz&: <"jv l?IM&/yPXvJuHo>Qj/|/ Da#!Ap]f4CvyfRRdne(b{1l9\8xYwí0oAD""Wu aePD`GDͫM>w"^Bd#Hc7Ғ خ9ër}bzBxzB9]^&('w LgtFV/}_uBt.M'gHofB5OP{;D*9}|q+X4ۅ<]@~){o R01^˿uYx8SQRKTVu*b*õ!MԼZs'e]/a \.N* ~>]^pX";&QZEr9H%"U]B)l;$vby}D= i^nCtjU%~gW1(d . `{Iزƪ넨i.̈́'j^m;~/!Q1Xdv>ltgrHs}t=x[CPn"q8DFMQdtY5M5`4Qţ{ɰSռ^?B\̲v]tc.\ 8 *?&O&2$&AA2*AGW0^jp;`L4k^:T e /Wk<jp5|>6Fv=˱`&#N.g#E=|0oD DC\W#U]C^.#ӡ!DͫM>w"nBH21H/vϼCrU2AAIa6 N3nC)}d(%"U]CRYSG(6ay}̀#$9"_3q/UH7gH0UfW)QT'eSt0Q$]1D|$xvmU! .w6dlf>Qj/y/"b5 ijyABlW27f6> ivY].BreM.Cn8膩(O+ "*U]CB5"eT88r3 WtD˽0oXPB!]Ӎiή^jc P aZvq"7 &B #3H]D- c tw)fH56Ν` H H$v+|UlppV vrCPRzV'<$n*#I\оYJienF>Qj Rg1P%".b!tYl2!:l r[4)!Ttx*4)^#I/a:#lʉ,^~XOԼZp"ĕ. a 9_UO`-?˲r4ur a70"\>RI~Iˮ3W#,sl-rp(gr,2Z`q>VHqTYKE51=".l%i^]!ؐm+ d&u6lW|S=VƖ*8Y%"<,.@̏嚐dl(HŶth(BjDo6QjΝ`VLsk9'D/fگ!Ĕ]˓"<=ODF?/LUY5AbVC5xR%"DU]JmCkRCooQռ޸%D9%J/ҖiM9tuwsBӹo6VMYO& $?Nv`DFB/Hk_uBl92QaKҼRpeCk=(S.ذґia-[ؒT,NA jQ}N'V]f N.wtp P4G'+"U]NQ#=@?بj^o{t7#&6D`̖uL>gsz3^93Br3B"H P(i4Ctk"E"%Έ4V0H7dfFlT5.{`6eO He/Ĕ_- _PzNge4&BC? iEb$E$U쫺Z9fqfoF.MZ}hΊ0 lJS \m ӧ{&D?m]תyœ T-?& N*PDqTD:hZޣ)QOԼ8s¢t/~I bKXaT.d<}Z0~ s(r~!ihc~N6ko3̴'{;;*tP _L(CX_{j'E_n!\ץ8t$Ts<Ɨҿ]ȅ8_4̛')Sќvy6Vb>TuD:M6,!'1צIB?>3 l%z_KW&Ώ%0d*wEK$Ŝ6nڨ!Hx'_w**{Ҽ6$͵ίe]5BX0|Aʴ2Xu*Ϳ$r/w^Iu-Ͼ|;pa9|JdTMq^Gq7!jyPUvp DfKW/ӟ~~?_~?7߽gldRy?$_V_Ʉw.i]?FNVd n\3uR/`Ϸ 5Y]Ќ]X2udlWulV~Vy)IGͶcs]ʫue9LǗ X/'zy]s>qH~;qmFyo-IH*C>ɉV!"9JӕTs=ы8oRQKOu)GWDHW^+.IC䈿B5w`]|? ĕ@}>6.z AJ|]ʫqOEW"[*#|]ʓsG' 4: /#:20wkh0uxFJ^DJ֮a^a&=˯뒋56(0UW/D6n0%:oOLO\1;3Q}:ȍ 6(}6\wjQkۭxC" |x'xE6cޜa|DVQTf.15kq(}ez\EG(Y~BZm"c}w[]L˞@z2zs`\T0h2fYµqWNO,WT̾Ih=4[*ZLy+XB!5) xYk f$H}A,?B0dkL`q Adtwd1W+1HgQ9s0e]ADBsʓE֬5]a V`AnFATGuqL]lm3["x|tQ7J2*ZWwm q\A,#6So |oXNɄBcP&³ylg hΚkHY 2D97OQY:~foĒmD&{ZnT)XbV,`ܞĭ; jOH`.;-:>ymՅm۳lyS~m냈5e;;i6Oyڿ|r뿘.>>9!=.nc ;vl-ok F®Q3dmr9VݔoZ,w]; 1lx,ó[(|3{4_` adg{vQ`0vKSQʓQ&SAs|2/)j#߀Ia %0Q0냁l 9L;{-->,5ϟOB(8W9=7 meYCq ҄BL 7S017_ GSTlM~[)Y̖P˄w|)9D̛ Xiu'r+WLسu00^ .$`.$&Ӻ<`<LnHI)ȔSHzdD`zG_u)x i01)A "'S 2qlǷvp~[;>?K_V`g4\IAO$ \e$0DG1WKJ٠g'*A!=]J#Ф V() qlU})јf PTSQBxP3tf\KhI%zz!+DJ]|vUo~V4srJͲ>y}\ƁV@y1i~U"XaX)44:ry1[-g>*p51h&gW J (ڃέEΟ̏ ]|ߏ Sgi _ZL<8%hg=cFF;DF FLˣm#n[hC+'w3Ʋ4o7Xl?ffa"e33xIOp]l fwu~A8F8eb~HLRA;%$qg#}DA*%xxX_[(e&BiZ2dX$teyc~vIi(V ܀ <$Lt;HOqJ!!ɚ&v1ؗ/{p6{[O-c?pwv|'w;W]';ݣSyoفzSj"f={6%LʻKLm~& W(w9cEY+I9ff8df&/XyIO1#O}?“fH':~4 DSlx/%xG9,z`"}9¤^3B}3~,|*˙~~iܓ/xzLxeb *6pM/y'g9ä("{bC=g=&KTh =\k)az|F6} "LvlSg4 MG|a&ڨ1 %y G!1#`F~VC0QО? RX o^jt cQٓܓ ('Ί=TĨfCrdU~︨牲alH\ +N¨@ǁ*BjvI$PzP=-^T#CذYSy4epԒZS/cǻMҩg. &gQ%Q&3sþzv~/#Ҥ/ArhwPDxNFyҍo(OhlCy89]mŘo&Q.=&lL\oe%2rɐU5D97cքBj?dlijSXGlx/(bFS6I: YN[_dwIȬ2W=) 5=pHMt{y9@95VY [ŜPW\{hFצfSŞf"cf8Lh⃸ZO˜Ɇ-4l/Ȓ0|&4yOB"0|R Bb%&e '8=$R(` v1 .KaK}bL ΀_<]T aPDiR\ %ElR5J=)0ћ͠:T?n~Y믟*\ ]hp=[mK׷wWӣfer>jBGGz_/n/O7Op^ ׼n޷D!e7_=eǵ>8Bd* jG, 2N,aB`ʐe3iQ9! T sZQzKNϯوHouNO7!@2bXyY1&0'"ݗ3f-q@1nP!Sb29S눓(UBCT#`+',lFdٶn]#ȷ%'@ Μ~ .ajځDĨaޒy㩙 d?if;I+8Aq%&H;YȰLIs~~"=+-T-;S簕^'zS'KIE"$iȷ즹xa~cnk{;[_͛0ZG|zVPSZj{?y?;~uUpz_geg7aGˣ+9fۺʎ/W}{i0/0E7/p /<*ZVւE.|9;-g)_-~鬥0^]݌7OO^uZo~}>}{c.N%t.7Wzbz\^>>txWWR:e=4smY ܽ@x1{;xs󋋫WNn5J|A`w7̈́_m=02};p`fPn_U8pXZDk5H hrqn@]tSc]z0g4'PBRHlm,bRa#+} G {%$XԅKM٣6SDXa&5J XAS :*$ȡ̀BFH"RS:' be(z/=QO ^<.rQd jB M0& ,^䋓|qE 3Y.'x/<4 H$VʯE9Ћڋ}/^ ^tm4=+K?O3NߎLf`A`K04!7d5Z^pTy"9J34`h]* ,N?Kd[<4QNnjȆ_4*b֤$TR_G~c_$2!`Obz!Lv>ApIdKU_܂?n֢YpErEYxMn[2Ղ:.0;R2nP(!H] dH9<2Y\JzvvJ.)Qٽܕ"D9s!gw)FR&io{’fR=,O{{Kh P#J3BuI0+SZM6.)sbQhM%Z]LNsoI"x%I@X$jLVj&rc3 [lZ`ZV bnVHE;- QmԎEip";Fvж q@RFX gvmk")Z3k9!'y&.gdjŤY62uKB.Yפ.XE9 n0{ *fHiIR*0m4(-(WdLnWr]r0v5"HV6HOBFHɋL#'bc6VBƮh1ߌM<2E@]ĸA.-e'l-_6Sl.)Ŗe3[6g9T6Ծ鹴8@; O+Ⱥ׬W~_K/#focuswriter-1.4.5/resources/images/icons/oxygen/scalable/window-close.svgz000066400000000000000000000051051231434177300271010ustar00rootroot00000000000000ko{~rFվ!A JfCIYRitg"codh"һ)Ax:2t}7=eFanfooA06ai>.&?pk'or=@$`fb2شXD˻~˓.Zmb76-9Ad>KOtG6,-iAG+YED1sL@Ǵ A{*7bF8$gM-PP]LR[ `QM|Ǧ?"i6\b^ë8* ^l~({M>ZO9;jM_F&vmfQ P}kD(|OyeϳqmӠxLs<\0+QCeٮ존I'p ]{6`'$pb8 Y9H*[mu/C0y_6>ϱroB r͆yPaV1y2ۺvSV–(=Q,ś U _M'1i idXnmaœU%/r +ϛ[' 5KXbvP?2W )ʹb Re )a`+SD1J)2 `,I>?mib ET_%u%E z5RzHuڨ 7wMX-Y@fx0bF8FSs*ixEZ%ZzRKꠚ;Rٕe(a[xR8KWZE8-Rx,@C6{0Ne), "b 1аAҾL ,1.;!j86IG.@Tg+-)kO^)'!Xc{?4Ih^G 09^,/Zw-xSX>Ԭ񕫦l8_&kܹ#\6sx9bnL/pN:z{q]Wۻ84˜`yhԼTN=o )FPVpWq#9v Cw1sKcF7msRSQW0"F ZMǢWh@Q iF  JERcI>!y!xcLg1.1d!BT1rfAtKaW.6Rv!y'X?ݟ&aiR 1pҋc,He8f$L.=ݯܷcl )߶VNUYټFiη.n^ Ce{8_"gqS%ڭDZ_ FLJ%%2ʖ V;UЙsGG vW68̓[tL3Ҩg(!C)qC_.xessF|{pٞQK fqZ /}==pŸvc0 Ч^ QzVwd>Ax՜3]\1,7Mr;qyZ􃋾ߨM&.$ i{gE"vKmepVn˭ m7YdW:km}7S°Kj4W*2S5Qop\tTg{~=>"Lq=3FM!P͓>E!yi&%"7&k*i]<5FtZΝ)Gv_$z00qql#@?'1Q<p3??$?&R "5]N?V_om|^T@[77ۀ>f3`,^rsMLRu0((j N 5 = #A]8l]]Ǩ?+@Kz3`Cy9>ﻑ}`Ҭ=D z3D N{㧔]E@oEoڻDJV[|qY_0Lv!(3# >o'#F0M(UÈ&%P႐Hhٌ b`b&L ]1 /`fK Pݭ_RHB [ p PH*,Tub-I՚:(`9M_}[Ifu'm>vTEEEO>0ܯAH2QPFPLa*Ҩ9p: %]؟E9m?,e\nU#\_=5 NpU1focuswriter-1.4.5/resources/images/icons/oxygen/scalable/window-new.svgz000066400000000000000000000222231231434177300265650ustar00rootroot00000000000000}mo[/7zg`3;±ێmJ'_?ud;ԑ)ˉ,>aXdҏ뛳ˋ^ Ӌӳ?_8__^Lzqq_O?Ãdzdzٻjzwի?o^7,O/>\NOӋh'M5\Oo.?\fr(y}&E&y.qT0%o>_̎?^iT(R2I>Mէa2ғ{n&tv_xXtv=͊8~?:>ٚwi TgoO/~l{ ^}LlDt|TgG7it/?\͎N/ϯޝ]9;~6xsAFYËGHmFV>VOŭH2Mgg0tuy=;+oz̲M.vtz@Mܒ?N r5ܱ925mz|oǧgb'ӓlǟod5~>fvyu/-2|4 afyyOea]>^g.߼fɥaYm&CahJ8\Q~)ǣql}DCfonnΎ/!j2xvoֲTqX[efͥ|UiBmޕ ;|jC+o~dmYʫwiG7%vq6\f@79%2SZKsk64d`Dۥ(022&4o:r9֢5cur~vdzw߯dƭj'g'ӻ^|ZruSg!F6`TMvKx}y}:Ogt7 hWr^7sIrJUq9yX#DY!'?\_fb&!ym1w}$ [!I[ͻˏofM]J-}Kߪ9ƆnVxKT;U..fJ |d=|[fRByNy.*n6OgǧdzfDeɫ{y[ gNO^ c/g 9xF# ߓט?:YŰN{7߽]j^:|h_RC&6^,esWm~ZMi'%}ΞD> 4! 7ă_0HUDɱ]UI HA[fP6,Q(ҊIL4_4oPfX E VHÚ:aC?7ձӨxc/o@-p>͆#Gk/No+4ir/Nlf^^=vz{6V(}6lx7*&j ><2{~NW} MtD__no! mSRi~ Z+Q]?z@"ۋySœ& QP1NP5h].LB{ױMiK8rI/7' ȔlFaTD |yݮG i Pk/gy!Y:m&~6WW=]۳ 0'P=$].ΉwH׺rV`>ZMKNbxa Ļ]Q !id|(TGΧsPq߫K!?:wVkhL18#XCDLLsNRq G#  KxGI+ߟ2JȷL[ꍘG#)t 5TͥBPc-yzm7mU6k qMe4L2Ѧr[,|}M#1DŌGVO#IٺéZ+9J#XAT{ҫGG (]X9{ SEĻla,$p[ i`z2>s]҄qNhLhOoüwkxwZKM& M'=B Xա5zx ci NPËmY>^ .q^/Q·yC59 %#cu a+@Պׄ}#Ym!(Nћj;MJ, ݰiV8zm93` )Qv~*UzlOd` w_GG#NL05E}UNS36-Үsxy[1a2*QM'ʜ~|3uPvDL+ݧ7~C5  -xztVh_&ltl_]]Dé1l@\%ܕ3=: UXŤx(V;«400'zBțGvG[¶̹3D s[S D`peOO2BT\ mJ| 0@@kM0-jS =]-e;e}?e:^oH0BQ˶?>C"dGrj5*'׏QdU¤f2+&ޕ_ž"&%0E -l;QsxM kb6g lTntߘeQO#N E$cXAjM#MOSkV莥/yt&ԋ3ieݠV(~fo؁b̿TdǸDq}'fo[k;`SVbGa<5+C-Q AB{[5ye/T5& a .?'J) M%V GXf ersU*rB  Xm⭌5m2dž6nhc+q=A)< fL:A&aUa @pW;`9',($#ʡa qD{+GgO=L1gP \"Ju7+= 9lplP߁.4e5VB.2*"Ih= A cX@I7]`\=p0|aPS > sG̹ "+>lGT e%ޕ_gb%,RU9& Ȯ;JzE*8IE-AKu˕+ ~ev*~9G ,QmEݡyUΊ2Fm 4I@; S1ruPp+Z8tKh]xYs OkEN2V O_'i,ղlذT)}mvگ/_QT2tuy=;Lm)y"ˣ_7._Fpul>^"ʣBFB(c A `G; Rnu3O"hGt/[A SBb#p w}67v:9tB"IDʯb'_ Z0O\Jn{ѐjaܢs =+ #rּwkG%'-#J5}7R+kA-@nkA?\`K%ҩ(`[!}tQo2ƒR‰W j7l"J{qL#_BqJW4ZDK] D+TBd7#«3>86(ߟyf/ȀH%8+6Lx5{+=oUk|[AZU&W7Wp'1TCzO>3-]T>~tJACuF@bK}~au(0`"^Mɯd?^Ǿi@xƙ:%c MwEp-!8 `^LbѵψPإH ׌|'?kF}&n%,` Q/ר$$F\֩_ŅY_>7*k#@C„`I]1.O(':vs *oA9mVʒ!ˆ/"p$ ۏs F]Sj >zws.F-=| bUỮ^ F֤tnl Jh˺V$ U)^%Q1knN%lh!X_>!I$%.x8: {Z@`sA ICq8˞WS2S`@Gd{AY`֗K#]]C-$.O)72*> X*+!0p#3H(vxd> h@}Cx<+18+r;$RU%^_=rE`)ą@<;>uʣ*S*@~S29|OCk BD` a,[<"_9@iڂ 0#.s۽ONX[ zI>KPYˌ%LZ;쾨Jr#N/P`xw,llS ):<S_x]-B"1!,o.ve]o}'92lL^=Orwcz\͵12 S3uxh}ܨP%L)vy$wJy:y%S | VcXb[ iR3nӊ:*YA̭Nzzws.zAS3[)#G!Pķ*|Xys5. *WA1;(S"xdx&w|~NǗϕ]>㋫3&g q1Ћ*t7&O9V>jXIm%tmbC9n綺qIQĒoW3"sˍV#o=hǁ>?5L〬?HZq̆@F0/" H`Hc˵(ޕ-G a4QP95?3nH˖j~<~z^4elFGʔ)&RM  )F dEҘ!_b0XqAI\k O-\u|Q.O/HN<$ й&: ƹ<]-ڨ}j`wvO8hJbvD\D#{.aZIQ:Z;Q;-}|3:i/RX?gϒn j]NZXe`׆<&,|rW?dfocuswriter-1.4.5/resources/images/images.qrc000066400000000000000000000001621231434177300213340ustar00rootroot00000000000000 load.png shadow.png focuswriter-1.4.5/resources/images/load.png000066400000000000000000000730441231434177300210160ustar00rootroot00000000000000PNG  IHDRTGkLsBITUF pHYsaa?iuIDATx{Uߋ~Ɯ~- a[v FƔC HInQ*Bn+J*&eB1E19,Xϖ_kc>~vZۖFws1cLais}pp_H#w+9{|.χC l+*y@Za=\ Gab>== [e*R-+t:YO|Eo|/HGG{>G|ƆJWߦͲ0K6#>fy{՝K{O##NdOfs|FPogդLCVd! iHIUV ǩJJ)UIJSflKQ|{{KqOhft|g9g{vNlOuH WV&WeXCes[;gܲ[ zRtP *AdUV5-oq{ppw˦U5s]"!ǯe89;+}:;ͻEVqb݂ﻞ|B+]4k}Y]VW{a> Mڥ;sw:YeH$X$/ Ϳ¿5J~?`G|gWK]gI=Q/jv\LA@x"%tìfE.Wkl.ߵopSqo#NIo|Gu5弚ϟ?[G|gluޣgJu2*OJ5_NTƫqWؤ̊l-ۥt̥=TMYs]x'\kE6LVJjskj}K ͖xymo凾WWH=;kf yO/=co/N|>i)Ln tVY/esN?'= ݰv#pMz^yHWW[WwyeC>K7Ay~W7{p[ C>& hi4w0ʋt0>MͺMF!8x"+M+Ih :$M*f{:܉⪐\6|} WtƷm{m[4'#*rKy%'yt}O}޺j}wOs-C*2T;~_/SK)n.0-RYj׭Ut{8#:sʍ;nL*eSAVUHިD9n+Zw$5_|;7p\u}%849W*ƇФQ!A|}˹u˿|IS|eF1*7(oJ_cyޘo ב:^w{&9mvrz|b:=pL~l0n3҅T}+ѢE-J$ /hQ(/a ; ]j^7וƩR]73A:0.UDRI%#FhѢD ʼnN!Z2I%DKP\jDIW*I\'nrތ|B-+,DD;ݟDx4HՆ*>Qpwϫ?Fwg ĈU˹*ԫ]LY,ƿΡGc!y}OYȺnҨ? BFU#RLq-*.c|LW;mu6@vD7ĵSVn0(np7HM)9,j3 u ]VX( &JƐƵllo .U]e !#wq7"9 Y!k40ы̇/7_AyzP:4D } vp@h"*LZ=}psSPe$[.w:a3LfrH.! 2n_עP I9ֹĚp۔_[GQ:4ĉAIRRPHH0XS &7HRI@F#E9"$:ƵF =e >X 63sP2$(X,CV*wJ"ChC:aj#U^~w M^˰|ES2΃Q7#O O5zH׍ 견n ;ӣcFg34K@DңO$u#)&Dn҆-M3N1gKD87$&9RJh΂)PP(pk2L+?oxkfḏDQ+?$9{-7$R: r(wjIu*Jՙݯ$_y珝(ˈ^+y㹖;=9E!1_/DФdtKFasrށ؏T| %3| dw}$w7H]ʍIU%{Z^ PTT$ԥdQkѤMpRIJ<+{]b%,vʊ/b'[ 8D'VU*W|m2]y1fQI%T1J]6H01$82tmȹ[2nyy JJ*7|k=R>x:Nlԫݮ8M(O,|4O&Qv5OP \|+d8`zu#|?^jRQCYU*IdN-e7_47%6œ.%!P: ( ;ܔY5܊_6s>-Lx{ܑI^o&gQ Tt*nS$g5VYe5$fgww; ,9w6L\alD XgUdHRAq 9Opm^E=JWgZkr4}Qc`Zػ=?JxBnM,lԈ(Ӝ!6d2V{n){?^᳼_ɖa>8߭158֍I<" uV=iarU(QG$hZR-I4#!.y%*7e2?Y({EȔ-PU}6Sѷ%G56||_TAhR9#6ٔMٔ1 Ro[q]2d$ Jrr.z[Flʆ 11-;wjH/IDJfeS1_ƻ_ֺ>+xkQJ.V808+^iRߕﻮK+]H!}x4*ƕ99k㦏-KI!|kqˈk:q٨Ⱦq|b3Võ0Án^cnŷ_r3mMTw0bnB/"ȀK U&LwAUsHlp(J\]==8vd\{:n׺#6;6!O5e:*:w[n">˅ݹ;cڳ^< C7\Ϛcu(LuZ'W}k=Y!l7y7|>SFz>9w!&lp$dƇpC9%AeĠr2BQcŴjB4B]OlɩJUP' ?+MUR>Ե!>&Z]w mcEc,ʞg3 㐃6!4"ޙLp'rT9<>ֻ洛@,gHw].cm o\^!hRmk)C71%q|$).q<brYq6#qx)OqE߲wb&G% Xc n䖩ֿ=ЃxM0TR[nn+c#FSeʇ1MW0"P:ꉡ nuMEe%#1Z'J.?71­i<9斱o$u`r 5i[h:&&axkޡoٽN Uسw;nֆj$ M;JO_$(,9+UEBGĵ̱jŝ2>&Jg2Jw\DR7ONJ,.q&qU|88ڛ!^\$<&֭%V,.pIYoË'7Ht-*P2V;tҁ#-PLB#ͱG&Gϫ$_]Y Uz O7;1T;-3e7:829Ch&FRamk;ɵB럦O d^>mq[o\ႊIp%f*Jr,urChr7M- ܉LM4Iw|h LFp9>=?fHurMːeVTMvÒ.T rO}L+p"$֭T@a:! &hGEJU]b9QH8)(B;ޮS]K [ׅU ,.H-<zghrs.L2s5_7eX׉Æv]/n/}%8:KZɹ?$ df\ 'p;:\6fW|%DSYdjCYߚhu*0#$0 `/{r߈pًC.BƤ5` 4 ! V* Wҗn5}ws4ghw:_*Ӵ 3u56m-0 O:R=R-qِP4<'ER+'_>?>||:e(BNVfk_u' ɦ*s]䪔qX  8%Е#Txz Ầ?(g3`!#[QMU%U h2$[%|U)L(/D4dɁqGJ>VMѵTi|nnܺ |riڑÛK&bcR,qPk_g>ӎ|K;g4fl-ۚ2{'fIy3|/03*e⥕qjwҲ5elU@N/s!Ex{G#@'V_A=: rYvN`BFAFLp8hv5%PM.)_R@`CfY- ppZmkoC |g#6>ۋo).qve~r?!09IBKT|A#_/L6uUڙ4 ??G\X[hf Yna2aw! ^2ZXUBUIۤsXg+R:̇~.s#&S\6̟=[eR bِh` 6cvBw@+Ɗ*|KwRQPFlOEN/2tnhu3hM/ VVӸj&ͮɋ^R3|:ڔ_ä@s|yK=V nCx/?">X$&TxYSp/z3TW̳'Tlwx3A=nw RY Wª,^ 5*}9q1=CNI$$dY ~vd$a] We` k/\#ޝp+T䬓 3&NݬH0d2bK# |l!p'ETay|C[SHպj C#ˊəkݙy+nxWmZXBiy l?>ܼݝ>XԚK=sfާA|X9$ZVzh^!E 7NC~ W萪TGRI0AqNQ=?Ʒ*ѫT`yq.WtM.gS`}sy{~[oߌk+txTH膅!!ۊ"#:apl|=N\+8q=f;6',l3 &t}CءO60S,4IvzlOPFTDk R j{ )]YqR-:r =_]񃴸mpNDUtV.2s yn5Nn2BM=0ƕS:91"wc_ƫwA23 D~`)L0bY~.փr=c7L󺝛*ٿ>֯;vp](̽oĽXID+L(SkUT\X?fO'3ťN1qeJ~X:D\i)ҹ)Pb,l#1bX9t\!$s>y{|m|OsC˓)^v~!nۊq{2:֫~WZW'z2}DOR" -Z4>]o-u$tC?,?aU ygSSՓRu9,t(,)3a& s̅CnD9(V‰C{X4s'>]hgb @b}.C(n_D_ |.m$A""J#bHQ2 ХC/B?BXq\̍:Jx=㞨.ϗWF] ]tN.=jŰEܕCB't 0Rp߹ ᦡ|4Wnk>gk+HQtV^œ|Mo\&'>7W3h[yk _PI]peVOH HRJ!# I6ju?]=Ϻ+|XŻ#PTઐ~Ꭴ0绾{5RN}?wb? ^ϯ(aJ<#J "|ln.aԇ]l[W_|G\߶ -#!5V =Jr3"~W'`! \f)p]r3Ywi.s97\ iȎp 7!iT3GKկ)^18ŝly OG?[[_E|>9^VB M7ՊO{I)AvRrn_usy{>X^Y_wչPp*P7knߙK~#_WξgW4 g}sCEFs^ڙyK$E}ܜLN^R 2GO`A5=Nlju+/Kjyak{ Apo .+|52@7WϚSgƷFs93rUUw+E2IzyVdVdQ楫SR>+_2 aMՕꊻRp= GG{(4׽}&_p;/4ǘ'J6y8/9\l٫8;;y]f4t椟,z^z:3Ga7ZXuZX mnˬ}0pOɏ /}ev>.6ܥⱧ}5c9;3rcWsf!gQ({gmV+]i*k=|{{[v!j6;VA:;7~0L/˪s&1X2"UYl\}] 8==,t_hhw(s|egK|,L=2uZ):"*(ByXޟ? _> p{;s[9{@[P8+S.+2@/̅+a!<G<f,##ʮAǑ.oxh2twL%n~#_|;[=t}}[]+9{|.,W.߃@NG|o>Ԋ,Ȝ@G 0J?Άa8G|o#64TA?T@jY+e b|S/z;~_O*9|p_ظ7PYFttiFuB~':;ov}@b6Z u=}aTC% iȊ,! )Jб:թJJ)UIJSflKQɖq-r;{3ᾰqotB:9=թ:#I0h^YU\22C;d(Cb#;n!o;{13v_~]O9|p_ظ7PCes[;gܲ[ zRtPkR$zMVeZ띍pNwx76b|ϱw0ܰ?>9:h#ߛ{ >ݢ_ +_n]e>F+]4k}Y]VWФ]?3wʴLJSN&Q:ho|I\擞PnX {*;n0l`U6}oo~f ,L[i{(r_/plC%ЯO6tu=81Z<+Ld^O,ef;k:EQ(FK ޿}7fǬŁ; .0-RYU%|;9Cu}'U{c9WQΡIx A|]rfsyY^Sj.tp e!M3T6%wҽzi~hetin ]gx>6RUՕv&hQ VY _ u{f7y/~e |dVc VXc[F_K?|AgԕxAD&v\uy|N!JT'r|ws[)CT&Tj7#aHm`'Ϙo5S>y=Ozɒnxf̆In4iz'^xqW(QJ(KUN6{9p !Cq:< ]o%V3`甾?} B_#M}y!"cqċw;٪D Ċ'v?r(u(N{|ۍ-0ڏS2~Boz@NGsC+ _o%DpHr.UAg"k/~r^Bp?U/FAg HEO$S0Ly!v\mꁬu ?}\ìqHdTs{,!80 Mob.M3ҥ u&sth6ƛ; O$OBSZ׷v&!Qpp*^(crUh i?3܁2곊ڜbb:5aU:H[& j\TCX7|}y*S&rA TGQ:4CM,oHGRֳqP1t~dNu.&/_tlp)j3$xTLx]qWȟ?j6Q<o.pW=xha:0#Utr u;w|k\3Q[oQh4)R1<B"HTQZ q'\J>-8E1_#* xq&$(;J $;RTu..%E>pC ٿ7-DuYVذL6HUetƜ,2GP$`lv9['u5w؉z:&&cg9N\ C" ))酰_%]$xdtIJ*ȷ3% bȘCH46j{Q}TkdUB˳\2=zI[4in/$ $*5, j)] Ki~3[@Ox;(BĴ\rG})@EEY{yC[txώŋ`bH!CQ'@Gi]I:MX;r )Sk8 nJp2hLǠ7 oc~R1[a^̀"D+{{.,8`"]NkY2²zeIN|D@!iU6'oIP unʬs n/nz\d^}QeIO^h| # ZWis~NPJ 5."mMVRHrS&.s~WYЏ7`/QL]{߼xJ}W.-u!TI"'` no<..RWwt]~&hm;8I lD[_@N7|mn|EJF84$ދT 3+S7lcfk뜊ocv|sSaMNzՄU?n~scRh5_ =m Qo&y0r⡇fV{QyϜ)u*2"MKAN/ LZTRR;3ߥGǦfU"WXI ק咮Ʃڢ[%6tmj[RYSgmxIIAIGaD$Pq3;Cr-ƇGSYX)cJFMC#nSr"# )uZ;A&ݪQ \T84;uXGz(j3x{sDoƕSMr[-bJ;}U ,t|k6?xT%.tb Tr%> IO(hqkz(2$ULq|=7y}>xYk_gw5ok!Uu"u΃Eπoh:\7n#eJҳ+-yPSC{[ߝq=㊦qA`c5vး}z ][S1,ƂT c>]+fWZ1߆GG}JNIPY%OĠrv҃% RP!!JbJUP'?pwRmA5 A|G4X [>%G/ǯ5k[j)llк}_1 F"+M*zvUr+1^HCȃWvE !ֵ`Px##v[N h *pXv7ϣZc -w]+S`4[ &TjuU1+bhkL'1[f}a_ ~-9\՝nw:cq,JFq>x3+S&[)A751T[\A .C1SQI+W|Gg} Tc,'Zqh~YOW>nyH72]uB7&FPq~ XJ Rӕd}ryĵVP4o^ū}ޅo˜GWSJӍ@K u7 =U+-4[Ib0"w9+LNz=b9+loPeuKVh"nM Aqp2m \ M7Tn)CϽCΔl\n;bE@>>whF*@70ǷAˠMTiv7C5zMqR3=/ryTa>,yB*P)'4 %.hnu@4(CI?/}%8:K!ZΉ<@Y,>[44!zBE*F̄o򜩛ɰ, JJJDT 17[RA#RR<>B{Lj}Swo:aRR󵈌BCC3/ߘ`9 BN{Bpf}iK*0h| ɱGuk++\IYm72Ĕ$j'6`ąVh8ꫯ>owr'\o 9USfƗ@`r=-2 -SI5~}w'qpګ nv}Y\ku䊊I)a}w˷%#F1]˖&5ߔlAob \B.w|*\_SiaP$! YRF~rW* w:lqß^dͧ2:בVX[I`gRݺG#:8t3/T7;u#6$tbOm]J3`R(J h"ܳ{ bѐ"1;6ߊMIA(8L7z0+Z40ؘ(9{ [}Uiw:ewx3Xgs)a_ {CuJAXȕ>ۋo).q5C;d=~!&ќ.Dŗd9s!EpxfrB XkΘo;ȓXMx1BtbBa aJew|wuMCCN*@BA(ʙ=N닌 [CV!oB~7CrP72;dVPPwh<oMs 1=BbU etOe:C)ZX:ne\΍\Ogs0z?ի׷]`جo{[߽]g yR*,{Ve~|+q͘al.GcUYNztAj$xFx8F1ncS&Ag>,-lUw%\-p=~#\8Oz O4.0{*:%M,N hF( S9f9^%-{Yxbe4J^!!sכt| k3j'N P2.Vŋr{ f7ykcNQblv|Tl)"q[Վ9d `Q]"}52>7ǃ⮙T~Xq\}=iϫ+JJxWmZM2m?h ;;Pf6Vz rzԃFqxfJth|C?I %yJ5{gc Zm@QvZ1:;VˈTn_֬>7߈ 0`!CF?opxLuT* &Wc!^aYf>?fa&3)T~q9=#5_p !5[7\c׮Ӽ—x/Lu$ 7/fUA]eTq )ݰb8~|Ö/_b1c}ݝ]4 b@0tjgsF5r*!Y:T; N;4cc.Aڿ7P=IVhH*]2(A|s[<ƥc ]YqR-:r =_]񃴸?q=˼0h23 [^$3wP01/t%Ӊ: dLczW *i3u|$z;ԭ1YΙQ7o;TI~Nud!I| ܋DR2It]U 8>!C?,eQwC_ `BThz|(n |wEnⶭ8g/\ZbYWSmӘ]bXi|áfd|ai뻓U1#nPqe*+(Yفw|hw|'α afGdDOR" -ZTI$X!*QBqŸǪ)Wspx|p'18?B#<ÐQlz5_I9}B ϥzō[,&&&̇ŰN &AFM|X w'm^uB^twf&ho|z}3TpIH"ҐNNc.BX KaJR̍:Jx=㞨.ϗWF].@xמW𭼊'11ZC4i}lC<àMIBR:tB:K^t){MC'ddtBo?bX ܱݕ^B?$CX=>ߙf'4v/`D.82]fjFRIU40绾kE데Z]OWO' V?;wb? ^ϯ(aJ<#J "|l\|+3?pvGKfjr)v" @TެjwWrNn!p푯;{ UxoVoARQnw>-uJ! \f)p]r3Ywi.sչ_Ïﭗ_oqS˽ cq;995u~ ٭zn?-)

      fy{՝K{^qpd p$##C iȊ,! )Jб*֩JJ)UIJSflKQAn 5EhsJj8_zudf_7Lu|ɜNqIAʪ*!CڼG}.^ BO~`Ξś䗟}}W\0_zudf/Ces[;gܲ[ zRtP *AdUV5-oq{o#Hyk}}Myx&^Pg$^6JX]v z.I`x]BYWJ:ؼ2-?_*GI_OgNy" K䥜A_?Q-/:9PK]gI=Q/jv\LAjd ]2s悻\8#|:ߚr^I~*/U|_ky^7+p6S=h8]ϗWeRjr2SA{NV%Nua> eŰ v i^Oܖ2twjamlЯ{UM?၆[w{spD !ЯO6tu=81Z<+L$LC4ͪlum^h0 Ei▦Vyq[*C4:igm3o_L} SFaq6Xpt>Qpwϫ?Fj'^!*7|k|ʹZUUwqg[h-i\ ^DD蕟^yD#"Dߪ3#Ғߟ^~O}ua9O˥Q$fK"!ĜO(q8`isOT뎻. M4C N U}_$G0+tÍ{e92~CϾG)T]q /M 7 %lrIM*e8Ϋ~tP  xTuFrz[ Q.KX\-<U*Ċa))1Z J*UBY++a$M=?\1HIHHcsarOá=C Q(Y:у13U= ai})D?<߹ޱs=*T%UaiTB0$$NE#( )&&KR48TpmmHƯk܀wKU*Vli2:2t%nr>2THZ%i̩^fGRQk )Sij`:7eV͹\7=Ow\ġIDsqWw;h(͔x _Wo>gPN"h|84ƚBq{댖._7t#!F eV,. L QD/ˇ 2T 7>,v4@I A!].↽ xTRYrL cњβo\ϼDJ#n} i.xHh-S0;I/aPxektf#giJr,8Y\I(Ly`m{T$VN{Tŕ@(cMw'79{df)(to/Ǥ%>Rc(H .8ĝEQŲqro5L96?I_e%lCc3IQnl}PXL4_gmq ՀuJ ҉X *K:4Cl?3ܶ;)`"B7c_ƞ_4Rӫ#CuXioXoq7Ĩ}ҿ_{6uA$9%A:) 6/^ 8+4*RƵaO'0d0=2@mV&j2}m;$FMƳi{BIJO1اޒPkApC|ĈA+?YmkĮPV7wrUK|`Z+M,q#o R":! &hGEJUhxzI* E@)ٖ%nL\Kpt4o^)^c0jv4P`mo( )2 GJPa[\au]l"$UT> T(w&A\F[juh(`]}|n rR!BUe!yɂ ` Ïqiv5NRT/K{1}o; 8ˑUVYg9uw;~Ά$knx V{Z Q( l̟o$NN! yjlB[e &)~E}4j6|T837j[ԭ{ӫ#Cuxca Ue CUO[gQy3Stb Bqե0Tt!jNPM6`MQ}TSk&]Wo Vfl|wӾbIk-#2`O]AY,e(B:޺eK&:q@5fj6;iةBJxESE9&fķ1>r %%ElǚM5iVBXN2bM=2U溾3U)M CJdt%|3z6CWS;TU2u~Ē%"8S{ÍZ8;o\uO*En.:|`*,e=|yT;;pK8'dتß˹^߶(Rt䱗փNf~hX,*bfW$Qbxj2.QU0UP->ت4CYc;^2B`랫xգq!&DFէzCuJAXȕle_bTlͫ0wX!o/ 8U\$/w?x#η7j+]Es_~mHeph9fϫDHb["@ 6SoΌp=~#H4aQl0qz5uxEu,"7#l(-> 1*cNϩz! UU=f /YQJ DcXń._HE{? wOJkQ7?4eWOV=$}[z) >ͰOs%MCQgϸ{¯rk:>f/f܈#^-U9}^ý\bJ]*}g9׃oZ 7qk 9-wj޾/(R!!?3܀I%:bn(CSD3E0dWR3cQXd3.}NHWGa}`Q]"}2^;dLR ȀM?ؖ\HpEo\ gܓzY?}R&]gܽNlmעP،9פjRծ1d(OqpzrvQKRc՛ɐe!,@[_GwZۢ6S$t!n}_!/эwWzUPk6>?^yTu7rʍZ^Pjtfă䔀V( a/ۅ'\ ÅpX/jmW[5%׊#!y8P'pǿ?V Ki*< 6Xw^ZsY;YJlrB[|\S=!Y >|Q!2!sh^? Dյ^~XIz5W#}(*!d:Zk- sS,c[F y}ʞAZ{+tTHXzEW~q'*?q=˼0n&v pn5f_9Fv+qt9Tԯ,r@ri}ݖ*X9\$4k_D=D5z52#Cu{VJљ$:QFJlS=?²?c⨻ILqi~!zw J3irnH;TO{/'Eqgp'i$@En8g/\4awr&Tשh,Űr@9^4>f?,x}Kk(k*ϕZG:APѓTBDD*?]Xf򕐅.sa>,?aU ygSSՓRuápuݢ**V'$d\X8$n}n糿 · CFMyOUI9}'sx:Gq#jw|5=朅.a1?yr|X WئdKPqs[fWG9CG܉ZUIHhi4횞U$h s],;y3BZ ˳72v;qG_~ʽwwy'ƻx 섉]3q37< H|xr޺YMᚸC=D:2Tg|A#$uiYn?]2#5T#K)^@4t|7nz#VSI9ȇχ.Iq%${p܉o}'cݜAuE|=|lE>̕♟` 3+9H[;$9h}{7w7&Ց:fI+%tiLQPgkʔzf.4\ѹN#7v"0p[ ?^~7G#t/x'x0)4s|?я2dumZ"[/h:2TSeՉ!PtzStKյAqRrn_usy{>X^Y_wչlp;;1U>u~M[yEp:8>g?_!Y;m!V V^yK$E}ܜLN^R 2GO`A @A!nWE\y^W OWVҺLgͩ3|Ɖ~F|s=2T7߫Bټ&M;9' ,%ĢL(;_< _ nZ ascW/s{ wگRtg%L/MOŎ胨M/^:Q_8#) [LOʮ,${Bsݰ̪ Dz*ĺS~|sK_ݣ< wxGz͓Gr>=neX9HN(mཱི6,ҕ4l[SG5#G'>EogD~!ζhئ}N|=ϵئhmnddetvRh{hmb=&_6G63wt{MvNKn!?WBcEmu>w/G-F]tg S)"4st0Ǒ;ֱ*[y`8жMvp]]-k-w]Bc mW Dm'GKhsh9u?]#i1q ZtSNGbh u4GB@h@h@h 4@h 4 4 4    BBBBB@h@h@h 4@h 4@h 4 4     BBBB@h@h 4@h 4@h 4 4 4    BBBB@h@h 4@h 4@h 4 4 4    k0/8G֨7C[j?#bMM8eZx3FWhDu +y[&"^YOhshg5OWSm^26/xu&>QlD;tm >""&߻ZBdh?ܶl)&Ztm"|o9"ͯk maEďl)ٍli)ߴFs|&49vzI-".[,MfnGml8ТgXvy_n3Z5_f-r&w9ݮ22wYCln=M~~cD^rĶmێ݁l=t7E[QhS72mm#k>loѦZ?2ۄLdi_^w%ew&G8OMh}$5.ωxP4x,2[ :,h, ApGhE7䑓JeIENDB`focuswriter-1.4.5/resources/mac/000077500000000000000000000000001231434177300166545ustar00rootroot00000000000000focuswriter-1.4.5/resources/mac/Info.plist000066400000000000000000000037531231434177300206340ustar00rootroot00000000000000 CFBundleInfoDictionaryVersion 6.0 CFBundleIconFile @ICON@ CFBundlePackageType APPL CFBundleSignature ???? CFBundleExecutable @EXECUTABLE@ CFBundleIdentifier org.gottcode.FocusWriter CFBundleShortVersionString @SHORT_VERSION@ CFBundleVersion @SHORT_VERSION@ CFBundleName FocusWriter CFBundleDocumentTypes CFBundleTypeExtensions rtf CFBundleTypeIconFile rtf.icns CFBundleTypeMIMETypes text/rtf CFBundleTypeName NSRTFPboardType CFBundleTypeOSTypes RTF CFBundleTypeRole Editor CFBundleTypeExtensions odt CFBundleTypeName OpenDocument Text document CFBundleTypeRole Editor CFBundleTypeExtensions txt text * CFBundleTypeIconFile txt.icns CFBundleTypeMIMETypes text/plain CFBundleTypeName NSStringPboardType CFBundleTypeOSTypes **** CFBundleTypeRole Editor focuswriter-1.4.5/resources/mac/background.png000066400000000000000000000517431231434177300215130ustar00rootroot00000000000000PNG  IHDR@㽴 pHYsaa?itIME  ΠSIDATxۯ]׿cιjwwKC F Tl)51hbLDx ---[DۨTz{Zs<{X>cy<;Zlvaε֜~  ?DǷ O}BǝxBCԞSL*O>}9WP~B\WxByOn<{M9'&Q|yʏ>.“OBC |I],rZI_h FϢY՟09qQTR}$F ^,ri5{&is*;y jA⡧%'<2B_-E+F xWSgLeU*,g)ibSqViG(J$,Lab2 okZURi3*iTZTg),\ t $YԴ:ijm[/ b,Z BV$VNr*E#,qr)^zWV[Tg,c1UJ:$5|7Z;iŠi]P*ՕrxHlI"XIEp'YĪ ?>!pƲ(ZS-2)F Sr aY/Mh="20)ǚX.{ҊZҌJũD)~e-*A :ݗYx{VO$ T˅V2Ȳ,>DQIX/&ji(q_ 5gNJf=;-GttժҪ`•p0cǬjoxf5^5gfI|Ҫ2 +99"Ų_&r9:V?bx_f _31#ZYE+iA3bek%=b͠J4 I+3k^(Nm]\t,D+OI4JHͩTʺVT&-?| qI.R>=F}CF%IZЪ;U$sf 2 [3Bо=Oj)1:~%`A@ >1"=2N/ NNQ/+|Db1+,2Y)IgF+RR)R$Ŏ`%!W'jR61ႌ1Xfo]Y8O HT3x2R)ir+ 2M`ˡcՁJ0B5 3J/L+h)VV Ur))Rd+RUE5EcIx!K4D<;r5q|+ h+}"z4K &RVV48@pJψYCl&tXH+Ȏv-lyA^ZB{؏Y5l XV3jK lJ<`x\H8Z,(2`رj#Y ?sb7`7V?ZgePjr)U2^yD%Vw']Y`c.fp],܇Vrɟq!+o(u썲6JJ&f]Je `"fWeXͬU E(fOҤAQL GrZW]-?Zad٩@qaup4#8IfwXocQq(d,>bU_:pbTO+VW fiqd)m:e *آI{h`Ob 71黢Pz3`9ʫ%F+Њ+RеR2xB, XS#`bW*Cd">G=MfQ2eNf?W(DX*y0K(Ĉ]-}uL+V3ZtaBx{buzjFΐs=KݳGzE-/fн4jPY +VuizPc)ye~ߡ )V l=x&JcF.–(eosljY8WPʊ\dmZE]5h=1,ˆb1y\I'fQXI>3a'"+]{HfCaJ5~* 8C͠se\/Y{\(ه,lI;Vm3"+zN"kȫ~3H/eࡹ LqNhO!+&nUR*DX=WjEGzj(Ղފٿ [אR(!O10KfW19&YN,M}Yyeڃ [AX0VUaU.]\=$l`f5 q8씾wqMpRT3kMڴrYOyx>d`c5Y &V)Zo~Æ~j{ ̠CEW+y(Ã씽)ᾈJo "V0#lyT1ڬ6uR-2F + 8k:4qYԖ:V/y\̛ ZEK=./uAkb%cVL]U*mcE#ʴ*io9<iYXV# %Ew94T vL TsBy\bY3 \Xy`,CJ%x':+笽bѕC^jiFvXf4#8"%3IW0}eDc#P*8OcO*BVg[ݧ\N>T(ĭwKgֳY4NUT<+_Eʹ :32+1oRVjod[[~K5',[>X#@smO8.R[QT:AJՌzT6RB^~P)B96%ZѳZYeȚnrzTT54HYFa*+3r &a\rt|_*12@R>ggsEV6OՈhٕTC]BHTˮ͆oLQJ%`Z>*7[}k*~O7CGib܃[ NjF;(?3J5U݆Z^D5V8詴R|:>>L,ZM8O*i}ܔX9ZS?Ni=LV. 4T0G\o:Tj8"T@&!Z EIxV;yU^S% VAuX`U.m1B ѫEF'0Xjp-XS9w |J/!lBN]vW+#Sq4dF^qUDJ"+]_TRHXNA[UҫgulָOE5I. jn?8nƟ? PuXXITy5j YX;:V!-s*ZIV˲ +`g?\R.-?lW42%&V}ff9+_¢KUW>jɩ]Vo ᨮ.\~6?ϥ\{,FEU}2X0h[RyN*IVYkǷ_0U~@x OthZ_'tG3 VjoV7Os~rǀ$mW)x#8 JʎV(jb)ʬe-0Ua5At\R藢p"ɚaY9cR+ Ȯily63s{T ?I^#?7O']P.'NߧtQroMf5W6SF!UŖlFQ̒9y&oe!"Zg uZ/7* ,1`OJN*?uyyǁb1pq..ǟluBR*^0b[0>}Bά m*S2b*)#a_SP&zYSAh4GX>@\T(c!<:c#PVnCeTMpW-qףGuyw [w'k$U[TDʙXe|ӂ;DtSA\3j;,Ӵ3~PF!>q$Eˁ6}p3#+c,v6)|lUO}k 5!b7^ֿy׾3սttL5i=f}-Z/4X'YCLƵer&_G'Rm8b3 H4(LkGzj/y@g/|nkGG:3 ǯ<[o~9>=YoLwސ.a@ [#.g;Zi~HT3eSb6j[2j#5[?q7n~=y'~.yik$Ap빜N/pĬ#%BCV~L2n\!cs ;\`2~AđWrC8ȫdz::HA'g Sab(dTX7`}Qqy30[0kn֑Czô)&P#jߙøWXYC`?Xo9+A^5['p7'y*(LN sfzppo|럠cȹ|ꥋ޸˶M!^RkSt<:3ѱbCE.H$]vm􃲪j|#L%:+ %0GZ=;C5m_8^Jy#Thxe` |/߽WxZra][7ldTJϾcaa{~|_x? Ijil]yjmlkJ̊YNpYpæX+=n' dJ'6hp}3o+7 qOOϠNؚn+_3fpD;Q+8 {B 2E^m^~3V0tշ|B?07?¬muҘj RnJXiG̊Y~C\|<,RcF?+v{PΑWw ?z{xy8HGuy̬`Y A 3|c jm~AeΎ۫fz57Cz5T X_>ZS_x.Tk&xy/_nfIY|vXWs;V%K_h8LEq~E^mnpp2%ï31OXc!" ʇY_]Y]pikrUUXq~ U|h@?^囩uukWŷ~`M?fo𩦻oj;ƖiQ r(ZG ªN ,0BUhAu wXcez;O3*ܼŷ~?~YAʈp%~| =ɰR~&wׯoU\o'/e Tk@,X+tmv+'e9"]X[_a~b0Xx7`}GX?yބ/mWkC$YYa%g ɾ="p *4AnIf366zӇ_Ҙd]L;c!)\iwxyym*7X]?9 RpvXMfqX_|;~Lŝ7΁U:+̭6퍱Tn}ftF` XyXJ3Zˡ6%}owkc1b|Fۋׄ>ȣ%Fsќ}6YI:ƛuYV/ ݆ ӝk'RڷYկg:w͕m ~7.86Eǭ~w7wG狝U0Q2b%aؘ|s܁K܃1_wu=]5?lk2 WNv{vq1!M)BM2|Px~{A'nX.0qWVF%{6nqǽ=mfvG篽OXo}b貏=@j kVS!]< Q}Tel[mks xQ[3'X T}e`MܱPihSF| 6y:^D8^p\7DZOV~천U^jw_k>>c2ug5_CbuWc7ў ,NVU{t'nXrI!4k )5nLoQ}"BX} tDg?q.K ,rOCg`il4g#g_y'jG}Jp8X'mw7?>d}wTYi0pxڎ}Rኀk = ݏ~Np>%$|ڊm2pOO WhE<Fa59:V?m*VV%),MaTGND[j*Z7ZGitœDV>5<[O_ƒ0-oEAA8>t*FDs?V [}廣Aa G."D!%,i9ж0-8ϿgQ!r1u) 6`5m?f%SXý8Y U MT(T^>WDʋX'(k8S6ob0kbXz4ָ6i-6) &m/~9+\pmVzrc/T(e 5 ,˧xm5>[ꠐ> S ]' -hN5r9I[mok`P麞z~Nmk.})3{F,~~BİFpwc2Ai*QUXЌ@Ja  VUQ^FQWfιyX@6.'~w+:M7K vQ:V8yl9B62X+>KfrwU)%db0'OS_ E5@{ HkA^u. U<+ùٜ|̜w7lwn٪]4(+r{l105Զ/zpz>yu&5؋!.;n:VwT5#8<86WY"wXk{/nTPLp#ڔOf _=n}V{պ"yǏ:/8@ l:n?EC}QI 纹Tͥ ZF^n |+q J;/8j3>U;%D#0jF{uGko UTgXɶ `\5F PX.i4˪Nj/ɬczN~Z՟S qz͌˥VX 5B毱\*>xt?M[)RM}4U)UՎ@d"N,GQ SNTǿ'52գ(#*4MEU@#l@Pǔ)+iOWoQߡw`ǘ1/d)Sc_8tR^)RedR"Ȭ_R gWAEk+PUvT̮E1s%N_}̩R[1,]dWH:+й>xaXB,xG,| >9ehc%xTȳ򪅪r"j+0׋v=g󁥵X`D˪<\aYd4yƖ.jvz -~uzeMXz3$GZWfU*ibjxC򍣷X'/-$f` [KpEYml-bf˭L rhŖWhU0X4};`,H[wQ15Z?,(̮ܶCV*L|/bnU ,^Vg,^xKxOg!j0DTMchofAuP>}TX?*\[<>K#?!1Lh(i`*ΞDŽ͌ 2xeѴJBT,KV ,RzpOd laU:W*`1[ `1$ƞ++YðU&Tf=L Ŧ|e]Z T8gx>QR̒!VYEªA+ f|n,wb4g!`9˥u nQhbWhY@ׂ{YUThfyY^If9?[`݄8`i]XpJ4g<`(c F?-LB`#׺ `X:C([W=nT̒A /X} @uWk4" |mƿjqy S@*<\3Ero)jp `kjdTBNk9 KCUj[品c]Wy:'S@),<|pBXTjܾ8/WFpPJWK86=̂NxA[B+܌?>;U&+%9a;=".+,BFE.W*PyI+R1U,6?3UߧVY%4^[EY%UU*t$WwCXny_ ag<[O+SaۨGJAҬ`9{R`uw'r`RYA+^STxdLj,jEBe Xfs B{^Cq"هxp [|=p4 8H>\Bh=un-;\N{mfU\c X1r ,Yb3fL bʞVšՂ}^wQ,WzdU$ D+ɮE e*0̂|P ~5rϟw`5FP+4P*W!fUH搏* j :qa#p /ʛ ̭JDhHᰅQ^AzTABfaEZexQd錡uelj T#[h o)o #`<޺J>[z4r",,3xvv{ewf*w/{UcX Х)ykHZ|/+jG[=\w([ #'/W*h]}&HdPK+,2xhc:k ,7 i38"Za3#WLU)G_^WN3H`s:Y=Bja|edIdhZ^[=-t:"}.XC [dIewQSRA9  s˂34eZ,@@XisI05, *Vp*WV7 AܗA?ʥ07l+t*gu MsFGXqѻ:\W2K-L+ ZQf0D^[9`qwFy\kw!O׹BRu*+@_@+BQA`t>NlO֜kb, CںgUJUEGXihC+:35:XXci_hY#]\{),][<r< ,7TbkW$ gV}U{?sg )FsZ|O8xV@EA.ӱi fc)IねY=+&Q%mNHO+0Y " yTxFyF`'BoL iAwh0MQ)(^' n`%ͦ0Xb WhY'oʡ)nFE?nW,G`a Ms(z,1\aS_V T|aM+tWm睆=`m6r0Dd{1 X@=Rf7̾jAxռ0 9(}KHT3Ȃ~oϮ+N}vxؽR2̂C"HWԼFtDk{BGqN{c*R }UbeS TA:Xx `yiOҥN;+X; R$u 2VW5E5рm JTA6UM:A2xǙBRZQ>~+!(s] xDco KMQ.b\U$ ,"d2u`@_kHW@fA_p_\rN_yN+S% 2ꕸ Bq޻|m" q+ n]%ܤU aeU|3W2D#" ׽]~6_nß 7Vy%>¢か]fKY_6EEO ́Gxzȉ$Y+LJo(W([#y`pM߁o _x%kh*HZAu/q* 6,Ö07,u帡 ]79wH3hW[RB Dpafɥ7-bL)NO .A+$/ ˌREV 5MQh 5{% N {ZQNM+v*ց ,,7F,4NV!jdaez-4}䕿, A+N*\a cbmҧ;JJ+ɁA:=n~5s ,\x`.e ★;]BQW iZɢ+zP~9XRd 2K/ h.=S2T@+at;^ Cv@4f X,]@85zI~9( p@F+G^aXmdBޘ1K=׋UL[o#BcW 'BQ#*|(=_eů 9 "ygRFTW^va<\!mzWUf91Gjɱe/jJ,fT9+ZU+kHqAaE?8=}.V=Bkìu0 MQ%pH ʓAy2tue~s`oGQd9MNJhf$UDM=\P%P[-m]۹bP*푞a3]ѽv\N`n;bnJ*[W5Cos9sSU-=+ $&S0߸64C`Ȋ2K3([IsmCG*BNXufpj6/W,XcfڰK. lbN P^8{ 0-3+eVNW?c<& Yֺ1K/hqo2H\%%z9QE +5QI^A1  "K(v0f2$R Ku)4K8F<Ш =m `?1FdCfߩп(03EU;O%i *3`KE +p4uUVЭ)#B+87`^Pt7X:lwCțYo]uk&^A|âܹG\30z.f' g0~hjE pc$TRƉH2-Ω{T>V̠G y%^=z,8\/Hc b<%#RĜjH* $ ił1k+:n?be"+5E7F-4%l6'Tީl z %f3W>`@@1) "" 5F:ieXɫꏁڍ" v/cXbv{Y(aB.m8eXB2ͬg&BS&xgdEmóu= z]OqCSh`Yh07.,%.r*U\a{ׁ]e `=%Fluvx6p1Z9A7Uz,c+>ا'7! zr_{<)'Kl(b?%˹2d&A1K*Y2{腭2eDtnGJiD+Nt=x*+@uˆXY:h:v r =R ;\ qq @f-\p'jyQWV#e Ш̠q%)"̂n( 9׋'T9>PaU%6z%y6,=)j\ x]i ŖT0Vޅ6p ?kW,]~+nBC9ån ]:,6钫@+w3H/{:,,7,!jiDQYJ2ީ`v}, P (X:pj-4jr cH/Yu-t*~U'\fZqsݧS@BLȵ fDZ| )Ϊ`i#¶:=R!+ltWj6ޘuՖZ&lἧsTs9jx@"=RtBstX&{Rˆ-?r-0q])Y I\+̲xCT0h 4 bPT!+@9bT1igB-4o9֑"W̚(c l WzI/6vUBxA+ؚY.fW2" ]k aŬ{݃P )RбQh kﶅFrHAps@&lűF]MĠ ِUf;c:Bs`5\ĈcSdÖ\x{- 6s3d5O($1dYJ/j(_y3ռPeV}hk>Nm TI\Gmּ몽}- n{OVr*Uvu2AA^_>$}]l qλM9=å]BS%2 ؙf!+O C@לU`NJ-+W r)rKn!-H+]tƝ֜ XZc ա'H#zaKMO(:!jU7ZHT X飀{cGwT0 MUv8ʻc&Ziw M E`aɽ1 1Ƨ)!+Rd`E$b +shaBs O[iR @E$ )6 :g/];F)2 w]UZW!Kh"t=xjAߘQз{ abDWj3( }C0`? ~/_[ YrSQ8@\V^ou >n0@udnVN bihY r+#j aB(bKH-v]C.̮CJ)$"s&@Vv3x"yʽ1~> lj9ܥ'TI( hZS9>n kЧu%> ZW 0 [ZauN9%̡\GWZj|Z(Dw.]|J~,bwM MӮ+!$MQkRz͟A5zW=&5;L,a XЍYU5,Bvs:L} EHҨ)ZL+.Ue* e0 oL*dl /Q8BLV% !]@ K]mM0 bf1YOxȩXpopGta{ȂꅕV^郕V ֽ9J6d~|$3ͨ3-|I*,-Q@ p(O$A )Bu顱n y BNy% UhLٟ݅hEV۞O'͡U|ע+Y2,Nޘc 9񒢞)NwXaa,LτpUmlWHˣ.qŠr=R^3MPS%jy` }t6K9--hU`56PDhꑂC. A6=R"V!{.CrtA;CI/ɦYT{;-lN!BY J &`GåZ`K-Dk"m˻?gZwvZ3UCNQBQMM4Y*n]lHe&]WbV=,*dSMˀNwi!J:9\n N+!ؙ5:)̂`bV'Zp)9b(uR;#߻#ޙ$m׻V0~>> h04)mΆ!] \ßmՋYs6DK+°C.n%M 9p*UaEN< \U yE D^~N>;Z3w}oi`Dj"-grU ?)1'zO`LĮřV -)W ҈)xN a9j͙!,GfQU–7:k Ns9BNyr$=rXáU ̢=b[7E]6#-zfT l hZA?]Lu_ABԊCp-]ʻxuU:aZ ^A>`Tf!ueϗ?PJR@LUz4:ЊXutݰhm q"UJ`CE`0 MQHk< lœG|\ũff@ZXhz?X$h`;1 t.m0Xr±a53Α]sB耎@< ,퍉dVcS-%p{trPEU2Tmh?dlk̂pו(N-Wr!\-FX[iNQU$*g[Vm`!n,X0J-1@Huy!UKY ˆ]ƇVC.`.:LnԊƖ ` OJYꋪ^JF+I*14H ['\☉Nif~XfhBZXEJ i[,ab*eDBY"8Pʎhn+2 t Yjaew^VbdOX#@ZA]bP d,,ҺZ[frpP eTT\YZ+fuĖ\Zx1(u$:Hsur<_ZI8`$wr"Wg^k [IyQ`mwih^Z)ՁYh޻|VŖj1*1jY6W}8yBo#Xhº#u-/u]j 'gbzݨj@(V5E+3ءufV`{B+o$=|a(Q5H~| z0i^cZ*l \ݖK(g{@r]gZ ??P@&HrIENDB`focuswriter-1.4.5/resources/mac/focuswriter.icns000066400000000000000000003642561231434177300221260ustar00rootroot00000000000000icnsis32 ̂ ٯzzؾiOKKOiGDUYYUDGG@DijjiD@G|-93ꈏ:9-|N.4,3@>94.N5'-$愊u/-'53!&EPF)&!3Q%$!Qd=   dO A Oˀo_P Pӏ_o|Y۬W..WۊY| nFg˝gFn U$GFFG$U ̂ ٯzzؾiOKKOiGDUYYUDGG@DijjiD@G|-93ꈏ:9-|N.4,3@>94.N5'-$愊u/-'53!&EPF)&!3Q%$!Qd=   dO A Oˀo_P Pӏ_o|Y۬W..WۊY| nFg˝gFn U$GFFG$U ̂ ٯzzؾiOKKOiGDUYYUDGG@DijjiD@G|-93ꈏ:9-|N.4,3@>94.N5'-$愊u/-'53!&EPF)&!3Q%$!Qd=   dO A Oˀo_P Pӏ_o|Y۬W..WۊY| nFg˝gFn U$GFFG$Us8mkU{{U UU{{{{UU U{{Uil32 C00Ϫ|ss|伄y||}~~}||yԍyYE::EYyĂk3/GXbbXG/3k;1OSVY\\YVSO1;̄NJ(@ILPSVXXVSPLI@()ɗ(>BFJNPRTTRPNJFB>() ?6<@C? ?C@<6? y$6:=@33@=:6$y篲8037:=/"55431@=:7308-1479,0BAA@><9741-p#*.036(,>><;:8630.*#pW$'*-02$)(('.420-*'$WL!$'*,. ;1.,*'$!LN!#&(*v~~}}S,*(&#!N] "$&,]+*(&$" ]{!"(('&%$"!{""#"! > *>  |N yy NÙ|x*  *Żxp* *p nQ   QЈnNi֦C  C҄iNZdrȑn]]nrdZG^]Ύ]^G [VxãxV[TURPRUTqq00Ϫ|ss|伄y||}~~}||yԍyYE::EYyĂk3/GXbbXG/3k;1OSVY\\YVSO1;̄NJ(@ILPSVXXVSPLI@()ɗ(>BFJNPRTTRPNJFB>() ?6<@C? ?C@<6? y$6:=@33@=:6$y篲8037:=/"55431@=:7308-1479,0BAA@><9741-p#*.036(,>><;:8630.*#pW$'*-02$)(('.420-*'$WL!$'*,. ;1.,*'$!LN!#&(*v~~}}S,*(&#!N] "$&,]+*(&$" ]{!"(('&%$"!{""#"! > *>  |N yy NÙ|x*  *Żxp* *p nQ   QЈnNi֦C  C҄iNZdrȑn]]nrdZG^]Ύ]^G [VxãxV[TURPRUTqq00Ϫ|ss|伄y||}~~}||yԍyYE::EYyĂk3/GXbbXG/3k;1OSVY\\YVSO1;̄NJ(@ILPSVXXVSPLI@()ɗ(>BFJNPRTTRPNJFB>() ?6<@C? ?C@<6? y$6:=@33@=:6$y篲8037:=/"55431@=:7308-1479,0BAA@><9741-p#*.036(,>><;:8630.*#pW$'*-02$)(('.420-*'$WL!$'*,. ;1.,*'$!LN!#&(*v~~}}S,*(&#!N] "$&,]+*(&$" ]{!"(('&%$"!{""#"! > *>  |N yy NÙ|x*  *Żxp* *p nQ   QЈnNi֦C  C҄iNZdrȑn]]nrdZG^]Ύ]^G [VxãxV[TURPRUTqql8mkL՛LVVVVLLLLVVVVL֛Lit32crνӷVVòxuqqux׬¦stvxvtsݿԬswywsݮuyuݭnɕuz{zun澈x|xĹuz}zuށЏ{~{޺߁ߣzz߁αdրătcUOJD>>DJOUct܀d؁ݤ| rV9' '9Vr|݁ؓفӊa<   ?@@BCCDEFGHIJJKLLMNOOPPQQRQQPPOONMLLKJJIHGFEDCCB@@?>=/ȗŽ(+<<=>?@ABCDDFFGHIJJKKLMMNNOPQPONNMMLKKJJIHGFFDDCBA@?>=<<+(ſƚC%;;<<>?@@ABCDEFFGHGFEEFFGGHIJIHGGFFEEFGHGFFEDCBA@@?><<;;%Cţg89:;<=>?@@BBCDEFFEA.)''()*)('').AEFFEDCBB@@?>=<;:98gė388:;<<=>?@AACCDEEC,-CEEDCCAA@?>=<<;:883ĀA*6789:;<<>>?@ABCCDDA&&ADDCCBA@?>><<;:9876*Ay 667899:;<=>??@ABCCD@$$@DCCBA@??>=<;:998766 y'/456788::;<=>??@ABBC?##?CBBA@??>=<;::887654/'i%34456789::<<=>??@ABB>"$>BBA@??>=<<::98765443%i'1234557789:;<<=>??@AA=")>AA@??>=<<;:9877554321'o%01234567889:;<<=>??@@=<<;:98876543210%oD,-011334567889:;<<==>??;!;@AA@?>=>?@@?>==<<;:988765433110-,D#//012344567899:;;<==>?: "?CDDEDCCBAA@@??>==<;;:998765443210//#M*-/0012344567789:;;<==>:">CCDCBBA@@?>>==<;;:9877654432100/-*M--./0012345567889::;<<=9!=BCBBA@??>==<<;::9887655432100/.--s$+,-./0112345567889::;;<8!==<;;::9887655432110/.-,+$sE)++--./01123345667889::;7;@@A@?>==<<;::98876654332110/.--++)E **+,--./01123445667889::6:?@?>>=<<;;::98876654432110/.--,+** "))*+,-../01123445667789968>??>=>=<<;::998776654432110/..-,+*))"h%((**+,-../0112234456778858=<;::9988776544322110/..-,+**((%hC&'()**+,-..//01223445667747<;<;::988776654432210//..-,+**)('&C*&&'()**+,,-./00122344556636:;::9 8877665544322100/.-,,+**)('&&* %%''()**+,--.//00123455259:9876655432100//.--,+**)(''%%  $%&''()**+,,-.//00122341388987654322100//.-,,+**)(''&%$ }!#$%&''()**+,,-../001122330/3343243221100/..-,,+**)(''&%$#!}k!##$%&''(()**+,,-./01122./322110/.-,,+**)((''&%$##!kd "##$%%&'())*++,,-..//0011-!0221100//..-,,++*))('&%%$##" d\ !"##$%&&''())*++,--../0,.110/..--,++*))(''&&%$##"! \ U !"##$%%&''())*++,,--..//+",00//..--,,++*))(''&%%$##"! UM !""#$%%&''(()* +,,--..+ +//..--,,+*)((''&%%$#""! MM  !""##$%%&'()**++,-*+.--,++**)( '&%%$##""! M V !!"##$%%&''(())**++,,)"+,-,,++**))((''&%%$##"!! V^ !!"##$$%%&''(())*+()+,,+*))((''&%%$$##"!! ^g !""#$$%%&&''(()*''*)**+*)((''&&%%$$#""! go !!""#$$%%&&''(())'),-,+*++**)((''&&%%$$#""!! o !!""##$$%%&&''((%(++,+**)(''&&%%$$##""!!  !!""##$$%%&&''%'**+*)(('&&%%$$##""!!  !!"#$$%&# &)*)(''&%$$#"!!  , !""#$%%# %('('&'&%$#""!  ,xH !"#$$" $'&''&%$#"! Hws !"##  #&%&&%$#"! s  !!"  "%$%%$ #$##"#""!! ! !  !#$#""! !M   "#"! Mo  !"! ! o  ! X  Xzz3//…3v * *ąv{++ą{b    `} N   NŅ}k~    ~k|Å…  …Ô|i~{…S   Sȅ¶{~iy}Dž,   ,ÅLj}y^|z ı  Ćz|^rzņ    Ázr:yʆ Ȏ   Ȇʍy:hxv}    }ʇvxhrwu~    ~͇uwr=u|ʇ̐      ̇|u=aut͇ ̡      ̇͊tuaksrΈ- -Κrsknrn͈V   VΈͨnrn4opl· ӌ ̇ήlpo4KolωSSƉϲkoKTmmnnjЈ ԥ, ,ΈЯjnnmmTWlhψ֌,,ψҨhlWYkhЊٔ2    2ي՗hkYVjhыڬa  aڋ҅hjVQhhiihqӌؘV!!VԌqhiihhQDfge׎ ݺR/ /R׎שegfD0cfcБ۾{pf[[fp{ؑЃcfc0]ededږ֖کdede]SccdauٱuadccS4_b]٭ˆ]b_4Ta\קɊ\aT-Z`_`_Z~ߥߺ~Z_`_`Z-G[^ZfߟΝfZ^[GM[]\VpڕȟpV\][MLX\[\[V`ލȧ`V[\[\XLCTZ[Z[YVUmȼmUVY[Z[ZTCNUYWUTSRQRSTUWYUNMSXSMCNQTWTQNC DJNPQRSTUTSRQPNJD νӷVVòxuqqux׬¦stvxvtsݿԬswywsݮuyuݭnɕuz{zun澈x|xĹuz}zuށЏ{~{޺߁ߣzz߁αdրătcUOJD>>DJOUct܀d؁ݤ| rV9' '9Vr|݁ؓفӊa<   ?@@BCCDEFGHIJJKLLMNOOPPQQRQQPPOONMLLKJJIHGFEDCCB@@?>=/ȗŽ(+<<=>?@ABCDDFFGHIJJKKLMMNNOPQPONNMMLKKJJIHGFFDDCBA@?>=<<+(ſƚC%;;<<>?@@ABCDEFFGHGFEEFFGGHIJIHGGFFEEFGHGFFEDCBA@@?><<;;%Cţg89:;<=>?@@BBCDEFFEA.)''()*)('').AEFFEDCBB@@?>=<;:98gė388:;<<=>?@AACCDEEC,-CEEDCCAA@?>=<<;:883ĀA*6789:;<<>>?@ABCCDDA&&ADDCCBA@?>><<;:9876*Ay 667899:;<=>??@ABCCD@$$@DCCBA@??>=<;:998766 y'/456788::;<=>??@ABBC?##?CBBA@??>=<;::887654/'i%34456789::<<=>??@ABB>"$>BBA@??>=<<::98765443%i'1234557789:;<<=>??@AA=")>AA@??>=<<;:9877554321'o%01234567889:;<<=>??@@=<<;:98876543210%oD,-011334567889:;<<==>??;!;@AA@?>=>?@@?>==<<;:988765433110-,D#//012344567899:;;<==>?: "?CDDEDCCBAA@@??>==<;;:998765443210//#M*-/0012344567789:;;<==>:">CCDCBBA@@?>>==<;;:9877654432100/-*M--./0012345567889::;<<=9!=BCBBA@??>==<<;::9887655432100/.--s$+,-./0112345567889::;;<8!==<;;::9887655432110/.-,+$sE)++--./01123345667889::;7;@@A@?>==<<;::98876654332110/.--++)E **+,--./01123445667889::6:?@?>>=<<;;::98876654432110/.--,+** "))*+,-../01123445667789968>??>=>=<<;::998776654432110/..-,+*))"h%((**+,-../0112234456778858=<;::9988776544322110/..-,+**((%hC&'()**+,-..//01223445667747<;<;::988776654432210//..-,+**)('&C*&&'()**+,,-./00122344556636:;::9 8877665544322100/.-,,+**)('&&* %%''()**+,--.//00123455259:9876655432100//.--,+**)(''%%  $%&''()**+,,-.//00122341388987654322100//.-,,+**)(''&%$ }!#$%&''()**+,,-../001122330/3343243221100/..-,,+**)(''&%$#!}k!##$%&''(()**+,,-./01122./322110/.-,,+**)((''&%$##!kd "##$%%&'())*++,,-..//0011-!0221100//..-,,++*))('&%%$##" d\ !"##$%&&''())*++,--../0,.110/..--,++*))(''&&%$##"! \ U !"##$%%&''())*++,,--..//+",00//..--,,++*))(''&%%$##"! UM !""#$%%&''(()* +,,--..+ +//..--,,+*)((''&%%$#""! MM  !""##$%%&'()**++,-*+.--,++**)( '&%%$##""! M V !!"##$%%&''(())**++,,)"+,-,,++**))((''&%%$##"!! V^ !!"##$$%%&''(())*+()+,,+*))((''&%%$$##"!! ^g !""#$$%%&&''(()*''*)**+*)((''&&%%$$#""! go !!""#$$%%&&''(())'),-,+*++**)((''&&%%$$#""!! o !!""##$$%%&&''((%(++,+**)(''&&%%$$##""!!  !!""##$$%%&&''%'**+*)(('&&%%$$##""!!  !!"#$$%&# &)*)(''&%$$#"!!  , !""#$%%# %('('&'&%$#""!  ,xH !"#$$" $'&''&%$#"! Hws !"##  #&%&&%$#"! s  !!"  "%$%%$ #$##"#""!! ! !  !#$#""! !M   "#"! Mo  !"! ! o  ! X  Xzz3//…3v * *ąv{++ą{b    `} N   NŅ}k~    ~k|Å…  …Ô|i~{…S   Sȅ¶{~iy}Dž,   ,ÅLj}y^|z ı  Ćz|^rzņ    Ázr:yʆ Ȏ   Ȇʍy:hxv}    }ʇvxhrwu~    ~͇uwr=u|ʇ̐      ̇|u=aut͇ ̡      ̇͊tuaksrΈ- -Κrsknrn͈V   VΈͨnrn4opl· ӌ ̇ήlpo4KolωSSƉϲkoKTmmnnjЈ ԥ, ,ΈЯjnnmmTWlhψ֌,,ψҨhlWYkhЊٔ2    2ي՗hkYVjhыڬa  aڋ҅hjVQhhiihqӌؘV!!VԌqhiihhQDfge׎ ݺR/ /R׎שegfD0cfcБ۾{pf[[fp{ؑЃcfc0]ededږ֖کdede]SccdauٱuadccS4_b]٭ˆ]b_4Ta\קɊ\aT-Z`_`_Z~ߥߺ~Z_`_`Z-G[^ZfߟΝfZ^[GM[]\VpڕȟpV\][MLX\[\[V`ލȧ`V[\[\XLCTZ[Z[YVUmȼmUVY[Z[ZTCNUYWUTSRQRSTUWYUNMSXSMCNQTWTQNC DJNPQRSTUTSRQPNJD νӷVVòxuqqux׬¦stvxvtsݿԬswywsݮuyuݭnɕuz{zun澈x|xĹuz}zuށЏ{~{޺߁ߣzz߁αdրătcUOJD>>DJOUct܀d؁ݤ| rV9' '9Vr|݁ؓفӊa<   ?@@BCCDEFGHIJJKLLMNOOPPQQRQQPPOONMLLKJJIHGFEDCCB@@?>=/ȗŽ(+<<=>?@ABCDDFFGHIJJKKLMMNNOPQPONNMMLKKJJIHGFFDDCBA@?>=<<+(ſƚC%;;<<>?@@ABCDEFFGHGFEEFFGGHIJIHGGFFEEFGHGFFEDCBA@@?><<;;%Cţg89:;<=>?@@BBCDEFFEA.)''()*)('').AEFFEDCBB@@?>=<;:98gė388:;<<=>?@AACCDEEC,-CEEDCCAA@?>=<<;:883ĀA*6789:;<<>>?@ABCCDDA&&ADDCCBA@?>><<;:9876*Ay 667899:;<=>??@ABCCD@$$@DCCBA@??>=<;:998766 y'/456788::;<=>??@ABBC?##?CBBA@??>=<;::887654/'i%34456789::<<=>??@ABB>"$>BBA@??>=<<::98765443%i'1234557789:;<<=>??@AA=")>AA@??>=<<;:9877554321'o%01234567889:;<<=>??@@=<<;:98876543210%oD,-011334567889:;<<==>??;!;@AA@?>=>?@@?>==<<;:988765433110-,D#//012344567899:;;<==>?: "?CDDEDCCBAA@@??>==<;;:998765443210//#M*-/0012344567789:;;<==>:">CCDCBBA@@?>>==<;;:9877654432100/-*M--./0012345567889::;<<=9!=BCBBA@??>==<<;::9887655432100/.--s$+,-./0112345567889::;;<8!==<;;::9887655432110/.-,+$sE)++--./01123345667889::;7;@@A@?>==<<;::98876654332110/.--++)E **+,--./01123445667889::6:?@?>>=<<;;::98876654432110/.--,+** "))*+,-../01123445667789968>??>=>=<<;::998776654432110/..-,+*))"h%((**+,-../0112234456778858=<;::9988776544322110/..-,+**((%hC&'()**+,-..//01223445667747<;<;::988776654432210//..-,+**)('&C*&&'()**+,,-./00122344556636:;::9 8877665544322100/.-,,+**)('&&* %%''()**+,--.//00123455259:9876655432100//.--,+**)(''%%  $%&''()**+,,-.//00122341388987654322100//.-,,+**)(''&%$ }!#$%&''()**+,,-../001122330/3343243221100/..-,,+**)(''&%$#!}k!##$%&''(()**+,,-./01122./322110/.-,,+**)((''&%$##!kd "##$%%&'())*++,,-..//0011-!0221100//..-,,++*))('&%%$##" d\ !"##$%&&''())*++,--../0,.110/..--,++*))(''&&%$##"! \ U !"##$%%&''())*++,,--..//+",00//..--,,++*))(''&%%$##"! UM !""#$%%&''(()* +,,--..+ +//..--,,+*)((''&%%$#""! MM  !""##$%%&'()**++,-*+.--,++**)( '&%%$##""! M V !!"##$%%&''(())**++,,)"+,-,,++**))((''&%%$##"!! V^ !!"##$$%%&''(())*+()+,,+*))((''&%%$$##"!! ^g !""#$$%%&&''(()*''*)**+*)((''&&%%$$#""! go !!""#$$%%&&''(())'),-,+*++**)((''&&%%$$#""!! o !!""##$$%%&&''((%(++,+**)(''&&%%$$##""!!  !!""##$$%%&&''%'**+*)(('&&%%$$##""!!  !!"#$$%&# &)*)(''&%$$#"!!  , !""#$%%# %('('&'&%$#""!  ,xH !"#$$" $'&''&%$#"! Hws !"##  #&%&&%$#"! s  !!"  "%$%%$ #$##"#""!! ! !  !#$#""! !M   "#"! Mo  !"! ! o  ! X  Xzz3//…3v * *ąv{++ą{b    `} N   NŅ}k~    ~k|Å…  …Ô|i~{…S   Sȅ¶{~iy}Dž,   ,ÅLj}y^|z ı  Ćz|^rzņ    Ázr:yʆ Ȏ   Ȇʍy:hxv}    }ʇvxhrwu~    ~͇uwr=u|ʇ̐      ̇|u=aut͇ ̡      ̇͊tuaksrΈ- -Κrsknrn͈V   VΈͨnrn4opl· ӌ ̇ήlpo4KolωSSƉϲkoKTmmnnjЈ ԥ, ,ΈЯjnnmmTWlhψ֌,,ψҨhlWYkhЊٔ2    2ي՗hkYVjhыڬa  aڋ҅hjVQhhiihqӌؘV!!VԌqhiihhQDfge׎ ݺR/ /R׎שegfD0cfcБ۾{pf[[fp{ؑЃcfc0]ededږ֖کdede]SccdauٱuadccS4_b]٭ˆ]b_4Ta\קɊ\aT-Z`_`_Z~ߥߺ~Z_`_`Z-G[^ZfߟΝfZ^[GM[]\VpڕȟpV\][MLX\[\[V`ލȧ`V[\[\XLCTZ[Z[YVUmȼmUVY[Z[ZTCNUYWUTSRQRSTUWYUNMSXSMCNQTWTQNC DJNPQRSTUTSRQPNJD t8mk@Cm̴mC==qq qq 99YYZZAAwwee00LLYYccYYLL00eewwAAZZYY<9 qqqq==DComomDC==qqqq <9YYZZAAwwee00LLYYccYYLL00eewwAAZZYY<< qq qq==Do̴oDic08_9 jP ftypjp2 jp2 Ojp2hihdrcolr"cdefjp2cOQ2R \ PXX`XX`XX`XXXPPXdKakadu-v5.2.1 ^L,4.֚i|e !v&LO>7ƄAe}Ja(ڙH/\Mo&x] IZ rG >Y~  ۬O58H Ğ'SAB>,?7Q#~U>i2(R sc閣e=(ЬC8e+7=o$gJȶ8\ F2y \C --&%6+ dnG ;b"M(cJЪ 2oGR$[U)p H<ě{~f7sPNOoPq[ǖli{[9'2o~SG` ͛H?nE n5x(κ+(:AΘej2kٜ(\=Zؠ` Gz7ĄJ 5׸[t$"3m)ASfeChWU~[ n[[&{QTڦq9UGݒnXM]M GP $ 8>Є.w0yKK_V{|J+V森;~f|٣ w1A12!Bp7r * g`Js4b7x6D>k'E,.ñ)-2,dmh+;8GDXU4IR˒4E]nBُx+YPY;'Rqu'u@,RH}zGgIdKpIadM޷EGCP0?v͵M1Y{(rp.l("]R;U xSHF n`xЮXCװR5 ̤)c6 pihPZG1> `yS:T\ljf#(<-nzcV\#͆;zml#uI78.msdh^~0ٺPO(NJBl%OQf/‰(؃$&d)SRe$Zh‚>S(N0/D@AR0g~o\0vD-\$r@la1 +*VXYzM\+W'3Ive;D`6#}vPn,*]'ucxIyT#H$\ +W`Nϟh-ՒA{HSa <~pYۮ:{sЉn |d 5Fb۳-f87>"&hm|\Vk&OX Pe|EJ &ʵq7tmyg*ھv~6&`NGfsupۀ#]iFd*hhn8hvYgRúO %m$4!Z#R Zx{?~ 쯶!J37C:uQFJ.XWr:>v3gg#B\刾 5挹Z*&VX| fVv &[@h`a yHķ+A`(1y܄)0r ͱurZwUYpHJ;e%xKvAz3o N_UKE.ykE=$h䯵̣B*tʹ?E?UJL_2c hh+Mo8RUp2%'4Ld!Uɕz^,c1զ%SoMT :`]z([rǾGi&[Tָt1* A3zhdxXҠRO0{G~+7w=Y6ҖFW`>{ %KzQF)82$)`n~{f)`uè8z B!)6R u lÆk:n_%v=iP}x&b S4lN6r\Rk.*c3jJN[J݌nTw1_ =;\chTH jV+oly(Q('Utsuyz8Z"$,aɊ CSn9g˸.bޱ xA"!6snDZrhmziUz%@UQ* sdW4hΛC$K;΍3LP%fHɸHj-?Mc{ViРus+_v&|BЧksV]X`\=9|Cz;]  rM/bymAPŸ;H} m! XLhUsєg<?gڢ!%Z; F*:g'@]갬)G ѭȦ!FpCv #Z(v|V!bɶr7uҫ'ѨdLAJH:<xRUYM54XH%~uz!lLpT:9kZ_v7z}7`N"9bʵI VQpYXdϙ6|K2@!=-w t p)&+m߬Vch;}:XK pW&[?$Xt8SQ \3oTg\k4yi Zet1ҥҼѭPa3$=0.B?#벍j8E$?}JC,#Wr`}vJfU{i:[_#=#`*`{Jc@U"1h=X~%21`O zcYBb舓 8anG,4Q@ 3/)Z=nQIc^ȦFH22^B%Q=63cZ*(2Ԝ`j!͙e"Yf;Q$>K8nZD`\΁snqiHLzjZrI Mj5Q_2f"|Ϲ@0Ͻ#c.cɿj p0r(u=vϏƐ@(}ÌM<>>Qǖn*5p2jf1QZx k Zz46/w j(9] Fnnyz T&7ObjߘJVUB쏅#d@C1h`r}. {q5y?Տ N!ÉFd s]߁ l~+A!s+EkvJs݀B̥#\\ $5P'?,$vUE*cPTEl Dk+u-L%#w bRLaşGao#9 M>Y.hWo$GقwHOya_qАv Rn-sv{ڱܱSk`),+-1һ-#bXh*g*a*;xIwtQrQC@}9xK `DgPӥ`'&\rJAջݶ|S9mXqGc"r<)Ɏd_\\9;̏dS[Wh@ݯWJH%s17bbP7cx32.c@[L,lf8䳣r*z귓E4DBu@DbgUW=Կixg䈫 $ىވ.?6UE{wx)CWyJ_"Yox|vvF1{emtMⰚRJ,ݒ ŀ[#PN#Tp sr=Tʼn:Wjzi:aCQ9[$j}FpƜXI"(4jPV}-u˕+'ث ijiD`;Qk1敃ݺ˲x]nD2Ya d#TRlR H|,So"Xsc9CR6kdk$?xm.l1؍^tF:m+sj蜇ˋ-,n !l)-_l%ܣlRPY:Y OXסr[&Uΐ&RF* nfZM5Vy*8侞Ɔ[jx I?a=`PO +rM)g=R %,>ҘA 0^f".?{F~٧ Yåa߱;+ Bz#5 Jxı߾ 7MS.~.{8@$̸زfw{OwE6q_ U"ATL`bM%I V&} '#r%@I5Y`<5 $.+uF*p^}l*~⅊{ _{h?9^ 1KxvC^/_^XeJ Iʏ{D*fMɁ3lgcmX0@Dzn`tb;RQ5׎QhEjJ􅁦=f.r-.95FKy>5geC + F'%O'Dž[8Ҫf9H{  /P3I(|( 1܇45Zs +Lm^:EfdUaA>]) *š0AYyPd O8IyYz2%}J4O-xc&k,G} !!lYD>eGӽ0yvr0Q7).wWo"oFm O9vjc!9]D܉$h`V`|kΌ7֠SҷFpo80IG^`AUR>ئ ->Dx@jsW"eC R{A^Trhp\-iZq )Il1Udt,sQ"'w*~9i6'}Txu.MØ'g+6Q%F~0rr3g`^Y{x:<tqwI@b ˙?rM`>X& )fjc:r55EA@RNa΋5I2*(Rg򥦻s48=m6ls` )Xr^#FxT$1 %e1[Mmf$6 -< ygY򒟁|q W%.ю,%J~e3n3q@#UI;I8˵O&Y>]KF[0ۧX p-nE=H'о6M WFp)^a_<"ߓN:2.GFHyeDkW|J|Ѡ~ _!A_~I8|Wzu*`cYl۔eh6 JnMצU; P@r)@G ȚnA5r3itgЋm>M%70o~%NȈpѢvhġ:\@=)2[!3x"$sKqfTgZB0]#0}cio٬&6nT4*Qy'pҟƘϩA(,BμDRk3w_ 졀V {Z h%qæ.~?ѝ V4U-^wHƱC$gӓ=_u43 eySE-='V>Z.2S#6pXY4@MVixӚuPpY&ANSъ7:&JQ77R}dZNIoo鐵l=8PZPP;$+Y`x^Yr$2RAG~+0XMr wl.R;)n[4}?dS_Τ DL'ԱY~dVOXFrul*{z/$逭 %,*RBz׽bGNY0~cjPCƪIo Ff,؂ۿFu]u+ו&d3U}JDuܯ{^Z>ÿ4]n!Pb6.*`kWI G",gr{_C+ q8-Ve Tbrn* NhGG.)ts%m~tlc 2XoE&YfӴʕ!~`&u%|D}DDi\xhv7H>C[ wDŽhsSfWa3W uӰ-s]0gwr18ɰ#G ̑qvU$4+(Ǥ>|ySTvd's(c?$~G.LVz>VW `MZAMj˃(uXwޖmɣ-33. NeE1&B  )Ft>+@NqScα^{ kg()̛=ާ \L07ѦAKc^*/8!^V:ƶqR&nVN5Op*͹yo%P ]pVuVE8";$`%خ:[} `#1J;ߌɘƄh70ɣ0?eIH:J - P)lL?Iy.6',o2w5;,"(Ee&?55?&P.?:uY:FG0TrեP Yš>} 2A'-2֢{>}gv; eygR{a~ָsוYڋ6 )58W;#r1w\ կOA.{unxKEđl8"eS(ZmK2-*guQd8?z1 A KCu)ӬCwj7mc H׏cmgީWUM~naUb -gQNO%{L*Q!%h"' S'f}7&]_GX.WsjdT] ?u]Nr201.;w0f$>N|Jd\g 3 YS *zX-{H:KNH V,Og/[05:Ļ"r6HcIe5"fˇL?B{]vg~e</EVϿSd6CR Sruu4~!u>}Su\c!8P5GT%δl׍{ TA:B;eѥ.wJҩ#?>5p%jɍeP0fS1 yBՁڙ{eu@oHz$zϵc=o`c&?O2̩g'uijRm5/ q &w#PsxՕs7޾O[4ճ$/Ł]̯Y6#8k :(p-dT:drFk5ʧ~IL4%bQf@!=\á MW311t;<מkWin$}g.ߒBgHdNS{gy{]İtqu6dz"н̃QNS\(0=0#X(wOJ-Pұ*Rvԁ]l>VQ2ˍTZ|Ku0?u;B¡jt6ˮ,}3!!\c@i/P  4olE;i Xg5-X_gn -(u K9K]0:[+]lDLHc}¯&&傋}nwBu`ځs$]([CV S{Ea4qu( ͯ&%N.L9}xߕx\8Xz}{h|}O)WC }Eۃ6LktJ$7!qǡ 1s맫 X", q6i>JOP+:Su:#JA^C.6CҌImmF޻w'i.ZR ~QE+f=_kt\K-WBb+KJ:Rѿ ;QMe=2DN{K8X^kx|)7Tf-tQL`U:n>U'ae*~ ȹU,Jf#S 6R r2d'bg-=w"-$>}>rӘvvnN2erp'niQuA;ԥ-PƝm6иӴ6MAGT$ggѳ=Wo9$Z_˦P/-]oI celɎoFRҡkvGKf@bZ>e> ȝ6.LFΒ]9F >D Am ;ddNo^n@V`lPu0V/E%'q-_%+ED!Zg߮E{U68u /$3ʚJ'JqC*[<𿰝3?*BRl¨8oγ "zkӵ|))0%0Vu\%KTm\.Ӑ7S񊧭;$oFPiu{s{k3te.O7hN? oqpB|Kd?|̨[({an! *ySW՛OAHw,@mW' UDA,S}LĂI*o]5NTEl-o (0 KI}J:T9;L~9î9p46>fIMͻԅl !"=b]gN"AB%oVD.(*[Ӈvjr{=B*J{zqrL7NwusJ܀2epX~ 8&UaSrQ-jZo"Y]l3] :UIk(Oc90~$G'j zҼbeŜYgʈIc!jlnSŌz)˦ɤkf؛ލRYUc ~q7®9Vce}?:*3bu*0&].JIr渿'f; -7$d0]GY+8Wƚ9b QűwR2ү8|W,rmm_a x/ -aLEii{zhqK H{[cӖkHk@)#Goh\D̡Jw _/8^_3NVW/)7#f7n'L\q{hU t'%}-jLcau@K^`9J_UM!-ܐ"Q; ՗>_>nRIָ"ԆC$.!ӄx֚8 5*i𧇸J(qM͟1Jp`?,3(16@TL\.?bWѲꓬ۾vnɈulzJ83K@Jfy}YA‹w#qrvvCJf(~Pܺ GL'ZHDe֛82Kfe!\7mG6p1 HMEayw#D W+9紺bi5DhʛF&+"7۟c ev'bH:[ UҼ=g~!ܾۃޔ]z$B.ɇM߀b|8p;0|kI*k6Zf*?AYN[F *;@-6xYD;TF;䢰ʾs5ɯMp.y*H~XqW=ټ&5_E}h5ǏP>ݳ]XgrRfO0/mca6 䶺',Qnwx1F f:Pb]^f" ɹA3lU"nH`",® aOBd{;uV "V,g?M9ZJ V%f~^D<I=i`vk5+#}N ;m#6 Ff&04Ѐ.v /6mv=yjx֦C'_MX0Vp^?KI> 3R"u a;ߡ츿?e J-|r,XU)AjgIMLjV?)WU!!5h_?(3n"i;R4vqv\J8uc_ tP1П+npªk?WqetMژBmv&̅zZY3>>/Uvm( VU|4c:~zSܞ{H6ę6m eД,YjY׆ ʂ N 9p?Jns0yrt+Hķ'/V"%HIv1r Kb+P^xo 9 UK#7VXK?l$Ơ&n8^՘J|_7c[c!Ⱦ^J|s`䐟--L,I"@Hc#(U&}^d%[)okrWK,T)ܞ522l;[±x.)WFq>mcbK s`^Ǻd yof9:^(EǙ82\{ഒ @CܱYL;c,K߿a2G~CYP/Hc3}AIeWxEQD) :H~BId;W=خﭯrq̌?5dk4j#+: j^WibHr8L^ؠ Z)Vq “$W*.v29^V$7M8z븪7u䐘y .6fHr`J1 x?&Eȩ:RtIwխ4?(ۨzޅbG؅'aACjǫkSwV$Iok3`"(v*8f_鷶^&fyDmYf== {&P}&z*!Riz/H{13|gǝkE+=O||:N`d 645̖"&3\w,UoIaA!RD4䚯ޟo4/>ӱCHbzL<$<.Kh *wt{81=~+p3 (^YFk% U]1rQ^Cw+>Ldk?aPʠڗ"].$vhl:7Q'q1>714"m]4D](77$@@໸lru*+:/<ҫkrWέ&;04)\ױIcC54@r縧`OoXhവCf'?N>,HC4TcG2ieXή9gZP ٕ;l:#jjaZC=Fp.PbdT׀Tsܭ4)d<(e"ܑԸunp ??%`SU._{r<ށJP&SogRVޙQaUuumuL}wc=gb샡ILur,4ŴH6JM}z]~3߲4qYآE(ҿJH0y2We_ %"J46G'Pd7v|%A=ڻP`=|b,㹇u) qO۔1 At$,$7S'TQGemq+$崩ŧ1g=?o@5M; ,r+6f7+LUFq9gَ"*X=xM\J?b`@CS .q{\$@gc5惨h;1kunniH2lխ$ɒB5焪$+=볦FU2RrtJqѥ6Q™2MkeSiɵלz<]ۖ?çxq*? ZV(uЗ8\uP+%iU>/ GtDM:'T["fAXCeer¸+&;Ǜr~Ӭ@1P@1[KBîwdh)x`lw[usIpeH"Y#b+*).4[;62bwU.݊FuVMPxM|0 Wq Eu[z0!5/'_(xea8{BdB'ND+@FM Vp)h.R;19#od vˑ(wK9#m^W* y1 ?9 wS"Fkk*G?b *?fu\:g+!OBX7:U,Bm yrcJa^eo8IN5Į=(K6- ʾ vBW,/glÁɳ&32p T*IK]o}bzϜZ?ciw46xr5$ Hǯt _#mpoDBItݫ{qۏ$V_aƒ!'֑eo]TbE^*+)$S%|O;A+/RYW pbۦ=>vᨂv^6c@a;C&8v(@m=5BEKDn=S_3"Qmݳ7ùcAE_I[ˤoޞ͜_à2A57+6SW Vϑ@lCtSq@u4J#*t%y6uVQ fJo<1oD^Rt!Ƭ8së5KSuz[l俒y漌Qa7T+>e1P#z< Io*}q+t1fk:!Kz>nrc?u[+j d̰}i@'^% :D2ə#]e+Bote̠g8 MI?Q`\LusўѺ2E=ם=CIMBp?ݮ[5>ee3gK"RO27ueRȒ1erhIQ>^9wIsl8C{ϤzUn3f./#)a9O8^{Ybxg=q-UH=dyopMF?0kÊ@uk/ "1)N덺J6Ѩ#gd3'C8kv_ QцQ8r\":d@]Hn-9SFa~G_{CR0 Ѳ TN3'k;fo^wuZԃ0~~^s_1}OgKl<ׁ\ D.`r0:tJ@ot΂~F>m^a?ҧZĆ~chM2'+~~.q^C0Xi}%^D@xUbNXIUgm|fT&yhHt6x|^)ׯ$䘣~v љ5Q3s;m4Y~tFQCa.mG4NQ_0 D \bƕoO2]$"󸘹2Z[+ "a@ : ;g}nzÿXy~vH`$GՔZ?ϲUsޝK1ރU?ƾ'JO&p=}pB10ZMݗO!d,g48,;BL[ˈ"5dnͯYoh=%?fHwvUDl_5[Ѯh^ X"Կ#Q F 8ȪMSbTLeֈFWnhm?;Q?/pȶRcKtg =dT(#CVvXg4b\ǥ`FU[qbF'N/.g:QLP!vYHwG*5s#L,%k37x!+b~;N̅=+k]/yA6lN ǃ2'ɩJGo.ܔu&Ψ0xfk'BSP*t3cВ/yMK18F d;Ÿhcɯ##1U5 OgnҸfSLKH# yl3 oW%6\3/?[ z$7gQ"|sx>DϚ#9ݒ/ D\V)@P~҄yh*`r$4&.hk>Ifӑ@2b&Fp„S22B"yIK;'Cy;tUUCT(U}"Œ9yW^8٩ CD![KdG~˭V5ӢW{&)eI?-t[m)8c5 YLnKhqR0)kk;(e`Z6f?6_r"4n:i[@_,H~Bt"*դkJۺ@NK+As hk+9h˗^}|neR#¾>8c?: ͪծ5gX2a4긜}2J c#6%7R3g" i$4iH1|Pq̋e (hEX%H\`G:p~&5܋Q{R8vPwZ -KcD|#澮-E~Ԅ%ٓ`vRc[@tL:Qj}uX hȭ1cu 92+Q̄rEbY4+ՋqY(sUGUy.>ae sn=zHIB4kHBO% ;IVښ7jfٟL^+b_y>MX4δ GkIcZco#h*3O :X{5Q}`t]0gvTVP79%9Bp4 ջoUNO}>`=cޥBh A-#7ۺ9u݄ak1i{hnȼq }yРCHXr6fՑSKmY:iGz+ka|UF3[F$SΙk`Vpti3;H[NdNCBnU#J5wi9Ô!,r Gz99LDAe.Q]0*T l-4rh#@h `݀LQrECyGmMVr{$31or2O˘Ssg}x) ^'4[=n}͐Ģ2ɣ0\wΆ3)e:u2Y 8 8 .ڟn LDOlJ{ iv9ph 0H*m.7Ĺٶ&})$lQR2ځo9іP]}Y^7B pfuϊfQ BjO? +k1<& kOTr )6Nd#jqŒ="wFCq#!&tO2"G~| 7悜}z/Wf-~T` Y~ P޽ѣS~S3 "@tcᐻb@fImdy{?1lz/ d^ZZ?F X87 nL)n{.RFSjԙս ԙ1Fp?UpHYDf~4gߵO?ыq߀mTS ᶬdQ";=(%#'LwH@UCg(8$PʋJ!~a~:\334jc\E =r3Dm% . Q}Ќ(+ N`xͪ'^__օ[:"6{H>0aP =js{OF蚮vv&1o `dS-|pNǓ0m0p漂4(ӚϪo&Df"ehȸ9d/ vCM$?T} p\PGq0"Y`U+iRGhCks'hV/q;o3CDirˈEwkD; xK;GcX.eoa gkje΍SC-5kmV@z+k= -AAQp(bt{@8:Jۜ}D7>{LN{њtC Ԋ y/}^i 1CH&~-.J uL' r(Z8#cfkX"];*"|&a.y zŀGDG_+)e =GFJIA, \h7BT~C/m.S ,4ArMq_|$O]%{&5]͇ʙ! amяqt;[ R3[e = "а= վi%jغ Jd3WB 33l9u bߛm r캄*g]j/O8ƳгϘJs^FxGHsW(* [Rg8e5 @1va'uܜƏÿ0鐢;vB0#5B`f>[/aᲥFՉ uqIBwF摊hA w/_hT'VB5[i,u6SP_&L)OŇS3'@D: :N59ZC.#c%B:)rd/h}chWy~+U *Τ'u=Og+DWW7l A)VU}Sof* -P=~*Pqp#*+w_ȵE})sK|PưoOSsm&I7?uG;J}F"uw/H&1b)MG72l_j֡o/ 0#tȏOswLDŽ-AHK(M~^ )'kTEVFBh¢7#vإuGg,z|^#[RNed5 eZI,oJ 00 ; c6m&D"2cS!Q㖒Wcw qRUK,\9risG& 7ɒONGh>r͌?Sy8抳:ffэn' UDdy?8{TAZ .iY_T.t1^>O5XV?6]P괰ic09Ә jP ftypjp2 jp2 Ojp2hihdrcolr"cdefjp2cOQ2R \ PXX`XX`XX`XXXPPXdKakadu-v5.2.1 ҫC:~m*,׼etHJ#g'wL~=>Ň5B,6Tb9EфoKy:a^(Եxw2ے8 $uA孁MթWz 1 *㎓UcJr8Ӡ,H 96nk}bΉ}{1zߔO 騰Y`fŚG;j95Y(WQP΋XyYut 랯=)R;xO -/BJ/tV]ǫt{puTk^Z{i2Bg<39 ۡ#MGÌe9MAQ RTk[-|6ȰV3aC[s$M*w%==M6OQ;ޅ/t[4~E>[y+&*CȤ6,/r s NdБy?|Zg9@b"1gI6Dr݀+/I!\`H ĝMͮ[UIq/P Y%;gG" )!OXQ^' d|s uu.՞V5J(S]`s̽7WtGVTd4L)ᐈa,!r ?_ /_\ARsYɽ'=DC#&%)-( ߇ |HS).7Y|O7P//7H\¨./c 25R&GZ;8[GMPy /45=wHBr'Jz4/]NpYp)ӌUOjmZAО8_]R"Kzv倀~o\0vD(GsOMz!s+gl-zqS#2 GChrȤe&cx7j!KqSӵW)|ft qDPZJ#H$\æ)L'0bhx+0+>W6ʎVA7h&AUh>}Y0 W5Ikz>VUI2E'x'5"% lΌWw@ճW^gB Cr>w/njLǑhv25><^ NiY:JqN]\7"9^Rfee]r?yN[ PFPuu~.0,*1M|W5tFp";XYX\nT[NE"THy2 zO.{[t̰^Te}` S]EGN::",@Vޯ"<6*tRUYz;c5,M{Mm0$ [{?N -krNK ! G9! ҝ!|+2ܜbP) <hd>ì[_Ybgf<`jӵ`i-Z9 aNp;fR;T@˜)!b}T[6n#r4 {;\=K͡1(2he7 m.ո2h%~J kq4>rC躹pn Qv㖒KU!s teDWH/ A=8 eݗM eƟ–G|Ju|UTspiA pZW5WHv1c615ґqG0GPL3929K(409~[G/}A鎤SWK7gG~8>Tx)ŞǭBe3>)c\UB`lUM?;<QBρv  $*:< s!^5$(Eb2+_=~N VBĞ-^ n%Ȭ3bn m36QC&,zg?|[(Mj޻UGtS0 kc8KfmpʵsHk.3$3@\PIF?i$lЩcJbVa(]) q_Γ9{ĥ48I{XjεGʴkw ?m˜^)zR4toנ|^4:ԁVj5+#'[ _`qRuH -OI~ $>gОs"^P˃F Q)vqRѰ>>6Ԫ\ {1;$d-sF \OLgCK. 6џO),'"Ub̕rξmR}h\!P8_Džq,PY+qDba]ZZdrD;WWEVհtk!'xYSC0)aڌ*=au,ޟQReP$㮰\%j+zW P-6;vsQu#'C*Qx|bEp 3+:=KHwEE B=fqA(w͉$1K$ 3P 9.:g3ud}FZI=AdN6`?[~x|nN"qo$ԷSDm yw vY^j7ٶdҌ!`[Ͼ%}Ϧ,9njV$Sg'qj14^@|;lјyj&$X]?ܻ<9#2%X9TUGb;d;Ȇ'uu?{):mC)4dj_#jU‘vwݥ\=0h [>Qzn;(잕c !CxH#v89ÎpApʹ";cuPwgDF|tAdsڞ"xy\nD@klsWKx<3F |W[gѤM=b_AZ}R^SF yDw6)d#,8$ -M/Dl81 ֥` D;êU׆=eva's&~~'"+~ LBz` %1YJɭ\@\g\x.yWun䬩m8#Be30G߬7睫x/5hvˤ'ȧ P- t$_q.[§UK܀ΰ1TXť,0Spϼ%N(F_YmMj*+ru bA*#J|rG6>rv`z@W%P7OS¯QڠdaQ?crs|p~ˀ6H`9r搳<ߍ y;) UI/7L2Bi~)t#@R=?bVD'16-7VpјdIxjr"MkBu譤k^>U,x7ٲVM&Ɇ-> %Qn?n=7oc#3 6?Je0)>Hbf̖Oއhrq YwBe_߫!J&5fVMuFVPib--TDM;|Ӳs"XdtZaPo=K}pҢN*rsV]bWuO-ޱ^]f!ZT}g|P-ښ#l\'7Cu"C2|B"ѻEшB#b=~ևzuljhC teZ$]W|*RdO{Xҷ)flCը7ӤH|S P{nõݪyN6)b";qH&.iUKXW pݘ\ɟEH<OZ$9)rZI0$d,eЦ;|aEQ$nf0jݜV/ } l\/qVT7SFiUQё,F_12yG&+ ;Fh /{ԻHk\@ͷ*#1O5өr-ZE ̏¤9@09K|t~/CS{wg^|J;5u50,JnLI.LE'^V)S7 b&ݟDZɅ#vu8t ٟTU>IH+-!e)uq |A-Bp):E+}l@tWr&'=3IFUBb y{/eE@O%1+7N`RU1Sn7ka-PuX-}w:'5Ǭt‹\p ƩIY) 5GNסFz^^jd9^{2Xws2iqk sr 0";AՙQ=l3kr~ <]ZTh{cVOzo%+(P(('HMBe,-?&UY)G挊sd7V$a,R|*t{T D4+J3jg-\ iVw9ΆeAP_F qr >"ݮ 2VJ-(}0eĚx K& ^AYq-Zn̶4_;h[p0.eٕ:PNL?qs1"Z #9Q7`U G@"C>uvO-lkq.:)I_ΎVN wVrj;lUyيwōD,N}r-w*\ Z t#qb>lR5\#0B trG:FA_}ސM᣻K[ɗ0WXq✕q6]ż>*eE)X`rgTSB-7ڬ?<'&"oPf ~ʋ=)5lnbόЍA(;@ŒYQ$:XE8>T-9=]Q߷6}Bx fb-c x4yw -aͩ[ǻ7C)a֍bx{ RIK;QIǴH&_?F)T 9lJYzv-8ű%=E@`pcڷ3FH"mʢ5)cEv&I̴(ۺ(  B0l0o`sV tʟ:XȜg@2NhvӨ#zi@Q۠6gƒ:NDJQem(_4DvZ愢bũfw~՞\D*u)wfTvcPcx2 tOS=70`W |:L6O1{%.G9wZ^V hq]C NF^yF dI|Ԁ%ILjpgFܧP Sy[Qߎ2XGu)voA_(a.eRuN: 7%fC[IU#5b]Dw03Ctp7e8q[w-᝝>ɂ~iF,@܀@~òJNţ P1Mi']#-ȶ7g.Š1.%SWKerDi]=ӖNv"^Έ%>r3o0*yv8i2LwZQt a~dS qFs(1؀LH'؄6~: X"\{6>0YztO:ĢYꖐ@& @Ҭ$, .w7oXIқ+Qh+6Yyz#FOYC+bM__'/~w;?a.͠`[x=>N$DF2z)YA(ֻp~p1ow@\ w-)c)5af2#!~₠_F5!K>̪!WfH#=sML9SP^*)%Ki2K&oeu!~콑-A`qSLR:%jLp?>n {㙛;S_2ȥ.ڷ5;~ R y,jق(vIĵ3~0d/湙c=ԉ%._abjv} \[ `6DqgyS0/@$, nCڲS'H_tд~ ߰X+Y$'udJD ӱa$-E_YJ*KJs$b>YUƃ%Z7'c% Vj ?_SvN!ܠǛPFD #۱f8S8$<?3j_I9*~0In1 uD>xWŊ7tRBXvF9cam9lC9pQ[YhPDDv@lxPFo+M?/ͮ?v֡KP lg+#7L#*jP6܀Aٷ5%[pLEF-a.c~ޑ1j-,t^@0Duu,EW8-r!O /AyZnwnSm?uQۘgϢ+v0z<ۥI 7/.@>>q'r笶mzvHYs [k;T9;'ח /M\p#V4"9WpE!jY:P; x,Kawr)L±1Y["7؈'W8yi'5|6ML4-7Wțj=R [&m!(!FI,-kd GEsgŗME_ 7C#P`BD =*.wZYn9A=eiXp>Ҧ;҇P! if%+o>X~9zJ}CHt\><\>bv׬^KmDˬm+62,-'C9Ӳ H;o0ҽ;(g;@_/]{x:HSOZK;bC}V:[" Dxd2'퉥=耿(0e|PxnB 7Z=L*r<(FH@ŬMQ6q". r'32Tm{hY( p<ԧQ("H0o̪ߛEtL;J1M tLr72ɟ|_P %{ZCƈ4OR<1- ?_W& Pug\tfNQAaіǠwf%0Yyܽ\Snapdr.FYFe㻤:6 /jw1"J{]L[B8&xΗ6F_ܫM1r L Mm|rʝõo[zvBUqFY\E4Kŧ؈Sz3YZC|&ĚGpj JDJa+Ǻm$UD]tm5c'䝏9@"8cj#5A"AӬ0/׸Rfh~,tc^Bň: I5JrZvV/1Vye:_ҁ2Ifƙ QSXyZe!"_TC)c)k֍Jg86e6(TfCRHɇ=:SӸUg){khv?LJQ(N*yf 6\TtQȬ ,&<-H`s;p B.CSx'ݬ0b{h5;C?j$b@Q\7wȭe|mE JQd}uP<4 v*WFQ83ş+dƀi44GfDr :?a]/DE0aC÷,9s f femY$tZb5F,qrq]ͺf6^ؤm骸0"rZGX}*v5tEδ1l(K@I4G\ٙZ[^uYniQYK!.X2&\Z0myzYQ{ƇZԺb^?u ;=ՎO&16Ǧ6,o~oK"˃&23V'P P653tlk뎱O:fϚ!.-sƲAx]_ZgTmFIk :m9==ʦ3S8Hᤏ@| xM%"ںXCO7ú¸h"(׷=Xͫ5Bíw}ѻW3 ;SR2 3Oo]YA9ϿΤi#NSF&ì̓f Yq @ ţKeҿOcFv{Kgʓ$CD#MgfS>7#쉽jcNn#kpS\U(Zz`?NpBB=IYd?qw"s '2AH7Sd~CEk ü,& -kPĈgDXشytaQ:%ŕRWC~:n c`XbT.!WcGdƒ!n-n|4=- Yq3|N ]5ikWP7^<dtr(I_~([96ڟ@=]mCQ̌ v('Y&F2 "[̽C֔N2XZA̗[ l@}q?"Nͩ.r^ {+ְK]z"rBqΈC^8i8͵'jUH&4"\۲h4|$u#( VT EPuӁ!ma&+iV3"E".#wQwW-QvrA*yf(;aO_Xk߄>:9f}qߢHR#ضTo뭕15Ac۟ˋtveLIdVd>|T_srY) W&Kk3ۨoMr-@jLLvq$!$9B?yg <1@͙XPD+/a<3hdoN-[OHc]? )]:M`q!4}}"]#!eGp+DA$TˤQty1|)RV GWWwPbd-[-EqWo:)=G0Yɝ]$jI=u B!4۷4K90r)|~4rJIc~`vceR >5 㺎\׿'qgؙl`O f-97Yug^>|1$_odkkо+uFL/TYۉ`hZMgMdž|f;GUo-jf_(h e捴o~?t2V5͝l]*cH9o/MXD")(%HL;-xX:btoc6c.pΊݐ e b r|9l _$-@,Jew(8~j)hVbr(*RkiϽF Yy{@ОUMJYI=Ǻe7K ; c +C.%} &CP<=' Rde"`iN{(4J~ {;GO39{1 8llQ߁\nfbN5Ϳ/'bW)N[;vG0, G͚!ܼTPPJ}ّ':պ'w |>\: XC\g%j^̸L¶ N%y,@D͟s̽Hk}*^uWǡ>*-J&k  n<=%wSRy5=@N =g'61i6ɼI`'k }~&v2 $" TzW;!_5lG,B*@aQ#8ŧVlNv穠6,cj\%9 j٭IQVVgxH9ww`g:ќn w٥j>0h,U݇bN\uos "ESG P%ҷ6z\xYA} %XKcS,x%V;Rj_`?sJZ㰍>Z2,,&:Z/5'ó/99yŻ&R9߽5v&1+.:iz/2rSgE%~t,FQZN镰Ł,q}(!!$BյG?; aNHB٠M @e- )qK*MrT8[D B.exu[GK6Z6@:J}W Zj 8wd`r!D\ۏ噜G-EBdK2eZ eeYѮs^[]5" U_2[p[w‹5gj1#FE;E}`Z𚂪. i[.P{yob}'V-tW3WlTJqhS@xRs86?[O:aҿ}AL*HIZy1lDž̻vg${L4dPjJvX~N͔Y&4ƍʟGHڨ]&;]nIRq  FI ͚` o7ºx fmV&Lf M?bPH0BjF=^f^(qVh#{S:0~_9dMLTȟZPO/!98鷮-q&DFK~losT8K'Bizb&6CK7fdǘ!V/٧,ccnYݏքq,%PȥAycSV/6ex"+cO%`~N I_u:2@1 jX".El.ru3(aƺ"n}vai!͖lg:kbݺ\9J·H_>/V)u8pQGF`Qo@OUErt"Т5N/oE.}zjZOnd]A3N{"M2u?+}*R $w#if(ҹJ?@2? Pf曡o9E!OL<Jx&M$諆^#y%Šހ,{l#J|jϫs'#-6Qz876񔃌S_acG0?9w1n>9ҜףV*``[Auo E]8*eX+0>R ^rfrL| 9̟8TeZI%,6p"1Vu3uKm/qs U:bBEUi(o P-\KQQeUI@ ~[zJ:›@x'dDR5?:ڋĆp~P,׺o 2v}6 6nXެSC*ޓ!ՖfeE,مPtzExu20smF7o5\SeK}?kyIǝ@3zoO+g3AHi쵋Cz24S-窡JtI847AȢTH{ H#oqM{'&^&{̱rc_/mX, BkEvkJLN!Jpw<߀Z%9 o#pwF,MضmsK,\ HLH/s([ݣ0SgYSw tGderM1}8.PfXݔv$OnZ|Vf;7^p}'m1#xd%E[ajALJIl^[e:@G` HGޜ RfxY0i~0F\>+z Ђs:]أ:P]A#zkktpZ41!Td5XZf'$ GpđpOn}DCv)q9~/ٽ}82m! ´BUz%ec#>ViӒׄ-O \FˣG=~l! n3X>mz&Ӧ_H(m8+FQ'᫜ro1pﺉyK:bgyg#}p/p0+HúCa$>U cL% _`ߞ<" v!g}D3DCͰ9ܷS)o74K`7[2$prw^\_]@OrW)] )`ɉu\d9 ו-(j:9r_^OE]5GCšv. \*Lv۲AΛ\(SQ9b8a@._yBkTB<8.ܾŵ?r7_Κ#^)74`1YMWռF: N_t֬>==jW^yS!#uc8SzlY9`G+_*vw{ =\V>ME$:b H "UԽ6 l+3 LYR\O>7Yg< 0<ɛV0]:j'5v-jCbjzж7`lxPGaUo]9f2} !}JGuK[&7M Vc(*81,S&E>OK4mT^v(=.n.,7[4J#8R#')_JJ0@T;sk 2TE3γ%2ر3+"%& $7Iqh40.t]\z> ?322zq}2xie]5@0\YqzA$KP-=&a_ѸiD3ܩ6&b9p*l_a)Vi92%hoJ0r:.cˣ;Va~[ pޖ@.%^0XCU'NyT#e1r:W Z* ܅^us&Xhx#' e;\kC;AJKn*i p:/ @:I'ILZ! ܙpD((JîCZY.hꇱue]4] j%-Fؔ'\Ꮭ6 q bmӡ n;Y$_C[8*Pz+uRUI쫻1I &ij3)BX%stmbIUoǸv\%e䌁'թk|;3k5R9Io'CƲ-[vE)j)U5.]gW0͒r]RUİ*B*0;2!)d>J;PUDV{۴) _sk;f+dN"#C `qZ:ߡξan:Wބ| bo]\an1Y0)Δ<}lb4Ӳu+\LAԆmak&6T"L3$RPd]&&/v8RȕD )7'xS3*A '0Jt_$BIa)=. \.w3vj`Y5&tyaAq%ty3]s>Pү%삞5&N(O&5,֍HXGT"}G{Tء?_UQ\8(+ +?H 7<VL'[Q$iŜҞJ^ J[g]*mύnoQK& wmCx1.?SFZG݇<=i^Mm8"&X$?,!ͻwu\,Ev!5gox.'ު_42}HoμhL=@؄ ƾxfM`p8\(;SYZ<, MՁ` i?#5dҪ^G[. @X2~:\mH9GI.GZ,^O.N?AE/+ߓsX@s50ܪ&}4sŁwˬz5?V}yE`u&"@A&W㾭7Z(5jq\iR SXnngLGt#"14>oذ e@J됰"!Ӛ:ɨ'ݵ8Gqb5ť50]x޻5ߌ׶c,Aa8BUˌJ֖_2ª0oT`7**&9nOq5۵w ]MM H l{7ѯEkɏkwmtLp尝ݺ1U@Ddr_JWK{cF`-9{~;.78}zQV8$/UGa+>(|tӮ.lỳ)րgRk{~! ?bqo~^(%?AZ>NĀJ1,up悢*3S4¶m7@ Q(lc?QnVg.psp+@-d*G.)=:3É7Uv&rc8c`" ؀Qz@t%hBls'kGFtQdzBPٚi6ɈG=Tga#h1oJx QYJgOcNLfZܙo9Y9;O^:/k_͹gR>Tް M Ij?Iߞ%[oI؀\ yYv,j=۫Q "YjA^uJ3~)el rWM<{Ƞ UN,̨e'ĭB0uqApxz$>=x ZcI8Ӳ7<3y_j TQ$5"u*aڣPY=,F<;y;nS̙L؂ʜGD-eqAF^%r׭~,t?_uR.qy3 xʶM^VVT:WWJ@CmJ+S8ZuhCA?h𿿆__ U+Ce(4dm丿1qOtrc(bѮ4XO$^}9ӚY9Le7€7~O*2 D#٠ti޼\@ceMzEU:V0v04ELӿn0<,3̧ LA"w2# F%M>9/ã'oz|;Q{ihI \QSqMYJw.כWo=^Μ!ukO `Y0uћ pPdNd~V@D؇BЈL3gX_U7#;& Tv>laJFuK[>Os (@)$/: V}zJf> 76ok&t-.zF}B4-%t9vzàO;+Ϛ0qQ !B0Ώ6iEku]YKw` M]nЗxB [BZ9TE WC|~r"{Uݳh]SZ[T!sJa7CJ 4{q&Yp suD5נMԙ>bgsE]$B.R "mb? ;Ɋn[;oueи7\r* M҈wSn Y 77⹵:Di9\ 6A;Z+ :D~1lAeem!.tiF=ܵZ# yR_OjgoM*хLrx>ܡxq;ָek{iiiRK=n&,tv_ Juŵ(pKlE.98اmK\ivrd*0虴am:!Y`JuP8ܞ“'\G!r 6&e1~҃H[|7CPʲ2eN0:@kq/PN}nB˹)B~H`r%B͡t=/ra/@|<[^|fy@m>OOkĐ@X+=M(`D9sWJA?e#]wA$#4+D{C|åΑY1}’7ZrԝͿK< L_1TzwWhECfHZ-:PLILƨ{hi+̫fpj Z7pt-=R^l0[br3Ƥ/Ps<{B^ave&qj17u;M1i0v".zqUݹ2 |Lt'A"P#\-9>jokS%_&;u"c+X(\IkrV?86r3X)6 Y{Gw/e| p~8R %ZV)]X@¸_T0 1Y-yxwF΀EӀ)ac.=S, KEVW~Ui>Kb)zK33/}b|_?gKA*\.2,p:) z0*dU# m~'BˈӔ"a7F"bZ}D",Z<i%WROIaoL4{9b/Go6߲ 2INFbvg@l$ڲ6Sᡂwe՛wIe2]ydPXrf}R #+rͅgrpU!Q1[h ֭}\kCdQVs'+-Vd'-W頞ku]"Pw qU;Sb[v} CʩG}5||xYvNLS#x |D3 htׄ umkKQh*gI(YQ6oK>b[f1-yrrCSTRc5CT5Yگ/(+%{ PiXM\%Z7ǔM=l#>A˼-g~%7|=#i_M.)~͛CdG-VAStG)sڼ_ׇ|#43V!Y*~U; @k =*#.xK0gD[,tt aXe 8vA C-hc eצW>9 W^1^A5w/hy0:`@ЫU=G#TԻ*7kNh6TBS/"ɇ0}&NAj*ܒxȡhXJ?ctXQϙi"8j|qgjbvᐢJ?CaAV)'1"(C:=+s(W7#1cCFQ/-7R Trdvz/FT13"%$gv˞j45EN69qo6)@YJ+fe&"@(9ʺE<_n~uJO?UZKͩPj_BMȃ]zkˍ4̣=eOEǣJ20'D f>WۄH8~aD05W6c)O^hw*}79 ^?5j"{;}=Tim=E.+.}. tڦʓ֕|VXU-!VվBDvb/5o W}~ 3.,LHh~*&)J2kvV+whH~%MM)S"[o" TcԸmYzt;$¾5B:Cn~Hu!^ PKJ֮dZ-1^Lp3 0 }BAx_Efh"6zt\}_?3L5)/j.DbM,qr׾.6:/8ݠJ怑%7lujdRL"cᱠ P2G ww Ca afx˼'K;BF^^C_߼,0%^_ *c@dO=i0J|-aJR%efn1`!T?5.DE`;IP$4O7Whh`l;mnh9#ӘLTQ3 T?'hrU%tlP:yKϵ#pIܗ^.~}_Y'E S-Q8je_DrhrNʈsFEژ$=n.}Ҙ +r^P >B[E)HnĨkUZyK]uP7T4ZW@i^﵊3NѸV>f\H`@$﷨yUDPLK>wQKfǾ_'\25j%\2f15|KWuk\*jmk)0@3ӄ0DDc@QX2Fv9aceDWtlz(`)ɮ+ +Wd03drpbN'GGJ_%' =Vy hx0huȆ`FFc\i"y„r2w>F%e9SЧ4G, AK,zW &BD#eK">E1Ž3ЯٙMA#;_!%'qgGKE.-^Wu7En_4h6lfH'uR;%sa1F<THv;=oF\9^9TNIpMZ hPkv#$"i%0K ' ;bO|]MeɄ*eA!CRG$`t)W䙁xd(' ȿOhf;?$ΗVcHv?@ 0@me%E|? Pҹ?.氣8&K[tGn YL ajFne3@s1@&E\L̇C&Tnfj `F{hj)n.,d&űX]$"K3 Mu]12!ZkJO0AsrռO8Uݾɱ8A2>!Пw脎),kLM)RLšg-BFqVz _ki?~gm)ZwP3FKS'LS 4\s1n,zh,=uck+ʸ6oZ $DK8tHRg7]D/]4vKL礔pJX_jv@b-BT7c#:/AC, &";98VzE. s,l3Luв9FJOƆkNFiP}a~n^j;lʰu);T W*+#N.Yylk@ǜ$ټ^cҘ9fTD`y3eUV]ٽKşc4Tb cca' Cja||XŹ+|2')3LB "tO o3'l@i+n!*PyjK%b&[)mbA 6ٰrnD[<ȳ(/%YS.//r V"݃^p.v_lUp#=;u=z^c8.]1g!Wyxe]݉# o@ nm\^辙T<3}mP mZH]ufΝVi] b/TW a(⾇=a^vH΀YЅopsJ{a~tNhݕ Ggϥv9Rr1C ԾkSHyk664|]]JH!-$)}4b9x ($AC?[?@Y%}8GGYrZ ,c?%b0d!(_"'T) [ҐĔR`~ !D@˭{&dT׌WSؼT^¨b.8{ P(uc-ߙle3Cc3Y!}+X-F8cN)l'=7FuJ1j^H-sR0}HM8D]FqzST~Z o)'ˍu% 'pKNH#]U5<ӄsN7bx|/7]l+a`q?#cne@ [%wo%1fHIp #f15rEfhL!WWC!pL+u1I|x,tM~bN_N9l #7}*)~XEd4_ܘ,F Hl]sҗ/YA?SШ̿Zw'NBB:n8Dމ0d6+vp/!6y7@<&v Q0K0Fd̰)U$Q*.v`~T$;d6_ %*&Ñ@欛v)|/lsYF"qG?2=8')zXg3U)P:EIj :*l7cmW׷@1d3L*# }/Du 5VPj5Y1;`@U1P~zCZ3󀽫D$5OZJKX}uNL{!yB7j `dIA*Կ[kK.E0|dZ匿"RcN77CKeܥd12Fe… BP1= ;yzӄN'.ؘn^DQLCha]K-Tde8tb.gIespHcdbMJxTYh7fn2e.#ڜxǖcq\KvCNWp g8VXfA]( FxW1ʭbMtRöXR6#;n'}z.o=iHX&D辢 8aA"ѓ¬aㅗQ89#/rԕ`§U6ByY73h)*%[oCg‘N*@VΤ&f@^EpvgKfޔUDO|=+]Z{J9WXeUqlj:yC>Sі8팘حk4]P-^&d~S /^hX=0` XuhrQؼ/w 0`Dh8 SC6iiqΗΖL1 m?]gL[BR씪F=Qį4e4"R*|(%|b (KF%M.~zj̼e_j^͗=֜6]%qEߨA/1F٨6F}gy^Qk-ν<6 q33w%b#b 2Y3>;i<*uTC(JZK UuF FBtێ@"D]֒ڲFuM6 o,>OiY%/[q\\)ž+X69j{M{a,4n ųOR=3a{+guT\74vta[0 s%'M Y܋ 7V $iPAA*Bo$y1<HcO1؋ aQM&Omrlo Y r[.O(Ֆ]$ID#`^WʟR :ʜ dOP T.*uao9…}ơFe1{<UnrRЙr R]*]t2VQ w7@XwO#Wj&vɵo~jJ)m0( KSpkv5DneV[QsMvwzCɳއաғLPf͇@RARIQwF[kY9޺L`g.lsTI6|`EW% ?t[l2U1gĴ-Ga7WVL~>drk2;ȰF#  ?$,¾Iªʪ~4 j`WD;K]1`HԖݪ.梺FԱ9oGՃ_H}Q/6HiH"x.VR6C@<:RdZW܁ߣct J?0ތז@5"N@5}|pprr鋺J0kon^JRT猀ȭ[BpM^,T짳M96ww0Y^p= zAvw[$L!`4KI^fbHiRCF=IYÝɽǟ#uU%,ĆjB-ۈmfəzGAO}ؘb=v@bG J'kVL4c`c?{oШ֪Lv Z6^:&9ܳ7,g3@y356ae9SB"\alIFv [Vv3#jUKO& .{vdY4 Zkas(ħA(iIt{tope*F/ #X]tb#NN5II[iǴ ~3P_u+A#[VOOHqeIUo'ӮMaN>mAaY¼oK+7Y0"KmQCpͫt?tr)ޜnҭd؎%J'a捳!bhXJ}7yPXI-:|~VqrtuIJ_G HZwH9.IO/0JیX{\'=H=ض )B?D&%vJL9gfn,| u1hݘњ@"tݑ%IXZ˜N::F"_>nȕ5P&ff䱩*L B9 ݇Io[M#]LsGKst22YPyO;˩6w^юWAB,py\/O +HJch^J`VrKC>Ɠ\Xr'eцW*~J>I{M/:KQ‚ߨlH$|lD^JvEwiZCHK]I \_gmD&M`Vs OZ! -z᜙c#}3D߂:9ܫk1B,Gخ~tuxSBpkpZuIeg厩k܃Sjqo by_Ya)*-hN e.ydXySC!;~RevZ``7ISX`CFGM=L@]Щjh35׉^y}.ߵMz&H`:,3t~أ-j!aL5g&< `8jljqjKI->gU86+a0s/ReDK z# \B>U#C DͰH#eNSl, 1`{j)fR0 6HM$7 y;31N:j;0 %E*.^UoL#"pcx/$U\ tdYqz"'}.bR1ڊ{pdbƘ&M-̇ 'i,5\IP]J.=hp 9jyj5v $'9dr_vQYO~aGl[gݧfW !TYybXi$ X@b9d_k欽f'2/>N~S sS)?r/|]CeAd33ǃUrǥCمLl iEXH5,h$4wÌ~dA{.ӺAf^mӱuJ`) Ig٬ˮ}doGPSݘ\:b֬A= ";F! l֕;&2ណ](Wq="g8=X; iDUYK -$ݼZ [ :Z ݀J6oA]@ǯO/3MAe,h;; @IR݅|43 2>k)I.qT0%_.ԾX@[*d18nLn 5{ߔޕ /J{P[Y3:2Nl&Y ~vDBP\RO}z%|_Y +œj3< ultaXqTv:Diꐇ=(H48I.sĿRq^͇ 1 T.p9VڲHy挣HV8#"&kI;p^> &fyQT~U: LIeԶv&Cc^ޖOF겇*h ùXկ%vӖgvC%]uN8 JՌ8\)&]"٬NYV\%eH >[(-Qu]s~6P|Xdt?yƊ'a|+s{85ǻ'uv Uס%^Zv[(kzqm\P'tU}ґ5)LArgsz!}fـ Β5mxƶi>:xw,O㈍w;bmGp 3M+۠I~&sQхjumISjLAK?lC/lwj̏T`{ةT{1݋ۨGX . cU>#;✙WH"Z{zPIUp.4[zU{ .7 ]> | v{96D2hA"@Ž~I"VjAVsdYh Bf Ķ,2Έ\͡вآ6aע($o_"4j7~!V a4WScR5KA.{U!s8֖I.j!ڰhJ\Q&vNMN|jEVP0ʢ(0"ЫC' ELV$% /+xqZ|W,e߹àtDLPhsq%5i0p xYt;dF6|W|T'Y'1>#g5\J<::My(.-ϭLJ V4Tjƛ%Y7 "*aZϣ[Ɗ]_bR)A5J(ߔ#MέݕS32i偎FDġR$w*7K͕8hWx=,4X:E|JH~w(/uY?mW 7G>(! '+bZZU&7c|s ,M O() m Pqz{%UlI$6IN-R)QbUV%=(P{U6֍? C-`OkYa35 p9z̓C6@X醛Csw Wpaḙ;hrmD\ZÇYk'OwnS>N]pJ'{+(eOmMsUCJf)vT>@\:* @h)m(u`ו3 Q[Bf)+L|y-ohrC,H>C BFbFM3yg^`ltc#2NӝPbdiAZuyeJWvc $^>"׶+(NF_no}.8R Nxvy)Ÿo:X%CǐUB/^?Zq"h$;RW,PXm2}G%dZxz 58vGQBhN&]9?AM{AY cCE,%,ۑ-&.h| \G?Ű7XIdjky>0ZfP bV<@I2݇J?W,!M:CÁsE}|_:bR)aKt8ExbjeφU`(Th,Tw9 N.AʥN0lwBs/Еtgv{L9嘰pdlfKNɬV8J@5R\_ >ɏԔ%mǣvD;j=N$[zRh.Ӆbf!٢S^<ڋҒ_[$dwsf>c|2伴_eIC@ڣx bI!B~< x$, l#*NgEt_seuUUN;x?ټpx#mE4ݧp㋊T2*z'gF: x"e<؂NfT`\Zp*"./B'k3s >ehio,&eLTa1Ykp5ҿ7 ̨ 9D>T#FUQRFe>V> ^=FP.)XK=) G ]_E4BxĔ{MPlB:gҫ+emy. |*GJ.6 }J@ m`QA?9@ߧ䮴V$*$sn*>cW0ruR8w\cA洫|"Zm.||*~,;8㈳Oi e*vc8FS D $VvA}]^W:t!Ҹ)&1MM8S ȅ2Չl)jx]Ӛ5Ϫu )YnmmUX 1bk\Uv蛖z1VtE|}j; X$ͼ9?^ D3.}?)bni"6C ղZ.laze%~?sda^7L{Lʋ0iC0h932w~ad`R!O/""JO90ΆW.2ex;{dY\؍;joYjn(L* m 89R\+,eL=la:mRd?|c|՝H/}*!^˛%h)J9 Vϐ<<$*Y8 5$zvdg յPgc8Jw}b.5@[F\[PEV0/9SЍä!#(0kzzM%01~I|9َ%fۈi#U"cro0D G xir%'jްٷp[P\\2"/ bjk_ra"w儡Y-51À+`K?) »rξﵣqV޽V9s*ĐVc뱝լ#.E$&  'A-ADA4b>Bf)(?Fm/gL " ̏#SQXU@)WA-XW{;ʣtbulI]c Z-$pmJ뎬l: t̀e67:oqn~qȈlJ7w{>e&ǂ+7[e2%$h ;JvRIj9EhORZDl98CJ(^1m=`cDrn ^HIǭ¢Z"R Xti=dĦ呼OnAig3)c(K}fԷ1?c/lD@V9Reүwft&'c:2aBHUJHV5.d |Jlhz嵿$0U|M̊@yb_Pr=\h9kl۠+'CyPϞ)I!f}nά_K~PǗ s)ռ-8 眛(3t<` P$Ub1/I [lg뿁eŪBA ?A,bj+߻K7.YSEAф8S4vyG\4{@c>6r.{{bj=c} B  tXɬ:8Fܕ) ^`1~W`zvOE-.''gx:ƤdgqG8-]+=3J$(A3%CA@\L$ɽuaL-{ 3 $o=3Z* ~kh]\d{s2ܯIlA~VGpezTb:%K }?)Y,MspnT:6`J|` 9#HmCQ̀#wń;y/F"97~tEp0:"74W_fsMmE"26ܾaBHG"{]1(!]70 m&AU~;/ar4{g[訿L@h2Yh2Y+O2ho!Q)dj,=Ate|Ej7jF5!8͘`skBTk #d\  >[Ǘ/U[#|(Gޒai!RP67d7o)+ԃ73Ƒq,s,pDU=$O* {C bhh 愑19 M!A|ã c¡H }{|O"}SY3QH+8^)v mσ'\W@|!&*ԝTn 5[۲(UGԡvҦ'j~ qJT|m2_D˺ak%žHDž XAl5Cu7M%v[*mh8lV=TIVB e|6=-`H9۩*nbhQGѹ}4ZBXẃK!݃ ˛o<'DKc7g\-ScEF9G(M:gV)cjȺG9t^W勹g12!l 'ayG[sh+LGLdzo)3CuЀgԲr KāDIٔz ݶ $H2OZ\k)h kb>D}3,ɨ|yJMpb$p)30i5Bt9{k@ jMMW HyiahH0pv9 iA/c(dMO?!8=9lHq&O,Ÿiy)%F~$L0y;qx(ŊT<{tǁoB1UݦOSB9Iz֙M]@KT}b.&iF KzŇbzxזAK2W~ZozܸLkd^vOL0W7_yC[嬥,8=0gmҿEY9/XT0KCe/vrS /"mIXL໱, #׋{1Ɖ ܡbH_!~pHH={['S Hг{0"O.{sep+z!+ Dյ0*\OPU6+ۢ%ȆN~RcgkKhE{ɭjc_B*| "/یLf-)N6J[/C5ݶ+bu|lƵߊJk<-ach#\6DϪ?9Kv/5?T>ʛO&|ݭi.|E.VVo3Z ~v3lʂViI6:# a' nXD\7}5Wx9b꛰(>:ցdN5BwtdI)E/9JAQ]nQR)KO]:31Zf@߇ _7yh&)@ʠr#I' P8LNa-ohkVRMd;.$|,([uYQu# ?bG 9,*@D=>=p>1hH-I#:|Vc\bEDx*_#m$TSP3 j`O^Fj0Tƶr5 ||\ 3+V9 Lb.YPhw߫ہdSo!``+:>D =Ɲ{`7 6Di>aADCs wW vrϮ[fp~*^-0KSM:WRD2kuy,%[ij@;/1d` `4aI U)bgSOZ9Q^$*:z w$v7NR.~*bg qv`hh׺–T2 txW;.izsF"Y趔ʷbf{ +#euE8|!(,Yh)megJ# *8d9M[JKFy FT:`V7VWvy$.Dל9xJ_5JˢیKm/EJd-@@8YNFɾylhsA".?ePj4fT#&fv\!q_-pSA`ĔpMЉ{yt6j<~oT wWy-=SQ=4Re1gmhzi7qkcpW HO` Oy(5ϓEUxOU.y2>5tFFSm;&.~Ԡ"~K/ wMm58gګİ[X;%+a$xr(UW? +"Q9 0=-,F &i]a_udK]4f !ZMwQjDڃWiAa3evhI f6H}xBeV&;T\[%͠F93 `~}E[ '?vO"$s{2r4cՐUAmZ}?bd\| g.2;u qUVv'ǵh]?R. ZG+&\F})zWF$^1];R5GC%9Ȏlp$KNa#_sτSH(U& 8?_dxDTVũ32wz V, #POӠ^iP p>DhBdȾD<0eb۽+ek-Ajg,@X-Z“^"c:+uST6V+C36 CYvdh{YCrt|-33T1P =f AMpf,6l*w9}h3ظRlyAv븘% YhuD6P[pYHf$ľfLn<(QZX}hAJ ̌)(1k{/[jaű&:*oذ2S >[cg=Wq8~mlO E`R,=&p3W$NCvZ\_A/iUQ!S(4V %1bY<AiWX=[cwU(B7(&xc,4`Pj|%=0vHerDNŋ꩒ N}O8<ۮ[Ua{7o`ɠԁ4EvsI_ $!%jLTH!vl PV |zm{ cqPJ%e7f6)r}ohnű7V65w& XHȮ>VY=z x1RD"nocSCjd~X&_kF=2:5r2J0iS =‡g]Zw2HZAz5[g8H(9jיu!uwQ%+Wd|?&$%Z%>xhX3|uGz:h3 ԝpͻw; /as)`N:>L<:f/I!];QmOs Z{]i"ic̠j aBa9d<{&m(JĩmbS); 313<3a{xKikק!V}W?C¹h}Dyʼn_S +0|m|{ӺiL HsQb ؋w22@=J G`lA |<̘t]fȶH^Q}Mv¡byfBaW\pV䣻6z=T˛}yPGkS 5=sFT}zC80^6jaz5矔R}+T1}g ǫ 3yv{6?m]ڱmOi9)m-6l\>{m]joIp_m%h_AODB+d>/.+N;^phV's=Iыd+܎B$R+vՇ+GR붡2QPHIJz;y,L8 ONf +6&z#TG\, q gFX4,+)7R2{_J@A"93..Դ5:]=Q؟1r.ot5ga#,:K (6,w(Gى_gqS(SMU|9ABC9X\5SLasWhn6&ph0zƐ;nHZ3q6L*>b|3Q1qi5/9;=Ǘu)=3viG*ŔQŐN`YQ6gKuоiq5Tuy T-`_:,pCз@QߗG[`sqQ"LxXۼQzbKЋf8ZX V[]pFyQuc0R{܋b8j-a [sзY;GvX>;wЅ o,'Ch8QjL\c=!bu2·Lކ쪏".mCݿ^*rkRJg`1STkX_TҦe"7_p.r*:F A']Fd @LHn(!$?3 W|\DUf~1NZfGRxP&7J:Y~CdH'c sQn}C™xe,)߷оdZdgpQ9lqS)83zO\8m,6¥wic20[>ZE5Ëy(Afԝ\"at,Iu"Qes2(]H,Nz]Xbf;]L>5`7™C-3p2g+?W\/ 2ۑ$/uNC7Gz@nPG % VZ~ah=Ym~e"zb˖Gn6݌%eNAuͥ E QGWmvUD' qեIc#!b x60,5Az0_`54_fD¬3{&ʪٹ;sdoU*pxtkROɣ(RUe)ax* gPG$32n-lӞEA ۵/qCDƿ.Ęz=]Ҩ3R:&>H .8K&x{g,-Jco \\}]n^mdqm\A.ӓs2p}') byEh4$fvXl}_\T<2J.\_;OO_Kf@{81K%v(^o{[fw='dj%=~w=tw%Z,U61U }N+uȤJ[AF6-2RhLsFJ4)jWBRRO@j?b #n,)E\Y3soST'%dD 15Eo#\? {$4 ۡ<6 !U"'Q0QDN2'}z$T$@eFUL\,VZ':RH_)V>W^4$f0!' iqiR(̫Ň{ dk\h@I!<r0~g\Bj8o`X8 8. D=?4ۃGåڌ̀&:lא #B]dWRU7~fWIGfi %5["ZxSOS4 ݋?]E/iGp@BtY`9o8P8ZJhTۭ;62QZf82BQ:5fTuXYpՊ8_^՗@ m=+AoNX|`qlҊusO7֍œ'j*{ѩ.6g Oܧk0sS45q3-m ڶ"$֐1.o&)1Q^\ߕ#HSaB>]BcZ/hӦ~§NB,%Q t 47XLݴv;3;fWWcxѥSQDfm㺨q} )~Q'nĪ"hTeHfl\ʩj칟Njc)D P&SF W&uک{q/{eҡ.r! J=S ,ɓ=5Hr^3J6%4lW튁Ju,GF球H+1@-yѱV$f'Ki7?뵥˴lUf(6J]t}v\,TͤBwnnR5V;.X>Vw(WvY#w>|hٛ;KÐ?'lOCI_;ZdN5(u@#Y i-qK"*9{tbq\=m2Mg6 m=+<* *CJH- S@p$=4g%Ʒ1X |hӇ]:ȃdԆ")H]].zI<̿)fio} V]KRBk}?2KR{)o.ɼ*m-M!aRO;l-ݬłQ;)^','G+ !Nn'R / `lвoNScָ0ҧGjwy|Sg Vn4x q]aN%H<;UBSq @vYDFF(lؓ'ģ,]rAebI@K>jDn=$Ci MٳdX;-E`"0y`2?6jkRӏ=F_x^^]?' `f'Q2P`KYw {MrxN7&z7# oʭ*f)N 1}+>85B{!FZr*[ d9ojx 7{L=kn+-^7cà8ާz=* vX=9ove ʨ)rl_<OB_[5VQJt}lqH7A` ;Ĉ4Y]l9ݳmn^8)\h\xeֻ/`9e|3;p|u&IJhK>yd|}‚*fG'N~O.>P(wΉ52s8WX`!5+&{V>ЅIgVUa%amJh3Uja=a {XZϨ)&1i{$aБȿe-WvDp+8`MJ&=ii7p( F<&sSrK\g/IԽϠ1 ]\=h9[D5 /)YX d 550[k 2oJ*\>&A{i?KL˜s:ثĹ5fЄ."w%(x9Q%nIxvi{:QP!]o]]M`Ybc(н3[C4Bb+-Ǣd#/M,WWbxMk'K0R\t{[A9=_8ge*;2=G{3#OuuLl!zST3Wͺ{s=[vWb­KN8qϽJ)`= `R·k(\NϿYߣm6zpq/D&K7p6},oΉy=Rgq]  ]s1kdz79CpdA3N|W룺m$d[ZV(y4f%29+x"ШS tRN?9dI#ĮU8Jϟ:]9fؔv$ٿNylx}O4wb{}r[;D&ߵh|$K?.W(@4CȰe 5Qs^sn2t ,DSҐ 7PN3BɷHw)A7;&;gW){]k9[}Mգ"R'{ėH<9^ vty]({r|,jp?.q^#XbM`mE 2C͆яܢX:<~)3@VAkhfXxDRRÂ]Y5\G0}E>P L 3Wh]QG@Kܗ<^\ LprojCompatibleVersion 123 LprojLocale ???? LprojRevisionLevel 1 LprojVersion 123 focuswriter-1.4.5/resources/sounds/000077500000000000000000000000001231434177300174275ustar00rootroot00000000000000focuswriter-1.4.5/resources/sounds/keyany.wav000066400000000000000000001347541231434177300214640ustar00rootroot00000000000000RIFFWAVEfmt Ddata  99*+          yel|)I:}t *?{fca^d__+?_W^`] fAx(%IrtLAqu?R"!2F9Tzqigsz7Y|LopwVMEIvy<'cZ"qHA!F9B.RHT2hE4)  llz}xg88;(x{/Q9"1!i^Vqt6~z`WA.~/*d">Nx } N fJl HQ zwQn)K3vz$K$s V8&2QDbxXP l?twU|8 \lF <\W)oV`[U{aD5  H ~]Vuu6M".@1kpYA1/ #6M(@ NZSbU! _]Z<&1:g\?={ Zu^X%r) i!#:k"/=*yA-Ap#WOkh5M  l)x'[yVwX@_+Czr% }>W$3sVb2F"9y|0BE+yRTIYQRI^ }Mx{#]g3KjndDQ]y .c=)) )wONL<*%:&bcvb=BsQ$:QE ,{EQq5M)8KTP@<qZU L8NBgc+SH!e#B1yNC!l2gT?X:Ru<1%F=n ;S!F;5>*q 9P8ipv`D^X|_'C1G:7ex wT`Y0nUm -Xz2E35k0v+2d!yO3rk<>+KK=?,8VO^!NDi*1zJ8"aaqtgf\kGNFRGNA u|gBTXuK i|jDbmrYmQHb#@gE=+3VnPhgvb,iigRGvx93Hal@2DbXfQo h1XO/C&!sH:.e$}L }D#.JL u7ljTRMO0.SSeg31 55m9m9G F qq..hhKIii\\''},},==++/-WY''ۍ=;jjUT**""UVqp9744ceee~"{"-,gfXYI I مpon n  wxnn ZZyx>@*($%xwlk gg  MMwwRR>bW U / ~)He ye ]v0  # nN?l  *~v>W Fl =oY~XHq` Wyu3$Qv3 k m | G dy0$pW?B)%  GO>lj|g } @< 8 %X!U3x2g`.R,,"e:I   T 0X|w3 & a |x/:bL[ tZ0c_KqW?.q#  { U #^2<sC3vTr W Q:qX=sv+]Xb* >} DxP?lO $;ku{H8R>) QRB?//))10\]uuKJ=? II\\@@edPO:7  RP{|noOO^]^]""uu=><=87kk}};; ((mmBBbaST{yih  ''de>?hi/.--b`"!ba||WWYW))KN" WVee./ywhi2202yxFCONRRbbhe*,   qr`_67QPSSa_&)dc#!FGyyML #!]_%%'(::'*CB ~//66<;SQ:9|}zz####@?ce()64wwZ[WYmn  vvaa(&!!?@! 23DC{{}{MNkk  KKMKCEB@XV'&RSrr[\#"  HH_^KL56)'JKKJ%%::st,-JI45kj  =;yyEFGG,.353124ML}{op01+*fga_VV  ==45sscdkl!$[\JH,+felk55llWW>>yx67CCklhg33?@$#JJ35^\ef  !!LL]]xwVWGHqr &&;94411$#\^hh'&,,@A&${|edqplj./:9**~}*,:9us[Z550/hiHGceJItsqqGGyxjj  rrHFmocb NMHG34;;_]77kjedJJon}|lj{z')45##kkJLYZ_^``  qr(*EE~~zy]^cc  hhki.0  01sqyyihIHML12('mlKK[[fg" !!srllig((ZYjlRPpohhwwgiNM $#$%IH[ZceCCEF-.FFcbXYCD=?JJywVW65MNbaRROP..ONCB@Bjj/0baOM AB/-UT^` ad99=;89cbTTLJuvkjNKUVll~~cdsrttQSLKvtklKJ:;JJklqt?=``03''`_GI++DC|{a`cchh  --xvXY21kk9:ut\ZllA@jj}}da<<VTWYCBED;;wv77eeww44&&rrdexu[[ee  JI  AA??""OO:;dd}}EC^`UUSQKKYXwy=<qs^^RPttGH" klww/.2588HH1/ CD&#zzwv1/ff~~JIDCRQXYaa__A?01&(55hf::  &&$$98 }{vvdb-+`_[[~~rr^^LODCSQkjrrzz55@Aii~}^`utYXvvbcONXX@@\[vwwwLL76{{12^]**tt[\op~}UV55utDDqr!sq;=;;78cc  VU  /.ef%%! hilkkn.021CBwx~vw;8RS#$ii./dd22DD__MLhiYWKL01[Zy{NLOO  tuML<?FGRSJLOO13  IJWX/-0/tu''GH|z}~dbmlhiUV*)klQOzxyy75vvjihgmn PP;9@BghaaLLUTRS$"DEdb}~~~  ut88;;,+rs'&@?;;RS)')(oputON|{ONMK42XY  hj((+,(&/1&%  vwehMN..03STBByw]^ ZZ_^<<fe*+vu`_NOYY!!)*?>llKM79om((Z[+*vuuvgh78&$}}NMYZ67~~UTRR@@'%~&&baOP  SQ&'('tt((-,34ccwy  ')JI!*)   eecd2//0~II@>yy$$43"!|}++$'  ?@45FE  xw  xxuuCBON'&KJ-,ZY  \]65IJoo''})(02]^$%!  44;;    EE%#%&    34  ,-     *+ LM>>5688!!  ::67          64      "#"  54//34FG   --/0$#:7:;  !!    "!;; !        &%  ))!      <=''/0  ,,||.-<<tuqq!JKrr77deTS^^gf_^fhTT33VX30A@xzkm;=ednoQQ((<<13ZY_`88JHjjqpab:945qq  IHwxsr@@``#""#iiDE"!11KKdert VV'%bc  hgGF21ZYOPuubd! 76*,FH==^]jhFF@@ef  20==  vv||//SS:9 dc116611WW@@{{tuCEOMTUVV$"IHkl;:tt*){{  C@,-11`_zyacnm-/rrz{)*!!UWOPz{usKIsuXVsq@Appzzeerq66TV10bcNM&&MM')>? oqlj=?%&uv-- FELJ  ~  hgMOSQ [[sr[]ljLM@> ggpo.1@@{{yw<<MMDFVSEEVW;>A@&'CD== # 63 jk||^\yzuuUVonDD(*^^ /0UU{}vrUVWW\^ ]^uva`rsss21lk ;;'(6699VWef}~^]PQz{CE;=97??A@YXQQ[[uu-,vv >>99egWVlkqp|{rqii56yyif9:+*01yyiiJL*(UVLKyz<;z|ww  #!XY&(`auwttUV:< || ""?<..^`VWA@~kl55mkSV-/FEJLPP^_23<>ut}}?>~}!!-.QOiiA@?>!yx13hh{{yzjkHJPPZZba^]-++,ts??baKKWVy{67cb^^ba43XX yyNLtsstmkXWfha^ *-MKZYRS87LKkj>@xx \]fcrtutUTij*(Z[GEceqp9::;wwsunmoogh&& 11 |{/155ad 88 BBhh ! PO8:JJYZhg%%AA?@dd{zmnttgglk_`\]:9TUA?}ZZ^_9:TR!!uvrs@=GH6687>>mlYXab))bbnlppFF-/::utUV@?0/xyGEmlyzGH20JJfeon VUxyxw^_TTdeihJKVT"!@>TTxy87VWTTcepnss%% VW@@'&]][Y''JJ24kj OO||bcomrs))((8944 >?9:$$43LM=9YZ,.HG! >>12utggDBjm:9GH 24::JJst--RSGH]\]Z..KKDCMN~}:9cc)(nonl~on//pqTVef!#GE78-,^^NMqp`a!!caggkiACoq;=54a`RS%# %%))ss } ee }}GHgh[Z22^^KKPQUU21st@??>poqsGG{|WW(*deuv^^yyLJ@A }~ LKCBLLbaJJCBghdc88EFHF#!77oqeeOOcd@?HHnm^^XWuu:;kj10\[wyvwMM "TS<>TV__ON!"""98CB11YX44aaJJba33XX--GI43>?dcGH ==BC&&ccno{|`a\]||+*vvbaop=>TU54'&NO""~~\\}}44or[YQQiiBCJIXWEG`_llCD}a_34PQ54'( OP01 YWTU==GGkmvvwyge.-KKCBKJ\^a`\]}|srdczywwjkCA}}uugh+)YX()ll#%XYyvyyMLgg#$ec FEIJRR[\JMlmy|MM~~$$QSdgutEDiiKJPPSSCDssHG::BB TSUW^^ON32-,>?XZ.,$!TU 10UVywZYgeABy{vu56:<..10RPKN'& ZY{}kkcdvyeflj44LMts\^=;;42..*+&$--<;!",+%$#$$$0066  z{}{pp|{rs_`rr~~}OQPN{|srYYwwuvVVus[\,*HJ~|WW,.\]_]))RRmm9900[]FE,+MMefSR?@KKTTLM@BLJTTFG:9EB@@ !/.<>,,))>=65  ''76&( ()%$ 2343 !*))+))##''**   "#*) ~~wx|{~||}xw{{|}ssjjggus}~vu~|~|||}}|}{rr{|tsvw}|yyuwrtomts{{uu|{~~z|{zqrzy}~qqrsyyjkrrrs]][Zmnuv``fersee[Ypq{{hjts{zzy{|{|}}pnstxyts}}zyklllz{qn[[LLHFTU^]XY[Z^_]][YTS[\ff_^\]ZZcb\]YYdcmo[ZHGRScc]]FFKK\\^]Y[jiprUTFEKLUUMLCEWU]_JJUSsuyynnkjhh__Z[qp{{rqee_`ccUTEFSRPP==43A@JJBA>?KLRRBA34CDMNA?::>?DB;FF<=/-79CB>>74CDHI88)(,,?ABA<LJBB:;DDXXVVLKGHJH>?;9FGIJAA=>FDHI?@;9;;76<>EDFFJJJIKKPPLLPOPSXVVXWW[[[ZWUWW]`b`eehhhjihnlnpqoqqxwwyyyzzzy{|  !$#%&('**..,-/05366:;86;<;;9;>=@@EDACIINMOPPQSSOOPQRRTSXXYY^^_^^_\]__cbgghgfgnnpquutswvwwzz}}~~ ! $%$$**$#''((++--.054129788<>??@?GFFHHGLLPONPNNQPTSTV[ZXY[[aa`_deebikllpponrtvwwuvwww}~ "''&(.,//438766:;@@?@HIJJPOSR\\]\bb`beemknpqrsryxxz ! !$$&&++-.0/6767<<>;@AABGGFFIIHINLOOTTWVXZ]\]^a`cbcdhionnoonqtwuvuxx{{zz}~}~   !$$"#'%(),*--1243659:=>CABCCCEEGFHHHJLLQOSTSRWY[ZZY_`_]`affgfiigikkmmrqwvxz|zy{|{  $%'&))++/0112221458767;:@@@@CCB@GGJIILNLPPNORRTTVVXXXX]]^^`baaccffdegfjjikihljmommooqqtsqrvtxyyy}|{z~    #!!"$%&'&%((('*,++..0/..001111425679779889;<<;<=A>BBADCADBEGFEDDHGHHHHKKKJLNLJPPPOPQQRQPSTSSXXXYXW[[\]`^]]``aadecdcdgdhhijggjjlmlkkknollponossrqrrrrsqruvttvutvxvuwwyzwxzz}zz|{|}|~~~~                                                focuswriter-1.4.5/resources/sounds/keyenter.wav000066400000000000000000003000541231434177300217760ustar00rootroot00000000000000RIFF$WAVEfmt DdataIzax. We@W 8 Qo *d= R7F  "la&)S' JA 10FE_ 1 "[o BIN,LMuo>Sx6Y\\ s @pg<G. l 8 nu P7!%F:v C 09rj$%[?Ht3*z!=so eZ     / 8pPfW '}  qTnFd wzz EG#b)2J[(} ?e.Z  vz (Xw Q QIZ("SE[P/y+ wUctrGHD7tO}UqC7<{J\hE G+8 b Hi J(WSho7)<aiYs\~zHo"@i2M(| QA} )w;"x kDF  kNi&G'{gU,n5\q?o&EXu$OgFyN JjX 9}0zO<1-={# D}F&Z?(5| i}shQ2@j& y('A)+r gX \gC$x'P`FyHVfRn`E<9"X @[QVqkV|\:Rc}3k@;Nf}w&cCX$<qFC$*9O/LXK J(#drA$6!jaTM\u/%V0v]LrQ|h Sp ~c_{eV*V ;Oe( b})qUB-)>hnc.@S ym:@`=s'PayAv,'- \ +3,1o}W%7.9;mhkNV N$-.;>)e#{:b#Nr5T\r[%^dz+%hOq8/Lsmsg<6A8Jlk61Y -?Aj"E4+LBUY`CUVyHf+(}GXX6c* >61  [0m\"PEzS0vAy$=d !Xg@*q5# &7$7ZnM8XTMSCCAA!H*!8?EY 5y6U>Z(Zm@ & )=u.5[gUm1lH5[`]+n0E\7g/~K[JxnfT'q} eO?JHDzW0cqN@CG S\VFLEEj%cmb?hh2cmq6}vob298nZ;daHa8}$%rv[VD B)MNR<uUO ;!"K9i  J,k`c -*/)%soH-V 9bA}7s) "uIC!M*EXB? } =7\2tF w X;UFbr!xtB nOP) K.QCPOP{] q EChDfsl*sX{w|@xuMV>7[g5yXN:Z:`Ux~|"Im->C K] g 7D % %PNc c e`e*?IhuYG@NW/@w^eH6dY[MHf4l8 U*|;,5j0J3HQI@ 3pyzALMVWg5<Bh|ua60c1CRD: jT2e>g4M_wq>uUy_ (S?z.1'C<nu  &'@|XJZI~e8N^5t^ FT:xi'0"P4>=Wyl/)R=-J J]qfDA#GdG)pU)"[+-\>,;96K_&BHOa65/A68O0H(Ve_&&^OXEsWu 7*]1G>6&Yz( uF8 fb0//!)Z8#w'IS:^)%<~SS_OJ gXVI^X!nk5+7@6&f[>^uok9L OMC \ U^6L } $P{4xS` Z6}`w6%YECH #.m5`*Vxu{}*`(k|cVNU(WDsTtz'Ji!"1^*zr7r;XIyv^\O]-Mo?X{:x= e4NW~5z*$e}IOg]xiJX&aaD0aIlXp`=t}tK";2  %LN8-9Z2p!I-4I`V. -_DTN4"BMC\!SGrG`lNx-zj GI83.:`2Z!CP;nh:O<A3K'BQ?\=FK!& )^(^? L~7sg~ , UR$~;\a%GN97HoJN_jJ}^ X%RxJ}58iuSdt M| ~RKO;ST27r9-y::S=\B9-5y7f(u@cZS[85_*lm,_%BgPAw %WrD AS)X> :: R fd/V0 gnD(& 3Qr"34eHaR6:m: um7v)a1v,3+'G_}Mj_[h5,fDAlAYH( x-Z%"x["fW R:FI).5*'9#tn3,//$||kIBraZ^=NXBA}A*"c uH6.ulfW=L'w5D-72LC'+agrVHO`|;pQx-m[.9wX~RkL}\<k~4M!"]X\R}~^)1  *1]]F;<~ uAa6R!aqI6.,aebGq ]2q7x>Z[LcK1$'/MBn;`e,!Em#ATvvgzR6l*o!|A@05q'y|%rQ'|/Vs 6-1 VD" a?S_KJ '8M|sJkizggVSnTk}vK*2]6c.'X2%b/o%LfUw(qT%ki\*aM\4#X[L% &}U,~+> QHPg'I<#+f mnDjB1,Q~edsM\1>V4X~t)#;%E,1Oj6epAl&bU^82rx^/fb\c4[wP]$(/gqry }y=2itjxt,0[0j3ds0;PD}b8C1A_Bj:"^Y-5ncsMzuz5pq 9 Ug-fv,\4QiMT|fCS( _ wG*BvoCd^p G@5ID:ZUxrNMS(2z|kHJF#]]r^?$^6SU? W66'3[F>}OcU}Cq1J-oqp5@i}7QPI'~ [q\`u%G>\;~L?=:W9qYAZH#H74H7um2ddQr*Zj}#}DX,I3BqZ / )R^K_aI%^6sX'X _:+wGF-mT]/2-wX=m2Dr&e# IjA~Pwb^oit?FBu:e6a\sr| {=mGY\zf\n"'LPTpF rj6,5SQ2>MG |mHQu)Q%9oU_;t,H|&xBqQHR)%.&}6DVZ.w7GXf/qU.U{P~ry]z/6Pw]Y/dM6q]Qq`hI{$\~<Lc/ _tioalanT=@>']7h2t -2#Cunf^wX=<)1fq--56*b/ e5pBiXu4 ZEN&xp<!*Bcc=CTTM@6&[b4[XGoH;MaLL4/p%kaWe/i$/nzVO<^6*Bv(,E (v';_q?nZCcOEq,dCG5'vE]!e}E^{TA{Ym-"@^'~:-c9np SS _F\bM\p|ec] xX[ (yWniVdmA<J9Nt-!n]QW4a|~g3s .L@zC%'_/dAlaW<y3yewY`0?$ } ~ H M  u  H ~ 6  y XI ?]#Q$Z -c z l    ; ~z3 l C ( fQS1{Q ( dN j( ,Pp J: " }fB 5 4C jf+Z Qa 2 UW uT c @* JZJ<) Iv;(~ ^N . < fr.g  yuh]%NP <MN[?)C  > {R M | l Qg@fGu v j 0a;Hw` ;%n!B xC' m Gw rC:$WM+} @[`N =E f EJ 06)`5tQ-wc  %,f c@M>ZWanD R3 d k n %#~{x n[ L !kr2#z `jtU{~R[Na3]TT 7I0 @ pVRSGVvn3Ej Ytvt"g)Jouk3YkI-dy ~FpDqYk5Y(}m yL@0"E1Du ".!o,)ux?H"[qr:rl[IGW#X|01 %*{sNqY$-j@& pylWK0d%)JA6&B*P5[xNWFum.Ib]AcVDk |&Zc{B74<(!eAYuzz;?:kKcL(; n M LWrX,[D:k  zl& _ 9&yNZ05^$ }VK` 1 ;S_]0p#| . 0 vRWc% RJ-%, U [ 8F : v?g 4Dq= UM){  lNqrh A f  "xQ Q? " >G dEcZEm1H  G1wK2CU#-M7x(0%R^k\h9uB7%! 3W+P.{o *?viH \ \` ~ df[&>=ay[ a2*D_750F" % K| Q/bS jsyP8g` m .1yg-{NLx^G'S B{:DB* 3c,8 sf -q v7et&># W ; >##ahQkG p9 nTnv7{u8glRuS@~oC?1{p.6&^ Sw8$I$zy=tZA]y1^A|;/%?US+D2uWe{ H na+V/&x2i?U 45?d.{ (g7L)9:,p;S#s\CZX 4.}|_Cba?}_PN,.etqXu/sh:;o?Y;4u6aLT940}NcXKIk@e-yAZ(@v&e)C$;M+ZvWWoK&yzyX ";th@Y.'{r"W cKUX C}?9O*| RAj>w''h"}!`||v'0(Cts3^XYR.mg2!#3 /4Bv,a^i+\hrckd@S"7/] bk:Q$)l0*)2Vl(fY"#i Ow4xXzw:8A;X<}N U$   T 5 + b  e D Cb  q] #|(4[T %n.5o#~%z@<dGik6AD9n'4qR)-6)z X:M"jM qr:O,*?Jl>by?%\z9 :+   a/>ny|" {  * ? < / ( t#8pz +& ?$ M$3 '3e K <cw0-  u 7 d 0  `Q Z  H f 71 g 1jgZ.*FwS00p#uYm .jU5[]2NsTwah^wl&LZv#+a8KF~9%@@4f023vu =&T]Iz;-*%RNFFtk#)g-w6l}j+jjQ?j;4*%tpaId-~I%K]/j+sQ?]Tql5+[ma,I@d>`SCt!qQZ8@8uZo!7r7u {tG]*tGlz6M3sm%u'6(%G* ys\d`vTF%$eqA}nTarW r A|E}IPhkxfh7-G{Z@pS*jDZVTUJ T,'nC2 |,o?0i7 ZPZ8+ nW1#K7\} 6 ([jz$M:K  Z    Ut e &n   R/ #;Bb\/V3T)zB-O{"!rsA|dV&rPp%9Kk@xB@)N9{$5K5B F11M,h?0[wv e3?~'|]x=?{{zs&{f+t tv :j3t)g"/wV"6ok+\x2|T{zR& 5eme kJ#Ap@'U9k4 " sBQM6+JB5XX5|S6sicBma|hL3Vd~AWU_  L7~ *\9"r>Xsp_1co<2 D]obqFb p!B1^% %v{NZPi#ne Oqu &fv!l RtsS   qiM.{_k>A9/[v+X*tL@c&0tF=t K ^2 1n0|C=;aE49Cgr t wa{ E )   1[W]?v NNi w w3  woF2 m 3U ]jTT9~]lS>axFG7)bqM Uwd0lY_d"u#PX(Q;SBa4d6bo `V/ g`}KQ5E?}q{:tH,ePy)"MF:L\7/zP ~l&'!z+H(YQ ]R5xV; MjV/MRqm| Z[DNB~A y,\)P=*u9!Vq /7'E tYUB,&gC^W]/9L_:EM j+Nr* cB&g)g w2fTVRj<34I[HPo"1Sk[MO {~!DB5 hUUzS.Im`>C1CXmy<g[7`Rp]1v-L[ .>"a,tSpblR/w(-FM!U\kW7(# r#- \jviHT:"p^ ;E {  `t S AN:pW; bo24T'p aTC4"h#<&}Zr p6hbb /[]fb]N0D S<7 K[ H{9N1=`S>aAiJ$8 -:En zL6i[Ij}|C V 9@n`NsCuQ_(C0\Bfd1< B4O[spuIU t`b/2GK'`zEQ!XI+V&X\L)^ QC# \ h1P / w3 B Nu&j lZt-q-" UWV0<9{3*77VvB|m{(Z, hTe.d9g>/Lz nL  _K|}Rjy1F m6m;5z*8w)d6(Y6HH=4EUT1W)w~xdC3C  V fv8~1J| }6;!: 02_j ]9r A_2 i dL| h? ehrJ'W G WE ( x|ko{@OH,  VSegtDg(Pr>' pQ+t`=si  ~Gz'L5r& dx=@1\ O8'wrUox q L !o i* i2ic 2## 87 9 :] . { c, 0e U7  R 2[2 _QMH<";1 ji{ r1= G% B(7hE%;37S?&jqh a;?4_"c58_Nz= dFdp3XK=C'\J^ 37Xwiu%! $9R_Cpc_,-PAVe\t6u#-w i,`V1v~ Sj* E2|$hIG.dBY9w > = VP}\$h^W8u"1|)i 0 MP { 6@j,1 0N H K!9 iGkUG`nZud#Xfw$n0ukC. r g j! Zo n9z W)giG~yM t&'6\j"oW`pLypxfC"%n6r2nCnRrP>,C]@ M.|cc$+d &2=Qafk>mBFo|nD \kxL(1]KA8(GEn>vmLT  E[ gYQ)kv_ g=K$ <x]$a['*Jk,u/ {c#fX sZipvcqW%E  t PZCyB>S// 1>srZK>okHR- }Xp1 |(Y6K S'Pyyq%dMB*^2 ;yzqDT,/^R"jojNkIYg\,2j Z, 01 O !E KTTHeev # 6i#{) 2  Ja m}l/766o>ZG$"iH+@o>l5 z!MX"!;Xf~E ?I2<8cfuz HJCvk)*h 5xi*pD,S6Ps\I@  9$m(J';.8P1qlES-@FU+] [ O6> ^ w5*TlFAr40q@ 4%VO?| 7J ~ z\k ##q>a#)>i H60Th q,h^ G ;| TNhY4Y { 4 v{ f}A2 |jSM%5y:lp7%YeuS\Q&_1JtB 1&/9 T /8P K.*z XC +15LcR;xa:IK qXPS}I\m>~: t~^@!fa^2Tu xX N/q7IU5xC C%c9ni  /7`a  x#m i4okk^h ])T ;1 O7<^YhH~:d?nl%?voi,Q[l_4: s*d   i9QQpU1nlR} ;^2a]Ld%Q3mpj 8 lo!^2(o| Y'x!dW0lpyHb;Dbc5< -.MdQ$.f_/ qG$ }k1tYUi =pR$#xuDN6! P2&BL. iA E^T , ; D+ z%V~R#oY:u*XyL6wdD"}E:^rO~KYb?AZ6;rtM~$LP5YNHEWjUVWx~QtZI% {qp}&\t.[  C2jT YRdDv7O%yG;IrO,-VCL " s ^DdJyG{8pyU*j`]|^O9L^Fchl9,1YnpH.M-R9NXhG|f/GvM)%{ 1ro^*HBt y1B A4 n QW;9-X C # , g]r*p bp|eW YF;,R7/ bNk&Xd YNYo Ga]721#r=tA~VzGI@k( VT:+FN2*y n j4ihRZ>(k3,_$UTYp)h+1 #jM&{8hds,;AwS^9W]Oo]2lPK,`4 ]k1Z?i?7\X|AD~J"*ks2Kj Hro/algMzl %$]!P)[[}(YVWJ=l}cQyY_toAR;17Kj7$m& X!v n Z Ln +@l%WJ<ux 2xn:`2 xVh+W *& mvmP1d_,# % OJ@ ERup}{x =$EL &i~NQyTo+p?W<-2[TLcrHD/>Yz_Zule- ,w & +^ny <x /f ` vmD C @ t  a   KH @'Yx\t`-GP|3leN(|U)W/'2 I#x{wM W +iO w \ %c :Q# lgY  $ \# R  9c# ^x=A;G`@w3Mr[>huE72{e^&`21<@9V "bS<_,NhRno>~?jX\ n ^ } p  L Q Ja E  D v l u Q`kvCk(*+5VW8SnTn BUB QJU=MS:_*M`]+D!x-,6; -BCCQ#^rC /|MN(SOnFMn9d i &X5  ^;MJ$> q"[l{/1V'W-8jv[,8d/+ae4$}RmleE*Ti_ EA)^rYs:0- xd- g Pf2DDI!.\<8C25I%*'LVmKGe, K!a?0c=-/Z J `  m>v %:P{L-a ~4(, !!TIBT(}BhcP`_rZZ] G9kx3E_oUsN+m #P^ehUaKWVvw2hQ2S! |0X-V5w,YMnl $F.ssDNDEMNGmFwZj:lWcznP|NM\V 6h#U(*V<^bdun7(m 0zw >b,Bqr}G q(G jbny F F<DOVr48n[kjnGD|$;-MXAQ2KS,!P ~ 1 N 0>6{J0f'8YQx"uGyG\5JO{8 }-|SOiU|DUV^ri}sR*<*Rf#]N-;&KMSMn\$diapl6%.kB |k M>uYX_5eqf: oDAPXrvf[l`{PH||~$ !p!$FHC s;\42 t(664q 9?(pV,q]I hQ\Tj- f] YsG bp :{U6Q{Pn8ZKd|u>w/BGgff.bcTb[X/I?{n^_*NA WNg1':sDpB11ly,CBaIb/ZLwL"SYiH?"XSVy7d YPf-/*}I4j[+g=QXh8&-&eR1@\v\qrZ>Ajd{WQk;nHTJ6^@ ,0_.(G2H r} i+-5izgo|ZKPdp N@ ~N?L,_5GhJ, Ybh'}q 6D-%7%nRK@2^[%je4Kq+,zm1D &Q'rt45 d-b8$>GrPLo)}F  hvtOde{iq4QWP*0d{A#-_CY#Ry "nOH{ s(^78CoP1]dO-&S  LU*][0xP C##< EP> a.xztLlivTZY. vC5O |{-(#*|EOwKBo`Og8!-rT B my#A%xa /oR7 QV E KK7Yq;~g  x,2{0 6\ }xpZQ/]!Y5[?l1 u$?X J3 } 5Bp&h |"NnO7B[s6/+G,yX4aK$yf-It?'2^>!5LoQ3Xh VG_W8k/)A: "R] 1rFT3~o <+*wAeO ia+5>[E6=D02IaIl-|e5fV7(cWVp=2#j%Cy B. !M#L: >Yf]h~{aw>J{FL.RbwN%> E: @`yC[Z(G. @agx"Zp=#lnr@, E8<3$JOjblcVac|@pU"/87[=32^u xA\]]|J}vW^`l_>]%>q4 :8NVk/C $b?d{S+DLe@0#_]6f?sR*UmW s O%v$tQaF v Ps_ 4XkOc|{Z_S{+J=b'+  e\kxPHH O=9=xfq%y D`  \[-E8.#D)j-T|6N{%[p`5Y)<[zMts;UB(?n eTcZc_H7'G^'\E,mP_:HMINZ1~urXydI}w F 'k<K2 X4P5L_`\!Yx/wj)[ny9DY3mC|O A/Mv}cs G$L3[yl)  FC(VM xA+ YJvo>9c =Iw8Fy ?Y<Y~`cS)w;^ 2Ao5_}anh<~!~MHi<;{% n:,VL=8 B)8 ?1^%.7$OI1[g$hw;%I8 ,D&-Epk/H 70 ba;GWoPo~pTV[EqL$WtFhi[(ST @[bAXF1Cu_0,4F|VsDzH1 G%##Q!u|DDYO*)}{&_ R0v8[}YCEgA{os?IyQs'=YS?r+mMS\d'k'qvV@J0FyEfCw#jy#Wk 3t.JxEcme8Q,.f_6T4_58_M@s@#.!VZNT:ne@ jM#p^k-U%f$;.fg ;(W10 xCj'l{QK Q _S q[j.cavrrok8r"vZu&><JbL&DluCPaMf;f;Db>F %aRCFbvueSg&fq(`e+vk\?qXZ@_&H x$wf~{x'5"Sm$,/|'_"3-{MgYL hn z;+a1E[I-SLWJrn*O%Xn3v ^OZwVk5'}kChu[3t>| tn;,n'x<B"^t ZUY 2wN@Gf~!4'd?SORP Ae2RSe* mF 17!vgJ#S*\QP,@[;GgSYU^9 ` iR\`Ev 6sJe>Wqs:(F!s|(C*u z& [ fD)Sb!^qn?lxo|f1#}Owv kS AZpF42*, E;~%.h"<yBT ycp$MchmJ E2,}eg~x2vtFU=:^T5Au9H  eI*Od&^ ]?3T ' ivN A  (*m m+}Hy7}at;}3+g!%:M$J0/w C. - y)`m F3 %QA`9?O-+*)Q:|*A?=#@Zmmq~F>*_b7JZ,  b8gk@3ze WR0317rhojcxijZ3`!^"\01>:H66?H"z@ [#N7G0H5cv KQ6*8e8 `YkLU{<]\BBIb%_ON'v%gWP!\)B@R `ja'=9WQm x M B   EOo p*Z_ |:}NQ J?g`IKw `G~Vq"e'>Ag+16oNCH{P$*KZQf+%`p$([n,"/9G:(SWNIVodzsYe3J/yMpPV=`xndzh-PPJdsl+7S \SJ1y>#N n <%2S+f|jTv cYG?E'{ _FK1B_  M;z@F~lGLj|CM&benJ,>p .eH.R6|xE)eCT-<'#3BD4H6A/BP]tOm Q?<dN Da="`8hC/}PK&k}qE_E^E0uZ O>X._ ]Oj]:EYF~q h[Wce=[>0(D|x4v_^&7*<'K-vaCj\o.yJe4QA{G @902o+~-# c ,?'-q~~jUt`}{AtTKilsR#E^'%f .7ZDk)9 =}_H%P v`y? QoOt*fp1=/}8phfG/tK[Kl:=9.T';TCVq/7\ F-a1Qv:l <  }T1qZ}( W[VD lCq \OC *+u#izvwQ; i7q?wQ ji|zir@Y;nQW'Hh$vl;\ vAT05UJKST#N?\> OV759Us'#\=:C)&*$5 rr.mW'I_r=L4lgd?j.7pdT7IEY _m68:V0x0.H|WH1nZ4Jp I~7Hh2mC.W:nB3b`>P{Dw Oj[x&Q@F5=6W2"r-L+3`d y^DHau%/0N(C{nzf)b|vh_]0z0Zq[[9 i|o}fpBRpI%=&~NPux{JS nk =0"}[o8T   Nsu' r UIP!u,] = /: BnS{9 ON0 a\901 :<)4et.T#7 9~;,sm <Ure<G)7r^).)&x^@hL*IKc]TPX;l"[tc|C).K(>7QcpzC76p=>ldUy.kpRTw~%i ~Do$HhEh'7/g1g:m HG(4 rHUcSSye+RNu* w?ZtvN>0*EoKw"rzrV''R1FE/Q,~*kW)QzML\>1C 3T:y[x8_w(]>wk|o@>AF0/DZ=T+KHIgSx@tB|'] ^8y%}f[7-<ShiOW%4 'S[<k:(RDdZZaOX_]_FhDd0f 7@Ud$-7$'9DLEic-sc9b`Im::b0`z XrC-:O2J/HU\d'hVU6%VJC=`P!X.t(5#&jZx Et @e p/Bu|vH%Knl UM&S]CN1RL/8<\qv4V/Cfomo %@OU-dFF4Nq| Q?s; ?ky,?E-:-]Q)*8Hq gtn*64IRS \(z_L:e7S ['ad?+T1>* J:Lpw78I#L"_q+z_fWoi6))z9l0?],>$y@ivG=z''\e(idE<2*RXz 6dbm =_i;.?Cs~S5[!l&muZo?g:N[_'504\((HcwV>JVosgp.H^ C}i5'+pZvCo{3"bap; /Rd1w 1BRxo3IIU DUY&B0QS8Zub`Hk  #`-GT|ZtY@b5"*PRw=?6*\JFC\gn]H /k%,N*<?O@rYN.^L} y+%$e!x k&~V nNr_/ OlTUbu- r, )! Rp fdLAov : ddi$ L0MD`_-N|s<D]od^a5^CU<x+p_qSD><i4(NW:V:b@q|^z< \$}CR2`va1yc,W1Y0%Y3qd?=(|wkZ=v  n uvp~$}+bOn%Xf *H8gq.@fp| }ZG*5b^kTD0`|yI L)?\f1 ? 'E(]2/8J,`L,h -tq )yo/0<<*!r #e01nfM :l5,5 `W<{EHK0wfHv  2 ;j|*gnLi? {@6zdsiPPeu&O~}? [_ZyhgUDhNVEu9p 4 j*^|=X bTr6.CU<Y-DD 8 v<BpHy.RqBA!n=w@ -00R+hUE\xr[mBU<T_~R A4 =12z@M&SDZ q_:W?1%UbX!ef*m T[@T>!5CJ(Xz#?2 .3N-47l`vPVnc%.^D6mwQc"l`ItX_ EZRM"\x@M^68\~Cx5~Xt[$0\$,%Ze; %p|3a.,}k~or$@1Zr+T/oj{ K$ u HV`mOk7I(5-LK QK3>RJ+|8g&&& muO}{aowk|#:(;[`o*| \C E  4&G~d33wr?S11ZTS% a1>;0B' K *P[Trn 2h!CJ}(}aD0 O C3 & M $+qw  F!~Wr(W4E9G[ l4] zeNP`h 2rv+.6/00 7Q8Jo 5O0q(O^/eDrcZ:kN&x)= 9 4.om@TW&]E;Q1R<]LQ8]`q@[F1X<#h [Q(| `bCwmd) p % li"^.+jL#+wEoki ,{NG0>L3 8_-E_8zkc /mAY [!UWkN57 *.Yrr9VVj } hU3>lGz 7kypZ 7Uu w2eTlHUvAlyMG;Ctl~tA#9+6 V9~NJ>5~ @sjhLf}_-".\ AZ$Oa%CvZ<*|  ZaJ$ F+5"' J SdDn2+oA iWlFng w{n&DVO4HI'mFma/o8hF /`_v gx,U3s &P#rB\Aka?#Z]KZ'!3b/ a"g C1 %V # `U ^1)4tgX#{d G& tk /6 Wi? X <   (eU 7z F^HU*9 9 $ $F" 2sX * "+W"g`^b  6D*  :-  # " `a](OMt  6ӢLD1+0~8,f"k:)2  g':VnW  d % 9s  nb@Q c; B 9ځfװZh H8rΊ.Ј e߈=?;ޅP9o zۿ=FOW k ? | GBQ U} S\ % Y[r9 5g4>^GK{ew+S (x WtJ7N0 bCWNg A7X}55M\ N6I]/giQL b.:a } hu#~ uf' Ev i|igo<u+ k K ʜ fUjC d4 ' K5W'I*V w u ^ uw0)b $|OiNJށ] L?lZ:nx | z:r4 6}#d}+\ r!bF> 9kyaIj ?w 2H %KKi =8 5 z  1Z(&)a d!0P*8~52'&  v"}$Tv3&I&_"#z!Rvm~{* ݵ ۮ `G B3 2(Q x (I/ o@R1[#2+j U .j !:J,Z%Ewm 8 ?9 %/ ]/ G -. )rpS'8)\ U";#,'.q!Db&(Ya(*S%1B v .x>J&s MJ vi{  7)=399z[%| s7y\) t`7Y>+y+Mdx -z^&\*M DA.`*xGS+l+:(S*&(4Ew%$5 3w$,."HA5s="7Am2p/@%L  ) /B?S@ "W 9'hz# Ro~?' -D@3']<(!fA!J{ %M kT&f=X,vZ ; ,._/J#[z i<745G E&L3OO>N*"x()."a>2'C/i"Sj4fw/eU(d{b M$6:c gh&yFI ;"Jv9NV Pޭxu x DT!"e   v#Md[/UoCW 0$dqI%6 k7 V$0=S+' G ?`T1 1D F@s5c?ltjޞd=i E; e` & @N}$eTOblP0t&1Vc8~s -L^+pX_1T$?B <b~L HQc1&. Ev  !F'  l-#/ X=6  ` Qd sj@LKMD  tr2n UP   L ~+ 9 {&Lr;A,e?d5cVD92CqAGT(6DDHA:3*FC}I VJ" 0 k / cQ  mo. - W   'WNuM1v+%" Y{ 3}aA ms< j07 ~ 2xg KS S wGS"i F!T|8HNo' d[( B& 2PWI.%EpU{&XuT= hK G8 e(HxIcncDH&X^Rhzo 1R9\a $+)aoX](f_fJ0r Z(MURJ+mO0d 4$a|$C5I{K*pnucOv [uVn .mzn9S%m{T#T < @ l<wh =<;"Ns'=Q4N.XXr6 %F4=Nl3KAP_QpT`)mp 9.)noGttD?\ 0n |Q([0 g OZr{@ @A2gc !jAS?N %. Ta; WCk4*y M+O U2 'l(AitkiB - b=P f ^. rwd;Z. ]v@3 M e8s ;bn`F';$& Y      ] 2K&| !0 2  64( S " f&frzh Qm/ 783< K E & R:rL st @:Wy0ehq$; 4P2z Gx 0  _% b' J H M69YQH }%]"Qzt( 4 dx4,$4- 79 d$- 4 o~'-U@kHtNh?/n$uhYduaqz]s )l ;3 a d z 7 m\%ok d 1 y] BV  [q P> 1 $@237[kF`RIU:H U .   % j  4  ii9  @/ <& AT )O\S3:i, &AsM@n^al% W-1[   PGs+ 8+~  Emvr(u=VbU  j,6r:   `:p8K `8cFp(WPJpy oo+Hhep[dH^+b-kG(:=J-FD1*2KnKK+Ss0 = ^nJ0<07  7  x @ ;Z>cW L9 f8T.0eBr hrhz=g]xJ35dBw@-Gl7fp3M@}Ng_ FYhI0e\KmQ8c= 80 s'~`F cq@-Okb$7} BhlI*cVZOy ?ixeUV7FcQ ZB#UTN zvwi@iUK }] ^SBxt09z_$GJ z26:>.Mi:- AL y@'h6.KT A.)jeoMyUsm qov<jIW CBi< !/I0g]7esS !Z,gvq#dF_i` ZaaMs1=I S[O@6{F>?M N{XY3"UHZ3/^<kxp*~uFH![V]$1Q,m*. +"o^n$:oJ>]\@?2 -vZpN$r-+#N-a+2pG|M$u;HpU` L> $Ro .Kf x)kW4RrHmf@g-PQCzR>w GrkknL6Smt5|#6lqV9} b"<v0"9`hLHjM]q"(  &A\j |BH-kz }[ sy  G% O_ l ct bV = Z R \i~] T-d boU' q4 \ aA+?^rFa. M  rrIhF4/ Q f >  ? _ I e h %BE  $| g | z 1  4  cO M H I7~K03 t >b=B .0 F 0 q PH s    %g rTBV_0Y8&ojsxoG1 1H v `"ek~  d CS ; Z 3  t fQ|= I2.`Hxu6bO Dq;(wdL5UHa.JT9f &dkJz#hO r] j [      h u#  W H k 36 m ( % }  u*oS & 9; Iz 1 , R(  Vk H w  F  2\m{d&?HxSQ?-'>ZOUA5FB/q_'6ll4^N*ke`OV$(Z;MqB flaq${4({|5dbv/vV34c@LjY9 ug}C` ><m~& ko@n -[{j>J*a\#WWv7 O)Lu 5*J5~'`^m< [||@$=3@'#1&VK}U$7o'MtoEhu}YbV]MPX`\#z#,L 'X]Z@r<n1/4avg9'Z AtddSz[@abw"cmYOlWGcHIV#bGUwb0 C&sgisZ%^ou]X[=^ff?# e"GM<K@S)W1Dal5O+<o}h\i#.t3+d_V4p87U6ML:o<x&w|F~ip&Md>{}368p%mJCx@7\`cHIi|5}8zBY1 d Nvz1[E5NJp-Yq_E/s8b; _0 'pN"#)%i= #WyOm (Ye9(um4f]PyMk4umyf&H0 * DO/V&K,?cydY%?W}K,`aV%DGw@gSJ5:'f\.~"~d:l_MAY}! ! ZuuxO&($5?$'B';y:H}C0J*`M"GA7%RKhT)Z0k@_\213Y$$5|;~]kA)m<PHN8tf1+Y|BY*OTrr\`YNPzG[)mrNJq5G_."6P_tD EnwGi'B :\zon@U0xU Kb2@a}QR9=PxJH\2O =%\}yeq^p"II\;>0(@P7rHn? K~">D(i8Ti(i>_/}vL>GNx*ERYO!J@4C @8A5 `H c \W}'|S&RQ8s]bM%C?iY`o@qXK5#)1bYFp#N&r Jn'1JQK`2U:7+{{Yf }  RDsc?A6DBHsN$307cOZ4bx4 fG m^L[/n`$q~*E7p~dUj{P9a`Sgj:-NsN7}Y:L7M 9`TDzpi2+)ZjCk95fQeW;*Cz ]='9Ta|44qHK-9^&e;/BEoQnVA V:#CMfz'UK:U*P*C>&X@s':F*D"v|+l'(0y0 (~ F# vO' q;Y eJBg"f%"e ^_w{-0Vec3]S\7,&@R @,)Yt(V^P4~G}NW*J+Bh%q~cBbXs> RaF k{3`ISAIsfG}K"oqHYX4 NS4d8C'R5=xAVSWB&Spa,-JzLJ$_ Q/9'v7?"GX|XD~Pab+}v M5;*>Y|Z/zhdBC(fDa4: w m0]:(5Bk{Ii71- \W[& fuWt9C/ :q5.+=|@26*K}on 7u> 9Iu#P.P_Rk&XXviYtWm .*[9v& @#*3XS Kz#wD`[bftJNRFuygx55}P}_lrB12 n@N})A{ ^{A{z,OddQj|~f~{3pyiNv<pge3;5 ?k$DKwFR14S1ri+hv+djR\"[,cIX=L!Y/OeBPhxk+vq=|KKZOEjlrf8{\4zHNo05S3 #m /Pmomd%Y4l"x{HyJ&VC x&w0|q/03+(#"tCn^JM\jQ/\"s,EP7Ke?s +.OY|aaoF_3Hek["1<=Pms7p~"abaOss"2r-\,`<./.F^l).jBS9Tq0^2 'j9T#7%nt]y6+l'Z8 )mTH `FOa_x(e mKP F kx .D52% /.<;Wz{yykJ)]bC/HA_I SG"1:$ZBV`G ,&U21`^,Z\gn",?I\'J\{*U|kdw1"EOfKSn@=aK6|q${nb_e$J3jqp/Y\ {mn tB3{`x(i!FdXhW4tdvwt+H1r?} =dTH*C~H m2/W'..(ZAK'a*8;4 J{?>8m!GjG%^eg7ic~F[,l@K`1V[ 9<s<x,=S 1S`]|\g-u2(;n7E"8*?pF4yDCu v:9ArWZ+jy OJj !$5='3g(`p84S3.I^,Q#*Q@7 >d^\K.dmE6 :PzymX'>vG q(!2uze74=C/6Z$o 29SZ<_Qn~l[(GX:^(^T = htWY cKx^4M}"R65L,W=6Q7QuP->" ^Hj=p.D_.T7%a)EE}'Z`<nDoQ n(9*7c`Q|b| ML2S{4d0<0/G! ,3 U@ &3 % +CKD;5>-8Pg9/W\d{GYd^^]}Uf+f5|;ODwjc|}noff})|kp& vuh{vv_TRMFJ.:2-=.=6?8-;=6-/.$4I>=2,BK]KNT NXUd_^jetvg r |     focuswriter-1.4.5/resources/symbols/000077500000000000000000000000001231434177300176045ustar00rootroot00000000000000focuswriter-1.4.5/resources/symbols/generate.pro000066400000000000000000000001031231434177300221120ustar00rootroot00000000000000TEMPLATE = app CONFIG += console QT += network SOURCES = main.cpp focuswriter-1.4.5/resources/symbols/main.cpp000066400000000000000000000161511231434177300212400ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2012, 2013 Graeme Gott * * 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 . * ***********************************************************************/ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include struct Filter { Filter(const QByteArray& name_ = QByteArray()) : name(name_), size(0) { } void addRange(quint32 start, quint32 end); struct Range { Range() : start(0), end(0) { } Range(quint32 start_code, quint32 end_code) : start(start_code), end(end_code) { } quint32 start; quint32 end; }; QByteArray name; quint32 size; QVector ranges; }; typedef QVector FilterGroup; void Filter::addRange(quint32 start, quint32 end) { if (ranges.isEmpty() || (ranges.last().end != (start - 1))) { ranges += Filter::Range(start, end); } else { ranges.last().end = end; } size += (end - start + 1); } QDataStream& operator<<(QDataStream& stream, const Filter::Range& range) { stream << range.start << range.end; return stream; } QDataStream& operator<<(QDataStream& stream, const Filter& filter) { stream << filter.name << filter.size << filter.ranges; return stream; } int downloadAndParse(const QString& unicode_version, QDataStream::Version data_version) { QString path = unicode_version; path = path.remove('.'); path = path.prepend("symbols"); // Create location for data { QDir dir(path); dir.mkdir(dir.absolutePath()); } // Download necessary Unicode data files { QScopedPointer manager(new QNetworkAccessManager); const QStringList filenames = QStringList() << "UnicodeData.txt" << "Blocks.txt" << "Scripts.txt"; foreach (const QString& filename, filenames) { std::cout << "Downloading " << filename.toStdString() << "... " << std::flush; if (QFile::exists(path + "/" + filename)) { std::cout << "SKIPPED" << std::endl; continue; } // Download file QUrl url("http://www.unicode.org/Public/" + unicode_version + "/ucd/" + filename); QNetworkReply* reply = manager->get(QNetworkRequest(url)); QEventLoop loop; QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit())); loop.exec(); // Write file to disk QFile file(path + "/" + filename); if (!file.open(QFile::WriteOnly | QFile::Text)) { std::cout << "ERROR" << std::endl; return 1; } file.write(reply->readAll()); file.close(); std::cout << "DONE" << std::endl; } } QHash names; QVector groups; // Parse names { std::cout << "Parsing names... " << std::flush; QFile file(path + "/UnicodeData.txt"); if (!file.open(QFile::ReadOnly | QFile::Text)) { std::cout << "ERROR" << std::endl; return 1; } QTextStream stream(&file); while (!stream.atEnd()) { QStringList parts = stream.readLine().split(";"); quint32 code = parts.at(0).toUInt(0, 16); QString name = parts.at(1); if (name.startsWith('<')) { name = parts.at(10); } if (!name.isEmpty()) { names[code] = name.toLatin1(); } } file.close(); std::cout << "DONE" << std::endl; } // Parse blocks { FilterGroup blocks; std::cout << "Parsing blocks... " << std::flush; QFile file(path + "/Blocks.txt"); if (!file.open(QFile::ReadOnly | QFile::Text)) { std::cout << "ERROR" << std::endl; return 1; } QTextStream stream(&file); while (!stream.atEnd()) { QString line = stream.readLine().trimmed(); if (line.isEmpty() || line.startsWith('#')) { continue; } // Remove comment int comment_start = line.indexOf('#'); if (comment_start != -1) { line = line.left(comment_start); } QStringList parts = line.split(";"); // Find block code point range QStringList range = parts.at(0).trimmed().split('.', QString::SkipEmptyParts); if (range.count() != 2) { continue; } // Find block name Filter block; block.name = parts.at(1).trimmed().toLatin1(); block.name = block.name.replace("_", " "); // Set range for block block.addRange(range.at(0).toUInt(0, 16), range.at(1).toUInt(0, 16)); blocks += block; } file.close(); std::cout << "DONE" << std::endl; groups += blocks; } // Parse scripts { FilterGroup scripts; std::cout << "Parsing scripts... " << std::flush; QFile file(path + "/Scripts.txt"); if (!file.open(QFile::ReadOnly | QFile::Text)) { std::cout << "ERROR" << std::endl; return 1; } QTextStream stream(&file); while (!stream.atEnd()) { QString line = stream.readLine().trimmed(); if (line.isEmpty() || line.startsWith('#')) { continue; } // Remove comment int comment_start = line.indexOf('#'); if (comment_start != -1) { line = line.left(comment_start); } QStringList parts = line.split(";"); // Find script code point range quint32 start, end; QStringList range = parts.at(0).trimmed().split('.', QString::SkipEmptyParts); if (range.count() == 1) { start = end = range.at(0).toUInt(0, 16); } else if (range.count() == 2) { start = range.at(0).toUInt(0, 16); end = range.at(1).toUInt(0, 16); } else { continue; } // Find script name QByteArray name = parts.at(1).trimmed().toLatin1(); name = name.replace("_", " "); if (name == "Nko") { name = "N'Ko"; } if (scripts.isEmpty() || (scripts.last().name != name)) { scripts += name; } // Append range to script scripts.last().addRange(start, end); } file.close(); std::cout << "DONE" << std::endl; groups += scripts; } // Write symbols { std::cout << "Writing symbols... " << std::flush; QBuffer buffer; if (!buffer.open(QIODevice::WriteOnly)) { std::cout << "ERROR" << std::endl; return 1; } QDataStream stream(&buffer); stream.setVersion(data_version); stream << names; stream << groups; buffer.close(); QFile file(path + ".dat"); if (!file.open(QFile::WriteOnly)) { std::cout << "ERROR" << std::endl; return 1; } file.write(qCompress(buffer.data(), 9)); file.close(); std::cout << "DONE" << std::endl; } return 0; } int main(int argc, char** argv) { QCoreApplication app(argc, argv); #if (QT_VERSION >= QT_VERSION_CHECK(5,0,0)) downloadAndParse("6.2.0", QDataStream::Qt_5_0); #endif downloadAndParse("5.1.0", QDataStream::Qt_4_6); } focuswriter-1.4.5/resources/symbols/symbols510.dat000066400000000000000000004411041231434177300222200ustar00rootroot00000000000000 R4xڬնffYh2[̽33J+33333333C 8dY$Nı$Yꯧaf3]ϩSUoܺ[AM$)YX)JIuZQB٭T"lhh?5kbhdT#JjD%ۦa^vDCt`H#ek\ueD{[lAFF#LB|4k*JjYqx?|T qLRGbh#)~N>ZĜV~_ }O"|J[Dr[ǞMm**{Cjj^^`^44WI;:WF"v^/a;(YJЦl  R>%_=NMS[PsR"Y *(Hm>MAGGB7f**m&k^BoQI4=hGy@ꋏ*~_0,gvcݠiC]lVj^ujNSt]辒vվ]]n;`w]KKBWe=faZbn0 dha m]/3u\ka5sAWL1_ia1_nae1_*3E|A[|AZ|1ga1ca2SEgY|AgX|A̧L/b> S, b> , b>Qg| e'#XA(dUd+xnMBGǷF|>Hҗ#)>H6LSs("Ct03YuީL&2%l'qKيvLJT)QjIp_5щjmi>ӤhixFM^xj^> 1'I+ EOSiDI0-9pJ)bL+ǟ3"Y)E,[)xJa$V UR[ORXZRȸBE+;mZORx9Y)HPJ.kJ)bkPg+i+n+:5&M9iz9}GKzT9IoX ̧q}wbR+ [HD;=2JD"Y+otgx`WLES"zDTQJDK=*P~G{JDs=ZTQMףG5=<=醨Qh8GGOz8[PX6xbz F%>fzl?4D>fZ\?f9əP P"@Ţz_zT5-jzTQՒQGU3DU$DToQE)zTU-zTQUQGU5D˹n2_k1dbb- wzp`9h=k)gLugL>>wb' V_qPcOzԔG rN mN׊ [\R,;JDavaua ^~=z]ݺi]]zi;fas}A ;LL[Mj[ δn6ua5Jup*j!*]%np:jluz_w[5zZpW6PS+95>cAB8E=aMzVc=D2V.wo}3%7Ckfn<Εo_  jܸ` 9? >NoשV.Nk"pjS($=!prGm6Nj\Oz8EU(k>\85(jWlAO Eq1Ǥ r'^ `ԺZ'{>O5bpriHphgE/oo/1Jk7_> HҚƋ}p;&a?RVݜ}gFF  ku8U4GC[<%j n1_15¹)?h^K53'>pGV!7Pkp뻁J[^9 LopDm?'YcrbxCV\K%Y T83(S[tߛ*JxD?NK4rkiqf|VQ0(EOጳ{ hQ[u yY5/8x3 /D9qogr0AG3u,w#,Fb6:83i3i =a>&t{$ڙ <8/]7NLFڑ zLm=L3 ) HɸXLq3bTPTDZ-[֗ XpDj(AT >9jVQE|{^V 3~k`8{88!la;mV8ak(9é PaD^JoV3A(r/Ci}<^۽i?LJ``"q[1ljpTgKYwFYi u0֦ X ZϩxݴcN 5]T3zJ[VkwQ).*XE8%4pQ-+\S?Bk\,f604˴jsM ̒%Q"EOݩRNetp몭!Z[gɢ'iijqzvK3%CczJ9DS8 $ys~6O+_c̈O5Zk/Mm Pf^{_&No$O#Oh|tn^USM*NOcIs;qI'yy%,\>$1[=LȬѤdʒl2,=-NaQNȮ'+޷M䅉F[&&߾oI| e]b:c,Mf5Sk3ʳ"$+VۍQ՗McK&Fx>5ziL` |nss&=+ϧ`~ |$Av z`c.H H7E}\cMioŪE'ؑYڞ]4C w;Ãkzo~SԈJOl{Ŧ5GlzŦdM|i1(I0G;XһL&o Un'ȸ0 ͦqݛLfXG~cL9.W'm G\gmӮpkղqXcSWaZ4^&cC/7Ar_&7*եi.7br$\$n崸PHZ5ю-90yKjk :Ga6tF,r׮%ęїPSBa mMlRx|> :i)ŨO I!>Q3Ǿ)=QǙf`kcxZ8o^KM6Q&~Mjp''mc-NlڣF%_r)=ZlCLӝi+A;6jc& C|w/ 1"3j?Q /ۮiǘOc@-?Dc/s_C7Yqai7mzbL6W3 ~;fR>2 Rl4G5V^bȢi35E<]|7NY|SiCKSsMGِ~Th&l=owxNwX?qlѬlĎb/dP Rb&8ea[L4d)W&MoI1s%c 8mwbcҵlMF[1¶Qi䷕K1ն֦_ioeL\{--oeX{-AiY%v8 *`qfFͤL.<Ԑp}C}FpKi MlP2J44ԧg:ZKbоAYjzͅuM&:fjdXۤ"1eNz2dqmd "cYݴ̄j#'KVDgYҐ%+cU%+fN(NTc˛r"I匧̂]\\Ó&7bs]:xi(-d%`bz6H~P!6 mO,4'fOlxbj?qEL9;{>A^O0m?U?~#n7AIf'q"nSqoM3qo@EkrWhO[u?Ć&2>ɵO?K+'MC[k! |ij}55-4$_iצBXÎ_)^ E ÃşA0]ʵU?7nAT0E8_V33)AB&se̱ĥ[|"7bl.kDz+?3uEz?r#D\c cSTE)a#tME|LX|(..@l& 0=t.I~-L#=SP=%6a7- a1x`j5ƫ&Y«ů |Ki_4;0xAl4RϋO.LxN0uYW3])eSXOY^-Oʍ a+&VyT0æFS25Rr7㽍) 0=w}harPb~]a n3<ܧ%\ڙ Pa?t7wi0o2*iH*Y|_W%oNip`"3^|kfZɗ؋1}>5jS.m?Dm?WOѾB6Їr@k~Kd}6.6e@J/Ņ_q) xa+q>^ij؝aj.vڶs_ЩS]O y?Y6 $Zh|UvN0i}y}y}&(%NHQ:R|®""abQ§ S6lۏH#}`g?bL?u=o5i΋ydЋY]af4@L~٪; g?K|IdzyozyoH4=VH&KMLg]2YFLWWq3~͐ƭb/'tإFԧbs lcL-I܌q/Lߋ3|6둻e2qfߤ/-8vS5#Gn7K&]F㶋&4n;|4D</a' 6bb#&)b#Ƒ,IKOL0M 3^4nי5ZƘz#zۋ&Nb؈1y5%^&[V-M& -DŃHmpdhbLM׻&MFC>q^!HȢ{! %[2SWMzFg;^̖;X㷛Mx-ݭl] >f]|,MzG_n48sz`I~z]AºEG&]cQkNX".Ul]Y%yh3͢Qu> .du%]Ǖ'|]Ǖܢ 8d`PIwZ5;O_2f-9CDƝrDƂ-#L8ZdZҗ0}0 QjHۚ!Zqwbd(! mf;lo>8{1C p/d#Swmp#ݦvǯ[onctzf+0 ɸҠEU7uR fY=EV1 !S'veֵM:9H1;ۊ(؅gW819"N4-H^GZ H՗ 738Y~C W#8_CM'8_%;7W$8_yCo!!I!^! !!q!IԩûG; G;Ç Ç[ [Û Û{ {û yC]CuCᝌCᵄCC5CCߩS1W2W0W737172703120W ë+s +sC'S'C/cB"B/eB$B/aB B/fBO'B/bBO#B/dBO%B/`BO!BgBO&BcBO"BeBO$BaBO B&g!O88G88K88C88mw8 zxzxzx*zx$zx zxzx2zx8zxzxzx"zx(zxzxzx<zx0zxzxzx,zx zx zxzx4pp!(!p?!H!p_!!p!p!"S'BcB"BeB$BaB BfBw'BbBg2CCL!p!pzzG88 }z7?J88V=CCap=ܝq= YCap=gB CL!0O8`B{ >!pzXgB=!8*z%B+Caz8q=t 2z!BKC4zXdB zy!p7!q=iC.C8L8Ý,z#z8@8CT!08N!BӌCd!q=D8:CD!p7!pz+?p<z z8p=ܙq=K88!BwdB;=܁q=܎p=8&B0mICքCD!p+!pz%z8q=܂p=8nN8eB7#B0 㠇1ÑCᶌCap=܆q=ԱíÍí - -CCp!p3!pz8q=J8n8!B7aB# z8p=ܘp\zz.z!zzz6z8q=TCᚄC0!p !p(z:z8q=\p=8J88B8bBW&BcBW"BeBW$BaBW BfB'B?Dv-\p=\q=\p=\q=\p=\q="BWcFWe@* ZQ++1 j`EDn"ǖe@2 b@5 Ǜ߰\0jZ`1e"T;T`!|\U>.|\_T? qP1d@ *Mo.+"€o "̀ǯ'D>_1  |="ǀ/[D>CMo-"`@ |d@/sD>~ʀ |ǀǹ |ÀO83 }) ?e@OcD>1 |"?d@ ||g@{ ||0 mD>2a-D>ɀ7:"_c@ ||/3 %D>Ȁ<"c@ ||SLo,xO2 D>>΀("a@ ||2 D>πx/"a@#S b@ |3 6D>ʀ[x3"ob@ |3 :D>^ˀkH|=*D>^ɀ+x9"/c@ |3 "D>^Ȁ x>"c@ |<S x&"`@ |<2 D>̀Ǔx""O`@ |<2 D>'N7 b@ |<3 0D>ʀCx0"b@ |<3 q?D>ˀ}H|6p.؋{2 qD>΀Y |g@LD>`@c" |1 ʀ "3 ̀G)nAD>ˀi |c@c= |ta@c |t"#0 qgD>Ā"2 q "'3 q"'2 q"3 q"2 q "S ɂ82 qD>ǹǭ%"`@ |܌)"7a@HD>H3 6b@ |܀#88C83 q"c@ |\k3 89gɀ5:"Wc@ |\+3 q%D>Ȁ<"c@ |\] 8kLKwS}n楝1Su"1Q׊E\#qHSU"1VWz{E{bbEL$KED$ۋEH$ ^ "ޞ'"ޞ#"ޞ՞L@o t@oO T@oO ĸ'z{H'z{Hljz{HǴ'=Z$ۣD=R$#D=\$D==1&!",A"("/-.3n'ݫ0߉YS@t<#E]I{:7l ,NǵwvڠwtjkZ|[SF } o C#d n4Po4]Z}}]N #N}M F}IP}U'A+x j)*F4n2.lKO[g~"V Y>[ts:,S#NZtpS={i3Bj.ZTN%h-9Zmɤh8Ҁ> &\'N '<O Ǒ|Kv \!G}Q֡InЏߙAì7&P@G)kKAthhͤz ?݄qѸrҸsS)޴Eu{Y7 tAOsNj,zOw#ҽE|3莄G7_]Svk+Oܫ"Vu[x>]PjE|^΋k Hnj/'i{G >G@Y-;m{8iw/b r&BM;nF+FX΄Hw"* w$yb<7)d"P'n#HkF $7qXίώіk)@nF#ѢTnK6bf6[ST(׾lIlAlN u@QtAąvg潟y33DZ_Ges3hާ/9njEewZRUEn*JMWԭV[f+Ju.`zuB^gZRYE]mzuru( +VV[QY)(ƥ— T%PjBC_@p ~%8T9z?PgjLC՟Ap O%8T)?'4D @pЁ JpA %81=8z;(Wՙ TL Gtf83a@QrHg&Й;3ԙ L DtfMڿ3~@Og&Я;3ՙ TmL p{tf۽3ެL@ gvf]љ $3e,u+UYY9S#fS#(gS#hgS#gS#gS#(hoFiAENNN=AMNNNݝAUNujeݵS#h.A]wSFP4 MJ)4 LӐI4 ݜH 4 OӐq4 mK14 5ܞ!4o4MCi(64 ۚq[4mKmAӐi:MCF4kSdmBЪGE`zq<kxhֆP :[#:\;]:^C;_C:`;awCuC뀇-[jvihg4 u%MC~AP44SJͧicP$v hkǠ1v =;axˎA޴c74u;͎_@D̀"_`@(  x2 t<̀Ђj$B`@( Mx 2 t2<̀І B`@( 2 tRm>eSqzkJ.RɀP;Jq;B)nc@(ŭ 73 &RȀPJq=B)c@(ŵ W3 *R\ɀP+Jq9B).c@(ť 3 "R\hx0[wp(|^ǡPs9qB5PY 8Cgp(t~ơPS9r BENPI %9C%'p(xǡPc9r BUPQ e9C-Gp(p'm9"-R$L(r EBVH Qُ")R$$eM(z'EBNH 1EВ~̤H( Q$tNEBE P$4l |B$ }(,"OЈ^JL#YDɢV3$L,dQɢw#Y.$ۙdQe;,lGEM%YTE M־L0u5 [8 kaP7c, e{ u; t*AMncarnmaP[YA]nnaPY, juS  6GZd` ^70 Mw#pB%RšV 8J[)T +z[JֵRunm+[JִR5oU+YJrVRg+XJ:3vX5]ʵlYC-Cp.S4w)j;@p.!8UQsNts#8U}s NU%8UsCpT%ZOSZTuWS>/j|VɹR&8s6rȵ<'T0TaW ]EB~OІQ$K>"Hhį)*+N|AP)ZEB-~IЋ_P$ ")1"s)1"P$c6EBA>HhϴkLn'TF?ŏe:#@|$#P$2-PF }Aٿ'#wenߖdDߔ2R{UFP9JeA$#(?4/ 6 Ba:̭u:" gS$T,.IP3(p:EBNHé 8"'S$T$NHP(ZqAdEYTcEFPeW^IFPqEA֕:oPn67< ]zlJϵA( Bm " wA(]lJqgbwAXOwAک6u;r' $hPl*x?2wrJvbTvJ-m%:TVRP[Hqs @%n&Q TP}H*oRXPmI*mC @m .a?#պ2TA} T2$#du֑2j[KFPok*n Aͭ.#duV2[IFP+*pA ./#dubj ҥzJ)j*eZUsp˾a;9s窤m!OU#z>tȔV.SU\8:L6CœC%!Z8ÃpZh h j1<@ (E&x1W'}$$CI8@Ejͭ( u_;*2n2//izzJ]TuTBK,"-8.y)qם>UZfspw~ W`]/jpئi79)Ut-_JwW9dR%4iwfΩWæ==W(Þ}gJ[ .g ]Ӡ׸C\/~+]$Zیn7éIj ~#-tW"G'hw*8j׮yڋU=S.z ej"h*w] KLPÝLً1@MӜLqUW::aN2]*Vk*`[}NnւAmܠDC_x: zpeż:qzيa _&K[zZeKZIƷGVjh}B Zqmq FwSîmiY?[~mi(- QYyj9gsC à6Ӄʻ٠F&:>6_ [-anb(7Uպ?Ro?s^kzlw-f\/X.72ɸJb։_VDk݄_ώK̽_w>\L_h9ԴHmg8^XăΩi@wRN FA M/\Vp s++ap~m}@3O[%MIJ*a@kЍ5Pm+d M<^bu=j:P@VE~ѺϭUv*ve}2 ^U7!sVۆ^%`h#`Vimk&tŗ M{? n25 $3e'Z-'t R˂ۛ*ԫR3 #՞&TTT?IK?T!mbؓl\TZԱTK"+ʣ'NPn,<^8c3 QN$ FvB"݂@j—xT~?WZDg'(NKŬӚ!(&ɷq^uRyIf会Lϛ2y{el u6̈́cxUƢh^14 Y]{33EDfB9?.3\V7=ëR=^1VGdlޫVRҌ5tg s=*28cT0O?\b!bN[$tZtʩ7k\+) ÊsNP*zi>n&.Pc?X>j]Hw9Sڂξ.t6"8}'a鿃తNp ZR VCWŐ`^ϭ܌O*fM:KuFê8i;kO#۳ar8ғV:ΰIm~Ac{J_1\+fjõ:i\;qm+ n<_p0tU, 4NBjw#D:&}AЛ.1u\|'/2dX̅LCLNfh):\ Wyb%s?َrx=4ZS#ZqZm(q@qg:TW}J\-vJDy/fPT\9Tjfb9Űjglh"'5O4C`\?MݮSPoz'TO ʱv 1v v Qv ɑb ;.)a֏0dQQq |ɏpD1 b=԰´jdC(Lhn_>力e]E-HE !v\սd^0CM@he_ z3Mn?ӣWQ`MT྆PU7cXqmx<P]Ax}OCȕnaXqWkq3TsL.nGrEAZapW2O? gZQ-m^%wGWJbqx#Q0b %ZW+V2ө۷ I ҭ@35fj"ocZMw`Kw{LMV<:aꨍk5< jC_״fVR [AbN;R)cSͪ!!K{55کyx}Ƕj;νGTC=PZ{NbS dvWZkd L4=Ծ2@h!c g~ Wͩ{5 -Mcza): {v&"1ڐ G`[nݿ[ocne, aʠ ~>9<+xn&2q{dRmj061}jvmwT)9z7˛V?5>64/ax;'Z:mܰDJ,Τ2B4xNV{-8 vmE:my/uf0sٵ Nm"kܡ0W\"C ^jWT;bɘۢlk{FbF[?雝5TtsTy霟8d]#Qu{I9+LVJu?Pl^7^={#E@۾-YުۢZN-5:zA[P0)n"o| B]kQn#Fн'+;8q [D]ܼ<3,~P@竢Dh˃UK_c.hE^_M?%-/]BQ|X.oɣ<3꽥zOr=58oᧉzt1~9qSL欘7ifU&r"*#U~_or/^e_s֟a3O~.⦫Uy[;ۍByo1IHB)XJչ YSŬlݣL]Fթre[F^(~ػf5{7Q :zMcIPxy\Vxlâ'ߴ7y~g:|1b"ppxm;qw 3ZEm+v,-㸍X毠 8Ç$QK+[ɧܰ|5\o!ϔݩl.'>%ġ8JQ`S[_DÐ8Glbʗ_b,#Ђg`|`97 D=:b0\Tenr*v0عi f΅D<ƤdϟSŰ6֕ߧ4u[Bז<E%?t󮟴kC%[Za)TY./%s51uыSa[U~\Ej))veѫ $W;>AVu=?zX!;rlj˥8^FLS KFTΝޮ_otQiFqozq>;'LOB'I듴J;!!cR $${ϛ7#9Ӿ2o޴73q&@nI=-_lJ!^ ^"d3A[{(;-;\םIHw*vb28*x㯈lHd۬J% 7 &sFwʭ-z|bV>QG7daR)$ꕝnQ0Kwf5!4.fhmD_L4Y Oįtگ2DИeșԄNn$z`V 1mW GܲO85g5~CXg蛒 [p(?ԢU4 #%n2I"_`@nfx͉zוNfXS@,3>/ 6UU |K*S‡GGt|Aۿ4|_ӿx&rc\=5kC:ZA{: :U$:#lFܧcNjeCM_ۿpć{U̲wk*Pe4;^ڝ:DAP>})>ܡ}pPy6sB5|M6!*h^7MguL>4:|ćO=n E/ zaps0|I/ n Ç\Ďg I.1 >\sDxT"[r@m>uA>uY_>-T//e.> ayܴiC*gt8a_7Ir9>uqr:ޥwCޡ77>=6ڇ |x^7ӛFv/WMO_ЛQozr>t0U\K&K&ħuEEz'ÇkDe%/_.6* ejdZh݀:QZ3.nzUhLí hT`\È.7 .C1~ yeAXǾà ƷyAQ~1 yIXAXx@XD@7,#>{θW:32hg.,ݧn 1֡_-qx^}/?͓_Jm K`O [h w"[zc>i% qЭXcwGhhDG0F;ǕΒ6h: ;+0?WcY"O1.V8iQy0vn1ʠ >aN n6SO6c72K?P{ZcjcBR$nQB">I }nd1pOKʇ8n $yI۝ngUl/p+^Y:@)b˲`dFP܎-e^Ȍ|?Ϻ[q}z+ju^췠kx(,1k=<Ó_7؏`Iz}5Ѵp{'Uvu{2qyM o+oNFokPw}Lt|MYp5vߒ햫WwBz/{.+WCMC/O |nwQ7ʿq28ETR^i߯%)/ceRF2=è&@__A۔YOgH[A_@ h uP2JI!nBh>!f\ӭ\dS sj(}6U$A6>HPkzCF#`Oe`4F #`Ofzl|CH"`OdeifR/Z0sٲ 癓͖kN2#f^p2z8=d=mF )NJBSu,Rgǂ!630!չӌ Չ AtNkZȹ;eR@n֘n}B86eLk3Sd<ކ.Ni{ ܛm4%vL`xMoN:vE4j,1mc+[7LqX<=V_enL1+e@#\mnQdERhlR+sv(4j)6oQnV{iYMΦV t9Ԍ4nם~GΫm3hn(֗`/.ޚl-&%6F10J#n 0bfr#n,/Q?,5Ćl F6Ȉ 8A f|#ظgdظ!^ec=ۈGqbsFFC30#Fhz!Fa~#42bFƞ,#lE2v0MYA,p1{Y ǭ?p\8lwOf8eGhs8+Q)D@(jZb\x{n| |i|: HSIRDp|o Wlc `(mK"x&m0(.e@bi n\QN aNfb|+CadY8,j/rt[0GjX5a^#rlq| {88k~o.TJ4U .CD܅m4 !;, |pUBķYXݲߌ0ja)N qx6B7[0^RwC̫-: 7ixoGlC+mN!4qU&ZB܂Z2^FMqK)N&@P*h[@׿8K$ 3wQ,aоa *0C^OYc ጞGϥ2 o3z!9w2CV;r.\i0syԳxbCY`t6n8#ֲ↠jJ.U(7+H%+Nb^( L!ɂ O%a<8Es %ne(r5V1&"'h=9>u:9zXC4wl`d$hB؝JΟ۳Y~ zTѬnB!05D8u}ܳ-LCĤ5cT:đ00oewXU[`H߇凊ndOn!KzhKZͳS*Yy%@Z]sp-h\EڨBbE\1b-]pat>@8\4`rЍQ8=g0iP  ֐ܠ,N+q|?upʸū0\,cu`ܡl b *Z_U-Leb 8:BO#LY `!b67"Ȉ!T#KDD,f\,LCD#G[?{@ߚE'o8Jܤ@_T,@s#?3N🲔'JRBY(!G(ё,r|@_e!;# |q,7H( GXn|冚~Xno7)~#NBB-y&y dK^Iw) l7q9 A{@̢RlKX丘Hz . d+^`糔< %粔 %gsdKB3Yx ^B k8ْ dK-J~ y 5}) 3Xnr,7@^rF_r,7@AȖ| vBPHl AȖ|&![, d{:KXHTGD}, 4qKȩlS8ْ'4I, YtdKN4L4iAȖls%5biPSҠ :KN4aTK8[ѡU3*pttL8G;f:"Iϩ9 hENASNI;kVA."Do2 K7IG4v7MSnСu+nw":PQ0֜'\؉.^ m 9F{JzTj-^$̠1#`:ŝ::mbڶ% \P4L;bڙCb Gd F !dPiM(Qc dIQ'JS8@z%^X' . ݥ@U62BU8VsRP@6R&L26(HldBp>0!\:lV5܁ؕtv-S֨熽Wl(tM!ab)O"V" wnubw|-PkcLzqYceD@2%5'аpCVc"Q$de,"ɈxGTº$f''uA ڂ4?,E c^Y2["Yd`[LdՕpb# [,YA[Di.gGpB~;/zM;tOZ;bAg  `ĈZbxA„l~vewWqkZDuM 'hwoeS*1A.*UגGw5$-.._qm;>R =X AP?S)஼1i\]:6z %<YA.6ĥe|*=+FHtAkUz@^'`N(π>6%uٕx-tWDeD/nVEl/r+ԏV)S{7]D5!]L5zt'^I/0طиKwp`~ng|n Xvs8?%Sr4g:g89[*}u(wGS\M+})ne3W$(6*}髲nf aZa'f/Ȁ#6<3lvK梋lmFY&ֺ|t=\,?ՀBJڢهP@pw6h'NuJCRJU1EWpZuGZFwSbppTEڪu0{@^TpPrh05)I J^HwɎ,$)>JorAV\p;*IfeCwbY8%&5{l\~+Y{+Iتȵb*]δ@@c4ۄ%V2v,7Kx6%$-]-T:8mHu+u^L[#^v(:/`Dt:8[(7Γ6봨4A+΍.:Q*MrT;HG%[$(#\ xT d=Mp33Uf/: |̩sWnX*qR /4lĄۑ0&1@<LJpa*6ї2OAΌ}T~+g)2;5@gsIҒ8=ժbd"pOG"S oN_MW\bfLX,^ovt^U.y]RZ.yj]:$YtnT9tF\R rӁr =p}Iޑ\QsNt뗘[p  ϥ,RϤף̶jSivt$efLoIvRDsi#MYyiZ1MۊO XD@8EcM˪$IlNAJRf#>z'#,%{RSui~tWܓLpE\m5Zڴf[δ92 ߛn_:*Sၒ{ҽ,6/xlCޝ3jyWsS;3 wuFLŷ "o df::)9]E:Q_|Wf,\uQ"3ti~8&Mp!BļI)/TA%#u̶>\Q p^f >c3*#NxRR@J fY6^#ĒFbTm/ 3ּ?6"5zK+ikĮp)7tҞ׈J^.Pgڢ&<dg֮\]imBXH~g[;7v +; 0 QXT ?#օ+tv~bAsM#;#U쌰oAL2S"D;& (qn-ԁ>ib & &GL@:E q%+ JyyDe7+@/7v$2'Tz O*?qpD]upIe7gz!ϾI <"1*< m45*ݭ`D{/gsn=4yHR+]y]qzm ,r]f8ГyЌ=M yYv; p$ Z63tTC)huyXN av xSB^l|<n- c^iS:A02XuaRC*cBc*/9@VF"X猙̓@6npsޘwApNm('"xy2`z cX 'T*x^_qE1) [ܯWq!یc(\}[)/8ȳ4^_j0i4`䑀O<9<,t%gs+-JF `KIP  {cHǸxBhR0N8f p}q+rj? ĕU~[Bf!l v)GmP+;] \"o'Pur8BZװ~/%Cp3WǕp Rhל9 /2U \wM}T]ާyR {fp_6i9u1OZ!cҀ4:)UYi/f;|W_m/qCm)ҫBǷ,t ZRLS,ñ4:|6mK Q>ׇ}<-7پt(q?cL/Y?mO8Y)[{IӇo駿+Ofd\l׆o6ϤM} WI܏փ A~b8Y\uᴀQ} 1K'q6!3Dk"~}"'^u}:35dZ:M҆$TAb$?5OkL4LMw6p4դ)aiuBxIr1fo5Q㵋ᷘ fӬ^wu4Y=Djvzƕ&)<0KQ+%knP×k{tq`K؆/3Ea\jہ;%f bSj$u?Iכ~^"\`jS'Uon<Co5Q1iR?۬Iq~@ uJ :86Ǔ_mXBNnMhrab"p&_l٦<H!P<[9 SV,n ̀.u{5E#x9 !3ZK4&YJTtִĒ/&`$2om6% (7S)ƂGSoFqOImݦ1ǥjsw8pXgB)Um:d@OA8;lzwg+Z5[A5Yq5#Fxiصi3xxlb+]>pن$$"%k`9V%ɵ'Jk:mou [vqvtcm2۔57d+"mb)lbvu:*?֦ncSy\6^3n:Qqro 1\ZGm8I a^5̎5q"+Z0j^ԢfY LjY_*EBK"R E"\U6A$P7acjK{3q\ĂtR#,ӕ ZH"Lrr]T'r<5Z0KKREsp\lG ERsa^f|ηxzgGйR{]etvjN*HěZJ-ٵ.ڕ/=UAb@RzK-콓mصω[n#mÎe|̌M^Mmrۆ-ImBp+^=(P9*kE*|_n}2ojnÆaAN/X۝wgKlNP)bdKRYaCKA4]%"p8xB%ץ[ Hmtl1"V) rY܆G Y`/2lUAV؜l 큶WmA@!JaN,3ձm'&5.bδ_@Bnd%t 16l`OcܩۜӵWR{=TDž2TaBKGb\5V]\1t>i|lcc*Βme2i;^ (+z(x(A8;#pshc#9zݣ((Q+$-|pvN>LwcX_n׋Ql}IA49 J %#&Þg$fb[2t1g;j%zJ .b27JGl?ɏRamEͤKX@R4)lF-|0UHP`M4`V'j*)S)T#*LxQ$9]8l2#ʠz\VxhH-ERy *&ͪ_p] #~b|D!݁"buU 2(%&JҶ٬c¼)~dQd*nl&Egp3ؔ@QXPDtRaT;0cMQ|Dοψ87$#j'"VP:t&zB^UV# Z^\ZËqM7,h/y=íp̡7wM#gdjwiM)xThwG|b%T$pe d}$gȯ+D"OX:G^|Q&/#_s\*P/hIJЏ$܌ ;vl#$d,a #X Mq 33+,^\#zm0t5#!eKvM䪈*y蜘cyWC:% yG`ơ!7Ա#'YvT"W2YrS5x)V5Zor%ggP2AkA`"eHȳpA0@:{1Yɲ:*"(xJ~63ɓ&\6 qtuw׀#iOgUK)8yjVnDx.A5IT%jYW=myҁrβC B ˨:/ktBK+4ʟ^sk6WA1(-U Ne'ΊEdJ2:b{3cIs2Ee4vqHݗtCty,HhbbR2oQdūz&=.'K)EybRLog ãkA[ok3pT`NB- e_7U)<$vRT_Ƅ4!=ormMI'kXݕnY0NUU=X <+%$HՕް7"Hۙ׭ JV#E tq+U.\uZ p8$fOӉ"u缍 Fθ!n)&L9#by8mL!h/2ۙX4')EETi]Ɋ Rqeh1B UǓ{pLAWĸSPRs$`ǝ \WfyOOE1afqR O*| N:w¥YIx_ {]Np#ԪG& )%|D|b}FH`UE.x(QvOK\dI4\{p2\:M|7 fCA q4FCR4ߤ$8c7};]c" ե>?Fw)!dAE@`urzMRw [pBn7A<\O:tbC4ˊ ݺ$s"݈蝈i}=׸6Am}#,Xp{\Nf_R%V³gMvBq+iyJ\6 \rY' 'jaXd %%{IŃw6 y$dsx+7%1sm(t0vH!크fcto$]fxll1膴4ވ~KZ)tx5W4T;"`s`(9\۔nkTɅjcF:*CS(vVoCZI @9 kX5w>ͶApݏbCc]F,].HV{mZ2I' RۚtIC$"cŽp#fu YpL>2ɾUi @TOk+ |W n^tdXP/kYiޭ`p A24aḻ=EmR R[yIeZQc,#k#iёM IZ8+yyrk' %i9:$2$$$tIWxu;Uu棼-kK7Qپ 1Ld(p'dA4j4xC.7?]*mj4V Ut~,ܴpG%WBM9iI*8;1檠:4*ّUI{ P?9IHX%91A i O+$:I,2 QL,`ţy[iCaMIv@*=F;8]"فp^$c剦{`aMV}D8 'r0^oI^*0yn޳Yl|gQ?(bǫFa}#\=$ѯ9Wrб59zQ<)Vsn-T&z;\W tiɆvI!3E;aM)"zU=!0N GO38x/hDM)eȆ3bF zX1942qc=Gy .k/ZՅhA/:=^c?_Sswb|Ն69n \ o4 cFw~S H4x'*]yItG98U/xe $oK#V%\?48306Db1`"<D̴ר y~uҢ.w&@25D)Pd4azy[g#J[(^INHah2OIͦʽϠ,\RrL9gkqB 2uyxɔLV\xo3W~~ &܃7'UG]1O#\gԜ㍫a*wa,Vh)jFә xTaSf(@u/ͨ&B8whdpU➝Lgipf]h|+}V*ZOMdQ >4ԣ~l? O]7z(xqu=I2,j9w|QJBg=UPEk{QŁCŗ|5O^E+z7`OCz6OWңq"鞢!T/ѓ,>ܧjZYEFA2>ћćXer~*r j Pn; n4\Srl2qqs! UrHahyQ4a-N3#ԛ *H2:t r=ߢFqdL&Ɛ ˀ_g9!1u >1K t i }\NímA<6NSC1Ló~9V\m{Ht~2d=!+ur,2͈ ?-hs{O~Q̽f FkJie=&Ε9LyÃ2lɣ-9iNqQYN4=-iI-CF۳n#|>s9kMi*k58([l *HrϙҠ`},tf@ݓ VFpU2+caUy_"Fⴤjɢ]tXS#[Uڜi"חTa'~Kb> CK|"cFl#i'h4W轹~%%2s[bR":S($Ђ tAen) neą+hBے ڂlsB]q u$NM,aAoV9od9li-ə0q@FnMtO%Y臵y*w=GML.1u\ҭ %C ~KRpTdW"h~ QD*7hRgؐc {W}Ǘ%>뻜cH6b7Mc˸NEQ*9, w)\qd-4'0O<w ǂl -ļ w1Wz++7?5&9ED=/9&9\ \ٻA=Yd+Cy\8Ro\d!ω@9\1[g6'EKb$ʹ#9Q<4ybbpDB=F֮&{OH`v.8RnJЄCL!@؞3qN=Ly<`9 F*c}@#: u[~+6{dTGQC%d<>,C1RFԳ}4C&_g<F6?(! %gQBYdٮpj%DYFYB?)?0b* ĝd1l:9J֢Nʯ:QDҬ Nύ:Q?ȱ],Yc GfcF FQ}zCYф][(߱mK߲MKZx?$7lC|?G); - IJ?5KЫir=lZ,Z݇tKKٚ^sKR FS7eKK_psJ&_ȶ02 4 `A?of0FwHF( IǷmGMğ$1qbysi~CNTK^K}ƺ ,OV 93䟲"j'm 1 gLbkuVbD>M9 FX,@?a]ۈ'{N7ۖ@bt7VApF2H0KHI{-&'uh?qhm%}<5-TD7%OֲLu|8Kzy '=|tL=>NKi{k?^z]@祦CC1D>\2mG|tY4.ۨ&kq(>Nۨ&7Iiﰌj~wʚ2Po kA뤺Y5Q/#5V&wN{yh zf&Gij&M',cMɒdDfd]iD|AgP<*r' ˶Twq4i҂9ןaтxuXOhA,di?Ͷ3=T˾#OmfAyG$>r0@v _h*#>_`U~A=D mis3)~49.SGsLEA|A;;GT\iJj90^!抃pSѓTƚ0Sɓ=\0:;4$*ӤہƲA~]3eX`)G-Mם_wRX'bO&i(`RTo/eJ1^wI"a bz#Y&F\,q:Z^5pZ5\H+6犟 QdkSre- g~fUJC)/vJ5Ttvf7E%FTnYv\JUIwROLq[m!(ߧ.2&V"%h2|8d; : Ǔ@xs /~TjwW7 5axHG4zU ԏPiY@|&]iiS%* k$>+O]1v2㽖!9 (muz lQ]sE4P!Vk]7.K X̒O)ݔ` -J3x7%1H=!Z==d1xWpBЮ9ǝ}~# ›###–fJD!M=3,QSț$\PQ ~=Q>PxAVBl[؆GE^H:~ *kNC,Vɖr &\̤jXޟ0cg> ""nor?v~T+a0K;嚋Z4sXCQTa EHɨlpL%"dXNAL֔]' BHY&2 \=^؈ J )e\^dh?+6 ޣA(AM^m 2]V, 9|Vw_ u2] c($56!Y7h: Ӡ0D}+l~'Mօ賴`P?8SJΠ!NbLno [b(3!$`l"XEGw>)7ڋX@ǙJOI0RT*G2 ͿdH<0xUL&t?(%W/a`h( \D=ĞK~CiKEWeβb:!~euGՑ@ ~śȜW]H#؞[@MKlՃL;e=Y!IJݘ2ܾ); )8B`xN 9YݗUs^!9/uRsnO̾8ҀsN 1[8Ck c,To5p ˙!1|u ÑB1ֺ*ؾ^Fk"}(Sl0|E? yuރחp>)+{}pc=?DljOO4hr:nΊ:bC6*>e:tJ#HOp:×Mxц1Fz?3 J~٦Y(E|IK $y7 A%cwv7 )Hb:}Ae4}m"dX}(*[^ 1(۴+a| v3|># @* K3@xWH6pn<.l`0tpu?># I=6A2G$ϊIE sToS%+ْ#,01%lX<׍驸ma/V/[$[)\whAWվ CzYmq5,7I s3Nʧ/fTzQ/S[dzn9n STaFñMO2txӮDpك]){1<3b3NEWE)B"Y~!K9XM<)'SJ~N$ 䑋|I*6ZLyo7&,C34n.$<3aG *٠htxYt/ܺJ?蔁o'VmJx|08aٷc Nluo4i[4ˋs޳в wSs{Zfxo=ࡢZi݉|\ƦhAŞqn$+v 㫫{Gi͐Ƥnfl~4Wͪb $B *Tw 鰘j] qAhru}Rs;QISoГ"hU"uvxhd"j8$A4j}9]smxNDXpL_uݡGKBX5Pv!DVP\9`؂(۔)) 1SHx ФiFXؼheDzV\r%׊Nd L .*!Oh!ppQ%*6@#A-vaIgDpVE!8pZ^~曏ָ%89CB\33'AáUc؃\ӃVさb0IJl1ՙVǯU.;u#%+Δ'=: m y4Ƌ&)bPw1<CUbhQNNRI"$}7-:yF-Fe7[$Vkbk]!+Ժ]BG1 < 9nH[xm33\Vם%p!ge py>2+uINYV;OmEĈI<\#[EY݇CeRcQm%{6c >q[qh:i@hhw'&;=頞!L} "<2kIQ:S@G}8Z%(!'ۦ'6{?OYr(!ǝ$_‘7 ON8qg1ixhDkRffa"vv^գ,SD2Ι<9س4!qΔWLh>03b[8ڨP,]1)L&x* p Zugss:O#;NHXSFLjXL{]K ?8>hv0ƕYYJzwbbW|崐#Abs`|18?Av'} 6{⦄lӞ(9>76 gqey+")銩=0)AX5ѹ"b RI!vbQ $0⬜BlEXSmi+f݆XQwye1 X aƽ#֬78T3MV21"i6k#x+)h?hRV8ϞuY,kL" X[H8I8.gv88ȹgwo'1avA$KPIA EnEr,J0 sœ[n׷«W^YV\ѷz}LENɟsz*g7~MoNQo=fcʝzS @!ۡe>3:q"~?}uEp/CM?tT2^8!W5\?p}% xcRS)6hPjuٻ99V9{u:q|ըũ ]+yp{. _(K?A[8YOߢȾDe=4ˮS)NN.fj6J},;YB/g·Y'{[=)p|F*(qRR~É޺(d^MfN f=twI> v(pgsulנb }Ljh9 }U{.)5e\hgi9/i`;`&)h~{roOJv߮1='n'΢aueE+-}uGfYS)+:`ժ^G8B-oFҬSvWݚΏӡY*[&j n%@.F>F3!s]$ tWѶJH6J(t^( pŻԴWR=|?]TrA8: Tt#qE @HT%J) NN)`ͯZSB薖Q0hq&u;T`d;kF8˜\'\+c3ö.IR!pdtWi!>jp\j" nfbM}Crb^~p yHZsABڂ7*;t~8 V@b~/:!-yAkΌ:?KƩp([*ۇXkڸ4z`(JQzcB t* ,?T0*:w}41 Z,d56ND 9BG.]΅BxO!fn@-cOA62hJ* 5MmS-Fz:kk@Z0"3GSu$ FIVi+x|!e=,8XWL(miE'Zrŏa*lY>Xͤ9ҁդK$ǩ͊6+FRr MMwV9,& -vIeзj+l-VF-&!;WmIߖԼZH5j2Bvƨӑv JʤZ!4hDs$G+XHY2 'oVuѮKEQ;v~cUl!ܗͥlm" %mT$Х1Yߊ &!t;qnhs܍f_;q2hb56E-ß;iЩ~(df|KmT%Nbe銳ʰx'LZMcu#%Lr}7Pg*e akޝ8[uᢗ(?ma2w`E5a2:Թ,8׬rTX~;Qfz yH"N${ه%|9Wh ntcXoK'F`P28{130;GL F7Z/jE$7݌I`/5֓{otSFOB~xSῃ8-nݿ<:bI]?L~l$%C61Aq6qTǞcs5Hɸ`u%J`w]<>Âj?)WEF1@;@PS{ec`a+$c&100` 1!ǘ/ 0163lP(Q 42l?2`}%JOE6?`"_\૚ՠ*_6(*X.[!߳gVxѥ!7aPW|kn8S*~o0%/oVwCAU1*C׍+Uŷӯm4\&%kb|!Ut/ O:&.1!~ )rpK}>cMʃƟ2} k?a&>K+=a'oѵP?t>Yx1$7 rj^-qGpv%JK+JO@:C K4v 7ynjnX; ƐXʹ@="-| 6`ϸ@2f ؀U!*ʯ6YZfCl/ S0`l} /  E /Di h4>%KBhdυԷB|> Uw/դqw Ssh2661j=)4 6;xBH?K%! Dž8Tn~ }4ˏ KJHz xv7yBPy,J46dJnPL9['aSق7@|MvzEe t醄 Fn i\^7\ Eiz}5NKH. RZ\YZXK2! ż*!^F!G`FxOt@[xSܫ^{tolF 7Jf@Js@t/,U!$P ]ͮ! ^-'ƼW%ɔ^ IqkHY(j0y6WuOWϥmsH[\՗yVWzԇW ׵z _b /R~EG|E>a#p K =U]$;Q]ƻ"Q}J9S4Oiۊ(/_ t)kET,FJ=%LB*~}=Q^kF4NjGMKPi/"e,F._ J\Z)cԺ(DyiE?X5K܃ZY }nsji<<>>Y?èjD[N3CMsE:p@@ũ^\HHyO>3anӖJ: l! 34ЕƫLҜ@ &@ i'e)FCd+u/;sGCMEnmZn'\gȀ;E5CYB mV/ϒ' L7X`ڇ#y+"cw.ܼUH{@1 1@{ I2veH!j!h (ѡvc \|ۍgI6wBڕgڱŪ\X,r0k$K (XkD!X;0HiO Jky* b4LptPe'6;5e,r_^ʪMLD 910V0kcm-i[ g+g8y#iKY(LA[WW-b&F[uĄ#y1 Vf<m!_E+ f@abKY!P- c9.l1*L Giy+4d,^k ?<3,v e yJ s&!;x,ĉ~[d9%lg gjܮhT:!LY'sNͪ6g49fb4o$ډ2|&4Q*5E 1K#7Yګ'-bVc&I33>f 6Q'ccx c&?nhcϷtlC2TYPZ3Qo&\T;pI[T{,qS>&H̹KXn&AYlH f៍1"[㟱_:pMt=V6]oPK Tϱ %˾g^PqSq_ $}G"z:;2!nPU..IwIQp~xEj_%}e]gg:~|Io~4Z|}7ꛟG}477짾y7U͛-A{[|SR߼;^kM߬W߼5Qo ꛗ[|W7]ꛗZ|~borZ|U<⛌XgahC3-B_}W?h[~_~WiS-B}WO _~WЅ>'~X@o$U{0Hď$V=~.Jt|%#mAMot<ڒVňoEu;iIc<ܒVo2(PKbmF6$Vah䑨>ВVulߒXŭ"ޕEPFKRF\$纯% s#0KS3ےXſ#2`.UDNl 39_2}ׯ' #FGD=fw^GB?Ώw1&eꑻ#DɏD4+B\E;#ؐ1+#B_/|^#G<&z%m><_qӘ蕡GnPɦ1c<%B_K{Ø1Ocrc(m9FEqcdL_n>?<& 2|ȐcHD\g8:X}uLs ^?&z <Dg ¾AcU6SzYth#Eu]Q*[Q]aV"ѵ527`BBdWG3>8ԕ4ّ" 弥W"&/TIQ+VCDWJܠ*!/EGmٹRc⋬G CW0Dbn%IrY8yz[ }hp8P.Sۅh ))Ůq}Rr9/r';&&ɺ$"K#rfWY2 ZEz^,i99NrX,'F;R[9qN,*:r3r|vRg8_X`t\ffNj[ZQ93VYG攰0n.yY| Nf=|)a7WITȧ878:w?bLNpouH]3xr)7/F>M N%-O)qڹ;# P8hd4FsR틌ʴ$΋%9E`ptA;^ 3"I\Bu=`2r"I):?n{e z}\ 񜨱8fv*ʷF߼. 7vUWp;>&XˆAE9mPʸ8yl>*1ձvڀhSىtl8W@TUw8)<ҭq襙~~DX6`;܍ r G+7 ݸ;:Gy9QP@:Sx(B ߘ93qXNt;Pp<Ùwx0WBlqe2!"H Gaࠀ>pP3/wNPB0k9GLEo8\0tOe-AԂ+@&〨HuH= ȕkrTJ#lʄ":>d8Z t=(uNj6(L!%XjsJ(8Joao SQ}8c$v`S= 0Ȇzjs) e/sMV謈%=-J8p7.g]sb 2e;< 8ETjҙĜ>T1.7BhGȅE`_ٜD=`9nԕ0h1Pz%,owxo$]I.5%H7&XW/2W -˝ H dA<(k%/ۛoxb\83vSX{qM1)^0ܞht,+r1xW.43bn{$HjOeEk(]9N$vvR*[Ħ#;K@]["`' ͷK\D!DS}`[g6Zuّ*kƎrMF -%U[Fْ]OYWlS:! ^kb)f=kl'I m'_V -β-k;zѺ%B&1juyJMmyK߁˽:+RL4xzYdkpI; @,6氕*W=xlGՏl)`շNCNJU94:n`u^[\ek#+1ll94&i;kLJM##0rL):+ה 62-FFgYcoPe9պx,uM.i[c`,Z )IH[ B҈SXYa>ݪ=K"d׳YC#~e#xи;O9 ~$9=t\]h ^a*+K%p-B`a2Y5у͗ @,- 5ᮗzn<\ X2^zGBOkrENfƋKZN eƎ.Wzvc,IQ,g8YE~E &ۏ&ׁ˜2.ަ2镊cz Ѐ9+_[0^.퍹ѝCWY /vdW7yLO,(ĦcbD|Zv) ri v|6B0m<32IT%.*nI7Px&0 #]ޯpc"Dž'Z,p70>*&x"Ojr,b )0Ė.ްj  =l?!䊴1.:{9e\V">#5M"YnCn`u9>i '[ 2RZyRӛ*xV,j"D I6M"wG6d\th>.i<XWF&IƆ7g&V5O4?XE'B?_-*/.  _C?_#EMI>`?10~ I~~1ÿe* п6nǥjzq,5ѳ;/w;Oʣj8`>ie]jp+xbwʧUDvNGy~2~{ w}&4 T|v?M†*pRFR3FũS!&TSc D :QSDžn>媬[3He~( \YVСwgA뷢_Ёq}f f:5>VA$%ΪoWB7sg559 iE5q]u35AW!I;n/+=Ux8 3ŜBX0G1,k }Z:efG_Q^Q3k?'l~ [lhe< Ȩӓz?MfO򧸯=vU(d>ǾKY^a1]kY&")o;0?.4brOs4 *˄;- U֎U {-sPP`DZ $dB |fAW\5xw;7,JOqQ1JnqIgVBĨOD[^Sƪ>]R*FmƤmAB46J?D6F;폌Aa=&5Q`2P*Sh]@v|(jE(!Xuz0{ l"{X`Hv2kqbD <nݖ6W?C-$n.ժ¿W`s0O `\W w(00[rzMiRI_4UW*R {7|? lo P f_!Qk7&(T<|%(#0|Mw N@咘tl8J\*EX]bUoc>vݙ љJ[ Cj,9-KJ+7 hbxԽNѳT H ]ndg}ܹn_#>FSH?/A1,?<"j卩fiK8)F^rAno/Tx@ _(akD!q4\Mj.븆UP.`NBV`P)`RYi5‡PU$Nc ( 4ggeA $j1Յku] tuU_B/yѫ,#~QD9YHf'"z^/WN,W7+FiLy$p("DQ G@NjV# n: W+؄JGK ˣ=FPTFU79OqƦwKrG6k :S\%R\Do*@ʕZkkҫ.` ˙ތ}x"iJF[#5u8D)X tH`*|]"B]BnCiLաO/@ YfB @ s Y)U+u' ?)(ء T-X!7:k@wu:pMD$#vRC<tD%ɤH{밃ֹ{ :,lFt-^ÕD$D)ض ؜-FgyBYT(7 %@zv{}gwV2ZBtPdJW'AQq`ݭb(9!SVJvҭ:8 Ke A|2 +E)CպSTNa|"jqJ6dtA$(Ӣ*,)k *'0RxF(Ծ8pI!Cj|Z&un|[qh^{\iX;*^q}&(FhceFr˜|6h:"ijQ J-LLE|&u čb|q odFI] Dۻ{ϖU)j͜#w)Zx=*R/i`B(z,w&+3J*/h :{h֜mvPuO^H\^itxV%|:tٿj<9] jW""׾rAVf'}hCב[{ˍCẕ%`lLWϥtW`$+T;gB LأEM7o $z&[v;QhģoQ%SdCv_J 'Z>n2E R! WVږ]%ն :uXfZ;olnGPyerJ[ qUB+|Zíp \Me4/Xޒ gZLSZEI5;M)Pt팞˧l+ahQ3e|WMXɅ[ ͲJhM V+4U)I~E-bY2'(|2<kc:7OrZ>!hviP(Qj*'3R'Һ6i_Ldw-, .tMK\2%PdRҬUW]΁Ш)-)IZ2C {8%ۭ]D6~z*ܥb K=Ƀ-Z:@բq⼔ .MJSz wzJk& !cQhx iyڰ1EZ@a]Љe!.%gD>TIβH )9/Ȅ/{y7%- @B4\h̪ <0ނpDT#bŊJ@\AdXozpV5+y҈ 1J}L <\zuc#$(1ƚEsPcf(nj2[AwEYЮf0DsPc*Vs3a(kz緜ߊtL&u=1aR>!1ʽJ$0Nr١pe0n?YOQcn'>H/IPPcR̅SE ܊S ^m8g (B@9jNS89h.?K٘yžNq6=Qrc8*-ўE =1^ t}<;ݏpHݭQycW`_/\l! \f E8aȦC:m& mнeU"bjAwߔ#Rzw":^:蹈׷JЋ8#k9>l!ͫ̈́l2V-M I p͝6/S] * f m5_VMFN hA٬mT7Qw*~Ͷ)$7a~NoٸN0|'A P-t>F6K>1ah[ uVOPJWS6ZM͠A^8Dޤ+,mo@]G7ANPj{r9 TS5EuuTh "B럈Z#E:B{4Vozu%}h8\i 6$3 % :qorhAߑ)b %ڂ>\YdoK-tQl2f_x?!֓qmPlNouNiᛢ8JՆfBv\W?bU fv5^D? `? | ezp3X(SMP,mRid -8sפ VЗP=m$]LWφ^P6dyݎ/&\r臒\+’N?DS`*כX–K6#U 9Z2EAce-!Jޫ^l vXűEֺt<LXz^}IXI&\w~4+VK2GDPXEiUHl:Z%ªϲ8 SNn 3 vIFg_ 36akCqN-vY3Y=ͥK<̩ݣ6[IZYb&)6*mҋC6[:=?*qPR@U兽'.UT՛hC>^$+M۞!a}α  ).$<{ɘ9(ܔjKl^X}3ҫ ' LHp5^$>I2C=iPycџ&"J #mIӓrxAzruw J }YC:SPin.+;@Cq`es(DYMB۷eemGb; kEzÈm(M~ Eꦐ?80AS 6T[\k%Ǹf^Jj !=4[m^7,*KTЃ%aGdXDoV Q70EȞŽk0T|gRP+6I[#$o0gB )JPQoy˥n0b^œ.wشdU]%Vg0ohj-hK U6X,kUkI nAFX^qPօOB ꠌZzy/Jֽ߹Y+Gx.୘ަ7\ ɭ{]|%A]w  yM"loCfH2/3(:N&dDhq9%QuR.9:ˉ@o1&.^)lȥ VX`x9/ %&iuu:.)#W"tE>P-^!C͋9^潔yr?kȶ%\&zN|! -=KS40mXGk]8Ce\~Y!"a`b6f|r9a Ygs魚`G{f|. ~D<97 LF@?R>$0'mpPSQK`H,=8h8 ˝d9<.G6`|ZaN32ߘ$:ҧܢLꢐa?9*ҫ6O]HɅ<#jgeZ7/eVeFOeStp T_]5oAbt4SjnQ N G,O6E> j'1KQ<5ZʘێeFX&ީciJEG<iXLsP4Ic->e Ѧ=S}8E܋ X+:>AbE46mZ‘saㅕ(> |2DJ< 'Ǎ.lzqsy1##}Upl+цkh9 R_bPG+@<!&ہ#!Lw~TPruA=vG PQ~ eWE^z0>$MSڸ(zq(a-CXmYONVsp0‘ۻv6W@Qcuj0 .{ʴg?]CUh8b ZhTT[?85!-1T.G{NUlIJnO,H 6{|e/.T$rwU640oIsRnYirqh9XHa6r~KNCIlIQKD({: [R° ҇sڐoJf׫hai[0cNQJߠ%cz ^AnU(ffZjE`@=#VtJ8آڌ:{alqܠ*& #0$lQ{ N^VMTTrJx{.iie3erNfMBFk4[k;fа7 0VJh(e:-Y=JUR7@ҩt1hӊ $,]5ꦺdz}b,6 8]HZR DQ/Ui 4x,PwtWla"tDrnILض,"pZF3)K\`T6ߺt W759]`4ca[qa=ݒvP5 UCRQi8$ se\G]0LBuJVBsɜh. @y)ͲJp0TދM8˝dAvIJ'8Uuzb5^B%[%cʑ&V_ ó%rRN i_ )Tʆ[pXA)? ޜ\*+gS{s#"Xf.AzfS`(9жՊwh/ATr_OHgTސQkhO@I>vէ\5{Kvq˯Z.-:_IeU!_nBM@7)%i|BIZe-*2.{+&[0QvsEPvJ@:Yuu6ݑ4kF%a݄E,ZI;q)Uh@ GJzga@Ƚi.BIȴP2*E&vbkbbN691 s{x  е(m47{Tk8&'; jvYMtf`=B*넵REmKn$+Z!V܆NjiYR>*nuO "t0fkZ WaeR4m/,qĭyGeA J,՜J[C ۦ_ܚX g% al jR7W{hKAh$ (jLh:zfkIPѱ T!-M{ފhj(9ޣoĀ=:~g+uJBriyi3=:DAu;1ˢS$" STTYkBWH.mm_jfY.2i)D[ZiRHsqhLI^II3MՑB'CrBXP#~\Y KaB7j^Β.0aeBj4qo =_*b`~^wu!F%"<,'"]uϓ.D ^QlqǟlRju]nh>oTy ԟ?6*\NIs,$](295 U7R;8W@Es.–53V%+GMy|1iRR̎ ԭSy\k4t7URxL:GW?BʅyV-2gFOt#K#ZyPrTȇf ƟĞqڳv2eBj mCn5yQsrt .LTs!1Ǘ C98M :AmIN9[u-!VF۩PCUP]Odp;E:%{Պsi> NVtv0ػ '%I2dS:hzPy !NL4,;jCQJZiso` Q*ʭ3E ]X-Ba->WFʥtKx~5"#Y6eBS2U$qݐlh_V ,1 .a+5lD^I9_8b_pHчZ0eNu>4.+Zz\Qsȃv-ݔ;mxg~fY_v- rMR+ekrF)++;$bEe.;Dq.`^R;riVT+Q6{PEsaBlg}8ʂ"RM.;RPrka7+r1+uEJF9ͪ~IJ4l_¿t?ry T" S-zdSrOFb\FxߤFC14jW..W0E?EDH̔jHIکZAa\RiP9*Qkz ]ǴsJ+!|BbVfcȯfsp2kLh^FWq=kӸE?@Sj1 ѣ@TPrE ^ mX*F˥4y7 j,&\Lu-'܍ZCeK䘋b(LԳ/w+.=[UwFW) 3P]a,ki79(l }8Gmsoa_7+Qr~t& ;2 [/n{AV7 BJ:Lln 2 %L6إ?aN]UIaoW_q6jnѼT] X򯴥Q2_,XeTG>c^515ycaUSiY|sEOZML }[Jhw[t*~=6yn]+7 me]&*]|ȠcO .+6r׹ 036apzx&\ 1?·Fuy^w~ ?"8%ŷU-RY,LIo̱2[a2X&]BHLR1~5~\\֋tS{-D1WQteo(*O&`X>5w[8vf(ڙ*\zOwZc~8VVhZX2̹ Pk#Mh'[RsBv5[[̊4{jJkG] r)aJf7 [T0CXQ][Q". z3`]@mbջF6* ]x|(/CG# FnT Tp5&H03<=F>V˿U|G 3e7 7p ȃ6HonʸEHrf(\aIqC='7lCoG^MA<(\ÂsPiG܅C0Fiz]'+^A.('FDLEޥx`0,Cv=/ɝk*_dC6kQ0}Ml4 ]/# RǮЯmRWT*:9xFIW%rO/}% ΋(k$`Q#k~mnn}YکEY_-{\Ghʀ[hWqwD~3BiaK}EFV Ό@ j xX]$*iUvNk=/O ۗXH#&G\m"-e)dT^/]P\)0V7[$2Nv0Mrހ~RBrzb\F\&P5x g}.)T:2iLob&KEam*@fɮ!nf9G/ *:]/}wt5LrhϋhKt9xdŋ!λ]Տ~ !P9r0EXd026Z\d)JxmE.{sLKDF۠Q.5l$>Y}`9M\:8?8nƳQ,a PpS8qSqF.;8H1IMGҧ5EA4dLOC>]xF4JMO3t zdIqFTЧ АI2Yc+ ӓF{n-z>!ta@q9YA}%ɏcObw;Ut ic84Н2xJ5},"AS䱰%s~tRb >`~ :1 9V'$r8^9c0qIҒΒG%LDY1Il1d#fxt#`}4_ KNA8} )LѤ<߬aupnT@acW&u3/™1+ Ӈ UQIq:8C}Dk;x'4}c9M$nqGPALa[267UfkN)'9hEAe="ֺǫ#(&.yW4Qwi EAM4H:$60lV4sM(.MC2HHJGyQ w$<+a'مΊl%GI- $8Ft2Q}~O·,t-GjVlL}HuHo3ꄭ7'yֈQp{ tș1i@L΃$q|| Ȇ Ow:oA =қ*[_)SpWJKVi^Wk)TYC{w)QCD%]uZFArz8 +K$ި5)՞E'붅b8X$ *Bokw -nm]B[(9( %ɹ]-Px75zuQ面0ң*rG֪'Rd%`^u5u9& #,,ݸ֍lwq`v{I PW}?5sIV lmA% lޓL[ɸL9 7'Ҩi,ܴ`V' Rc=G1q=a5zoK΂oȀyp$&L(Nq+OAaF'ylS"Hp2H@ه%sXP>wzF &aI+< =۪>Wj}٠0l_[z {6*T: P wjB?=+=@-بФ0ҷS*%Y`! ^@)nTlOB)JͮpW HtnqxQ^֜j/Lwλ 㮁dP_,,CvK6$^kd&r7( Ul x vJ.BO= 8:.xg!*'g-э򟝄rұN.5\j'7(1j' =uvdjL;s$$ RewUv'ꧺu')#U@>,:HMYA%YUCE!f-}[$M/b# zi!{֕M/W2.(N&ͅ*U-G}o֧`[B$^EEE$^@*R5;[rTjbZ&L+͵^XA )N_"QT(*Zw]5=/ޮ39K& =FjХx~K X,=7JZs9,'΢Dyl8K ,]6[1ɚ $84ɠLAD`zf0j.2[EPoƺ/g3;" F=NV`|0\azi. F9=l6Mm) `&P=[ Ҏ; c̒94y:V]q8LiuobP朝]P NN ]gHƩ3M%\J1HBUtC% Na8pxvB~^ lS7[\n9a]M خ[&R(\HV9ټ,~]:!|+^zYceaͺ'Q^Odʃ~XM2uJ6szsWUNΨMzUavZne%:ݨHΡJ4UB4{½8F? ^IV)G\K<=B]H( M{9*wQ~/2!q{YLֲ09}"`yN W|)zEiqg9@ݦo< Bbsv39T> ^79L\b'"{Vg͉(a|&>3=x:16w9%4A2SZ,`%ZK4`}_gsz8#eI. DP"3:F$mz5x*5<ۜ29*=-&5OHkx㉂V7Dʷ)aG'02C@xԏ%U,ѢĽwJ(u;-YBo`{uhS|N ɅZ_c=-~nA-`[UӦRav.+ פS8)źc'l^={}׽݋-aZ|+d)T[ 0h>IT4-M5wjfAJ4mB2jjMQo7|o[|Va]քӕ#)\| (ԾEaTr~r:Y-`ǧPoRѐ6:9I1 lYzTtcrSBݿiZvγ7r%7TY^{s/$ nF Ylt5'~TOGUC6An.PvR 0ѰԈh ,1$&"^pS2Ġ3ZEs`x`@"k%6PS*^zOD7 2-ge? \%xJT.ӯ052wCf_htf&|Lg h/sjaodIvD&+g\%E,a( 8ɍc}3vo3{̚nvo)dff;vrf;qbcafffNW-i$uZ{UuUu5a-nIZVFw1 R2۬jQwم =V;3\mz74Aq5|=TL8vp-ΜC_w^!IJZ(g'AcբI¸I^TBZ؊L86̪p_dhj{Vs;-\14}gTVačq3CقV=A =w;ݔ,VBUݚLgϝlRkNeʄgg0@M :ZSM2Ng&y.a[ P4li6k=mW ߸uN>85KLR@O)q[_"Nd@*~ 9\64ۭ˫T^VOɚIq?9KT.`|*V4Ќ/~ѪRppxM:5K#1LC׎`Gi=18ydZOpږA7ŨG% [6 4+POɢ(q_v%z~1??*KߥnS"kmb'HN5n*5++Mkgg WioUP BdAqk-HӴJwU 8駓q`SOW2@!ݝZ})Y3Dr #z1z2qwUY^?P5sl|7?G)m jmnuېYi84QnUݾ`y3!SN?UJ$(}D fb$['K0R3#+;"}/`#SKS= /@ȗs'n@ަ]Ȗ6É{qYr_cd&Lg,pǥ“b{V}8E-9̤[ꍙ|u*>$F߱krnD Wf@KZm(uzfѷQz'I;͸nBrE\}yhGo;jJރ g] ㆸѸn-Zqg m,q֔>6%bnG!ƴQ@tvO+ <8UkWWj9rlng(Ʈ\nr~($q'C#C0#2Mg&A=1rbshc.$=t\V7tf5Lם9gՈ{\ ݚoTb8];qW~n݋ӭŽ}J[_vVVo.i܁3J=sۘȈ Wx؎vsCdKVKylZBE[m˜P#E9\"oVY`8ߜlŘm -a1ܒ59w-iNЮte\6K9irSǸEKMҔp6$%f9Hei|짍3ד@x/fCa/͈2'e|(car&QKKnT9K# k&4lDvb/*ef )NF@C(K*r͘˜nOrNw**Zk9jڃxM'ARUTqnϳooƹgRJc 1tFesF]O0SF$FF274o\=Qh0i#79)}5kEHC0sX:on >G-N:q`krSeQqbJ}1r]a*d7ZQ3sPq!iz[J/{Ⱥh֌6+;^+Te>]-.۬S_qdד#&toIq4t.bO -Wm7@fLˆ%73G?0{ުvQNϸF-LېIit[IzI,yLێKqr^`]1A|{t9-RsJp޶ ]A]u,M{2Gc]fa7iوtZo*.+]ΰ޺e"gnt[ޟ{ Ms eh(*j -Xf۫&wb؁ l{; m7sxxAqWLcx+c "t#bD6"ʀFtyWs$ieѰb~V ]ҙ槡$ 76 '/Ē{b?ۣj+=nd @4'z-BqήkQ*ܧZaj60h_RÐ}?F|?={qqlݹ~H_g)X.91;d}Vx]\ict;Oʳ*P7.,ׅ=L |Bf0Kq3ktOΟPa2mpʖ4p~8tͲ*{7HW,6Jv،? Ze!;xJ%a[؋d "yA%#͖|R%0ٹaq;Gٶ&`f'}Y5t8 PLEW{8-UY4%F%^no-j1)TH%qs(Oؕ T;4jkaR'h+xĮK ў5I5v Iaܳ1>Yvmk< 6xЮ&K_[;jMJ]O~$C%K1/6cSeJзn!w wؔdWn͹^6ܧ*;"Unɢo-k%ܔEQFqZ+ܐESzqbR,)}̵#S%S $={Zk\)L@,yTs]MrJq. }[{[=iO-~eoo{NA1bA1"acPÊ r-";_(@;Op>;Wp<;Gj9[fM\E>+Uzfǘ&~&^Om?g^H+Ӳ{fy<9% 9;YdRMۛζU2'eZ3khUBم:Is^P#{;aɻ\lOMH X&K 5,%qd2-<IJELĕYՠYA2lFԪ䌸U, B";/ہ zl ~=+f2bW|13nNWò{!>:C2J1 C~ dԁ+)z?9 ji_ᡨJJ5 +~0H=2fn]]ʮZT+]R؏s ɚIll\5;څ̺~!Ԡv Rk# J5v̾۫$$ZZhb)uMĬesP91iqq(np"ljȍef)"enPX"7Ě,*A{[%(lhQ[[d:ГyUmE̬M jk,䠶6v;2FvQ6i]ƨ=:Z.dкĠ~ֱSYD Vm4Rw MTx+1j^Xugj۾ʼnY#u%xa])qBRWe Kx@wlN_Ѩ\MSc*N3^ϻƼ⥆mGO@PE c;3O:s|~Vyއ>CIAe3H %* T용3zw $~%ؿk&/g?w?5MBBD$c![ii#1[S~ћ ~ٛ@Kr{K$&r |6[uWu:J++E۽PjPxc(1\ZעȘˠο^r_]҂Z}YL%_zq}AI!V1BtSb۴~R#7!QBtb 2hc֪}t-K >"f4l6A.3c*Ilfm!@ <2eq* xfl"/ cĢ?rg(H{< ߗ@BXg.wJ{Z?{f~r j2{|J ,-{T{D8B]cxd[tGxCdU.;&ne_PoQoqxri5*AVE);5MLJBTvꟸ sO-W~g =u[tKԖB܁w5ýK6}`j3!ߞnqU)m6c[{Amܒe/ ,]eVM^|EoĄz#fe\'e&\Eo@ڢ7z#+O :+ęlxy`̦/ ]{ D[;v&ozni=DRqLD豻bNH.'_#sAdO2og"0("Q-FIy0t1,qp=+{3݅Jd׸ǷФ.b&qaqdLudR9눭Ff8s)uh-J dRb)b)&~1}VdFEƱZX6[Cܮ7he7ZnlArm"n$Fco(D&oq12 y} eM~Jֱ=?qBBY?]o!#?K߳ %c3Am,b9T~* pMektu|{g;FBA$[l5|Nj/X?άS-ާV?Z,~z{V`}>r;j>kz6}OmezilgNѾi5vNJUuܺ[5.>4'Bn;D@Z!8{1e TJ^8(5nxcy?N=W3,mq~ ӟ7wgB. &34)pƟL:nC{>~2jl`mw۪۽M>#ԝJ8M>f b4Pp5XY#|dQf=t)83Ô<]SxBpTB߃s;[nՠt%qhr`~l\﬑"Rw]E!i_ݢvG`ڀ*շ凜_=m<}A,{Ye| ]b=gb\uqjqTlX95j+4xZ,V;~\U6R\ ;nqx0Iv_(8f6]$NN4\8EH#YBkvhn*,~*4pC;S(o.*(JHKe!O'ЖJWz86{<~^Pw܇ykZ3-I-{o[냳8ۄ(D^6U0I[r'={˾I`ϱ` hove_',Z]g˾Z`#U²%}eٗ "˾L`Yvpx[2d!}3{v]xTH}ńz:UԠjtK.vg]/榵Z`{4NNrQ Z.L.M ! veޠ@=a=7/HI M}A}Vz LLo -0ia<-rs7O;;R9+SVk#WSa^uR~+K#D,SO<8+ !9V#hyH3}<՚)+h![ӇgyuW ; }Urae/s2TpW^BNAvd{;ftSvI bC!lf,Z VA6pˀ`6J'vqX-4Ch<s=I@hT ء}i@?V_}h8TOF@+)i=2E {*vK#uyߥD%M3iB k4h;ӭ`DZG<g*875 M{KFG'c9i^AՀZ9,K.dmz-;lݛ [#, OY8r&KGX,Vdj%~g@X ΤNlR]s(@GdaM=u+pANf#bս:RC yA3X[ 8ȖXa>)mS]Ygh:"+LY*ŔՙGc[ mAnPvML1:,jHSS^ŵj@d;PD]?E,eeH::EQDNjN[?p:s+L,( $\Ps͎3jM(8JJMBUt_P3VυFݨE&Tt[݋kQ_3E KQCQ0Fd.*È.2qFQX+\cޭjU u1>ȋځk b!{&Rn~E<,\cyc#"m*/3{6u39Sߗ%2uӦ0eNIwr}gƘ.T6t܈ ȨapIL y4}%Ŧ,~7h;uH"SSoi^[9%*y3SzMM:U& )P62 }C LDXD*z] M똚*Ijmw:?N~w8 C(<@<"W?OGD#s\qzP|6}b},F0ӌ#=L,Nq\5ť=4҃6/ݪ88S6]'%U T'sR;M>R^}[Qcci]U&q1#%X#e8,TmNPV)ĚW/U\H_=.Z,t!°3 MȗX2~B=y 70MB'f!w;Y=,>uvP:y+oVB;y {/ MA7J@7׳Rȵ,V&fPU,iW116&/𪳀8*6j nUsIbw6abm |J'g@6IoE vg.ʹt-0y{F1F/li4"BdmMV"]`n[I$qiw84[kVcz+Rمդ0vw I}VS.3ES+ӳ;nfy\&UcVR`#rZ&6{J*ɟŜIO=Q9%tiز:v 4TT6Tn\r0{kals@iy͟9@^i1C<E!>Ջ*á{u:X[&g V ,h3z/:Wm`1bk M(%PUs0TʩbosOrV#|`xVDZ!ccTʍNp9#+Nb,R ĸBrLU91*jXobV 'qbC71!&s`CлMQ'EThKN!z-8mΪ#6'Ml!&6EsЀ'60Ol!'6Ҷ>̉XoM)$dq\T5^)!mΨk5}YBۨ|>z$7oZ$Eӣ^3Bz/#b!M!`? YAe<ƠB֤1w5;SR8O0`T;Ti *30?/%5)*0]' *ѥܕ3iHqΰߞKҬBnMsErK*;)ui4+Tgrm!,&&:@Ѕ\ rE<k,M1pN`YMlfQyv S,[ Sĥ>p&.55\C1jd;P&.53ً1Lj͌=Kh~}Ri M8"p MJD<='Cw!_UwtݙN>xt!ݞAw;v[:BtkAutcMlbiՏݔJgS`1tEyǮӗI56- E0oQ.2agbsn 杢iؕtxE `I_vO!ok;cG! ذnTx ֵc10;?A)pg e m/v#h1vLhaO~ /> E?KV@3eBJ8C&pl4DkTl>EƩٟ,H걓d)($SwqS'HǭƎLrcd;Zn(Y=H#Xiؤw u2adU2A<"P8Xc] _G6@7%+-}ZASƩ4d:SdcUFTqVЍPeۍ4 a1WF2 hG0}kÓؼ2tb ;P^CXL7,!1h:~ JuV%YX,DBbf!j{ lOVZ,DowV}vc(6wva!j3,Dxg Qݑ:c!ǍmB·a!j)YMz+AKZ"('"pi<F"Nbf(c#q#c\zlhl+06GsqscӹM5_4`6fQyO?hU[ĻRN6o}%dЦ~JVNCc!1mbļ }>#zTVgo~|Ȉ?;uEWd m7ԐH؍\'y%lD*~g1U~3JF>3wMWZ[2i /v|Pqѝ'Č軨G0ZM OF^77n?{u#0B M7z( mt#I).cit3~#5XTh \fNUBpE2QVݎ>hxs z[_/"+fKB%7ȕffWJ/B7jF^4hcHy-P72GYg 7b4X11mcx v'#`wEave8^#Y}!;Nn6煋x@9rڎn4Z"zQI# Wk O\cjŒ@^mu=*f (]5+ HOzn:7H]#+NvЙttG\xL8r,\Y.FΑ-%vumӽ4% =,8HݬʂXYprPleɝlNʂ[Ypr;K%6m@F[HpoŨxue$ge:\<\bUִ,89i8!Bmgk{9pܦ1MQ*Fl$`b8"0dSҠG#6B AMH}6BF{[ZHx:6W#6iS mb#-$HF{Zܫ{Tֳ޺R;'X,YY* k*aY?V [Y*ecan1V4UX?,8Kuck6\yW*b#?HpO%ZѢ0`#!I!MHHmk i,#aUϭ,3+ NƢ+ Nn?*V'oaqZi{V<92meoYYp򛖜&a#ů[~ͦ H+6_- |_6>k~ʂhIOYI+ >ae',q Axo:lѡ#{`G4a; }J|yvl{NmiVu6/ivl{Nm/ أ,XÞ`׳B>:ޜW*86>g xe+ġG3g"4zU۪ |v)2U"fXUDqIoUG1I/m}?* SD>, Sֈ@%7v$r2<BBD< d m$v`=B8,6|Q%#wJi1x(Lu( 6Q2VQ-҉ e6𛅆;;6ivuSoP vjzq,f:-0lFQ6 qgAvxNf])d^mB<\x$JYvI_Wx [" ^nݙvpsi5sЩ %B+b* E6U ]hSE m$yB%v=|sDş-(W:ԡ,-AL]g0 ;]aiBa8UjGQ xxɒ:NC8QL;A*IfFljE|\ѡGT6U=Rgv4/jVႧ>Z`![pa*Iji^8'R(\ے, "(xX:&+) fZ:uYGm:I?ߖ$JA$ RfuIE͊lGTf+Bl|ɚj>s $ujh ZϊZ~FBOKaTS2}RO~KjD~\jIDŽ6)G,>"SC~:*@ŇAKtjZ45j/ զgR%_` x/}>5mωlk{h fЂ }F=Jn)'>ޢk$>)$JA|\TE?*""oBC+XZA7wY'SŇ-wdj` x75|wkK qbo2ݚ [$,x$JAQxT]/""8g5@v33.*еkLTԫ3Q]PfЕBoPQ?_a *_nxxp~5WikmBkzh o` x$5|QkP kTϕ 9A"/$ϒD)gJ.""'I" OQ{ܓQ?hiN&O<^:㬩ECJzLk( ! րwh #2XCuh 3Xނh U )E-@CEPqDzPmKxbWVJڔLؐD>(TJpbyK jXy6 -tn%kYaviGOB5Z` Uk^`'5&Z P"ZC fЂ:@T:ѤZOH[:a>aްT{Id*=$Q%QIu,Eq3tv7,Nqh'C; OgSu'0OAf6])n"nMͩ?F:mZU|S'bԃ.imuBX qmlNK=T[tNlB*Nu6ȶ"h8.7.eO+-Me/fw* ^vxhzv`7.4^Y H2*K^aoHA H\l:6`F얀HvȻ-$7R U0emw𳱠wtRRW'Ԟx$?8g0P(# g5;XD90WQ6 E`YDU8dE`XE`XE`N &N`ݯx`/x`X C'< CG< CDW ~ |E`wYC6+[ <&+ :+kByU_axe?_bX' D_`E`繚[j~`gyv`y`'90 }{3 qP?=_f!d*W8:l{E`Y"Em/pH="9mϲl{l{CJ=,"imOl{C_>+q[яql~`#`}픽FjiUr.0GK9L+8G xv: eE%%,)G+ؖWQS;$[BbQ66&=GB,oGݼWY*Y](V,-#O__-l+yte .rI_f+ !ޭiSǫݶS/*V&9nr_3҇^,(u;bNu۝s_0U^ȁ,jZlRFcy$<d~='ס8_q(Q&(ļU 9)l&WaOgӘQ B_<%>MZNǿ;ɱx['?o2xR mY|Шbsh 1{n M^#<67ZEB7.5TEԀ[NZh 4`W`y8 \J);Jì)`ِvu^o ^TbEV \, tt7 G^r g^R G I *Jo "Һ` 3Iz%\=@R W@BŒ^GhG[^^ruO %W%&P+_hA /J@8\IB%pu K n'vu[!!m$,[K(.@@]`DR%ZNK )ѥ˃JNH1 a`~J(; )>Aa?P0<\ɑcSC70ܘ/p/ n(`bA) Z0s(e=$P92?^9 ?KRO TB<#rO!(%7.p"`gɁ?x*6G@rwV[05:ioj p@8 I/s %?&)?@x  y#>FuPN~Ww :svZ7Zߴ`7( [i׬eZYW,e>x_0xA)HnVg :?7* ~B"L~B _Q~De QPb"ƯH Ծ_)/ (d bBY~0xac'@r݂V!O t>b#h<ɚ9pt \{,$rtE)ɚt zUuum|Mi^%wH(9n/p> {&`)+iە@Ցm %[bRBmM)U"⊄+$Ű,, 3|W`lQPJ Z#`a/}.8XA^r@ %?%'P1ƒ %(%7@rA+]n ]xA܆=0#`bgA); Z0w&MdH Y.%7Ps+I1]&4'PT:Gp #0x2%(%7'qc|\˺)S3,pdHKnJ(9 )%K %px@x|Fi-3v ge/gT3JIHգQx|Z\QSe^Vs+RUr n˞Urij)fCijR)[W<TfwMO<-ceL(4tmfʪ > OE"UuT`[Yפj/"(rJ-RXxu;/8| 'p!LgY'B#V{Y+tK L 'HFӻY .i~*=:DkS$:פj]9kwzf;ޛ ((O9)A` {XGݮnVTv@H@<$^|{4=(pJIIa 6&VзF6P Rau GCCxMWAlTAqBP A`oɕڞ(d_mos_+TTg$_WCqНօ9Pob:<5eɛ3XNˢ>7}*k:7Nf$V!N#xd08"cY3 t zժRё<. t!2Lh|*2 )4 n407"3FM!4fTw1Z+ՇiUKEUI1LÚ59k~4W>(3"Ur}Ű6WȤܓI*s$ߩͳ)6kZS-ʶZ)Z!?'cN4^ 94#=Ws [kXNޜ m˳DN+rzhq{ \hۖbAB.2|MdK]o"* 3Л.*(>W;q :G#;$6wI ^&c;AǶ\_ ypEdE]tZB kjWݱנ-#dYMhtZ2Y>ŕL NO|k\%cQΘ߫؅  DV=!'bv [a?_:Ek[m ܜ|6S\6Lcݞ6 joc܈|ߐۀQps+]$˺0Wh?S5ެG75Z%\DZwԄoN qF`" u[̕pyv?dUvh@\ؿ8dYSr,D~ӇvX!_9! _ <JB+?qb#'V+x*A++E/7د9+_qb%/9}55s.h? O9MvZTk?X'$臜nsY=:.UH;Ta[W^H7HPb5W9(OW)8Mcź7R)T O*.iJx-P>h݅|$Mߕ|8MR>F]S1CJr>Vz^NSwAO]KiKz1kz!`E=F]sie=fu/Mޛ5gҔ.=iݵ;({*ZJ'i>F]ciGӔ4"NrM)sܥ^sT- |DUS c0~^؏gc _W-#Vuw +`vNl;T6.8ǣe!VxU.JފxKκ~<.,snMU},#ٜLT3Pb ySpxy] ;MQ5(5jhWܜoPHS<ŝ8|ݏgBnԝz'ªEOh&C"ueLt-X%a6 y$,RI58$W?/P8 +0n5Ib+΂S^Sqn#$b;rxv4QiU3YExL[z>3jYęaC>#+y/E>=+]iYNJ]O0E3q$&&?1W{<:3*xU*U x/hzTr Oŧǡ7zk Ļ3Gg⭩q)yd;8ygBp]Aޭ:B E9(8U5WdZEq)$ř(ja"3gQN7:֨5$(h(ɤM(7gɭ{=Gl: ѿ4|y-:N:}c+`F'w *xin{!f^l07.&U=GpYQ+l7A_U HvLEvBFa\'n->omB("0}9#@ؚ[Ee~1]nL0i8T$P~O0q68'{GGfDp}cU$]-3"zNψ">FDEmidPG9gٰ#T׫M9لAicW\ۿ#B}oȈЊp|jg)[QF"2"z#ecnǩ$6DUtrGdžKZrr놜 >%ՊݺÓјbsvU3>z/TmHQ#]@eyoWqbp:D{VEllx[3 v޲'\j\~uT xy{DLHěz,QxAo$6]ż\mUxV"|AyI-NE'b|E }A-M|=Z_5[TM_63|7Q~"&WRu\x*}69bZ::s OJ7)ZlB}x`)O cͯhx8E>_glFcG߇3}0+#Y]M -c^5$ zr%2S)T=)y)CEZR)S)R)x]T vޗ!T5TϤVeQyOjYEݩ::O*O=j4ONj0{l}o)n{K4QPaow niѼn.(®i߅E\ }W'R+;GľI `0 RxZMawj4S+*՛iҀ6';Xg~9q2vijEN+| L@ `,㕱5X[x \-"ilxlfA6--_Һ`.  }|PbFd.~ӗy/Gw%Į9Ąa:b:>6gr*5<OdFJ,hU-i9z^T^'E:*w0|laK6a\jJ\`Sޞkd2WLxХ8kyh%Uqk-Cά"ÐawsWDP N!A\d֡3I, `ǽhM,bzGzZ9FTRۨIt5cK2xYxy@a Lwn^y[N%Q|SQE?0>UqQ׸983f|FXGo8_)G|)ҏHQ~+6[ǿ֢R)(GH^6|T*L#XxZ8KtLAxd;7=O%pnk/ンa)FEO&ɇ'>ht7!jd];9Pܐ=͡8sC&7ePG|!|&ZȃTD3r@5Q|W5ZMDGPIXXl#pBnO<^G+Df9MG#78L*0Ř H,~QU vSmh2$S‚f?A"tͰ65l ȯnULF:ZLQdd쫁G=\RWx$CEc!lpCU%!>X kj:t;S\NG3xaK`r͌^u9Ra|NiWPǙ>}yh+ 0:.8SGe^ YWob07'S&4*\]3vcjF$LK~:9? kOS] t.z|-#hl .D{Ռ܆W1ēuլUAŭdD r/g:O t Ka% 8`Pj1ںvUBQ^"AB4g:^߆jeʠQڠ0csMĐעwESUƦ~1呟5X|?4xܵWw(쉼8㥀cf]+aMѩM;zl<өA% n32?* &J ❙p&UFD;~l 7O'Zq L:" v }iYPYKeD6 $ܪ^GZaFf,\a|G`2$y C?8]dabfBbR 5GNYZ_jê2,K4E,}ʄ&UxA?i!w:b9ئ>xO3\))eZ>4|ćlg!>TN 9殥XwQ/w_z]XS{Yfw1-q&\o }ڹBg,?,uyG8350o˩m)f66Wh3L+AkQ$2OHfxK̴963ěJ1og!ސcRu=n&mFa| 3kI1g!^IJ@/cz:\hc%10Le@q]J', =y3#7GL2g0(y i FszH)Eb@M9k\<}cG>ll;asؑ{ǎap%],=8OCYICX2P?v0KFXuG j[Xa3{ {6d;{l eAr-c{dۋ%McX2zړ%=FNn Kwl%mPݭeatf~l [@[͒ѮU,u56,v-gY2w-ehBn ؼ { YC,ZȂ(es'@fSbKD!w%d/= kGp֚.D7ӌby b!wA\ j4W=W-*==;'p3 mH(.H!/Hg_c {֗g^P5k@Y|1:kq5yH Lplk'9'Fdjι*&% SoA_4AVn6J"~^bx TH\U:Y.u' F4!BB>&uQ_.%vfЕ~"y }edpb0 C %\2$x!dk~1 Z2{!d͐ !kN ) /gFocȞ!LfVRћ0`$T7q72D:StӁ:BiLD^ÐP 5z5Cj*N>+%OW0̈rM2 0 \9N1 a8fW'JgRT<2 al0Y iU;1=ÏYZV:N|\SΘ<4_FjReVEfkFT!l=2!&dB,nlX)LW\ҽIKTe(IL صIyISi{OHzZ/d$I w=q":(RBf((v¥ϗ3Gw:|>vhv ِ eJItQHF~|B%F;ͳ__d̩$/mK<@ vُ5`nyfzy|HYtry N(<'ЙV`@;_) (r}ôMbO@^L%M>q{:hc3(E'|8\ϨE1.D B9j@| W2)XtD|=. (y\Xb:aW1l)lYo4;gþ0 eC0|G6SDXG^#:bd`1 &ZQm|%c0҇1Ǽ2F>F=6=F>U8GC)#Cy}&b5Gg#xk.7xߩ'أx* e::БKz.>Sy_sb\"3x<|Zy2!S8C׳}P}&;L{i'#xZlid=Ngvdoۑ#-fz</#PěaOŚ!O!Su/!koǍEYFPJ揂Jσw)vdwlaO ?28Q8+ Ӆq Ȋ0(o5aW(= c7ɺ$$N6K!N4b'y#1,I102e tZ0m (glp>#W>>i=L.t7ۓIf{ =)i=)HѼ?.1>ZP'~I3FF1A0+aAa8"J0r?Asé@R8":䈐x A α<`69"o刨o(يV62| q#GsXIYE@ _ 5(WsDRb@8|%\e ]Q2|GeRBDLT[D#^rD( n#FRtys:Q< s9 p$͖V>#L+ڙLpMӭB3thV;3( {&hkB1,QI=5Y)C^m}p0&kojj=Jk;j4 W+{lTmjF)8;le$;2ȈZDƎg[D8"l4OC596XaVѡYo j-RQR-t6Q "4Ξy]E卐#GRӦn[/T8+&k}K[9ZO5TXk>Qэ/fc&mEͩ `FbQ+stiU6į0 VF[)ڢ$(@b`P]>Aiax1%7|8ОUqqEڵS8SrV8o:-hzt:ȦK|,\|Z<|(9u_NJr"(NjCs5 A`[LUC4InuJn>3 8`5@u0O5A<b_c T>E@G؛G4fۋ&iy2mQKݟ"ٓV#Ǔsmݢ6ɾ<֒d}xK'7/ƑY[UA:,sċZli'OF#5\mF^I=h\I"ixiVqҦ@5Km%kh#+xqzӒu:{$7C$,̀l5//K8:JV $QҴR 9r4B_jaRrdԇ/兑'](HaNgIː5K*r_q(aw-w`:I!'4Xh#q1V 4t2gsXD:9 >cb x7HR,tp^gXH? j Ucp|2 )JQ o9pSB޿\ kjT u1£<\GMD*_ [-T|= ϡ6$N!lP\߻`Q=݋,sio>D֥J i:11)ഉRqoGg6)Ct6چ(CA4v@E/HO /'rt-hOltlt¡ю-&?AЏM%]1C?d /fqs[9%woЗ:_[ (i}kmNU34Ж0@3!BʧB]ꈬT:ΓzBO@Ǥ2Ò5jf͚]C2 =0zn =Aك 3 ~gq1r{=t ͐`1tCB㈡;`{ngxQf;tCu %C2$T]0$wl62+S4! rT71Z)ߡkofH85t'Е ` C1$H[.e, V]A_ F]T{ t>#y@|?!ptCgsEqbL3~JSͲKIC8jA)hf80/E8·*u* V^6r߷ S|`| ,UMTJ&Z` C/l;xF^g}pTr;ӰXhaAkdVhuJ2VfԉKYNdE^nŠCx[{ ȩ$)6] һP۱Qb,/Ʀx茆nLuڡ+b r*aNM0S t%ZŮ1 ĆNku+x>cIs9jVlR1v7P9G Zt7MvX <|{ڤ\0` SxLq9f5Z|d鵬25<JJLdG񔔧!IyX:oPС<[Z~b.tf+/HlMˁ[DGD> 4%394x f@d>Eo ,Q6bhШp0?/+}dRm?I]lr@l-`fO^~> rRK!llF6ǧAU>2C^0Ya/fY'X&}Z!{'iT4 ,UqТաQ}*^ iȦ JX!la-lYTI|#hƓ+ 64YqRKxe>tckpnXtZT${ovl@"l"\1Bࡢ[Х+0ae>uA߱~K0[s-b^u#MEP 2 ! [+va4"A8Ku q@p)Qn״Tш| üؙUּN !͋yYk !2K޼Pꀡ/+S灳@[±U^Ű=<Tt IRwকBF3'Zs*ƤƼ_Ãyw;THY6vRPY[yd‚ڪv;Ax8A-<jZPc3   jBy؋AM<jɃFԀxԘAPc=xX˂jPc yXŃJ5V*X΃25 A=XPj,APcw5 Aq45xAPcAa5vcA  q},zX4/ nL]l35W 6,~sJɑ bs`S*&[e)>ď&NCk)6pMð/e9iUUqTAj72Ɔ҄Vu"zn]' =m)mZR߼U*uO3j6%у؜J P#e B`oFH.?,Pf(,k9S3BU>뵀i3 5pDXu٠Yە:@Ď1%_:q/$GG,utcx*OL3~`2qGG5|Z-JX9e*}Dvu|Asp>bם>5}թb+ e3n_t9|Է; 79|61B9 = ab'mzri+-?>e҂G>?aKbez1f]Fc@3}tVWQ2*tqU}&ùv8_2y+& ; d'bp&vL޷sc& p[}v [' PLWxYrY2Co buk%X9 Ik}''_]iLTW\Cm\n@T4ځ+Q#om2Ƞ#d}>t>ׇ3žb[_T(Sbzn$5xp:u!:9>HJl4:˷HŨw7IE;4 p/VOe YYj3b^j$f³FFk쨶#l"8 3V[?~RysͥwI|J`ۂB\X@s&آL ֊iCV,^K0w+|5fC"1 (RRꇯ|:Jw'Vtx辀Al[oc %GĞ h$ SUӝE隣ك/醘a9RQjm ;٠Yt–vC"~5rwA՞wӞ$}Fe}湾3:Fb}L8RXncZ)䴛 aT v^s~q":#8 $Rų2zvdd}O>?\"&H& 0X)kgJE}&J{c0V)no!Avee1NLh`[cҁP6Ǽ+AB]P:X3tv[tvlbh1ꪧS7aLnqÀB@[l"V -MyT;9"ΏAkvj(29^ PFtT(Vbc| v4R)i1g@1Yb3ЫAlol`8avGd&^j0ӢxՅA+odhC0iGC'e1ڷF3.R(OfmtYdLH !/ |(oL=kI1k#E7m()^> /վ AP3|on%o;)~5JusR>q%9f)L=~+%wN٘WuQN?vf#&@ / t_9svN|X}9í~- >L{S f«*)M~Lri{>Kd3d$+ \WZ:$ֺ}dU} vt( ˚^f$~V4pMe/[|a=J`}C9+ْ$:"|_3:{l[  .(UĮ#cq|n <)^ls}*9ƐLKgE"P9]:C=Ӈ4 jZivH:ϳR*;{_ɸ` Fo-m+~vH!I}D7T)lk@oݯÙ똔6Éǫ I_l?lc.fW"~RW5~уW˞+RBSZra 7X8'YTT ~ުJleYNMnqf4_*3Ax@&}pУO"WО C LBq1/&VՍ?`:s3po@ 8SxIL*`)p"a^"@go!z|_f. >Ii 8''7sIc`?6¾>qo?_cw e{L7LөRݙ&P)0|JFº ۪ۈOOjs*F*κKJ$س ?'Z!)$.o0G#%

      4Xr蟢+.A0ۍXzY(2 VVs#N_Z.Y-e9N=906KgZ eK|m8nk~ 8ɪ{UbbF2V+zNSM~/Kva@WakA8g/agx .J x㶟cM&e4 |kq·Gքӓfߎ$.OO"}$V8CntTX! ћ-<K}z:^`LA28Zr-2@ 6lJ=Y>Yɓ6o~8D V=Si9 t"!F $_n1O*:dia KHAx<}"T9I6m闈&i=U*x.+lzX&kOUYVW{^Z_&i+6G**:#;0;V#3sgfq}jB1cиļ5WgvU"D v*񃼲U"o5pe1(y8|fCսriF9ΩO%uK 13JGybHʋ|wjQZ޺ާ8#d?ڗ\ޭkՐ8P4l9kKʗV@ᱠe @)!0-h:CuS5'V4.=+`i!z& >skUNmz^PNvyX{QۥB GԈ9ʁ VNB-ZjS#mE7qYˬIv#Vy~#ּ}bGr{,`5Q+Zcp\ؼ Huߒ5@ KM#]%hf Q"6h2u-w;;j7hmxώ U6+Äͭ^W4 kqQv\f x/?r?:SB!)}f#h,ƽc=Tt`Do1W"ܷO#hǻ@){P{T|oǝBb&hxZ;m6L+ K|vo*Ww[R};pż Gwg~!8BiZ~\D2aoEZ^䵻O?p>^ᔸܶGu'E2{xPjO yQ5֫ha|@xDCjA!ER@uUMZG%}8B32tAK?4hZ@CS~D4e k6G4,!XaLixhwtXhznbbW%BHh1}*n%XyVCH7( 0 A9-}xLτ {zElxXY^鍣ӷ0zE$zRhݖG lXw(4?2l=.::#s['<.zOvC)z:SOYACP=]p44.{hTG)J?Å}*J - B])!4{P߲ & >( 4 ]] ?@tX#D~^3a+ mإʒ~ |~3Yo?^)XԴ [D):)^%HEN㗲?W"CЌf$H4~s(_#2y/@K~br Jv 'S4.ZtL6tɇG& dzjXLNY!ʒXxjzT%v*PLpXLl"Sb6gȴ€SEtU5+9j7@'GIPi@2#l3 P1kRŊaX#7ez|}RV w~.Rȕ|>Àsu=Qw~!IyPOtWa`'6Q䢃m̄;G}.k3ZvU+Mx0+YMRZd@ )O hr܇V&sBx+/ƀk/[+se},zW)drMo<k.e@az(JB{(9N_ڙ"[ -["sRFYȧ2©g)1C$©H~F,V"1a i|2^&k5kǎo3г污7?M)Śinqm{U6r% 6 3-|,4Q]^svC3euH)- |r WF'++C \O5Ӊr 3SULORj y0fus7ҩr L^*w&q"$)r u o (U`mS0V|`2P_- '#i eh/Ѻ ՋUý]շk媁Aݥ)5{\Oq Syvv:PK*6%# U}>kUJ(_@@Sr@8g)tYhGMpt@C?M a/ zN-\,,#3VBw4S9#X|1@^UIc~2Lܔve1P:O1#Jz/ V^NϔuiG:plZV*rr9)5D"+ԬʑRF?$y^ДR1P*)k(JDjR9Rre+֙! `4Hfg`8m8Pusל:!+7uB:VdMe`jd.]X@rr]}c6 :R:-~aĂnK9ԁ\2ڶOgPnLb6z_1_re2{'q1φX'{x=zC[W#mOW^{ +HnrI [N.(Pt疋ޟ!cZ-v\qR'ut^n7s:.SSǸ+7n7ԅ[q0Y%+l`eS7yLІ[}LbK2&7n@ `0}LRQʕ$~jR[ׁY8t/*ĻutYJ ua)Y\shh$!< Lpӂu$_:-̿̕Td!ECzl?p+@EHT[6A]]ZSZd(U_\!ɆDuIP[]wÙiJBYJ34z,JkY;mgK;{Q>%OyF]_̿F=<Mi^Qݪ}zmkq#W(n'lЪcA+(X||l TG|M:$iL?Iz-] LJvѬBS|9aaJAjlIc1CGޡj]E6ΛCv. Fb2͇Ϲ0~REKG|t]IjE]l6 ȞT,m .*! P4?hrbd|&Gv?ح?D?W'Ue_3h4lGv|4:uMҭẏ1rG"~_פ7f$z@/JDWbgUBJjo|1!LdkRŦ*.N+ |o=ɓ=3O&f[ 7 7Bujqճ7K=`m]9T$l#8`Elv͌Ľ76~|)pheB}YLcM<\Ax2 sz -@KC\F\!9ɥ.f6'S+hL`bv΄V%6ZixR2~DRn؄6a+,|W襮ΈUk-27g<<"WZ7_kJ*$ :~eѮTFӁnRPar:E~5`],a>B3`>Q{pSKdDw0otC}J+2|#k-cqipO*7Gˊ4J83^MqEtpH (3~RCOpfOvUjc,N?\+EdG?h8?V&$ ~Lhm;L%Xuk~]rI[TƒCMTcC2#evŮڵ8e/ R,2I8uk\Hxڿj/02?"Ge*Y>1ijxYlb, LIO40:R0?~Z\ z7Gj,f[@)Q3m] ¾6F FO?mD3mp&M|y$xLI&WfQ:4a +IvB[7O"%j:$Mΰ$:$=/>k_G,ZmDxַh5_m%M_NX倻 ,a)3Jp R\ Z&RTb'ʟ3/qP"mop焘< eec-OK`Ůwa}\5|98UHd孿͖;meK_("Pە66@l#7$$4-1noek_iCKPDCG=٘WN}AbQN]XO3$_ $Վf~&,< -gu)?ny+P`$I;?or֠p'9~ <\gqs:'C/Qt>!;YHCs,Wm1/[ݱ"2PԒ5ubғE5BS2 ߕ(=+=Sd#'5\0wf'd @Cw`aA8r wR:X諭qҁ U(#8J?%8;)P|;{L v=;Hf`HMN9#%KW?T#õ\BYGi(þ+dtNb}+͊8`*ET=7'OLZ'{-Z&v)=(.PWGF):#ăݽ3=5LPu|Qbx^D|`x*fńNI7PuAfPzX'EžF P6(V'ެ1xOU7+ vCA!Iޠm&|իաv9%D#`phd׫6^*Q(YF rRIDQ>\[eF%{/q<ܜm0WN((@S! ,C!`vV0H,*X@T -3 lTZ\xF/GR gJrC4pҫ -a txj(%4i תǨ4o%"u!=H X5,*w_L&|T"5q -uDmF:D1?t2NHG H^ mc=t:[b~='mj?9HYﰟ>=#Y-ny`9@IZϒP|IXXnyslyW@hΟB%*b TA]9AZ\$+ NALx 8v\2r‚,g/ +"B)9M+MbÒ!>pfIY80C|=/lrQ34D# ЙJ4AfUx183gow-\2ai M‚>~en@b0rd`YzaPdrʇwQ\^6f:cƂ\+d6(إFcxS[2g"cg4S&e'vx~Yp2Ӯ6ZBO!W[.W*{$> k H;3 |kVIZ #şyW JE0>A{Lj@trjNkv9̳@::RB Εv v(rdxМofTJ!*z0v,S(P< s AY\1Hâ 0溻^ڶK .F 9yz+ f32"elcjLaj$(XKx-b+*t}6*@;@pP BXyG:E 18#sy.Ng!x2eLbaR`D _*AA|m`jW&-;VՎpG˥L@cg>"TO!> b),b53/St]6R@/7ߵZ mNT`3=yf4eF.R_7iI 4b_wt-1𱤉P2&}h{p>؅aJ$DcRwxEE턿g;_1E+]V[] ),\ ^+YT_<~>%<1j/Q!IH_n$Q*,>{Ɗ:ATc`pcbXEte л̪TMz0kl\2c8DO\ I_C«bZȥZ}nظnI+-=dp Wr[|/W𐅟"oU=b^P\ 6õaekfGG+`p37uYK0~)<^C!^j5ǪV״ed|B8>oU,L3ӱn+L%8h{ S}")hEU6M/IYXz^ cQ;Qd mfbC7"߀;}wAgjox%Za;}Ԩi,OF5JHj\,H7>M\PS,˴.nF n fW4C wҧQM1Tr=H]̉Ym%|J2`ty:騯ӑ.ĩzВ 㼯3Hs}q j w uޭ)֕ƦgJjxsfPhaHW{ZQ OumFCEtrPi>,SOHc)N} n:L~Gh '{Gb*-~Yj쯛VTBhu* evnG+ _vZ= fh}:V+ڋqzÿqQ Dc=:|ժW<@*}Q+*QVGPhaL|{󷏡/]̼c^yFx?|L~$D38ethw+4C{}l0O`NU47ع&)k&@MJ yE]4v=?ylQ_vr/*Ҫ&gn&t fJ~v/=#>8 Sߢ5pg7H{ @a6׶\oV5ְyvXz姠-_i7Ti6 B֮n9QZ_!5C{2jlxRvjߨ\_.JSu9;w:o!']JT5 5#8~:MbhNVQfsdGN[t۟<*8;bQY׶#ޡH JZ|&Kg-\ٛTFvi6hbS*߹CObb]/ǰY@ޕq4͸A ͱJgG^NXZx',=V7fks]ln7 v7ЬKH,˳kbO%{nTPimLts!MJs|]p1_ uRcu q0=M&OIׇZdCZ!>&z{ .&ᔊWͩJKhk~:B"guU\mrGy+ ^ e|[YeԧިBנVVPi~ˏ{_뮹ԅ0\8 U)oLo+?Z}6CӇ%z6U^T}D>0Z4Hq;O_#L>ڵqfsͤ 57mzzh VQ\DRǕP;}PC9h1*~)jBSESd |-sa]_o¥!ጡ$o# Ҷ: -4Qȅrs2 гQE9_Ekz-U(I ħ}ʖͶ*1~m>K6jRlciG\b|9I &Ďt3ea<5'źy^-!';ҫ@0uf_ MP+ʓ5TNMxH)0>+GLz+ҏয়\s Cq F!|S /JBlc.4 '/I, +b'(8w/H~A!'f:GDf) ; ALBB_q 1ɏhbcDP"Ch) :]!o}w7}1*Zi>E`IBv # Z |d#|7x-'zD|Y5ѯ-#~7x|GƒDȹ,ИnԅPblV?օtzil[8~_˜T,??>wEhѺI7uwW @=–Y~ ҮV {wk3^bFa;XɢCgϐloh30>>zIdEM,4A|rAOKeڬJpzևŎiB|~| 䩤5Bs.sҮi1N.9pwͼ=F\$c[`8rː*o?3Z*|@,_PsfvdZWJEO!AVe(r-Π$~}DPM$8d,ٵgtwK%qʡ4lv5k:/m[i ܤ>+U^.)$ͪ7~C@rvp]c9B܂uw!2 jK煒b 5 =6C LH c 2`Kws]9ŀi&r9J0] oAql}pv }W\_]zvKI{d!"[mnɏJU+[v݀`-Jfm;$֦yuUF,?vހh/TCV[9t@}AmmxNj2i峖&ӪIӼgHu21 Ea"Vr6mJGuF܎c2ҽVøkl!v3[̸H{@--5:l]AQg3C"4*Õ=o P٤+3D$y PmrL* sS1yaj?#ELs,&((,py|riVpQq`)Mf|=_af)߉+qtvRQ|ԧʘHǙ]IF2aro|bS***A& ,RCO&0' ݤfǷR~b̅ZkC集wlE?[I] w[i7Prl"f>0s3[l0n`<v6Ϲ,1NE-Y&.Me[ 4gqΗ Zb Llȥ_W aW5VB@hQգupqqsTGPA.׌ Ccp7* !370|Z_,Ņ5&X嗵₭&.zRg =x#ÊJ؛y|$Ϛ5HTY Nvk%siuɻCT/ W>FjGV縋v)RBMh?>m+φ=DY,0_qj8xͰĢӎ`N[2 #=ZZw ph8 ~NƻbXY 9|fFʑM^Vd/9M/\`(oNWT_8+ԫU[ה@P{@F:nWҚ x+҆ ZRr86S@eQO._p}>cJG^\zM]oetT]) ꘯\ǿgVh"ڋeWo`9yxs4B;\c{.p2Í)Crfؙ 0:Mi$ ֧mԲ+jQOF6>9j2 J9إ&e`뜢(>|\'u"\dH%a\)ڭ9Ϋe&;izh/֨aHOI|wwHڐAdPd/1Ff'jnEӇUiШgGmUqʹmvmkY-(U ,:6tf:ʑRhAa+oUe7.J]s{ρ%/GRvq`j()r Jo6j&b!Jp|,e. [HMQC*oRuVzJBI*R"H~@-/PZ}-6A( gCQqSx@8?lu]3ެqA(v2ΰ5y`A:#)x#Z:KP'1!O)k Nͷ&uR"fHc:9]s2IuFZF0G;yY4QOߍh7.#k;<>)Z:yDczάshR풻rfe)]]nl3x=T)t'rK~O.)=Aӽ(P[յŸ_;^&gI ,S PYdtz]tg\TiX$gIw~HsR+3j-~{N^] NwP%0Lǔ.11-zF2'+'>tqB:&=!Ît2i sǸZoюJNcuXz?f S8X3fF,&LY+5 q jk\uRxtMrcM :.] JPyuhN>lWn"AWC0ꗿӂr(7~zM+`e4*G#=g%b!NKa ؖnwlN" `,xX05>qCRmtvj+8z 4d""6#/PAJ>JK&XU 15{I6M3+"E8v?1#AL}N|HB@0m7l1EIUArPthc4rOL|@!>Ap]raemxr U(W- km/Mt7+nG?e/(r:1 ?~b]3OXrtR›Tn{vBi߫'?[Q|uaJn6|e >'a:iΩɖeHM;$r̪Yd'Ľ8Up4'v+RX/5 91ʈBIUwTQȁU+6Y2Rk'Sĸ{n8"oRǫSl0["xgSvPpV ~w*36E5cժm_/ #<(i1pۄsXL~Rɒ8͋lAA~B4@-O|X!g;H@:TSeP,w]m|'cfUg[k`{]\/nZ>571Ũ`# bJ(Ů[ :Vn̔|W\?T")vR~KPHFsH ]xgx" (۲}X+8z87sռi7 0o]|oU{Jo&4ۛh@Zެ0KTrl,"ia+C@q ߭UPxgL.clx*,YjR J6ye aIiB{e>(n]gH|l5q2`*6 VB][DĕRdPɸBηiΖ7*zKzެ;޻1&.WWāqM7_J( #q6ngc-vm2eyc9EGH)G&nQp >4vj*@bʮC !Њ‘_ X";#W(犢ڻ+zЯTK]ڵxUjT4'qKewhaS7Hץ'w{W0Qܦ8V3༷hC-%N fx Vm_L]е|~qYڮ!K057*2 goҤk;s#z-XF8FBgC9ܺS(4 D|=U2_ -ßv=fǮkX~1i[.$3 8P J5nFy61w{F7kpgLO}Q/"-|AZĞijM@o<1=~vl6,{Gc&@xE܂=&A3_xErz[n>S\4rVp!Efdr!^<7]+TL2:J\ rʰuK */YyO)0Ü*L?ǀΨ^gaIo=6bXx&.z<| k0ē\ zJ^|lHx6Ǽl0C 8 zj ggH^DaOVØ-z{,w9M8< J4}8nōX?BPTٸ  %q,;+^ 1z즜Q4?ԡWzw='ۣ5{%rӿ) hJ9sւ"EئjDvIҡ0~~(v$1K.4-`+J=UQC?X(S>f N|Yn`^)+կ(p~QG:!TRPx⟔ w&!nVB ;<gu%9i}( riWB@̉/J73ZAJ%3ű[rS[_ |8Ԙ~* ?"{"m |d0!b>7(,[U>ݹ'3O)7qG([r3?<)aF?\ :18'<[DV1?OzI~ORS|=c闩2wN51|Wtek&vt9 X8j.i.Yo8{Y7`TrXοL|"Na UxtvOJs(wr`,L&G`ڴlpX ;LMMȳhIk'n^ S9fђnI0Yލ19VdOSqd=ⶋK|'hپ"戺s"wbO `ΐSjv #S+43_:)Nfdf0Eʒ}ʹ_cNx8^U|L;+e`d\ُZj~` 4/ ^z=y_2U" i;khXw+I<]2||".LmB -{'&a_Pu&Wf{TJ|u}2e+Dɉț 9\jttB/Zzڥְq\*xլj iF,;-4-B%5?$(_M2oEm /JVI}\AГ ~8|38C.S>]M6fa񵰄u  =  a]© S5GFg$C1 I)s_愻/іm\{*؄#oU8y E.8Sm0EX$qɟհQ6Z>WRI WGn1L_b`qPd, 3TøWUslPG/Q49S|$W//V:kg yЀOEF_z6 'pN 9sH x` 7ˏO.Vp BGOUv3U֌,`^&̗M\9bw o^p"k,n{# - mѫLöli׎Qw6㞥.EU1*ER˻>|pE#le6AH849_/pת_`!{@imJ:Iی=WbTG+sx1<Űp'!ݠ[Ew^/HOWiXsLz_4Nf,K0hsHvwgkN9-E.Yjp#e}hąJKs (шQel51$5 PbyXxPhFL2OާgE*o!NErdg,;Dbe88Y땦kmmF3)"+h+#:ol*ș7Ny{l-] (|!W24>ZeLNN|d+,%: 쁆)F!uh h΋(.VI CXEG$|! N~fSPe&iN7^xX^NZ66cU{*9\k'"kv)(=P=PlHP@iŋ{Y{'IHXQVm1-,x5xAm5^ *C3pq^V26qcdl!~֟lq`pȂUp^V%+\Qm>Rp88b*.䃓_WxmsѭoW9LSZO4\&1)p2rۻ^Mml#՚|" (-K(}e/5M-w-p"y z۴@AEwf,O~Π:2V|!ȅ/B6>]y&߯Hޛ*GIKrrHJ|˘{UBmk sS %HՒ'%ٴI O"~%Uz䇕~nJEZGgw]2<4b,ާ bP/(@ >'|RIb)ebjw]O)_gН>HH/7ypx0p?&exÕj`7bu{y[U! F}7\.#M3͡ fYnxX@ݭ)=: q1ܿ_ EAu2aLhsP|-ߤ(VK>o5fx¾*B(N/uV^V䮓a'T|:5Ղ:y6VxJyr\7gq'/>R!g5-2fVoQ%qsd0JÍe d67L&#qPZ [.&5EQKΛv1n9RhR] nctp lw(KL71_] s4:~oV0{]nasTaF_s M Mrᄔ/\M.R &=Tg}%Ko;U+~# 6߹,! :*Wg7*#TVEM%SJʫ|- 鰨&?K\k5TlE^Cg+]p:ܬt*^D71J\Zhq8`7aV|h oGIu =%@tϿV|SdW dŖ~e=~@__M>,zTSvW<1]D.|D 3/>\qa$v^dz*'!='6$ON'R:aP;D bvl-򍒀|& Y I@pϦl$DAv,T`2Z%nl82c9ɿIlx K?j ~QSjV.G*ճTvӷܤ>t#Hޠ*{J9ۭt~D1/EYwh*e𦃳?/IK"j'DDj*L:;?db d!JP\\Z//$5Ld#ÒXaA]l+N/2psf#;$+pwp9-ۙ3vMؽ=QDA,SPArVYH4dTrRsƜo ޫY>߹몮ֶK;vqFbFV1J(iGoA`SJؙAHKSPbszHZSGSs#G2NsՇZ+ xV(ţANP_OQ.n6T{(, ~G;!ԙ&\o )A kS#{Nᝲ Rj1>gJ N¤TUjT>I B 1%+gZ|0%jAhݟXŠPZ}=K\tϬUwOy u5\o `Tͨ,>~wX_yT@_RTti&1C,.=E)L)bx}4'73E cdQ;~d?|~џWnߟ64*fk} ":v~ )W3 ՝C:y]E{ӓ6vI{h2$Nz+ f ]]4.Q? )0swөGf.~[uґ;0T d}nV˯h 'HWcAV{[ 9!!x'v)N;]Ժ%ne :شݟE#U> 4pU;J2A$&t!gǧkB QT:Toei4/ShyU/,JC3/45@G͡blQ%ܘU`WunkUEc_ʰ ]{YT.9%Z\1FeK|lx ߋ5c[^46Ō70! h y9y$XfPM *h˙Ҏ08-\63xKE`_LϠ9o^j IMC͐̒jVm-t@jծ+6w+MA3dC dqIVR65]eH`FP͛JE n*,sSehSyڢ 7g)7ZEQ`:;+ fݨ85zvP3ED.)Ɓe |~Ѻ6Up wMIKL!XeQ'V%;f+=z؋ez!f!|Ƚ{z!j˾JC,u:YZ{g!$ =QFX) ~7NOlb鶨9]<\-@froDz㻧 lN ,}iC$ *0SdNeilZꧢB+K(h\6@{ĉi %iӁeۘl_@2@lw-YJK{rޣGUƗ<2أ%2@e+Ҕa*J8mⒻs[)M(S%"K!l(ぴa׼ԘX.M2u <>;h Ya- efD0%T8Rd ;(=kl0,a8Go1s vGKt*$3`ԃ= z\aA8KԖVizHcM]I/0tT rf|zgrk/]63(!BYKAˠ@!-nEWЪнA4[A9y5uo]Sy6]/%F}rGjz >ڮ:0ǥuqI=$ m"wEDA6767.xwL$}tWYDgDfwHoA`oS[Yv#t45f H1.X\f?4ZH.x!N (p颢!̒tƉ\ױv b8p8DNѫq@$NL e#logDdyDg Ĥ7gbe G,,1rWIHvB/rrft@V Ctzn+L(3N1et9嬈Wh~nQY\nH) l(cB# j6-5\)ԯ9Tf|| ):#ԅ?F8÷13I*>N8Ito8g+mQN)օRpu[%C<=#IW\g}[bѿh:thA؞BNXXBh%|3c\Af h_(ֱ rM韠Vڜ5R鿎6rw=WD>G˫(oZ O9dN Og|u:A}T! W{*Ry&AQ<◝POlr u%O?7QgO/'DJbJwF2'QN5IiW]ےR7V Ivkn07&{O=MS}@ZfPs.v&eĽT5skg&նtL~$5\^?d{ >gIXq7 wVEg5S-kEW {JR'nCk˩ɱ)aUbcClj>FK }0Ib 48H(nҴ˒VFaZGjm2Xn|"=#e$"WN^RC^\c?/9.Z|p%ɏeisRRzTwȋ֩>Tڴ_%m5Qݙ^ }jcOi-{E4}:ѨGөY頇g^N;璢W_|~OZ Vfp{n=t <}.#P5zڨ^4JrW&M·m:yޫ`~SѭgɩC5=au)ݴQuP^-:c!zׄYFpg>֏ ;hf?B?q)iuh @BTiȴ~\ܲδ~Gi/"D q'b >Sb@At݈h %5eSvU|}>Us QcBX8ć Y>:ǽ-zd.#21#u~[mV+g@0j}i(C43uIWV+oVr]G^j"ŴMJ"v5Tf{HhFěICj-Y㛨t'ț^*[CE/ Օ!{&fPԷ#M dVszԜ6n vbu_|QVs(""z%t5*X8 JcƲ .N/04}zK@?Nr(|-`^~D=#?9%KOT*!^i5U\\Ϊͺꬉiuf78C8[l@K~3Lt3JpionΎhfA*8JqNn}_)V>íq[%s8cXwQgMp1yFIN~< V:q.Fڝ4 n0VvoX!<k8>G|@4mqW(3]kPVwPڜna=#=hl6J:,Ur*W^8T>9"kCLʍaMe}93 {nj e2ҔPY$KG%T8ĠV+IOAA\!8B^v`(c{@fSI2 a:pk}ؽiMٛ; G8SS3G ) ?* 7$]- ([{0@tߓR!Go7P;"q?Xd!3Lۻs?KưA޳% F<\J~Ahq{٩P'4.<d{KrdhM_4T%3J>~ܲJ2vJ dyN{$yʯ6eZ_pȔTT$hpXG/B`]ET,B?d>5ou~cc1%vy뷦ԫJ9#_KO Tm lnkAϩ)G63k)aLnSJ gd_ X)]nD| IaGC!E njBhiKMϘzQW0Xk/BOioF&vO+t:2ZHAL6AZ:AO^fQ{9 otw_vU dÇe7Nzp&>hc D]&h1hy HC^$ZN>wJD)9t)8=SƽS;V"X/OJ[ SCq+>39MbHSv)mξgBS' Qc%Viuu1>]Xo,p1?95 HZ"Q`e ȭew{A3ց%G6Aւ'@AN@}MTZ:`*xpvԂ)H_vmW;qMK Y&enW=}F gB/Un.|,Pv#a|bmR[]TW]blZioԢjUץQ)`®r#Ukoר׷<6moVsZt3PjwQg;U5oo֪Ga h4=E$2*5#NM$r"^HqU7YV{Y ٪Fody3{9''-؊Ox[-b* ǥ`j#)1 ,FRدE`| .~G_;&n;ҍ<(>~A~n>N%P|DRކOPak }=JAezZgE~@Pfx BO?Vmx` ib :H/?6ݕU5}+^UQ:IjܯBM>T>(uJ! ?n#fn!G0s#uJ+w%bYa<-3G0|Wꔘ3Oxkf@1#<)uJ<%c\f[b1SZ 4No@Hedj6@Z[XYËt}!JU,Gi@}z)8*|+o8_5]ܾ %,E(%RPn >0~nT?mU?A,LiI~tԂStc~]qΐP邾deÄ`_ATr? vh)QY27ڷDD*7(ir`Z!7AeOA0&@vP-erZ,UL},[tr'ۉU2ejѹFi\`,m-#h)#7h e"KE2mD|EC@n1[HwchLZj}1^-,?P^HӨ:Bǰ_tejMqFJŭmE`pIP5ZjAFej-nXo:J~sN smUqjDQ#U1KֳxLiC!+hR8'.O9aCW=_kj0 [yJ (ԧ1+\!d׆ϕQƞ0WI x5)<.M`s`Ts[)ojwEں8|$R(wigEZmyUOq46h?-Q:G )ψA<#uP]g`ڢ +dJ">M&.VKc |!ErŠ  :.2D3b5<P[mSng(;{EY=Z)A5Y5WՒ9}BI$Gܴ:xmo(َ`؜ &שy#$ Vpiʁ̾4i_ q6 1r "f_k|ޚ*S9BAM jˁ [f }NgJ92AGZ>"B&&QC[hA$hgRq̲֊z4vJ+v#90z@d5%2v\a>W0e$ Y(G"weGܞ-JM#9Aף` ]9Ä 璒="m#?Ms8Eeɝi5X>UQBKZ3.x򡙝h#=TDu,yH-!>%vZq;OI; pRUa )UgIWIb)96;,SrQt촔&NaXtUIdրX^ɏ8d6=1 Sb])I"ȚR՛) qj`|$&ȴ}\XX!&yW#<$ c'uDfs`=mIk_.!|`'hΗR@0]E6)QLY)TdCuݯ׶q409`*|Rʠ#jQuۮ\1w8 #4Y-3ߐ4S{@,n"Hr~.qPiE7 Q SR_ 6UW((!;)bD89T݇K ~m$`k8_ v0h6EXtVKz\-S fJkIxB CܯIHWBR"m 4b@L59QԓKQ"`Bu䐒@,|SrP @tXB^}ݘH{NQiУO= 8 ?G!vZJEgṍ=!5zV*)y;[Ŗ?z7!߅Hc/~~S6[c:Lݙe۾(8$[P67'5|0Tۗ"9$Kd~D#GWǶ;9P@$Z+vyN.'XX}Z(2EF\ Ap#uN?:]{=VIʘgшukPFT(`;HqMCp!%*zƳ]vBH5@r ߱tD$ "F!JzL^*K|GVYLxA'7aG#p|6-vA u,#&R?RD5ԴqO+eG2)dD$:ب)W䥽Y?{Q+5;4HurtdWd_'KDA h Syyԫ)XfLGiH%i=)} &Ty7Q8^o0ִfFd DCé+zk{bx`j Q#~YP DWU$C<0b;z&H/Qg~1># J_ `H{Vh?-a)aF̚ߟKF5w%z0F'Rz\{ ZtJc š?N>7I59 @7e5@1+}TZyK~VY5zLF3_EO^ X$1Eϩɑ蓈(]¨[x T\#VCGȈZ" oCu׆ȝl-֝epXn+? f #s8F$5\B#]+ˁ )Y'S)E {#kҒJߴSl\0"@\ ,\6^ CWv"J 񨶇LGQw#hW)P]JS2]$\zTQFd>uotNFR\TnDӡSI")OM(-:R=6,fbuutJ8&0hTm6S2"RD7SS2KtׇvHeɪ/P3m>9(8@nRrE6AQ[WuZmߊ+͈`G$F&-՛<晢 QO,ޟk⓻7iyNQٕgzvYfu4] >avI ",n`Ć.y7[鉡.=,bB҂pwKH8\͟8(rfeɕ)nEWzCgR{ >+cMX+, ݕ1߼L^-γ&X tٸ<` :B+E\*y4&JPy5"QRP<_)q=@B:J" ֍&F^[C˙ ߳! gu8uT)JӨ̛ZIyO_Rd s*ӬKdq0:}1<"P`% kTd׳F7L僌E/){Te>"D?fZFWhC^nd6">'Fm3)JIDtM'-\ 8rMǼU&'l5< 6"ؾB,u5<l7"(?W]C1P؇f֒&=DGAzߖRkĭ Zo?M'2]#G$3!ҽY=u"[4'y)* l{y[Zt*s,s|gO"BWmf>%\3WAyXJ̌To&T|L׫#`Fz]mԒLD]׈B툀"7)ţ&y30h/QY,ke A|Ţ>4|QdG̗Q}T*tȔ M7:^!Uz"7s<&x yh[dPYFn5׆3׋BߔPD8!١,ӁmOڠ1I+V#T!B47+Fa;)67[ ;%dΔ׍^pe sw XؙACœ!z6O1Ys,ksm Y@$?Frζ,|H~/9ݢ}Ϝ&RMt"AYQeܝ|+'m>b 8Q~֏Z}[_\is ^n' yf;^a |`f] k9^") -ZNЗ=L@u744Cah /TIb`he_AD&!>JWi啬_,ˆ-~?Ɇog|OS=@2{|$w߇|]voX|xjK' 7,?b ݖgaAa' wʱ40q쳓Il?)oB~ſ\gjqO'Z|a&=y߱gmj%zM sp3xbd+:o&GY9f_{[-XO؂m[|T5,㾏%LO3-L9JԩJI-:nѭw5LH6ZV]3,FIo%-0gJ]޲,gzE1|~Ԋ#^0j3PJCLvvgYL7KXvEL5{-?š?U: /f$`ũ)pnX짋T+kp(:CoeԮY* =Ӣ_&1DXCeIx2K-έ׬ɳ[fs}JŲc IK,~3WH} JW REYeu`aXDrW mdvgVؼjϑe2se}BI|<z(={/uMϑ DQ -oNH/Yr$NM/q@JΠ_Dȿ,s8]&B\kB!$`G^E :?\jA!%,A|%񠳊S1`휶ekZ5$m}=Q/&[F5@Q(sNKڛ=ƒJ qRDjcWXϼZΧQ~6s%GsZRČrlk4ZeI~mhnk2ZlOOFwҏ$k^1Zמ/ It]f#y8 DR!Nǚ> $ocg0UUFҍgI<g&cI<,*wXΘ$ؠ8F6K&1C_S`v[10nb8њD [I;Ɏohek0`=v gh267uʲ HKŻdcT_c\[r[Z+qRFGzՙ !SJ5-X\X@XNɋ8Lt_X交CGv]r=! J6+EivkqU9Ah1@_9;XF(V2%"}%' _e I&P:s= G3eBmF4(3(MKp(t -[l4crDmD6KO[XNbܭΈSs[nQk,ͽ%J HҚTnJI{& kvY0TND!Z=e4=xѺV“S@MC1q 7 2Cd e:;r=5DFՓ8fGGWp@/\/$#E6t'JN^ߏPTG8vf?ߏMu1)A;R7Hu&^FQ0Ws0BׯA}cl*J(MR- WA&qqM<~K%No[ oi =i <_epw%5K$4%,gcT z1qh;2fS8pw_OP‰gq倠,>7OJ(ȝ| h,VA%BBTpdwP#(?#pN Ȯd>h`KV 6.ego]bV, b1~fPaccu=m1;;X}M~Btzt |., jbL|NXRmz—g'nyCHO{V1.**Q ]9 S#DogvS/_*GqJº7xꐘgƴ1ڲ?iRi@&nuj둥 RqSxN䬌z tL>yz]R\aFD_ɇIs9.> Vhx3,e'b,xN9J cެe E8c5{nP?Bk G?ckd" A8,B҆#$4d6a!XwF}2H.T :ʘ1VscS赻coXʘT=Ji8̧x;dS9."^OsnÚppOKqR/- >='tk"'a-@rb懒v8ݣ+c ntlCp9wn'8#U,}5z]sVH (j~!V+Wp@'+N_+z5q4 ik}!e) m: 8C3E3 ]ܗ/z-g|I@1#q\(D8.w=jV艞$FRN|fϣBq]MrJ]ND9%tMNOp-ipރZ]L7GJ9 mՎ[ԁ ].vXx:k,*tJr $]1K\EHOf|zm_.h};h<1_G~rghquR ȹ~?YSm4ulN[[,nj5X-(kٙJD^L ܉qZ/՜WP?n}?1 &u\ekE3RA٫R{,taLU *Fʢp-taM hS QЦY4zZ.h $ߌٓVEbˁKyb\'@{3ۧ gUdM8 -Σb``NG,-Ot㕦Tgyc~DZzic=+C 75w͓oG`X8m|v1GF i&O(x7Go+bpg(w,/G7ELyёArߛxKY0_KYR #1G Afe9BkK -  #Hf,prN4 3rʝ2D P|eFЬWprnSL&.]:g"Wpr^\JCO6bc 702xY! mkb23=2!d' 1iAI q%DPt 'f#k5k hzF+;` /M*`;- \$˥ʝ/`N8kqRD:t[&9nu(F6D1p=tN˭h!)Oa]DyhFEd ǎBz_wҏ/OC>ж~I mw4:S4q&W9S8c p^Na荇4MVkHD+ ܮƢH-4fXJcr5l}+NcMօQo}=`Ә(J fLS٭Qp3_R x45TgS34 )s! MbN|wp Cxeb$2?xGȏߗ|zOn?N&w#L7frGk`őƾA7ƇP.1 ~a\ޕ`13yXT Ю"|1`j{0d0?ul{2 v.z)ة6#-I2fكc%7SeZ!IzeZw #ڭZa## ^DeдBk]t){+I)I^uJ`:gXuA8x( lEɥ+~\%:|\&\ycf6G 2+v4vDHr`t%;/$qg^6z"r;^:X wla,êaTVTP9iw;VKP"H _(~Zq wa1;aF)WI-  8i;HCڲl5A=9HY:5fA6e?857PW+]K!I$aO!ghF9 /Tʫ# 9Ӯٳoǥš&$\ A>5hp=aK6\f2eAF1`My3E{u0q ݇,}GZt6i+2nU;5m>2bB^! ]z5\dFy{$dңbS. :}7g0lr b,w5oS׃93D3.MmLwqK) g(a1:SzEŲ %&_lx.[8f/NG*ts贈tǚ '{Bp+ʉz <_tA왛1fbK#Ax[AeNO GX@ B絆73 M=pA: O]ĭQFmS,a"sa *$U$q18>4RSM#k{IGX JblTM~DADVl33l ` P5&fx\!/\ n8Ťzs  ctSfcqUG"c7ߓzG ]\U̢0A{dGruER]%]ODYM6UҖk~TheflNU45| $6:ȫN\c ȴ-s1i+joAinMߍqfJq1=aޢQd D~Bp U|򦓔Y&~Vㄾ}ڬYAcK0d+?wMgTY膆4]V?ePd1#u5MUx͗Qu(Ӫ6Vc:b:UB}$ Y)I2Ӷ|ќ=1x3+aIfY'I ((;kPkՖ7ƴEoU3]K@MĠ֦%D7.{&_ oQTnzT|YaDbiW rT-\'5BVjI̒ M@x¦p3 A_o?7DUl+kJ#&8Jq~xmgx+x"Rqd9H~a[js(yw OH7u|iW/ +[7^C^Mm<2WX<ކg;5T_.(ET1Z p}6γ 8(ɼv)-0CA;  (Y, WG^dKoX*@/b- 1Rm!T;m˯y1B^A!ˠ!m KxP (<([ (4<(POym PxP釒Q>6<,Gс~ƒBN߷Ml? ؿB?wBZ<'ЃcOYBa,BY[pw (,-b K{ ? P?X4@ċ  1N։-٢N6\*̺rgq`qe!!-0PZ ߳~> Mz20~RzԢЇ=hP7poYp`gl88-8`PCG㟴ӣ8S$0y 0/*Z {mXFMM~>cABf XaoUXG6еV=] fzH8~ mUSp`e}QHuvM(:ce{SYmCɾ*YJe l!6,A -*n$ai6L9T911x(A2 ^j[G9<>bQG;pcQZ,BDCHGtІ3P}H+} I!!kj3 M)"+$3$ת7ѳD{I؆]s:]}#t: ^BùH9.aL/wO' ((4]$Dai!zN),:-!S$n* :wQI໋E$l @J^zO^&7&!"QL")",{Z` ]"b a͂ TXMW-Sbuw RYv,M,Y&ykѻեem\RK LyV2P-Zom* (2Wc̲]8VXB-_\ %P",F Dnp:04o0'RN 4 t],@czgp+YeXȡo[ԗ';=! A&:rhƌ|3#mx|LJ: Z1^e:\ȹN^z o{&#~$sB5 ̨b3x'xa ;ڀPein3qp ahg .ws?xoGDd2k{hKݲ_p[m<\,G =|˪0\_U:9ق#Z.+E4[;nAwY"ZO@ʼQ^K)ik,db-{BDnqWt NF͵80gL] ?AT_@9}kMChl:IY@WI\'Zpa@5Ii8Gu.(>,,cPgh8m 7``V EV!}ZneH!lH`/ 2{,Xhf %7BqE[ұ1߂ȁ :-"UL<\AP^vύց(hX D+AwJNSCf#̑wlT@o3!X܍:m*s 1Fm(`_%_JO ] ة#,(6mkJDžaEW6P&Gb̆qKԀWY|dX/&z6[ea&5p>"cǓaP eTf?8mZn*c˂ݱ`ذ`P{`8܀s9 R% |*]Z*Q jLaNQv,R j`D*ɋeuDG5Sb5|΀P}*k,' u@5>EoP)t : \etX0;Kj<1᮵ B#B?'!*8YpI^ҠJڀ+D}B퉠FΣ b-/# LNFzn i 2?݀XXGtkf?A?_\w@uzWF3pA[_*Tx'Л/ɝlwF@nz|9rK m&7 M&"\q3.!@1{-f3 k, W瘢-)-0S gSj& prΎà`78 6|d nw@4J\j>:: *mj{2pQe-iXX4)LlWAȇdl.3ΟnG !tq*L+.A l' j0 ut]ap;G-P M H̻֝>e oqKz \b ~ ʥ@ .2jUZvq\y^*\j3֣~K9pj8vSIϧvE Z)]"",&t!8΋-8lv8#8)g$Ww7&䊎yaXy܂N*4"J8?(OY(2[?;p\08й*w;SL'@%H I-n": wٕVڙ~ޛ7͛ٙY;&֢ȠZ۠6XO;sV0ɒJ=|,t3]!HKZSf*8dav_fcUƾJ?\V8{c -[=ƫ0|Ϝ-xzakyɏϭ*r~ޅE~1SgdE:8BH/0E|'90Brl1Y¸7Wx?qƐ]A)//G՘iV1s&P$<1i AA|0S䉧3X׌H(_h\hNXN-Ni 3:gT[o/p2 [HLi}4@+^`Tq}-_67F ̓#GrE\妥v-b,fe.X !e 0!Y%^ .! <4- ( ɾl ~inJ`<-cL.i=δV̪kNx uSt#W8&,R@Y C,4E5&#Bxa~!/  ISrYp5>DT :KZtB- s/N Ō E'S2-AM"m9Ol":, ]p!CoXg[̎L/%Ple*U.ᚺY׮e*D,W6H(A ܌AZDOEˆ-A玠 Lh`y-X=^Í | d3'")δDSk|DL !)\L`hٸT#3lt;O͌ch [7ؽhgCPT;>JҊwv(-\\u"CL](.CC@>`4G{ֻ"wL&m :mP #{CM xwZi% ^qQ ( ٞ!;tH6Lf]T"n[afP:wvt M h/^)zdʴNM21MH纔:ݚbrp)G'Y-@c 7A;EQ>!AZ'L*RPLghm5Q.)r\S9ڍTnсVcЩZ WghЩtq> zXh]FT= R+"ZLS*U!#P "V D]d*'+ǩ+sX"CݭН#  2Ш@n@Ek; CĎ:DuU*(cDW)2DS#"J"94v-[+34`b5(4= ؒmSfh Ȉv``A‘ 0$Ч10T4 Rʡ-ScH8-@tsTwI^N ېia?<躂eC[ja\45]i jo>v+J Fg6@>c -ጝ;%P-2ׁFKĶau'R[F^<X qL 逖 su0zy(9ʹyk"Կ̧za7*,0,0w7z[ .q#B`p ?'s5=Y{rɞ! M_SrLpxwvε-ILjxvT`HQ}с*0Y߶Gi/Nk8g; 7Gb'ք[,EZ,Ҝ>NR[mG-9Z>>pF^pG1{`Co\pCoZ n?ed0oz OdGF:8A1c(GxNxtȠ}( Eߊ&鼇&Hp9bvo3t(3 vrw jtpO?t#=dp a&@QcY4y;EHCJOM H(Aq2 |-@Wi z+rI5:Dd"MЧMDYU2Ԓ+p zhj~BE0h^)m'>ϼRcR Gvyedv1g(S Cd]oVճuɝA;2[(c8{Qt R x}R]ؿhB 2E@wbN)2 <;'REh͡ԸM %ѩNݟtg np^tp3!b"TϪ&P[oW$riX=w)XcY ƴ_Ogb7+j"QS6*% HD^b4F\ z ptO.eV n%"fHZ>b8A/q3 ?T'ķbҷ+<4v=.䏪vBčv!ȁT ?0 TQM b(DgP&vMHGR )m؏P%c1.6l'C6WPnSf y/9#oWf 4(rQAYVe__K]~QJn㲋(bw({ Α6vU{ G*DSح(Wcg+Ia8R1E"bw3 F2QtQQ3ͤ2a5e 梱TmoRc;G)5|l=WI MĤ&v$(O+ _)$epJJJ GsJ3B[0B˧)[Ne(Lː$^Sn.NoN9]"WI,*d:bujx~&iG|۹N=a )1^Z8p7dzȉgKJ8$I &J} urF`fJ20&J W3٥z SX%Z"&ѠS0!]УD5ʓ/^PQRBKu |xxX(:z1#.zA%ȋZ&OtBBq@HOI;*J?fDG+ =rʖ1+)2C(= m~P"}z3d~O2.C{iCU-wA3};d2eAޗ\M{e2"SucES#Ս3 a`652ȑ8'BͺT^A~iX u{RЏJ+պ ]W;iCse0lBI H }xas)}%@qi5Fh494|UURF2uR.c(zVQefkFZ Q/(7L^TQ!NS@̠QY++IOk#J.O3z_ҡVh,=lz#JqXzBI U=ϑbI }1eң %qe|Y9BxUEY3ה> )e%%|D2JD n8C-%%U}"וBEP/3ʅ0pJiA&S*)ܷJe|Q.ޠƖ)Ͽ48*K%JJh1C.Um. Vhqutu?vfq˭E,G vmEQKb(B#H׫a`4_~.ˎL|c&H]8b=F~M?J&2L;0\3i\$։0,XDc=42_V$LRE0K?CL~YCŻ)[0pݕg(F()JDϾJiAmBC{26AC 8FEI3бJhQJJ=@V"eq '(F‰f(NTR‰ѿ *:+4 (b(Q*PUJ AJR(DQ(`eGAyC ?B&|xpMPwQSRBE2ȁ+͂6b>O8iaQ5I`nUM"ȎdKaeYaݼJbPw]e_9^fmBK1S i %WM: !⹫>cC,٩lc)}8fvvCvm}{ӫr:e1pUt@QBsMt6P"6{mB$#-2.66&jWeE_e]s'eЎ %V{9.Dž2*)SE_Wxbe0ˮLGE*;qbRjvٙ#BaRp"$[VJ*1H{eP 7I!qNx5!~WiHR8;8*^>u3"uEըER:pwhTj\9uCIL~w8+:nVv7'HM|*%H̐׫#/ %sס= ;;~"ETMTH73qqӡ='z]2sF6GUxq#.QըMiOArx~#=(mb(EWE)L܈,<vvSoߎbXMm׽ k1rwܮJ"0rcE3|AT *b$Fơ5N'oek k}־ pCO_3ݩ'/ [rJ~(FEp  !E?KѬcn)FEnEFD]Uh \{ؑ8G!U: g1ș%ǮS%- aXN#j+q6r)???o K!aaWLV%;^s•ᏂV{9-͇36fh/}|T zpF~NbaE|1+j?[N<'38;N j`3"񭕜L FNXt0^0b93:]/ityXS_wv\w\-踚Z*A&ᔶ.&Lp wv\AX\İ)w>:e68;A&31 Vk +ۥ\܂ T}c4̡B&azl!6%}>39yx~|x~Gu`e(/fP| U'l1$cGqƮi+nn+`,a LZf9C 9u4yhJ{8/s$OSw:5.2&C# =*z1z 2hGМg%O = C~#HcesfC}Μ_E2/zVD|Y1A[χ-bZ9#M<4hS[qzjE= ^{w<$9S؋DH {.dS[v2G)k*ArT)AxHBCYR0Ge ךKzM! r+ȏq՛m6gBx+$!1fm?DTF(!$_jrx+ pqA&S:ѫM-au-@^D`0WĘVp4](YgI`[F:p5$xȴRt^pUZ3!8Ęk2`Ț*J=ij*NA8!Ġ49d!c:I(k蛤坵TH9k2kWccs,<.<۵UT#;pc mq(VdùWV1"D5!F C"D"(FPWbv(+'#+3ToB4I5X ;qkz8,h&26Fg s*vB5 1ԑ g@ 1ƝtxHɍ>a =J>ܴ?ZΘnx g΂ʆUU6 KLBVso0R#u$4t+p]< {!EkK79p86f2J9?nr I.&C=(0dt)Onm"IE]-fZruW!^jv <2Ίنy !&zBؾ(.zL!„L0\;1tp.ۙÖ@L"Y9LJ zWQ؁Y`6y.XfECL[a(GO<+Ur=xѶ2tѭp9A@K|c IAHN.%C|rnPK"É$YEdEÔ%{ l]> _U VQ;f BKC<. >Wv@Yz@mz*ѧ^œ?=wr(KU|zN] h&!Ys"WW)-9CN`=;zur܎-cSvrJǭڲV}a bN*\ADlWZjpX[i7~NI2M} n>YS+ m׊+ nfl\wsbzRyHEV<E%%J6Y$tRAUq!'wJn _+κ0xMH=`yI9E"< H I{[pxIʇ/-&Rbaѥ0Ue^NNnD.=rA?LKZZMwݕ{)qRGC)Hx}9݉% 7KRȓe{X+ @@:?$pO(3U̡'CLdS|,n)=pY'y#zꊔZ吓 [>}%BKͅTwf+[AR3$CK"ʤ7DV4ev:E4R!Kq%4YE&EY|}\Re[̴qðc#. R!N 7w L&9MW!<8ꄥT Kq99.Md 6S]bG#;QZ(%{AHJ@ØS|+¥Qy{Q]~cٸt֎Fy+(Q0Y_O"<kNz x:-1Z-nl {͊XC,<p9N`LD|U"*|"*U"Vr![%S%Z%*j*aU"ddDHvDȗ ݎ@sZ#AipH][#vj~sk$bDUjVU"s[%B՚0luFܪh+J}[.}['zV6؎>ZM7xտN:&UonM{Z#VoU޻ 5U2\P/a9|dT]i!*6jI۽7rojUbPGɳ*OPW'' }S[[>Ԯ#?UeaIꘒ3M0Wa- Á7G7jxZ _ަ,sntZ]U0hMκܢdzz5cIߪaI#S|;ݥdZiwɉ4zZZf@HwWg@NMߥnir5I>dH-`G=B®o# #ճ# M$ճo"Y-7ͻ3DvqNHiwj/DN>?z!TO~mЮꙆh UMMժM4WZAwi nAbK=mn^Ѫކ국VIXZ!hUn5RQUZ%J('}.]iSUߠ%;תZ>ä-4ܞUUu@!mTՋ[cV-|)I? Ȫ^)gz$Q2:餜r-/ҁ07ad<ϼO#X,K<7>M'ܫ*xِOiFA`,r#忕j \]D&؀q]ESþdoQg߉!OH&t1?33Iŷۡ'J0F,)pec7b*K{Qش7XCNAB~8mD@2JDʈX  ty )1 $ݴ@_swd< Ïk6;Ѧ>s{ϑzufn%~Nҙ}}i884Ikr+$ ?|n=.Y7VRPfHMd;j)ߋ_P"a=~QMS}tXpP}D*Ӧ YEGu1zA}\aHHKp~Xڍ'w`֟ZE˶#-t_ 6ࣦDkH3"cPkȫ)x}~pzEgzC27;KF՗i 1ڠi`־T_QN]El?Ťu7w9YHAMobۥ'DyvMU~2gC?lT&{%.5+Feҭ}KYY,TzқeHXttu#mzSeLPx-_YxTDR}7T;xb.lT/NdK44vdSEꓝeHAIaZѩHZ HӶ%i`uP/n>}ZJ˰fĖHo+_X&uQfdq.5N2?)D#)7I~؊E7o ښa,ֆ[f` D4[_ۄԺWpm#nS[ȍ:x3 i` o{4#4OW_дn -&MT YVW1~W1woA'd`u-$SڡW4QjE w_Ox ߪ7Wm@ s%A/?7视Q:f {Fܪ0Bw;T&6&1 )?Ɏ5Biv#64L0wA Ep&  p꘡n~)nۉ#~닍@_䶎 ߸4nKƲHo;\;x{D6T{iX3~NݸJwW0Fn{{j}۸/4lc;WձTƓa@9Pd9pT]9'JO9L>z!<Îcϡx9?0܁&G EZ^n(W(13`f#s~ڠcUW?ûjf8"|D\AH!e0i!S!O & l)) 1roJ<P=~X(otո |xٸ?W½iVRbg SB(1oVb4]ƽncSyDiü†``&!D)'5 TDD,{$@(\> @1 4GZ@3K! $"RڒyĽ䶨nw QytKH Knu ]"TCrGTS=tgW~C p0Y8o p p9;>9tF=˞&yO6Bgm ܙ8 p4W p+ pk . ^\h Ƈ pE;K pȇ/6ad5.gcCH~4E ]n6B3B8x88;F=U5B.o!6B·?0B"?4B"3B7B4;z=lb|iCe8)_P|kCe8)P<ה0<V}OD"A} !GxL(!0<6z =]=> mS8EbX08uFH3@ȀӢ@H~ӣ@{k7,-&V!<6Z 7C!˵y"sKC`<VC`Ux"|U^ W!Q?9z3o8 p͠/c9z}7`^LcCxFxA<<i8AC0!B!>#$ O<Z`Do`Ryh=qOC୻x><ѻ/AC{x1FDǎ5BG!G!'!qFHFHx!FH!QdDpuFH G!Q5fDp5Ĝ &D`tv@q+$P sfBE Q 1wxVv!@&(B卂Cгy<CӻiWC`y^!hK<#lTCPt$nV!Y{yz_M¤KlXҿ(Lf3pXz P &@KoIvL". PKhFNe?a=&͊f&@1,} ahzh|h<6Ng&@1,([M"U/(wEA(jiߪwLR Xl |   Y< 9&@dsM7O5'Aa͠&B9sY>A4i}_nDָq ^_m]c]hDp &@TRQI]jD{ %&@TRDH ѰGh8hxr/"?3"k,Sc4c4L1v|11iCc4r{hhDˏvF~2Bb,~0"_ Mj~6~14ĢjsC, / 5ĢkC,o 6 /DÐ_!? Cjy>H4 &~4> aODÐ!= Cz<qvE_3F/-^1F#_i22FC'RoY/EEh0paݖYjF^bFm%=)fD&x g d#0HD߄ b-/L 6 &F`6 OmqqhЏgbų 6Xu[C,;%BWܧF`0"0;"0gD`(gF`%E`"G`]ռ]VD"D֍D!+BL`pjz_0A p@B|BdDAё(H?"BXpl 5{p$ ѐHƣ"QE0fBB֘Q1Qg!k-Pc^`Edo`a+hO#$݌ݍ}}㽌⽍cTkE2"x6"O0B'A̠p͠C̠(5< `3(j#̠( 48 p3(9U* c Ȭ!5kE&b X-av0l!v4"$ HFh#$"w#$zp'#$<`g#$_4Bb.!1f Jˈ+\lDyS1B%$m*vi8e)Sx3S41K'g b-M༹)xg0}s eL0UF2 $S!`M<*J>FG(xH:pxtc !GH:8MCPS"yEE#G DAC#QİHY؄;y'j\Di(_۞0\<k$'B84qv(ktmJ)b7>dy$Q4o|B_tœĢCv>O-"h n$^Bxtk},m9. 'iwT&su-F$Srlm7lDhV`j /)`0.,OAIaY䷍*uXS'DF}pY;%*ulܨ24>xf)*[ Rjd̊ULIۇ-Qs$VNN})mRgR؛>nx]UgbZ@7p+y@0kTv3&.F6YU"ҮTF/zp "+`vʥ0gѱ;s/^=,W* ¢xNxQ8MXb^N@l#c U[+WFZ;l$PpKGkS{|mEPo <߳=miۢ/?bπjw#D<D*IXE !Տ<ۖp,F9JGmS"2ttXWȠx>"0n6vKm%<1ap(|06'3Q nz,F3:8ڜ| kX 'zaE $a'/FhG,/#LO.2</})X~:F[nB>35RA*wlS3*bdwѢ m'GyjtbJMxQ2)G2rYYd9DT`e7 c\%a@og:D̗l *X'Q >o Aq|-JZu@aELO V_J^,Ji鴽U|9e ToOiĤL_`mt4bN\EI:X^17ȉ"V8#p4 ϳ2k6s7fP^̮aӍOfn~!9vpQDAi~˘ XCWٞדK؞{/e{F|S{ERI5N{7c'WVWzcOcUHcW޳dNˢu@f> e~oz!Y/T ,f0 &+C YVc9z8Truv&pO]3(˞AM^}2_;"5H;[hlZ#YNɵ6]$@j!iVaGKk]WRe+ ̎SjFsZKGB9BU8%9 >}ېd`͸ڿC)5ox\9_ ,0F^9NS٘GZqko}킝B!(ze덝 Qv H?_z4ٞW_NR==TW}n'dT䥊vcU-Aobkrz! oĂWvJibmogp8 io60>ȑ}:E뿨?(7Gђ9A8Z2 ܉¼`u__uyx6T )YR]BtIP0nBdE` `M%Z꠵#?dxY էҭDL*^fxeL4*N"8Jl96DOL/C$>i~c_ru3şd[4,>  /͊3gT(&8$vPFE͂SUTzؑ-ܜ%ylϼ]ra‡P`Bw{k _TzExguE]T (iS꒲Xk7VS/e]lrlw%s[6Ic2I{@5IX;ltmq[J7뀕3*:Nl6NDJ 9"iѮƌCюQj ;Y(?U!{JA@RفV1Clڜᾬ61*,6eg)m7 KQ">5z)"F`vQ\w^\ UT;qNaS4-Zt"'Zł-Yvpv1=Kx[j7 u|'ɪ3K} YVI) Ѯ\Vy *办9.XN`Pd jخ5hl]g.pW5 #Yq"#' |E^lYt♈ʂأ:(4.S$O+bh%l\%R&.[CbЋ\ǯr\[BW(=@>[fP{Oe0cf ?zQ QϞd!?#tۤb `> zxXᵲƞP@ᡰl[44qExUH TSB N"{YQRbǯ(Y1uECJA8o(ƙ]]e@_RS[vVh"UM NEQA%YSNLBDVI>^/ nҒ:[T,7UdV3. ~'ftޕ;;mHSAR!(ABԣG&eښ`e)TcT0n\ ǩ7I"[<,6QPX^Ȱ[)O򭳵Нv5R%s+<.Cc =6|SM7<&WrəWE)Tm0:ͣ* ^>dRd )#1U *cQg(T3jri &K?^ClI W5B\S#Kv&Q&QvP,#>uD D^Yjf-EiRI 7J7HpbƛBH-:\/kъ!>n|ؕUo)D@0nhEQcVgYŌC d**-h>aX;BƳayo$)6`gLVRˇ90V$0IPk1%[ Eo'6\sl-M1XF֥(q vTD@ tN2։EOjRJUB˱Wb#hŝD͟,r?VZb&I8ÌJo6cQ,:O[W_o#y`&vD/8NL^?No4w[b>3p/q>Ӥ{Mu-nmf๖- \$b$f|:f茴f)e8iHg] * iΊ@-1AyIf ω`楑s#`^8%%S#Df-,?9(gD0Rə̤?&O@seJ(ryD7lrEFd(%(1.@Tqid'e0/9\Z?+\(nB LQLQrh_lynakD2H6uB|+YLQ0Щ̇y)h(vi7b%(G44.J<:6I? #nx-7<; )Q0( (QBpf΋iQJpz|2 k &aMcQzucx5B uukȽ X[st=_Q׼'th;PG.ce7#~+GAF!5B'7,^?F|IŇdd Ɉ &5.|g:ekCt cȇ{?Tg8?i#ץ,'S~_4Px4PF;^^/f)th^.8 yH/?-t}Һ{1@x3!t4O'*!̏3' ;$ZEGem~/TFzA{X= .[N6v"P22꡼t#I7E0,b,ѦT|&{W݊jv֭4~#DLFvGsrv<[eus\EšWҫrX[3C@!Sr\[BOf'W(Ox\C 5Ms 6k=ۋ7.I<J[[7fxs5yk~էf4&7nu~Pe#z;]$ڪ~_I;g7VtLlk~^'6HmC?z SFf:sAQ3B]$3j~ 1YY(`_WrjͿv՛wuuBuC%k Jk+xD!4KOͿ*=D-8V`fJͿvfarQGR}D3fx6McL,cpܠYeɆރ cq{Ă!:ۧ_umf0qxH$b=,$uvUăj= >IZn TQvģeІ#R@R@bkGtQ6{_ܑﭤrœcTOHGǪXPQ7 m#\p\OP=!S=m W =DE҃fU 4=IpZ0z|RxrA !]ponYW vVsr4=H6zz.GN R!m'7;@ŚJ{C$d(F0*C !?[; mR;i[ *:T$|#V idw*G(D 6A)-l: ;W\<͵۵q{ E_;_&qZݸQa$ ztiZn02 ie,ڕy0K ذm(O?bZ8ߡAE|TڣfP0Οƈ@Q0]DG毡"S}ǘ4w$C~V9& WS"XQa66;-8*Z$ު9+eQZ,9Z|%z I#A i9>(߀IhaC֓d?D~)M1C kiMk31RDdpphz! 便5el`TV65JExMߟ940]OW=\|z튰mﵪMA8!ݤ呋?i=vp ިUZ^ }kWQWH*E G%"ޫQ{i FǺS߃zQi9tRg^X n j ) ̥#[;[bK : ު5f4]~eJ- &}<}wj:s8<Db7OwVRcآ-ꭾs46Nc߹ZA2|vQI.< jISwJ 8Ėd- H 39S/3,@}?M.q$ }kӉqJ&+~Js!2ξ+ZVeC=N-',.x-aVn/S9w6܅FKi Ax6j1x>ĒP\UY%_eej|}2ŋ {Hj%\2&vFa)WdJR%Lga(]}KQ"cR[kW:[TIwȈyW.#tՊfM>hJJ7L'QHgҰHu{ZDo'z?=HjrJRf鲗~m=ԸN@sY?׺"-7}|ds|Y}oogB}V})}#ψHY/SG_K9\9 Brt^SЈ܁~>pebT }iC jO'NRԎR-cLj:y)Uޓ%gi9|Y?$K%z[,Z{] )e0ohEx~(EJ+]21GEZ)qU2~Unha 3!7\'RЖX^FV\mlEHD3, &7}5RYW/6?"bsDcC]'3xfz9ALɡ}METsEi;Ӫ&ES'i\_BvsZFX+SVP H+9n.J"Eza T usТvZʔ vDrn5d.֗c^D6UېNcθހ١EquS\`}E!3{&fނtn 2Wj f'G~TRc{$Y WOp 3_Bֺz=[۵ԇ-H Շ[w 0n}55eӯM"ʄ>*~5YVLe@D8-t‹ЊDz4lsJܓ>Ĥ\,rXBt|w. -F Gk!OUS;H t)d >[یjW%1(Li]٫t´G@V$*jc )@8t԰.PҬ0ZrQΛ740҇S8t -#ܠ&~W& g- A_Zz0`BYzX Idm xvyoMoЌE <ZI KK^ڮxuܨWl6lQ$SQ,Lߣ5TZ) ʉ|VJP2LRr<^_ ҤŠ5jbEE@fUwynҩC/XRMjoǫ ?1=|qI0C?Y@*G3)FJzӵ.aVNJJ(ɪr}"u+ DTSj{-}T_5?F+F 5dV]EYۥ@^)6mo?Vryrz P_}^ T?I/vHE_%lƟh+j#mw]piQ,׺ Ci;*}W˟OQM)mwo+u;WSK`•0!-om@_. /̨p{y ~"$Oz!}%P?hq_agfD07_jӽ_?>#F.Vz>;CA_kSlFʝV9;#P转B|-Ҳ AԧʙeTa>C 誙GcL!1dvyRwcQu5}Q搌M>8՟oq t >^Y/4[_RXn! Y{E_jk#/Ւäj/I+;i!Zv^٫'3,--afIl ds-@o,R+mJqZ`-ZPڎ2wFZ-[i9^,FNo:9[Uvzeʪx{FLtcF̌j(WHYSuJS5)!OKǴ)Nr5C+iOIgO80]!4i[L krFCWWc*]')kjq#, ZZ՗V/=dC[Q?־Lzir΁aA9lzfzvZ;3=9#`2l8 # N8sVa{kOUuTuխt/dt#Bgnx;&6rTzobZ8-%KU0ʚjgeccMw1lZXy3lx~aj."ifbMNj7M1hKijFw6J=92;Ւ(jӌ) mLCqO_`'ƈ?/}A;cia:\lxCoM;_I$ܲvr)H&Bl6zO4>R'WuJsz}1s}5YaAC6ְ}ayMK7v^kiސ &7Mn)L(eqޛ.14&復xaϯ681{H_W4,hE֥<-ӛW+C)Uk'o MMnLmv%A6 S.&;lYwi& <=[_!ܶiMb6OQOLmPlH*Gi J܃6>?p̏'_jꆹ$H ҧ߾ˮOY7(FM}LlCĨb?5ȖmXuj>l|SPAt>[vvWު7=u܇o7R 6N!bEV٪W`⃚oj#'w]N[C)S{BŌO -&5*n/"7QSU mCĘ۟s-._mUre+*pkuݪx".bV]o[Ţjf"*?U6CmP'*"aNɭ;]YeB~bWb a_|n{+9d;_w ޡنboew!n:F?6l!Ba| !&: crN~ m7OҠ^06Q]^f! Tjws܆0IAG^{ӳ|^Ђ'#`_^Mc6ML1[6돣.\ 9c#_gW 1چ}G؛V.Ⱥ߰?Ѵ)˲KOܦ;a~<${goM]Э5i>ǡm7]4{SJTn{ʵ8NPud { 9@;~žT ^NzaAVʕs>n6W!9u]r<_y_J_x{- lz!Mh6lpK/X_t6.tAvPN!CA=֪Pj)<1,LĎX9a^BlLYFͭ7H<;D[4XQ9I/^Enr'#&,VPeˁbbf'7hTY>vWMmՋr֋oa:,=pkxq[lVǗpwGHuI=ubޯXVv[2yt} ˾?-zxͪG~⊯mrAawa1oODmv zrrmRC2,.*8 Vs*>GT:` V3,ǕݍOX]L5[Ňbmw^A2Cc5f×5 wN#3rg 1gx˸:<$,$,s'[X/gO, ku5eU {4 GbvC"pmzi!1 :LYT.zDCqcX]jgd>n Q;.Eץ7m2f<کFXMjO8hBNLz.VZk xK>zbU׉?`u؏j ?;Iwy;X)UxeL9X="3QgT02i"ФL6'Tf4.3> fSc7~n4;߰.{xA\CR`vYF };awbJQJZ;jhRgXnoѤPޣY,un Zf8)H։H5&3hbvWnw᫽}KR!7\UJ<߱m59J'xjI ny?TT-Jrh¦}Ҽ]s=۰j2#-eI!2tޮxïQm1M{H%ۉ#*Kv%[N2"eUဏ<\E<*Qemu=¤ih4;jPˆUnS(a24x̸I_'Q-: ݢX6RJ3?G3ƯZS%xabt.,掇ʌO1m?ȀvLkW[khHB\JzmtNzV|I*X_VCtnmlxUDjM8k.s\Utf{ y2tG Z$(Z1N]ll1rnRȲ=NDCoL>=Oz [7{ymvY֒Z)@0Hyt`nݣ '^̛u٪3(  ;B,us P#.Q]m$*6779˥W׮v?flt6[$Xt !Bbblo9&l;_V!4a2' jOd#|q t+97+8i5+\f]NA@w2hS1,4je wx0PǑj!)LDBrMOqX!6aG͡B0[%F F|UyMeźO ۽e4So׼@ jC؀cv>NaZ>X }J4KCfȃpj~@W; /w4[u7C>aQ:x})^NitrTiQc))jN/CȐ0=*8=v׆!90LcC?!aTn-[!Cm,`{P5n4D5v"KmQTN=BWF0D/y !a߲Sy!$}v@27h.3h=uw'2L=Qv{B-;DrB;FżPnv>6JhթCo.ȭr FØ~PjAGD1 9O$E޼p׭QvG4LH5=n) ϦBs7<#p86 :A];q,~qwUO eQXORO8ۘK7Dp~^ s|U(` 1h,*vU+y}跬W _%vڠhcMmNs_MH@4VY }4`p􂎼qB|"vr!>܋~nKJU]K8>hΣ䕼>64*ÏO*:!o;pO]GHu H$ypD{l#zsz5h?od\6VV*sj'Cy;YD1xi;4p o?U7 hBlxыذ* Y!&襐(")9E0*5 S\M`臟18?4v4^0pxTGpl<ЧǙ)xӠNJJrC p0x,׵'y N. UB>?!6-'|b}Ҋ`rRʳؑZ;iY1(nc.^t/G-J@W1pnM&Ğݤ,#(&6iǓ7a$|Ns*z  5Xwnߥb5-+e籭\ؾK6&J.872L_p;Ҿ5tZՃ]mܛ%je>p#¿om /o?/+9"wƱ"ݼ[0!l&>yZI[Na/d4s؇&dC?z¾<`QwkerڋCKC>Sݚc8Fi4:^IJu܏{qS^/ˀ!,̏qMΡE<ݴ 4mq>D,%JВn+At/mxSVk롩\3%>8}蟳. 9,.PX0,Z1 C୪_%RajyCXǛou?.fBI]D~XΝ@ܙUl58r̸ /C`}v\;ia01-MrOё>V=[`Cr:<6atZ)iןV`t:4G86yEצ.Ҝ i{J|h`cdj©a C8j6*;Uq*hC{qjl-vř^ƟltjmP;9|DBźVG}6wHΊV*Guoy\瘇"ֽE p*~!uZk_^ V6b9?Ɓ׶6A0ݏv5WS,=f"ȂijmϭzfV[a2rbB[̓iرj1/;^%?Lx+cd+&ڬ5(" VTJJ4A7L+_Ya/pehVhKZ.{K18+B(+*!33sE6c-,Mln+V{u`~7sxZ6Luv?]5gWU.e?,1ћImnU70W]7_Bcj2 N=?d%*xB=_ЙB9$qmпMqL+AYx~wYEn?(^y09xQYWjىQ7p}k.PDRuyNbl`w,k|IPa~qI'V[֍Jrc Jh?P+DrutjeVu]mlOkjltn~ܯsO[_Ƅo@) {VԽ^Gd#.Yal+W0QKyT6rrB-}jB),ث-sM^> z"!g#-|eK +`A- !䲵hv)5 W,Gُ WFk$5VRQKk,%rZޱDը_ Ws/^-B! I1r^ͯ>jZV—WGZk >^ڃ'%WL%Y_'Fv\Z#z\e("A}.]^8H3ejlFlK+tzP>o?38]#χg7iLŕп}2],b>V9jcqYյASUC岃z~*rAU`9V3|6ÊpG,Wh~{Cp< GoNB wzw~]uF3@>XD\ߤp!>ªװ`[b>x7V? {-V pC*rKK zyw<n57/ ;x: v/?tymlm%rfj5q;wYI~%%A5V-U<&@qpCf7xu;9w/ztpW'WoâB e b&;idJOl+4OkR8fP1E% yx?+r^d f7o92#G")8Z$*"Tm_wD!&V5퟼ onbrץrM4^5VVOn *_V/S Gj>8ŋ٤I/]DucS8Σ.Kz3QzewrN#AiA?z} vp-Gn "`euFqzqaJL2^ߝ{ׁB 7.hV;0 .⹚C@Z7 +W+H| ;;Ǡx; 疩Ic"p]Y ec I[84Svs d=yg Z+tuʽ]| 6FxmAJ:oUձJ?f_輑knOdp<PBXb_"`ŁjS$~ܧxOOM]p ۋ:S$1n2Oww)uè`yp7dDя[q2g?eoUӋrY}43o|Z^KCy7 irXya$k8/Gsbgx fh:S Kn|]|xwFcf:&/HS:=t5< 5T]ȱы8G>j,zCBϜƷҴɧs U]Q#?QpK'cgto%jxA$'~Owe"H:Nu]/+ yaquMX{z[~(dw}x'fmz#e^9_]5x9׬˗ҟӰGzAզŁW=zG!vj.b!gR!zEWr4mQ3v8@y#1Fm,`ɻ@8 xg,<1>TT"}ŠO9s^;MA`'Dƿi$maٿ .z|;>/{1XnDEű+[iĒ'>Cݑ:T<ȯzRQv"C C-u8zP2S+ozq F'z~./9Y d.X ut8zcU[7k|ćc9dЍ>~.bsPzK"mxd:s`;}Us6nv|!1 /ہc,/A- }|DpGB60*Y}X1&tRG-7v"*ᛄcNӃw+V>I;I}Jy{h*7"O9Ap0hS <!擩NB^HuϦ;Axӝ &b ]rF߫ѣaG5ݣ}s [nF-M$'rxw-.-?Pq]6{oy3cc{n`"my{X V/Xh\е/XpFeJo4%h6U!B Wo"$L?"$"$*_"d!ѥ"BBM'B»wpa2[Ҏٝ"$ퟱ'7u#o٫m? t/zzigQmK̃ %z|!n7WE\$Ģ''Ģ XiB,zt!t6*Ģbsg 3XB,|Rʻ/rA-^ !=uIǤ 93p N1=8] 9spΒ1U8[l}ur8t9Rv5A(CӮ!kћ.!nзKpHܥr8T*9BwB])CE|J_*99(Z5TލfK/ 4`% /PLLTDA(h^O& RWDALjy\!l' r8m@"CN!l'p[]7pNswu+% ?nܱAw?qlONKc#l1ޒmkDlpJ6vDԺ]WjKNIjnc7T~$VK \Q Q= 0Ni:mԻT:ۮڮcU+a֓j{ާrj {ʕOu߫3Sj}5BܮO5L¬Uj°Oj` K'jWA3ju!øU)ժklOĬ5%(aT.1f}BD%Ų4l%ihԖ|?cK&f 8`S+-"ݸ>Z(a:'v1gg-%%WmC-F~9rݭZ!M$o1K* WMox$fSQ Ppgdne&Uژ-NoU݊ANoM4>ĘaT cP°"y-{jGղBC4uasoRǠ\WKSdzTS*C"xQ2%fʤWU%'Vfʤ1ߪY<1p[VF?5S'Kڇ\W*J_Uߪ\e+9*g[!f_T0jVIT"/BQ5ܜ@G:.n)>́xe"3uHJh#=~o;Z-BЮ u(gC!l$&vpFzW.vHVn4+ں݈΀#3nؽTbQ%dKD؎iPVKzbΎHo DhGK2ۈ}Vj_sKvO{H-Ak34ZkTݓR#자|fĴTN1 Iyt)P;{Ozfq:=O 0,(3ahz[ݍg@y_9.́ʦЪ>o.֭ܫO.ZDO4m\QرHCHxx-3hYJPNYSo寷cԍ_n۰;HM3 k3VDx7 ccWҺJ$H[QK)O“HKқL%,'۽ r{Jj9F-jƶ0馒@43 |C'uo'SŸrj[ioqrpQY?bAjG5 $ ڃXroWf\l-"˭LGOحrw3`:flKu&hžk'-4Fn*#BՀ%(0CK8⇕ VVE_X,Zdf"ԓTj7U>a~5\_Rö< X/`ϛ a &>c25qSk>Yl)砧#hcξ>gb6\3 hAj qL00ofN3󐑻2047#/`3c0.ܝC:?rO6b4sk<7e``u30PϷg淘1uXzszG|1}K6ZՂ?ALa,ݺo3Џ Al|C E=A):?:{Č@^f=P0g``x֏uYKsk?hz"4c B6 8 efܞ? n5_ނnAO2 s x!XC1#I;3NG5vZٟru׮g:FO5`oW:Ҫӛ[mk΁SplSY˱ͭGAvvL{x4#7⎕&~ H\ w2Q|DMlM2K_2V:s_d)7R?0QĘ 8~htAᆔvL91rAPS8TQth5r90?@nlώr|)}d \ppxM8P+ nwpػ_F6n7@WmRWe{#hёec/G#b Z.!%V p J#jӛeqo'4My o-{fudR? 92>j'{=z16gw`WzNV0/ᯔבEU4G:lO,|T_/P| qd^qC"#sﺡsVoΡg/ĉO,d/Rx=+_C芄ez6Urig5hl]v|=гgFΏ/Q%_Ut^ pI/l!@̽F䥛 E<#ݤ93~ICvz|4%b䜌 T޹@jvgFΎWEUq 6ZQ0:3̮A\ߐ07f``8202h.7C%*ԭ`kuHtOrR35*J Jq9+f}]|7=7—2Qx3r2Q(]5w3Q(c97J& CLކ( -)O)fԓKP!ɑmD/OLH#20dsJ|Iw;D#>n2 I9H=P>(SDa[ O_& ;(43QV&;OpxxE'w~PwB7L9$ LFt|D/5%άv ;?d.$6+ K&i Pz\W0 e P|1 ])tESrՒJ:e'uYl4 ES~NgT82;Ug3qmW 1..S 3X US931E`(tGx8H\2ձ x厜wTBYPO˜@9ſ!Iwg.{λeW-ǜ@9E8p+L|zo2棶ѫ9|l;tfmkz.0RO񫕋cx?+)4c{Ƞ7Y1tLSwSm:{yšPA#^uL -,Nj:TGpHs2pfkQUݦu]^su$s*ܹU_S_7ʥf ]m tӥR%X.u㎆C+)3uXM{~l.4֏yn ~Pn-D; Ӳ2d+vgZjgjEgtViJ.{yGOk ԺAgGܨ{STeS̮)eI.7ںDgN3U/5ҫ~u=ͭfppJ33^\M)T̃$BҦ0U\]~)|ɴenP1挋0Ru`di:,}"Kcv&m6cYtnnsѺF㾈.u$T6ؠ#Do8,svY)Ӯ݉=)i8s+KԵƊnhAD]3Γ Ժk]uݨnڞ4n~J2f+ɮӻWZ;nӽ_NXc0ջ>˺G!> UC}VG_̨ǵXg.cûY7Г YO畉E /axBuF()Lh]mҿZz<3"I]/DJ ?5vc)?KVC^mاjҫcF3) )?2O.av1nbv=k|!0G1uENƢ%W^]lc'MVsfeNsPuUvqX7O{FcMzFۄ|8{Ɣ zY *VlB2%9nUKbеTN0{qgeߦn6u2QUH;&tp׃Kjƺ~nӛQH,CBu5ygӇۢZ%|؆Dn=viO;ƅ|hIezH*)46R22PQO:V`!ɯZj`vUikn݅h9cU ƪxh%eYY9k1_'{K2.Ҍ{TVShjuFשœ&ʌeԖf#fxUcX}J47fdݿdkl'>#>+>.O pOp83Yl8ߝ.wO-p[8Mfw{M.ޒ[ {{LYCSM]= o pG8ߣ!z6.{Q}Y}E$$~+_~&_/=~ =+='=~,=~"=~(=~$=-!Aо phߣ8Hz-A8__, p81ٸc8VJZ'8rD-8jBqK8߾o$& p o[#:8^Ҏ}7 ) \E%1D.3J@J[+pN8/pE%N­D !p--!DGY$ p !z~"vHDcBa;%L  !FD8JBip b* .BK9B !pz8S@>? UxZ 1uPB$ zMGMSHP &BmJ6 6$P3B͙B !4!f=t!Ux9KCPfV'_'A ] pP8Ln0^мN~\&aRs%DRwZ]!q+$W+ p p;AY(z8_Aoc6n%DA pS8ߩ$w p pO pk p;/zn6:,Vd5J[`I};렍q ہRӑ;>nC"5g?AǬPTPJčpt>Ev`'} ǣDqq:K"週 x2zES1R@e$zLe超~@%INlxx}ez#>Y0:զSVf& r|!rx+Hzz[@Gܴ8N3*QmvH>+7(f'ٛ>WʝIx*y<0QA1 g j_<U+ޝ N{WٽjKSEH{Tk>vܢT#c7|V/qZ-2.whrVoz]YwM)[Tjit0FZОZqoVwDYb)U0wCUmŎv<.nb[ʕ;TeoR-j{D$aڣjWc\̶4f%?ha v}Ͼ𦻡}?[1+_אyrJk[u=%gcxq-$^޳o[Jeg>X]sϾ*mtb^57R2:cĿM'vR.MXg;+!$&Tj֟4/ Y ZO fϿ &{J2'ս[KVxQ=75d<(6a.uǚ=ܳ LEw/ =^-=>Q=~mݳO*7Fq \d[BhJSUFL8U=7׽_d5J]he@71VP?V B'@VrQ?Ry`Q\8иdvj/z3%KŅ0ϊNSD/?ߪtJkVÿv&u5@.^ZoUfP->"c7wT "pI0h N6#xy }KWvXų5(2=FHc'*w!)u*=>0zqfwA)E,[ue#j몠5*i7*h-$@RA4v:Np.YL8-Wa W@KUPNaZf!Pw~V٭T<MDxG2=FC;ғJԝk 8Do->/. oxyk]`ݍUuYu"  +B("?Pj' ݵԹ{XkWY&X{Yll6# f`竫}hؗԞR5{:2,>^.sմ Qj慺YbE8ܧXvf Qkٙk֏NW|`ܾs8żs2.fY2qgk^ckS_]^k4}k5>U0\ENXwV|h̾SpI_Z{ivtkvWKTe/UmiZ*ζ5S]Ŷ+4vR`:D${UGҒ߇QR~% qAZmEĮfqeuN6| go>=悁='Ym% fiRd5IPaGs~Sߨ*ON۷OT* Q'-?&ᏟIg$@ %@ . xO?-᏷H[%@M f x|M?."?U?>&,!)&.J7I%@# Q |X?]᏿᏿᏿  qX?# q%_Ꮓ q"I qH?n_oHǯJǯIoKHoJoI/H/JK%@%@W$@K K ` S 3 k  K + }  ] = c  C # x x- $=~z1!BSB }cB%%gOJ /Hߢ]IoB?#!) ~VB=K@=zxzzxz1 !n!) !!B-BsBB3BMBBB }c!B;%û${%o#E}B[û%{$7 HBoB) $!M@=YB=|zxzzz !A!6 !MBBB| h#B[%G$Ç7K BMB! MB=zv !oBB%oB) /!K@=|DB=zz!! !BBC&ю? B" UB=z7 !OB%e$B?% BK?H#Bo%ÝB$]B%×ÿHB%B$-B|h6!pz]@=z8$ K[B׳ qvlxDB=zSB=zKB=zzm!pPB=zYB=zEB=zMB=z]B=z8$!~^@=*!(  wv Y@=z!BKB$/ ߖBMߑB! ~SB=z- !gB$_ _B# ~^B=zz+!BïH?B_B+ ~IB=z(8_>1c!BOßJ?B&!H@=zxx6!FB=11|zxzxzxzxzxzxzxz.wG (! K%!uB# ^&!V%CW@=DB=, J!* !0' ^-!+$+%CK@=>1\B{%!$!CGB=êz1w BBaYB= V$!0'!" %S$ÓCKB=^MKԉ ݦ'lćc4#mrv'> /IQ'r0t~H~whVWSBHӉۦ [Қ/ڥE2WUG1t{SMNܞ67e=T^>դjvtWm>&xB5,-RmnԪVIl;?Z=fU*Ye^~A;_p|tǝ|>_^PUQ?Ηd41:H;>ߍ[MK[XS%'&aO_q9'T_ ?Z)?{RYc!{b]HoPm-XeqQY.ZjN ܥpjW*w-MIgߪh[mUb{p R-jKV)T}vɌoU^`I5#j *YVHJ᎝G6MxfݮWZۮ\"oU{t;FS`fuH2St[P װ { o/-WvMLjjK,DMj5IU׹9Q;I]oxT-s*,s~HժnZK4M{d+5jnwFӥe?"^ SrzJwA^&yZ+[y-R+L[6pP=Òŀ}Xw[Z7S.ӯ^Q(ɿ"U@z>Rip2.u`%BpU44UizFRE4"l#T%?Gf(F17huI;SźQR%;tlAE %vJVpzfZ" qbV*",LwzjtFi:4pˌUN=p-ήHnUjvAZ@:$$̪TnΪ߭drn˂5 ۞e^Z2K85몀s78j׉csNl[A;&FǂoEpN-u, 3kZ&j_`bB}Q5isy_ň'2_VE*g5ZذK?H[)Y)lu$l(~* ʢ o?Tn3=<gt*hR5PQNaK'_,q؊DـlI1 6f\LP|N*]x ԩX]aL] J%MnoiZfse!& Nytt^jCzErUEz<*@A6Ƞ֙BH gء_0)uGSM a5pm(H($USOܪst^]L ڥ:h̰7 ޮZ!_uaU^Jmhm=oQܨ8os#3+sQHzPQGnz2&W;ӆM[1RdtZj*N*\զL2 31t:'f[tXH8)E0YOMRQQVM2Nփ;)BWJG l̋HTeۙtչ;jIM: {ZK1 l+$c8 3?5A__ߑ<ߝD_ߓ-tߕD_O~;Nf, Oj-1XP7E[L7droKAwXR!-zӬΠ aShGcإ_7mʱtC]v6ބ鎦WMe%hQ%Z^Ӭ.Fo'@Kt}܋źbTU v}jVV$n)nwI1 %v *^q2J{ ݭlc H]E;}MZ_k}XN_nOZo[nT[ v[6kA0`cNJQ}QeTzv7,w({ڄ_]m)!*eQVDUS䱻:{! vR6NT)}y_#vM+?fEށkalg4큪 2?`~q?# ufcغ#4HfogI$D5?j0lUA-1y ;~ ÖDDwbP[Im쯑¶Jѭ=وMh-b`1ͼeP${x)-C{h5&R}6t> Ux/e3_Dȩ2{QU{HIc?H%اUa}t _c򙟕F GEwcoҊ_$6x&T`R~UM\Dmֆ-pC "sAK-% ǤXx4 lڌ-Y HuGE}JFK$'ֆeTS5כ"7h+*ݢD8u!M)æX=SKBm)ZӲ4RuOt hbQy {.^-os'@Sfh:1ŰEd;CuYŢQ_ jxX.Ĭa~DC)DԮpJo;3"+LD9i4R,L*KӨdt*ZGS&S*n^U[erh!ol"w%+W jRuWDT{TёAY,[Q #|I}{:{g\+Q,ګ(S2A:끊KzQ|:G_Nw*39ltޏ]Ycg$}q <7qt9v~m<1v:m):8uW DMki P[=10mg#O4dՑiV  ]%FcRnEİv4sfWV1$/0@<}d셺մ{Q٫ Dtt5=LdH%p/ѻl@]vҍ]Z/sa l%vjտAKdJ>bE"l^K v8a]Cp@[;z^IW?Uo4z$~kL'Q֪2qR`k$䑹b.kj5?R5.S&걩gk`ahrSʎ^ک8J.slcNS˲Ug]27uƎwYm5PީGM668u\-4d kc'At/9">k$=K(X bw];A :~CEjD2!3 <)j7fuG#tEIòz|*jN3iևqm2NIÎ#>(Fovޟu6l|k&|*܀KȄBFCOsi*p׃ -țCiAO UZr>4>Ƣ۩|=F^ v(B4r۔+Mk}څy"d<:a"ܱYa4o@mլaV:ˌ2V2*QߪN{0FJQE2!7Kc!f]5rfFl bi*ࡉA>@37'%y0^ol9:W5W)6fp3UZ6eqI>c#v ɃiCܦyo ׼ Lj^tze=ý$(@B%WARtHI0 7Lw:tx!%-ʐ)}J~Vdܐ\]SZȨ!.U}TM#8ƴܠޮ߭UqLNՂ}&qjWsIح_ WA *(v_cžȵw,Cg/(`x:B^0- /GM՚Gn]6yA2&Ӝ!*]o Fe2ѹ@g'ف FUQG1 $8v Y|.CpDl'eҩnnRE2nV"SHn5ij1 굻@;vHYQ~:[H3NHm|60s=EI.8UYkȑ[>5zAi#- AY^5PlȨ+pyz3XfH%'o3~aJ4[ 6@7D]|.) jđiJ#7k貙NVoRR!(UiqKfr 65uc0i G}/#vK1.\)Zޮ)'lӠe붊j_l_O%ʀ~M%2+ԓyf/y==22rm!_ء^;smgUq%_Aicu̦ ^KW描9puN_Ӈ3 JϷltk b[7+M B\6Q_``ӡ m~En>]!zh6 >8WWȦ*|Ӡ}LbJKm?,\b^K_GBc=+3 E32r5Nhš1\79V&`[i!j|]6IއėCБ ZrNx*Xuo Uv0\p/mgPC{M~ 5뱖EbZf'@X8hvz@zp!u-U8*{ v}ft1"lhڣ бl\w^kH  g -'r%mDM^YO,HK -牟Gqwu+0KAwx~Ѐ"w8wn(..P:88ʲdn8;r.`vIwv/ ;!%Mn jz ϜVHoJ~TGgpxJԯޯ|RmqMoM}}e *^9co[B(.P5]{6q#i6fݪrIj\\l-pߵѕB5UU30яKb~Xo;hHJ)IG-eKHlxcc)=ˆs;UQ /5 3@x;|}ʮqޫ!u|CU4A3l]~E-/hx䡪VyϩwF_bkfaK}%1[nk~:LmxmGFGMjMO u>DGѝllGMԑޜ2<zDmF[-|m:Oz|R4ݢwwab'EFo*neʡ$ϯS3)6LR/1.hq+oBSj/6٣џn:'WHԤQĝ}#hrYDh4wiWౕnHB HOiׯr#)E^oǔFe;xhDS5 1s#KlˏxPrkcz07~;4᥯~G7M䠹-ASzCKD]ݘEBgpGaJOEѯMeW:/f*`ރ"|]6o8U>pebIAM>~`Q7caD8hWzFy%h闆F_> a;7z ˰[TH; ݝcl%8gQw^.sglhR$Nl m n(@6:nnA;lxTi[ >FoVvHNp{ &u nb5 5>Z &R+j*gopsh7ۍ 6GLe4J=PֳjT ׯ}<Z[Dueѽ>G14/ܕ;qaY4^9ߺ};H , Tre%bcYbYM'sVFsy+_\gc!<~!X$d:T@ƪyIqL!i|;Ũyd>vsyf0W, xl+j^Zx>ϢCgQbf$q!/Do+JB60zKyYe}LFD͖ &Q%Od4 DF`%4M24Qh %Lh"ڄ!#qmd&6qT="m X<(d.sk!De/aM^gN:_F9ⰵqҭ;hok{У'*2=Iywn5ਫKumۈkLbݲZYi0nݵr`MzۄkB;٨3k8CR@;-E@2*baooc;Dn<*9ʟ!M2|$8NX-[iM]Ž2IIt1C}GA.d{+qYݮ+aHb§ njc9G4>_r6(wdԿ =%бwye([t;ܯw^L1žE&[8ϡ73eo.} c 37ŧCPjzp!VԜ\ 7: n},G_MGsKhoj{gYF3*w۾kAAl[+ȩ0jRC쏛S5 sKx ohx >K njQ`>ċ?+йC'X~Dz=VT^] 3W@/=RrJo`v5<{I'l|}Hkp `2ԜA)*>(Ë_x-ݍ/ Rf 2}U^!xڔ6FsEfQݶ.C5oL\g:UioM7>aZlڔahg6n]Џ|z1 l3C&!O6qMi:IM5@q#&1ePӔ Vh9oδ]_V2᡿4I)L%EAk؂YY) DBRbތI 2m8 J6siS{=7I zpN&ot07gpW_ПL I*WsC=9hd$ &C3&'RMe/ra%Nۡe*M{A*/(D䀘:>.k$f䐦2УJuZu{8j.;deZ/ذMH|ա.  #C.@La] F>(GoR*ĩνЁ4"{”ȡ ;.a]<4eW^m+&&B௛uދ>5 shk,Efu'M~ /Nz]քK*-'oQef.(plw  ְGn9Q }Tuu5hRfj[ `dC#,eXRr+GVLJncvR@8{g7!'7 tagD-5e:d*{<,|)VC}c(CYɁ~%2 u>WX*v%Y02/ BiTd租.oT^̚{|% =u/3t?``YDC.#0#?cw9fX=F1F~~3J4o^l|} FZ,;& xmzdmt;{32`Ϭw p}hMNU6/d͌"8#3RV#2F~~1+(F~396PPT=EYL3l0a4ױ-eN\3Qg"N02*Jx2N PU!t&SnTq"- xDFGkC~Je<;GrCevZxbJxH_$ :r$5vQOuص7)A*|ƒ%_h&E e|.OJCW0%NsCl0˘,#u/{ѻ3.g\c9d!{Y d+2#)2%✡Dt,&~ePۺNZ8Llj 1~"p>dXj] \v25{rC~lD2s=6S*x1jOHlXqm =FbThƳvPz Rb)+mϫ^M>Vw}\XƱC>GQinWC?3HeؠQq} I_$C^8Nlĺsa;i DhU*4RA:cdN)v#+a,c'`p#a^f_`nj)jx@}Y)@}+o Up}Z"7`f}Fd8vf FqJFFL G̺(F+n+ǤGu'Hbz zS^b܉yYXpDbg}IL:ԑ GxP&>lk0)J~ĈY9>{=8Zj~OT>a1@juT' 91?^j#b,?H[:PoDꃌy z'#m(m p #ceISɈ#&y+O$σfJW'v|H^ԫm|^N(t*W(&t8Te&4J&P5[m7{h/euc1p|I al/)Ohz>s I)8ӼDĨ6%23ދLlzɝb -.bϊwv7כ8I8ƼZr3 ͫ(^gwes$iƓwl)B pxɥê$oq0&a4êKfvamwv6hOW eEMʂO{0cFpocPzIUAy-Q YVְ(:=A7KF>6+n^k9tW>!LSqG@.@6.=0 z;N{؎ U$Bt+jϻ&i4Ӡl;:p2O&ӔZ =YkinדEuoB+'堋=:3ޓ~1 fAXiX]G⌊V<> ~rc \?{Xm})ճxlfawǦD 3*VI䤥B-hQځsH)-F-v_`(dB(sc/$@)Pp# $|Q_I8=![Z~7@#Ƚ4=l^; G3ȫNPq_vD1M/gjD񥥠QPlrH&t-kPz1ƍDg EǮ;1lx!7|=ܹŀV5}Aė{!bod^E#K#i:T&t,n\GOC&,1*/PB ( 2'1>ng r뮈WVPAt&i ; a!66re t4EAi(q>|qJ?4!na-Hz4MC;ˌkR[y"ٳȃ+X6ul:|ywFYQreUCjh wʲfH%$*>m lTGS8Aܠ# 8oR5䜕}Rwi=Q*~F^L׽Rlߣ3/r#iTu+{WBa72ǢP((Cnv&V?(*ur@J 0N#P2l4{(W t\ac#]U|yêy9TGPS1 33$NqFM *fxgB A83P爚DIQrLY0j& o 7+d3"XD~>=[r73^^zl;3#P1Q1k"㎚9SD[E/g+ȫ3_TSX{eÛ1r3.:PHǓ+_<+jD`)Nj0ך;Gg],:@\2GҚATSzJYc ׎i/d'_OźY% J92Lu!;6mgp@%A`c5IŌA9) K)P ¨? k§d!}m;M8?u Qxga-$'cؚ'3|@Vgy6 OzUoOL-MKm2_<=|uvۺрG[.N]f7Thj܅>kUn_B /gόjN_nӮ`֫&aQ,,,Y˴oWCn3Fmᚚ TF6 Iy4|6 jkjJMWfmቶrZAd%NU:݂>;PWhHԳ-qEiu#j i4RK[KjN.`"QXM"%O]@4q]1EIʊmק@eU܁Np|SRBk%ޜڅ8Bװ$ ̅S3WܤE*O ac''?n`B܀=tN+MXX& =[p;Xx,|fꊘrKb~8Xaqz}!}ѱ8{הEFX1W_<+mYG(oP6ay'w{1Xh()fuHև7us8 ]3c4o k80?oX);=9ؤpH٫Hp 9_;ӫ .L]90"xF!A/$ƹ%)CcbWe@e#8DM`ފ@V9uh ,!3/P5 c{=}'+''.#mDQlx˯c1ft%-UD12|? u6mo1M/ #!1`J@:U:r`hp~~惜Gز<N/QWtKP}/d:]Paj Vys8`X/1>U ti؄eKU*CAA _FwVȍB2NM\ZXNW鼺y*d$ndոmZjP#۴W&٫5,=vv0̗7zq{%r/&2wɲHET"/fe*cUwYh <]fa !_O޷ϸ"hx[浼0y/kZpZm EkMLX=quT::/{&$1/afr'g'Mcb>t"#NKq Az8'PmvĔFǺP 4&6p~IٛaĖ9/k"ˤ^6A©%-UDQN,?x]_N =7 +j_dB ԛdjSc]=ZgaRA7s ڂCX%D:f?+ȽuSNGZrb2ײ6Ehyj $'Vrh، ްk ;%d۸1ހ1 -ߠ[VV[˨u+O7L4~tWKϘ#8iE Zڏ==$Ҵ3¹Q_ 3vZ~3jiEJ Zp_?cluA׃(p9UI}֡RCrϳ,Gn?4V{0p=pAL1' iԭPyd>jaV34V"elOуNoߌi^6 SpQӊhQR;@TL;\/N<ītܟ)9hv END9x$&ٷ QT V&ˠ.C_Ql_dhJm4$\ޗX?8L9&ڀ@Ad"}%iaUfk>҂eEʤ4er)QpupB?4X/Ҕ68E5tڀxxHi_$ܸ+(8FV=e7fM$&%  O/0Ԕ(t |>ep6xO%y+淭/TzÃtf"<."$~̔<҂'&_6kh [:Yb/>sr4ugS죂Q,355Yn=åyGY;Z'935}V [LA6`[nkva.kۜٴY%`#7OU>cǢwX[#=M^|-2K;o})6m,vW0 bE$(",?}9I'SH|PrgGV?(\p{j!h[_|UVw&$U\ջ~|M+D ׹XOeJ=`V$6njfݝ=9l*׋ʁŻ lb5Gh9dJf\S9r9{$!1?rPǧѡ_q.C3%YRr!G.d>23 ܑԢ#q o"wр'Ci`5֎_N5hΏ[A[S( e "ۢqDr3|\TRD\a&$Pev`I<,C4qJOZHljKstQ"htp` :ό:3A9'`*29tsh\ی =]=45RGZTbkCi?5UyMɜ|n5~J3q\ͅiJxߑDs5|n7K4HfCie}KߨgZJIE,Ta(mP{*~f^94(F[v3h^<-/J>3MRْ5{bJw !5%T=F;XƢBk][gbIS"EAzkoprfosV@²Xw8.-6zl6⁀|L qdA2ġl 34 q,x:RVv>w8 q__ƆM* qܶzCQr1;8(x_"% i8%B)ZF9wCWZpqd|!p_Dɧ0XƗ ϲ\T$(GLqesK,YdFbKQ|N K,X= -X?- ܋,+v: S܂dW1s .';Ԃz.ûJ/pl6h JjVpˆw+{WhSM8hhA/2s>״"bF!mXz u+6Z/d[aFE ]br{F`h~᱑3.]*A@VhFbu{rG|bGků U*=+>Z}q~Ί&E!Q^yN+sY|ەCik򹾕Z,5f\h@L+Gi)3֌IBmǏh-e#} hbQo %mOes'Dq!ߛbqmN:Xu :Vh8l[Ol>ײr@k倝"n*pB; PXCZ_(f:rekxXꬕZ / ٮ:Zwc%|SԶB{VhWa8ܾtm nubmDz@OyN鼓% ݓ6e0zk9+vVU,N3:p[,A,ÿ,6lDU؄n6,’N3taB }3-wZP+R:~V&l`qEB缉å3,7 L,YA.V^̓.K6ӝicݎ[Y=l|TVm-3[7 d>XߕeU,1)?krwLܜŤ"`jpP{.$a620[0In{  ‡Yw杏To4!!9@T'Xd1s.WXT}9lHy,r/?4`.$y+m+'v_Y$0~h$`of5R},[ 4>fqyxs;"PМR{/\;`-~1Wݭ KVJM ̚Õo?מ+X0L ~zCX2&[Sye, Ǔѽ~HU,(j bYUCy/c=eڿ+y_yFHAfe%,!>dUXlM|1Kf { ۓEP{9;eEY*j`CDV޹CYceyt/MAN6V^xl珂],(]NJ촃2ndLUUCC~1ѹs+J߆/_o@׳D`װ^xC! zэe+ ,%vb6ݎq_";x&R~1;:dyigSĺs3Kb\ϊNװT0Jt‘?|2OEe9`v\g+i$>w۱ͼ% g" ,/ EwH :Xw%GTnXvK_dC Qx]/r Svvkat^‰嶻n1,yL;G>M<%#K.q0+"^E6a5?f+ ,ބ _t oŅlvzH<ͱt7?l0ym`? WȐbEB|Ƕ55`~ыI`B<^s5YʲVEuJw?}9~aV)2V(EM a=ة-Anj4::JK4 ͞[CKc6~˰-rd"ɿGB>%7K4M3DaM8/àk-B! uL¨:N =pxG[F:ti4yDocwL=/^w+= JPW](qabPfJqw)dplo[)~N`gnذU&lQї3rο*Oϲ Vd D݉r" La*R=|Q;c ?2IPgi#5cn*|%$I;nEŌ۬;/;aH͓(cJ̙zE$^s_9\Lݥ&8қZ? D=>nR#fg{$x|Ic^L>ǚ@s ifAL(>Na:c,7L߿0u3,:,;޿21"I/u eoĿ߀aC,2#gM;耚`AtE2B8 2o(V0ɫHX2ɏ${^P%gK#G@DỬ(?J\O!&EGmp,u.}+`)nNWY*ӬC 21~s&#WX:(S137z$VI2緓r%%So$F1إgLBXł'Y9a:YҶS DfXC 塙w =sa}s &=%Wᜎq\Wq%|9eXp݀: &W8>3=ٗt,vi :s8WtT~)n-ս`[`FO#GLƇ! #. }pOƮ֯2"te cF_J# .A/Cȝ^k,NzDs6E[X_gSBf9cq}NGLa5ubs$ÆN>h1Tűaɓ  c9lȄ_&\zmFWՠGOpm#:Dl`+U6]r .b_vy/lrʉ^)Jz gEcY9sWNGsBQ`wR+kptܞqC󘸁^kفTfak21+ u38U'9NpZVW-f3&k= nv k6HY2#9\W]%s]eyg Q$g>z)睍.2 ~:KR&pXߚQAz/:4=>Tc(/_[)>{q|0Śu]9B_$j/va͸WL1.:b#1zaxTJ!##g8*aد: vaޕiLp 0s6$(tRLjSgSᘔmxnbhqZϜ\"^!\! mfM-ki0Bȫc4ص v_ ~e: !bJ~d)Js8~pdA&lN${&YMrҐ;Unc7d{1w!Tp/vgG2r`dX2MбVr5:#:Ӳ^5O0-Cc9Gg%)nPT >4:1C}/uI;4h"*`# Nߛ#9:l版jRA~5G~|ۥ,.uu༳〠p{༳wp1=G睥ݕq͠\*;WpRKʗe ޮ26+\\g0]2:Y‘\y ۘnuiP<ʵNywe`{^ƶ!$LNpMʼYfkgbJ[d0{ p- Vؔ<`(sX-PX6p]{MP&g!._\K1W<%ٿJVu9 SYfղMZc`ճYVڋy(/mNn ',0i`hQ?pklU7<d \ȲTDKil0umAPd4,L`ez'd'\1A_K׌ oa Xy{q3 %Du`\/ Hd0›`%| $h>vSi^o# c6漀U&)"F7@6h^r78Y]rClv;jGkL5 dƁNbx3X'̈́B[^^E_d|cF՛^zda:>hD)"8sWU^bu9 iU 9{yn$ڔ`y!xyl n]`7ݮ\ \Vd H:Xp?WQ1 {r ?ۙ: Ͽ3 odI05O[aZ01P7ApMlQ$LN6Lj;Bu3F+=-ɗnc]<(u+gP~xP7% 2rebEߋwm̢ щ#æ cs󪛙 SO Q9B.g3ɾ:QXDJ &4ч.68c~)ۍYy]v8c_tƷ[Uobh8d7ͱDƼ0"3_ctwc4}\d2$#8v^z.OGپ[fCqKB퉬+g?2%aels\ΗFƥaźnC8eq G#%(w1\A:}OnKNǐ(DO}'a`s>*S|Odkyx"÷ɺa=C2C) 9}M$G:3<,Rcf:1c>pƧvyRV wm.LY̖0Cm u[갚F_+6rt _Mqnq]*kdQEEm n;8np?ҡƾʢbjU)AQߎз0 gYHg8D\c٘rC ^]|Nsm^nVfz,Kx>ӽ Êq-N9+C=PW r'1W# rQ#yUt77hLoiIظinq`hk嵄UVE=FXv5Lr51WuL!d~V׾$Y+:~ ,cIs.ȪrQۻD!2Gn2#]1SAlAӣ5 cIh3C1084vKf-BR˿[ɛG ^"\B&}"EL<鞗h\ߖF r\j 3W|No5ϴ?3;>&oxGO5!#^&MWDM "ʿ E>h3!>>`@|Ag#-!36%Gk+ɯhR/P, ~63j$ʝ"EߕďnńʹLrߝR+=MG^&8eucnHoToOl?'_#|;ksw3'g#IUh>/<3a"~VE?>b6Pz4 `D?l@;0jB`4 uV~]$ٚOi ٲhfH1xdXK@HIEWU\˪`xXeB?a. <M%KYs'3Rk*L&c4F[۽pFԪ=Xf3aY8]ĈRGqkq9(Ы_} } ېT PnUu1r6|76?>>! rZhВP{U*p]mF kԏ?1d)6n`['9U:87Է&lEF9 nGs-Ua2 lfwThރ%-:o@/vJ04w1d,*g5d=d@FU$=,ǠokaBdI?te>KGY)\i@/2 \h\n@`/hCkhy. |LKZ"&I2YcKȢmA]ەm5&/5dfe b(ASKYI%'CrYlPL2%r/.gsJ_]!Q4U| 'EC๼ω]]-$d.48pke#۹|`>-;k  4z$ñ d͠:mĹ V >V4w]!?mX=ŸgPR]ObE# $Lѿ4z!֙SZax"{Xa}2Y\ jeU׎ Yvd~ultTxu3ʫJGQ/z]&a%V9=VV$ͻ*K:[`bMdyDV2H'j)mVNEf+@b%"26ށ,̴+aɏ*tA#uȚ E+  نBq*|_ʓخj%[AO  ﳂ>h!| BZ oxC^w{q]A'+0x+"G^8zt{T텍1],'v00cڒX(WPUp2,r/]I\^ut 2(=/Rk'DxqZh#vuvץ|CaTXE,RtZz{J;JIvrZ s=HИcH2dUV^"+@^k%#}0%j;@n+zuL u'}@4ºZy<`k$Q[0~Vdi2/SsVkȹ&D1 ya)bcPx틄/;A8lzσvba>}[E{5vغ|C~Rnr-T[˅ @=8|>`(3 R8|RN+ >ifDW}!xun ͝ VZjXܲNo$8QNc8؉TƊ[h7 }4*AQ5e^Ss׉H ʃ6m Я!sE36x/ R״~A~u*nQ8gY/tʣCV&NBIs/E2,`8Ra6qX:KI#kuq*&M笩Zrb?'ɂYQNSZ;Po Kˉu6ZLvJ/ >',V-(U=Xhۖ 9E6U1Zw@YZk#z&,0D? BO19Iƚ1YϴGFCU͹m[XWC%gʞ-dUz ffEmL3R׉7dR =$[47q./PgBﺻ|;vz,Hȉ0kE;ğy\S~S`ӥ`^zJ9% i=CT؅~sHbMʋ%,6F%Pri.uX b.6u۽fE:$;`_4eTd;'&kQBh. z``ZlJɇjlA,OWGA/ M/J%WtN(E{4g֚壤1佷9$"`SdR 5g.Uw1 O^f~Z(@>%m Oȥi 4t-/InRb0.N6$lj[d*%7=ƙ@؃%dVRb@c"]" #ޢj |>Ӆ3XAeF|b6.eCNv#Ll7\=\ Hrij`ħn@8 M@6JjrX ve"Wb*bR6)$ (2gRǙtC[.; (MJDCܚ9@os& c@!hd&Cmhɍ26]Ʊ_ u edtr݆{ L24SDZ("}$o0 ə>FMP؛ (po1H6?bh lB-2vQ ¡,- HIJb3_AoTZk@AF0> %4T ^nh@0Ǯ,Fo0 "ȍc+h~U߅2-@1~>^g%%$=.;nwdDD3; 2  -0I & 1l'n2RD ƤGuEo3Po1тjh@eIzIlWZ:M,7SV7+<ɥ_hotjz8ٽ6p_^M](3crQlzhUs*sʖ[6ܦO{}_ql'+ as0/"40x0PPC r3}O1md 0  'Q닶f՟'լ zSC)R'p@4G q^ k03qCEB5:nk=@bPlE1/ 2^!x}?73v|Nns$!me>:oyi"9?PW9!4dLRkZ|@ϊ5tRY̮W0U d.24\MG?1\ q!ͬZ ,* 5?Ү9,b^;$g3;l; a,lٝ(@ D9I$% #" "(f?UUuϩ<9Ij߀1w?MVQW9v W]K-LYj sMqT9r%-98x, c)f1ZdA̵x.?OLjy[ 373 Zסx~ssYC1#8 V75;91@ ꘥ %G-fZ1ПgB <@gS'ě0-a44 K KXrCEfЖt/65hͳhw̌η)vĴlǴ3TRKIZVb1cR,wLuB ;xcR2lȀsGXGq" HHA Gf/Ƙ!>{w)q3\t69ChWsI[~2 x>Ce:53ɋ\|UpZNs@@OBxLZ&Q>6[J4KXq\YA )[̀fwA`Fn ftV`ACkZvfW4K5\s.g85Wx:Fp{Qv/:kpE[cL t g7O*p|^txĢ`C]"(|*6"ԶOy6jslG06EvGERC> 7:ӃЪ %AUhv:P3t{ђ(׫m&AKL`zQ)|\[ "mNPnFT#;Z"Ra( )߷:n;(*2`%qN;]Z{#xKfV<40}QsC۰0JOl$;8-ډ%QSK‰ˡ H:s9DZ,PZVDښȕ,K-[0{2qph/D""4 KVS}ȁ̡UZլ:Cwfa8W8 C4:9OmٍKŠ6 zvކMKQS8LkKEqlĕb,ڌL9k.\ܔSC 2sCX{~ O6h)_-b ϡ,x ~eáa1ꢳCYF^bc,FG|asCG^б;9tPo )c8ޖ m]``i<ذqPncYHʡza0MD:U8]0_P 'G lނ߇㤓Ɖ|(Nt.CmiN )d(¥EΣC' |&o71,`*5b2/55E3GsQcc6"8h:;4)bKY+JQuQ46ykĝy]6'/ OE)h@&(w~+s.9'>I猐9q qs&͉9s&Dn@q mģþg9 aHv)qKH4%KBR#C5&i^1[aDC#,B'cy:qoӭ҉s8(js\qT"\T%ML5^ Z[>2Fә2 tgJ6=VIyZj|R"4 eh #c<_Ģйfo?c"0&G3Ч(4EtqjU#Y**#bml9ϱ{|"Kcn UXkc^x(Sò-"KD8$6(EwXu и HH5Y,0ej1Ļb֧XQ+hNv0IڐX ,Is:U7a>1mӸ|חd4= >[b݆`hsZu N pT+_VNЖbKťx[R:t'F'nYA~Ҹ%j@t$L]V^hr"Cfӻ1T&8<ːErFi k d$14`Nw;M1/J^jآe3ι$/6??#W?c}^UwK+&Ћ$_Qh6|-J6*;x?D]Q9]S|9*俻r:XDsz'"k }((+%gޙaw$NhJ=;I!y躤z|.>qnhf]mbu$ "uMɒOjcgIGuT7t7 Gb(Qb[q" MdrZKR0F Ŗ8cԤӑQX HɞYT# {2j%i#J#l0 5LR(q2[iO7ݴ$Z{oׅ*#s0= ډF~m+jeO F+av6 "ILWjPN?jb[Hv7m> ]vԒ̰=L1@ɴfy7##El?v0XIK&0Qgm-Z]97n~! a=؊B%%X!/|hFQYqnܭ e.#z7wkTbQ$ 1Z67"6g#A6f2擛1LlIφ^/4j D1+u|ۄSdS6F@,5;8j0UEF?IڔbCKR85KB FD/aا2j-9uژ$׌ YC70XOi,}`zW]˗4XQv)Q û&)Q 9S[)Q "=HaA)JfQF?kŊ3S o"&zExo /yLjoo-%70C`WrUK%I(:ꚷ_ٗ>_\+j%e[ [TBhw5yXiJ`y,"G& Uؖޱ&EnpfgJƋԛqwY FL9.mn'lV k>(o[r)6V(]d$vb7wuIlnc3(]9Z\I EĦV%aS.њ3.Qci0,K,ThU\ŦkaIɉ^TLvM;;A't/Yfȑ"?hd gGU4$+yeNgTvFH%^o4ZBӶ]b4}U:5 ϰ'vEK:l­ atkaLՅ|*WXjؾz=f?rA:)PG*؅z]Rk.ϵ:jWagi!P՗|!6xo3%4c}#1Y;Q NOB vGב=)"+my=ͺvDNÞYWiF/vA\WBq|]IWק:{^2XK:lv 3j;tH|\T78=X;5?ٲPK핓:\_`]GYwķ sqj`;?2r3 3OЋ3YU|pTN .6aj^τ,)߈* ;aZg*V|rBm׎}Aʁ`a#zȵYչTN KMIJlxDپy؛9Py:?T߮?JpilX=崊տ1`DT`{Gi`DʦQ_Wt|ǜAx::¬k+Mq7&YEEܡs*s}ڭ3㍀e8o QZ 2?qk HE[@@Q#j( ^16oZKS%ڮW TɂtjV*J "njO2`X7x]z DXo3ht2wdXmY ;Hi=[ɖҌowYM@(~lkei]I/8 ,-2}+ZGl/sM@X ǝRe<)j7VyHsi-<KF-ѳ]\/ ϪbJOe>*o W7Yf}JfqNR$LMX% XN|ev6l@AU}x8t )=yTVfZ*Vh?k.<ލr˫XRQBڙo=Y=rPvq(d \'qk[ѣUB1fۀʇMwn XSu:Ywp4iPdLZa a(!V^q.0(٘U-xkP}l+J~.y~֋I*9:f,l(0 o!. 6A 1 My(D[;c$dpGo`^8ՉUM:30?\D;Z| K ;A6X*v]EWhbq8<, :0gGغ(QRlbNaLG!6i}S^oEZ<12RmkF٨48(cq-x5͓ _ eyR]FyRw'xLw*P -~4"85NZS -*UFɩ`1DN*1DCU8zKh`[A9WZT֢qπéT`t~Oݠ8,m FB@ӌ6+4怫_$ ͢K)zo`~UЛN~ ImǁS-VK8C6xTm qTv0^ Pf1 69t1|´Pd8:0rX4nr؆¾hd Ӝi%qBA!knҽMFL0zfL?Kr5OTh~ 7д7Bc:._1ĎTz [r{K;P؁=)F.t+/!S8D ԧ" `KXPuRK/7K3n&g(P,D(bEy(Z";`͞;cmF1%8q-RIh}(fnof4Ōtv&+hz-gN/I ʨ1hTmR`9A5 1\xoQn,TQ,D(/edqPܟ1Y)p (GA|!#ՃF. 8=/ "E X V.Q+r-#nQ uL#C(x1>jF]L- _Í5(>fz848;*nk=)k.)`LNa `ƮI2&J lu^Q>F VwqU5\۝Bݸ ]x N*VJ-<1c9g]f5z+e1\|BpŸhӖjHLG3K0zk\.)e+ ywƩ9z~g݆Ҕ2 FܑGRhDOTf* EM^ PyEmM* ^^BRaL@&oj'S&xMzjz9Lւ2m)(J^ Wlɫ71H!tLؤ|FLZ=yhMdk2 {rj A{M4a3 ChY7:oDex->v9֮2)jyy4y&{Z Ю8 Mۅy^C R2X0Օ9'# x 9[IZńL)N}-dVv7KF>6ZT8(7X ,"RBvQv38`68.Z){̉ 8U4M8R?rFl. :to֑-xÛnVFڌhȚ\ v#!dx:h0ZԞ @:e09_Hɍx N&qYmO>G;wVy$%Bka 4#"&p,Ƅq:Ѭ3zVڄccގ, !9zObś0 M?6>Hg~|]gfV|PhkFo,Ϯ@.G"~tF书q[ͅNKsnUbh* /MhZM[d1a)[ Yy{D k-"HWӂެ9O3\\hbZR#@{zt6aLFKޡG3;9|Bqo(@׃k#<(unZ˜\ GVwݣ/CZ`;61i6UphPk7NTogpm0AJFdS#KQ[b +NԛPOht T[@5mTzCk`}T˄MxDb88Fta^d`-՟zQR{EZFg3]m>dQV-zD[gKd;@pDfn5LŲ̷ u&#PCEPQf>o$sq n'=2pZ"7懝hjϭJ/^s5?Q2`,6fd2_0?XTIň~㒸 N$0k6>6Rn)8zx!k%N SlCkk#ezvi -ZTӜ9+O7ۦ J2Ⴀj)( PÜ9V gjpV.b_aU|a\0lg+4b1Lqmw{`c_6jΆHXrdpTɰ(5hcQ[Xf!i !'lLH,LxE) 6YY5~rY1mf61A&6&k8Zj:fiu2ϳߤnM-vRgh \Ha[1ŨYr0c ),ژ iƄHY"x?Yqr:>NP͇z2qiZOG,'h'+'ߓ@'ɢ+[Mkl"|6S7-E0Ԍ v,2U *V}( ᚴ(h,t N m{IXRkS۔"^ `+4ZpDbI 嬕 fքVàV.۬\ذ 6&8mchQf1:KLkYV.,N=-*yIwk-o|m ңfOCKRTӗ3EY;2 EęV'8! rW1"8T%GB&ڒ+#c1vkUs[986Aia͏ 2,Ȃp8%xDiO gnV~iWod#4I#mRdf { PL6H)Պn:(ɐ{1z#5S+&skX^hŐE^f79 n!2dv~,~?􏙾bX=dkϕlX2^cLa03{-{ ?aJ!/5~ץq!bb.1sW?c.٫ )Ӥr0W0wT f_;_uv?v9_F:Rg{̾m*f 5~,uYhe<@ǧNubE+[c8K0#Cz=IZmW j^6=V5FbX I|JSjJMG _'Q&Z4Y ̶e:ӥŁL^mӪpFeʒV7t/RlR. NX"|τ{'!`3Pq-`ijJuUK>!PCh ^ M?fhiPY}/FӝcBF8]9.'vf2h:t+Ӯn7GF .WcYl205ܾtuU˜3F2@6vU|nf2(w4"9}Fi^oi׮!Qߞ!`c& CFv[wbX(n NEȵ  /c~GڊDC TYlIG#HztħDƛܙQE]uǻݥJiZx4t.1kSmzCvb_6JJ$C`^ k @5!Pza^=!1,c#hs@Y C\T(ɢ/S*ʢ4C,g5!t {gp9?pBG?PQ(x(;9A9PNea]J^F$l uHL8Q"9u Xc;.B-?S8KT5g*Ⱥ3bjL$~ f* f"S*ʂ3cJʥcCq)&KOӆ *Ϩ£XwcV'Q|6QXDhdNavVoh%تG؄^6[(EuE$לfY+sY7%Qn=X| &KwH[1UV&aAʍ>*P,C.1~Q0iӇHG${/1).(B!w*z 1>,Z=҃5{PjC=XC rr:>.59–pn'gwQJrP."# /o4 v@OԚ3Zя AY c<г{bcuxfOr\ȹVJIYʊ5 nP؃5xh ]*JA_փ],)T\" 7A5AzEBeQW :~'Sѥ5ANSo"]?S\GqJeXj_e ƗDk{|!K墍UO&Ῥ^i!ckDk@oր/F|^DP,e-}@NWIo _ Rj_"i-n]e;xl#='bbOIQ?.AZF~9>jpJ `g$I(F,5i%* aWgb6|? ?A +cIaBo\S?v^|^/tn}_‚pV[N1V΢LSP2¶iGA3eFwx.tt6G'"G Si|yjA7OGw}_%4Ņ mEzUbe¤ ]x¼0Mh &xqtely`fK5 b[Hio_ͷ hTPKPhkw1#:=8UұZrΒ#5E‚&ҞH讒3hЦRy1h9> 'P&ݲ$9 1d`"XhvЊEj0n&(ͅyEH!7LcHX$Q =H(eIt, ZjBPS*WEǪTu2)wr=wq x|S5Bc^Tk1ogGlv6V6 RǾdgm_l~0+,r棑{l<묯iA9Ro+2](NPE~I;n"l[N7 ٱJPj\N{ 2?&>FV^t;nL't=-HxTY|Q"/HJɥ$( DLPR0|A J&=$AA<''>]M:Gx%. *3 Qi }@Ci-( 1H>)HZXCW;|-_-AAF"$"QRJyD%O?! R> 8&6|$G/]" ^^%($'/T~Ө0__hpOBJ?DrT~7`>k>;6Ln_JDD/KJ,#QJA7Ox^v@hpBr$H.W fPe"Aɢq7;9H As>%@$]A*hЁZ}cx"z!8DPSUĵ៑KRJ޴%"`l8Wtځ:i|@ڝ,EenBR +MEb.8tapyG9, ;8 vGn!q9NFA#g)pQRϲXEee"}p>RlX^=y#,Y KAk!#ks;&]|ȹ W?_C‘m ?W_ϐ ~Ԧf #I2,^V4c649SWdL(݆ۚ(jG6c+ckGoޖ8[>lfKȔK$X1\)ْ+4UE)|qo ֈ\mR{,~5S&WXJ5̟8 Fbаak5ɿ톦_(%Ox@̓ OB˓Q7X 4R,zRqѧGΓ O$M ѷX }t|5py!)笮,#O XeU,OiV KAQ7c̋ɑg|?IOyHeKoX.g1,Ҷ4ߞhs4FDs;JDd'I);HT'$ [4t}DآѧG%($"\J"խ%JJn) QآͷEӢ=%({IDDKJ}$*$U@Ju0N֥qWwpuI)D%Ww(l[تgXF [54jh@ت)`gDتg$FZDjEaf (lլMتY5pQتYC(lլ!5-bCŸώ.yn.s)"V(r"&ru$DaϦ@cwaӚ JP2iLH󥂚#G ͣiБitQVx`$iu,Ci+qΦ;'G2MPu G*ace䐐v"|*[t(z 41SăC洃CC%0pJh9,DU#fPBRn1QzJHZ]qm*CQZBL9.ꩡb-tjPPYtyԯ'r[<3eO}NH9J5"ĚfD}/+k 0FJU$`*j]ZЊ@j\6)2pg$' PDG")? RcR׌RY E;ㄔIq,T,IJxɣT))ĉ&GRwŹ~ @N}2NiN[yz 4+uSYK8E=.KmO&c;)uk-NL ЛL(dRޛM_aה* {$qY$0mH-8lNco5t68ד÷zq&8k\@/}.c)@Sy֙l3%ݬCXTQO G5sp! ?Sj8ⲳ >p\FpxhKia! iR'U#7 q,|,ΰЏ_Kở>.S>K@xCq+>𤦢V] O {cw܄J\-b2ΉQZaիBn  )/~NI5FOjOec\=e!a|njV"9Tokzͩ;sMS g/eDx VޘM#KEXIa;u>qzVУv*&TRg`;Ȧ {>_Ҍ9Ì,pgYΠ>GUo8jͤԵ! ~UҦ*niŢgP`rpO8 s DF~eta !lu^h]4M(:y=ڹ^~Ō_::`B[RM~j)uiź~bttF#˄R+yH|irP,hf^"z ؕ ˂Fa?- .~ ZDm㥮p%8z8#n;4ZW9O_`h~Fפo}SdTԯp o}@!^+L=k(Ѐ/6@پyhzo֫Ӯ;3tU⤶h'QR5H/9Rx{",pB7Poku B!u(yR O}~rbxT[)Mu|Y Mn7jn[/xSLYx M :K5Oys\@_T7n{Z؃(1FZA%L2ցR1K/r LK?@z)gI/kI 5?KiBsF/J ˩m%$K}CeߟI"!K*.R/DBn|*!?rsnIϩ˽ߖMB[:2VS~kn{ajdE 1(@XKEhT FgKW|_j; -N¯FwR|TE˫&Ie/j .@Ӷ&Z^Zv4i G# 4d"hi;4wي6B *U ;xn'٭[KNS{zRWW@㚠VJV .mRp0jij;LnUKTgZab/۵\; uPadTԐݓQ .2*j调FiCeaݯC #xn>Ú {sf4n3^EwL]z /etn3"*z)ԪR(=^%QWmOpQ^3RF%[\Ɣ+Xy1H߳`:K,VOӯi dMYB??ECWdI 6ӯ`\Q<7`vqhb*-;ӊޮV_lH@G/ VI'}_4_I'N_e;r}xo6^%K'ɷ6ˣ4J5ߢS3ѸȳT-ƱuW_17uշ/_4P:x=OßY1}7]dbdqknu=.R7_F}o/W2u2lS\̜[$O;~|7⩸GqF CY%^|=VHulO#l2Dx1#%JG,^zw)qL_%»cfgS !c4S:v!X`uyL٭?T, m (˶ہ_s{1"+}o˝_ҫ/~ou:i1*S"Qw-p9gM?E)h+.Pr:7Fm:muwWz`FDLo+sϛ{7;;pj VTH03-N"7Fye@ʄhC܆ ^Xƶ 4"yC(Z>|'.1˰Us+\9xi9&{E+LytT@/$`o.Zw/3k[*7`[PzU=n{n_iGqA/;U/h[xz>ej~Ϻ]Dt_`C̷nWnᡝ0_zX! b:䧺?$M4_ڙohnйK@g77X|u #XK=F!``u;hqkh0Ņۦ$̖[9~f$MX^O[*7TA7O;N_ o չk8#xBIߨMo9!SfLzsgF^!hj'<0)oVPex?h6A]qhDrnnTyj?67 L.3W-yIMM(BT,.08lpO` 9D =%_44YYb'5:5dRXV{:ẃEBtwr /@SGtRzTE?-F0ܩ) /QCK=u{1cAh1hҁIvŒ{w, ]]rѽZcx:%u;y8*U*.x(KXfɵw4ݬ;ā%"ZH<ߠv&(橞7Sa:ԗ(|@:W < ]y@x!l^kfOw,3u\ө(/]t5ɟQhsV W3>$׸z17"rnlYvd-٩*? 4 .;wOQ ]C﷧79rZ@}bL=Y۹atZ ?_&v4ص]{M"/k[} fȖy]E0~[9mAs.+NdVQUF]s9R\;j\zBnoB[^/{-== Aqa8شs \\CVfp`7[e%gׂHB*Nk(}RŅ-$= o2 MeMjK7G}N, xK5CY4/qc=xN/78To+n5 EPފw_Qz,FğEO`W|ybޮ& y˰#]g&\BQiE\|kJPq5NYr%9W3aM꥜ m/'cV i`6>خR#ʔ'CKp(}P1iBW{;"6 80=p|#/Vp~B&L+ogAUܺK`˄cX/ nIq_"DR-j^<<ѱ*m  "ﻅ?hB=ϫB"KY߶ң5͟zAm@Bo UrE$Sw`Ta~!ƭ.B$ļm3cחx#6 mVi 뿻6DdZ+:,ҕ%8ikrS-g e U$_"8g./6x}Zю? "w1ggD%\+b$Jw_"~S\g%Hx!Ƣn: IqEʵ/+=%H}Mλěw/kSuYamʎ|M跂ϼ)}ԏzŏ{|(֭E;g70FcW̉zlOȉxԷߤ6ޤ6?sŖno~/\=@q}kVo1݆9G,{͗q% #qG"Pa$ԟXblJ^ !6,r, +avxU'KuG!Q[[, %~Gg[T[Q ǻ"T"fPu"OWË| c>Q6o}=WZ R-EZ(Uug1尛ш.Y1!ɰ*f_ɨ݄xyH 3ݦ1"7j|CM`w!$?<\!2^"3#n$ʝ4ø aRoE.ow3Q$&g uǺ\PcYyb|œKLET úHYh@z}$#RX0⥅KCP6|Tz#eQ=ݩAt#}8 dR!'|fgnCm]&a4JK] ~b>0-k9e-g&0WZ.ԋFگY}BÓ}ʫ.ģjj,YcX-~C`W[zðy&Jجxem+MvXa^_Y S6uK^Xf-΄nl,>`0FY}S66j?غ[@n?2zvg( (?L,N(7 j0ϴq iqi!k;MQ p,A뭑Z>H'^D9u3YW95HnNj3[pa;؜&2 NL1}sj3h$-QS_66Ct{W,z m=j}ӚQDz1X76#rQ T>yt ~ [u{b/j A_kuzQy?#}tNShm¼z);[}sASJ[Ϝkq1r^SH{Slg! h,7K[9 tgY+n-I'x~pWuBkD E{j%02S[sT[-ђ椶Zh"q9MwzI2nBDknoya{kzo.ՖpִBJϽ4 ȫZAvv7[inV":{St@vm+dQke{T+ȮZ]pOBl[ک ցV"uDўz)i9KXp }9X|q\L6S,xTK, c1 cӚw,nt|_=lִyy}EhjuMxUrdHˑ-Ͷ::5:Z#֎;\k uyoiC5Mn,K[V]e,S|ֲPEtvtqxknx'ۯD=6X+V[!e a9߳#4_U=6JB>f*$wd3te!g4W)cvS6v8Ccni>46g|kNwb̈́>R>̄nb434" !Vjʸ$C;.ǧw0`(=)[BT%b_cNu䒹b&[Oc>:6Tv83 36dJ5tpzpUvdpJSfƘPx7̨_C! 4ڃa?1?$oB}hwjk{B.#.=dwg Ә+oh}ewd%0z KRѡ4#;>\)=ՠOUWjp;G+d]LF2],en3Z7`R0{4Z^Bf8 I6&4ߝԜJZX3 Tt2(HXE(gR8 Fu=Fro\x|_R]^Ū>&fs m<_WMБy=jV¾#jV51Q}Y(B>(H?q(8 Wsn3 3h;@1 ^QH5hȮ 7B}pq`NVtmܳ^d2P$^t2pC RN1@UT}ܻjQ1/[6(C~O6-:SEgţF!~2\-凃cP4x=5- ^Of3 7s,{:"4"֮l$NUI^]G"UŢ3*Kuvr6 zx+L .'5 Aݏ2 Y=j=HtяHTR {jퟲAtC>a^i*SuHQ(er9q*ZWz;Vm?#`&h6;JZf.S?+H%[a+- _IIǪ5= F3IǙfZµH 0~qʵ$nҜ.z3|[Mϔjlv ι2N5Q(FD`]=UiVڭaGEŒGҰOb~^P{]({휪g!RA/!Ȯ&‘݊~ :1R={eOkr#,F[,#-ػ/HX,;_d܈, #3,CFgZ3FX FZF,cF-ywZz/!{%Yx.7nj<)8͌8*MF|PMv8ڗ<)Y^j/S'B2MSI5*6{9 ĵd!M-=WYPMit0+i}Em8҄rRVɱ؜~޲MSf~ ~c, ,P 1dLYs4dC~~p>Cw}?s~>ͣԛ"2/ JU/CGR75,גyRߠ{밟W{=B9(o<)Dc QJior#Ƨ*Z1=t%<^!VΘV<'|z*HNc'jji$I?"}W_B.#/?j:.޺I4 bwYcd,~ڲ t]jXY=zak

      '~ղE׭7) 2NJ枠S0M\۴7'ל)~s4.nx|J2 V/,2^1K\?Ѥ(;9(C@isҊo;3:hZ7So%v ]~dl‰氱 m.%SM@S)4wTʥyVTƋ#Y~8)OZ?'{Lp)2otOqhi!С\P%q @}\ᔸ5Ή.}K8Vq~v \@{n8&M1:PO^cģ^;EZ1;&,:Uy̅v5pL/'kR%]BdMͼKTGN p AO-hq6aG_$Ѫғ-~2ٝxm] `yAV[>Y@RKf`i֞RWzٛyU3A΂T+N~X[wR(+QM'ԇI0 mI5m'}MHi)=?sYe2XO\\|}lX}O קDUm;qnkR%{}̈nihYMB>Ų1Vm |sT~jt$Xطe, O4OoRm=T 1i`? Z_,›?aG5p: a?9&}]Kx$*fn?|-T.dw4`R'Lᨵ`D}E\Tإq z8zaG#v9ffjʈvi3/qv6DtFM]l^&ۧ!Ҟ矊UMqvTe1G\Pag-zxu y=-Z[srL.SsERzcDO2<ZB3Ѝ H^ͥyQ-22ǡ6DP}]by\zzc/OPh=;R2.ϮODݱ8JYOcl{EE<K[Q= ̰&j8JP(%^} Iē͉$׷;v"$v"$J3C:i='>uH|y|)ңur|H\Quu߮pHNqOZb*oo 7-E\n/t%i׬ak\耺Ƿ_DwT.-~tfY睡\ d [EuZʮ7Aw S⪰ *%OZyuS*"YQ)T[Xe *W{KV$/PWlH\u?Ovφ+#yw\"u0I~^gG T`}v`9Iu~zFنhgm'sYoEύ5Q1>xu5*}K.kD -*s}jL)_ްET-UlVcwE5%W,#M-ɰ]ؾ<~qWDnYt44e8ׯǑ58 _/_q Uit'a1ïG&W\~g 4d;l1a$'@.Wjc3V;~!l67'ijJ?HTQ<*u俱鳦Z?v+N.b ,:;>@nLk U"[s{}xHffEb";wUy/}NEN*7 hZ0.XdZ}lߗv`OjM_L 4,F AF ?JM˖\''cKYZ;?M8ߵZXVk`J,#;Vbƀso4p 7FC٘)ݛ NN7$8Fw鳌dm1L#9݃FęhN5B9I#6!l)=`?dY4#~$+ZGĔ/4 }/1vF|q$fI{$#HjCnto$ iٹFr;<#rG0(|gӵRE/yȿCtIt^c A|#V+XKq1ru,*Bgkfh7Z@V<_᡻R// PN>s5|>Wcs݋UbďGsڽ$(s57.1%wٻqyݛ'^Yҽ($s^o$W=P`;w O߮sOW+M<վs*OeJL y^oNo=wdN=w53ϼq.h.aq0hzv;Wĸ.'2Lpt.r{ d`NB?c@#}Ρ":~A."XX6<Dh#ۍ-16AQ;\ℜ.Rå7Kv8.T%jLqNhޙ(/52RX9FJE);)cSY;uŽP?.(93WSC;UɔQeJ)a.aN;\x5 e&x [yqo|׉۸=yJ0n㝥1 ,"MDZ vV-q,ql>T[ǡƼ#FT1؏/17%`1>â:>@TL%1,1>W >'&}O[mU֔ho$yCqTۇcWO| N%1 XX bƛ8XW`80jdP0f,H-/A>+N ij0x]48  gƈ!ωA:+r&)N] Zk 0ā6FR9K.F f7 H p-81M1,/ҎWİ6bqRbX xu QkbX0M2`*tT,shAYX) azim\q Cٜ^FTtQ0V\ [&4"ED>_F>JPRQ#h%x4.k7fQǬdxTޯ#PŵH*%,v&) 4_!b OaytFZײ1nVfz5j5fO_rw |SKvVv6?gq*I@3i`|&.cXX#%up˱X'Qc1ƀ0F  l&xb. V U pr F|7 &6wowER9cn^sz7=sj7} Tvr<+Ls: .<7\B1mb$e5(9i$"F5)#;5 X&3f9tK2C8OV`Ug-_Q??F]W5miD tFc- P_3U|Tb ,@\ P,@MVDohJ,p 0Xa#vFUAmt9M,zyX3A7QH!-B(83SK"ˮ\bawL,'$&z#ݑe$\־:l쬉p tUtʯ,bk#?9JYAc+}Qt)SQt}|m]]lyw?~b2 DPS=xM^fM@'34pafwM}Wd-0x! qٓ-08 /3t;]M# cb=p:ɇ+PC!Ǎxв7Hgb8]/#a*lxDtAD֛&/g~ЮmxEe]]xwWEO.[N.WF=JEV Xr}Yw6^x6P/[<{g_T7z|qz>nvu+χ\M}=ꖜ_l6G4wc{"DMDyO!К>V}WUx(=U \T,v*^4m@})6^,\Z1[#W`R)HԻ%9#>L>tYхnlD5RwK'8n$E);w:1FKW}R&+wFRf%ظPQ3"T=#ՏqC(f$sE/<6XiD,:ýFZ?ذjf/>.Eٗ^V"g?ix (MF`s'"bgʷᓑ>-Ҋ)!I>4벺 k#EDJjؙSc5+-¶NK)2/ڤRl]E;`T<ZgvHY. KkWaUt i Q?W &Y3*0ϰ67>e-" < fyuFAph$gg/IJ̮]4cz>`VilhUT!qɢ}q\U*^s3}ĢثՔϓ+yG]9L5+Z^3^<~TYFl:\ncj5Pȳu/^ g]<;7]oW"<#NF5Ax]ml:|9qNGIVϵT<#@47մK.'šbf{M-<|Fq( e;c9 ))ahFTd؈ xm W|Kb 5K;S<\8ɩ7g3ΫZIKz[ fyfϾ4ޅTI'굼X>9 ,΋1[b)d#Q^. 9z[YLߞ}*϶+|ceqQ3iWG"싫e}tn2EyjM9ʸ<])UyTɐo \9 ^%>dzͪwPKV< 2J;D?SI'Fod <ɔ\6F:G^ANQ.k%Wd>H53%]Ł:Q*EQdU\9FKu/]j xNbE:0$P 0.!Ҟ0. w(߭MT4(Ѭc<|qApY p--*ݤ~nsutDggY v'g?ɓ֍;~Y5mRYB B=)wˇXŧx,uꘄ)3,c ~\).I˴se*Gyۥ/:_K,iUYAezӤH=LUNPqCQ$&,n,a^V0Mzp=Oz@T8=ؼå:Ė\d;#̂9Zvh+E<q{~4ÄMS_ߊ:e[c䜃@f߷+KR}E5 1˗oD|H> ,ѝ6Qeh9:\;c)POΆcFc6І蟉.GY5%䪎췤%$lt_"s2/,Í!KQaK^L8H2&7zgl΅ =gAׄHt5_Д e^G}X)eqMҊJB/HX$? SmeŔQVF "esvr~A˞ =EM| qgq\ϗ*83gxALY% 8j6}.J1i؀-Ø(((V ,Vr㻆3zſ nRrz.i#c;AhPXL +ELG%U|-'|'H]-$##ȤV1' XFXQ[DN:IB ٚ'BDBvLtJ;K.3c~ѽ03U!?YbE`Ka "NRl)lJژMcNRl*ݧUYfh7c20]\ `{Rr!wsi+]$re㹢-rjX/ŋN8c 7gvԠ~{*1\mI(_ "ˉ`TG͕F]U)ԁ0?9L):*)(:MQδSWBr$tRtk) $=KVd\i'SOg9צj!ZRjA}\}!mV"0DWgFXޔ4\Q\,$]ZH+KA:-~ P}z4+6Kb)Jʴ}`9 38(/Ev,ukut]- gԴ 8J%`@A_VDYID9dHpS59H9 +"pީR0!Wv&NR"$M|}ȥDBDYTv2YxOTa+W*ٕ&5`ß"z',S{VLeǓ?V$IO,Ƴǖ*xZ});a#Μ]>mpsvCZ-L:d~|D,s[(̖*@n wVK5v~Cf^ nl1Q9C;IVU|^1hlu-:ߢq^gGnIxg#\. 1ur]L˚ddl"8VJNٔ5^BL4 csCP1;]OP Yf]*3-['[˱LAr8`K@ɗ1r9r%f(uFR $}fZ23dž,rh-HMYR̖kuwkBF[ר+bL"@Tlp"j59BKFxP`1Um9]蛐 Fz{Y! AuEblH%[1VgIYxSaŐ8k)p ajvS qx|CEMgq(F{n2ܢֳL̾2r:\)#F8#w@';#Zܐlql2` -ۇerGئ!Y-N Kp2!ΰOœՠ;k2r*Υ|2^Ζp{;Axw8NW "36I68ͭXTN“;Wc\g$(#aKbّUg$ pJi&lU\Cqb:6,jmsp3Il[zVo9\)k-+[ nOw'֜Zc>]N3Z<( fZR@ovk*jBJ[aT8Uڀ_3P;-)ZyYFwZq&VBk_rʚo$u }#S;= T]y[V 9!vx}g@Uœ38u5{3GEʃ l9wlIx~ڻFe98+ N?Hvfj^9Ug4A}D*:gßDcW/~#Pc')Vǟ>aHPeTj,3nP |]UtI-/g[[乒IF\22ÉP/ 糗'aߢީ2ɑ s0BX\JUXf+aRqޜj+,FP6O_pbIǀ(%⪬rxqK~zaM?"kF, ZoJ87'YU9s@<S$>O/Tg4SH_t ϴ1ujj ia[/-sh MMtSSRxfKeԨ3;5uQ: &]mTa9ix$^A o&6V`ٴ0uWx/+FozTwRx鴸Rp>& ɋPcK?˗P^~R}KO#svTP?#W^KTeb4<* 'L|.$ﺻmɡ "A>VY(t^eF|235@vai>s,8;+, lmuVN(L<=x!lC-Mx/l&9v{H,vOT7odmiJ~M3f)GbD ԙ:smXS @f hyCۍdC0yY8?,rNƞ0xp{LѴ+ʕ(ӈӸPn.7|Xb_2Ҟo6:'qpa.++`JmAy*˩8-gwK?*?q7(#2p5x`Nb2* +‹"nщ76:E#I0ohU?$sMxm"m>0o%}(a?SGA;it68oJ=S 5nzn1. : px5.Dg\3[Mg%۸Z岞j+5?"Ʒ[|` qw:: 뒖2~|/w~x ┙-b7: ._TW3B:D0}4Yﮧdk3\{Ȼ4[}. 9/o.U1lJ h0V?ǥLзq jwʂh5G&ʈd(ɏѪ0c+7%4v?*H!وK,yeƻI=|p:m6ІRrw'0sǦ~s:~Om.Ogx "KE+$Q?@ٶ('8ߦ.~t7{֛m4Pw UQr'Hq :üf;5BՕ6qRqҟP~7L%3%Ea䘼 pLڼTg7NI-+r?<@[N&;2^^̳%>q b֯׻JF%'CaRm[}Ջpڄ~$d<^ܴ8<;82ŋ+ߍ:[գ<0y Jfo82ypA!Zۍfݥq;~seGa>l'*GšS& {I'!nYeN\=uؙ3SGvOO&f%!΋l ɉ{Co/8]0'7OLOh xiliF-(sXuf/*L+Q%CN2阑3^I3> nQif؄e-MwmrѽG=/avxcNqĿc(< dv ]u>| 5'ͻo׉iw9їԦqD pl :- g+oLN XJଜLݟ>q` iD#ajaSǔq 5@_#ML_;9վ!91 a{ aҹzzfjAiQuݼnNzwZ׶XۢуbujRn^i/:ojk_Ok_ vWO~CE}&g[++>wz* uvՒ.-:pQ|6uv'O I7jJzza|phQ8yx҃fldMu=yak:%ތQQ H82q+6?yh M'kFy+h+5}[nmNq};u0P7}pHM7SY`isfJ/߃ IgOâ'y=s1ؙ#'gPuGN7D 36=t̷գWYVHutffc>;sq0zߖ\3=c E$$‘bԵ>,m$\lt><=sధɍ5?L_ +6¤7đ}&D%|4W}\!2'ӝ:{}Irx\Gf)(zf'W0KT}vt e?}v>3sِ8nƜqc@ ;YOeDpjDh#'8GϢu9 ?=S"Ftq&=SCV J]D q7N3(Ao"Rz Ղb_AEYw}zXy:?l\,"0O?S(lܞ3A̤ʇ=S<xZ@'EBttj1ZC[E1NA5O>0}ʹ5\n=[6Uw|^=C9GVm E\}ג[o5 / 9s#}~}+FV> I me64UQّ}e9y; zH28gNɍzF_)qǧlt MM )c`޼n%fSe uEvHx*uE;ᣞ߁d`(mYϳGِg'oL#b;pqfw5o I7NQ#N{Tm=θM x};8.4kS D){xo|:qtf#3smyoԷͩwlb_2wBn+OiׅeՌvsO\FZ!qaZw^ Z@9;ntSG|%<29Ge1X;j-5;N?G3иS&go*^1=V ys˽W}N!ڷT>6WP3S!YeN$O_X,wy93cpmoNP y%Z\b#7]\{ g ~{M2_kaG:o[!U'OVч;, y7grF(q}$/McŃg9{'O)96їuBju!5(Vᙨ(ߖ}SL"xmk E-VJm![%( j~Lk|#~cۂ-( Pۂ[%st_7\L<|hzp*L8LP\?nli7?&!|yǻ9UMX%-QyktlMӘ18?ms),c)JN6~ -U#!b2"Tm(kq 5j牋>]oc*NG3$6%ў$;b1=~(glE9Nmo[x.O}HQv̭܁6z$`nl魮ź Ǫ=-o@y޻b!&,y@ rn oTzjc+NX\zUdˍ J fGU9sm`s߹Ca(9(KPA@yA̗֓B9'<(7v=гՓ ~Qތr+ty', x|](󽏢|\O|ھr $u(}('\r(Ae; W݃: Q%6Yzr,S(E6wPJP@kQ72Q31(/(/I!P= SC!P5<8+Ku?P'ǡ4 ^1᷿geRSsMˋt~BޢwSL>x.Ӆs?+}ZߏxQ`0Qwx|.7((t)yޡIyy7y~Qޚ>lY!a=c;IH,3z&E r.B,_B]Pt*3ެJǨ:e3ҵ((ކ$Q^O㓅(;QuB+uw6oʇP% `؀yu 0 ))j9|fCM|{chrƂg߬ $+[&ΨE[ ڴmX,"U^>[X.zʗQ_= ->G?|.atFjP-dNu c1fň  h%$D,X6,F.e1 zQ~Rܜ*fbyʻP0`>6, Pa(hв[o+a}:%u0 (QNA٤ˀ.lC9 uH!]Ft2K^xiSq]J]({tz3QfP\r ^/-(/@,[QގOfDl< : dcғNܶ85E:T_Ѽ 6Di x޲g< c:x2xe[-vu@^pr'P0}(BW2;!dY`á̷Nlgю@t8v(PF;BvJk|g(AJ/nJh(~Kڡvzi ҎC/K;7Qv(KWQoܥ h>ۥ:{PFс2:(2:(:fh|@G/(ur-`*:N8;PJ' tbtB)PJ'҉w0NA' 3D;N4Js_Ou9t:Ñ0ο308~I]C=tA. zBЅvw]<& ݅k.hoۅvA]Ǣe]ۅv]FAwt]Xev}R^]hctj w= Bݡrea їc\~)D j9Fr&]0/GHW.m.-.GhݴFA7-GSь_]ݵ(fd>d1"a  hfحQ0JnN>5*:eu.t%FLX>A;8ˠ*Xu2m79v V[! ͶاȷsF y³A94vc}栤9nssh܏CIR[L] ](e~Er]W 1WC«1V#_ VFȲZ\ s\ s\5AkޮAx׀, 48!>61A3:ADQ 𾓧 }'t}'}:Nw{yV(*$&D3ha/_RFK\7sRrCA/ Y}1Z; /]6:AK0xn;wc;By=W oyMUi;S -[0G2% .psp~sp1ssoһByB*>nԹ<\n. v:VT)47<,e.Xm9q˖tu77z_Cz7=WmMq҅_P)i1//_D*X$d,8Hn?V\;{:l]LY)csxķQ زN0O3%(寪H/$fd΄Enz^ٹt*A8)< f߹ݾ]_JIJRj~ןL_K?ןZ/J_JR1cܬjcЭ?OyR ~ XNR]2x*%p{}L]p w:cP8KPB!S Uovų7y:ntE-'Ϡ^ z++ɥKuiG9+ƥFy.%:ՐO?YK1zN^-NIbOtPU>L. H$Hl?՗W)1$3™ٙWG/RH(tf8xH%J2i8iL_h6sL#-w@w@!ww`uuV͍ɭ~d̢``b끳LP&ICw}:ϗ8%nq`ѬR8lYg $TMBLBK☤S7mtC<:x(qDl;T<K _ 1މYZRuߖT:NRB=ddfmͲ_!I ,/ f42aFգ*71UՒinee:x+_w3oW^/&H&̹(磤-I=z05(B ;9)7+(9)駣DqZ. .SH "AUTHOR" Graeme Gott . focuswriter-1.4.5/resources/unix/focuswriter.appdata.xml000066400000000000000000000103771231434177300236160ustar00rootroot00000000000000 focuswriter.desktop CC0

      Fullscreen word processor Vollbild-Textverarbeitungsprogramm フルスクリーン・ワードプロセッサ Processador de textos em ecrã completo 全屏文字编辑器

      FocusWriter is a simple, distraction-free word processor. It utilizes a hide-away interface that you access by moving your mouse to the edges of the screen, allowing the program to have a familiar look and feel to it while still getting out of the way so that you can immerse yourself in your work.

      FocusWriter allows you to customize your environment by creating themes that control the font, colors, and background image to add ambiance. It also features on-the-fly updating statistics, daily goals, multiple open documents, spell-checking, and much more.

      Additionally, when you open the program your current work in progress will automatically load and position you where you last left off so that you can immediately jump back in.

      FocusWriter ist ein einfaches, ablenkungsfreies Textverarbeitungsprogramm. Die Bedienoberfläche ist nur dann sichtbar, wenn man den Mauszeiger an den Rand des Bildschirms bewegt. Auf dieses Weise lässt sich das Programm intuitiv benutzen, ohne dass die Programmoberfläche ihnen die Sicht auf das versperrt, was eigentlich zählt: Ihre Arbeit.

      FocusWriter erlaubt es Ihnen, die Benutzeroberfläche anzupassen. indem Sie mittel selbst erstellter Themen die Schriftart, Farben und das Hintergrundbild des Programms einstellen, schaffen Sie ihre eigene Arbeitsatmosphäre. Weitere Bestandteile sind Echtzeit-Statistiken, Tagesziele, das Öffnen mehrerer Dokumente gleichzeitig, Rechtschreibkorrektur und vieles mehr.

      Darüberhinaus lädt das Programm beim Start automatisch ihr zuletzt geöffnetes Dokument an der Stelle, an der Sie zuletzt gearbeitet haben, sodass Sie ihre Arbeit direkt fortsetzen können.

      FocusWriter はシンプルなディストラクション・フリーのワード・プロセッサーです。普段は隠されているインターフェイスにはマウスを画面端に動かすだけでアクセスできるようになっているので、プログラムの基本的なルック・アンド・フィールは維持したまま、作業に没頭することができるでしょう。

      FocusWriter ではフォント・色・背景画像などテーマとして作り、それを使って作業環境をカスタマイズすることができます。またリアルタイムな文書の統計情報の表示、進捗管理、複数文書の編集、スペル・チェッカーなどといった機能もあります。

      更には、現在のプロジェクトをプログラム開くと、以前の作業状況がカーソル位置も含め復元されるので、直ぐに続きを書き始めることが出来ます。

      FocusWriter é um processador de textos simples e sem distracções. A interface só aparece quando o apontador do rato se aproximar das margens do ecrã, proporcionando um aspecto familiar que ao mesmo tempo não ocupa o espaço e permite ao utilizador focar-se no seu trabalho.

      FocusWriter permite personalizar o ambiente de trabalho com a criação de temas incluindo fonte tipográfica, cores e uma imagem de fundo. Também mostra estatísticas actualizadas em directo, objectivos diários, também abre vários documentos ao mesmo tempo, faz verificação ortográfica, e muito mais.

      Além do resto, o programa abre automaticamente o último trabalho em curso e coloca o cursor na sua posição em que este esteve quando a sessão anterior terminou, para assim poder voltar ao assunto sem demoras.

      http://gottcode.org/focuswriter/screenshots/appdata.png http://gottcode.org/focuswriter/ focuswriter-1.4.5/resources/unix/focuswriter.desktop000066400000000000000000000056201231434177300230510ustar00rootroot00000000000000[Desktop Entry] Type=Application Name=FocusWriter Name[cs]=FocusWriter Name[da]=FocusWriter Name[de]=FocusWriter Name[el]=FocusWriter Name[en_GB]=FocusWriter Name[es]=FocusWriter Name[fi]=FocusWriter Name[fr]=FocusWriter Name[he]=FocusWriter Name[hu]=FocusWriter Name[id]=FocusWriter Name[ja]=FocusWriter Name[ko]=포커스 라이터 Name[nl]=FocusWriter Name[pl]=FocusWriter Name[pt]=FocusWriter Name[pt_BR]=FocusWriter Name[ro]=FocusWriter Name[sr]=FocusWriter Name[tr]=FocusWriter Name[vi]=FocusWriter Name[zh_CN]=FocusWriter GenericName=Fullscreen Word Processor GenericName[cs]=Celoobrazovkový editor textu GenericName[da]=Tekstbehandlingsprogram i fuld skærm GenericName[de]=Vollbild-Textverarbeitung GenericName[el]=Επεξεργαστής Κειμένου Πλήρης Οθόνης GenericName[en_GB]=Full-screen Word Processor GenericName[es]=Procesador de textos a pantalla completa GenericName[fi]=Koko näytön tekstinkäsittelyohjelma GenericName[fr]=Traitement de texte plein écran GenericName[he]=מעבד תמלילים במסך מלא GenericName[hu]=Teljesképernyős szövegszerkesztő GenericName[id]=Layar Penuh GenericName[ja]=フルスクリーン・ワードプロセッサ GenericName[ko]=풀스크린 워드 프로세서 GenericName[nl]=Volscherm tekstverwerker GenericName[pl]=Pełnoekranowy edytor tekstów GenericName[pt]=Processador de textos em ecrã completo GenericName[pt_BR]=Processador de texto em tela cheia GenericName[ro]=Procesor de test pe tot ecranul GenericName[sr]=Обрађивач текста у пуном екрану GenericName[tr]=Tam Ekran Kelime İşlemci GenericName[vi]=Phần mềm soạn thảo văn bản dạng toàn màn hình GenericName[zh_CN]=全屏文本编辑器 Comment=Write without distractions Comment[cs]=Pište bez rozptylování Comment[da]=Skriv uden at blive distraheret Comment[de]=Schreibe ohne Ablenkung Comment[el]=Γράψτε χωρίς ενόχληση Comment[en_GB]=Write without distractions Comment[es]=Escriba sin distracciones Comment[fi]=Kirjoita ilman häiriötekijöitä Comment[fr]=Écrivez sans distractions Comment[he]=כתיבה ללא הסחות דעת Comment[hu]=Írjon zavartalanul Comment[id]=Menulis tanpa gangguan Comment[ja]=気を散らすことなく集中して文章を書けるワードプロセッサです Comment[ko]=타이핑하는 부분에 집중해서 글을 쓸 수 있는 Comment[nl]=Schrijf zonder afleiding Comment[pl]=Pisz bez zakłóceń Comment[pt]=Escreva sem distrações Comment[pt_BR]=Escreva sem distrações Comment[ro]=Scrieţi fără distrageri Comment[sr]=Пишите без ометања Comment[tr]=Dikkat dağıtıcılar olmadan yazın Comment[vi]=Không tạo sự xao nhãng khi viết Comment[zh_CN]=专心致志地写作 Icon=focuswriter TryExec=focuswriter Exec=focuswriter %F Terminal=false MimeType=application/rtf;application/vnd.oasis.opendocument.text;text/plain;text/rtf; Categories=Qt;Office;WordProcessor; focuswriter-1.4.5/resources/unix/focuswriter.xpm000066400000000000000000000117221231434177300222040ustar00rootroot00000000000000/* XPM */ static char * 32_xpm[] = { "32 32 178 2", " c None", ". c #E7E7E7", "+ c #ECECEC", "@ c #EFEFEF", "# c #F2F2F2", "$ c #DFDFDF", "% c #EAEAEA", "& c #CFCFCF", "* c #AAAAAA", "= c #8E8E8E", "- c #7C7C7C", "; c #737373", "> c #E4E4E4", ", c #BCBCBC", "' c #848484", ") c #797979", "! c #7D7D7D", "~ c #7E7E7E", "{ c #D6D6D6", "] c #D4D4D4", "^ c #8D8D8D", "/ c #7F7F7F", "( c #808080", "_ c #595959", ": c #454545", "< c #3A3A3A", "[ c #D3D3D3", "} c #C4C4C4", "| c #828282", "1 c #888888", "2 c #6B6B6B", "3 c #333333", "4 c #2F2F2F", "5 c #474747", "6 c #585858", "7 c #626262", "8 c #CCCCCC", "9 c #C0C0C0", "0 c #858585", "a c #878787", "b c #3B3B3B", "c c #313131", "d c #4F4F4F", "e c #535353", "f c #565656", "g c #5C5C5C", "h c #C7C7C7", "i c #8A8A8A", "j c #8B8B8B", "k c #282828", "l c #404040", "m c #494949", "n c #4C4C4C", "o c #505050", "p c #C9C9C9", "q c #979797", "r c #8F8F8F", "s c #3E3E3E", "t c #424242", "u c #464646", "v c #4A4A4A", "w c #4E4E4E", "x c #525252", "y c #545454", "z c #BDBDBD", "A c #B1B1B1", "B c #929292", "C c #3F3F3F", "D c #363636", "E c #3C3C3C", "F c #434343", "G c #898989", "H c #BEBEBE", "I c #999999", "J c #969696", "K c #242424", "L c #3D3D3D", "M c #E1E1E1", "N c #E0E0E0", "O c #EBEBEB", "P c #B2B2B2", "Q c #989898", "R c #9E9E9E", "S c #383838", "T c #303030", "U c #373737", "V c #E2E2E2", "W c #222222", "X c #353535", "Y c #343434", "Z c #B0B0B0", "` c #A7A7A7", " . c #959595", ".. c #1C1C1C", "+. c #2D2D2D", "@. c #393939", "#. c #2C2C2C", "$. c #414141", "%. c #ACACAC", "&. c #A4A4A4", "*. c #A2A2A2", "=. c #707070", "-. c #232323", ";. c #2A2A2A", ">. c #2E2E2E", ",. c #A8A8A8", "'. c #A5A5A5", "). c #575757", "!. c #272727", "~. c #323232", "{. c #171717", "]. c #292929", "^. c #A9A9A9", "/. c #ABABAB", "(. c #212121", "_. c #202020", ":. c #ADADAD", "<. c #AFAFAF", "[. c #1E1E1E", "}. c #262626", "|. c #DCDCDC", "1. c #767676", "2. c #5D5D5D", "3. c #1B1B1B", "4. c #1D1D1D", "5. c #191919", "6. c #2B2B2B", "7. c #919191", "8. c #B3B3B3", "9. c #7B7B7B", "0. c #1A1A1A", "a. c #151515", "b. c #252525", "c. c #8C8C8C", "d. c #A6A6A6", "e. c #B7B7B7", "f. c #121212", "g. c #161616", "h. c #181818", "i. c #111111", "j. c #131313", "k. c #0D0D0D", "l. c #E3E3E3", "m. c #0E0E0E", "n. c #1F1F1F", "o. c #BABABA", "p. c #101010", "q. c #141414", "r. c #080808", "s. c #0B0B0B", "t. c #C3C3C3", "u. c #C8C8C8", "v. c #0F0F0F", "w. c #0C0C0C", "x. c #787878", "y. c #BBBBBB", "z. c #C5C5C5", "A. c #CBCBCB", "B. c #0A0A0A", "C. c #090909", "D. c #6E6E6E", "E. c #D0D0D0", "F. c #515151", "G. c #060606", "H. c #070707", "I. c #696969", "J. c #D2D2D2", "K. c #050505", "L. c #030303", "M. c #646464", "N. c #727272", "O. c #D7D7D7", "P. c #DBDBDB", "Q. c #CECECE", "R. c #D9D9D9", "S. c #5B5B5B", "T. c #A3A3A3", "U. c #555555", " ", " . + @ # # @ + . ", " $ % & * = - ; ; - = * & % $ ", " > , ' ) - - ! ~ ~ ! - - ) ' , > ", " { ] ^ / ( ' ) _ : < < : _ ) ' ( / ^ ] { ", " [ } | ' 1 2 3 4 5 6 7 7 6 5 4 3 2 1 ' | } [ ", " 8 9 0 a a b c d e f _ g g _ f e d c b a a 0 9 8 ", " h i j 0 k l m n o e f 6 6 f e o n m l k 0 j i h ", " p q r r k s t u v w o x y y x o w v u t s k r r q p ", " z A B q C D E l F C ^ G i i i i G ^ C F l E D C q B A z ", " H I J ) K D < L l 3 M { M N N N N O 3 l L < D K ) J I H ", " P Q R S T 3 U < L 4 M V W X X Y 3 c l L < U 3 T S R Q P ", " Z ` R ...+.c Y U @.#.M M T t $.$.l s E @.U Y c +... .R ` Z ", " %.&.*.=.-.;.>.T 3 D k M M #.s s E b < S D 3 T >.;.-.=.*.&.%. ", " ,.&.'.).K !.;.+.T ~.K M V {.].k k !.>.Y ~.T +.;.!.K ).'.&.,. ", " &.^./.n (.K !.;.#.>._.V { V M M M M ' c >.#.;.!.K (.n /.^.&. ", " R :.<.w [.(.-.}.k ;...V |.1.~ ~ ! ! e #.;.k }.-.(.[.w <.:.R ", " q <.Z 2.3.4._.W K }.5.V V ..#.#.#.6.;.k }.K W _.4.3.2.Z <.q ", " 7.:.8.9.{.0...[.(.W a.V V {.k k !.}.b.K W (.[...0.{.9.8.:.7. ", " c.d.e.%.f.g.h.3...[.i.V V j.W W -.W (._.[...3.h.g.f.%.e.d.c. ", " ., 9 s f.a.{.5.0.k.l.V m.n.[.[.[.....0.5.{.a.f.s 9 , . ", " | o.H Q p.i.j.q.g.r.l.l.s.0.0.5.5.h.{.g.q.j.i.p.Q H o.| ", " - I t.u.w v.v.p.f.w.) ) m.g.g.g.a.q.j.f.p.v.v.w u.t.I - ", " x.y.z.z.;.w.w.k.v.p.i.i.f.f.i.i.v.v.k.w.w.;.z.z.y.x. ", " / A.p 9 ;.B.C.s.w.w.k.w.w.k.w.w.s.C.B.;.9 p A./ ", " D.1 E.8 8 F.B.G.H.H.r.r.r.r.H.H.G.B.F.8 8 E.1 D. ", " I.' J.E.{ d.F C.r.K.L.L.K.r.C.F d.{ E.J.' I. ", " M.N.z.O.] P.u.7.D.2.2.D.7.u.P.] O.z.N.M. ", " 2.= Q.|.O.O.R.P.P.R.O.O.|.Q.= 2. ", " S.f x.T.t.O.V V O.t.T.x.f S. ", " U.x o o o o x U. ", " "}; focuswriter-1.4.5/resources/windows/000077500000000000000000000000001231434177300176065ustar00rootroot00000000000000focuswriter-1.4.5/resources/windows/focuswriter.ico000066400000000000000000003054301231434177300226630ustar00rootroot00000000000000 h h.  ^   #006400 %B@@(h@@ (B~\ mh(  !!!$$$%%%&&&'''))),,,---...///333444555999:::>>>@@@AAADDDEEEFFFGGGKKKNNNOOOPPPQQQUUUWWWYYYgggiiijjjuuuzzz|||SSSSSSSSSSSSSSSSSSSS0@KOOK@0SSSSSSS:ND..DN:SSSSS'"$1221$"'>JSSSH9'$-//-$'9HSSSSSI71*((*17ISSSSSSSME;44;EMSSSSSSSSSSSSSSSSSSSS(  UUU$$$GGGUFFF{FFF{GGGU$$$UUUnnnFFFggggggFFFnnn|||YYY WWW......WWWYYY |||ooo___PPP PPP___oooOOO AAA OOOddd   dddUQQQ%%%$$$!!!QQQU{333!!!&&&EEEPPPFFF)))&&&!!!333{{555'''---$$$uuu///---'''555{UNNN...444,,,333@@@>>>999444...NNNU|||---999333:::999---|||GGG@@@DDDiiijjjjjjiiiDDD@@@GGGGGGDDDUUUYYYYYYUUUDDDGGG iiiOOOKKKKKKOOOiii ٧zzzzzz٧U{{U(0  !!!"""###$$$%%%&&&''')))***+++,,,---...///000111333444777888999:::;;;<<<>>>???@@@AAAEEEFFFHHHLLLMMMOOOQQQRRRSSSTTTUUUVVVWWWXXX[[[\\\^^^aaabbbfffiiinnnooopppqqqwwwyyy{{{|||}}}~~~FT\aa\TFEffEPfG88GfP]LL]W,,WNy{, ,{yNgzJ rD JzgZro M orZbs[ N[sbeqBNBqehp4eHIK:4phin4 #V"# 4nijj?!$'Q #"&)'$!?jjmdO%(*"X0220-*(%Odmqc](').&^8:99/.)'(]cqk_A(.2+vuxxw}+2.(A_k~`[)/35<>@@><53/)[`~y[Y)269=@@=962)Y[ytXU>12;CC;21>UXtYPMG7227GMPYlXTSRRSTXl|urru|??(0 TTTEEEJJJIIIGGGGGGIIIJJJEEEUUU```KKK\fffڏfffKKK\```sssZZZ7bbbܢbbbZZZ7ssseeeb}}}iiiOOOOOOiii}}}eeebsssmmmbwww''''''wwwmmmbsssooommm7::: :::mmm7nnn???{{{:::  :::{{{???yyy\ppp aaapppyyy\{{{))) yyy))){{{ڷ{{{!!!######""" ډ\\\!!!$$${{{"""%%%$$$%%%&&&$$$!!!\\\FFF###&&&)))nnnoooqqqRRR***)))&&&###FFFFFF '''+++...###---...+++''' FFFWWW###,,,///333'''~~~+++...---111777333///,,,###WWWڠ|||!!!000444888---???AAAAAA???;;;888444000!!!|||ڰ444333777<<<111OOORRRQQQQQQ>>><<<777333444\[[[444<<>>EEEHHHTTTVVVXXXXXXVVVTTTHHHEEE>>>777www7777AAALLLQQQUUUXXXXXXUUUQQQLLLAAA7777bVVV@@@AAASSS^^^^^^SSSAAA@@@VVVb|||b}}}yyyiiiMMMAAAAAAMMMiiiyyy}}}b|||7ܪ7\ܥڹܥ\??( @  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCEEEFFFGGGIIIJJJLLLNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYY[[[\\\]]]bbbdddiiikkknnnppprrrsssvvvxxxyyy{{{|||}}}~~~MJHHHHJMRN^{{^NRTppTV[rYTTYr[VWg~??~gWYjIIjYd&  &d^&  &^axF __  Fxafw  wft: :tn~ ~nr`$$#"! `rvT "((('&$" TvyF"$&]ccbbK(&$"Fy|E #&(*g-*(&# E||}O #&),. %$$#*0.,)&# O}||zZ&*,/2$(::87642/,*&Zz|yt)-035(,>==<:8530-)tywy4,/369+110/-<963/,4ywxu_ 269ADFHJLLJHFDA>:$qqvlmh$>> >>>L""""""###"""!!! ֭{{{!!!"""(((((('''&&&%%%$$$"""!!!{{{]]] """$$$&&&,,,,,,,,,+++***(((&&&$$$""" ]]]NNN!!!###&&&(((***vvv~~~~~~}}}}}}SSS,,,***(((&&&###!!!NNNLLL!!!$$$'''***,,,... 111...,,,***'''$$$!!!LLLWWW$$$'''***---000222$$$)))(((((('''...444222000---***'''$$$WWW֤ppp###***...000333666(((,,,>>>>>><<<;;;:::888666333000...***###ppp---111444777999,,,000BBBAAAAAA@@@>>><<<999777444111---L888000333777:::===///"""555555444333111@@@===:::777333000888Lyyy$$$666:::===@@@333333@@@===:::666$$$yyy???666<<<@@@CCC??????CCC@@@<<<666???)))(((>>>BBBFFFJJJNNNPPPRRRTTTTTTRRRPPPNNNJJJFFFBBB>>>((()))V(((@@@IIILLLPPPSSSVVVXXXXXXVVVSSSPPPLLLIII@@@(((Ṿ;;;111OOOSSSVVVYYY\\\\\\YYYVVVSSSOOO111;;;̣Ӿkkk333///GGGXXXbbbbbbXXXGGG///333kkkӾ֣yyyYYYEEE::::::EEEYYYyyy֣Vyyy||||||}}}~~~~~~}}}||||||yyyV߈|||ssssss|||߈000LL000??(0`  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYY[[[]]]^^^___```bbbcccdddggghhhjjjkkklllmmmooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~PPSUSQPOOOOPQSUSVX^fǷf^XVWXv˴vXW\[oſo[\^aŏa^`sĽc>>cĿŪs`bvƏ8  8ƽvbexS  Sxehy3  3yhkq   qko    op2  2pvO  Ovw  w}5 5}{ {؁Z Z؄9""""!! 9؆!%%%%$$$""!؉!"$((((''&&%#"!؎t!"#%'&'&%#"!t؍h !#%&')Ŭ6*)'&%#! hؑg "$&')*,9-+*)'&$" gؘn "$&(*+-/mwwwwwv{50.-+*(&$" n؛"$&(*,./13443321321/.,*(&$"؞$&(+,.024!%:::998765320.,+(&$ء5$(+-/1247$&===<<;:976421/-+($5أP"+,/1356:&)????>>=;:96531/,+"Pؠk!,.03579<((?>>>><;;=;97530.,!kة-'13579;>*s||||{{{5=;97531'-بi1479;=@,,@=;9741iذ@$68;=?B33B?=;86$@ذ|+.<>>===<<<:::999777555444222000...+++'''888+䱱SSS%%%...///222444666888999===))),,,BBBBBBBBBBBBAAAAAA@@@>>>===<<<999888666444222///...%%%SSSuuu$$$///111333666888:::<<>>>>>@@@>>><<<:::888666333111///$$$uuu8000***444666888:::<<<>>>AAA---}}}888@@@>>><<<:::888666444***0008۴sss444777:::<<<>>>@@@CCC//////CCC@@@>>><<<:::777444sssWCCC'''999;;;>>>@@@BBBEEE666666EEEBBB@@@>>>;;;999'''CCCW Ѽ...111??????BBBDDDFFFIII;;;;;;<<<===????????????===<<<;;;;;;IIIFFFDDDBBB??????111...ѫ )))cttt!!!666CCCDDDFFFHHHKKKMMMOOOQQQRRRSSSTTTTTTSSSRRRQQQOOOMMMKKKHHHFFFDDDCCC666!!!tttc)))jjj!!!666EEEHHHJJJLLLOOOQQQSSSUUUVVVWWWWWWVVVUUUSSSQQQOOOLLLJJJHHHEEE666!!!jjjppp...///GGGNNNNNNPPPSSSUUUWWWYYYYYYYYYYYYWWWUUUSSSPPPNNNNNNGGG///...ppp鬬3~~~???===PPPSSSTTTWWWYYY[[[]]]]]][[[YYYWWWTTTSSSPPP===???~~~3`ggg+++(((===OOOUUUYYY]]]``````]]]YYYUUUOOO===(((+++ggg``~~~cccFFF333,,,---555::::::555---,,,333FFFccc~~~`3}}}zzzvvvmmm^^^VVVVVV^^^mmmvvvzzz}}}3|||}}}}}}}}}}}}~~~~~~}}}}}}}}}}}}|||Ƽcuuuvvvxxxyyyzzzzzzzzzzzzyyyxxxvvvuuuc WzzzsssssszzzW 00088000+NgxxgN+??(@  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiikkklllmmmpppqqqrrrsssuuuvvvwwwxxxyyyzzz{{{|||}}}~~~QRSSTUUTSSRQUXXXVTRQPPQRTVXXXUWZZWUpʻpUWZZW[]\YӮY\][\`^cΚc^`\abaњaba`eaβae`dgeňX((XΥegdhilћK  Kȼlihikr̝4  4rkikltſOOtlkkoqƟ    qokpoƃ ·oprps sprpu  upxv  vxwy    yw}~K  K~}zz炀22焔 烆E E片 猓v ""##""""!! v燏M !!%%%%%%$$$##"!! M狑& !"##''''''&&&%%$##"! &珓 ""$%%)))))))((''&&%$"" 瓕!!#$%&''+++++++**))(('&%$#!!痗 !"$%&'()****)('&%$"! 皙}!#$%'()*+,,,+*)('%$#!}睝| "#%%'(*+,-...-,+*('%%#" |瞟 "#%&((*,,./010/.,,*((&%#" 矢!#$&')+,-//12 2321//-,+)'&$#!矤!$&'**,./0224!8899888876654220/.,**'&$!砦$!&'*+-.002356 #;;;;;::99887653200.-+*'&!$矩G()+-./133578"$======<<;::9775331/.-+)(G竧j**-./124678:#&??????>>=<<;:876421/.-**j箯&,.0125578:<%(AAAAAAA@??>=;:8755210.,&窱=!./124689;;=&*CCDDCCCBAA@>=;;986421/.!=糨s,034589;<>?(------,,+*+??><;985430,s絶-#23678;<>?@*,A?><;87632#-籷r.569;<>?@B++B@?><;965.r纸>689<>?@CD//DC@?><986>緽%:;<>ABDFE2012344444432102EFDBA><;:%翿r,=>@ADEGIJLMNOPQQQQPONMLJIGEDA@>=,ra1@ACEGIJKMNPQRSSSSRQPNMKJIGECA@1aŝW/DDFHILMNQRSTUUUUTSRQNMLIHFDD/Wǎ_(FGIKLOQRTUVWWWWVUTRQOLKIGF(_Ɔm >KLNORTUVXYYYYXVUTRONLK> mȿÂ~:*FPQRUWXY[\\[YXWURQPF*:~łi*)@UWXZ\\^^\\ZXWU@)*ỉ~~~~~~f6+>> iiikkkpppLLL  LLLpppkkkiii>>> |||!!!kkkmmmwww555  555wwwmmmkkk!!!|||666mmmpppyyyPPPPPPyyypppmmm666mmmsssvvv!!!   !!!vvvsssmmmiii\uuusss sssuuuiii\oooLLLwwwuuuxxx  xxxuuuwwwLLLooouuuzzz  zzzuuulll@}}}{{{  {{{}}}lll@|||~~~!!!  !!!~~~|||rrrDLLL  LLLsssDĄ[[[333 333\\\z zԋFFF FFF !!!!!!!!!!!!!!!!!!!!!!!! I{{{ ######$$$$$$############""""""!!!!!! {{{INNN !!!""""""&&&&&&&&&&&&&&&&&&%%%%%%%%%$$$$$$###""""""!!! NNN'''!!!"""###$$$$$$(((((((((((((((((('''''''''&&&&&&%%%$$$$$$###"""!!!'''٘ !!!!!!######%%%&&&&&&*********************))))))((((((''''''&&&%%%######!!!!!! 󚚚 """"""$$$%%%&&&'''((((((,,,,,,,,,,,,,,,,,,,,,++++++******))))))((('''&&&%%%$$$"""""" !!!"""###%%%&&&'''((()))***++++++++++++***)))((('''&&&%%%###"""!!! """$$$%%%&&&((()))***+++,,,---------,,,+++***)))(((&&&%%%$$$"""  !!!###$$$&&&&&&((()))+++,,,---.../////////...---,,,+++)))(((&&&&&&$$$###!!! !!!###$$$&&&'''))))))+++------///000111222111000///------+++))))))'''&&&$$$###!!!󨨨"""$$$%%%'''(((***,,,---...000000222333 !!!!!!!!!!!!!!!!!!!!! 333444333222000000...---,,,***((('''%%%$$$"""٫"""%%%'''(((++++++---///000111333333555"""999999::::::999999999999888777777666555333333111000///---++++++((('''%%%"""%%%"""'''(((+++,,,...///111111333444666777!!!$$$<<<<<<<<<<<<<<<;;;;;;::::::999999888777666444333111111///...,,,+++((('''"""%%%HHH )))***,,,...///000222444444666888999###%%%>>>>>>>>>>>>>>>>>>======<<<;;;;;;:::888888666444444222000///...,,,***))) HHHIlll++++++...///000222333555777888999;;;$$$'''@@@@@@@@@@@@@@@@@@??????>>>======<<<;;;999888777555333222000///...++++++lllI'''---///111222333666666888999;;;===&&&)))BBBBBBBBBBBBBBBBBBBBBAAA@@@@@@???>>><<<;;;999888666666333222111///---'''Ը>>>"""///000222333555777999:::<<<<<<>>>'''+++DDDDDDEEEEEEDDDDDDDDDCCCBBBBBBAAA???>>><<<<<<:::999777555333222000///""">>>zxxx---111444555666999:::<<<===???@@@)))..................------,,,+++,,,@@@@@@???===<<<:::999666555444111---xxxz~~~...$$$333444777888999<<<===???@@@AAA+++---BBB@@@???===<<<999888777444333$$$...~~~Ŀwww///666777:::<<<===???@@@AAACCC,,,,,,CCCAAA@@@???===<<<:::777666///wwwD??? 777999:::===???@@@AAADDDEEE000000EEEDDDAAA@@@???===:::999777 ???D &&&;;;<<<===???BBBCCCEEEGGGFFF333111222333444555555555555555555444333222111333FFFGGGEEECCCBBB???===<<<;;;&&& @www--->>>???AAABBBEEEFFFHHHJJJKKKMMMNNNOOOPPPQQQRRRRRRRRRRRRQQQPPPOOONNNMMMKKKJJJHHHFFFEEEBBBAAA???>>>---www@bbb222AAABBBDDDFFFHHHJJJKKKLLLNNNOOOQQQRRRSSSTTTTTTTTTTTTSSSRRRQQQOOONNNLLLKKKJJJHHHFFFDDDBBBAAA222bbbXXX000EEEEEEGGGIIIJJJMMMNNNOOORRRSSSTTTUUUVVVVVVVVVVVVUUUTTTSSSRRROOONNNMMMJJJIIIGGGEEEEEE000XXX\```)))GGGHHHJJJLLLMMMPPPRRRSSSUUUVVVWWWXXXXXXXXXXXXWWWVVVUUUSSSRRRPPPMMMLLLJJJHHHGGG)))```\ǩqqq !!!???LLLMMMOOOPPPSSSUUUVVVWWWYYYZZZZZZZZZZZZYYYWWWVVVUUUSSSPPPOOOMMMLLL???!!! qqqǩbbb;;;+++GGGQQQRRRSSSVVVXXXYYYZZZ\\\]]]]]]\\\ZZZYYYXXXVVVSSSRRRQQQGGG+++;;;bbbEEEkkk+++***AAAVVVXXXYYY[[[]]]]]]______]]]]]][[[YYYXXXVVVAAA***+++kkkEEE{{{ ggg777,,,===JJJVVV^^^cccccc^^^VVVJJJ===,,,777ggg{{{ EEE}}}~~~ZZZ>>>######>>>ZZZ~~~}}}EEEө~~~pppiiicccccciiippp~~~өggg\zzz}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}zzz\gggٽ|||yyy{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{yyy|||ٽ@wwwvvvyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyvvvwww@DvvvrrrrrrvvvDzzI߃߃I????PNG  IHDR\rf IDATx}y\}罙ٙ]i-,B\ƀ`;6\Tb©TَS3N| 6$`  h"V]I{3oǦޞoogi>U{^"("("("("("("("(T7(-mbb(b"<σt:t: X$R$$p)bcN@曬xD"CȌwI"N 6x?~8P +!l̙2邦}G@{{;:::7R q@$qEQ$ lU]]ɓ'H$`4ׇbڵ~Ŋt. N}}}hiiAkk+ZZZp ttt' (FNQQQjbڴiôiPVV6E XeeSy(R:BKK 25 z0aڴi5kfϞYfeҔ}X` bD"3G"ADkkk'28SÜ9s0w\q2yy9$dh4o<X ---xw~:t x @:̙3qg3D]]ɤzMR3gN_[XQhnnfX,ʉȑ#ؽ{7كqΏPZZ>/ƌ3f!Lbܹgņ@4xXIII^qb1⭷ž={2vJ*pfPVVŋsh`hh/VŊ!o>VQQ_o'N@4uST X|9,YY |GOO.\X"M>=U7x{}O9.Z{nDرc+3<>嬖GQxWVB*ԩSzjuYHR9;#K/}۷ۂ/ٵkoߞ+VҥKsYpm_x6wܜF}믿^{ t87F`}|y睗yя~lӲMMM97xj8#Xz5=ܜi*?͛b1ڵ (8c HGtЃO>m {nVVVJD"8z(}YtwwG'4*++q%>Ԓcׇ>Ӣg?x xq- _D"agq)OtmBK۷HRV\UVZ[[ONق[:8~8~iS 1/ǔ)SBs9%;)Y&=֭[w /qsXt! eX %%%X,VliJh"Y&TYc,)U'x-ZȺa}G[[?#JM(/ׇ̖`Ή*7G Sv:ѣ#Lǜ9s0k, ih`W\ql{nwyr/]X< D{a˖-`aH[[q (//G<G4E,C4\;0SdY|Doo/z{{\L&Q__ŋcѢE CTWW+3NOS&dc5y:::SO 4ؽ{7zN$ΟE.JrNIuD D#9.DٙC||3gyKD"\q4iUx؄d.{Zy:^xa}v«A?i$L<555"NO1P.3N:::ֆ'N 8# rJ$Qo뚚\r%V@:ux &Wi/)BuL vǎѣGL&pB\ve:CEE.RCCC,q[JG&bx7ezbD">}:M5/~+3i/*.Uu%S_E6cJ;񵴴رcB۵ks(0h&twwc͚5]6o3 FWW?Cs9s&LB2ARSwT8sDPPr6cOqq>|Xs:Fuu5Z;.PYYuY1V\veUf}QvYgX| /QW,Ν;yfA`ԩ9sfN=ÌTR~aL-@'mF[[VOR˰lٲQvZXxaÆqCw&#sNf⤑H[n͌q߿_cH$;w.8IttYÿ*& Tgr0oT6< 100,K83~Q9Y5kyXlٸq;v0};vÇ ިʿqFegr̙t64m'4tc?Gi_G'OJƙ78*&c 3gĊ+,/Ê+퍋L+̴myؿ?S]o(v܉~Zim.שXj @g ߹lGɓ'}"J/Dze 388&000|#cNczM2 ۷o/t&<̝;]R3&:|<>477+N4 l̠|VZS?~W\qŘ3FCoo/^|łKd2~Js(D- +廎Uᛴm>/A_v曵6\ N㢋.Byyx˗ ?N+诡1ViL:SN%q.ީp&栓2t 2&AE:_u"ֆ6bQVVVPM}[?\$4f Kƃ;|K/^M+Wg͚E*/4h6d)v[o *?ʟ1C)M O~j\ŋL'? iO4 yw7I}U3.LdT*K఑%9lOU bF,,Ģ)¦hAtww++?T z+ֹyXb^ 8g++4 1[< KB{NV<F ^>Pw2`X 6 k4¦iرcYynook+V8GNK7of.sRbrq c ---.0=S@RMM =/^ſϔ=!;10.]۩r,!>zꩂl 5d p|IfR[ZZ2v+'JJJJ0*J똀JZuw:BCQ[Q˦˺QRRRR-'/a7 I|Ig63P^^?~28|0vڕ2y*%s0\Tnbݵ94UmLc6Ԁyصk>^Lb0p{1Rm<N9e,~; c YR;IC* AV.x>%2{8)`;6 D"䀠x8rק-5d\ DqFxWA e#0$~_p=o$xME[⧘ Նz { 8HZ- \y172]gf9^ 82'1Y ho$lrR x\U MqƼ:T^ s]]]N/z_|DŠyxUX@=` GnrXWL1ztZw <_F_u 4aawO$Y;My;wсI&);5yȩG[E_EbLDkC6L@+綾/*++1{lL2X,(磐tx=+"b[9ްO,,++CoooV=oݺk֬ Wttt`c ෿+ `˖-_XMW Ɔ7:u*JJJF3T(TRXo+jdI ij 6^6I$Ypx-[eCCCn }̩sf&գigܶmR왦bx9N}o1JuX,qb1DC ~6 H$Oş IDATRضm>;UuwwgkP]Kvn>-Vºr]J}\r[Z_}2CdlE\_tj)D}dz> .sEN#L&.U8,MdyRu#`WE7/r۷;} (cC*6ʌ C#,Xj$&.>1}ӳRW6M8LmBiFrrxr?)TJCS=y1 0~?1#걹6iGENa9;|8kWNK(υe_Z35p Tg1?6C$^9>_˖zW$ASSSV* .7Mf^ u RN7AL$Xafs%~p̀&g85?W#g!fss|.eba,Kj:O|d?Ӂ2a똡U_U/Tݥi`w}XCCCځߺY3|p嚛IS{LGކ P!Aj-K(狒* BAxX1QM1\FݗRk`4OFPf@"˿惦&rɮliO5{9\0PiTHP%]yubb^tfxu2v4ESSfΜIoX3Ѫk5j/n!7#1/Ou\@/UD()!x 'tӁ,\ߺ:S )@XNqNk*z ZuZB}ϚU atngQB0rY d/wYUmwWxu7ͷ&7| ' S ӯs).)#7q\j: $|*nu⳱UkdB©I o"`Ձ6ex5t4<++#6r6uI"TqFnc9 )!MQu0ߟ <σ,t:xY?3#چ㦋?:F/3.Իi16"O1Z 3g B> A3D"9d"Lq؎Xi\uH$,w",V`Go\ԛ(m4&PMOC&|9O2aQwQC(-لȕ!PL30[`Pk̸"ZZZ:oR_%ue?u,P6o(xR6j:{ g,/nb_niiA$q2ffC&Ê:Յ}֨'/SQS$x9^UgY~7JWߩ|VN_rTXSϔ &|`+bRZ[[ڋt29Gmo\"&f[ Ӡ3@%ba1~iPq͙3GY`,{&ES`ʈx\ESaNb{Jb3!皦\n]8]y)yyPV+)gV_ #t1w;R0 &Br: 896w^D7t*gX"10O1\k}{ﵝ`]&\Hh4,wE.H`t!ErXAd~-ـ6,Cv&§*lgo/G@mʹ h gxL?P,\0M`xE$PǂPiLr^f?_be!|ra&-**/uu\#NPcMt;K rQXl3C'U@eXFCTZ>+tMÕCmf`܍uq!v9:^>Na(M[ zWiOfL߆C"/ȇ*Ң:T@S硖RRDH.mZWq*Zz:EO>`'yCs)-`Y]0ՉB&"lZ#S&m  ןN+8!OYR\%Men(t AgavQtaad6RtG餾ilԹ0 D?;O/NCThH}UH{!~a`m`ؔ|ͮݩgە~ryNG "" @ZN$ TÚϔ0ąlaLLԨb\ݴ2Pg!|\+ዠOiJ010RJC5}k@l| ]D7uF@@A>^@}T9dϗ 0QSSh4i'9]Wʭsy>D-pK?0?)4{SgTL_N4,x\0Cqw[ v 1N^FiQ!SYX,h4X,6l!׉ j,ѹ8w) H$N09adRy^nÆh89T4[W!4D7ѩ#s:.:Y #3mAUf**-A}<w.]q#@-Hdv a&m L[鈛6tjO1 ) Tax6]YNS~ r>&.0.:4cö(.>BFA9l% i_tLQLeыqF~W}O!WFNr.4#NM 0m^Ș1t:ӧL2Cw3O.0alv:HU'3Q ߤN;P=dL>t1:l@r2cW7$"Vw_ 8t&Nr(0Q9<,7G?@REr:i;o]\p٦O ې*3@b81 faT ) ǥ"PsSLA1/qII{٠z $MuOM<ӪiXo R5=P3gDYӎr=.s~a21(71Yr:uWFXm@g[BFf:P_G{>@h8l TiZQiAt $C,rcꈘǫ}w]iQu/0ƌco6GPޅqƌYNM,ՁMdBu$9]CQ,%stxZ,KxJK)WغxxX].Qq&1c 3fp˜=3Jx[ |_/\\ .$7Tf)f!ˍ'U11|?YLb*v3]TyZ"=@UӁ*7a1JR),\ )ۍ1yOlc/\ľg1)5Ud.RiPaxŎJ/R1a!eʟŰv #Kաb*`Cr\.G>… Us9.I7.\{ol`uĮ!|91 ETqTSDa\M>E#,tĸmî)8.]-w5f1gR)s9ؿF 81G}C;Ku4N[ @̟N@dB́br>UDOiQiS+JS@e`s/|SÚT> |%KHUWh(NNԷbP~!C"aQ2SHԻ=VտDM?SR9Lbɒ% tPZ@yyҿv%JyE/<GX{YRěKlbvxR?Rқ gh:?SCCCXtabɡ2Q[[h43@H>)Hx -J9*b~xr7(.3#a z˥jkk1|gZV.O'%MÜsݺuYv-zPĤpPCo8RH}*)Ii L:?]O+I b?[zY [fa $F6j0Еy%*  TqmُRrEJM:)*'Ko\r:TžRMD/ILYP$;\r%#,K74&f:eLge4 ́,"4.R)gM6)fsv=@ooofE]D$6*7E&JfrQyRGjR,!PWUr) f@,͘.A^=)sZNgssvL2%Dzj466fE7]TXʏRW^X,lǏks5's7M58qTrR֭[G.w!iO|7&;1\=U]|'-R닒bQrx1݀'z5ُ"~ϺpĉtD''o~Skd~Wtq\!["|JadICu`*]aMV;X("'~c"x.G#}d Pؖcʕ2o~9}9O:FCCC'>AJ̒F ;ا"j1Q@u~$␉3Vab2ыyѹlZNO|?0Q|J @^'٢ ?N[*^}PņPL$h :&#T SDJƶ|OIX, ֦ cEm~xwgovB>n ĔJKnb8m ]H}2^̧\'|P JJJHnGG}ѢtH$ZI6ҙRlUNKE*\A1 <76r|Tͅ!p?Qa2> gN1R{g ҒYg@]S70NNgTܟ]5@I4ûMCg褿\o2aSu%vd Bgw o---Z3-2!/p=x&֦N\]w]*c $RyV`ӑuAXPer[@VzʠITur oӎ 4[?msy;h4lJ$kQ1% xFfO&ZWeVgMtp"҂ckcǎiɓ'G4|uvvWLذa*g#!TP"tn3PI0_/YϵL2Q.@&z1=]WRذaÈ~AFAIDATӃNɓ'v~Oי}ᅬH$;q|JSj@q)F`R%e` ([%8eIzAI~1] #:OEb\%G:V7|3DF:7ڊd2_wuYxh4j8baT&w\9>*U}崹NNb6*mAE\VJ9wOGQRRh4U)Sˊ3W0ƐL&ڪ ܿ' vMyhnnv:%844;#hF˄o4:Tf}2MX@e%σ?@ic0eeeY;00;? L{u2"M{>|xZZ`֮]KJC'wFeP C&3VJ}Y KU=S̀OiaRNKH(++#˺vZ,Xif:`< 1o}[FtW[o%;<M?- qu+ĎMurhAFT&N(9íloTI؈¹☱X r 9 XYYi;5N@I[fݩ`"^J{@=-cr^y<C ['KV{y*++.r-A..L_.NvIKc={6,X 8nƆwRg.;οPqPS܏_hooy5Wee%jjjPUUC1*6HNdw1rxэ^]:FUUW]]~;ꛧԄ_ۆwySuv2Mfq׾/}K#Y:<C^3P18sUUs*3guute?|8tSE,~##/krbTxٍbb|O&׾Ag *>럮\;S+RfΜE98/?P;;;^eUX]D*\vJ& 8L['UaLc&iOAc\SQQ߹D+Sˀ_ Z vzu| c w}wh TTT w>() .w~ v^Y,Jk;䗥hź vf@***_}$n0o~eQT^/<?~gysZYYZl۶-&>L&dwdZe3J_`T5&OKLKr YipٲeVQD"x]p> bppP{ }yW]ugu2A,I|*:;S}\gC`&MՍ,Sfvr*.jTX]Ĉb^W^ CCCN@SSq*qb: qjзz+:;;0uܺq&Ux/l%" tVEՃ_Qb%%%?0s+3@!3Y^eF*IO8lD^(f 07OIE>} ]tQA֭[q!m8|gqTM̛;0۷\T k֬ޫ\k]VV5A 8Q҉ZaN 7Q\/t{UY)PuI 26<"T*{k֬A**Hwyhv4Qwq3-IӸꪫ0iҤls:t_WHn'Ǫگ r|(֡ ʃJUW?UfvX 555#i~ǬY1tuuq q*~11cx)L$_L)cmƹyAOOOh6j|@~ #Un.l}U|/Q 06Go"ۿl#NcӦMVh"ƔvL W_}u4~hooWviPD씄3 q;Lz:/k &xc 'OƏc$ 2+D"<PD%c4 ܽ<=J$xj*p,ôiF'܍bDE1clDPH&Xj|{Fxn׮Nce%K`Ŋx(\rYQ\:nRse a5a*hh_~zR};voieG?s pq$R."qϏy8z(կKvvvux8E?]~V َY >wP__z $߿/V1.2|JA+ĴiFQ}=܃_~T1yO&8ydf1 tk-6>G]JT`T$.|(҂?O_|Q ,jޖ}455a(///=;_KY J?b&$tʆTa&9_b9M1QUUm3̸ɓ'?ъ?;we 8J7ooс1뮻Nkcǎ;đ#G͂ތ-hasQ nX/M(//7f̘ ӧO *X77jqGo.Cwg;'> B>H3L>y2c Y[ݭSuBK?]*++QQQa,C:u*o`ѢE7B{{;{1m;p0xٸ m믿SL\}n<#xd)/R>V `6^weeeʟv七 >9|SUuشi {&֯_3f: wA8Nۋa%&@g_S16rZ^._%n&1i#GL ؄ ]v.\8j# o8~_7M>7"I~ |lak:+|ӟF$QK!>ۇ͛7[?qk˘eT +W=|ƍxᇑL&O<CCC@)PZ@. xH$())tX 7|3nFrh!⥗^믿n}vD!~`1sNӘ?>ꪬyX,{ ?ݭ=.y\!6D Kdg?nbW>8pyDŽ YnjL1Zlذn _ƓO>-[ Z2JL&3v x'Fb+*V4!R)]W_}5.cG}'OOظ7ae[obpݰaCfc{ӧR)ƓO>]v4:i 2mVVJo"dht% y__z{{3 2r| |ƳX xCi} oS8 q-0[@G"FشiShJN {)Y(|3|Qʅ^8 |9/_|e nW:e-Z>̑NQVVЇ& a#y<볖\`)|9>Z0$"JaΜ9X~=F"r?p??-h($Ǎ7&Md2+WK/E,_RЃrL&3Ϡ!Sj߄Ӧ">ϲH$zD;Xn]f#"|c{۶m <ApH}]9nFVQQӷtk֬ڵk` ˖-غukOVR_iYhzl@fիq|-D"K/W_}5S~_4pZg0L&d\|Ř>}zq֠ǎ?7|3՛شiiH}ԧ>JKKsV釆0gXlYEߟ`ΝضmOmHRFXp!,X磾tz› hѣxԄ}e\]!Q}b t׳r' DP[[ZԠ2ҫ4C@F-ݍ'Oĉ8qD&m 1Goo/bubE7pK$c{ 2F1 +XnqxwNق`G ep Sd ~Q1Y<p[B2`ѦC+~ke@afF?Cߍbkam>6'x>L&O8Ea& ZƗ MQ@E>PlS W^y%qOӃa OSQDEQDEQDEQDEQDEQDEQDEQDEC/>)mIENDB`PNG  IHDR\rf IDATxy}?9Wc%$tF2(XA7ቍIzu|`  ZH %kwUkkU3ӣy{VUW&0 L`&0 L`&0 L`a`' _x{ˣ80!N/Xm3uŸ1ꫯx3fUVV6qǩD"uڶ]s,ˊ2ƢeFey<F8iuL&s4NMd}޽{zֵk$lrLԅhu @=s,L$cx<(s>7l0zd2ٞJ vuumߵk׶O}S[/ÄP8%1!N 0˲yFǤr޼y/.--]H$%8Ǝ㒁17>=Q-<ϓ݉ $jDt&Ahx6o޼kԩSVVV.-++; (&?{{{8p`g?oa $aB@ڃ lم^xmmm{fr1 ch;vS[lysҥ|pp=m|SIIIYXǷ, 뢧ИkxxdL뎹1W$A<G"@IIɘ ըm=WT-bCCC믿3Hd'0!DEEEy睗XV c hooDZcӃ04~P-PVV*֢ hllDIIf3po=z?e®L#|Byy9aj{"2 8~@{{; l/,ӗSNŴi0u3Jp˲XW_}Ї> tX 8xgo9sxuXmp]mmmطoߏ,B͘>}:fΜ}c,Lv}=y `bڵk?7{/G"X8hooǞ={ֆ#vp/]$N6;v@KKKvBoŇ8袋pye7(cマ~lDg q.rĺu3}O3oYlقM6 9,_ /09c_GQgF+W\P45eYxW+L0)!,Y??‘ß3gWUU===3fss;v/ u'mK/y睗d!,ݻGW^yUUU5o?B}}_qmhoo{[Nطo|M444"㜣jM7~g^^z;#d2w\p߃the$I<ؿĬiL&f\y啈y[?D"L&yGN#@uu]q_744e϶m`A&ŋqEg/䒿~Y8H$KwL"hϲ,=z< &Lw8())5\& vm׬_~;w3~+V~c_oqk}?A>st:t:d qD8ټ`ALû\sի뭷;h;BFϛ7+AM~˲ى~L-G_bǜeYeH$+Q]]b' HWg7x]wX9tZx @lÆ 4i҇0 W^y;v@$9 1ex!:th 1g 'Oɓ;4Ò%K*cGy.pZ Vnٲ/ Bp?[5k֠9`8|T&455SNŤINġysr,_D"b /뚚Sr@SSSdƌ{X,69H۶?/NsC:;;~8pnn9~NSa*ćI ̘1#JRnݻçӋιk~/۶[LqF曧DmΝ;sN#_zo{2 q9sAiii1NLs%\h'眻;.}'w=z[!8@"p>O^p-l,Fgp]O?4z{{O&<صk>uϧ͛0>UUUX|yз;yO~~m=ݖ O7|k_{G?ėMc5kN 4`޽عs'rr {Y˚\:E *KY(fsab1?0sLs91cF ۶|rTTTI9x}_Ap㎫W\leXnIO߲,ر RT _QQjԠrsP]~Uۋ.tww/T X,%K;B[ L2wB>=4imعs'mvҘ_֭[yfd2@^̦g*++0x5/%dƕUg_!`Ÿ ƴDu]\p?~Ng?~b2eYظq#?p旉ؼy3 4k{t滟7T; ր2Lf(cXx9p]gu. V 眳x઻šSZ>vM7r߶mOBgg 'A䯼 mkhh@CCCz&.RMZ_31րN0Îttt\h,YrR6nqQ__*%9ǽ{߿رc8e@cccd|_d1{'9p7oƆ |_0Rmm-QUU*&-' T]6 ȿj>˲ӃN;vw@. /F:>c]SSe˖LO2+xTTTꫯuG8'pM7-ؽ{SuSN_yh ڸvXv-|M8M' &M@oW۫wN W9Ç2X:ܹsqW9'P򑑑Ë/>T{wꋽ#DW_ /LmcҤIhll7/UBm2,u}S_AAu kooǑ#GD+~!eeeYKw/,+u*ExJ ڵkhhh_B v?===Zs_0)SPWWG*CRKwT:p&dPйj5`OSqQ8x??Ɖ'uQWW>%%%L{SL1rTRirg1e' 444 hZcHRغu+tBR1c mYY9\sv=NFO PRR7K.|mx饗=ԛb\?زe%"98>lTWWڀbFid+@ͫ"vAe|&~tr9ݐ-B[[:::0o޼lX1$Lرc>}9缶:eÆ {Iߟ~@MMu?Nbt n݊vo=z:X뮪o/hw]>֗RO 5~gRY:8~2X^ܾ};>lb1.'O6 93gkv___I8sm3u^~4S{chkkî]~M$3hy]Wfd J(PVP`,bî.-Md2\s5Xpa_2<̙3-L&߾Kض=I'{Yfuuu+vvv=0x ibac|?ϯluL GA`bz]\졡!۷Otb̙I!L.i=oI<.@-3gμ͔sAlܸkLկ٩5fΜh4A](MũaLv(stnߜ6g%xױ`ґeY8t&M{Ciiw]G{챭8I'ETVV+V{ 70y6lh2& _ T4P__)SdtŽb8Q_z|m:k@M#~?!@ DV]=At:۷cY,%Ӎ9 mooȑ#]Tꄻ'`6lؑH$f`Y6l؀A_wcCww7~ciӦ!Hd>|~pcbYմP⇇ocv& 0PZZ.><aN Kǩ聑ׯ/rmؼy3֮]Ky8G  >9NO1(/'2%PTkb` A\Tr1cǎiri\}XxqvzKM t:wk: WDZ{{UUUL۶iӦ}YƲ,lٲ>J@Z_M潜'he,Nt} @@~OYrZVPk"Ƶ۶mٳxMMMEN477]۶]w]݃>8A UUU'>%_~L[odꩧHc(//L ] B@ʢ_~0 ZN a3uɯAYz / 퉣kjj}VQQ8޽{d2Yt+D^xX,496o\uڃ7N:fۨj~euWIutrZ4T9A\^N_0sRi|#&\ŋQVVsJ_q0*PTwO(|x|:۷o/wuuᡇܜS2~ZNХ^z4r1Ga~S_qro.LҀ8x衇E ۶}1I|П4*aϟ2c n1fz0׿5)\S FOU6鄃:bM^QE>Y`L'ecr5\gřKg6N:Mm׿50.|W8|ƌ_?qjUi;>xd #_/߆L&|K):&m&ʡ$r*êqA.@Q/alSSPQD"I(/1paƀwt:]T+hg>.o?,« \i+T*5^0i$lZWng_ Q=\FоGխmTE"b1rb<袋r eYZ!%%%s+++׾Mh@__uMO`޽J|/qcappp\b_0IK %8f7Z ^~/yD9^nNPgxB-Og]@<G]]]wpp= >GFFwquk޾i,=)S7iE9exWm|q:2tiuiTT- q490=EuNtguT~6h4 v 26 &M F89SdɒCO<6O(ܹs=LReYسg0O=Ը-,>aڰ",4|/~I1`P!@gT5_nܦ |Wմ@QummO=Mzr<cسgϟ}asΝ{_}R@dժU544\ s>oggú,/~ CcI !UDKEfL'YY¼Dr]m0mUOXRUͧӕ LlYvڅK/4t+`xxm̶_oDV@ @ɟv۶Kt۶m۶add$?,TL<9Wtꄀ&u[_.__V PN{U b qA)R"o֬YB@4ŢEL"puFC@x D~_~.RD"ގt:>[nݻǙb?t44:FdMy28+ږkӸR:fY,.g*]c/t>eݻwc֭ IDATXprE:F{{;tIX$)/&Bړ=Øv+f|[O>$&Gу 9HA:F&g eDi?AK#<qTUUew`RϠ }|sXa {ժUlYVL7瞂O.Fx(6KL&@Lӟt¿kxW]ujjj=cz``oH&H$~Cu88rt,ˊZo[iB0T0mڴ oӦM/0W〿:c0j cc qA\硶Gnlڴ \pA}qa444777ê3',}TrFuc.֬YCN$W/(m!/O/u&0?!ρr0.,š5kru[#Hwݏ`g"}º"?ѳ"LG~BJ&!.yF@}CQ]ExP hv<{7W1&rj^9NƦ4EF裏+:~r]_ve622RP`uuuUUU{zzgq/H~<dq>&ei "O |r/5T5-0bA2_$%u]UVV(--m@ ;f!3Ʋ r]< 9'LS exʔ`xP}+Sa]%ò,<3p]7Tu~ n/hll;c:-Zt37P3[tĺuH/y%_sOM~bBC$2m./AR Xn]X`vpEnIyLTVV^oZ ֯_OJx<Ez]Z@?aKGajڰtZHe*--E$j0!x|IS6ݲF?k.^UVV^ <_Kb1LCOOO^m!kmc Diw Eyy9M:8ݔ"QL*tD?+ :kR}+SaaL!w;4UUUFz뮻>/}闩T*等y T*eM:#qht:,۶ /Տtj S˕Žz@BsZ#"dX1Iarɾl1S-&5 Z8ǽ //#.'scV@"XKlH$g9LJUAL|€_Kj^/_P"xj^:w$ vP>}L cg Sڠa8qJƴql{sY* R^P Wz)| lFkk+iSDNQ~n@k^'Mϥ2ϴ'@,4W\V2t܀6 38|ɔ/aض={YVh`T@% %ދ|r2Lqa*W&K*Crqb(ZEg /_z"8KX2eM G]mjg,07͗=|J<@"D@;iaH}=4y@iKI{oJf-Un|쬸0rȧ5GUꪀb~&=0a߾}7 9H$ X<_`J[Z[[I g_%jj0j{:tրNCBCjj1Q۠ |嶘܂ U`݀VL2\Irl8UP%is)_ǔ*ȗt2CHm3ݜRϢ7)`,yk:~t"~MD+z񡭭m\ڿu әriÏN(_ ACLg+d9PH :!Scg9LM/hUF[[[h> 9n }ض͚* +{!zp$`~a:-@ `vy)SS U6% UwQuL22NO01p݁A,ajyÞ={ #L<9Gss"˲|g}\e{@\5Mہ`xl]Z=2 †NP-}EjL2*tTZ~_60yUض6L>=qP~H^^^FφyiX030S9^~h{<VlJS6uSqr 4]mMP@PF?rOqA 2i6%mFGGD#A0jK͓hU>El27Ofr3_ꤺ0ϡUfuϤQ0 Js rS~MˁӇp5O~1B9 Aj#>-Z4>Vwm,* Оj+3$ӫTHWԶ{~|֥OX1LD,MT;uarh}\|?W4jn6zԁ <1\qm۶v}M @:)%L$aTK O1N "5 ǩm׵Pb&W.sQ*~mH2 :a0Gpq:4662&@ H4FX[) ;5~n6*$̦E蠋W ч\pPNZ;A$(ra~jsD"шB]qjhBD>>{>v5OP F-R uk6`qVm;?Ƨ.m.a2<2ž485(Pmߓ h%@B@WnL=㫚. tb Ť,ö1% O1\^>JMAx7 9f00<<<&LO c{mPM+(TXb߷N( @0mۨE`bl eYmK/5Ej+& `v]X˲J} iˮ>q/0i|@@__8EQLb…   *ra\KG4@a.eYJ8T⪟anʯ  c 8` ,B\OA ~˲j)dY%()'M&m4WN}"/h 蛄rY}/ڠ/2񮀯 #08\1mé{?k  @?UNdIis*܃ @P!@<//)E k0Gj@XNztZ_% \. `># հ3 cڜ A>Z_7A|a~O|EkC˻A^-YeY:/@ 90i*1m<-ukbj.?k+`Rv,|['~*%v|\_~3ePϯ{I(WA ב֧\ʡR@4P m<B7 2Naa܋uϚ@((a2q@P(e(? u 3"\^C5aBXj}gtABAN>@|x?~y@"J|>Qt/ש4z!& [Q ] (SЍB z l7k?QDǍf_? @/sTTT TBYYY `R^S^g%,ݸ!Iv&erwsPu KY@ ?22ES(***0uT$,c1A'D/cl@:+@=j~j_:PI'dQAmR]ī4!i\-\,/x(y7WH~4,Bf!ihzu00Z\umNQALatDnjOl2QGkAT[uVoX,ȿ*12|]u&1ǂS w ?k W/@ T]Xȇe~9rSL/3&e҈:hvS\.j=%\Wy0uݣ>fF(o$ J*AyL#_  Cx-/z4Z0U^.C'4]~& gש)d2A}y8saҤI%4*ĽɇMb0 :?Ac8U 1Z%,?A`t:,&My .HR]&nu]4557n7 5"0!3YKQ]JHC 2uO_^MMMQ c_ vRT t%O455*q15~˂ բP-5 PGeMBO{@5.\6 NB|u8λtvv͜88< 4iwif`2)D(PmPS! -Ә22 'Gm%$Tչ r9&cꠖ__I&2&18W֒%Ka<Ԕ)S..p}k-"9ܹsN  ;&>|xyުU6I^ Ѐn`6M4%XtZI-[!(.DSL:-*\jE@ߏ6D\Yx; x}mAHНJz"H9sGL{.pQNtT*¯TƑAi]aBՔA T;)ˀT9A,50YjT?Ks=7aBJHA(d)+=OR"AY IDATX HSIt(?_8%婴A,Jt&T-˧VNS:t ,q^ DdA-$ɖҥaᘵg&(y 7i\,sQfH'?UR̛ϸ)jYQ \J{SXA,S<ڶٳgr c,k:$I.#:6! %sccmF:2t.|2L\4:U @ZB7|}cZ&B g3uM:f7 J̟?+9Σ5K.ꚷN&m1B̙3g\=h[Oi^ y) LD\Zj~hFAbZ? @7~M\z ̙3555F2lkoo? (>88)^a\L˖-#5*BAui)ѹ T"L8PcRF@CRr?UːHY dy-[L&?$Ǜr޽{T\q-]| H^ r20,T3P::SS+@ \%|u>;ea'#ȜUERҥKCu188h4$NUxs&ղ,tww&%K˚\ħcJʤ*H:˜:RteQBmjS ]._Ng'CgYdɘ5z <!@>S顡0ǎ#*+ફ"7RO1d_byU\~{O[Ty2I괽i|JrRE|f3~ɜ5iDQ3 u]rf4,^RcX,1PXP2A:::~ f_[,~RILi\\Y "LNZuSah}^n'T(LC9FI*|fYGGoKi{yDne6CzObv̶9Kc|]x}ad+c8r"Hh""1#/&% Uӊp]\Pۯ2bS`MnޏMqr\U.+YAs\wu#GLtGFF|5Tu/7Lb`` 4y>"bq&!E:_): ׵K5k,A)>@ez>S+|u~p z 8u/ +qAPȬZ&b, o6lM:b1|׺K ?SRA嫆 LUSQ*(/+3*5a?crGiMbѷmx}{ >88hсt:*\uuuccD"6QZ,_G#҅s%Z'%ltւx Y)""]QF4E$uuuXr2tddNq7|0ưo߾PGFFpm;0s1Ub,&T0e iMBCn5W@-yDY5K#PRR2$nPwY}1flΝߎD"i NG}T*& c̺0ٳg+ QII0iwHs(j ?7!l7@WfPT뫠^*>| +㛬PRRB>W\ٳgJӜss|͡-GC!P@2̬Zt:i6q<\Xqx`yyƗS * D8>,1|=_4 J mSe+_,qc.n솠0.{Bt}@2,xرcw566~ݔhϞ=={v quᩧ3q",E}W([ĩ̧ZjJ`B5i|dRۦNGdDy.|}j`lW/455 o`ommرcA~Tk_ZeYQ]ٜs,[ eZ~|tԭJ18<<3SeWD"(++tr =qq1ݻw:;; \----_~X@c`ԩP1̝;mmm8|8bc>l"̏Pt2E.NWAa!ԯɌT_3N=/%@(.NpPLaUUUd.7xcE JRؾ}i;t]w}@x~Ν;RVV\9,Boo/MꬸXt)~1kb j^ 5:_mT@kr}Tuei* e%uit {Z^^;#Y۶yf9rk[lY 9/ˇmۮy.q g>C$)-rz7i-FT&NMKc :wMvS_ů_)Nnpdi?DCCCzQlڴOW xWbXYfuUVVjOG`ѣ5kVk娭%8gUM*ϤAUbqNPL}?+0T4w-`…Z!/lK/W.;xn۶!kx۶m۫^z-˪3IT0o<ٳg|0 &W S' LBBi?PcKO@6 MֵY|:POc16WYYI X,}{% D"~7W~)]5 mOэ d}s,Z͡s^r-$Q16u˨uVWruITy*tyL^PW^W-"U+-Z'? *++Cg~ؿ?mf*`V:sfȑ#=  c ۶m#O);-nv3eB4i@v D:`L{Mh}Ӌ@jy`27Gg>d2;;,Æ~ѣ8rb2?PU ޖ-[^K޲Jݜc 5kVv`¼***pBAQ..Qn$Amm-٦|YB?r[89LfÿAnYiӦavV:L>?9A%%%H_!aj8|*Z Jss)O@ibJ黠. "DQTWWSnv\xE=Z[[o>tlӦMuttOE tݻ}b]:FO>}:h\0c cƍH$c8 ?9e ?"=_'TKNn' |ADvbO}SX|yQO† |O#g 4ԧc}o, k֬!s)PRR╖466_tL1cX^s̟??P1IRcDHo3 :\ -FOP/ZZGrѽdGFF/} ˗//FF_~]]]><^믯[<8f4sh4S0__jPȕ1 _rT9r> ӵ*o~ $ֆ;w?z衇M4F𧋃vD"6x0{8p_d616*4jPL`A\]LZO_3 qPSS3&ZwߍS>gO=L&~vڕe~[gyg)SpBPmm~f&Kvۉ<:TV[sTJ2v݁eeee>`{SLDy_֮]23?p]L&;::zg̘qs:th($ \{xg1<kKַT9$6_f+?>gxx-Q80:000W]]#AݴI&9GYY>`Ϟ=طoD"xG.ȥ ?<~idTVV&؛nh{ԫ O=[~O|./xzL=?`#GDkK,ߣv]Ӫi<&c׮]~H6MMM>/ 8p`3!$H!`2H(Zo\8.qH?5;no#j /zh?fsx5gddZ›o ѧzy+$iwYc2B@ X,lVVݻw_&j'ٽ{wɂ8\zݻwڀRx^x<i*4?fX'$\(n,cҥطo/CsssRhnn^=22r/o*)$IRz%W\ryyyZʰ}d.+ÌA(}ɧ^Wz|Znާd SIDAT@0 l6vn{]}/^~e,$aׇv]t3]]]7QR^LT:$I(++Ceeۇ*L؈BE]@6 !# j>~3A}kޫARj=(g4448i.8N¹sԮH__ߎvr_4E_]] W+رC Y(xGss3{=x䓟 PJt:Q__{M& 8~88ӣRNK0$IEQ;Tm'YB@ǁy8nKze$a֭ŦMLԄ?\rǏD ~ 8KKKKNBXǡ^PM/I>3ҥKX,3 ֙jD I@dASiA~6$nߏ5k֠>LRSSqhjjқ*RJ垞ϟ?^@ :PXXG݄s={. Ν,0L)xPJ ,z)c(**ғ)g^+f,˃[FGGozԙU zf32_{\5G Шj7˲|2\.\..\BxO9@)(bݺu(//Gyy9V^GGGԤtC0tb6GY7٤V/<Q={o^P!@$l۶ 6l P޽pnܸ7n```@@3u*Eem@fcʕXr%֭[XPԀ3ght(J!>|J&uB!R᭬}zK-[usۭ uT'`@e6+Vh]=N'$I҄B:!"pJ!###"Ү(XVjֳ@RH!ra||\;|ZVXV'E[[["Zk׮noo?2_z? ^&ͯj8./e˖a׮]`|8|p"j.訹}@-#%wEQ@ 0r~S\\d*aB|>V04??$ՅC=P!ǁ@`x*'NPQ=*ji$4ߏVU_}?C6=^QQ q%r$IC]]233 M`hii͛7uD"I75PrZ<  `3t2TUUْju˱(@OOO+;{oABdb͛=còD:YqF<3Z" GM_ BB oœ'O"#yf3, ?{6}غu!u?~3?AƟf XtX:u gΜ $/"ZOUv}3(Xz5mۆe˖I@߹sǎ˗g9::j6t-F/ ?tb<7x*Pyyyظq#֮]79j~/Ӹy&L&LnE !}p֏0 CE7lذ<3,˱qFdgg}| (ȑ#DgHi0@|xfff0f!hrssQ\\bk[kQͼò,pU\zsHkii9F`ٹsO_OJHPTTɁ(io.pa044ׯ믿F__Uտ766G? . lMMN<_Yjy磠X|?eyNuj[%^~:_ X{}n?~ @8AidB\L$Rqv"''˗/Gvv6N'222%G5\"0x[IB$Iw}>߯;::~5>>>̲$˲h1 0w~TVV>裏l6MLXIS/P>EF@(-~:;;?aH ð0, %Aj!I1t" `G (ks ˲, {MM͟edd4Ljc$ꮾP(x~˲";!XI~ӦM?p: y~Bm!EZ0nq$!f #gۭVf7<_)ݵH(EQ<9>>~ٳGƆ啉`1@j0`&~:lٲply,>h!\Y$('N8` p-8։ &Q5 ZRQQQp8JAXDzl!˲y ,](weY)r0066&1ç(H/ /1d+VXQhV<(˲Y d3 =BqBb&T+⦔AQ?(2,(|knəF 0 Ԓhz΁XtshX7IENDB`focuswriter-1.4.5/resources/windows/icon.rc000066400000000000000000000001021231434177300210550ustar00rootroot00000000000000IDI_ICON1 ICON DISCARDABLE "focuswriter.ico" focuswriter-1.4.5/src/000077500000000000000000000000001231434177300146715ustar00rootroot00000000000000focuswriter-1.4.5/src/action_manager.cpp000066400000000000000000000134351231434177300203520ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2012 Graeme Gott * * 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 . * ***********************************************************************/ #include "action_manager.h" #include #include #include #include //----------------------------------------------------------------------------- ActionManager* ActionManager::m_instance = 0; //----------------------------------------------------------------------------- ActionManager::ActionManager(QWidget* parent) : QObject(parent), m_widget(parent) { m_instance = this; #ifdef Q_OS_MAC // Override default shortcuts to prevent conflicts m_actions["SwitchNextDocument"].shortcut = Qt::CTRL | Qt::Key_BracketRight; m_actions["SwitchPreviousDocument"].shortcut = Qt::CTRL | Qt::Key_BracketLeft; m_actions["Reload"].shortcut = Qt::Key_F5; #endif // Load shortcuts QSettings settings; settings.beginGroup("Shortcuts"); QStringList keys = settings.childKeys(); foreach (const QString& name, keys) { m_actions[name].shortcut = settings.value(name).value(); } // Load symbol shortcuts QVariantHash shortcuts; shortcuts.insert("2014", "Ctrl+-"); shortcuts.insert("2022", "Ctrl+*"); shortcuts.insert("2026", "Ctrl+."); shortcuts = QSettings().value("SymbolsDialog/Shortcuts", shortcuts).toHash(); QHashIterator iter(shortcuts); while (iter.hasNext()) { iter.next(); bool ok = false; quint32 unicode = iter.key().toUInt(&ok, 16); QKeySequence shortcut = QKeySequence::fromString(iter.value().toString()); if (ok && !shortcut.isEmpty()) { addShortcut(unicode, shortcut); } } } //----------------------------------------------------------------------------- ActionManager::~ActionManager() { if (m_instance == this) { m_instance = 0; } // Save symbol shortcuts QVariantHash shortcuts; QHashIterator iter(m_symbol_shortcuts); while (iter.hasNext()) { iter.next(); shortcuts.insert(QString::number(iter.key(), 16), iter.value()->key().toString()); } QSettings().setValue("SymbolsDialog/Shortcuts", shortcuts); } //----------------------------------------------------------------------------- QKeySequence ActionManager::shortcut(const QString& name) const { if (!m_actions.contains(name)) { return QKeySequence(); } const Action& act = m_actions[name]; return act.action ? act.action->shortcut() : act.shortcut; } //----------------------------------------------------------------------------- QKeySequence ActionManager::shortcut(quint32 unicode) { return m_symbol_shortcuts.contains(unicode) ? m_symbol_shortcuts.value(unicode)->key() : QKeySequence(); } //----------------------------------------------------------------------------- void ActionManager::addAction(const QString& name, QAction* action) { bool set = m_actions.contains(name); Action& act = m_actions[name]; act.action = action; act.default_shortcut = action->shortcut(); if (!set) { act.shortcut = act.default_shortcut; } action->setShortcut(act.shortcut); } //----------------------------------------------------------------------------- void ActionManager::setShortcut(quint32 unicode, const QKeySequence& sequence) { if (!sequence.isEmpty()) { if (m_symbol_shortcuts.contains(unicode)) { m_symbol_shortcuts.value(unicode)->setKey(sequence); } else { addShortcut(unicode, sequence); } } else { QShortcut* shortcut = m_symbol_shortcuts.value(unicode); m_symbol_shortcuts.remove(unicode); m_symbol_shortcuts_text.remove(shortcut); delete shortcut; } } //----------------------------------------------------------------------------- void ActionManager::setShortcuts(const QHash& shortcuts) { // Update specified shortcuts QHashIterator i(shortcuts); while (i.hasNext()) { i.next(); const QString& name = i.key(); if (!m_actions.contains(name)) { continue; } const QKeySequence& shortcut = i.value(); m_actions[name].action->setShortcut(shortcut); m_actions[name].shortcut = shortcut; } // Save all non-default shortcuts QSettings settings; settings.beginGroup("Shortcuts"); QHashIterator j(m_actions); while (j.hasNext()) { const QString& name = j.next().key(); const Action& act = j.value(); if (act.default_shortcut != act.shortcut) { settings.setValue(name, act.shortcut); } else { settings.remove(name); } } } //----------------------------------------------------------------------------- void ActionManager::symbolShortcutActivated() { QObject* object = sender(); if (m_symbol_shortcuts_text.contains(object)) { emit insertText(m_symbol_shortcuts_text.value(object)); } } //----------------------------------------------------------------------------- void ActionManager::addShortcut(quint32 unicode, const QKeySequence& sequence) { QShortcut* shortcut = new QShortcut(sequence, m_widget); connect(shortcut, SIGNAL(activated()), this, SLOT(symbolShortcutActivated())); m_symbol_shortcuts[unicode] = shortcut; m_symbol_shortcuts_text[shortcut] = QString::fromUcs4(&unicode, 1); } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/action_manager.h000066400000000000000000000042321231434177300200120ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2012 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef ACTION_MANAGER_H #define ACTION_MANAGER_H #include #include #include class QAction; class QShortcut; class ActionManager : public QObject { Q_OBJECT struct Action { QAction* action; QKeySequence shortcut; QKeySequence default_shortcut; }; public: ActionManager(QWidget* parent = 0); ~ActionManager(); QList actions() const { return m_actions.keys(); } QAction* action(const QString& name) const { return m_actions[name].action; } QKeySequence defaultShortcut(const QString& name) const { return m_actions[name].default_shortcut; } QKeySequence shortcut(const QString& name) const; QKeySequence shortcut(quint32 unicode); void addAction(const QString& name, QAction* action); void setShortcut(quint32 unicode, const QKeySequence& sequence); void setShortcuts(const QHash& shortcuts); static ActionManager* instance() { return m_instance; } signals: void insertText(const QString& text); private slots: void symbolShortcutActivated(); private: void addShortcut(quint32 unicode, const QKeySequence& sequence); private: QWidget* m_widget; QHash m_actions; QHash m_symbol_shortcuts; QHash m_symbol_shortcuts_text; static ActionManager* m_instance; }; #endif focuswriter-1.4.5/src/alert.cpp000066400000000000000000000163101231434177300165050ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010, 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #include "alert.h" #include "action_manager.h" #include #include #include #include #include #include #include #include #include //----------------------------------------------------------------------------- Alert::Alert(QWidget* parent) : QWidget(parent) { init(); } //----------------------------------------------------------------------------- Alert::Alert(Icon icon, const QString& text, const QStringList& details, bool expandable, QWidget* parent) : QWidget(parent) { init(); setExpandable(expandable); setIcon(icon); setText(text, details); } //----------------------------------------------------------------------------- void Alert::fadeIn() { setAttribute(Qt::WA_TransparentForMouseEvents); connect(m_fade_timer, SIGNAL(finished()), this, SLOT(fadeInFinished())); m_fade_timer->start(); } //----------------------------------------------------------------------------- void Alert::setExpandable(bool expandable) { m_always_expanded = !expandable; if (m_always_expanded) { m_text->setText(m_long_text); m_expander->hide(); } else if (m_short_text != m_long_text) { m_expanded = true; expanderToggled(); } } //----------------------------------------------------------------------------- void Alert::setIcon(Icon icon) { QStyle::StandardPixmap pixmap = QStyle::SP_CustomBase; switch (icon) { case Critical: pixmap = QStyle::SP_MessageBoxCritical; break; case Information: pixmap = QStyle::SP_MessageBoxInformation; break; case Question: pixmap = QStyle::SP_MessageBoxQuestion; break; case Warning: pixmap = QStyle::SP_MessageBoxWarning; break; default: break; } int size = style()->pixelMetric(QStyle::PM_LargeIconSize); setIcon(style()->standardIcon(pixmap).pixmap(size,size)); } //----------------------------------------------------------------------------- void Alert::setIcon(const QPixmap& pixmap) { if (!pixmap.isNull()) { m_pixmap->setPixmap(pixmap); } else { m_pixmap->clear(); } } //----------------------------------------------------------------------------- void Alert::setText(const QString& text, const QStringList& details) { m_short_text = "

      " + text + "

      "; m_long_text = m_short_text; if (!details.isEmpty()) { m_long_text += "

      " + details.join("
      ") + "

      "; } m_expander->setVisible(!details.isEmpty() && !m_always_expanded); m_expanded = true; expanderToggled(); } //----------------------------------------------------------------------------- bool Alert::eventFilter(QObject* watched, QEvent* event) { if ((watched == parentWidget()) && (event->type() == QEvent::Resize)) { m_under_mouse = rect().contains(mapFromGlobal(QCursor::pos())); update(); } return QWidget::eventFilter(watched, event); } //----------------------------------------------------------------------------- void Alert::enterEvent(QEvent* event) { m_under_mouse = true; update(); QWidget::enterEvent(event); } //----------------------------------------------------------------------------- void Alert::leaveEvent(QEvent* event) { m_under_mouse = false; update(); QWidget::leaveEvent(event); } //----------------------------------------------------------------------------- void Alert::paintEvent(QPaintEvent* event) { QWidget::paintEvent(event); QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); painter.setOpacity(m_under_mouse ? 1.0 : 0.8); painter.setPen(QPen(palette().color(foregroundRole()), 1.5)); painter.setBrush(palette().color(backgroundRole())); painter.drawRoundedRect(QRectF(rect()).adjusted(1.5, 1.5, -1.5, -1.5), 7, 7); } //----------------------------------------------------------------------------- void Alert::expanderToggled() { m_expanded = !m_expanded; if (m_expanded || m_always_expanded) { m_expander->setIcon(QIcon::fromTheme("arrow-up")); m_expander->setToolTip(tr("Collapse")); m_text->setText(m_long_text); } else { m_expander->setIcon(QIcon::fromTheme("arrow-right")); m_expander->setToolTip(tr("Expand")); m_text->setText(m_short_text); } } //----------------------------------------------------------------------------- void Alert::fadeInFinished() { setAttribute(Qt::WA_TransparentForMouseEvents, false); disconnect(m_fade_timer, SIGNAL(finished()), this, SLOT(fadeInFinished())); } //----------------------------------------------------------------------------- void Alert::fadeOut() { setAttribute(Qt::WA_TransparentForMouseEvents); m_fade_timer->setDirection(QTimeLine::Backward); connect(m_fade_timer, SIGNAL(finished()), this, SLOT(deleteLater())); m_fade_timer->start(); } //----------------------------------------------------------------------------- void Alert::init() { m_expanded = true; m_always_expanded = false; m_under_mouse = false; setAttribute(Qt::WA_TranslucentBackground); setStyleSheet("QLabel { color: white } Alert { color: white; background-color: black }"); if (parent()) { parent()->installEventFilter(this); } m_expander = new QToolButton(this); m_expander->setAutoRaise(true); m_expander->setIconSize(QSize(16,16)); m_expander->hide(); connect(m_expander, SIGNAL(clicked()), this, SLOT(expanderToggled())); m_pixmap = new QLabel(this); m_pixmap->setAlignment(Qt::AlignHCenter | Qt::AlignTop); m_text = new QLabel(this); m_text->setTextInteractionFlags(Qt::TextSelectableByMouse); m_text->setWordWrap(true); QToolButton* close = new QToolButton(this); close->setAutoRaise(true); close->setIconSize(QSize(16,16)); close->setIcon(QIcon::fromTheme("window-close")); close->setToolTip(tr("Close (%1)").arg(ActionManager::instance()->action("DismissAlert")->shortcut().toString(QKeySequence::NativeText))); connect(close, SIGNAL(clicked()), this, SLOT(fadeOut())); QHBoxLayout* layout = new QHBoxLayout(this); layout->setMargin(7); layout->setSpacing(6); layout->addWidget(m_expander, 0, Qt::AlignHCenter | Qt::AlignBottom); layout->addWidget(m_pixmap); layout->addWidget(m_text, 1); layout->addWidget(close, 0, Qt::AlignHCenter | Qt::AlignTop); QGraphicsOpacityEffect* fade_effect = new QGraphicsOpacityEffect(this); fade_effect->setOpacity(0.0); setGraphicsEffect(fade_effect); m_fade_timer = new QTimeLine(240, this); connect(m_fade_timer, SIGNAL(valueChanged(qreal)), fade_effect, SLOT(setOpacity(qreal))); } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/alert.h000066400000000000000000000037311231434177300161550ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010, 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef ALERT_H #define ALERT_H #include class QLabel; class QTimeLine; class QToolButton; class Alert : public QWidget { Q_OBJECT public: enum Icon { NoIcon = 0, Information, Warning, Critical, Question }; Alert(QWidget* parent = 0); Alert(Icon icon, const QString& text, const QStringList& details, bool expandable, QWidget* parent = 0); bool underMouse() const; void fadeIn(); void setExpandable(bool expandable); void setIcon(Icon icon); void setIcon(const QPixmap& pixmap); void setText(const QString& text, const QStringList& details); bool eventFilter(QObject* watched, QEvent* event); protected: void enterEvent(QEvent* event); void leaveEvent(QEvent* event); void paintEvent(QPaintEvent* event); private slots: void expanderToggled(); void fadeInFinished(); void fadeOut(); private: void init(); private: QToolButton* m_expander; QLabel* m_pixmap; QLabel* m_text; QString m_short_text; QString m_long_text; QTimeLine* m_fade_timer; bool m_expanded; bool m_always_expanded; bool m_under_mouse; }; inline bool Alert::underMouse() const { return m_under_mouse; } #endif focuswriter-1.4.5/src/alert_layer.cpp000066400000000000000000000046221231434177300177040ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010, 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #include "alert_layer.h" #include "action_manager.h" #include "alert.h" #include #include //----------------------------------------------------------------------------- AlertLayer::AlertLayer(QWidget* parent) : QWidget(parent) { setMaximumWidth(4 * logicalDpiX()); m_alerts_layout = new QVBoxLayout(this); m_alerts_layout->setMargin(0); QAction* action = new QAction(tr("Dismiss Alert"), this); action->setShortcut(tr("Ctrl+D")); connect(action, SIGNAL(triggered()), this, SLOT(dismissAlert())); addAction(action); ActionManager::instance()->addAction("DismissAlert", action); } //----------------------------------------------------------------------------- void AlertLayer::addAlert(Alert* alert) { alert->setParent(this); m_alerts.append(alert); m_alerts_layout->addWidget(alert); connect(alert, SIGNAL(destroyed(QObject*)), this, SLOT(alertDestroyed(QObject*))); alert->fadeIn(); } //----------------------------------------------------------------------------- void AlertLayer::alertDestroyed(QObject* alert) { for (int i = 0; i < m_alerts.count(); ++i) { if (m_alerts[i] == alert) { m_alerts.removeAt(i); return; } } } //----------------------------------------------------------------------------- void AlertLayer::dismissAlert() { if (!m_alerts.isEmpty()) { for (int i = 0; i < m_alerts.count(); ++i) { if (m_alerts[i]->underMouse()) { delete m_alerts.takeAt(i); return; } } delete m_alerts.takeAt(0); } } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/alert_layer.h000066400000000000000000000024141231434177300173460ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010, 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef ALERT_LAYER_H #define ALERT_LAYER_H class Alert; #include #include #include class QVBoxLayout; class AlertLayer : public QWidget { Q_OBJECT public: AlertLayer(QWidget* parent); public slots: void addAlert(Alert* alert); private slots: void alertDestroyed(QObject* alert); void dismissAlert(); private: QList m_alerts; QVBoxLayout* m_alerts_layout; }; #endif focuswriter-1.4.5/src/application.cpp000066400000000000000000000064731231434177300177120ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #include "application.h" #include "window.h" #include #include #ifdef RTFCLIPBOARD #ifdef Q_OS_MAC #include "clipboard_mac.h" #endif #ifdef Q_OS_WIN #include "clipboard_windows.h" #endif #endif //----------------------------------------------------------------------------- Application::Application(int& argc, char** argv) : QtSingleApplication("org.gottcode.FocusWriter", argc, argv), m_window(0) { setApplicationName("FocusWriter"); setApplicationVersion(VERSIONSTR); setOrganizationDomain("gottcode.org"); setOrganizationName("GottCode"); { QIcon fallback(":/hicolor/256x256/apps/focuswriter.png"); fallback.addFile(":/hicolor/128x128/apps/focuswriter.png"); fallback.addFile(":/hicolor/64x64/apps/focuswriter.png"); fallback.addFile(":/hicolor/48x48/apps/focuswriter.png"); fallback.addFile(":/hicolor/32x32/apps/focuswriter.png"); fallback.addFile(":/hicolor/24x24/apps/focuswriter.png"); fallback.addFile(":/hicolor/22x22/apps/focuswriter.png"); fallback.addFile(":/hicolor/16x16/apps/focuswriter.png"); if (!QIcon::themeName().isEmpty() && (QIcon::themeName() != "hicolor")) { setWindowIcon(QIcon::fromTheme("focuswriter", fallback)); } else { setWindowIcon(fallback); } } #ifndef Q_OS_MAC setAttribute(Qt::AA_DontUseNativeMenuBar); #else setAttribute(Qt::AA_DontShowIconsInMenus, true); #endif #ifdef RTFCLIPBOARD new RTF::Clipboard; #endif qputenv("UNICODEMAP_JP", "cp932"); m_files = arguments().mid(1); processEvents(); } //----------------------------------------------------------------------------- bool Application::createWindow() { if (isRunning()) { sendMessage(m_files.join(QLatin1String("\n"))); return false; } #ifndef Q_OS_MAC setAttribute(Qt::AA_DontShowIconsInMenus, !QSettings().value("Window/MenuIcons", false).toBool()); #endif m_window = new Window(m_files); setActivationWindow(m_window); connect(this, SIGNAL(messageReceived(QString)), m_window, SLOT(addDocuments(QString))); return true; } //----------------------------------------------------------------------------- bool Application::event(QEvent* e) { if (e->type() != QEvent::FileOpen) { return QApplication::event(e); } else { QString file = static_cast(e)->file(); if (m_window) { m_window->addDocuments(QStringList(file), QStringList(file)); } else { m_files.append(file); } e->accept(); return true; } } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/application.h000066400000000000000000000023461231434177300173520ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef APPLICATION_H #define APPLICATION_H class Window; #include #include class Application : public QtSingleApplication { public: Application(int& argc, char** argv); QStringList files() const { return m_files; } bool createWindow(); protected: virtual bool event(QEvent* e); private: QStringList m_files; Window* m_window; }; #endif focuswriter-1.4.5/src/block_stats.cpp000066400000000000000000000046471231434177300177200ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010, 2011, 2012, 2013 Graeme Gott * * 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 . * ***********************************************************************/ #include "block_stats.h" #include "dictionary.h" #include "scene_model.h" //----------------------------------------------------------------------------- BlockStats::BlockStats(SceneModel* scene_model) : m_characters(0), m_spaces(0), m_words(0), m_scene(false), m_scene_model(scene_model) { } //----------------------------------------------------------------------------- BlockStats::~BlockStats() { if (m_scene) { Q_ASSERT(m_scene_model != 0); m_scene_model->removeScene(this); } } //----------------------------------------------------------------------------- void BlockStats::checkSpelling(const QString& text, const Dictionary& dictionary) { m_misspelled.clear(); if (!text.isEmpty()) { QStringRef word; while ((word = dictionary.check(text, word.position() + word.length())).isNull() == false) { m_misspelled.append(word); } } m_checked = Checked; } //----------------------------------------------------------------------------- void BlockStats::update(const QString& text) { m_checked = Unchecked; m_characters = text.length(); m_spaces = 0; m_words = 0; bool word = false; QString::const_iterator end = text.constEnd(); for (QString::const_iterator i = text.constBegin(); i != end; ++i) { if (i->isLetterOrNumber() || i->category() == QChar::Punctuation_Dash) { if (word == false) { word = true; m_words++; } } else if (i->isSpace()) { word = false; m_spaces++; } else if (*i != 0x2019 && *i != 0x0027) { word = false; } } } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/block_stats.h000066400000000000000000000045001231434177300173510ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010, 2012, 2013 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef BLOCK_STATS_H #define BLOCK_STATS_H class Dictionary; class SceneModel; #include class BlockStats : public QTextBlockUserData { public: BlockStats(SceneModel* scene_model); ~BlockStats(); bool isEmpty() const; bool isScene() const; int characterCount() const; int spaceCount() const; int wordCount() const; QVector misspelled() const; enum SpellCheckStatus { Unchecked, Checked, CheckSpelling }; SpellCheckStatus spellingStatus() const; void checkSpelling(const QString& text, const Dictionary& dictionary); void recheckSpelling(); void setScene(bool scene); void update(const QString& text); private: int m_characters; int m_spaces; int m_words; bool m_scene; SceneModel* m_scene_model; QVector m_misspelled; SpellCheckStatus m_checked; }; inline bool BlockStats::isEmpty() const { return m_words == 0; } inline bool BlockStats::isScene() const { return m_scene; } inline int BlockStats::characterCount() const { return m_characters; } inline int BlockStats::spaceCount() const { return m_spaces; } inline int BlockStats::wordCount() const { return m_words; } inline QVector BlockStats::misspelled() const { return m_misspelled; } inline void BlockStats::setScene(bool scene) { m_scene = scene; } inline BlockStats::SpellCheckStatus BlockStats::spellingStatus() const { return m_checked; } inline void BlockStats::recheckSpelling() { m_checked = CheckSpelling; } #endif focuswriter-1.4.5/src/color_button.cpp000066400000000000000000000042471231434177300201150ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2008, 2009, 2010 Graeme Gott * * 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 . * ***********************************************************************/ #include "color_button.h" #include #include #include //----------------------------------------------------------------------------- ColorButton::ColorButton(QWidget* parent) : QPushButton(parent) { setAutoDefault(false); connect(this, SIGNAL(clicked()), this, SLOT(onClicked())); } //----------------------------------------------------------------------------- QString ColorButton::toString() const { return m_color.name(); } //----------------------------------------------------------------------------- void ColorButton::setColor(const QColor& color) { if (m_color == color) { return; } m_color = color; QPixmap swatch(75, fontMetrics().height()); swatch.fill(m_color); { QPainter painter(&swatch); painter.setPen(m_color.darker()); painter.drawRect(0, 0, swatch.width() - 1, swatch.height() - 1); painter.setPen(m_color.lighter()); painter.drawRect(1, 1, swatch.width() - 3, swatch.height() - 3); } setIconSize(swatch.size()); setIcon(swatch); emit changed(m_color); } //----------------------------------------------------------------------------- void ColorButton::onClicked() { QColor color = QColorDialog::getColor(m_color, this); if (color.isValid()) { setColor(color); } } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/color_button.h000066400000000000000000000024741231434177300175620ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2008, 2009, 2010 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef COLOR_BUTTON_H #define COLOR_BUTTON_H #include #include class ColorButton : public QPushButton { Q_OBJECT public: ColorButton(QWidget* parent = 0); QColor color() const; QString toString() const; signals: void changed(const QColor& color); public slots: void setColor(const QColor& color); private slots: void onClicked(); private: QColor m_color; }; inline QColor ColorButton::color() const { return m_color; } #endif focuswriter-1.4.5/src/deltas.cpp000066400000000000000000000045311231434177300166540ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010 Graeme Gott * * 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 . * ***********************************************************************/ #include "deltas.h" #include "document.h" //----------------------------------------------------------------------------- Deltas::Deltas(Document* document) : m_document(document) { refresh(); } //----------------------------------------------------------------------------- int Deltas::characterCount() const { return m_document->characterCount() - m_character_count; } //----------------------------------------------------------------------------- int Deltas::characterAndSpaceCount() const { return m_document->characterAndSpaceCount() - m_character_and_space_count; } //----------------------------------------------------------------------------- int Deltas::pageCount() const { return m_document->pageCount() - m_page_count; } //----------------------------------------------------------------------------- int Deltas::paragraphCount() const { return m_document->paragraphCount() - m_paragraph_count; } //----------------------------------------------------------------------------- int Deltas::wordCount() const { return m_document->wordCount() - m_word_count; } //----------------------------------------------------------------------------- void Deltas::refresh() { m_character_count = m_document->characterCount(); m_character_and_space_count = m_document->characterAndSpaceCount(); m_page_count = m_document->pageCount(); m_paragraph_count = m_document->paragraphCount(); m_word_count = m_document->wordCount(); } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/deltas.h000066400000000000000000000024111231434177300163140ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef DELTAS_H #define DELTAS_H class Document; class Deltas { public: Deltas(Document* document); int characterCount() const; int characterAndSpaceCount() const; int pageCount() const; int paragraphCount() const; int wordCount() const; void refresh(); private: Document* m_document; int m_character_count; int m_character_and_space_count; int m_page_count; int m_paragraph_count; int m_word_count; }; #endif focuswriter-1.4.5/src/document.cpp000066400000000000000000001126221231434177300172170ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010, 2011, 2012, 2014 Graeme Gott * * 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 . * ***********************************************************************/ #include "document.h" #include "alert.h" #include "block_stats.h" #include "dictionary_manager.h" #include "document_watcher.h" #include "document_writer.h" #include "highlighter.h" #include "odt_reader.h" #include "preferences.h" #include "scene_list.h" #include "scene_model.h" #include "smart_quotes.h" #include "sound.h" #include "spell_checker.h" #include "theme.h" #include "window.h" #include "rtf/reader.h" #include "rtf/writer.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //----------------------------------------------------------------------------- namespace { QList g_untitled_indexes = QList() << 0; QString g_cache_path; QString randomCacheFilename() { static time_t seed = 0; if (seed == 0) { seed = time(0); qsrand(seed); } QString filename; QDir dir(g_cache_path); do { filename = QString("fw_%1").arg(qrand(), 6, 36, QLatin1Char('0')); } while (dir.exists(filename)); return filename; } class TextEdit : public QTextEdit { public: TextEdit(QWidget* parent = 0) : QTextEdit(parent) { } protected: virtual bool canInsertFromMimeData(const QMimeData* source) const; virtual QMimeData* createMimeDataFromSelection() const; virtual void insertFromMimeData(const QMimeData* source); virtual void keyPressEvent(QKeyEvent* event); virtual void inputMethodEvent(QInputMethodEvent* event); private: QByteArray mimeToRtf(const QMimeData* source) const; }; bool TextEdit::canInsertFromMimeData(const QMimeData* source) const { return QTextEdit::canInsertFromMimeData(source) || (source->hasFormat(QLatin1String("text/rtf")) && acceptRichText()); } QMimeData* TextEdit::createMimeDataFromSelection() const { QMimeData* mime = QTextEdit::createMimeDataFromSelection(); QByteArray rtf = mimeToRtf(mime); mime->setData(QLatin1String("text/rtf"), rtf); mime->setData(QLatin1String("text/richtext"), rtf); mime->setData(QLatin1String("application/rtf"), rtf); return mime; } void TextEdit::insertFromMimeData(const QMimeData* source) { if (isReadOnly()) { return; } if (acceptRichText()) { QByteArray richtext; if (source->hasFormat(QLatin1String("text/rtf"))) { richtext = source->data(QLatin1String("text/rtf")); } else if (source->hasFormat(QLatin1String("text/richtext"))) { richtext = source->data(QLatin1String("text/richtext")); } else if (source->hasFormat(QLatin1String("application/rtf"))) { richtext = source->data(QLatin1String("application/rtf")); } else if (source->hasFormat(QLatin1String("application/x-qt-windows-mime;value=\"Rich Text Format\""))) { richtext = source->data(QLatin1String("application/x-qt-windows-mime;value=\"Rich Text Format\"")); } else if (source->hasHtml()) { richtext = mimeToRtf(source); } else { QTextEdit::insertFromMimeData(source); return; } RTF::Reader reader; QBuffer buffer(&richtext); buffer.open(QIODevice::ReadOnly); reader.read(&buffer, textCursor()); buffer.close(); } else { QTextEdit::insertFromMimeData(source); } } void TextEdit::keyPressEvent(QKeyEvent* event) { QTextEdit::keyPressEvent(event); if (event->key() == Qt::Key_Insert) { setOverwriteMode(!overwriteMode()); } else { // Play sound effect int key = event->key(); if (!(event->modifiers().testFlag(Qt::ControlModifier)) && !(event->modifiers().testFlag(Qt::AltModifier)) && !(event->modifiers().testFlag(Qt::MetaModifier))) { if ((key == Qt::Key_Return) || (key == Qt::Key_Enter)) { Sound::play(Qt::Key_Enter); } else if ((key < Qt::Key_Escape) || (key == Qt::Key_unknown)) { Sound::play(Qt::Key_Any); } } } } void TextEdit::inputMethodEvent(QInputMethodEvent* event) { QTextEdit::inputMethodEvent(event); Sound::play(Qt::Key_Any); } QByteArray TextEdit::mimeToRtf(const QMimeData* source) const { // Parse HTML QTextDocument document; if (source->hasHtml()) { document.setHtml(source->html()); } else { document.setPlainText(source->text()); } // Convert to RTF RTF::Writer writer; QBuffer buffer; buffer.open(QIODevice::WriteOnly); writer.write(&buffer, &document, false); buffer.close(); return buffer.data(); } } //----------------------------------------------------------------------------- Document::Document(const QString& filename, int& current_wordcount, int& current_time, QWidget* parent) : QWidget(parent), m_cache_filename(randomCacheFilename()), m_cache_outdated(false), m_index(0), m_always_center(false), m_rich_text(false), m_spacings_loaded(false), m_focus_mode(0), m_scene_list(0), m_cached_block_count(-1), m_cached_current_block(-1), m_saved_wordcount(0), m_page_type(0), m_page_amount(0), m_accurate_wordcount(true), m_current_wordcount(current_wordcount), m_current_time(current_time) { setMouseTracking(true); m_stats = &m_document_stats; m_hide_timer = new QTimer(this); m_hide_timer->setInterval(5000); m_hide_timer->setSingleShot(true); connect(m_hide_timer, SIGNAL(timeout()), this, SLOT(hideMouse())); // Set up text area m_text = new TextEdit(this); m_text->installEventFilter(this); m_text->setMouseTracking(true); m_text->setFrameStyle(QFrame::NoFrame); m_text->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); m_text->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); m_text->setTabStopWidth(48); m_text->document()->setIndentWidth(1); m_text->horizontalScrollBar()->setAttribute(Qt::WA_NoMousePropagation); m_text->viewport()->setMouseTracking(true); m_text->viewport()->installEventFilter(this); connect(m_text, SIGNAL(cursorPositionChanged()), this, SLOT(cursorPositionChanged())); connect(m_text, SIGNAL(selectionChanged()), this, SLOT(selectionChanged())); m_scene_model = new SceneModel(m_text, this); m_dictionary = DictionaryManager::instance().requestDictionary(); m_highlighter = new Highlighter(m_text, m_dictionary); connect(&DictionaryManager::instance(), SIGNAL(changed()), this, SLOT(dictionaryChanged())); // Set filename if (!filename.isEmpty()) { QString suffix = filename.section(QLatin1Char('.'), -1).toLower(); m_rich_text = (suffix == "odt") || (suffix == "rtf"); m_filename = QFileInfo(filename).canonicalFilePath(); updateState(); } if (m_filename.isEmpty()) { findIndex(); } // Set up scroll bar m_scrollbar = m_text->verticalScrollBar(); m_scrollbar->setAttribute(Qt::WA_NoMousePropagation); m_scrollbar->setPalette(QApplication::palette()); m_scrollbar->setAutoFillBackground(true); m_scrollbar->setMouseTracking(true); m_scrollbar->installEventFilter(this); setScrollBarVisible(false); connect(m_scrollbar, SIGNAL(actionTriggered(int)), this, SLOT(scrollBarActionTriggered(int))); connect(m_scrollbar, SIGNAL(rangeChanged(int,int)), this, SLOT(scrollBarRangeChanged(int,int))); // Lay out window m_layout = new QGridLayout(this); m_layout->setSpacing(0); m_layout->setMargin(0); m_layout->addWidget(m_text, 0, 1); m_layout->addWidget(m_scrollbar, 0, 2, Qt::AlignRight); // Load settings Preferences preferences; loadPreferences(preferences); // Make it read-only until content is loaded m_text->setReadOnly(true); DocumentWatcher::instance()->addWatch(this); } //----------------------------------------------------------------------------- Document::~Document() { m_scene_model->removeAllScenes(); DocumentWatcher::instance()->removeWatch(this); clearIndex(); emit removeCacheFile(g_cache_path + m_cache_filename); } //----------------------------------------------------------------------------- bool Document::isReadOnly() const { return m_text->isReadOnly(); } //----------------------------------------------------------------------------- void Document::cache() { if (m_cache_outdated) { m_cache_outdated = false; DocumentWriter* writer = new DocumentWriter; writer->setFileName(g_cache_path + m_cache_filename); writer->setType(!m_filename.isEmpty() ? m_filename.section(QLatin1Char('.'), -1) : "odt"); writer->setCodePage(m_codepage); writer->setDocument(m_text->document()->clone()); emit cacheFile(writer); } } //----------------------------------------------------------------------------- bool Document::save() { // Save progress QSettings settings; settings.setValue("Progress/Words", m_current_wordcount); settings.setValue("Progress/Time", m_current_time); if (m_filename.isEmpty() || !processFileName(m_filename)) { return saveAs(); } // Write file to disk DocumentWatcher::instance()->pauseWatch(this); DocumentWriter writer; writer.setFileName(m_filename); writer.setType(m_filename.section(QLatin1Char('.'), -1)); writer.setCodePage(m_codepage); writer.setDocument(m_text->document()); bool saved = writer.write(); m_codepage = writer.codePage(); if (saved) { m_cache_outdated = false; QFile::remove(g_cache_path + m_cache_filename); QFile::copy(m_filename, g_cache_path + m_cache_filename); } else { cache(); } DocumentWatcher::instance()->resumeWatch(this); if (!saved) { QMessageBox::critical(window(), tr("Sorry"), tr("Unable to save '%1'.").arg(QDir::toNativeSeparators(m_filename))); return false; } m_saved_wordcount = m_document_stats.wordCount(); m_text->document()->setModified(false); return true; } //----------------------------------------------------------------------------- bool Document::saveAs() { // Request new filename QString filename = getSaveFileName(tr("Save File As")); if (filename.isEmpty()) { return false; } if (m_filename == filename) { return save(); } // Save file as new name if (QFile::exists(filename) && (DocumentWatcher::instance()->isWatching(filename) || !QFile::remove(filename))) { QMessageBox::critical(window(), tr("Sorry"), tr("Unable to overwrite '%1'.").arg(QDir::toNativeSeparators(filename))); return false; } qSwap(m_filename, filename); if (!save()) { m_filename = filename; return false; } clearIndex(); updateSaveLocation(); m_text->setReadOnly(false); m_text->document()->setModified(false); emit changedName(); return true; } //----------------------------------------------------------------------------- bool Document::rename() { // Request new filename if (m_filename.isEmpty()) { return false; } QString filename = getSaveFileName(tr("Rename File")); if (filename.isEmpty()) { return false; } // Rename file if (QFile::exists(filename) && (DocumentWatcher::instance()->isWatching(filename) || !QFile::remove(filename))) { QMessageBox::critical(window(), tr("Sorry"), tr("Unable to overwrite '%1'.").arg(QDir::toNativeSeparators(filename))); return false; } DocumentWatcher::instance()->pauseWatch(this); if (!QFile::rename(m_filename, filename)) { DocumentWatcher::instance()->resumeWatch(this); QMessageBox::critical(window(), tr("Sorry"), tr("Unable to rename '%1'.").arg(QDir::toNativeSeparators(m_filename))); return false; } DocumentWatcher::instance()->resumeWatch(this); m_filename = filename; save(); updateSaveLocation(); m_text->document()->setModified(false); emit changedName(); return true; } //----------------------------------------------------------------------------- void Document::reload(bool prompt) { // Abort if there is no file to reload if (m_index) { return; } // Confirm that they do want to reload if (prompt) { QMessageBox mbox(window()); mbox.setIcon(QMessageBox::Question); mbox.setWindowTitle(tr("Reload File")); mbox.setText(tr("Reload the file %1 from disk?").arg("" + QFileInfo(m_filename).fileName() + "")); mbox.setInformativeText(tr("All unsaved changes will be lost.")); QPushButton* reload_button = mbox.addButton(tr("Reload"), QMessageBox::AcceptRole); if (reload_button->style()->styleHint(QStyle::SH_DialogButtonBox_ButtonsHaveIcons)) { reload_button->setIcon(reload_button->style()->standardIcon(QStyle::SP_BrowserReload)); } mbox.addButton(QMessageBox::Cancel); mbox.setDefaultButton(reload_button); if (mbox.exec() == QMessageBox::Cancel) { return; } } // Reload file emit loadStarted(Window::tr("Opening %1").arg(QDir::toNativeSeparators(m_filename))); m_text->setReadOnly(true); disconnect(m_text->document(), SIGNAL(contentsChange(int,int,int)), this, SLOT(updateWordCount(int,int,int))); disconnect(m_text->document(), SIGNAL(undoCommandAdded()), this, SLOT(undoCommandAdded())); m_current_wordcount -= wordCountDelta(); emit changed(); loadFile(m_filename, -1); emit loadFinished(); } //----------------------------------------------------------------------------- void Document::close() { clearIndex(); deleteLater(); } //----------------------------------------------------------------------------- void Document::checkSpelling() { SpellChecker::checkDocument(m_text, m_dictionary); } //----------------------------------------------------------------------------- void Document::print() { QPrinter printer; printer.setPageSize(QPrinter::Letter); printer.setPageMargins(0.5, 0.5, 0.5, 0.5, QPrinter::Inch); QPrintDialog dialog(&printer, this); if (dialog.exec() == QDialog::Accepted) { bool enabled = m_highlighter->enabled(); m_highlighter->setEnabled(false); m_text->print(&printer); if (enabled) { m_highlighter->setEnabled(true); } } } //----------------------------------------------------------------------------- bool Document::loadFile(const QString& filename, int position) { bool loaded = true; if (filename.isEmpty()) { m_text->setReadOnly(false); scrollBarRangeChanged(m_scrollbar->minimum(), m_scrollbar->maximum()); calculateWordCount(); connect(m_text->document(), SIGNAL(contentsChange(int,int,int)), this, SLOT(updateWordCount(int,int,int))); connect(m_text->document(), SIGNAL(undoCommandAdded()), this, SLOT(undoCommandAdded())); return loaded; } bool enabled = m_highlighter->enabled(); m_highlighter->setEnabled(false); // Cache contents QFile::copy(filename, g_cache_path + m_cache_filename); // Determine file type from contents QString type; QFile file(filename); if (file.open(QIODevice::ReadOnly)) { if (file.peek(2) == "PK") { file.seek(30); if (file.read(47) == "mimetypeapplication/vnd.oasis.opendocument.text") { type = "odt"; } file.reset(); } else if (file.peek(5) == "{\\rtf") { type = "rtf"; } } // Load text area contents QTextDocument* document = m_text->document(); m_text->blockSignals(true); document->blockSignals(true); document->setUndoRedoEnabled(false); document->clear(); m_text->textCursor().mergeBlockFormat(m_block_format); if (file.isOpen()) { QString error; if (type == "odt") { file.close(); ODT::Reader reader; reader.read(filename, document); if (reader.hasError()) { error = reader.errorString(); loaded = false; position = -1; } } else if (type == "rtf") { RTF::Reader reader; QTextCursor cursor(document); reader.read(&file, cursor); m_codepage = reader.codePage(); file.close(); if (reader.hasError()) { error = reader.errorString(); loaded = false; position = -1; } } else { file.setTextModeEnabled(true); QTextStream stream(&file); stream.setCodec("UTF-8"); stream.setAutoDetectUnicode(true); QTextCursor cursor(document); cursor.beginEditBlock(); while (!stream.atEnd()) { cursor.insertText(stream.read(8192)); QApplication::processEvents(); } cursor.endEditBlock(); file.close(); } if (!loaded) { emit alert(new Alert(Alert::Warning, error, QStringList(filename), false)); findIndex(); } } document->setUndoRedoEnabled(true); document->setModified(false); document->blockSignals(false); m_text->blockSignals(false); m_text->setReadOnly(!m_filename.isEmpty() ? !QFileInfo(m_filename).isWritable() : false); // Restore cursor position scrollBarRangeChanged(m_scrollbar->minimum(), m_scrollbar->maximum()); QTextCursor cursor = m_text->textCursor(); if (position != -1) { cursor.setPosition(position); } else { cursor.movePosition(QTextCursor::End); } m_text->setTextCursor(cursor); centerCursor(true); // Update details m_cached_stats.clear(); calculateWordCount(); m_saved_wordcount = m_document_stats.wordCount(); if (enabled) { m_highlighter->setEnabled(true); } connect(m_text->document(), SIGNAL(contentsChange(int,int,int)), this, SLOT(updateWordCount(int,int,int))); connect(m_text->document(), SIGNAL(undoCommandAdded()), this, SLOT(undoCommandAdded())); if (m_focus_mode) { focusText(); } if (loaded && !m_filename.isEmpty()) { DocumentWatcher::instance()->updateWatch(this); } return loaded; } //----------------------------------------------------------------------------- void Document::loadTheme(const Theme& theme) { m_text->document()->blockSignals(true); // Update colors QString contrast = (qGray(theme.textColor().rgb()) > 127) ? "black" : "white"; QColor color = theme.foregroundColor(); color.setAlpha(theme.foregroundOpacity() * 2.55f); m_text_color = theme.textColor(); m_text_color.setAlpha(255); m_text->setStyleSheet( QString("QTextEdit { background:rgba(%1,%2,%3,%4); color:rgba(%5,%6,%7,%8); selection-background-color:%9; selection-color:%10; padding:%11px; border-radius:%12px; }") .arg(color.red()) .arg(color.green()) .arg(color.blue()) .arg(color.alpha()) .arg(m_text_color.red()) .arg(m_text_color.green()) .arg(m_text_color.blue()) .arg(m_focus_mode ? "128" : "255") .arg(theme.textColor().name()) .arg(contrast) .arg(theme.foregroundPadding()) .arg(theme.foregroundRounding()) ); m_highlighter->setMisspelledColor(theme.misspelledColor()); // Update spacings m_block_format = QTextBlockFormat(); #if (QT_VERSION >= QT_VERSION_CHECK(4,8,0)) m_block_format.setLineHeight(theme.lineSpacing(), (theme.lineSpacing() == 100) ? QTextBlockFormat::SingleHeight : QTextBlockFormat::ProportionalHeight); #endif m_block_format.setTextIndent(48 * theme.indentFirstLine()); m_block_format.setTopMargin(theme.spacingAboveParagraph()); m_block_format.setBottomMargin(theme.spacingBelowParagraph()); if (m_spacings_loaded) { for (int i = 0, count = m_text->document()->allFormats().count(); i < count; ++i) { QTextFormat& f = m_text->document()->allFormats()[i]; if (f.isBlockFormat()) { f.merge(m_block_format); } } } else { m_text->setUndoRedoEnabled(false); m_text->textCursor().mergeBlockFormat(m_block_format); m_text->setUndoRedoEnabled(true); m_text->document()->setModified(false); m_spacings_loaded = true; } // Update text QFont font = theme.textFont(); font.setStyleStrategy(m_text->font().styleStrategy()); if (m_text->font() != font) { m_text->setFont(font); } else { // Force relaying out document so that spacings are updated QEvent e(QEvent::FontChange); QApplication::sendEvent(m_text, &e); } m_text->setCursorWidth(!m_block_cursor ? 1 : m_text->fontMetrics().averageCharWidth()); int margin = theme.foregroundMargin(); m_layout->setColumnMinimumWidth(0, margin); m_layout->setColumnMinimumWidth(2, margin); if (theme.foregroundPosition() < 3) { m_text->setFixedWidth(theme.foregroundWidth()); switch (theme.foregroundPosition()) { case 0: m_layout->setColumnStretch(0, 0); m_layout->setColumnStretch(2, 1); break; case 2: m_layout->setColumnStretch(0, 1); m_layout->setColumnStretch(2, 0); break; case 1: default: m_layout->setColumnStretch(0, 1); m_layout->setColumnStretch(2, 1); break; }; } else { m_text->setMinimumWidth(theme.foregroundWidth()); m_text->setMaximumWidth(maximumSize().height()); m_layout->setColumnStretch(0, 0); m_layout->setColumnStretch(2, 0); } if (m_focus_mode) { focusText(); } centerCursor(true); m_text->document()->blockSignals(false); } //----------------------------------------------------------------------------- void Document::loadPreferences(const Preferences& preferences) { m_always_center = preferences.alwaysCenter(); m_page_type = preferences.pageType(); switch (m_page_type) { case 1: m_page_amount = preferences.pageParagraphs(); break; case 2: m_page_amount = preferences.pageWords(); break; default: m_page_amount = preferences.pageCharacters(); break; } m_accurate_wordcount = preferences.accurateWordcount(); if (m_cached_block_count != -1) { calculateWordCount(); } m_block_cursor = preferences.blockCursor(); m_text->setCursorWidth(!m_block_cursor ? 1 : m_text->fontMetrics().averageCharWidth()); QFont font = m_text->font(); font.setStyleStrategy(preferences.smoothFonts() ? QFont::PreferAntialias : QFont::NoAntialias); m_text->setFont(font); m_highlighter->setEnabled(!isReadOnly() ? preferences.highlightMisspelled() : false); } //----------------------------------------------------------------------------- void Document::setFocusMode(int focus_mode) { m_focus_mode = focus_mode; QString style_sheet = m_text->styleSheet(); int end = style_sheet.lastIndexOf(QChar(')')); int start = style_sheet.lastIndexOf(QChar(','), end); style_sheet.replace(start + 1, end - start - 1, m_focus_mode ? "128" : "255"); m_text->setStyleSheet(style_sheet); if (m_focus_mode) { connect(m_text, SIGNAL(cursorPositionChanged()), this, SLOT(focusText())); connect(m_text, SIGNAL(selectionChanged()), this, SLOT(focusText())); connect(m_text, SIGNAL(textChanged()), this, SLOT(focusText())); focusText(); } else { disconnect(m_text, SIGNAL(cursorPositionChanged()), this, SLOT(focusText())); disconnect(m_text, SIGNAL(selectionChanged()), this, SLOT(focusText())); disconnect(m_text, SIGNAL(textChanged()), this, SLOT(focusText())); m_text->setExtraSelections(QList()); } } //----------------------------------------------------------------------------- void Document::setRichText(bool rich_text) { if (m_rich_text == rich_text) { return; } updateState(); // Set file type m_rich_text = rich_text; // Always remove formatting to have something to undo QTextCursor cursor(m_text->document()); cursor.beginEditBlock(); cursor.movePosition(QTextCursor::End, QTextCursor::KeepAnchor); cursor.setBlockFormat(m_block_format); cursor.setCharFormat(QTextCharFormat()); cursor.endEditBlock(); updateState(); } //----------------------------------------------------------------------------- void Document::setScrollBarVisible(bool visible) { if (!visible) { m_scrollbar->setMask(QRect(-1,-1,1,1)); update(); } else { m_scrollbar->clearMask(); } } //----------------------------------------------------------------------------- void Document::setSceneList(SceneList* scene_list) { m_scene_list = scene_list; } //----------------------------------------------------------------------------- bool Document::eventFilter(QObject* watched, QEvent* event) { if (event->type() == QEvent::MouseMove) { mouseMoveEvent(static_cast(event)); } else if (event->type() == QEvent::KeyPress && watched == m_text) { int msecs = m_time.restart(); if (msecs < 30000) { m_current_time += msecs; } if (SmartQuotes::isEnabled() && SmartQuotes::insert(m_text, static_cast(event))) { return true; } } else if (event->type() == QEvent::Drop) { static_cast(window())->addDocuments(static_cast(event)); if (event->isAccepted()) { return true; } } else if (event->type() == QEvent::MouseButtonPress) { m_scene_list->hideScenes(); } return QWidget::eventFilter(watched, event); } //----------------------------------------------------------------------------- void Document::mouseMoveEvent(QMouseEvent* event) { m_text->viewport()->setCursor(Qt::IBeamCursor); unsetCursor(); m_hide_timer->start(); const QPoint& point = mapFromGlobal(event->globalPos()); if (rect().contains(point)) { emit headerVisible(false); emit footerVisible(false); } if (m_scene_list && !m_scene_list->scenesVisible()) { int sidebar_region = qMin(m_scene_list->width(), m_layout->cellRect(0,0).width()); emit scenesVisible(QRect(0,0, sidebar_region, height()).contains(point)); } setScrollBarVisible(m_scrollbar->rect().contains(m_scrollbar->mapFromGlobal(event->globalPos()))); } //----------------------------------------------------------------------------- QString Document::cachePath() { return g_cache_path; } //----------------------------------------------------------------------------- void Document::setCachePath(const QString& path) { g_cache_path = path; if (!g_cache_path.endsWith(QLatin1Char('/'))) { g_cache_path += QLatin1Char('/'); } } //----------------------------------------------------------------------------- void Document::centerCursor(bool force) { QRect cursor = m_text->cursorRect(); QRect viewport = m_text->viewport()->rect(); if (force || m_always_center || (cursor.bottom() >= viewport.bottom()) || (cursor.top() <= viewport.top())) { QPoint offset = viewport.center() - cursor.center(); QScrollBar* scrollbar = m_text->verticalScrollBar(); scrollbar->setValue(scrollbar->value() - offset.y()); } } //----------------------------------------------------------------------------- void Document::mousePressEvent(QMouseEvent* event) { m_scene_list->hideScenes(); QWidget::mousePressEvent(event); } //----------------------------------------------------------------------------- void Document::resizeEvent(QResizeEvent* event) { centerCursor(true); QWidget::resizeEvent(event); } //----------------------------------------------------------------------------- void Document::wheelEvent(QWheelEvent* event) { if (event->orientation() == Qt::Vertical) { QApplication::sendEvent(m_scrollbar, event); } else { QApplication::sendEvent(m_text->horizontalScrollBar(), event); } event->ignore(); QWidget::wheelEvent(event); } //----------------------------------------------------------------------------- void Document::cursorPositionChanged() { emit indentChanged(m_text->textCursor().blockFormat().indent()); emit alignmentChanged(); if (QApplication::mouseButtons() == Qt::NoButton) { centerCursor(); } } //----------------------------------------------------------------------------- void Document::focusText() { QTextEdit::ExtraSelection selection; selection.format.setForeground(m_text_color); selection.cursor = m_text->textCursor(); switch (m_focus_mode) { case 1: // Current line selection.cursor.movePosition(QTextCursor::StartOfLine); selection.cursor.movePosition(QTextCursor::EndOfLine, QTextCursor::KeepAnchor); break; case 2: // Current line and previous two lines selection.cursor.movePosition(QTextCursor::StartOfLine); selection.cursor.movePosition(QTextCursor::Up); selection.cursor.movePosition(QTextCursor::Down, QTextCursor::KeepAnchor, 2); selection.cursor.movePosition(QTextCursor::EndOfLine, QTextCursor::KeepAnchor); break; case 3: // Current paragraph selection.cursor.movePosition(QTextCursor::EndOfBlock); selection.cursor.movePosition(QTextCursor::StartOfBlock, QTextCursor::KeepAnchor); break; default: break; } QList selections; selections.append(selection); m_text->setExtraSelections(selections); } //----------------------------------------------------------------------------- void Document::hideMouse() { QWidget* widget = QApplication::widgetAt(QCursor::pos()); if (m_text->viewport()->hasFocus() && (widget == m_text->viewport() || widget == this)) { m_text->viewport()->setCursor(Qt::BlankCursor); setCursor(Qt::BlankCursor); } } //----------------------------------------------------------------------------- void Document::scrollBarActionTriggered(int action) { if (action == QAbstractSlider::SliderToMinimum) { m_text->moveCursor(QTextCursor::Start); } else if (action == QAbstractSlider::SliderToMaximum) { m_text->moveCursor(QTextCursor::End); } } //----------------------------------------------------------------------------- void Document::scrollBarRangeChanged(int, int max) { m_scrollbar->blockSignals(true); m_scrollbar->setMaximum(max + m_text->viewport()->height()); m_scrollbar->blockSignals(false); } //----------------------------------------------------------------------------- void Document::dictionaryChanged() { for (QTextBlock i = m_text->document()->begin(); i != m_text->document()->end(); i = i.next()) { if (i.userData()) { static_cast(i.userData())->update(i.text()); } } m_highlighter->updateSpelling(); } //----------------------------------------------------------------------------- void Document::selectionChanged() { m_selected_stats.clear(); if (m_text->textCursor().hasSelection()) { BlockStats temp(0); QStringList selection = m_text->textCursor().selectedText().split(QChar::ParagraphSeparator, QString::SkipEmptyParts); foreach (const QString& string, selection) { temp.update(string); m_selected_stats.append(&temp); } if (!m_accurate_wordcount) { m_selected_stats.calculateEstimatedWordCount(); } m_selected_stats.calculatePageCount(m_page_type, m_page_amount); m_stats = &m_selected_stats; } else { m_stats = &m_document_stats; } emit changed(); } //----------------------------------------------------------------------------- void Document::undoCommandAdded() { if (!m_old_states.isEmpty()) { int steps = m_text->document()->availableUndoSteps(); QMutableHashIterator > i(m_old_states); while (i.hasNext()) { i.next(); if (i.key() >= steps) { i.remove(); } } } } //----------------------------------------------------------------------------- void Document::updateWordCount(int position, int removed, int added) { m_cache_outdated = true; // Change filename and rich text status if necessary because of undo/redo int steps = m_text->document()->availableUndoSteps(); if (m_old_states.contains(steps)) { const QPair& state = m_old_states[steps]; if (m_filename != state.first) { m_filename = state.first; if (m_filename.isEmpty()) { findIndex(); } else { clearIndex(); } DocumentWatcher::instance()->updateWatch(this); emit changedName(); } if (m_rich_text != state.second) { m_rich_text = state.second; } } // Clear cached stats if amount of blocks or current block has changed int block_count = m_text->document()->blockCount(); int current_block = m_text->textCursor().blockNumber(); if (m_cached_block_count != block_count || m_cached_current_block != current_block) { m_cached_stats.clear(); } // Update stats of blocks that were modified QTextBlock begin = m_text->document()->findBlock(position - removed); if (!begin.isValid()) { begin = m_text->document()->begin(); } QTextBlock end = m_text->document()->findBlock(position + added); if (end.isValid()) { end = end.next(); } bool update_spelling = false; BlockStats* stats = 0; for (QTextBlock i = begin; i != end; i = i.next()) { stats = static_cast(i.userData()); if (!stats) { stats = new BlockStats(m_scene_model); i.setUserData(stats); m_cached_stats.clear(); update_spelling = true; } stats->update(i.text()); stats->recheckSpelling(); m_scene_model->updateScene(stats, i); } if (update_spelling) { m_highlighter->updateSpelling(); } // Update document stats and daily word count int words = m_document_stats.wordCount(); calculateWordCount(); m_current_wordcount += (m_document_stats.wordCount() - words); emit changed(); } //----------------------------------------------------------------------------- void Document::calculateWordCount() { // Cache stats of the blocks other than the current block if (!m_cached_stats.isValid()) { m_cached_block_count = m_text->document()->blockCount(); m_cached_current_block = m_text->textCursor().blockNumber(); BlockStats* stats = 0; for (QTextBlock i = m_text->document()->begin(); i != m_text->document()->end(); i = i.next()) { if (!i.userData()) { stats = new BlockStats(m_scene_model); i.setUserData(stats); stats->update(i.text()); m_scene_model->updateScene(stats, i); } if (i.blockNumber() != m_cached_current_block) { m_cached_stats.append(static_cast(i.userData())); } } } // Determine document stats by adding cached stats to current block stats m_document_stats = m_cached_stats; QTextBlockUserData* data = m_text->document()->findBlockByNumber(m_cached_current_block).userData(); if (data) { m_document_stats.append(static_cast(data)); } if (!m_accurate_wordcount) { m_document_stats.calculateEstimatedWordCount(); } m_document_stats.calculatePageCount(m_page_type, m_page_amount); } //----------------------------------------------------------------------------- void Document::clearIndex() { if (m_index) { g_untitled_indexes.removeAll(m_index); m_index = 0; } } //----------------------------------------------------------------------------- void Document::findIndex() { m_index = g_untitled_indexes.last() + 1; g_untitled_indexes.append(m_index); } //----------------------------------------------------------------------------- QString Document::getSaveFileName(const QString& title) { // Determine filter QString filter; QString default_filter; { QString opendocumenttext = tr("OpenDocument Text (*.odt)"); QString richtext = tr("Rich Text (*.rtf)"); QString plaintext = tr("Plain Text (*.txt)"); QString all = tr("All Files (*)"); default_filter = opendocumenttext + ";;" + richtext + ";;" + plaintext + ";;" + all; QString type = m_filename.section(QLatin1Char('.'), -1).toLower(); if (type == "rtf") { filter = richtext + ";;" + opendocumenttext + ";;" + plaintext + ";;" + all; } else if ((type == "odt") || m_rich_text || m_filename.isEmpty()) { filter = default_filter; } else if (type == "txt") { filter = plaintext + ";;" + opendocumenttext + ";;" + richtext + ";;" + all; } else { filter = all + ";;" + opendocumenttext + ";;" + richtext + ";;" + plaintext; } } // Prompt for filename QString filename; while (filename.isEmpty()) { QString selected; filename = QFileDialog::getSaveFileName(window(), title, m_filename, filter, &selected); if (filename.isEmpty()) { break; } // Append file extension QString type; QRegExp exp("\\*(\\.\\w+)"); int index = exp.indexIn(selected); if (index != -1) { type = exp.cap(1); } if (!filename.endsWith(type)) { filename.append(type); } // Handle rich text in plain text file if (!processFileName(filename)) { filter = default_filter; filename.clear(); } } return filename; } //----------------------------------------------------------------------------- bool Document::processFileName(const QString& filename) { // Check if rich text status is the same QString type = filename.section(QLatin1Char('.'), -1).toLower(); bool rich_text = (type == "odt") || (type == "rtf"); if (m_rich_text == rich_text) { return true; } // Confirm discarding rich text in plain text files if (!rich_text && (QMessageBox::question(window(), tr("Question"), tr("Saving as plain text will discard all formatting. Discard formatting?"), QMessageBox::Yes | QMessageBox::No, QMessageBox::No) == QMessageBox::No)) { return false; } // Update rich text status setRichText(rich_text); return true; } //----------------------------------------------------------------------------- void Document::updateSaveLocation() { QString path = QFileInfo(m_filename).canonicalPath(); QSettings().setValue("Save/Location", path); QDir::setCurrent(path); updateState(); updateSaveName(); } //----------------------------------------------------------------------------- void Document::updateSaveName() { // List undo states if (m_old_states.isEmpty()) { return; } QList keys = m_old_states.keys(); qSort(keys); int count = keys.count(); // Find undo states nearest to current int steps = m_text->document()->availableUndoSteps(); int nearest_smaller = 0; int nearest_larger = count - 1; for (int i = 0; i < count; ++i) { if (keys.at(i) <= steps) { nearest_smaller = i; } if (keys.at(i) >= steps) { nearest_larger = i; break; } } // Replace filename of states until the rich text status differs for (int i = nearest_smaller; i > -1; --i) { QPair& state = m_old_states[keys.at(i)]; if (state.second == m_rich_text) { state.first = m_filename; } else { break; } } for (int i = nearest_larger; i < count; ++i) { QPair& state = m_old_states[keys.at(i)]; if (state.second == m_rich_text) { state.first = m_filename; } else { break; } } } //----------------------------------------------------------------------------- void Document::updateState() { m_old_states[m_text->document()->availableUndoSteps()] = qMakePair(m_filename, m_rich_text); } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/document.h000066400000000000000000000124641231434177300166670ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010, 2011, 2012, 2014 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef DOCUMENT_H #define DOCUMENT_H #include "dictionary.h" #include "stats.h" class Alert; class DocumentWriter; class Highlighter; class Preferences; class SceneList; class SceneModel; class Theme; #include #include #include #include class QGridLayout; class QScrollBar; class QTextEdit; class QTimer; class Document : public QWidget { Q_OBJECT public: Document(const QString& filename, int& current_wordcount, int& current_time, QWidget* parent = 0); ~Document(); QString cacheFilename() const; QString filename() const; int untitledIndex() const; bool isReadOnly() const; bool isRichText() const; int characterCount() const; int characterAndSpaceCount() const; int pageCount() const; int paragraphCount() const; int wordCount() const; int wordCountDelta() const; SceneModel* sceneModel() const; QTextEdit* text() const; void cache(); bool save(); bool saveAs(); bool rename(); void reload(bool prompt = true); void close(); void checkSpelling(); void print(); bool loadFile(const QString& filename, int position); void loadTheme(const Theme& theme); void loadPreferences(const Preferences& preferences); void setFocusMode(int focus_mode); void setRichText(bool rich_text); void setScrollBarVisible(bool visible); void setSceneList(SceneList* scene_list); virtual bool eventFilter(QObject* watched, QEvent* event); virtual void mouseMoveEvent(QMouseEvent* event); static QString cachePath(); static void setCachePath(const QString& path); public slots: void centerCursor(bool force = false); signals: void alert(Alert* alert); void cacheFile(DocumentWriter* file); void removeCacheFile(const QString& file); void changed(); void changedName(); void loadStarted(const QString& path); void loadFinished(); void footerVisible(bool visible); void headerVisible(bool visible); void scenesVisible(bool visible); void indentChanged(bool indented); void alignmentChanged(); protected: virtual void mousePressEvent(QMouseEvent* event); virtual void resizeEvent(QResizeEvent* event); virtual void wheelEvent(QWheelEvent* event); private slots: void cursorPositionChanged(); void focusText(); void hideMouse(); void scrollBarActionTriggered(int action); void scrollBarRangeChanged(int min, int max); void dictionaryChanged(); void selectionChanged(); void undoCommandAdded(); void updateWordCount(int position, int removed, int added); private: void calculateWordCount(); void clearIndex(); void findIndex(); QString getSaveFileName(const QString& title); bool processFileName(const QString& filename); void updateSaveLocation(); void updateSaveName(); void updateState(); private: QString m_filename; QString m_cache_filename; bool m_cache_outdated; QByteArray m_codepage; QHash > m_old_states; int m_index; bool m_always_center; bool m_block_cursor; bool m_rich_text; bool m_spacings_loaded; int m_focus_mode; QTextBlockFormat m_block_format; QTimer* m_hide_timer; QGridLayout* m_layout; QTextEdit* m_text; QScrollBar* m_scrollbar; SceneList* m_scene_list; SceneModel* m_scene_model; Dictionary m_dictionary; Highlighter* m_highlighter; QColor m_text_color; Stats* m_stats; Stats m_document_stats; Stats m_selected_stats; Stats m_cached_stats; int m_cached_block_count; int m_cached_current_block; int m_saved_wordcount; int m_page_type; float m_page_amount; bool m_accurate_wordcount; // Daily progress int& m_current_wordcount; int m_wordcount_goal; QTime m_time; int& m_current_time; int m_time_goal; }; inline QString Document::cacheFilename() const { return m_cache_filename; } inline QString Document::filename() const { return m_filename; } inline int Document::untitledIndex() const { return m_index; } inline bool Document::isRichText() const { return m_rich_text; } inline int Document::characterCount() const { return m_stats->characterCount(); } inline int Document::characterAndSpaceCount() const { return m_stats->characterAndSpaceCount(); } inline int Document::pageCount() const { return m_stats->pageCount(); } inline int Document::paragraphCount() const { return m_stats->paragraphCount(); } inline int Document::wordCount() const { return m_stats->wordCount(); } inline int Document::wordCountDelta() const { return m_document_stats.wordCount() - m_saved_wordcount; } inline SceneModel* Document::sceneModel() const { return m_scene_model; } inline QTextEdit* Document::text() const { return m_text; } #endif focuswriter-1.4.5/src/document_cache.cpp000066400000000000000000000034561231434177300203460ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2012 Graeme Gott * * 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 . * ***********************************************************************/ #include "document_cache.h" #include "document.h" #include "document_writer.h" #include #include //----------------------------------------------------------------------------- DocumentCache::DocumentCache(QObject* parent) : QObject(parent) { } //----------------------------------------------------------------------------- DocumentCache::~DocumentCache() { // Empty cache QDir dir(Document::cachePath()); QStringList files = dir.entryList(QDir::Files); foreach (const QString& file, files) { dir.remove(file); } } //----------------------------------------------------------------------------- void DocumentCache::cacheFile(DocumentWriter* document) { document->write(); delete document; } //----------------------------------------------------------------------------- void DocumentCache::removeCacheFile(const QString& document) { QFile::remove(document); } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/document_cache.h000066400000000000000000000022401231434177300200010ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2012 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef DOCUMENT_CACHE_H #define DOCUMENT_CACHE_H class DocumentWriter; #include class DocumentCache : public QObject { Q_OBJECT public: DocumentCache(QObject* parent = 0); ~DocumentCache(); public slots: void cacheFile(DocumentWriter* document); void removeCacheFile(const QString& document); }; #endif focuswriter-1.4.5/src/document_watcher.cpp000066400000000000000000000161511231434177300207340ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2012, 2013 Graeme Gott * * 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 . * ***********************************************************************/ #include "document_watcher.h" #include "document.h" #include #include #include #include #include #include #include #include #include //----------------------------------------------------------------------------- DocumentWatcher::Details::Details(const QFileInfo& info) : path(info.canonicalFilePath()), modified(info.lastModified()), permissions(info.permissions()), ignored(false) { } //----------------------------------------------------------------------------- DocumentWatcher* DocumentWatcher::m_instance = 0; //----------------------------------------------------------------------------- DocumentWatcher::DocumentWatcher(QObject* parent) : QObject(parent) { m_instance = this; m_watcher = new QFileSystemWatcher(this); connect(m_watcher, SIGNAL(fileChanged(QString)), this, SLOT(documentChanged(QString))); } //----------------------------------------------------------------------------- DocumentWatcher::~DocumentWatcher() { if (m_instance == this) { m_instance = 0; } } //----------------------------------------------------------------------------- bool DocumentWatcher::isWatching(const QString& path) const { return m_paths.contains(QFileInfo(path).canonicalFilePath()); } //----------------------------------------------------------------------------- void DocumentWatcher::addWatch(Document* document) { if (m_documents.contains(document)) { return; } // Store document details QString path = document->filename(); if (!path.isEmpty()) { m_documents.insert(document, QFileInfo(path)); const Details& details = m_documents[document]; // Add path m_paths.insert(details.path, document); m_watcher->addPath(details.path); } else { m_documents.insert(document, Details()); } } //----------------------------------------------------------------------------- void DocumentWatcher::pauseWatch(Document* document) { m_documents[document].ignored = true; } //----------------------------------------------------------------------------- void DocumentWatcher::removeWatch(Document* document) { // Remove document details Details details = m_documents.take(document); // Remove path if (!details.path.isEmpty()) { m_watcher->removePath(details.path); m_paths.remove(details.path); } } //----------------------------------------------------------------------------- void DocumentWatcher::resumeWatch(Document* document) { m_documents[document].ignored = false; updateWatch(document); } //----------------------------------------------------------------------------- void DocumentWatcher::updateWatch(Document* document) { // Update document details Details& details = m_documents[document]; QString oldpath = details.path; QString path = document->filename(); if (!path.isEmpty()) { QFileInfo info(path); details.path = info.canonicalFilePath(); details.modified = info.lastModified(); details.permissions = info.permissions(); } else { details.path = path; details.modified = QDateTime(); details.permissions = 0; } // Update path if (details.path != oldpath) { // Remove old path if (!oldpath.isEmpty()) { m_watcher->removePath(oldpath); m_paths.remove(oldpath); } // Add new path if (!path.isEmpty()) { m_paths.insert(details.path, document); m_watcher->addPath(details.path); } } } //----------------------------------------------------------------------------- void DocumentWatcher::processUpdates() { while (!m_updates.isEmpty()) { QString path = m_updates.takeFirst(); QFileInfo info(path); QString filename = "" + info.fileName() + ""; // Show document Document* document = m_paths.value(path); if (!document) { continue; } const Details& details = m_documents[document]; if (details.ignored) { continue; } emit showDocument(document); if (info.exists()) { // Ignore unchanged files if ((details.modified == info.lastModified()) && (details.permissions == info.permissions())) { continue; } // Process changed file QMessageBox mbox(document->window()); mbox.setIcon(QMessageBox::Warning); mbox.setWindowTitle(tr("File Changed")); mbox.setText(tr("The file %1 was changed by another program.").arg(filename)); mbox.setInformativeText(tr("Do you want to reload the file?")); QPushButton* reload_button = mbox.addButton(tr("Reload"), QMessageBox::AcceptRole); if (reload_button->style()->styleHint(QStyle::SH_DialogButtonBox_ButtonsHaveIcons)) { reload_button->setIcon(reload_button->style()->standardIcon(QStyle::SP_BrowserReload)); } QPushButton* ignore_button = mbox.addButton(QMessageBox::Cancel); ignore_button->setText(tr("Ignore")); mbox.setDefaultButton(reload_button); mbox.exec(); if (mbox.clickedButton() == reload_button) { document->reload(false); } } else { // Process deleted file QMessageBox mbox(document->window()); mbox.setIcon(QMessageBox::Warning); mbox.setWindowTitle(tr("File Deleted")); mbox.setText(tr("The file %1 was deleted by another program.").arg(filename)); mbox.setInformativeText(tr("Do you want to save or close the file?")); mbox.setStandardButtons(QMessageBox::Save | QMessageBox::Close | QMessageBox::Ignore); mbox.setDefaultButton(QMessageBox::Save); QAbstractButton* save_button = mbox.button(QMessageBox::Save); QAbstractButton* ignore_button = mbox.button(QMessageBox::Ignore); if (ignore_button->icon().isNull() && ignore_button->style()->styleHint(QStyle::SH_DialogButtonBox_ButtonsHaveIcons)) { ignore_button->setIcon(ignore_button->style()->standardIcon(QStyle::SP_MessageBoxWarning)); } mbox.exec(); if (mbox.clickedButton() == save_button) { document->save(); } else if (mbox.clickedButton() == ignore_button) { document->text()->document()->setModified(true); } else { emit closeDocument(document); } } } } //----------------------------------------------------------------------------- void DocumentWatcher::documentChanged(const QString& path) { if (m_updates.contains(path)) { return; } m_updates.append(path); if (parent() && (QApplication::activeWindow() == parent())) { QTimer::singleShot(200, this, SLOT(processUpdates())); } } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/document_watcher.h000066400000000000000000000040421231434177300203750ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2012, 2013 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef DOCUMENT_WATCHER_H #define DOCUMENT_WATCHER_H class Document; #include #include #include #include #include class QFileInfo; class QFileSystemWatcher; class DocumentWatcher : public QObject { Q_OBJECT struct Details { Details() : permissions(0), ignored(false) { } Details(const QFileInfo& info); QString path; QDateTime modified; QFile::Permissions permissions; bool ignored; }; public: DocumentWatcher(QObject* parent = 0); ~DocumentWatcher(); bool isWatching(const QString& path) const; void addWatch(Document* document); void pauseWatch(Document* document); void removeWatch(Document* document); void resumeWatch(Document* document); void updateWatch(Document* document); static DocumentWatcher* instance() { return m_instance; } public slots: void processUpdates(); signals: void closeDocument(Document* document); void showDocument(Document* document); private slots: void documentChanged(const QString& path); private: QFileSystemWatcher* m_watcher; QHash m_documents; QHash m_paths; QList m_updates; static DocumentWatcher* m_instance; }; #endif focuswriter-1.4.5/src/document_writer.cpp000066400000000000000000000053541231434177300206160ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2012 Graeme Gott * * 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 . * ***********************************************************************/ #include "document_writer.h" #include "rtf/writer.h" #include #include #include #include #if defined(Q_OS_MAC) #include #elif defined(Q_OS_UNIX) #include #elif defined(Q_OS_WIN) #include #include #endif //----------------------------------------------------------------------------- DocumentWriter::DocumentWriter() : m_type("odt"), m_document(0) { } //----------------------------------------------------------------------------- DocumentWriter::~DocumentWriter() { if (m_document && !m_document->parent()) { delete m_document; } } //----------------------------------------------------------------------------- bool DocumentWriter::write() { Q_ASSERT(m_document != 0); Q_ASSERT(!m_filename.isEmpty()); bool saved = false; QFile file(m_filename); if (m_type == "odt") { if (file.open(QFile::WriteOnly)) { QTextDocumentWriter writer(&file, "ODT"); saved = writer.write(m_document); } } else if (m_type == "rtf") { if (file.open(QFile::WriteOnly)) { RTF::Writer writer(m_codepage); if (m_codepage.isEmpty()) { m_codepage = writer.codePage(); } saved = writer.write(&file, m_document); } } else { if (file.open(QFile::WriteOnly | QFile::Text)) { QTextStream stream(&file); stream.setCodec("UTF-8"); if (m_type == "txt") { stream.setGenerateByteOrderMark(true); } stream << m_document->toPlainText(); saved = true; } } if (file.isOpen()) { #if defined(Q_OS_MAC) saved &= (fsync(file.handle()) == 0); #elif defined(Q_OS_UNIX) saved &= (fsync(file.handle()) == 0); #elif defined(Q_OS_WIN) saved &= (FlushFileBuffers(reinterpret_cast(_get_osfhandle(file.handle()))) != 0); #endif saved &= (file.error() == QFile::NoError); file.close(); } return saved; } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/document_writer.h000066400000000000000000000034121231434177300202540ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2012 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef DOCUMENT_WRITER_H #define DOCUMENT_WRITER_H #include class QTextDocument; class DocumentWriter { public: DocumentWriter(); ~DocumentWriter(); QByteArray codePage() const; void setCodePage(const QByteArray& codepage); void setDocument(QTextDocument* document); void setFileName(const QString& filename); void setType(const QString& type); bool write(); private: QString m_filename; QString m_type; QByteArray m_codepage; QTextDocument* m_document; }; inline QByteArray DocumentWriter::codePage() const { return m_codepage; } inline void DocumentWriter::setCodePage(const QByteArray& codepage) { m_codepage = codepage; } inline void DocumentWriter::setDocument(QTextDocument* document) { m_document = document; } inline void DocumentWriter::setFileName(const QString& filename) { m_filename = filename; } inline void DocumentWriter::setType(const QString& type) { m_type = type.toLower(); } #endif focuswriter-1.4.5/src/enchant/000077500000000000000000000000001231434177300163115ustar00rootroot00000000000000focuswriter-1.4.5/src/enchant/dictionary.cpp000066400000000000000000000105741231434177300211710ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010, 2011, 2012, 2013 Graeme Gott * * 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 . * ***********************************************************************/ #include "dictionary.h" #include "dictionary_data.h" #include "dictionary_manager.h" #include "../smart_quotes.h" #include //----------------------------------------------------------------------------- static bool f_ignore_numbers = false; static bool f_ignore_uppercase = true; //----------------------------------------------------------------------------- Dictionary::Dictionary(DictionaryData** data) : d((data && *data && (*data)->dictionary()) ? data : 0) { } //----------------------------------------------------------------------------- QStringRef Dictionary::check(const QString& string, int start_at) const { if (!d) { return QStringRef(); } int index = -1; int length = 0; int chars = 1; bool is_number = false; bool is_uppercase = f_ignore_uppercase; bool is_word = false; int count = string.length() - 1; for (int i = start_at; i <= count; ++i) { QChar c = string.at(i); switch (c.category()) { case QChar::Number_DecimalDigit: case QChar::Number_Letter: case QChar::Number_Other: is_number = f_ignore_numbers; goto Letter; case QChar::Letter_Lowercase: is_uppercase = false; Letter: case QChar::Letter_Uppercase: case QChar::Letter_Titlecase: case QChar::Letter_Modifier: case QChar::Letter_Other: case QChar::Mark_NonSpacing: case QChar::Mark_SpacingCombining: case QChar::Mark_Enclosing: if (index == -1) { index = i; chars = 1; length = 0; } length += chars; chars = 1; break; case QChar::Punctuation_FinalQuote: case QChar::Punctuation_Other: if (c == 0x0027 || c == 0x2019) { chars++; break; } default: if (index != -1) { is_word = true; } break; } if (is_word || (i == count && index != -1)) { if (!is_uppercase && !is_number) { QStringRef check(&string, index, length); QString word = check.toString(); word.replace(QChar(0x2019), QLatin1Char('\'')); QByteArray word_utf8 = word.toUtf8(); if (enchant_dict_check((*d)->dictionary(), word_utf8.constData(), word_utf8.length()) > 0) { return check; } } index = -1; is_word = false; is_number = false; is_uppercase = f_ignore_uppercase; } } return QStringRef(); } //----------------------------------------------------------------------------- QStringList Dictionary::suggestions(const QString& word) const { QStringList result; if (!d) { return result; } QString check = word; check.replace(QChar(0x2019), QLatin1Char('\'')); QByteArray word_utf8 = check.toUtf8(); size_t count; char** suggestions = enchant_dict_suggest((*d)->dictionary(), word_utf8.constData(), word_utf8.length(), &count); if (suggestions && count) { for (size_t i = 0; i < count; ++i) { QString word = QString::fromUtf8(suggestions[i]); if (SmartQuotes::isEnabled()) { SmartQuotes::replace(word); } result.append(word); } enchant_dict_free_string_list((*d)->dictionary(), suggestions); } return result; } //----------------------------------------------------------------------------- void Dictionary::addWord(const QString& word) { DictionaryManager::instance().add(word); } //----------------------------------------------------------------------------- void Dictionary::setIgnoreNumbers(bool ignore) { f_ignore_numbers = ignore; } //----------------------------------------------------------------------------- void Dictionary::setIgnoreUppercase(bool ignore) { f_ignore_uppercase = ignore; } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/enchant/dictionary.h000066400000000000000000000025131231434177300206300ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010, 2011, 2012, 2013 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef DICTIONARY_H #define DICTIONARY_H class DictionaryData; class QString; class QStringList; class QStringRef; class Dictionary { public: Dictionary(DictionaryData** data = 0); QStringRef check(const QString& string, int start_at) const; QStringList suggestions(const QString& word) const; void addWord(const QString& word); static void setIgnoreNumbers(bool ignore); static void setIgnoreUppercase(bool ignore); private: DictionaryData** d; }; #endif focuswriter-1.4.5/src/enchant/dictionary_data.cpp000066400000000000000000000045251231434177300221610ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010, 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #include "dictionary_data.h" #include #include #include #include //----------------------------------------------------------------------------- DictionaryData::DictionaryData(EnchantBroker* broker, const QString& language) : m_broker(broker), m_dictionary(0) { // Create dictionary m_dictionary = enchant_broker_request_dict(m_broker, language.toUtf8().constData()); if (!m_dictionary) { qWarning("enchant broker error: %s", enchant_broker_get_error(m_broker)); return; } } //----------------------------------------------------------------------------- DictionaryData::~DictionaryData() { if (m_dictionary) { enchant_broker_free_dict(m_broker, m_dictionary); } } //----------------------------------------------------------------------------- void DictionaryData::addToSession(const QStringList& words) { if (m_dictionary) { foreach (const QString& word, words) { QByteArray word_utf8 = word.toUtf8(); enchant_dict_add_to_session(m_dictionary, word_utf8.constData(), word_utf8.length()); } } } //----------------------------------------------------------------------------- void DictionaryData::removeFromSession(const QStringList& words) { if (m_dictionary) { foreach (const QString& word, words) { QByteArray word_utf8 = word.toUtf8(); enchant_dict_remove_from_session(m_dictionary, word_utf8.constData(), word_utf8.length()); } } } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/enchant/dictionary_data.h000066400000000000000000000026251231434177300216250ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010, 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef DICTIONARY_DATA_H #define DICTIONARY_DATA_H #include class QString; class QStringList; class QStringRef; class QTextCodec; class DictionaryData { public: DictionaryData(EnchantBroker* broker, const QString& language); ~DictionaryData(); EnchantDict* dictionary() const; void addToSession(const QStringList& words); void removeFromSession(const QStringList& words); private: EnchantBroker* m_broker; EnchantDict* m_dictionary; }; inline EnchantDict* DictionaryData::dictionary() const { return m_dictionary; } #endif focuswriter-1.4.5/src/enchant/dictionary_manager.cpp000066400000000000000000000133031231434177300226540ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010, 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #include "dictionary_manager.h" #include "dictionary.h" #include "dictionary_data.h" #include "../smart_quotes.h" #include #include #include //----------------------------------------------------------------------------- namespace { bool compareWords(const QString& s1, const QString& s2) { return s1.localeAwareCompare(s2) < 0; } QStringList f_languages; void foundLanguage(const char* const lang, const char* const provider_name, const char* const provider_desc , const char* const provider_file, void*) { Q_UNUSED(provider_name) Q_UNUSED(provider_desc) Q_UNUSED(provider_file) QString language = QString::fromUtf8(lang); if (!f_languages.contains(language)) { f_languages.append(language); } } } QString DictionaryManager::m_path; //----------------------------------------------------------------------------- DictionaryManager& DictionaryManager::instance() { static DictionaryManager manager; return manager; } //----------------------------------------------------------------------------- QStringList DictionaryManager::availableDictionaries() const { f_languages.clear(); enchant_broker_list_dicts(m_broker, &foundLanguage, 0); return f_languages; } //----------------------------------------------------------------------------- void DictionaryManager::add(const QString& word) { QStringList words = personal(); if (words.contains(SmartQuotes::revert(word))) { return; } words.append(word); setPersonal(words); } //----------------------------------------------------------------------------- Dictionary DictionaryManager::requestDictionary(const QString& language) { if (language.isEmpty()) { // Fetch shared default dictionary if (!m_default_dictionary) { m_default_dictionary = *requestDictionaryData(m_default_language); } return &m_default_dictionary; } else { // Fetch specific dictionary return requestDictionaryData(language); } } //----------------------------------------------------------------------------- void DictionaryManager::setDefaultLanguage(const QString& language) { if (language == m_default_language) { return; } m_default_language = language; m_default_dictionary = *requestDictionaryData(m_default_language); // Re-check documents emit changed(); } //----------------------------------------------------------------------------- void DictionaryManager::setPath(const QString& path) { m_path = path; } //----------------------------------------------------------------------------- void DictionaryManager::setPersonal(const QStringList& words) { // Check if new QStringList personal = SmartQuotes::revert(words); qSort(personal.begin(), personal.end(), compareWords); if (personal == m_personal) { return; } // Remove current personal dictionary foreach (DictionaryData* dictionary, m_dictionaries) { dictionary->removeFromSession(m_personal); } // Update and store personal dictionary m_personal = personal; QFile file(m_path + "/personal"); if (file.open(QIODevice::WriteOnly | QIODevice::Text)) { QTextStream stream(&file); stream.setCodec("UTF-8"); foreach (const QString& word, m_personal) { stream << word << "\n"; } } // Add personal dictionary foreach (DictionaryData* dictionary, m_dictionaries) { dictionary->addToSession(m_personal); } // Re-check documents emit changed(); } //----------------------------------------------------------------------------- DictionaryManager::DictionaryManager() { #ifdef Q_OS_WIN // Add path for locally installed Voikko dictionary qputenv("VOIKKO_DICTIONARY_PATH", QFile::encodeName(m_path)); #endif // Create dictionary broker m_broker = enchant_broker_init(); // Add path for locally installed Hunspell dictionaries enchant_broker_set_param(m_broker, "enchant.myspell.dictionary.path", QFile::encodeName(QDir::toNativeSeparators(m_path))); // Load personal dictionary QFile file(m_path + "/personal"); if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { QTextStream stream(&file); stream.setCodec("UTF-8"); while (!stream.atEnd()) { m_personal.append(stream.readLine()); } qSort(m_personal.begin(), m_personal.end(), compareWords); } } //----------------------------------------------------------------------------- DictionaryManager::~DictionaryManager() { foreach (DictionaryData* dictionary, m_dictionaries) { delete dictionary; } m_dictionaries.clear(); enchant_broker_free(m_broker); } //----------------------------------------------------------------------------- DictionaryData** DictionaryManager::requestDictionaryData(const QString& language) { if (!m_dictionaries.contains(language)) { DictionaryData* dictionary = new DictionaryData(m_broker, language); dictionary->addToSession(m_personal); m_dictionaries[language] = dictionary; } return &m_dictionaries[language]; } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/enchant/dictionary_manager.h000066400000000000000000000042751231434177300223310ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010, 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef DICTIONARY_MANAGER_H #define DICTIONARY_MANAGER_H class Dictionary; class DictionaryData; #include #include #include #include class DictionaryManager : public QObject { Q_OBJECT public: static DictionaryManager& instance(); QStringList availableDictionaries() const; QString defaultLanguage() const; QStringList personal() const; void add(const QString& word); Dictionary requestDictionary(const QString& language = QString()); void setDefaultLanguage(const QString& language); void setPersonal(const QStringList& words); static QString installedPath(); static QString path(); static void setPath(const QString& path); signals: void changed(); private: DictionaryManager(); ~DictionaryManager(); DictionaryData** requestDictionaryData(const QString& language); private: EnchantBroker* m_broker; QHash m_dictionaries; DictionaryData* m_default_dictionary; QString m_default_language; QStringList m_personal; static QString m_path; }; inline QString DictionaryManager::defaultLanguage() const { return m_default_language; } inline QString DictionaryManager::installedPath() { return m_path; } inline QString DictionaryManager::path() { return m_path; } inline QStringList DictionaryManager::personal() const { return m_personal; } #endif focuswriter-1.4.5/src/find_dialog.cpp000066400000000000000000000262761231434177300176510ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2008, 2009, 2010, 2011, 2012, 2014 Graeme Gott * * 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 . * ***********************************************************************/ #include "find_dialog.h" #include "document.h" #include "stack.h" #include #include #include #include #include #include #include #include #include #include #include #include //----------------------------------------------------------------------------- FindDialog::FindDialog(Stack* documents) : QDialog(documents->window(), Qt::WindowTitleHint | Qt::MSWindowsFixedSizeDialogHint | Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint), m_documents(documents) { // Create widgets QLabel* find_label = new QLabel(tr("Search for:"), this); m_find_string = new QLineEdit(this); m_replace_label = new QLabel(tr("Replace with:"), this); m_replace_string = new QLineEdit(this); connect(m_find_string, SIGNAL(textChanged(QString)), this, SLOT(findChanged(QString))); m_ignore_case = new QCheckBox(tr("Ignore case"), this); m_whole_words = new QCheckBox(tr("Whole words only"), this); m_regular_expressions = new QCheckBox(tr("Regular expressions"), this); connect(m_regular_expressions, SIGNAL(toggled(bool)), m_whole_words, SLOT(setDisabled(bool))); m_search_backwards = new QRadioButton(tr("Search up"), this); QRadioButton* search_forwards = new QRadioButton(tr("Search down"), this); search_forwards->setChecked(true); // Create buttons QDialogButtonBox* buttons = new QDialogButtonBox(QDialogButtonBox::Close, Qt::Horizontal, this); connect(buttons, SIGNAL(rejected()), this, SLOT(reject())); m_find_button = buttons->addButton(tr("&Find"), QDialogButtonBox::ActionRole); m_find_button->setEnabled(false); connect(m_find_button, SIGNAL(clicked()), this, SLOT(find())); m_replace_button = buttons->addButton(tr("&Replace"), QDialogButtonBox::ActionRole); m_replace_button->setEnabled(false); connect(m_replace_button, SIGNAL(clicked()), this, SLOT(replace())); m_replace_all_button = buttons->addButton(tr("Replace &All"), QDialogButtonBox::ActionRole); m_replace_all_button->setEnabled(false); connect(m_replace_all_button, SIGNAL(clicked()), this, SLOT(replaceAll())); if (!buttons->button(QDialogButtonBox::Close)->icon().isNull()) { m_find_button->setIcon(QIcon::fromTheme("edit-find")); m_replace_button->setIcon(QIcon::fromTheme("edit-find-replace")); } // Lay out dialog QGridLayout* layout = new QGridLayout(this); layout->setColumnStretch(1, 1); layout->addWidget(find_label, 0, 0, Qt::AlignRight | Qt::AlignVCenter); layout->addWidget(m_find_string, 0, 1, 1, 2); layout->addWidget(m_replace_label, 1, 0, Qt::AlignRight | Qt::AlignVCenter); layout->addWidget(m_replace_string, 1, 1, 1, 2); layout->addWidget(m_ignore_case, 2, 1); layout->addWidget(m_whole_words, 3, 1); layout->addWidget(m_regular_expressions, 4, 1); layout->addWidget(m_search_backwards, 2, 2); layout->addWidget(search_forwards, 3, 2); layout->addWidget(buttons, 5, 0, 1, 3); setFixedWidth(sizeHint().width()); // Load settings QSettings settings; m_ignore_case->setChecked(!settings.value("FindDialog/CaseSensitive", false).toBool()); m_whole_words->setChecked(settings.value("FindDialog/WholeWords", false).toBool()); m_regular_expressions->setChecked(settings.value("FindDialog/RegularExpressions", false).toBool()); m_search_backwards->setChecked(settings.value("FindDialog/SearchBackwards", false).toBool()); } //----------------------------------------------------------------------------- void FindDialog::findNext() { find(false); } //----------------------------------------------------------------------------- void FindDialog::findPrevious() { find(true); } //----------------------------------------------------------------------------- void FindDialog::reject() { QSettings settings; settings.setValue("FindDialog/CaseSensitive", !m_ignore_case->isChecked()); settings.setValue("FindDialog/WholeWords", m_whole_words->isChecked()); settings.setValue("FindDialog/RegularExpressions", m_regular_expressions->isChecked()); settings.setValue("FindDialog/SearchBackwards", m_search_backwards->isChecked()); QDialog::reject(); } //----------------------------------------------------------------------------- void FindDialog::showFindMode() { setWindowTitle(tr("Find")); showMode(false); } //----------------------------------------------------------------------------- void FindDialog::showReplaceMode() { setWindowTitle(tr("Replace")); showMode(true); } //----------------------------------------------------------------------------- void FindDialog::moveEvent(QMoveEvent* event) { m_position = pos(); QDialog::moveEvent(event); } //----------------------------------------------------------------------------- void FindDialog::showEvent(QShowEvent* event) { if (!m_position.isNull()) { QRect rect(m_position, sizeHint()); if (QApplication::desktop()->availableGeometry(this).contains(rect)) { move(m_position); } } QDialog::showEvent(event); } //----------------------------------------------------------------------------- void FindDialog::find() { find(m_search_backwards->isChecked()); } //----------------------------------------------------------------------------- void FindDialog::findChanged(const QString& text) { bool enabled = !text.isEmpty(); m_find_button->setEnabled(enabled); m_replace_button->setEnabled(enabled); m_replace_all_button->setEnabled(enabled); emit findNextAvailable(enabled); } //----------------------------------------------------------------------------- void FindDialog::replace() { QString text = m_find_string->text(); if (text.isEmpty()) { return; } QTextEdit* document = m_documents->currentDocument()->text(); QTextCursor cursor = document->textCursor(); Qt::CaseSensitivity cs = m_ignore_case->isChecked() ? Qt::CaseInsensitive : Qt::CaseSensitive; if (!m_regular_expressions->isChecked()) { if (QString::compare(cursor.selectedText(), text, cs) == 0) { cursor.insertText(m_replace_string->text()); document->setTextCursor(cursor); } } else { QRegExp regex(text, cs, QRegExp::RegExp2); QString match = cursor.selectedText(); if (regex.exactMatch(match)) { match.replace(regex, m_replace_string->text()); cursor.insertText(match); document->setTextCursor(cursor); } } find(); } //----------------------------------------------------------------------------- void FindDialog::replaceAll() { QString text = m_find_string->text(); if (text.isEmpty()) { return; } QRegExp regex(text, !m_ignore_case->isChecked() ? Qt::CaseSensitive : Qt::CaseInsensitive, QRegExp::RegExp2); QTextDocument::FindFlags flags; if (!m_ignore_case->isChecked()) { flags |= QTextDocument::FindCaseSensitively; } if (m_whole_words->isChecked() && !m_regular_expressions->isChecked()) { flags |= QTextDocument::FindWholeWords; } // Count instances int found = 0; QTextEdit* document = m_documents->currentDocument()->text(); QTextCursor cursor = document->textCursor(); cursor.movePosition(QTextCursor::Start); if (!m_regular_expressions->isChecked()) { forever { cursor = document->document()->find(text, cursor, flags); if (!cursor.isNull()) { found++; } else { break; } } } else { forever { cursor = document->document()->find(regex, cursor, flags); if (!cursor.isNull() && cursor.hasSelection()) { found++; } else { break; } } } if (found) { if (QMessageBox::question(this, tr("Question"), tr("Replace %n instance(s)?", "", found), QMessageBox::Yes | QMessageBox::No) == QMessageBox::No) { return; } } else { QMessageBox::information(this, tr("Sorry"), tr("Phrase not found.")); return; } // Replace instances QTextCursor start_cursor = document->textCursor(); start_cursor.beginEditBlock(); if (!m_regular_expressions->isChecked()) { forever { cursor = document->document()->find(text, cursor, flags); if (!cursor.isNull()) { cursor.insertText(m_replace_string->text()); document->setTextCursor(cursor); } else { break; } } } else { forever { cursor = document->document()->find(regex, cursor, flags); if (!cursor.isNull() && cursor.hasSelection()) { QString match = cursor.selectedText(); match.replace(regex, m_replace_string->text()); cursor.insertText(match); document->setTextCursor(cursor); } else { break; } } } start_cursor.endEditBlock(); document->setTextCursor(start_cursor); } //----------------------------------------------------------------------------- void FindDialog::find(bool backwards) { QString text = m_find_string->text(); if (text.isEmpty()) { return; } QRegExp regex(text, !m_ignore_case->isChecked() ? Qt::CaseSensitive : Qt::CaseInsensitive, QRegExp::RegExp2); QTextDocument::FindFlags flags; if (!m_ignore_case->isChecked()) { flags |= QTextDocument::FindCaseSensitively; } if (m_whole_words->isChecked() && !m_regular_expressions->isChecked()) { flags |= QTextDocument::FindWholeWords; } if (backwards) { flags |= QTextDocument::FindBackward; } QTextEdit* document = m_documents->currentDocument()->text(); QTextCursor cursor = document->textCursor(); if (!m_regular_expressions->isChecked()) { cursor = document->document()->find(text, cursor, flags); } else { cursor = document->document()->find(regex, cursor, flags); } if (cursor.isNull()) { cursor = document->textCursor(); cursor.movePosition(!backwards ? QTextCursor::Start : QTextCursor::End); if (!m_regular_expressions->isChecked()) { cursor = document->document()->find(text, cursor, flags); } else { cursor = document->document()->find(regex, cursor, flags); } } if (!cursor.isNull()) { document->setTextCursor(cursor); } else { QMessageBox::information(this, tr("Sorry"), tr("Phrase not found.")); } } //----------------------------------------------------------------------------- void FindDialog::showMode(bool replace) { m_replace_label->setVisible(replace); m_replace_string->setVisible(replace); m_replace_button->setVisible(replace); m_replace_all_button->setVisible(replace); setFixedHeight(sizeHint().height()); if (!m_regular_expressions->isChecked()) { QString text = m_documents->currentDocument()->text()->textCursor().selectedText().trimmed(); text.remove(0, text.lastIndexOf(QChar(0x2029)) + 1); if (!text.isEmpty()) { m_find_string->setText(text); } } m_find_string->setFocus(); show(); activateWindow(); } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/find_dialog.h000066400000000000000000000035641231434177300173110ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2008, 2009, 2010, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef FIND_DIALOG_H #define FIND_DIALOG_H class Stack; #include class QCheckBox; class QLabel; class QLineEdit; class QRadioButton; class FindDialog : public QDialog { Q_OBJECT public: FindDialog(Stack* documents); public slots: void findNext(); void findPrevious(); void reject(); void showFindMode(); void showReplaceMode(); signals: void findNextAvailable(bool available); protected: void moveEvent(QMoveEvent* event); void showEvent(QShowEvent* event); private slots: void find(); void findChanged(const QString& text); void replace(); void replaceAll(); private: void find(bool backwards); void showMode(bool replace); private: Stack* m_documents; QLineEdit* m_find_string; QLabel* m_replace_label; QLineEdit* m_replace_string; QCheckBox* m_ignore_case; QCheckBox* m_whole_words; QCheckBox* m_regular_expressions; QRadioButton* m_search_backwards; QPushButton* m_find_button; QPushButton* m_replace_button; QPushButton* m_replace_all_button; QPoint m_position; }; #endif focuswriter-1.4.5/src/font_combobox.cpp000066400000000000000000000045171231434177300202420ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2013 Graeme Gott * * 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 . * ***********************************************************************/ #include "font_combobox.h" #include //----------------------------------------------------------------------------- FontComboBox::FontComboBox(QWidget* parent) : QComboBox(parent), m_system(QFontDatabase::Any) { setEditable(false); m_font_model = new QStringListModel(this); updateModel(); setModel(m_font_model); connect(this, SIGNAL(currentIndexChanged(QString)), this, SLOT(currentFamilyChanged(QString))); } //----------------------------------------------------------------------------- void FontComboBox::setWritingSystem(QFontDatabase::WritingSystem system) { m_system = system; updateModel(); } //----------------------------------------------------------------------------- void FontComboBox::setCurrentFont(const QFont& font) { QString family = font.family(); QStringList families = m_font_model->stringList(); for (int i = 0; i < families.size(); ++i) { if (family == families.at(i)) { setCurrentIndex(i); break; } } } //----------------------------------------------------------------------------- void FontComboBox::currentFamilyChanged(const QString& family) { m_current.setFamily(family); emit currentFontChanged(m_current); } //----------------------------------------------------------------------------- void FontComboBox::updateModel() { QFontDatabase database; QStringList fonts = database.families(m_system); fonts.sort(); m_font_model->setStringList(fonts); } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/font_combobox.h000066400000000000000000000030651231434177300177040ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2013 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef FONT_COMBOBOX_H #define FONT_COMBOBOX_H #include #include class QStringListModel; class FontComboBox : public QComboBox { Q_OBJECT public: FontComboBox(QWidget* parent = 0); QFont currentFont() const { return m_current; } QFontDatabase::WritingSystem writingSystem() const { return m_system; } void setWritingSystem(QFontDatabase::WritingSystem system); public slots: void setCurrentFont(const QFont& font); signals: void currentFontChanged(const QFont& font); private slots: void currentFamilyChanged(const QString& family); private: void updateModel(); private: QFont m_current; QStringListModel* m_font_model; QFontDatabase::WritingSystem m_system; }; #endif focuswriter-1.4.5/src/gzip.cpp000066400000000000000000000037171231434177300163560ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2011 Graeme Gott * * 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 . * ***********************************************************************/ #include "gzip.h" #include #include #include //----------------------------------------------------------------------------- void gzip(const QString& path) { QFile file(path); if (!file.open(QFile::ReadOnly)) { return; } QByteArray data = file.readAll(); file.close(); if (!file.open(QFile::WriteOnly)) { return; } gzFile gz = gzdopen(file.handle(), "wb9"); if (gz == NULL) { return; } gzwrite(gz, data.constData(), data.size()); gzclose(gz); } //----------------------------------------------------------------------------- QByteArray gunzip(const QString& path) { QByteArray data; QFile file(path); if (!file.open(QFile::ReadOnly)) { return data; } gzFile gz = gzdopen(file.handle(), "rb"); if (gz == NULL) { return data; } static const int buffer_size = 0x40000; char buffer[buffer_size]; memset(buffer, 0, buffer_size); int read = 0; do { data.append(buffer, read); read = qMin(gzread(gz, buffer, buffer_size), buffer_size); } while (read > 0); gzclose(gz); return data; } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/gzip.h000066400000000000000000000017541231434177300160220ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2011 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef GZIP_H #define GZIP_H class QByteArray; class QString; void gzip(const QString& path); QByteArray gunzip(const QString& path); #endif focuswriter-1.4.5/src/highlighter.cpp000066400000000000000000000165721231434177300177060ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Graeme Gott * * 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 . * ***********************************************************************/ #include "highlighter.h" #include "block_stats.h" #include "dictionary.h" #include "spell_checker.h" #include #include #include #include #include #include //----------------------------------------------------------------------------- Highlighter::Highlighter(QTextEdit* text, Dictionary& dictionary) : QSyntaxHighlighter(text), m_dictionary(dictionary), m_text(text), m_enabled(true), m_misspelled("#ff0000"), m_changed(false) { connect(m_text, SIGNAL(cursorPositionChanged()), this, SLOT(cursorPositionChanged())); m_spell_timer = new QTimer(this); m_spell_timer->setInterval(10); m_spell_timer->setSingleShot(true); connect(m_spell_timer, SIGNAL(timeout()), this, SLOT(updateSpelling())); m_text->installEventFilter(this); m_text->viewport()->installEventFilter(this); m_add_action = new QAction(tr("Add"), this); m_check_action = new QAction(tr("Check Spelling..."), this); } //----------------------------------------------------------------------------- void Highlighter::setEnabled(bool enabled) { if (m_enabled != enabled) { m_enabled = enabled; if (m_enabled) { updateSpelling(); } else { rehighlight(); } } } //----------------------------------------------------------------------------- void Highlighter::setMisspelledColor(const QColor& color) { if (m_misspelled != color) { m_misspelled = color; if (m_enabled) { rehighlight(); } } } //----------------------------------------------------------------------------- bool Highlighter::eventFilter(QObject* watched, QEvent* event) { if (event->type() != QEvent::ContextMenu || !m_enabled || m_text->isReadOnly()) { return QSyntaxHighlighter::eventFilter(watched, event); } else { // Check spelling of text block under mouse QContextMenuEvent* context_event = static_cast(event); m_start_cursor = m_text->cursorForPosition(context_event->pos()); QTextBlock block = m_start_cursor.block(); int cursor = m_start_cursor.position() - block.position(); bool under_mouse = false; QStringRef word; QVector words = static_cast(block.userData())->misspelled(); for (int i = 0; i < words.count(); ++i) { word = words.at(i); int delta = cursor - word.position(); if (delta >= 0 && delta <= word.length()) { under_mouse = true; break; } } if (!under_mouse) { return false; } else { // Select misspelled word m_cursor = m_start_cursor; m_cursor.setPosition(word.position() + block.position()); m_cursor.setPosition(m_cursor.position() + word.length(), QTextCursor::KeepAnchor); m_word = m_cursor.selectedText(); m_text->blockSignals(true); m_text->setTextCursor(m_cursor); m_text->blockSignals(false); // List suggestions in context menu QMenu* menu = new QMenu; QStringList guesses = m_dictionary.suggestions(m_word); if (!guesses.isEmpty()) { foreach (const QString& guess, guesses) { menu->addAction(guess); } } else { QAction* none_action = menu->addAction(tr("(No suggestions found)")); none_action->setEnabled(false); } menu->addSeparator(); menu->addAction(m_add_action); menu->addSeparator(); menu->addAction(m_check_action); // Show menu connect(menu, SIGNAL(triggered(QAction*)), this, SLOT(suggestion(QAction*))); menu->exec(context_event->globalPos()); delete menu; return true; } } } //----------------------------------------------------------------------------- void Highlighter::highlightBlock(const QString& text) { BlockStats* stats = static_cast(currentBlockUserData()); #if (QT_VERSION >= QT_VERSION_CHECK(4,7,0)) if (!m_enabled || m_text->isReadOnly() || !stats || (stats->spellingStatus() == BlockStats::Unchecked)) { return; } if (stats->spellingStatus() == BlockStats::CheckSpelling) { stats->checkSpelling(text, m_dictionary); } #else if (!m_enabled || m_text->isReadOnly() || !stats) { return; } if (stats->spellingStatus() != BlockStats::Checked) { stats->checkSpelling(text, m_dictionary); } #endif QTextCharFormat error; error.setUnderlineColor(m_misspelled); error.setUnderlineStyle(QTextCharFormat::SpellCheckUnderline); int cursor = m_text->textCursor().position() - currentBlock().position(); QVector words = stats->misspelled(); for (int i = 0; i < words.count(); ++i) { const QStringRef& word = words.at(i); int delta = cursor - word.position(); if (!m_changed || (delta < 0 || delta > word.length())) { setFormat(word.position(), word.length(), error); } } m_changed = true; } //----------------------------------------------------------------------------- void Highlighter::updateSpelling() { if (!m_enabled || m_text->isReadOnly()) { return; } #if (QT_VERSION >= QT_VERSION_CHECK(4,7,0)) QTextBlock block = m_text->textCursor().block(); bool found = false; // Check first unchecked block at or after cursor for (QTextBlock i = block; i.isValid(); i = i.next()) { BlockStats* stats = static_cast(i.userData()); if (stats && (stats->spellingStatus() != BlockStats::Checked)) { stats->checkSpelling(i.text(), m_dictionary); rehighlightBlock(i); found = true; break; } } // Check first unchecked block before cursor for (QTextBlock i = block; i.isValid(); i = i.previous()) { BlockStats* stats = static_cast(i.userData()); if (stats && (stats->spellingStatus() != BlockStats::Checked)) { stats->checkSpelling(i.text(), m_dictionary); rehighlightBlock(i); found = true; break; } } // Repeat until all blocks have been checked if (found) { m_spell_timer->start(); } #else rehighlight(); #endif } //----------------------------------------------------------------------------- void Highlighter::cursorPositionChanged() { QTextBlock current = m_text->textCursor().block(); if (m_current != current) { if (m_current.isValid() && m_text->document()->blockCount() > m_current.blockNumber()) { rehighlightBlock(m_current); } m_current = current; } rehighlightBlock(m_current); m_changed = false; } //----------------------------------------------------------------------------- void Highlighter::suggestion(QAction* action) { if (action == m_add_action) { m_text->setTextCursor(m_start_cursor); m_dictionary.addWord(m_word); } else if (action == m_check_action) { m_text->setTextCursor(m_start_cursor); SpellChecker::checkDocument(m_text, m_dictionary); } else { m_cursor.insertText(action->text()); } } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/highlighter.h000066400000000000000000000034771231434177300173530ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010, 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef HIGHLIGHTER_H #define HIGHLIGHTER_H class Dictionary; #include #include class QAction; class QTextEdit; class QTimer; class Highlighter : public QSyntaxHighlighter { Q_OBJECT public: Highlighter(QTextEdit* text, Dictionary& dictionary); bool enabled() const; void setEnabled(bool enabled); void setMisspelledColor(const QColor& color); virtual bool eventFilter(QObject* watched, QEvent* event); virtual void highlightBlock(const QString& text); public slots: void updateSpelling(); private slots: void cursorPositionChanged(); void suggestion(QAction* action); private: Dictionary& m_dictionary; QTimer* m_spell_timer; QTextEdit* m_text; QTextCursor m_cursor; QTextCursor m_start_cursor; bool m_enabled; QColor m_misspelled; QString m_word; QTextBlock m_current; bool m_changed; QAction* m_add_action; QAction* m_check_action; }; inline bool Highlighter::enabled() const { return m_enabled; } #endif focuswriter-1.4.5/src/image_button.cpp000066400000000000000000000057071231434177300200630ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2008, 2009, 2010, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #include "image_button.h" #if (QT_VERSION >= QT_VERSION_CHECK(5,0,0)) #include #else #include #endif #include #include //----------------------------------------------------------------------------- ImageButton::ImageButton(QWidget* parent) : QPushButton(parent) { setAutoDefault(false); setIconSize(QSize(100, 100)); unsetImage(); connect(this, SIGNAL(clicked()), this, SLOT(onClicked())); } //----------------------------------------------------------------------------- void ImageButton::setImage(const QString& image, const QString& path) { QImageReader source(image); if (source.canRead()) { m_image = image; QSize size = source.size(); if (size.width() > 100 || size.height() > 100) { size.scale(100, 100, Qt::KeepAspectRatio); source.setScaledSize(size); } setIcon(QPixmap::fromImage(source.read(), Qt::AutoColor | Qt::AvoidDither)); m_path = (!path.isEmpty() && QImageReader(path).canRead()) ? path : QString(); emit changed(m_path); } else { unsetImage(); } } //----------------------------------------------------------------------------- void ImageButton::unsetImage() { m_image.clear(); m_path.clear(); QPixmap icon(100,100); icon.fill(Qt::transparent); setIcon(icon); emit changed(m_path); } //----------------------------------------------------------------------------- void ImageButton::onClicked() { QStringList filters; QList formats = QImageReader::supportedImageFormats(); foreach (QByteArray type, formats) { filters.append("*." + type); } #if (QT_VERSION >= QT_VERSION_CHECK(5,0,0)) QString path = !m_path.isEmpty() ? m_path : QStandardPaths::writableLocation(QStandardPaths::PicturesLocation); #else QString path = !m_path.isEmpty() ? m_path : QDesktopServices::storageLocation(QDesktopServices::PicturesLocation); #endif QString image = QFileDialog::getOpenFileName(window(), tr("Open Image"), path, tr("Images(%1)").arg(filters.join(" "))); if (!image.isEmpty()) { setImage(image, image); } } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/image_button.h000066400000000000000000000026521231434177300175240ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2008, 2009, 2010 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef IMAGE_BUTTON_H #define IMAGE_BUTTON_H #include class ImageButton : public QPushButton { Q_OBJECT public: ImageButton(QWidget* parent = 0); QString image() const; QString toString() const; signals: void changed(const QString& path); public slots: void setImage(const QString& image, const QString& path); void unsetImage(); private slots: void onClicked(); private: QString m_image; QString m_path; }; inline QString ImageButton::image() const { return m_image; } inline QString ImageButton::toString() const { return m_path; } #endif focuswriter-1.4.5/src/load_screen.cpp000066400000000000000000000072771231434177300176700ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010, 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #include "load_screen.h" #include #include #include #include //----------------------------------------------------------------------------- LoadScreen::LoadScreen(QWidget* parent) : QLabel(parent) { setCursor(Qt::WaitCursor); setStyleSheet("LoadScreen {background: #666 url(':/load.png') no-repeat center;}"); m_text = new QLabel(this); m_text->hide(); m_text->setCursor(Qt::WaitCursor); m_text->setAlignment(Qt::AlignCenter); m_text->setStyleSheet("QLabel {color: #d7d7d7; background-color: #1e1e1e; border-top-left-radius: 0.25em; border-top-right-radius: 0.25em; padding: 0.25em 0.5em;}"); QVBoxLayout* layout = new QVBoxLayout(this); layout->setMargin(0); layout->addStretch(); layout->addWidget(m_text, 0, Qt::AlignCenter); m_hide_effect = new QGraphicsOpacityEffect(this); m_hide_effect->setOpacity(1.0); setGraphicsEffect(m_hide_effect); m_hide_timer = new QTimer(this); m_hide_timer->setInterval(30); connect(m_hide_timer, SIGNAL(timeout()), this, SLOT(fade())); } //----------------------------------------------------------------------------- bool LoadScreen::eventFilter(QObject* watched, QEvent* event) { switch (event->type()) { case QEvent::KeyPress: case QEvent::KeyRelease: case QEvent::MouseButtonDblClick: case QEvent::MouseButtonPress: case QEvent::MouseButtonRelease: if (!window()->isActiveWindow()) { return QLabel::eventFilter(watched, event); } // fall through case QEvent::Shortcut: case QEvent::Wheel: return true; default: break; } return QLabel::eventFilter(watched, event); } //----------------------------------------------------------------------------- void LoadScreen::setText(const QString& step) { m_text->setText("
      " + step + "
      "); m_text->setVisible(!step.isEmpty()); if (m_hide_timer->isActive()) { m_hide_timer->stop(); } m_hide_effect->setOpacity(1.0); show(); raise(); QApplication::processEvents(); } //----------------------------------------------------------------------------- void LoadScreen::finish() { m_hide_effect->setOpacity(1.0); m_hide_timer->start(); } //----------------------------------------------------------------------------- void LoadScreen::hideEvent(QHideEvent* event) { QLabel::hideEvent(event); QApplication::instance()->removeEventFilter(this); } //----------------------------------------------------------------------------- void LoadScreen::showEvent(QShowEvent* event) { QLabel::showEvent(event); QApplication::instance()->installEventFilter(this); } //----------------------------------------------------------------------------- void LoadScreen::fade() { m_hide_effect->setOpacity(m_hide_effect->opacity() - 0.2); if (m_hide_effect->opacity() <= 0.01) { m_hide_timer->stop(); hide(); } } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/load_screen.h000066400000000000000000000025601231434177300173230ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef LOAD_SCREEN_H #define LOAD_SCREEN_H #include class QGraphicsOpacityEffect; class QTimer; class LoadScreen : public QLabel { Q_OBJECT public: LoadScreen(QWidget* parent); bool eventFilter(QObject* watched, QEvent* event); public slots: void setText(const QString& step); void finish(); protected: void hideEvent(QHideEvent* event); void showEvent(QShowEvent* event); private slots: void fade(); private: QLabel* m_text; QGraphicsOpacityEffect* m_hide_effect; QTimer* m_hide_timer; }; #endif focuswriter-1.4.5/src/locale_dialog.cpp000066400000000000000000000140771231434177300201640ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010, 2011, 2012, 2013, 2014 Graeme Gott * * 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 . * ***********************************************************************/ #include "locale_dialog.h" #include #include #include #include #include #include #include #include #include #include #include #include #include //----------------------------------------------------------------------------- QString LocaleDialog::m_current; QString LocaleDialog::m_path; QString LocaleDialog::m_appname; //----------------------------------------------------------------------------- LocaleDialog::LocaleDialog(QWidget* parent) : QDialog(parent, Qt::WindowTitleHint | Qt::MSWindowsFixedSizeDialogHint | Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint) { QString title = parent ? parent->window()->windowTitle() : QString(); setWindowTitle(!title.isEmpty() ? title : QCoreApplication::applicationName()); QLabel* text = new QLabel(tr("Select application language:"), this); m_translations = new QComboBox(this); m_translations->addItem(tr(""), ""); QString translation; QStringList translations = findTranslations(); foreach (translation, translations) { if (translation.startsWith("qt")) { continue; } translation.remove(m_appname); m_translations->addItem(languageName(translation), translation); } int index = qMax(0, m_translations->findData(m_current)); m_translations->setCurrentIndex(index); QDialogButtonBox* buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, this); connect(buttons, SIGNAL(accepted()), this, SLOT(accept())); connect(buttons, SIGNAL(rejected()), this, SLOT(reject())); QVBoxLayout* layout = new QVBoxLayout(this); layout->setSizeConstraint(QLayout::SetFixedSize); layout->addWidget(text); layout->addWidget(m_translations); layout->addWidget(buttons); } //----------------------------------------------------------------------------- void LocaleDialog::loadTranslator(const QString& name, const QStringList& datadirs) { m_appname = name; // Find translator path QStringList paths = datadirs; if (paths.isEmpty()) { QString appdir = QCoreApplication::applicationDirPath(); paths.append(appdir); paths.append(appdir + "/../share/" + QCoreApplication::applicationName().toLower()); paths.append(appdir + "/../Resources"); } foreach (const QString& path, paths) { if (QFile::exists(path + "/translations/")) { m_path = path + "/translations/"; break; } } // Find current locale m_current = QSettings().value("Locale/Language").toString(); QString current = !m_current.isEmpty() ? m_current : QLocale::system().name(); QStringList translations = findTranslations(); if (!translations.contains(m_appname + current)) { current = current.left(2); if (!translations.contains(m_appname + current)) { current.clear(); } } if (!current.isEmpty()) { QLocale::setDefault(current); } else { current = "en"; } // Load translators static QTranslator qt_translator; if (translations.contains("qt_" + current) || translations.contains("qt_" + current.left(2))) { qt_translator.load("qt_" + current, m_path); } else { qt_translator.load("qt_" + current, QLibraryInfo::location(QLibraryInfo::TranslationsPath)); } QCoreApplication::installTranslator(&qt_translator); static QTranslator translator; translator.load(m_appname + current, m_path); QCoreApplication::installTranslator(&translator); } //----------------------------------------------------------------------------- QString LocaleDialog::languageName(const QString& language) { QString lang_code = language.left(5); QLocale locale(lang_code); QString name; #if (QT_VERSION >= QT_VERSION_CHECK(4,8,0)) if (lang_code.length() > 2) { if (locale.name() == lang_code) { name = locale.nativeLanguageName() + " (" + locale.nativeCountryName() + ")"; } else { name = locale.nativeLanguageName() + " (" + language + ")"; } } else { name = locale.nativeLanguageName(); } if (locale.textDirection() == Qt::RightToLeft) { name.prepend(QChar(0x202b)); } #else if (lang_code.length() > 2) { if (locale.name() == lang_code) { name = QLocale::languageToString(locale.language()) + " (" + QLocale::countryToString(locale.country()) + ")"; } else { name = QLocale::languageToString(locale.language()) + " (" + language + ")"; } } else { name = QLocale::languageToString(locale.language()); } #endif return name; } //----------------------------------------------------------------------------- QStringList LocaleDialog::findTranslations() { QStringList result = QDir(m_path, "*.qm").entryList(QDir::Files); result.replaceInStrings(".qm", ""); return result; } //----------------------------------------------------------------------------- void LocaleDialog::accept() { int current = m_translations->findData(m_current); if (current == m_translations->currentIndex()) { return reject(); } QDialog::accept(); m_current = m_translations->itemData(m_translations->currentIndex()).toString(); QSettings().setValue("Locale/Language", m_current); QMessageBox::information(this, tr("Note"), tr("Please restart this application for the change in language to take effect."), QMessageBox::Ok); } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/locale_dialog.h000066400000000000000000000047631231434177300176320ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010, 2011, 2012, 2013 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef FOCUSWRITER_LOCALE_DIALOG_H #define FOCUSWRITER_LOCALE_DIALOG_H #include class QComboBox; /** * Dialog to set application language. * * This class handles setting the application language when the application is * launched, as well as allowing the user to choose a different language for * future launches. */ class LocaleDialog : public QDialog { Q_OBJECT public: /** * Construct a dialog to choose application language. * * @param parent the parent widget of the dialog */ LocaleDialog(QWidget* parent = 0); /** * Load the stored language into the application; defaults to system language. * * @param appname application name to prepend to translation filenames * @param datadirs locations to search for directory containing translations */ static void loadTranslator(const QString& appname, const QStringList& datadirs = QStringList()); /** * Fetch native language name for QLocale name. * * @param language QLocale name to look up * @return translated language name */ static QString languageName(const QString& language); public slots: /** Override parent function to store application language. */ void accept(); private: /** * Fetch list of application translations. * * @return list of QLocale names */ static QStringList findTranslations(); private: QComboBox* m_translations; /**< list of found translations */ static QString m_current; /**< stored application language */ static QString m_path; /**< location of translations; found in loadTranslator() */ static QString m_appname; /**< application name passed to loadTranslator() */ }; #endif // FOCUSWRITER_LOCALE_DIALOG_H focuswriter-1.4.5/src/main.cpp000066400000000000000000000132251231434177300163240ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2008, 2009, 2010, 2011, 2012, 2014 Graeme Gott * * 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 . * ***********************************************************************/ #include "application.h" #include "dictionary_manager.h" #include "document.h" #include "locale_dialog.h" #include "paths.h" #include "session.h" #include "sound.h" #include "symbols_model.h" #include "theme.h" #include #include #include #include #include #include int main(int argc, char** argv) { Application app(argc, argv); if (app.isRunning()) { app.sendMessage(app.files().join(QLatin1String("\n"))); return 0; } QString appdir = app.applicationDirPath(); // Find application data dirs QStringList datadirs; #if defined(Q_OS_MAC) QFileInfo portable(appdir + "/../../../Data"); datadirs.append(appdir + "/../Resources"); #elif defined(Q_OS_UNIX) QFileInfo portable(appdir + "/Data"); datadirs.append(DATADIR); datadirs.append(appdir + "/../share/focuswriter"); #else QFileInfo portable(appdir + "/Data"); datadirs.append(appdir); #endif // Handle portability QString userdir; if (portable.exists() && portable.isWritable()) { userdir = portable.absoluteFilePath(); QSettings::setDefaultFormat(QSettings::IniFormat); QSettings::setPath(QSettings::IniFormat, QSettings::UserScope, userdir + "/Settings"); } // Set locations of fallback icons { QStringList paths = QIcon::themeSearchPaths(); foreach (const QString& path, datadirs) { paths.prepend(path + "/icons"); } QIcon::setThemeSearchPaths(paths); } // Find sounds foreach (const QString& path, datadirs) { if (QFile::exists(path + "/sounds/")) { Sound::setPath(path + "/sounds/"); break; } } // Find unicode names SymbolsModel::setData(datadirs); // Load application language LocaleDialog::loadTranslator("focuswriter_", datadirs); // Find user data dir if not in portable mode if (userdir.isEmpty()) { userdir = Paths::dataPath(); if (!QFile::exists(userdir)) { QDir dir(userdir); dir.mkpath(dir.absolutePath()); // Migrate data from old location QString oldpath = Paths::oldDataPath(); if (QFile::exists(oldpath)) { QStringList old_dirs = QStringList() << ""; QDir olddir(oldpath); for (int i = 0; i < old_dirs.count(); ++i) { QString subpath = old_dirs.at(i); dir.mkpath(userdir + "/" + subpath); olddir.setPath(oldpath + "/" + subpath); QStringList subdirs = olddir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); foreach (const QString& subdir, subdirs) { old_dirs.append(subpath + "/" + subdir); } QStringList files = olddir.entryList(QDir::Files); foreach (const QString& file, files) { QFile::rename(olddir.absoluteFilePath(file), userdir + "/" + subpath + "/" + file); } } olddir.setPath(oldpath); for (int i = old_dirs.count() - 1; i >= 0; --i) { olddir.rmdir(oldpath + "/" + old_dirs.at(i)); } } } } // Create base user data path QDir dir(userdir); if (!dir.exists()) { dir.mkpath(dir.absolutePath()); } // Create cache path if (!dir.exists("Cache/Files")) { dir.mkpath("Cache/Files"); } Document::setCachePath(dir.filePath("Cache/Files")); // Set sessions path if (!dir.exists("Sessions")) { dir.mkdir("Sessions"); } Session::setPath(dir.absoluteFilePath("Sessions")); // Set themes path if (!dir.exists("Themes")) { if (dir.exists("themes")) { dir.rename("themes", "Themes"); } else { dir.mkdir("Themes"); } } if (!dir.exists("Themes/Images")) { dir.mkdir("Themes/Images"); } Theme::setPath(dir.absoluteFilePath("Themes")); // Set dictionary paths if (!dir.exists("Dictionaries")) { if (dir.exists("dictionaries")) { dir.rename("dictionaries", "Dictionaries"); } else { dir.mkdir("Dictionaries"); } } DictionaryManager::setPath(dir.absoluteFilePath("Dictionaries")); // Create theme from old settings if (QDir(Theme::path(), "*.theme").entryList(QDir::Files).isEmpty()) { QSettings settings; Theme theme; theme.setName(Session::tr("Default")); theme.setBackgroundType(settings.value("Background/Position", theme.backgroundType()).toInt()); theme.setBackgroundColor(settings.value("Background/Color", theme.backgroundColor()).toString()); theme.setBackgroundImage(settings.value("Background/Image").toString()); settings.remove("Background"); theme.setForegroundColor(settings.value("Page/Color", theme.foregroundColor()).toString()); theme.setForegroundWidth(settings.value("Page/Width", theme.foregroundWidth()).toInt()); theme.setForegroundOpacity(settings.value("Page/Opacity", theme.foregroundOpacity()).toInt()); settings.remove("Page"); theme.setTextColor(settings.value("Text/Color", theme.textColor()).toString()); theme.setTextFont(settings.value("Text/Font", theme.textFont()).value()); settings.remove("Text"); settings.setValue("ThemeManager/Theme", theme.name()); } // Create main window if (!app.createWindow()) { return 0; } return app.exec(); } focuswriter-1.4.5/src/nssound/000077500000000000000000000000001231434177300163625ustar00rootroot00000000000000focuswriter-1.4.5/src/nssound/sound.mm000066400000000000000000000062631231434177300200540ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010, 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #include "../sound.h" #include #include #import #import #import //----------------------------------------------------------------------------- namespace { QString f_path; bool f_enabled = false; QVector f_chunks; int f_total_sounds = 0; QHash f_ids; QHash f_sound_objects; NSData* loadSound(const QString& filename) { NSString* nsstring = [[NSString alloc] initWithCharacters:reinterpret_cast(filename.unicode()) length:filename.length()]; NSData* chunk = [[NSData alloc] initWithContentsOfFile:nsstring]; [nsstring release]; return chunk; } void unloadSounds() { for (int i = 0, count = f_chunks.count(); i < count; ++i) { [f_chunks[i] release]; } f_chunks.clear(); } } //----------------------------------------------------------------------------- Sound::Sound(int name, const QString& filename, QObject* parent) : QObject(parent), m_id(-1), m_name(name) { f_total_sounds++; if (f_ids.contains(filename)) { m_id = f_ids.value(filename); } else { NSData* chunk = loadSound(f_path + "/" + filename); if (chunk == nil) { qWarning("Unable to load sound file '%s'.", qPrintable(filename)); return; } m_id = f_chunks.count(); f_chunks.append(chunk); f_ids[filename] = m_id; } f_sound_objects[m_name] = this; } //----------------------------------------------------------------------------- Sound::~Sound() { f_sound_objects[m_name] = 0; f_total_sounds--; if (f_total_sounds == 0) { unloadSounds(); f_ids.clear(); } } //----------------------------------------------------------------------------- void Sound::play(int name) { Sound* sound = f_sound_objects.value(name); if (!f_enabled || !sound) { return; } NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; NSSound* nssound = [[NSSound alloc] initWithData:f_chunks.at(sound->m_id)]; [nssound play]; [pool release]; } //----------------------------------------------------------------------------- void Sound::setEnabled(bool enabled) { f_enabled = enabled; } //----------------------------------------------------------------------------- void Sound::setPath(const QString& path) { f_path = path; } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/nsspellchecker/000077500000000000000000000000001231434177300176765ustar00rootroot00000000000000focuswriter-1.4.5/src/nsspellchecker/dictionary.h000066400000000000000000000025561231434177300222240ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010, 2011, 2012, 2013 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef DICTIONARY_H #define DICTIONARY_H class DictionaryData; class QString; class QStringList; class QStringRef; class Dictionary { public: Dictionary(DictionaryData** data = 0) : d((data && *data) ? data : 0) { } QStringRef check(const QString& string, int start_at) const; QStringList suggestions(const QString& word) const; void addWord(const QString& word); static void setIgnoreNumbers(bool ignore); static void setIgnoreUppercase(bool ignore); private: DictionaryData** d; }; #endif focuswriter-1.4.5/src/nsspellchecker/dictionary.mm000066400000000000000000000065521231434177300224060ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2012, 2013 Graeme Gott * * 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 . * ***********************************************************************/ #include "dictionary.h" #include "dictionary_data.h" #include "dictionary_manager.h" #include #import #import #import //----------------------------------------------------------------------------- QStringRef Dictionary::check(const QString& string, int start_at) const { NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; NSString* nsstring = [NSString stringWithCharacters:reinterpret_cast(string.unicode()) length:string.length()]; QStringRef misspelled; NSRange range = [[NSSpellChecker sharedSpellChecker] checkSpellingOfString:nsstring startingAt:start_at language:(*d)->language() wrap:NO inSpellDocumentWithTag:(*d)->tag() wordCount:NULL]; if (range.length > 0) { misspelled = QStringRef(&string, range.location, range.length); } [pool release]; return misspelled; } //----------------------------------------------------------------------------- QStringList Dictionary::suggestions(const QString& word) const { NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; NSRange range; range.location = 0; range.length = word.length(); NSString* nsstring = [NSString stringWithCharacters:reinterpret_cast(word.unicode()) length:word.length()]; NSArray* array; if ([[NSSpellChecker sharedSpellChecker] respondsToSelector:@selector(guessesForWordRange)]) { array = [[NSSpellChecker sharedSpellChecker] guessesForWordRange:range inString:nsstring language:(*d)->language() inSpellDocumentWithTag:(*d)->tag()]; } else { array = [[NSSpellChecker sharedSpellChecker] guessesForWord:nsstring]; } QStringList suggestions; if (array) { for (unsigned int i = 0; i < [array count]; ++i) { nsstring = [array objectAtIndex: i]; suggestions += QString::fromUtf8([nsstring UTF8String]); } } [pool release]; return suggestions; } //----------------------------------------------------------------------------- void Dictionary::addWord(const QString& word) { DictionaryManager::instance().add(word); } //----------------------------------------------------------------------------- void Dictionary::setIgnoreNumbers(bool) { // Can't tell NSSpellChecker to ignore words with numbers? } //----------------------------------------------------------------------------- void Dictionary::setIgnoreUppercase(bool) { // Can't tell NSSpellChecker to ignore words in all uppercase? } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/nsspellchecker/dictionary_data.h000066400000000000000000000026661231434177300232170ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010, 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef DICTIONARY_DATA_H #define DICTIONARY_DATA_H class QString; class QStringList; class QStringRef; #import class DictionaryData { public: DictionaryData(const QString& language); ~DictionaryData(); NSString* language() const; NSInteger tag() const; void addToSession(const QStringList& words); void removeFromSession(const QStringList& words); private: NSString* m_language; NSInteger m_tag; }; inline NSString* DictionaryData::language() const { return m_language; } inline NSInteger DictionaryData::tag() const { return m_tag; } #endif focuswriter-1.4.5/src/nsspellchecker/dictionary_data.mm000066400000000000000000000061561231434177300233770ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2012 Graeme Gott * * 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 . * ***********************************************************************/ #include "dictionary_data.h" #include #include #import #import #import //----------------------------------------------------------------------------- static NSArray* convertList(const QStringList& words) { QVector strings; foreach (const QString& word, words) { strings.append([NSString stringWithCharacters:reinterpret_cast(word.unicode()) length:word.length()]); } NSArray* array = [NSArray arrayWithObjects:strings.constData() count:strings.size()]; return array; } //----------------------------------------------------------------------------- DictionaryData::DictionaryData(const QString& language) { m_language = [[NSString alloc] initWithCharacters:reinterpret_cast(language.unicode()) length:language.length()]; m_tag = [NSSpellChecker uniqueSpellDocumentTag]; } //----------------------------------------------------------------------------- DictionaryData::~DictionaryData() { NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; [m_language release]; [[NSSpellChecker sharedSpellChecker] closeSpellDocumentWithTag:m_tag]; [pool release]; } //----------------------------------------------------------------------------- void DictionaryData::addToSession(const QStringList& words) { NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; [[NSSpellChecker sharedSpellChecker] setIgnoredWords:convertList(words) inSpellDocumentWithTag:m_tag]; [pool release]; } //----------------------------------------------------------------------------- void DictionaryData::removeFromSession(const QStringList& words) { NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; QStringList session; NSArray* array = [[NSSpellChecker sharedSpellChecker] ignoredWordsInSpellDocumentWithTag:m_tag]; if (array) { for (unsigned int i = 0; i < [array count]; ++i) { session += QString::fromUtf8([[array objectAtIndex: i] UTF8String]); } foreach (const QString& word, words) { session.removeAll(word); } } [[NSSpellChecker sharedSpellChecker] setIgnoredWords:convertList(session) inSpellDocumentWithTag:m_tag]; [pool release]; } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/nsspellchecker/dictionary_manager.h000066400000000000000000000041051231434177300237060ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010, 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef DICTIONARY_MANAGER_H #define DICTIONARY_MANAGER_H class Dictionary; class DictionaryData; #include #include #include class DictionaryManager : public QObject { Q_OBJECT public: static DictionaryManager& instance(); QStringList availableDictionaries() const; QString defaultLanguage() const; QStringList personal() const; void add(const QString& word); Dictionary requestDictionary(const QString& language = QString()); void setDefaultLanguage(const QString& language); void setPersonal(const QStringList& words); static QString installedPath(); static QString path(); static void setPath(const QString& path); signals: void changed(); private: DictionaryManager(); ~DictionaryManager(); DictionaryData** requestDictionaryData(const QString& language); private: QHash m_dictionaries; DictionaryData* m_default_dictionary; QString m_default_language; QStringList m_personal; static QString m_path; }; inline QString DictionaryManager::defaultLanguage() const { return m_default_language; } inline QString DictionaryManager::path() { return m_path; } inline QStringList DictionaryManager::personal() const { return m_personal; } #endif focuswriter-1.4.5/src/nsspellchecker/dictionary_manager.mm000066400000000000000000000126471231434177300241020ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010, 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #include "dictionary_manager.h" #include "dictionary.h" #include "dictionary_data.h" #include "../smart_quotes.h" #include #include #include #import #import #import //----------------------------------------------------------------------------- namespace { bool compareWords(const QString& s1, const QString& s2) { return s1.localeAwareCompare(s2) < 0; } } QString DictionaryManager::m_path; //----------------------------------------------------------------------------- DictionaryManager& DictionaryManager::instance() { static DictionaryManager manager; return manager; } //----------------------------------------------------------------------------- QStringList DictionaryManager::availableDictionaries() const { NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; QStringList languages; NSArray* array = [[NSSpellChecker sharedSpellChecker] availableLanguages]; if (array) { for (unsigned int i = 0; i < [array count]; ++i) { languages += QString::fromUtf8([[array objectAtIndex: i] UTF8String]); } } [pool release]; return languages; } //----------------------------------------------------------------------------- void DictionaryManager::add(const QString& word) { QStringList words = personal(); if (words.contains(SmartQuotes::revert(word))) { return; } words.append(word); setPersonal(words); } //----------------------------------------------------------------------------- Dictionary DictionaryManager::requestDictionary(const QString& language) { if (language.isEmpty()) { // Fetch shared default dictionary if (!m_default_dictionary) { m_default_dictionary = *requestDictionaryData(m_default_language); } return &m_default_dictionary; } else { // Fetch specific dictionary return requestDictionaryData(language); } } //----------------------------------------------------------------------------- void DictionaryManager::setDefaultLanguage(const QString& language) { if (language == m_default_language) { return; } m_default_language = language; m_default_dictionary = *requestDictionaryData(m_default_language); // Re-check documents emit changed(); } //----------------------------------------------------------------------------- QString DictionaryManager::installedPath() { return QDir::homePath() + "/Library/Spelling/"; } //----------------------------------------------------------------------------- void DictionaryManager::setPath(const QString& path) { m_path = path; } //----------------------------------------------------------------------------- void DictionaryManager::setPersonal(const QStringList& words) { // Check if new QStringList personal = SmartQuotes::revert(words); qSort(personal.begin(), personal.end(), compareWords); if (personal == m_personal) { return; } // Remove current personal dictionary foreach (DictionaryData* dictionary, m_dictionaries) { dictionary->removeFromSession(m_personal); } // Update and store personal dictionary m_personal = personal; QFile file(m_path + "/personal"); if (file.open(QIODevice::WriteOnly | QIODevice::Text)) { QTextStream stream(&file); stream.setCodec("UTF-8"); foreach (const QString& word, m_personal) { stream << word << "\n"; } } // Add personal dictionary foreach (DictionaryData* dictionary, m_dictionaries) { dictionary->addToSession(m_personal); } // Re-check documents emit changed(); } //----------------------------------------------------------------------------- DictionaryManager::DictionaryManager() { // Load personal dictionary QFile file(m_path + "/personal"); if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { QTextStream stream(&file); stream.setCodec("UTF-8"); while (!stream.atEnd()) { m_personal.append(stream.readLine()); } qSort(m_personal.begin(), m_personal.end(), compareWords); } } //----------------------------------------------------------------------------- DictionaryManager::~DictionaryManager() { foreach (DictionaryData* dictionary, m_dictionaries) { delete dictionary; } m_dictionaries.clear(); } //----------------------------------------------------------------------------- DictionaryData** DictionaryManager::requestDictionaryData(const QString& language) { if (!m_dictionaries.contains(language)) { DictionaryData* dictionary = new DictionaryData(language); dictionary->addToSession(m_personal); m_dictionaries[language] = dictionary; } return &m_dictionaries[language]; } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/odt_reader.cpp000066400000000000000000000256411231434177300175150ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #include "odt_reader.h" #include #include #include #include //----------------------------------------------------------------------------- ODT::Reader::Reader() : m_in_block(true) { m_xml.setNamespaceProcessing(false); } //----------------------------------------------------------------------------- QString ODT::Reader::errorString() const { return m_error; } //----------------------------------------------------------------------------- bool ODT::Reader::hasError() const { return !m_error.isEmpty(); } //----------------------------------------------------------------------------- void ODT::Reader::read(const QString& filename, QTextDocument* text) { m_filename = filename; m_in_block = text->blockCount(); m_cursor = QTextCursor(text); m_block_format = m_cursor.blockFormat(); m_cursor.beginEditBlock(); // Open archive zip* archive = zip_open(QFile::encodeName(m_filename).constData(), 0, 0); if (!archive) { m_error = tr("Unable to open archive."); } try { const size_t buffer_size = 0x4000; char buffer[buffer_size + 1]; const char* files[] = { "styles.xml", "content.xml" }; for (int i = 0; i < 2; ++i) { const char* file = files[i]; int index = zip_name_locate(archive, file, 0); if (index != -1) { zip_file* zfile = zip_fopen_index(archive, index, 0); if (zfile == 0) { throw tr("Unable to open file '%1'.").arg(file); } m_xml.clear(); int len = 0; while ((len = zip_fread(zfile, &buffer, buffer_size)) > 0) { buffer[len] = 0; m_xml.addData(buffer); } if (zip_fclose(zfile) != 0) { throw tr("Unable to close file '%1'.").arg(file); } readDocument(); if (m_xml.hasError()) { throw m_xml.errorString(); } } } } catch (QString error) { m_error = error; } m_cursor.endEditBlock(); // Close archive zip_close(archive); m_xml.clear(); QApplication::processEvents(); } //----------------------------------------------------------------------------- void ODT::Reader::readDocument() { m_xml.readNextStartElement(); while (m_xml.readNextStartElement()) { if (m_xml.qualifiedName() == "office:styles") { readStylesGroup(); } else if (m_xml.qualifiedName() == "office:automatic-styles") { readStylesGroup(); } else if (m_xml.qualifiedName() == "office:body") { readBody(); } else { m_xml.skipCurrentElement(); } } } //----------------------------------------------------------------------------- void ODT::Reader::readStylesGroup() { while (m_xml.readNextStartElement()) { if (m_xml.qualifiedName() == "style:style") { readStyle(); } else { m_xml.skipCurrentElement(); } } } //----------------------------------------------------------------------------- void ODT::Reader::readStyle() { QXmlStreamAttributes attributes = m_xml.attributes(); QString name = attributes.value(QLatin1String("style:name")).toString(); int type = -1; QStringRef family = attributes.value(QLatin1String("style:family")); if (family == "paragraph") { type = 0; } else if (family == "text") { type = 1; } else { m_xml.skipCurrentElement(); return; } if (!m_styles[type].contains(name)) { m_styles[type][name] = Style(m_block_format); } Style& style = m_styles[type][name]; QString parent_style = attributes.value(QLatin1String("style:parent-style-name")).toString(); if (!parent_style.isEmpty()) { if (m_styles[0].contains(parent_style)) { style = m_styles[0][parent_style]; } else if (m_styles[1].contains(parent_style)) { style = m_styles[1][parent_style]; } } while (m_xml.readNextStartElement()) { if (m_xml.qualifiedName() == "style:paragraph-properties") { readStyleParagraphProperties(style.block_format); } else if (m_xml.qualifiedName() == "style:text-properties") { readStyleTextProperties(style.char_format); } else { m_xml.skipCurrentElement(); } } } //----------------------------------------------------------------------------- void ODT::Reader::readStyleParagraphProperties(QTextBlockFormat& format) { QXmlStreamAttributes attributes = m_xml.attributes(); QStringRef align = attributes.value(QLatin1String("fo:text-align")); if (align == "start") { format.setAlignment(Qt::AlignLeading); } else if (align == "end") { format.setAlignment(Qt::AlignTrailing); } else if (align == "left") { format.setAlignment(Qt::AlignLeft | Qt::AlignAbsolute); } else if (align == "right") { format.setAlignment(Qt::AlignRight | Qt::AlignAbsolute); } else if (align == "center") { format.setAlignment(Qt::AlignHCenter); } else if (align == "justify") { format.setAlignment(Qt::AlignJustify); } QStringRef direction = attributes.value(QLatin1String("style:writing-mode")); if (direction == "rl-tb" || direction == "rl") { format.setLayoutDirection(Qt::RightToLeft); } else if (direction == "lr-tb" || direction == "lr") { format.setLayoutDirection(Qt::LeftToRight); } if (attributes.hasAttribute(QLatin1String("fo:margin-left"))) { QString margin = attributes.value(QLatin1String("fo:margin-left")).toString(); QString type = margin.right(2); margin.chop(2); int value = 0; // Assume 96 DPI for margin if (type == ("pt")) { value = qRound(margin.toDouble() / 36.0); } else if (type == ("in")) { value = qRound(margin.toDouble() * 2.0); } format.setIndent(value * 48); } m_xml.skipCurrentElement(); } //----------------------------------------------------------------------------- void ODT::Reader::readStyleTextProperties(QTextCharFormat& format) { QXmlStreamAttributes attributes = m_xml.attributes(); if (attributes.value(QLatin1String("fo:font-weight")) == "bold") { format.setFontWeight(QFont::Bold); } if (attributes.value(QLatin1String("fo:font-style")) == "italic") { format.setFontItalic(true); } if (attributes.hasAttribute(QLatin1String("style:text-underline-style")) && attributes.value(QLatin1String("style:text-underline-style")) != "none") { format.setFontUnderline(true); } if (attributes.hasAttribute((QLatin1String("style:text-underline-type"))) && attributes.value(QLatin1String("style:text-underline-type")) != "none") { format.setFontUnderline(true); } if (attributes.hasAttribute((QLatin1String("style:text-line-through-type"))) && attributes.value(QLatin1String("style:text-line-through-type")) != "none") { format.setFontStrikeOut(true); } if (attributes.hasAttribute(QLatin1String("style:text-position"))) { QStringRef position = attributes.value((QLatin1String("style:text-position"))); if (position == "super") { format.setVerticalAlignment(QTextCharFormat::AlignSuperScript); } else if (position == "sub") { format.setVerticalAlignment(QTextCharFormat::AlignSubScript); } else { QString value = position.toString(); value.chop(1); if (value.toInt() > 0) { format.setVerticalAlignment(QTextCharFormat::AlignSuperScript); } else { format.setVerticalAlignment(QTextCharFormat::AlignSubScript); } } } m_xml.skipCurrentElement(); } //----------------------------------------------------------------------------- void ODT::Reader::readBody() { while (m_xml.readNextStartElement()) { if (m_xml.qualifiedName() == "office:text") { readBodyText(); } else { m_xml.skipCurrentElement(); } } } //----------------------------------------------------------------------------- void ODT::Reader::readBodyText() { while (m_xml.readNextStartElement()) { if (m_xml.qualifiedName() == "text:p" || m_xml.qualifiedName() == "text:h") { readParagraph(); } else { m_xml.skipCurrentElement(); } } } //----------------------------------------------------------------------------- void ODT::Reader::readParagraph() { QTextBlockFormat block_format; QTextCharFormat char_format; // Style paragraph QXmlStreamAttributes attributes = m_xml.attributes(); if (attributes.hasAttribute(QLatin1String("text:style-name"))) { const Style& style = m_styles[0][attributes.value(QLatin1String("text:style-name")).toString()]; block_format = style.block_format; char_format = style.char_format; } // Create paragraph if (!m_in_block) { m_cursor.insertBlock(block_format, char_format); m_in_block = true; } else { m_cursor.mergeBlockFormat(block_format); m_cursor.mergeBlockCharFormat(char_format); } // Read paragraph text readText(); m_in_block = false; } //----------------------------------------------------------------------------- void ODT::Reader::readSpan() { QXmlStreamAttributes attributes = m_xml.attributes(); // Style text QTextCharFormat format = m_cursor.charFormat(); if (attributes.hasAttribute(QLatin1String("text:style-name"))) { const Style& style = m_styles[1][attributes.value(QLatin1String("text:style-name")).toString()]; m_cursor.mergeCharFormat(style.char_format); } if (attributes.hasAttribute(QLatin1String("text:class-names"))) { QStringList styles = attributes.value(QLatin1String("text:class-names")).toString().simplified().split(QLatin1Char(' '), QString::SkipEmptyParts); int count = styles.count(); for (int i = 0; i < count; ++i) { const Style& style = m_styles[1][styles.at(i)]; m_cursor.mergeCharFormat(style.char_format); } } // Read styled text readText(); // Restore previous style m_cursor.setCharFormat(format); } //----------------------------------------------------------------------------- void ODT::Reader::readText() { int depth = 1; while (depth && (m_xml.readNext() != QXmlStreamReader::Invalid)) { if (m_xml.isCharacters()) { m_cursor.insertText(m_xml.text().toString()); } else if (m_xml.isStartElement()) { ++depth; if (m_xml.qualifiedName() == "text:span") { readSpan(); --depth; } else if (m_xml.qualifiedName() == "text:s") { int spaces = m_xml.attributes().value(QLatin1String("text:c")).toString().toInt(); m_cursor.insertText(QString(qMax(1, spaces), QLatin1Char(' '))); } else if (m_xml.qualifiedName() == "text:tab") { m_cursor.insertText(QLatin1String("\t")); } else if (m_xml.qualifiedName() == "text:line-break") { m_cursor.insertText(QChar(0x2028)); } } else if (m_xml.isEndElement()) { --depth; } } } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/odt_reader.h000066400000000000000000000037401231434177300171560ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef ODT_READER_H #define ODT_READER_H #include #include #include #include class QIODevice; class QTextDocument; namespace ODT { class Reader { Q_DECLARE_TR_FUNCTIONS(Reader) public: Reader(); QString errorString() const; bool hasError() const; void read(const QString& filename, QTextDocument* text); private: void readDocument(); void readStylesGroup(); void readStyle(); void readStyleParagraphProperties(QTextBlockFormat& format); void readStyleTextProperties(QTextCharFormat& format); void readBody(); void readBodyText(); void readParagraph(); void readSpan(); void readText(); private: QString m_filename; QXmlStreamReader m_xml; QTextCursor m_cursor; struct Style { Style(const QTextBlockFormat& block_format_ = QTextBlockFormat(), const QTextCharFormat& char_format_ = QTextCharFormat()) : block_format(block_format_), char_format(char_format_) { } QTextBlockFormat block_format; QTextCharFormat char_format; }; QHash m_styles[2]; QTextBlockFormat m_block_format; bool m_in_block; QString m_error; }; } #endif focuswriter-1.4.5/src/paths.cpp000066400000000000000000000052511231434177300165170ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2013 Graeme Gott * * 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 . * ***********************************************************************/ // Need this to find the old data locations from Qt 4 when using Qt 5. // QDesktopServices::storageLocation() is deprecated and returns a different // path than QStandardPaths::writableLocation(). #define QT_DISABLE_DEPRECATED_BEFORE 0x000000 #include "paths.h" #include #include #include #if (QT_VERSION >= QT_VERSION_CHECK(5,0,0)) #include #endif #include //----------------------------------------------------------------------------- QString Paths::dataPath() { #if (QT_VERSION >= QT_VERSION_CHECK(5,0,0)) static QString path = QStandardPaths::writableLocation(QStandardPaths::DataLocation); #else static QString path = QDesktopServices::storageLocation(QDesktopServices::DataLocation); #endif return path; } //----------------------------------------------------------------------------- QString Paths::oldDataPath() { QStringList oldpaths; QString oldpath; #if (QT_VERSION >= QT_VERSION_CHECK(5,0,0)) // Data path from Qt 4 version of 1.4 oldpaths.append(QDesktopServices::storageLocation(QDesktopServices::DataLocation)); #endif // Data path from 1.0 #if defined(Q_OS_MAC) oldpath = QDir::homePath() + "/Library/Application Support/GottCode/FocusWriter/"; #elif defined(Q_OS_UNIX) oldpath = QString::fromLocal8Bit(qgetenv("XDG_DATA_HOME")); if (oldpath.isEmpty()) { oldpath = QDir::homePath() + "/.local/share"; } oldpath += "/focuswriter"; #else oldpath = QDir::homePath() + "/Application Data/GottCode/FocusWriter/"; #endif if (!oldpaths.contains(oldpath)) { oldpaths.append(oldpath); } // Check if an old data location exists oldpath.clear(); foreach (const QString& testpath, oldpaths) { if (QFile::exists(testpath)) { oldpath = testpath; break; } } return oldpath; } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/paths.h000066400000000000000000000017501231434177300161640ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2013 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef PATHS_H #define PATHS_H class QString; class Paths { public: static QString dataPath(); static QString oldDataPath(); }; #endif focuswriter-1.4.5/src/preferences.cpp000066400000000000000000000351641231434177300177070ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2008, 2009, 2010, 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #include "preferences.h" #include "dictionary.h" #include "dictionary_manager.h" #include "scene_model.h" #include #include #include #include //----------------------------------------------------------------------------- Preferences::Preferences() { QSettings settings; m_goal_type = settings.value("Goal/Type", 1).toInt(); m_goal_minutes = settings.value("Goal/Minutes", 30).toInt(); m_goal_words = settings.value("Goal/Words", 1000).toInt(); m_show_characters = settings.value("Stats/ShowCharacters", false).toBool(); m_show_pages = settings.value("Stats/ShowPages", false).toBool(); m_show_paragraphs = settings.value("Stats/ShowParagraphs", false).toBool(); m_show_words = settings.value("Stats/ShowWords", true).toBool(); m_page_type = settings.value("Stats/PageSizeType", 2).toInt(); m_page_characters = settings.value("Stats/CharactersPerPage", 1500).toInt(); m_page_paragraphs = settings.value("Stats/ParagraphsPerPage", 5).toInt(); m_page_words = settings.value("Stats/WordsPerPage", 250).toInt(); m_accurate_wordcount = settings.value("Stats/AccurateWordcount", true).toBool(); m_always_center = settings.value("Edit/AlwaysCenter", false).toBool(); m_block_cursor = settings.value("Edit/BlockCursor", false).toBool(); m_smooth_fonts = settings.value("Edit/SmoothFonts", true).toBool(); m_smart_quotes = settings.value("Edit/SmartQuotes", true).toBool(); m_double_quotes = settings.value("Edit/SmartDoubleQuotes", -1).toInt(); m_single_quotes = settings.value("Edit/SmartSingleQuotes", -1).toInt(); m_typewriter_sounds = settings.value("Edit/TypewriterSounds", false).toBool(); m_scene_divider = settings.value("SceneList/Divider", QLatin1String("##")).toString(); SceneModel::setSceneDivider(m_scene_divider); m_auto_save = settings.value("Save/Auto", false).toBool(); m_save_positions = settings.value("Save/RememberPositions", true).toBool(); m_toolbar_style = settings.value("Toolbar/Style", QApplication::style()->styleHint(QStyle::SH_ToolButtonStyle)).toInt(); m_toolbar_actions = QStringList() << "New" << "Open" << "Save" << "|" << "Undo" << "Redo" << "|" << "Cut" << "Copy" << "Paste" << "|" << "Find" << "Replace" << "|" << "Themes"; m_toolbar_actions = settings.value("Toolbar/Actions", m_toolbar_actions).toStringList(); m_highlight_misspelled = settings.value("Spelling/HighlightMisspelled", true).toBool(); m_ignore_numbers = settings.value("Spelling/IgnoreNumbers", true).toBool(); m_ignore_uppercase = settings.value("Spelling/IgnoreUppercase", true).toBool(); m_language = settings.value("Spelling/Language", QLocale().name()).toString(); QStringList languages = DictionaryManager::instance().availableDictionaries(); if (!languages.isEmpty() && !languages.contains(m_language)) { int close = languages.indexOf(QRegExp(m_language.left(2) + ".*")); m_language = (close != -1) ? languages.at(close) : (languages.contains("en_US") ? "en_US" : languages.first()); } DictionaryManager::instance().setDefaultLanguage(m_language); Dictionary::setIgnoreNumbers(m_ignore_numbers); Dictionary::setIgnoreUppercase(m_ignore_uppercase); } //----------------------------------------------------------------------------- Preferences::~Preferences() { if (!isChanged()) { return; } QSettings settings; settings.setValue("Goal/Type", m_goal_type); settings.setValue("Goal/Minutes", m_goal_minutes); settings.setValue("Goal/Words", m_goal_words); settings.setValue("Stats/ShowCharacters", m_show_characters); settings.setValue("Stats/ShowPages", m_show_pages); settings.setValue("Stats/ShowParagraphs", m_show_paragraphs); settings.setValue("Stats/ShowWords", m_show_words); settings.setValue("Stats/PageSizeType", m_page_type); settings.setValue("Stats/CharactersPerPage", m_page_characters); settings.setValue("Stats/ParagraphsPerPage", m_page_paragraphs); settings.setValue("Stats/WordsPerPage", m_page_words); settings.setValue("Stats/AccurateWordcount", m_accurate_wordcount); settings.setValue("Edit/AlwaysCenter", m_always_center); settings.setValue("Edit/BlockCursor", m_block_cursor); settings.setValue("Edit/SmoothFonts", m_smooth_fonts); settings.setValue("Edit/SmartQuotes", m_smart_quotes); settings.setValue("Edit/SmartDoubleQuotes", m_double_quotes); settings.setValue("Edit/SmartSingleQuotes", m_single_quotes); settings.setValue("Edit/TypewriterSounds", m_typewriter_sounds); settings.setValue("SceneList/Divider", m_scene_divider); settings.setValue("Save/Auto", m_auto_save); settings.setValue("Save/RememberPositions", m_save_positions); settings.setValue("Toolbar/Style", m_toolbar_style); settings.setValue("Toolbar/Actions", m_toolbar_actions); settings.setValue("Spelling/HighlightMisspelled", m_highlight_misspelled); settings.setValue("Spelling/IgnoreNumbers", m_ignore_numbers); settings.setValue("Spelling/IgnoreUppercase", m_ignore_uppercase); settings.setValue("Spelling/Language", m_language); } //----------------------------------------------------------------------------- int Preferences::goalType() const { return m_goal_type; } //----------------------------------------------------------------------------- int Preferences::goalMinutes() const { return m_goal_minutes; } //----------------------------------------------------------------------------- int Preferences::goalWords() const { return m_goal_words; } //----------------------------------------------------------------------------- void Preferences::setGoalType(int goal) { setValue(m_goal_type, goal); } //----------------------------------------------------------------------------- void Preferences::setGoalMinutes(int goal) { setValue(m_goal_minutes, goal); } //----------------------------------------------------------------------------- void Preferences::setGoalWords(int goal) { setValue(m_goal_words, goal); } //----------------------------------------------------------------------------- bool Preferences::showCharacters() const { return m_show_characters; } //----------------------------------------------------------------------------- bool Preferences::showPages() const { return m_show_pages; } //----------------------------------------------------------------------------- bool Preferences::showParagraphs() const { return m_show_paragraphs; } //----------------------------------------------------------------------------- bool Preferences::showWords() const { return m_show_words; } //----------------------------------------------------------------------------- void Preferences::setShowCharacters(bool show) { setValue(m_show_characters, show); } //----------------------------------------------------------------------------- void Preferences::setShowPages(bool show) { setValue(m_show_pages, show); } //----------------------------------------------------------------------------- void Preferences::setShowParagraphs(bool show) { setValue(m_show_paragraphs, show); } //----------------------------------------------------------------------------- void Preferences::setShowWords(bool show) { setValue(m_show_words, show); } //----------------------------------------------------------------------------- int Preferences::pageType() const { return m_page_type; } //----------------------------------------------------------------------------- int Preferences::pageCharacters() const { return m_page_characters; } //----------------------------------------------------------------------------- int Preferences::pageParagraphs() const { return m_page_paragraphs; } //----------------------------------------------------------------------------- int Preferences::pageWords() const { return m_page_words; } //----------------------------------------------------------------------------- void Preferences::setPageType(int type) { setValue(m_page_type, type); } //----------------------------------------------------------------------------- void Preferences::setPageCharacters(int characters) { setValue(m_page_characters, characters); } //----------------------------------------------------------------------------- void Preferences::setPageParagraphs(int paragraphs) { setValue(m_page_paragraphs, paragraphs); } //----------------------------------------------------------------------------- void Preferences::setPageWords(int words) { setValue(m_page_words, words); } //----------------------------------------------------------------------------- bool Preferences::accurateWordcount() const { return m_accurate_wordcount; } //----------------------------------------------------------------------------- void Preferences::setAccurateWordcount(bool accurate) { setValue(m_accurate_wordcount, accurate); } //----------------------------------------------------------------------------- bool Preferences::alwaysCenter() const { return m_always_center; } //----------------------------------------------------------------------------- bool Preferences::blockCursor() const { return m_block_cursor; } //----------------------------------------------------------------------------- bool Preferences::smoothFonts() const { return m_smooth_fonts; } //----------------------------------------------------------------------------- bool Preferences::smartQuotes() const { return m_smart_quotes; } //----------------------------------------------------------------------------- int Preferences::doubleQuotes() const { return m_double_quotes; } //----------------------------------------------------------------------------- int Preferences::singleQuotes() const { return m_single_quotes; } //----------------------------------------------------------------------------- bool Preferences::typewriterSounds() const { return m_typewriter_sounds; } //----------------------------------------------------------------------------- void Preferences::setAlwaysCenter(bool center) { setValue(m_always_center, center); } //----------------------------------------------------------------------------- void Preferences::setBlockCursor(bool block) { setValue(m_block_cursor, block); } //----------------------------------------------------------------------------- void Preferences::setSmoothFonts(bool smooth) { setValue(m_smooth_fonts, smooth); } //----------------------------------------------------------------------------- void Preferences::setSmartQuotes(bool quotes) { setValue(m_smart_quotes, quotes); } //----------------------------------------------------------------------------- void Preferences::setDoubleQuotes(int quotes) { setValue(m_double_quotes, quotes); } //----------------------------------------------------------------------------- void Preferences::setSingleQuotes(int quotes) { setValue(m_single_quotes, quotes); } //----------------------------------------------------------------------------- void Preferences::setTypewriterSounds(bool sounds) { setValue(m_typewriter_sounds, sounds); } //----------------------------------------------------------------------------- QString Preferences::sceneDivider() const { return m_scene_divider; } //----------------------------------------------------------------------------- void Preferences::setSceneDivider(const QString& divider) { setValue(m_scene_divider, divider); SceneModel::setSceneDivider(m_scene_divider); } //----------------------------------------------------------------------------- bool Preferences::autoSave() const { return m_auto_save; } //----------------------------------------------------------------------------- bool Preferences::savePositions() const { return m_save_positions; } //----------------------------------------------------------------------------- void Preferences::setAutoSave(bool save) { setValue(m_auto_save, save); } //----------------------------------------------------------------------------- void Preferences::setSavePositions(bool save) { setValue(m_save_positions, save); } //----------------------------------------------------------------------------- int Preferences::toolbarStyle() const { return m_toolbar_style; } //----------------------------------------------------------------------------- QStringList Preferences::toolbarActions() const { return m_toolbar_actions; } //----------------------------------------------------------------------------- void Preferences::setToolbarStyle(int style) { setValue(m_toolbar_style, style); } //----------------------------------------------------------------------------- void Preferences::setToolbarActions(const QStringList& actions) { setValue(m_toolbar_actions, actions); } //----------------------------------------------------------------------------- bool Preferences::highlightMisspelled() const { return m_highlight_misspelled; } //----------------------------------------------------------------------------- bool Preferences::ignoredWordsWithNumbers() const { return m_ignore_numbers; } //----------------------------------------------------------------------------- bool Preferences::ignoredUppercaseWords() const { return m_ignore_uppercase; } //----------------------------------------------------------------------------- QString Preferences::language() const { return m_language; } //----------------------------------------------------------------------------- void Preferences::setHighlightMisspelled(bool highlight) { setValue(m_highlight_misspelled, highlight); } //----------------------------------------------------------------------------- void Preferences::setIgnoreWordsWithNumbers(bool ignore) { setValue(m_ignore_numbers, ignore); } //----------------------------------------------------------------------------- void Preferences::setIgnoreUppercaseWords(bool ignore) { setValue(m_ignore_uppercase, ignore); } //----------------------------------------------------------------------------- void Preferences::setLanguage(const QString& language) { setValue(m_language, language); } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/preferences.h000066400000000000000000000070031231434177300173430ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2008, 2009, 2010, 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef PREFERENCES_H #define PREFERENCES_H #include "settings_file.h" #include class Preferences : public SettingsFile { public: Preferences(); ~Preferences(); int goalType() const; int goalMinutes() const; int goalWords() const; void setGoalType(int goal); void setGoalMinutes(int goal); void setGoalWords(int goal); bool showCharacters() const; bool showPages() const; bool showParagraphs() const; bool showWords() const; void setShowCharacters(bool show); void setShowPages(bool show); void setShowParagraphs(bool show); void setShowWords(bool show); int pageType() const; int pageCharacters() const; int pageParagraphs() const; int pageWords() const; void setPageType(int type); void setPageCharacters(int characters); void setPageParagraphs(int paragraphs); void setPageWords(int words); bool accurateWordcount() const; void setAccurateWordcount(bool accurate); bool alwaysCenter() const; bool blockCursor() const; bool smoothFonts() const; bool smartQuotes() const; int doubleQuotes() const; int singleQuotes() const; bool typewriterSounds() const; void setAlwaysCenter(bool center); void setBlockCursor(bool block); void setSmoothFonts(bool smooth); void setSmartQuotes(bool quotes); void setDoubleQuotes(int quotes); void setSingleQuotes(int quotes); void setTypewriterSounds(bool sounds); QString sceneDivider() const; void setSceneDivider(const QString& divider); bool autoSave() const; bool savePositions() const; void setAutoSave(bool save); void setSavePositions(bool save); int toolbarStyle() const; QStringList toolbarActions() const; void setToolbarStyle(int style); void setToolbarActions(const QStringList& actions); bool highlightMisspelled() const; bool ignoredWordsWithNumbers() const; bool ignoredUppercaseWords() const; QString language() const; void setHighlightMisspelled(bool highlight); void setIgnoreWordsWithNumbers(bool ignore); void setIgnoreUppercaseWords(bool ignore); void setLanguage(const QString& language); private: int m_goal_type; int m_goal_minutes; int m_goal_words; bool m_show_characters; bool m_show_pages; bool m_show_paragraphs; bool m_show_words; int m_page_type; int m_page_characters; int m_page_paragraphs; int m_page_words; bool m_accurate_wordcount; bool m_always_center; bool m_block_cursor; bool m_smooth_fonts; bool m_smart_quotes; int m_double_quotes; int m_single_quotes; bool m_typewriter_sounds; QString m_scene_divider; bool m_auto_save; bool m_save_positions; int m_toolbar_style; QStringList m_toolbar_actions; bool m_highlight_misspelled; bool m_ignore_uppercase; bool m_ignore_numbers; QString m_language; }; #endif focuswriter-1.4.5/src/preferences_dialog.cpp000066400000000000000000001057361231434177300212310ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2008, 2009, 2010, 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #include "preferences_dialog.h" #include "action_manager.h" #include "dictionary.h" #include "dictionary_manager.h" #include "locale_dialog.h" #include "preferences.h" #include "shortcut_edit.h" #include "smart_quotes.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //----------------------------------------------------------------------------- namespace { QWidget* makeScrollable(QWidget* tab) { QScrollArea* area = new QScrollArea(tab->parentWidget()); area->setFrameStyle(QFrame::NoFrame); area->setWidget(tab); area->setWidgetResizable(true); area->setBackgroundRole(QPalette::Link); QPalette p = area->palette(); p.setColor(area->backgroundRole(), Qt::transparent); area->setPalette(p); return area; } bool recursivelyRemove(const QString& path) { // Abort early if directory doesn't exist QDir dir(path); if (!dir.exists()) { return true; } // Remove subdirectories QStringList contents = dir.entryList(QDir::NoDotAndDotDot | QDir::Dirs | QDir::Hidden | QDir::System); foreach (const QString& entry, contents) { if (!recursivelyRemove(dir.absoluteFilePath(entry))) { return false; } } // Remove all files contents = dir.entryList(QDir::Files | QDir::Hidden | QDir::System); foreach (const QString& entry, contents) { if (!QFile::remove(dir.absoluteFilePath(entry))) { return false; } } // Remove directory return dir.rmdir(path); } } //----------------------------------------------------------------------------- PreferencesDialog::PreferencesDialog(Preferences& preferences, QWidget* parent) : QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint), m_preferences(preferences), m_shortcut_conflicts(false) { setWindowTitle(tr("Preferences")); m_tabs = new QTabWidget(this); m_tabs->addTab(initGeneralTab(), tr("General")); m_tabs->addTab(initStatisticsTab(), tr("Statistics")); m_tabs->addTab(initSpellingTab(), tr("Spell Checking")); m_tabs->addTab(initToolbarTab(), tr("Toolbar")); m_tabs->addTab(initShortcutsTab(), tr("Shortcuts")); m_tabs->setUsesScrollButtons(false); QDialogButtonBox* buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, this); connect(buttons, SIGNAL(accepted()), this, SLOT(accept())); connect(buttons, SIGNAL(rejected()), this, SLOT(reject())); QVBoxLayout* layout = new QVBoxLayout(this); layout->addWidget(m_tabs); layout->addWidget(buttons); // Load settings switch (m_preferences.goalType()) { case 1: m_option_time->setChecked(true); break; case 2: m_option_wordcount->setChecked(true); break; default: m_option_none->setChecked(true); break; } m_time->setValue(m_preferences.goalMinutes()); m_wordcount->setValue(m_preferences.goalWords()); m_show_characters->setChecked(m_preferences.showCharacters()); m_show_pages->setChecked(m_preferences.showPages()); m_show_paragraphs->setChecked(m_preferences.showParagraphs()); m_show_words->setChecked(m_preferences.showWords()); switch (m_preferences.pageType()) { case 1: m_option_paragraphs->setChecked(true); break; case 2: m_option_words->setChecked(true); break; default: m_option_characters->setChecked(true); break; } m_page_characters->setValue(m_preferences.pageCharacters()); m_page_paragraphs->setValue(m_preferences.pageParagraphs()); m_page_words->setValue(m_preferences.pageWords()); if (m_preferences.accurateWordcount()) { m_option_accurate_wordcount->setChecked(true); } else { m_option_estimate_wordcount->setChecked(true); } m_always_center->setChecked(m_preferences.alwaysCenter()); m_block_cursor->setChecked(m_preferences.blockCursor()); m_smooth_fonts->setChecked(m_preferences.smoothFonts()); m_smart_quotes->setChecked(m_preferences.smartQuotes()); m_double_quotes->setCurrentIndex(m_preferences.doubleQuotes()); m_single_quotes->setCurrentIndex(m_preferences.singleQuotes()); m_typewriter_sounds->setChecked(m_preferences.typewriterSounds()); m_scene_divider->setText(m_preferences.sceneDivider()); m_auto_save->setChecked(m_preferences.autoSave()); m_save_positions->setChecked(m_preferences.savePositions()); m_highlight_misspelled->setChecked(m_preferences.highlightMisspelled()); m_ignore_numbers->setChecked(m_preferences.ignoredWordsWithNumbers()); m_ignore_uppercase->setChecked(m_preferences.ignoredUppercaseWords()); int index = m_languages->findData(m_preferences.language()); if (index != -1) { m_languages->setCurrentIndex(index); } int style = m_toolbar_style->findData(m_preferences.toolbarStyle()); if (style == -1) { style = m_toolbar_style->findData(Qt::ToolButtonTextUnderIcon); } m_toolbar_style->setCurrentIndex(style); QStringList actions = m_preferences.toolbarActions(); int pos = 0; foreach (const QString& action, actions) { QString text = action; bool checked = !text.startsWith("^"); if (!checked) { text.remove(0, 1); } QListWidgetItem* item = 0; if (text != "|") { int count = m_toolbar_actions->count(); for (int i = pos; i < count; ++i) { if (m_toolbar_actions->item(i)->data(Qt::UserRole).toString() == text) { item = m_toolbar_actions->takeItem(i); break; } } } else if (checked) { item = new QListWidgetItem(QString(20, QChar('-'))); item->setData(Qt::UserRole, "|"); } if (item != 0) { item->setCheckState(checked ? Qt::Checked : Qt::Unchecked); m_toolbar_actions->insertItem(pos, item); pos++; } } m_toolbar_actions->setCurrentRow(0); resize(QSettings().value("Preferences/Size", QSize(650, 560)).toSize()); } //----------------------------------------------------------------------------- PreferencesDialog::~PreferencesDialog() { QSettings().setValue("Preferences/Size", size()); } //----------------------------------------------------------------------------- void PreferencesDialog::accept() { // Confirm close even with shortcut conflicts if (m_shortcut_conflicts) { m_tabs->setCurrentIndex(4); if (QMessageBox::question(this, tr("Question"), tr("One or more shortcuts conflict. Do you wish to proceed?"), QMessageBox::Yes | QMessageBox::No, QMessageBox::No) == QMessageBox::No) { return; } } // Save settings if (m_option_time->isChecked()) { m_preferences.setGoalType(1); } else if (m_option_wordcount->isChecked()) { m_preferences.setGoalType(2); } else { m_preferences.setGoalType(0); } m_preferences.setGoalMinutes(m_time->value()); m_preferences.setGoalWords(m_wordcount->value()); m_preferences.setShowCharacters(m_show_characters->isChecked()); m_preferences.setShowPages(m_show_pages->isChecked()); m_preferences.setShowParagraphs(m_show_paragraphs->isChecked()); m_preferences.setShowWords(m_show_words->isChecked()); if (m_option_paragraphs->isChecked()) { m_preferences.setPageType(1); } else if (m_option_words->isChecked()) { m_preferences.setPageType(2); } else { m_preferences.setPageType(0); } m_preferences.setPageCharacters(m_page_characters->value()); m_preferences.setPageParagraphs(m_page_paragraphs->value()); m_preferences.setPageWords(m_page_words->value()); m_preferences.setAccurateWordcount(m_option_accurate_wordcount->isChecked()); m_preferences.setAlwaysCenter(m_always_center->isChecked()); m_preferences.setBlockCursor(m_block_cursor->isChecked()); m_preferences.setSmoothFonts(m_smooth_fonts->isChecked()); m_preferences.setSmartQuotes(m_smart_quotes->isChecked()); m_preferences.setDoubleQuotes(m_double_quotes->currentIndex()); m_preferences.setSingleQuotes(m_single_quotes->currentIndex()); m_preferences.setTypewriterSounds(m_typewriter_sounds->isChecked()); m_preferences.setSceneDivider(m_scene_divider->text()); m_preferences.setAutoSave(m_auto_save->isChecked()); m_preferences.setSavePositions(m_save_positions->isChecked()); m_preferences.setToolbarStyle(m_toolbar_style->itemData(m_toolbar_style->currentIndex()).toInt()); QStringList actions; int count = m_toolbar_actions->count(); for (int i = 0; i < count; ++i) { QListWidgetItem* item = m_toolbar_actions->item(i); QString action = (item->checkState() == Qt::Unchecked ? "^" : "") + item->data(Qt::UserRole).toString(); if (action != "^|") { actions.append(action); } } m_preferences.setToolbarActions(actions); ActionManager::instance()->setShortcuts(m_new_shortcuts); // Install languages QString path = DictionaryManager::path() + "/install/"; QString new_path = DictionaryManager::installedPath() + "/"; QDir dir(path); #ifdef Q_OS_WIN QStringList dirs = dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); foreach (const QString& file, dirs) { QFile::rename(path + file, new_path + file); } #endif QStringList files = dir.entryList(QDir::Files); foreach (const QString& file, files) { QFile::remove(new_path + file); QFile::rename(path + file, new_path + file); } dir.cdUp(); dir.rmdir("install"); // Set dictionary m_preferences.setHighlightMisspelled(m_highlight_misspelled->isChecked()); m_preferences.setIgnoreWordsWithNumbers(m_ignore_numbers->isChecked()); m_preferences.setIgnoreUppercaseWords(m_ignore_uppercase->isChecked()); if (m_languages->count()) { m_preferences.setLanguage(m_languages->itemData(m_languages->currentIndex()).toString()); } else { m_preferences.setLanguage(QString()); } Dictionary::setIgnoreNumbers(m_preferences.ignoredWordsWithNumbers()); Dictionary::setIgnoreUppercase(m_preferences.ignoredUppercaseWords()); DictionaryManager::instance().setDefaultLanguage(m_preferences.language()); // Save personal dictionary QStringList words; for (int i = 0; i < m_personal_dictionary->count(); ++i) { words.append(m_personal_dictionary->item(i)->text()); } DictionaryManager::instance().setPersonal(words); QDialog::accept(); } //----------------------------------------------------------------------------- void PreferencesDialog::reject() { if (!recursivelyRemove(DictionaryManager::path() + "/install/")) { qWarning("Failed to clean up dictionary install path"); } QDialog::reject(); } //----------------------------------------------------------------------------- void PreferencesDialog::moveActionUp() { int from = m_toolbar_actions->currentRow(); int to = from - 1; if (from > 0) { m_toolbar_actions->insertItem(to, m_toolbar_actions->takeItem(from)); m_toolbar_actions->setCurrentRow(to); } } //----------------------------------------------------------------------------- void PreferencesDialog::moveActionDown() { int from = m_toolbar_actions->currentRow(); int to = from + 1; if (to < m_toolbar_actions->count()) { m_toolbar_actions->insertItem(to, m_toolbar_actions->takeItem(from)); m_toolbar_actions->setCurrentRow(to); } } //----------------------------------------------------------------------------- void PreferencesDialog::addSeparatorAction() { QListWidgetItem* item = new QListWidgetItem(QString(20, QChar('-'))); item->setCheckState(Qt::Checked); item->setData(Qt::UserRole, "|"); m_toolbar_actions->insertItem(m_toolbar_actions->currentRow(), item); } //----------------------------------------------------------------------------- void PreferencesDialog::currentActionChanged(int action) { if (action != -1) { m_move_up_button->setEnabled(action > 0); m_move_down_button->setEnabled((action + 1) < m_toolbar_actions->count()); } } //----------------------------------------------------------------------------- void PreferencesDialog::addLanguage() { QString path = QFileDialog::getOpenFileName(this, tr("Select Dictionary"), QDir::homePath()); if (path.isEmpty()) { return; } // File lists QHash aff_files; QHash dic_files; QHash files; QStringList dictionaries; // Open archive zip* archive = zip_open(QFile::encodeName(path).constData(), 0, 0); if (!archive) { QMessageBox::warning(this, tr("Sorry"), tr("Unable to open archive.")); return; } try { // List files int count = zip_get_num_files(archive); if (count == -1) { throw tr("Unable to read archive metadata."); } for (int i = 0; i < count; ++i) { QString name = QString::fromUtf8(zip_get_name(archive, i, 0)); if (name.endsWith(".aff")) { aff_files[name] = i; } else if (name.endsWith(".dic")) { dic_files[name] = i; #ifdef Q_OS_WIN } else if (name.contains("mor-")) { files[name] = i; #endif } } // Find Voikko dictionaries if (!files.isEmpty()) { QStringList keys = files.keys(); foreach (const QString& file, keys) { QString name = file.section('/', -1).section('.', 0); name.replace("voikko-", ""); if (!dictionaries.contains(name)) { dictionaries += name; } } } // Find Hunspell dictionary files foreach (const QString& dic, dic_files.keys()) { QString aff = dic; aff.replace(".dic", ".aff"); if (aff_files.contains(aff)) { files[dic] = dic_files[dic]; files[aff] = aff_files[aff]; QString dictionary = dic.section('/', -1); dictionary.chop(4); dictionaries += dictionary; } } // Check for dictionaries if (dictionaries.isEmpty()) { throw tr("The archive does not contain a usable dictionary."); } // Extract files QDir dir(DictionaryManager::path()); dir.mkdir("install"); QString install = dir.absoluteFilePath("install") + "/"; QHashIterator i(files); while (i.hasNext()) { i.next(); QString filename = i.key(); if (filename.endsWith(".dic") || filename.endsWith(".aff")) { // Ignore path for Hunspell dictionaries filename = filename.section('/', -1); filename.replace(QChar('-'), QChar('_')); } else { // Create path for Voikko dictionary dir.setPath(install + filename + "/.."); dir.mkpath(dir.absolutePath()); } QFile file(install + filename); if (file.open(QIODevice::WriteOnly)) { zip_file* zfile = zip_fopen_index(archive, i.value(), 0); if (zfile == 0) { throw tr("Unable to open file '%1'.").arg(i.key()); } char buffer[8192]; int len; while ((len = zip_fread(zfile, &buffer, sizeof(buffer))) > 0) { file.write(buffer, len); } file.close(); if (zip_fclose(zfile) != 0) { throw tr("Unable to close file '%1'.").arg(i.key()); } } } // Add to language selection QString dictionary_path = DictionaryManager::path() + "/install/"; QString dictionary_new_path = DictionaryManager::installedPath() + "/"; foreach (const QString& dictionary, dictionaries) { QString language = dictionary; language.replace(QChar('-'), QChar('_')); QString name = LocaleDialog::languageName(language); // Prompt user about replacing duplicate languages QString aff_file = dictionary_path + dictionary + ".aff"; QString dic_file = dictionary_path + dictionary + ".dic"; QString new_aff_file = dictionary_new_path + language + ".aff"; QString new_dic_file = dictionary_new_path + language + ".dic"; if ((QFile::exists(new_aff_file) || QFile::exists(new_dic_file))) { if (QMessageBox::question(this, tr("Question"), tr("The dictionary \"%1\" already exists. Do you want to replace it?").arg(name), QMessageBox::Yes | QMessageBox::No, QMessageBox::No) == QMessageBox::No) { QFile::remove(aff_file); QFile::remove(dic_file); } continue; } m_languages->addItem(name, language); m_languages->setCurrentIndex(m_languages->count() - 1); } m_languages->model()->sort(0); } catch (QString error) { QMessageBox::warning(this, tr("Sorry"), error); } // Close archive zip_close(archive); } //----------------------------------------------------------------------------- void PreferencesDialog::addWord() { QString word = m_word->text(); m_word->clear(); int row; for (row = 0; row < m_personal_dictionary->count(); ++row) { if (m_personal_dictionary->item(row)->text().localeAwareCompare(word) > 0) { break; } } m_personal_dictionary->insertItem(row, word); } //----------------------------------------------------------------------------- void PreferencesDialog::removeWord() { delete m_personal_dictionary->selectedItems().first(); m_personal_dictionary->clearSelection(); } //----------------------------------------------------------------------------- void PreferencesDialog::selectedWordChanged() { m_remove_word_button->setDisabled(m_personal_dictionary->selectedItems().isEmpty()); } //----------------------------------------------------------------------------- void PreferencesDialog::wordEdited() { QString word = m_word->text(); m_add_word_button->setEnabled(!word.isEmpty() && m_personal_dictionary->findItems(word, Qt::MatchExactly).isEmpty()); } //----------------------------------------------------------------------------- void PreferencesDialog::selectedShortcutChanged() { m_shortcut_edit->setEnabled(m_shortcuts->currentItem() != 0); if (!m_shortcuts->currentItem()) { m_shortcut_edit->blockSignals(true); m_shortcut_edit->setShortcut(QKeySequence(), QKeySequence()); m_shortcut_edit->blockSignals(false); return; } // Set shortcut in editor QString name = m_shortcuts->currentItem()->text(2); QKeySequence shortcut = m_new_shortcuts.value(name, ActionManager::instance()->shortcut(name)); m_shortcut_edit->blockSignals(true); m_shortcut_edit->setShortcut(shortcut, ActionManager::instance()->defaultShortcut(name)); m_shortcut_edit->blockSignals(false); } //----------------------------------------------------------------------------- void PreferencesDialog::shortcutChanged() { if (!m_shortcuts->currentItem()) { return; } // Find old shortcut QString name = m_shortcuts->currentItem()->text(2); QKeySequence old_shortcut = m_new_shortcuts.value(name, ActionManager::instance()->shortcut(name)); QKeySequence shortcut = m_shortcut_edit->shortcut(); if (shortcut == old_shortcut) { return; } // Update shortcut m_new_shortcuts[name] = shortcut; m_shortcuts->currentItem()->setText(1, shortcut.toString(QKeySequence::NativeText)); highlightShortcutConflicts(); } //----------------------------------------------------------------------------- void PreferencesDialog::shortcutDoubleClicked() { m_shortcut_edit->setFocus(); } //----------------------------------------------------------------------------- void PreferencesDialog::highlightShortcutConflicts() { m_shortcut_conflicts = false; QFont conflict = font(); conflict.setBold(true); QMap shortcuts; for (int i = 0, count = m_shortcuts->topLevelItemCount(); i < count; ++i) { // Reset font and highlight QTreeWidgetItem* item = m_shortcuts->topLevelItem(i); item->setForeground(1, palette().foreground()); item->setFont(1, font()); // Find shortcut QString name = item->text(2); QKeySequence shortcut = m_new_shortcuts.value(name, ActionManager::instance()->shortcut(name)); if (shortcut.isEmpty()) { continue; } // Highlight conflict if (shortcuts.contains(shortcut)) { m_shortcut_conflicts = true; item->setForeground(1, Qt::red); item->setFont(1,conflict); shortcuts[shortcut]->setForeground(1, Qt::red); shortcuts[shortcut]->setFont(1, conflict); } shortcuts[shortcut] = item; } } //----------------------------------------------------------------------------- QWidget* PreferencesDialog::initGeneralTab() { QWidget* tab = new QWidget(this); // Create goal options QGroupBox* goals_group = new QGroupBox(tr("Daily Goal"), tab); m_option_none = new QRadioButton(tr("None"), goals_group); m_option_time = new QRadioButton(tr("Minutes:"), goals_group); m_time = new QSpinBox(goals_group); m_time->setCorrectionMode(QSpinBox::CorrectToNearestValue); m_time->setRange(5, 1440); m_time->setSingleStep(5); QHBoxLayout* time_layout = new QHBoxLayout; time_layout->addWidget(m_option_time); time_layout->addWidget(m_time); time_layout->addStretch(); m_option_wordcount = new QRadioButton(tr("Words:"), goals_group); m_wordcount = new QSpinBox(goals_group); m_wordcount->setCorrectionMode(QSpinBox::CorrectToNearestValue); m_wordcount->setRange(100, 100000); m_wordcount->setSingleStep(100); QHBoxLayout* wordcount_layout = new QHBoxLayout; wordcount_layout->addWidget(m_option_wordcount); wordcount_layout->addWidget(m_wordcount); wordcount_layout->addStretch(); QVBoxLayout* goals_layout = new QVBoxLayout(goals_group); goals_layout->addWidget(m_option_none); goals_layout->addLayout(time_layout); goals_layout->addLayout(wordcount_layout); // Create edit options QGroupBox* edit_group = new QGroupBox(tr("Editing"), tab); m_always_center = new QCheckBox(tr("Always vertically center"), edit_group); m_block_cursor = new QCheckBox(tr("Block insertion cursor"), edit_group); m_smooth_fonts = new QCheckBox(tr("Smooth fonts"), edit_group); m_typewriter_sounds = new QCheckBox(tr("Typewriter sounds"), edit_group); m_smart_quotes = new QCheckBox(tr("Smart quotes:"), edit_group); m_double_quotes = new QComboBox(edit_group); m_double_quotes->setEnabled(false); m_single_quotes = new QComboBox(edit_group); m_single_quotes->setEnabled(false); int count = SmartQuotes::count(); for (int i = 0; i < count; ++i) { m_double_quotes->addItem(SmartQuotes::quoteString(tr("Double"), i)); m_single_quotes->addItem(SmartQuotes::quoteString(tr("Single"), i)); } m_double_quotes->setMaxVisibleItems(count); m_single_quotes->setMaxVisibleItems(count); connect(m_smart_quotes, SIGNAL(toggled(bool)), m_double_quotes, SLOT(setEnabled(bool))); connect(m_smart_quotes, SIGNAL(toggled(bool)), m_single_quotes, SLOT(setEnabled(bool))); QHBoxLayout* quotes_layout = new QHBoxLayout; quotes_layout->addWidget(m_smart_quotes); quotes_layout->addWidget(m_double_quotes); quotes_layout->addWidget(m_single_quotes); quotes_layout->addStretch(); QVBoxLayout* edit_layout = new QVBoxLayout(edit_group); edit_layout->addWidget(m_always_center); edit_layout->addWidget(m_block_cursor); edit_layout->addWidget(m_smooth_fonts); edit_layout->addLayout(quotes_layout); edit_layout->addWidget(m_typewriter_sounds); // Create section options QGroupBox* scene_group = new QGroupBox(tr("Scenes"), tab); m_scene_divider = new QLineEdit(scene_group); QFormLayout* scene_layout = new QFormLayout(scene_group); scene_layout->setFieldGrowthPolicy(QFormLayout::FieldsStayAtSizeHint); scene_layout->setFormAlignment(Qt::AlignLeft | Qt::AlignTop); scene_layout->addRow(tr("Divider:"), m_scene_divider); // Create save options QGroupBox* save_group = new QGroupBox(tr("Saving"), tab); m_auto_save = new QCheckBox(tr("Automatically save changes"), save_group); m_save_positions = new QCheckBox(tr("Remember cursor position"), save_group); QVBoxLayout* save_layout = new QVBoxLayout(save_group); save_layout->addWidget(m_auto_save); save_layout->addWidget(m_save_positions); // Lay out general options QVBoxLayout* layout = new QVBoxLayout(tab); layout->addWidget(goals_group); layout->addWidget(edit_group); layout->addWidget(scene_group); layout->addWidget(save_group); layout->addStretch(); return makeScrollable(tab); } //----------------------------------------------------------------------------- QWidget* PreferencesDialog::initStatisticsTab() { QWidget* tab = new QWidget(this); // Create statistics options QGroupBox* counts_group = new QGroupBox(tr("Contents"), tab); m_show_words = new QCheckBox(tr("Word count"), counts_group); m_show_pages = new QCheckBox(tr("Page count"), counts_group); m_show_paragraphs = new QCheckBox(tr("Paragraph count"), counts_group); m_show_characters = new QCheckBox(tr("Character count"), counts_group); QVBoxLayout* counts_layout = new QVBoxLayout(counts_group); counts_layout->addWidget(m_show_words); counts_layout->addWidget(m_show_pages); counts_layout->addWidget(m_show_paragraphs); counts_layout->addWidget(m_show_characters); // Create page algorithm options QGroupBox* page_group = new QGroupBox(tr("Page Size"), tab); m_option_characters = new QRadioButton(tr("Characters:"), page_group); m_page_characters = new QSpinBox(page_group); m_page_characters->setCorrectionMode(QSpinBox::CorrectToNearestValue); m_page_characters->setRange(500, 10000); m_page_characters->setSingleStep(250); QHBoxLayout* characters_layout = new QHBoxLayout; characters_layout->addWidget(m_option_characters); characters_layout->addWidget(m_page_characters); characters_layout->addStretch(); m_option_paragraphs = new QRadioButton(tr("Paragraphs:"), page_group); m_page_paragraphs = new QSpinBox(page_group); m_page_paragraphs->setCorrectionMode(QSpinBox::CorrectToNearestValue); m_page_paragraphs->setRange(1, 100); m_page_paragraphs->setSingleStep(1); QHBoxLayout* paragraphs_layout = new QHBoxLayout; paragraphs_layout->addWidget(m_option_paragraphs); paragraphs_layout->addWidget(m_page_paragraphs); paragraphs_layout->addStretch(); m_option_words = new QRadioButton(tr("Words:"), page_group); m_page_words = new QSpinBox(page_group); m_page_words->setCorrectionMode(QSpinBox::CorrectToNearestValue); m_page_words->setRange(100, 2000); m_page_words->setSingleStep(50); QHBoxLayout* words_layout = new QHBoxLayout; words_layout->addWidget(m_option_words); words_layout->addWidget(m_page_words); words_layout->addStretch(); QVBoxLayout* page_layout = new QVBoxLayout(page_group); page_layout->addLayout(characters_layout); page_layout->addLayout(paragraphs_layout); page_layout->addLayout(words_layout); // Create wordcount options QGroupBox* wordcount_group = new QGroupBox(tr("Word Count Algorithm"), this); m_option_accurate_wordcount = new QRadioButton(tr("Detect word boundaries"), wordcount_group); m_option_estimate_wordcount = new QRadioButton(tr("Divide character count by six"), wordcount_group); QVBoxLayout* wordcount_layout = new QVBoxLayout(wordcount_group); wordcount_layout->addWidget(m_option_accurate_wordcount); wordcount_layout->addWidget(m_option_estimate_wordcount); // Lay out statistics options QVBoxLayout* layout = new QVBoxLayout(tab); layout->addWidget(counts_group); layout->addWidget(page_group); layout->addWidget(wordcount_group); layout->addStretch(); return makeScrollable(tab); } //----------------------------------------------------------------------------- QWidget* PreferencesDialog::initSpellingTab() { QWidget* tab = new QWidget(this); // Create spelling options QWidget* general_group = new QWidget(tab); m_highlight_misspelled = new QCheckBox(tr("Check spelling as you type"), general_group); m_ignore_uppercase = new QCheckBox(tr("Ignore words in UPPERCASE"), general_group); m_ignore_numbers = new QCheckBox(tr("Ignore words with numbers"), general_group); #ifdef Q_OS_MAC m_ignore_uppercase->hide(); m_ignore_numbers->hide(); #endif QVBoxLayout* general_group_layout = new QVBoxLayout(general_group); general_group_layout->setMargin(0); general_group_layout->addWidget(m_highlight_misspelled); general_group_layout->addWidget(m_ignore_uppercase); general_group_layout->addWidget(m_ignore_numbers); // Create language selection QGroupBox* languages_group = new QGroupBox(tr("Language"), tab); m_languages = new QComboBox(languages_group); m_add_language_button = new QPushButton(tr("Add"), languages_group); m_add_language_button->setAutoDefault(false); connect(m_add_language_button, SIGNAL(clicked()), this, SLOT(addLanguage())); QStringList languages = DictionaryManager::instance().availableDictionaries(); foreach (const QString& language, languages) { m_languages->addItem(LocaleDialog::languageName(language), language); } m_languages->model()->sort(0); // Lay out language selection QHBoxLayout* languages_layout = new QHBoxLayout(languages_group); languages_layout->addWidget(m_languages, 1); languages_layout->addWidget(m_add_language_button); // Read personal dictionary QGroupBox* personal_dictionary_group = new QGroupBox(tr("Personal Dictionary"), tab); m_word = new QLineEdit(personal_dictionary_group); connect(m_word, SIGNAL(textChanged(QString)), this, SLOT(wordEdited())); m_add_word_button = new QPushButton(tr("Add"), personal_dictionary_group); m_add_word_button->setAutoDefault(false); m_add_word_button->setDisabled(true); connect(m_add_word_button, SIGNAL(clicked()), this, SLOT(addWord())); m_personal_dictionary = new QListWidget(personal_dictionary_group); QStringList words = DictionaryManager::instance().personal(); foreach (const QString& word, words) { m_personal_dictionary->addItem(word); } connect(m_personal_dictionary, SIGNAL(itemSelectionChanged()), this, SLOT(selectedWordChanged())); m_remove_word_button = new QPushButton(tr("Remove"), personal_dictionary_group); m_remove_word_button->setAutoDefault(false); m_remove_word_button->setDisabled(true); connect(m_remove_word_button, SIGNAL(clicked()), this, SLOT(removeWord())); // Lay out personal dictionary group QGridLayout* personal_dictionary_layout = new QGridLayout(personal_dictionary_group); personal_dictionary_layout->addWidget(m_word, 0, 0); personal_dictionary_layout->addWidget(m_add_word_button, 0, 1); personal_dictionary_layout->addWidget(m_personal_dictionary, 1, 0); personal_dictionary_layout->addWidget(m_remove_word_button, 1, 1, Qt::AlignTop); // Lay out spelling options QVBoxLayout* layout = new QVBoxLayout(tab); layout->addWidget(general_group); layout->addWidget(languages_group); layout->addWidget(personal_dictionary_group); return makeScrollable(tab); } //----------------------------------------------------------------------------- QWidget* PreferencesDialog::initToolbarTab() { QWidget* tab = new QWidget(this); // Create style options QGroupBox* style_group = new QGroupBox(tr("Style"), tab); m_toolbar_style = new QComboBox(style_group); m_toolbar_style->addItem(tr("Icons Only"), Qt::ToolButtonIconOnly); m_toolbar_style->addItem(tr("Text Only"), Qt::ToolButtonTextOnly); m_toolbar_style->addItem(tr("Text Alongside Icons"), Qt::ToolButtonTextBesideIcon); m_toolbar_style->addItem(tr("Text Under Icons"), Qt::ToolButtonTextUnderIcon); // Lay out style options QFormLayout* style_layout = new QFormLayout(style_group); style_layout->addRow(tr("Text Position:"), m_toolbar_style); // Create action options QGroupBox* actions_group = new QGroupBox(tr("Actions"), tab); m_toolbar_actions = new QListWidget(actions_group); m_toolbar_actions->setDragDropMode(QAbstractItemView::InternalMove); QList actions = parentWidget()->window()->actions(); foreach (QAction* action, actions) { if (action->data().isNull()) { continue; } QListWidgetItem* item = new QListWidgetItem(action->icon(), action->iconText(), m_toolbar_actions); item->setData(Qt::UserRole, action->data()); item->setCheckState(Qt::Unchecked); } m_toolbar_actions->sortItems(); connect(m_toolbar_actions, SIGNAL(currentRowChanged(int)), this, SLOT(currentActionChanged(int))); m_move_up_button = new QPushButton(tr("Move Up"), actions_group); connect(m_move_up_button, SIGNAL(clicked()), this, SLOT(moveActionUp())); m_move_down_button = new QPushButton(tr("Move Down"), actions_group); connect(m_move_down_button, SIGNAL(clicked()), this, SLOT(moveActionDown())); QPushButton* add_separator_button = new QPushButton(tr("Add Separator"), actions_group); connect(add_separator_button, SIGNAL(clicked()), this, SLOT(addSeparatorAction())); // Lay out action options QGridLayout* actions_layout = new QGridLayout(actions_group); actions_layout->setRowStretch(0, 1); actions_layout->setRowStretch(4, 1); actions_layout->addWidget(m_toolbar_actions, 0, 0, 5, 1); actions_layout->addWidget(m_move_up_button, 1, 1); actions_layout->addWidget(m_move_down_button, 2, 1); actions_layout->addWidget(add_separator_button, 3, 1); // Lay out toolbar tab QVBoxLayout* layout = new QVBoxLayout(tab); layout->addWidget(style_group); layout->addWidget(actions_group); return makeScrollable(tab); } //----------------------------------------------------------------------------- QWidget* PreferencesDialog::initShortcutsTab() { QWidget* tab = new QWidget(this); // Create shortcuts view m_shortcuts = new QTreeWidget(tab); m_shortcuts->setIconSize(QSize(16,16)); m_shortcuts->setDragDropMode(QAbstractItemView::NoDragDrop); m_shortcuts->setItemsExpandable(false); m_shortcuts->setRootIsDecorated(false); m_shortcuts->setColumnCount(3); m_shortcuts->setColumnHidden(2, true); m_shortcuts->setHeaderLabels(QStringList() << tr("Command") << tr("Shortcut") << tr("Action")); #if (QT_VERSION >= QT_VERSION_CHECK(5,0,0)) m_shortcuts->header()->setSectionsClickable(false); m_shortcuts->header()->setSectionsMovable(false); m_shortcuts->header()->setSectionResizeMode(0, QHeaderView::ResizeToContents); #else m_shortcuts->header()->setClickable(false); m_shortcuts->header()->setMovable(false); m_shortcuts->header()->setResizeMode(0, QHeaderView::ResizeToContents); #endif connect(m_shortcuts, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), this, SLOT(shortcutDoubleClicked())); // List shortcuts QPixmap empty_icon(m_shortcuts->iconSize()); empty_icon.fill(Qt::transparent); QList actions = ActionManager::instance()->actions(); foreach (const QString& name, actions) { QAction* action = ActionManager::instance()->action(name); QIcon icon = action->icon(); if (icon.isNull()) { icon = empty_icon; } QString text = action->statusTip(); if (text.isEmpty()) { text = action->text(); } text.replace("&", ""); QStringList strings = QStringList() << text << action->shortcut().toString(QKeySequence::NativeText) << name; QTreeWidgetItem* item = new QTreeWidgetItem(m_shortcuts, strings); item->setIcon(0, icon); } m_shortcuts->sortByColumn(0, Qt::AscendingOrder); connect(m_shortcuts, SIGNAL(itemSelectionChanged()), this, SLOT(selectedShortcutChanged())); // Create editor m_shortcut_edit = new ShortcutEdit(this); connect(m_shortcut_edit, SIGNAL(changed()), this, SLOT(shortcutChanged())); // Lay out shortcut tab QGridLayout* layout = new QGridLayout(tab); layout->setColumnStretch(1, 1); layout->setRowStretch(0, 1); layout->addWidget(m_shortcuts, 0, 0, 1, 2); layout->addWidget(new QLabel(ShortcutEdit::tr("Shortcut:"), tab), 1, 0); layout->addWidget(m_shortcut_edit, 1, 1); m_shortcuts->setCurrentItem(m_shortcuts->topLevelItem(0)); highlightShortcutConflicts(); return makeScrollable(tab); } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/preferences_dialog.h000066400000000000000000000064631231434177300206730ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2008, 2009, 2010, 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef PREFERENCES_DIALOG_H #define PREFERENCES_DIALOG_H class Preferences; class ShortcutEdit; #include #include #include class QCheckBox; class QComboBox; class QLineEdit; class QListWidget; class QPushButton; class QRadioButton; class QSpinBox; class QTabWidget; class QTreeWidget; class PreferencesDialog : public QDialog { Q_OBJECT public: PreferencesDialog(Preferences& preferences, QWidget* parent = 0); ~PreferencesDialog(); public slots: virtual void accept(); virtual void reject(); private slots: void moveActionUp(); void moveActionDown(); void addSeparatorAction(); void currentActionChanged(int action); void addLanguage(); void addWord(); void removeWord(); void selectedWordChanged(); void wordEdited(); void selectedShortcutChanged(); void shortcutChanged(); void shortcutDoubleClicked(); private: void highlightShortcutConflicts(); QWidget* initGeneralTab(); QWidget* initStatisticsTab(); QWidget* initSpellingTab(); QWidget* initToolbarTab(); QWidget* initShortcutsTab(); private: Preferences& m_preferences; QTabWidget* m_tabs; QRadioButton* m_option_none; QRadioButton* m_option_time; QRadioButton* m_option_wordcount; QSpinBox* m_time; QSpinBox* m_wordcount; QCheckBox* m_always_center; QCheckBox* m_block_cursor; QCheckBox* m_smooth_fonts; QCheckBox* m_smart_quotes; QComboBox* m_double_quotes; QComboBox* m_single_quotes; QCheckBox* m_typewriter_sounds; QLineEdit* m_scene_divider; QCheckBox* m_auto_save; QCheckBox* m_save_positions; QCheckBox* m_show_characters; QCheckBox* m_show_pages; QCheckBox* m_show_paragraphs; QCheckBox* m_show_words; QRadioButton* m_option_characters; QRadioButton* m_option_paragraphs; QRadioButton* m_option_words; QSpinBox* m_page_characters; QSpinBox* m_page_paragraphs; QSpinBox* m_page_words; QRadioButton* m_option_accurate_wordcount; QRadioButton* m_option_estimate_wordcount; QCheckBox* m_highlight_misspelled; QCheckBox* m_ignore_uppercase; QCheckBox* m_ignore_numbers; QComboBox* m_languages; QLineEdit* m_word; QListWidget* m_personal_dictionary; QPushButton* m_add_language_button; QPushButton* m_add_word_button; QPushButton* m_remove_word_button; QComboBox* m_toolbar_style; QListWidget* m_toolbar_actions; QPushButton* m_move_up_button; QPushButton* m_move_down_button; QTreeWidget* m_shortcuts; ShortcutEdit* m_shortcut_edit; QHash m_new_shortcuts; bool m_shortcut_conflicts; }; #endif focuswriter-1.4.5/src/qsound/000077500000000000000000000000001231434177300162025ustar00rootroot00000000000000focuswriter-1.4.5/src/qsound/sound.cpp000066400000000000000000000056661231434177300200530ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010, 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #include "../sound.h" #include #include #include //----------------------------------------------------------------------------- namespace { // Shared data QString f_path; bool f_enabled = false; QList > f_sounds; int f_total_sounds = 0; QHash f_ids; QHash f_sound_objects; } //----------------------------------------------------------------------------- Sound::Sound(int name, const QString& filename, QObject* parent) : QObject(parent), m_id(-1), m_name(name) { f_total_sounds++; if (f_ids.contains(filename)) { m_id = f_ids.value(filename); } else if (QSound::isAvailable()) { m_id = f_sounds.count(); QSound* sound = new QSound(f_path + "/" + filename); f_sounds.append(QList() << sound); f_ids[filename] = m_id; } f_sound_objects[m_name] = this; } //----------------------------------------------------------------------------- Sound::~Sound() { f_sound_objects[m_name] = 0; f_total_sounds--; if (f_total_sounds == 0) { int count = f_sounds.count(); for (int i = 0; i < count; ++i) { qDeleteAll(f_sounds[i]); } f_sounds.clear(); f_ids.clear(); } } //----------------------------------------------------------------------------- void Sound::play(int name) { if (f_enabled) { Sound* sound = f_sound_objects.value(name); if (sound && sound->isValid()) { QSound* qsound = 0; QList& sounds = f_sounds[sound->m_id]; int count = sounds.count(); for (int i = 0; i < count; ++i) { if (sounds.at(i)->isFinished()) { qsound = sounds.at(i); break; } } if (qsound == 0) { qsound = new QSound(sounds.first()->fileName()); sounds.append(qsound); } qsound->play(); } } } //----------------------------------------------------------------------------- void Sound::setEnabled(bool enabled) { f_enabled = enabled; } //----------------------------------------------------------------------------- void Sound::setPath(const QString& path) { f_path = path; } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/qtsingleapplication/000077500000000000000000000000001231434177300207435ustar00rootroot00000000000000focuswriter-1.4.5/src/qtsingleapplication/QtLockedFile000066400000000000000000000000321231434177300231670ustar00rootroot00000000000000#include "qtlockedfile.h" focuswriter-1.4.5/src/qtsingleapplication/QtSingleApplication000066400000000000000000000000411231434177300245730ustar00rootroot00000000000000#include "qtsingleapplication.h" focuswriter-1.4.5/src/qtsingleapplication/qtlocalpeer.cpp000066400000000000000000000150411231434177300237630ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "qtlocalpeer.h" #include #include #if defined(Q_OS_WIN) #include #include typedef BOOL(WINAPI*PProcessIdToSessionId)(DWORD,DWORD*); static PProcessIdToSessionId pProcessIdToSessionId = 0; #endif #if defined(Q_OS_UNIX) #include #include #include #endif namespace QtLP_Private { #include "qtlockedfile.cpp" #if defined(Q_OS_WIN) #include "qtlockedfile_win.cpp" #else #include "qtlockedfile_unix.cpp" #endif } const char* QtLocalPeer::ack = "ack"; QtLocalPeer::QtLocalPeer(QObject* parent, const QString &appId) : QObject(parent), id(appId) { QString prefix = id; if (id.isEmpty()) { id = QCoreApplication::applicationFilePath(); #if defined(Q_OS_WIN) id = id.toLower(); #endif prefix = id.section(QLatin1Char('/'), -1); } prefix.remove(QRegExp("[^a-zA-Z]")); prefix.truncate(6); QByteArray idc = id.toUtf8(); quint16 idNum = qChecksum(idc.constData(), idc.size()); socketName = QLatin1String("qtsingleapp-") + prefix + QLatin1Char('-') + QString::number(idNum, 16); #if defined(Q_OS_WIN) if (!pProcessIdToSessionId) { QLibrary lib("kernel32"); pProcessIdToSessionId = (PProcessIdToSessionId)lib.resolve("ProcessIdToSessionId"); } if (pProcessIdToSessionId) { DWORD sessionId = 0; pProcessIdToSessionId(GetCurrentProcessId(), &sessionId); socketName += QLatin1Char('-') + QString::number(sessionId, 16); } #else socketName += QLatin1Char('-') + QString::number(::getuid(), 16); #endif server = new QLocalServer(this); QString lockName = QDir(QDir::tempPath()).absolutePath() + QLatin1Char('/') + socketName + QLatin1String("-lockfile"); lockFile.setFileName(lockName); lockFile.open(QIODevice::ReadWrite); } bool QtLocalPeer::isClient() { if (lockFile.isLocked()) return false; if (!lockFile.lock(QtLP_Private::QtLockedFile::WriteLock, false)) return true; bool res = server->listen(socketName); #if defined(Q_OS_UNIX) && (QT_VERSION >= QT_VERSION_CHECK(4,5,0)) // ### Workaround if (!res && server->serverError() == QAbstractSocket::AddressInUseError) { QFile::remove(QDir::cleanPath(QDir::tempPath())+QLatin1Char('/')+socketName); res = server->listen(socketName); } #endif if (!res) qWarning("QtSingleCoreApplication: listen on local socket failed, %s", qPrintable(server->errorString())); QObject::connect(server, SIGNAL(newConnection()), SLOT(receiveConnection())); return false; } bool QtLocalPeer::sendMessage(const QString &message, int timeout) { if (!isClient()) return false; QLocalSocket socket; bool connOk = false; for(int i = 0; i < 2; i++) { // Try twice, in case the other instance is just starting up socket.connectToServer(socketName); connOk = socket.waitForConnected(timeout/2); if (connOk || i) break; int ms = 250; #if defined(Q_OS_WIN) Sleep(DWORD(ms)); #else struct timespec ts = { ms / 1000, (ms % 1000) * 1000 * 1000 }; nanosleep(&ts, NULL); #endif } if (!connOk) return false; QByteArray uMsg(message.toUtf8()); QDataStream ds(&socket); ds.writeBytes(uMsg.constData(), uMsg.size()); bool res = socket.waitForBytesWritten(timeout); if (res) { res &= socket.waitForReadyRead(timeout); // wait for ack if (res) res &= (socket.read(qstrlen(ack)) == ack); } return res; } void QtLocalPeer::receiveConnection() { QLocalSocket* socket = server->nextPendingConnection(); if (!socket) return; while (socket->bytesAvailable() < (int)sizeof(quint32)) socket->waitForReadyRead(); QDataStream ds(socket); QByteArray uMsg; quint32 remaining; ds >> remaining; uMsg.resize(remaining); int got = 0; char* uMsgBuf = uMsg.data(); do { got = ds.readRawData(uMsgBuf, remaining); remaining -= got; uMsgBuf += got; } while (remaining && got >= 0 && socket->waitForReadyRead(2000)); if (got < 0) { qWarning("QtLocalPeer: Message reception failed %s", socket->errorString().toLatin1().constData()); delete socket; return; } QString message(QString::fromUtf8(uMsg)); socket->write(ack, qstrlen(ack)); socket->waitForBytesWritten(1000); socket->waitForDisconnected(1000); // make sure client reads ack delete socket; emit messageReceived(message); //### (might take a long time to return) } focuswriter-1.4.5/src/qtsingleapplication/qtlocalpeer.h000066400000000000000000000052051231434177300234310ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef QTLOCALPEER_H #define QTLOCALPEER_H #include #include #include #include "qtlockedfile.h" class QtLocalPeer : public QObject { Q_OBJECT public: QtLocalPeer(QObject *parent = 0, const QString &appId = QString()); bool isClient(); bool sendMessage(const QString &message, int timeout); QString applicationId() const { return id; } Q_SIGNALS: void messageReceived(const QString &message); protected Q_SLOTS: void receiveConnection(); protected: QString id; QString socketName; QLocalServer* server; QtLP_Private::QtLockedFile lockFile; private: static const char* ack; }; #endif // QTLOCALPEER_H focuswriter-1.4.5/src/qtsingleapplication/qtlockedfile.cpp000066400000000000000000000137421231434177300241240ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "qtlockedfile.h" /*! \class QtLockedFile \brief The QtLockedFile class extends QFile with advisory locking functions. A file may be locked in read or write mode. Multiple instances of \e QtLockedFile, created in multiple processes running on the same machine, may have a file locked in read mode. Exactly one instance may have it locked in write mode. A read and a write lock cannot exist simultaneously on the same file. The file locks are advisory. This means that nothing prevents another process from manipulating a locked file using QFile or file system functions offered by the OS. Serialization is only guaranteed if all processes that access the file use QLockedFile. Also, while holding a lock on a file, a process must not open the same file again (through any API), or locks can be unexpectedly lost. The lock provided by an instance of \e QtLockedFile is released whenever the program terminates. This is true even when the program crashes and no destructors are called. */ /*! \enum QtLockedFile::LockMode This enum describes the available lock modes. \value ReadLock A read lock. \value WriteLock A write lock. \value NoLock Neither a read lock nor a write lock. */ /*! Constructs an unlocked \e QtLockedFile object. This constructor behaves in the same way as \e QFile::QFile(). \sa QFile::QFile() */ QtLockedFile::QtLockedFile() : QFile() { #ifdef Q_OS_WIN wmutex = 0; rmutex = 0; #endif m_lock_mode = NoLock; } /*! Constructs an unlocked QtLockedFile object with file \a name. This constructor behaves in the same way as \e QFile::QFile(const QString&). \sa QFile::QFile() */ QtLockedFile::QtLockedFile(const QString &name) : QFile(name) { #ifdef Q_OS_WIN wmutex = 0; rmutex = 0; #endif m_lock_mode = NoLock; } /*! Opens the file in OpenMode \a mode. This is identical to QFile::open(), with the one exception that the Truncate mode flag is disallowed. Truncation would conflict with the advisory file locking, since the file would be modified before the write lock is obtained. If truncation is required, use resize(0) after obtaining the write lock. Returns true if successful; otherwise false. \sa QFile::open(), QFile::resize() */ bool QtLockedFile::open(OpenMode mode) { if (mode & QIODevice::Truncate) { qWarning("QtLockedFile::open(): Truncate mode not allowed."); return false; } return QFile::open(mode); } /*! Returns \e true if this object has a in read or write lock; otherwise returns \e false. \sa lockMode() */ bool QtLockedFile::isLocked() const { return m_lock_mode != NoLock; } /*! Returns the type of lock currently held by this object, or \e QtLockedFile::NoLock. \sa isLocked() */ QtLockedFile::LockMode QtLockedFile::lockMode() const { return m_lock_mode; } /*! \fn bool QtLockedFile::lock(LockMode mode, bool block = true) Obtains a lock of type \a mode. The file must be opened before it can be locked. If \a block is true, this function will block until the lock is aquired. If \a block is false, this function returns \e false immediately if the lock cannot be aquired. If this object already has a lock of type \a mode, this function returns \e true immediately. If this object has a lock of a different type than \a mode, the lock is first released and then a new lock is obtained. This function returns \e true if, after it executes, the file is locked by this object, and \e false otherwise. \sa unlock(), isLocked(), lockMode() */ /*! \fn bool QtLockedFile::unlock() Releases a lock. If the object has no lock, this function returns immediately. This function returns \e true if, after it executes, the file is not locked by this object, and \e false otherwise. \sa lock(), isLocked(), lockMode() */ /*! \fn QtLockedFile::~QtLockedFile() Destroys the \e QtLockedFile object. If any locks were held, they are released. */ focuswriter-1.4.5/src/qtsingleapplication/qtlockedfile.h000066400000000000000000000063071231434177300235700ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef QTLOCKEDFILE_H #define QTLOCKEDFILE_H #include #ifdef Q_OS_WIN #include #endif #if defined(Q_OS_WIN) # if !defined(QT_QTLOCKEDFILE_EXPORT) && !defined(QT_QTLOCKEDFILE_IMPORT) # define QT_QTLOCKEDFILE_EXPORT # elif defined(QT_QTLOCKEDFILE_IMPORT) # if defined(QT_QTLOCKEDFILE_EXPORT) # undef QT_QTLOCKEDFILE_EXPORT # endif # define QT_QTLOCKEDFILE_EXPORT __declspec(dllimport) # elif defined(QT_QTLOCKEDFILE_EXPORT) # undef QT_QTLOCKEDFILE_EXPORT # define QT_QTLOCKEDFILE_EXPORT __declspec(dllexport) # endif #else # define QT_QTLOCKEDFILE_EXPORT #endif namespace QtLP_Private { class QT_QTLOCKEDFILE_EXPORT QtLockedFile : public QFile { public: enum LockMode { NoLock = 0, ReadLock, WriteLock }; QtLockedFile(); QtLockedFile(const QString &name); ~QtLockedFile(); bool open(OpenMode mode); bool lock(LockMode mode, bool block = true); bool unlock(); bool isLocked() const; LockMode lockMode() const; private: #ifdef Q_OS_WIN Qt::HANDLE wmutex; Qt::HANDLE rmutex; QVector rmutexes; QString mutexname; Qt::HANDLE getMutexHandle(int idx, bool doCreate); bool waitMutex(Qt::HANDLE mutex, bool doBlock); #endif LockMode m_lock_mode; }; } #endif focuswriter-1.4.5/src/qtsingleapplication/qtlockedfile_unix.cpp000066400000000000000000000066141231434177300251670ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include #include #include #include #include "qtlockedfile.h" bool QtLockedFile::lock(LockMode mode, bool block) { if (!isOpen()) { qWarning("QtLockedFile::lock(): file is not opened"); return false; } if (mode == NoLock) return unlock(); if (mode == m_lock_mode) return true; if (m_lock_mode != NoLock) unlock(); struct flock fl; fl.l_whence = SEEK_SET; fl.l_start = 0; fl.l_len = 0; fl.l_type = (mode == ReadLock) ? F_RDLCK : F_WRLCK; int cmd = block ? F_SETLKW : F_SETLK; int ret = fcntl(handle(), cmd, &fl); if (ret == -1) { if (errno != EINTR && errno != EAGAIN) qWarning("QtLockedFile::lock(): fcntl: %s", strerror(errno)); return false; } m_lock_mode = mode; return true; } bool QtLockedFile::unlock() { if (!isOpen()) { qWarning("QtLockedFile::unlock(): file is not opened"); return false; } if (!isLocked()) return true; struct flock fl; fl.l_whence = SEEK_SET; fl.l_start = 0; fl.l_len = 0; fl.l_type = F_UNLCK; int ret = fcntl(handle(), F_SETLKW, &fl); if (ret == -1) { qWarning("QtLockedFile::lock(): fcntl: %s", strerror(errno)); return false; } m_lock_mode = NoLock; return true; } QtLockedFile::~QtLockedFile() { if (isOpen()) unlock(); } focuswriter-1.4.5/src/qtsingleapplication/qtlockedfile_win.cpp000066400000000000000000000146611231434177300250020ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "qtlockedfile.h" #include #include #define MUTEX_PREFIX "QtLockedFile mutex " // Maximum number of concurrent read locks. Must not be greater than MAXIMUM_WAIT_OBJECTS #define MAX_READERS MAXIMUM_WAIT_OBJECTS #if QT_VERSION >= 0x050000 #define QT_WA(unicode, ansi) unicode #endif Qt::HANDLE QtLockedFile::getMutexHandle(int idx, bool doCreate) { if (mutexname.isEmpty()) { QFileInfo fi(*this); mutexname = QString::fromLatin1(MUTEX_PREFIX) + fi.absoluteFilePath().toLower(); } QString mname(mutexname); if (idx >= 0) mname += QString::number(idx); Qt::HANDLE mutex; if (doCreate) { QT_WA( { mutex = CreateMutexW(NULL, FALSE, (TCHAR*)mname.utf16()); }, { mutex = CreateMutexA(NULL, FALSE, mname.toLocal8Bit().constData()); } ); if (!mutex) { qErrnoWarning("QtLockedFile::lock(): CreateMutex failed"); return 0; } } else { QT_WA( { mutex = OpenMutexW(SYNCHRONIZE | MUTEX_MODIFY_STATE, FALSE, (TCHAR*)mname.utf16()); }, { mutex = OpenMutexA(SYNCHRONIZE | MUTEX_MODIFY_STATE, FALSE, mname.toLocal8Bit().constData()); } ); if (!mutex) { if (GetLastError() != ERROR_FILE_NOT_FOUND) qErrnoWarning("QtLockedFile::lock(): OpenMutex failed"); return 0; } } return mutex; } bool QtLockedFile::waitMutex(Qt::HANDLE mutex, bool doBlock) { Q_ASSERT(mutex); DWORD res = WaitForSingleObject(mutex, doBlock ? INFINITE : 0); switch (res) { case WAIT_OBJECT_0: case WAIT_ABANDONED: return true; break; case WAIT_TIMEOUT: break; default: qErrnoWarning("QtLockedFile::lock(): WaitForSingleObject failed"); } return false; } bool QtLockedFile::lock(LockMode mode, bool block) { if (!isOpen()) { qWarning("QtLockedFile::lock(): file is not opened"); return false; } if (mode == NoLock) return unlock(); if (mode == m_lock_mode) return true; if (m_lock_mode != NoLock) unlock(); if (!wmutex && !(wmutex = getMutexHandle(-1, true))) return false; if (!waitMutex(wmutex, block)) return false; if (mode == ReadLock) { int idx = 0; for (; idx < MAX_READERS; idx++) { rmutex = getMutexHandle(idx, false); if (!rmutex || waitMutex(rmutex, false)) break; CloseHandle(rmutex); } bool ok = true; if (idx >= MAX_READERS) { qWarning("QtLockedFile::lock(): too many readers"); rmutex = 0; ok = false; } else if (!rmutex) { rmutex = getMutexHandle(idx, true); if (!rmutex || !waitMutex(rmutex, false)) ok = false; } if (!ok && rmutex) { CloseHandle(rmutex); rmutex = 0; } ReleaseMutex(wmutex); if (!ok) return false; } else { Q_ASSERT(rmutexes.isEmpty()); for (int i = 0; i < MAX_READERS; i++) { Qt::HANDLE mutex = getMutexHandle(i, false); if (mutex) rmutexes.append(mutex); } if (rmutexes.size()) { DWORD res = WaitForMultipleObjects(rmutexes.size(), rmutexes.constData(), TRUE, block ? INFINITE : 0); if (res != WAIT_OBJECT_0 && res != WAIT_ABANDONED) { if (res != WAIT_TIMEOUT) qErrnoWarning("QtLockedFile::lock(): WaitForMultipleObjects failed"); m_lock_mode = WriteLock; // trick unlock() to clean up - semiyucky unlock(); return false; } } } m_lock_mode = mode; return true; } bool QtLockedFile::unlock() { if (!isOpen()) { qWarning("QtLockedFile::unlock(): file is not opened"); return false; } if (!isLocked()) return true; if (m_lock_mode == ReadLock) { ReleaseMutex(rmutex); CloseHandle(rmutex); rmutex = 0; } else { foreach(Qt::HANDLE mutex, rmutexes) { ReleaseMutex(mutex); CloseHandle(mutex); } rmutexes.clear(); ReleaseMutex(wmutex); } m_lock_mode = QtLockedFile::NoLock; return true; } QtLockedFile::~QtLockedFile() { if (isOpen()) unlock(); if (wmutex) CloseHandle(wmutex); } focuswriter-1.4.5/src/qtsingleapplication/qtsingleapplication.cpp000066400000000000000000000270101231434177300255210ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "qtsingleapplication.h" #include "qtlocalpeer.h" #include /*! \class QtSingleApplication qtsingleapplication.h \brief The QtSingleApplication class provides an API to detect and communicate with running instances of an application. This class allows you to create applications where only one instance should be running at a time. I.e., if the user tries to launch another instance, the already running instance will be activated instead. Another usecase is a client-server system, where the first started instance will assume the role of server, and the later instances will act as clients of that server. By default, the full path of the executable file is used to determine whether two processes are instances of the same application. You can also provide an explicit identifier string that will be compared instead. The application should create the QtSingleApplication object early in the startup phase, and call isRunning() to find out if another instance of this application is already running. If isRunning() returns false, it means that no other instance is running, and this instance has assumed the role as the running instance. In this case, the application should continue with the initialization of the application user interface before entering the event loop with exec(), as normal. The messageReceived() signal will be emitted when the running application receives messages from another instance of the same application. When a message is received it might be helpful to the user to raise the application so that it becomes visible. To facilitate this, QtSingleApplication provides the setActivationWindow() function and the activateWindow() slot. If isRunning() returns true, another instance is already running. It may be alerted to the fact that another instance has started by using the sendMessage() function. Also data such as startup parameters (e.g. the name of the file the user wanted this new instance to open) can be passed to the running instance with this function. Then, the application should terminate (or enter client mode). If isRunning() returns true, but sendMessage() fails, that is an indication that the running instance is frozen. Here's an example that shows how to convert an existing application to use QtSingleApplication. It is very simple and does not make use of all QtSingleApplication's functionality (see the examples for that). \code // Original int main(int argc, char **argv) { QApplication app(argc, argv); MyMainWidget mmw; mmw.show(); return app.exec(); } // Single instance int main(int argc, char **argv) { QtSingleApplication app(argc, argv); if (app.isRunning()) return !app.sendMessage(someDataString); MyMainWidget mmw; app.setActivationWindow(&mmw); mmw.show(); return app.exec(); } \endcode Once this QtSingleApplication instance is destroyed (normally when the process exits or crashes), when the user next attempts to run the application this instance will not, of course, be encountered. The next instance to call isRunning() or sendMessage() will assume the role as the new running instance. For console (non-GUI) applications, QtSingleCoreApplication may be used instead of this class, to avoid the dependency on the QtGui library. \sa QtSingleCoreApplication */ void QtSingleApplication::sysInit(const QString &appId) { actWin = 0; peer = new QtLocalPeer(this, appId); connect(peer, SIGNAL(messageReceived(const QString&)), SIGNAL(messageReceived(const QString&))); } /*! Creates a QtSingleApplication object. The application identifier will be QCoreApplication::applicationFilePath(). \a argc, \a argv, and \a GUIenabled are passed on to the QAppliation constructor. If you are creating a console application (i.e. setting \a GUIenabled to false), you may consider using QtSingleCoreApplication instead. */ QtSingleApplication::QtSingleApplication(int &argc, char **argv, bool GUIenabled) : QApplication(argc, argv, GUIenabled) { sysInit(); } /*! Creates a QtSingleApplication object with the application identifier \a appId. \a argc and \a argv are passed on to the QAppliation constructor. */ QtSingleApplication::QtSingleApplication(const QString &appId, int &argc, char **argv) : QApplication(argc, argv) { sysInit(appId); } #if QT_VERSION < 0x050000 /*! Creates a QtSingleApplication object. The application identifier will be QCoreApplication::applicationFilePath(). \a argc, \a argv, and \a type are passed on to the QAppliation constructor. */ QtSingleApplication::QtSingleApplication(int &argc, char **argv, Type type) : QApplication(argc, argv, type) { sysInit(); } # if defined(Q_WS_X11) /*! Special constructor for X11, ref. the documentation of QApplication's corresponding constructor. The application identifier will be QCoreApplication::applicationFilePath(). \a dpy, \a visual, and \a cmap are passed on to the QApplication constructor. */ QtSingleApplication::QtSingleApplication(Display* dpy, Qt::HANDLE visual, Qt::HANDLE cmap) : QApplication(dpy, visual, cmap) { sysInit(); } /*! Special constructor for X11, ref. the documentation of QApplication's corresponding constructor. The application identifier will be QCoreApplication::applicationFilePath(). \a dpy, \a argc, \a argv, \a visual, and \a cmap are passed on to the QApplication constructor. */ QtSingleApplication::QtSingleApplication(Display *dpy, int &argc, char **argv, Qt::HANDLE visual, Qt::HANDLE cmap) : QApplication(dpy, argc, argv, visual, cmap) { sysInit(); } /*! Special constructor for X11, ref. the documentation of QApplication's corresponding constructor. The application identifier will be \a appId. \a dpy, \a argc, \a argv, \a visual, and \a cmap are passed on to the QApplication constructor. */ QtSingleApplication::QtSingleApplication(Display* dpy, const QString &appId, int argc, char **argv, Qt::HANDLE visual, Qt::HANDLE cmap) : QApplication(dpy, argc, argv, visual, cmap) { sysInit(appId); } # endif // Q_WS_X11 #endif // QT_VERSION < 0x050000 /*! Returns true if another instance of this application is running; otherwise false. This function does not find instances of this application that are being run by a different user (on Windows: that are running in another session). \sa sendMessage() */ bool QtSingleApplication::isRunning() { return peer->isClient(); } /*! Tries to send the text \a message to the currently running instance. The QtSingleApplication object in the running instance will emit the messageReceived() signal when it receives the message. This function returns true if the message has been sent to, and processed by, the current instance. If there is no instance currently running, or if the running instance fails to process the message within \a timeout milliseconds, this function return false. \sa isRunning(), messageReceived() */ bool QtSingleApplication::sendMessage(const QString &message, int timeout) { return peer->sendMessage(message, timeout); } /*! Returns the application identifier. Two processes with the same identifier will be regarded as instances of the same application. */ QString QtSingleApplication::id() const { return peer->applicationId(); } /*! Sets the activation window of this application to \a aw. The activation window is the widget that will be activated by activateWindow(). This is typically the application's main window. If \a activateOnMessage is true (the default), the window will be activated automatically every time a message is received, just prior to the messageReceived() signal being emitted. \sa activateWindow(), messageReceived() */ void QtSingleApplication::setActivationWindow(QWidget* aw, bool activateOnMessage) { actWin = aw; if (activateOnMessage) connect(peer, SIGNAL(messageReceived(const QString&)), this, SLOT(activateWindow())); else disconnect(peer, SIGNAL(messageReceived(const QString&)), this, SLOT(activateWindow())); } /*! Returns the applications activation window if one has been set by calling setActivationWindow(), otherwise returns 0. \sa setActivationWindow() */ QWidget* QtSingleApplication::activationWindow() const { return actWin; } /*! De-minimizes, raises, and activates this application's activation window. This function does nothing if no activation window has been set. This is a convenience function to show the user that this application instance has been activated when he has tried to start another instance. This function should typically be called in response to the messageReceived() signal. By default, that will happen automatically, if an activation window has been set. \sa setActivationWindow(), messageReceived(), initialize() */ void QtSingleApplication::activateWindow() { if (actWin) { actWin->setWindowState(actWin->windowState() & ~Qt::WindowMinimized); actWin->raise(); actWin->activateWindow(); } } /*! \fn void QtSingleApplication::messageReceived(const QString& message) This signal is emitted when the current instance receives a \a message from another instance of this application. \sa sendMessage(), setActivationWindow(), activateWindow() */ /*! \fn void QtSingleApplication::initialize(bool dummy = true) \obsolete */ focuswriter-1.4.5/src/qtsingleapplication/qtsingleapplication.h000066400000000000000000000076171231434177300252010ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef QTSINGLEAPPLICATION_H #define QTSINGLEAPPLICATION_H #include class QtLocalPeer; #if defined(Q_OS_WIN) # if !defined(QT_QTSINGLEAPPLICATION_EXPORT) && !defined(QT_QTSINGLEAPPLICATION_IMPORT) # define QT_QTSINGLEAPPLICATION_EXPORT # elif defined(QT_QTSINGLEAPPLICATION_IMPORT) # if defined(QT_QTSINGLEAPPLICATION_EXPORT) # undef QT_QTSINGLEAPPLICATION_EXPORT # endif # define QT_QTSINGLEAPPLICATION_EXPORT __declspec(dllimport) # elif defined(QT_QTSINGLEAPPLICATION_EXPORT) # undef QT_QTSINGLEAPPLICATION_EXPORT # define QT_QTSINGLEAPPLICATION_EXPORT __declspec(dllexport) # endif #else # define QT_QTSINGLEAPPLICATION_EXPORT #endif class QT_QTSINGLEAPPLICATION_EXPORT QtSingleApplication : public QApplication { Q_OBJECT public: QtSingleApplication(int &argc, char **argv, bool GUIenabled = true); QtSingleApplication(const QString &id, int &argc, char **argv); #if QT_VERSION < 0x050000 QtSingleApplication(int &argc, char **argv, Type type); # if defined(Q_WS_X11) QtSingleApplication(Display* dpy, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0); QtSingleApplication(Display *dpy, int &argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE cmap= 0); QtSingleApplication(Display* dpy, const QString &appId, int argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0); # endif // Q_WS_X11 #endif // QT_VERSION < 0x050000 bool isRunning(); QString id() const; void setActivationWindow(QWidget* aw, bool activateOnMessage = true); QWidget* activationWindow() const; // Obsolete: void initialize(bool dummy = true) { isRunning(); Q_UNUSED(dummy) } public Q_SLOTS: bool sendMessage(const QString &message, int timeout = 5000); void activateWindow(); Q_SIGNALS: void messageReceived(const QString &message); private: void sysInit(const QString &appId = QString()); QtLocalPeer *peer; QWidget *actWin; }; #endif // QTSINGLEAPPLICATION_H focuswriter-1.4.5/src/qtsingleapplication/qtsinglecoreapplication.cpp000066400000000000000000000123551231434177300264000ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "qtsinglecoreapplication.h" #include "qtlocalpeer.h" /*! \class QtSingleCoreApplication qtsinglecoreapplication.h \brief A variant of the QtSingleApplication class for non-GUI applications. This class is a variant of QtSingleApplication suited for use in console (non-GUI) applications. It is an extension of QCoreApplication (instead of QApplication). It does not require the QtGui library. The API and usage is identical to QtSingleApplication, except that functions relating to the "activation window" are not present, for obvious reasons. Please refer to the QtSingleApplication documentation for explanation of the usage. A QtSingleCoreApplication instance can communicate to a QtSingleApplication instance if they share the same application id. Hence, this class can be used to create a light-weight command-line tool that sends commands to a GUI application. \sa QtSingleApplication */ /*! Creates a QtSingleCoreApplication object. The application identifier will be QCoreApplication::applicationFilePath(). \a argc and \a argv are passed on to the QCoreAppliation constructor. */ QtSingleCoreApplication::QtSingleCoreApplication(int &argc, char **argv) : QCoreApplication(argc, argv) { peer = new QtLocalPeer(this); connect(peer, SIGNAL(messageReceived(const QString&)), SIGNAL(messageReceived(const QString&))); } /*! Creates a QtSingleCoreApplication object with the application identifier \a appId. \a argc and \a argv are passed on to the QCoreAppliation constructor. */ QtSingleCoreApplication::QtSingleCoreApplication(const QString &appId, int &argc, char **argv) : QCoreApplication(argc, argv) { peer = new QtLocalPeer(this, appId); connect(peer, SIGNAL(messageReceived(const QString&)), SIGNAL(messageReceived(const QString&))); } /*! Returns true if another instance of this application is running; otherwise false. This function does not find instances of this application that are being run by a different user (on Windows: that are running in another session). \sa sendMessage() */ bool QtSingleCoreApplication::isRunning() { return peer->isClient(); } /*! Tries to send the text \a message to the currently running instance. The QtSingleCoreApplication object in the running instance will emit the messageReceived() signal when it receives the message. This function returns true if the message has been sent to, and processed by, the current instance. If there is no instance currently running, or if the running instance fails to process the message within \a timeout milliseconds, this function return false. \sa isRunning(), messageReceived() */ bool QtSingleCoreApplication::sendMessage(const QString &message, int timeout) { return peer->sendMessage(message, timeout); } /*! Returns the application identifier. Two processes with the same identifier will be regarded as instances of the same application. */ QString QtSingleCoreApplication::id() const { return peer->applicationId(); } /*! \fn void QtSingleCoreApplication::messageReceived(const QString& message) This signal is emitted when the current instance receives a \a message from another instance of this application. \sa sendMessage() */ focuswriter-1.4.5/src/qtsingleapplication/qtsinglecoreapplication.h000066400000000000000000000050251231434177300260410ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef QTSINGLECOREAPPLICATION_H #define QTSINGLECOREAPPLICATION_H #include class QtLocalPeer; class QtSingleCoreApplication : public QCoreApplication { Q_OBJECT public: QtSingleCoreApplication(int &argc, char **argv); QtSingleCoreApplication(const QString &id, int &argc, char **argv); bool isRunning(); QString id() const; public Q_SLOTS: bool sendMessage(const QString &message, int timeout = 5000); Q_SIGNALS: void messageReceived(const QString &message); private: QtLocalPeer* peer; }; #endif // QTSINGLECOREAPPLICATION_H focuswriter-1.4.5/src/rtf/000077500000000000000000000000001231434177300154645ustar00rootroot00000000000000focuswriter-1.4.5/src/rtf/clipboard_mac.cpp000066400000000000000000000047071231434177300207570ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2011 Graeme Gott * * 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 . * ***********************************************************************/ #include "clipboard_mac.h" #include //----------------------------------------------------------------------------- bool RTF::Clipboard::canConvert(const QString &mime, QString flavor) { return flavorFor(mime) == flavor; } //----------------------------------------------------------------------------- QList RTF::Clipboard::convertFromMime(const QString &mime, QVariant data, QString flavor) { QList result; if (!canConvert(mime, flavor)) { return result; } result += data.toByteArray(); return result; } //----------------------------------------------------------------------------- QVariant RTF::Clipboard::convertToMime(const QString &mime, QList data, QString flavor) { if (!canConvert(mime, flavor)) { return QVariant(); } QByteArray result; int count = data.count(); for (int i = 0; i < count; ++i) { result += data[i]; } return result; } //----------------------------------------------------------------------------- QString RTF::Clipboard::convertorName() { return QLatin1String("RichText"); } //----------------------------------------------------------------------------- QString RTF::Clipboard::flavorFor(const QString &mime) { if (mime == QLatin1String("text/rtf")) { return QLatin1String("public.rtf"); } return QString(); } //----------------------------------------------------------------------------- QString RTF::Clipboard::mimeFor(QString flavor) { if (flavor == QLatin1String("public.rtf")) { return QLatin1String("text/rtf"); } return QString(); } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/rtf/clipboard_mac.h000066400000000000000000000027031231434177300204160ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2011 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef RTF_CLIPBOARD_MAC_H #define RTF_CLIPBOARD_MAC_H #include namespace RTF { class Clipboard : public QMacPasteboardMime { public: Clipboard() : QMacPasteboardMime(MIME_ALL) { } virtual bool canConvert(const QString &mime, QString flavor); virtual QList convertFromMime(const QString &mime, QVariant data, QString flavor); virtual QVariant convertToMime(const QString &mime, QList data, QString flavor); virtual QString convertorName(); virtual QString flavorFor(const QString &mime); virtual QString mimeFor(QString flavor); }; } #endif focuswriter-1.4.5/src/rtf/clipboard_windows.cpp000066400000000000000000000114161231434177300217040ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2011 Graeme Gott * * 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 . * ***********************************************************************/ #include "clipboard_windows.h" //----------------------------------------------------------------------------- RTF::Clipboard::Clipboard() : QWindowsMime() { CF_RTF = QWindowsMime::registerMimeType(QLatin1String("Rich Text Format")); } //----------------------------------------------------------------------------- bool RTF::Clipboard::canConvertFromMime(const FORMATETC& format, const QMimeData* mime_data) const { return (format.cfFormat == CF_RTF) && mime_data->hasFormat(QLatin1String("text/rtf")); } //----------------------------------------------------------------------------- bool RTF::Clipboard::canConvertToMime(const QString& mime_type, IDataObject* data_obj) const { bool result = false; if (mime_type == QLatin1String("text/rtf")) { FORMATETC format = initFormat(); format.tymed |= TYMED_ISTREAM; result = (data_obj->QueryGetData(&format) == S_OK); } return result; } //----------------------------------------------------------------------------- bool RTF::Clipboard::convertFromMime(const FORMATETC& format, const QMimeData* mime_data, STGMEDIUM* storage_medium) const { if (canConvertFromMime(format, mime_data)) { QByteArray data = mime_data->data(QLatin1String("text/rtf")); HANDLE data_handle = GlobalAlloc(0, data.size()); if (!data_handle) { return false; } void* data_ptr = GlobalLock(data_handle); memcpy(data_ptr, data.data(), data.size()); GlobalUnlock(data_handle); storage_medium->tymed = TYMED_HGLOBAL; storage_medium->hGlobal = data_handle; storage_medium->pUnkForRelease = NULL; return true; } return false; } //----------------------------------------------------------------------------- QVariant RTF::Clipboard::convertToMime(const QString& mime_type, IDataObject* data_obj, QVariant::Type preferred_type) const { Q_UNUSED(preferred_type); QVariant result; if (canConvertToMime(mime_type, data_obj)) { QByteArray data; FORMATETC format = initFormat(); format.tymed |= TYMED_ISTREAM; STGMEDIUM storage_medium; if (data_obj->GetData(&format, &storage_medium) == S_OK) { if (storage_medium.tymed == TYMED_HGLOBAL) { char* data_ptr = reinterpret_cast(GlobalLock(storage_medium.hGlobal)); data = QByteArray::fromRawData(data_ptr, GlobalSize(storage_medium.hGlobal)); data.detach(); GlobalUnlock(storage_medium.hGlobal); } else if (storage_medium.tymed == TYMED_ISTREAM) { char buffer[4096]; ULONG amount_read = 0; LARGE_INTEGER pos = {{0, 0}}; HRESULT stream_result = storage_medium.pstm->Seek(pos, STREAM_SEEK_SET, NULL); while (SUCCEEDED(stream_result)) { stream_result = storage_medium.pstm->Read(buffer, sizeof(buffer), &amount_read); if (SUCCEEDED(stream_result) && (amount_read > 0)) { data += QByteArray::fromRawData(buffer, amount_read); } if (amount_read != sizeof(buffer)) { break; } } data.detach(); } ReleaseStgMedium(&storage_medium); } if (!data.isEmpty()) { result = data; } } return result; } //----------------------------------------------------------------------------- QVector RTF::Clipboard::formatsForMime(const QString& mime_type, const QMimeData* mime_data) const { QVector result; if ((mime_type == QLatin1String("text/rtf")) && mime_data->hasFormat(QLatin1String("text/rtf"))) { result += initFormat(); } return result; } //----------------------------------------------------------------------------- QString RTF::Clipboard::mimeForFormat(const FORMATETC& format) const { if (format.cfFormat == CF_RTF) { return QLatin1String("text/rtf"); } return QString(); } //----------------------------------------------------------------------------- FORMATETC RTF::Clipboard::initFormat() const { FORMATETC format; format.cfFormat = CF_RTF; format.ptd = NULL; format.dwAspect = DVASPECT_CONTENT; format.lindex = -1; format.tymed = TYMED_HGLOBAL; return format; } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/rtf/clipboard_windows.h000066400000000000000000000033131231434177300213460ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2011 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef RTF_CLIPBOARD_WINDOWS_H #define RTF_CLIPBOARD_WINDOWS_H #include #include #include namespace RTF { class Clipboard : public QWindowsMime { public: Clipboard(); virtual bool canConvertFromMime(const FORMATETC& format, const QMimeData* mime_data) const; virtual bool canConvertToMime(const QString& mime_type, IDataObject* data_obj) const; virtual bool convertFromMime(const FORMATETC& format, const QMimeData* mime_data, STGMEDIUM* storage_medium) const; virtual QVariant convertToMime(const QString& mime, IDataObject* data_obj, QVariant::Type preferred_type) const; virtual QVector formatsForMime(const QString& mime_type, const QMimeData* mime_data) const; virtual QString mimeForFormat(const FORMATETC& format) const; private: FORMATETC initFormat() const; private: int CF_RTF; }; } #endif focuswriter-1.4.5/src/rtf/reader.cpp000066400000000000000000000403051231434177300174340ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010, 2011, 2012, 2014 Graeme Gott * * Derived in part from KWord's rtfimport.cpp * Copyright (C) 2001 Ewald Snel * Copyright (C) 2001 Tomasz Grobelny * Copyright (C) 2003, 2004 Nicolas GOUTTE * * 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 . * ***********************************************************************/ #include "reader.h" #include #include #include #include #include //----------------------------------------------------------------------------- namespace { class Function { public: Function(void (RTF::Reader::*func)(qint32) = 0, qint32 value = 0) : m_func(func), m_value(value) { } void call(RTF::Reader* reader, const RTF::Tokenizer& token) const { (reader->*m_func)(token.hasValue() ? token.value() : m_value); } private: void (RTF::Reader::*m_func)(qint32); qint32 m_value; }; QHash functions; QTextCodec* codecForCodePage(qint32 value, QByteArray* codepage = 0) { QByteArray name = "CP" + QByteArray::number(value); QByteArray codec; if (value == 932) { codec = "Shift-JIS"; } else if (value == 10000) { codec = "Apple Roman"; } else if (value == 65001) { codec = "UTF-8"; } else { codec = name; } if (codepage) { *codepage = name; } return QTextCodec::codecForName(codec); } } //----------------------------------------------------------------------------- RTF::Reader::Reader() : m_in_block(true), m_codec(0), m_decoder(0) { if (functions.isEmpty()) { functions["\\"] = Function(&Reader::insertSymbol, '\\'); functions["_"] = Function(&Reader::insertSymbol, 0x2011); functions["{"] = Function(&Reader::insertSymbol, '{'); functions["|"] = Function(&Reader::insertSymbol, 0x00b7); functions["}"] = Function(&Reader::insertSymbol, '}'); functions["~"] = Function(&Reader::insertSymbol, 0x00a0); functions["-"] = Function(&Reader::insertSymbol, 0x00ad); functions["bullet"] = Function(&Reader::insertSymbol, 0x2022); functions["emdash"] = Function(&Reader::insertSymbol, 0x2014); functions["emspace"] = Function(&Reader::insertSymbol, 0x2003); functions["endash"] = Function(&Reader::insertSymbol, 0x2013); functions["enspace"] = Function(&Reader::insertSymbol, 0x2002); functions["ldblquote"] = Function(&Reader::insertSymbol, 0x201c); functions["lquote"] = Function(&Reader::insertSymbol, 0x2018); functions["line"] = Function(&Reader::insertSymbol, 0x2028); functions["ltrmark"] = Function(&Reader::insertSymbol, 0x200e); functions["qmspace"] = Function(&Reader::insertSymbol, 0x2004); functions["rdblquote"] = Function(&Reader::insertSymbol, 0x201d); functions["rquote"] = Function(&Reader::insertSymbol, 0x2019); functions["rtlmark"] = Function(&Reader::insertSymbol, 0x200f); functions["tab"] = Function(&Reader::insertSymbol, 0x0009); functions["zwj"] = Function(&Reader::insertSymbol, 0x200d); functions["zwnj"] = Function(&Reader::insertSymbol, 0x200c); functions["\'"] = Function(&Reader::insertHexSymbol); functions["u"] = Function(&Reader::insertUnicodeSymbol); functions["uc"] = Function(&Reader::setSkipCharacters); functions["par"] = Function(&Reader::endBlock); functions["\n"] = Function(&Reader::endBlock); functions["\r"] = Function(&Reader::endBlock); functions["pard"] = Function(&Reader::resetBlockFormatting); functions["plain"] = Function(&Reader::resetTextFormatting); functions["qc"] = Function(&Reader::setBlockAlignment, Qt::AlignHCenter); functions["qj"] = Function(&Reader::setBlockAlignment, Qt::AlignJustify); functions["ql"] = Function(&Reader::setBlockAlignment, Qt::AlignLeft | Qt::AlignAbsolute); functions["qr"] = Function(&Reader::setBlockAlignment, Qt::AlignRight | Qt::AlignAbsolute); functions["li"] = Function(&Reader::setBlockIndent); functions["ltrpar"] = Function(&Reader::setBlockDirection, Qt::LeftToRight); functions["rtlpar"] = Function(&Reader::setBlockDirection, Qt::RightToLeft); functions["b"] = Function(&Reader::setTextBold, true); functions["i"] = Function(&Reader::setTextItalic, true); functions["strike"] = Function(&Reader::setTextStrikeOut, true); functions["striked"] = Function(&Reader::setTextStrikeOut, true); functions["ul"] = Function(&Reader::setTextUnderline, true); functions["uld"] = Function(&Reader::setTextUnderline, true); functions["uldash"] = Function(&Reader::setTextUnderline, true); functions["uldashd"] = Function(&Reader::setTextUnderline, true); functions["uldb"] = Function(&Reader::setTextUnderline, true); functions["ulnone"] = Function(&Reader::setTextUnderline, false); functions["ulth"] = Function(&Reader::setTextUnderline, true); functions["ulw"] = Function(&Reader::setTextUnderline, true); functions["ulwave"] = Function(&Reader::setTextUnderline, true); functions["ulhwave"] = Function(&Reader::setTextUnderline, true); functions["ululdbwave"] = Function(&Reader::setTextUnderline, true); functions["sub"] = Function(&Reader::setTextVerticalAlignment, QTextCharFormat::AlignSubScript); functions["super"] = Function(&Reader::setTextVerticalAlignment, QTextCharFormat::AlignSuperScript); functions["nosupersub"] = Function(&Reader::setTextVerticalAlignment, QTextCharFormat::AlignNormal); functions["ansicpg"] = Function(&Reader::setCodepage); functions["ansi"] = Function(&Reader::setCodepage, 1252); functions["mac"] = Function(&Reader::setCodepage, 10000); functions["pc"] = Function(&Reader::setCodepage, 850); functions["pca"] = Function(&Reader::setCodepage, 850); functions["deff"] = Function(&Reader::setFont); functions["f"] = Function(&Reader::setFont); functions["cpg"] = Function(&Reader::setFontCodepage); functions["fcharset"] = Function(&Reader::setFontCharset); functions["filetbl"] = Function(&Reader::ignoreGroup); functions["colortbl"] = Function(&Reader::ignoreGroup); functions["fonttbl"] = Function(&Reader::ignoreText); functions["stylesheet"] = Function(&Reader::ignoreGroup); functions["info"] = Function(&Reader::ignoreGroup); functions["pict"] = Function(&Reader::ignoreGroup); functions["*"] = Function(&Reader::ignoreGroup); } m_state.ignore_control_word = false; m_state.ignore_text = false; m_state.skip = 1; m_state.active_codepage = 0; setCodepage(1252); } //----------------------------------------------------------------------------- RTF::Reader::~Reader() { delete m_decoder; } //----------------------------------------------------------------------------- QByteArray RTF::Reader::codePage() const { return m_codepage_name; } //----------------------------------------------------------------------------- QString RTF::Reader::errorString() const { return m_error; } //----------------------------------------------------------------------------- bool RTF::Reader::hasError() const { return !m_error.isEmpty(); } //----------------------------------------------------------------------------- void RTF::Reader::read(QIODevice* device, const QTextCursor& cursor) { try { // Use theme spacings m_block_format = cursor.blockFormat(); m_state.block_format = m_block_format; // Open file m_cursor = cursor; m_cursor.beginEditBlock(); m_token.setDevice(device); setBlockDirection(Qt::LeftToRight); // Check file type m_token.readNext(); if (m_token.type() == StartGroupToken) { pushState(); } else { throw tr("Not a supported RTF file."); } m_token.readNext(); if (m_token.type() != ControlWordToken || m_token.text() != "rtf" || m_token.value() != 1) { throw tr("Not a supported RTF file."); } // Parse file contents while (!m_states.isEmpty() && m_token.hasNext()) { m_token.readNext(); if ((m_token.type() != EndGroupToken) && !m_in_block) { m_cursor.insertBlock(m_state.block_format); m_in_block = true; } if (m_token.type() == StartGroupToken) { pushState(); } else if (m_token.type() == EndGroupToken) { popState(); } else if (m_token.type() == ControlWordToken) { if (!m_state.ignore_control_word && functions.contains(m_token.text())) { functions[m_token.text()].call(this, m_token); } } else if (m_token.type() == TextToken) { if (!m_state.ignore_text) { m_cursor.insertText(m_decoder->toUnicode(m_token.text())); } } } } catch (const QString& error) { m_error = error; } m_cursor.endEditBlock(); } //----------------------------------------------------------------------------- void RTF::Reader::endBlock(qint32) { m_in_block = false; } //----------------------------------------------------------------------------- void RTF::Reader::ignoreGroup(qint32) { m_state.ignore_control_word = true; m_state.ignore_text = true; } //----------------------------------------------------------------------------- void RTF::Reader::ignoreText(qint32) { m_state.ignore_text = true; } //----------------------------------------------------------------------------- void RTF::Reader::insertHexSymbol(qint32) { m_cursor.insertText(m_decoder->toUnicode(m_token.hex())); } //----------------------------------------------------------------------------- void RTF::Reader::insertSymbol(qint32 value) { m_cursor.insertText(QChar(value)); } //----------------------------------------------------------------------------- void RTF::Reader::insertUnicodeSymbol(qint32 value) { m_cursor.insertText(QChar(value)); for (int i = m_state.skip; i > 0;) { m_token.readNext(); if (m_token.type() == TextToken) { int len = m_token.text().count(); if (len > i) { m_cursor.insertText(m_decoder->toUnicode(m_token.text().mid(i))); break; } else { i -= len; } } else if (m_token.type() == ControlWordToken) { --i; } else if (m_token.type() == StartGroupToken) { pushState(); break; } else if (m_token.type() == EndGroupToken) { popState(); break; } } } //----------------------------------------------------------------------------- void RTF::Reader::pushState() { m_states.push(m_state); } //----------------------------------------------------------------------------- void RTF::Reader::popState() { if (m_states.isEmpty()) { return; } m_state = m_states.pop(); m_cursor.setCharFormat(m_state.char_format); setFont(m_state.active_codepage); } //----------------------------------------------------------------------------- void RTF::Reader::resetBlockFormatting(qint32) { m_state.block_format = m_block_format; m_cursor.setBlockFormat(m_state.block_format); } //----------------------------------------------------------------------------- void RTF::Reader::resetTextFormatting(qint32) { m_state.char_format = QTextCharFormat(); m_cursor.setCharFormat(m_state.char_format); } //----------------------------------------------------------------------------- void RTF::Reader::setBlockAlignment(qint32 value) { m_state.block_format.setAlignment(Qt::Alignment(value)); m_cursor.mergeBlockFormat(m_state.block_format); } //----------------------------------------------------------------------------- void RTF::Reader::setBlockDirection(qint32 value) { m_state.block_format.setLayoutDirection(Qt::LayoutDirection(value)); Qt::Alignment alignment = m_state.block_format.alignment(); if (alignment & Qt::AlignLeft) { alignment |= Qt::AlignAbsolute; m_state.block_format.setAlignment(alignment); } m_cursor.mergeBlockFormat(m_state.block_format); } //----------------------------------------------------------------------------- void RTF::Reader::setBlockIndent(qint32 value) { m_state.block_format.setIndent(value / 15); m_cursor.mergeBlockFormat(m_state.block_format); } //----------------------------------------------------------------------------- void RTF::Reader::setTextBold(qint32 value) { m_state.char_format.setFontWeight(value ? QFont::Bold : QFont::Normal); m_cursor.mergeCharFormat(m_state.char_format); } //----------------------------------------------------------------------------- void RTF::Reader::setTextItalic(qint32 value) { m_state.char_format.setFontItalic(value); m_cursor.mergeCharFormat(m_state.char_format); } //----------------------------------------------------------------------------- void RTF::Reader::setTextStrikeOut(qint32 value) { m_state.char_format.setFontStrikeOut(value); m_cursor.mergeCharFormat(m_state.char_format); } //----------------------------------------------------------------------------- void RTF::Reader::setTextUnderline(qint32 value) { m_state.char_format.setFontUnderline(value); m_cursor.mergeCharFormat(m_state.char_format); } //----------------------------------------------------------------------------- void RTF::Reader::setTextVerticalAlignment(qint32 value) { m_state.char_format.setVerticalAlignment(QTextCharFormat::VerticalAlignment(value)); m_cursor.mergeCharFormat(m_state.char_format); } //----------------------------------------------------------------------------- void RTF::Reader::setSkipCharacters(qint32 value) { m_state.skip = value; } //----------------------------------------------------------------------------- void RTF::Reader::setCodepage(qint32 value) { QByteArray codepage; QTextCodec* codec = codecForCodePage(value, &codepage); if (codec != 0) { m_codepage = codec; m_codepage_name = codepage; setCodec(codec); } } //----------------------------------------------------------------------------- void RTF::Reader::setFont(qint32 value) { m_state.active_codepage = value; if (value < m_codepages.count()) { setCodec(m_codepages[value]); } else { setCodec(0); m_codepages.resize(value + 1); } if (m_codec == 0) { setCodec(m_codepage); } } //----------------------------------------------------------------------------- void RTF::Reader::setFontCodepage(qint32 value) { if (m_state.active_codepage >= m_codepages.count()) { m_state.ignore_control_word = true; m_state.ignore_text = true; return; } QTextCodec* codec = codecForCodePage(value); if (codec != 0) { m_codepages[m_state.active_codepage] = codec; setCodec(codec); } m_state.ignore_control_word = true; m_state.ignore_text = true; } //----------------------------------------------------------------------------- void RTF::Reader::setFontCharset(qint32 value) { if (m_state.active_codepage >= m_codepages.count()) { m_state.ignore_text = true; return; } if (m_codepages[m_state.active_codepage] != 0) { setCodec(m_codepages[m_state.active_codepage]); m_state.ignore_text = true; return; } QByteArray charset; switch (value) { case 0: charset = "CP1252"; break; case 1: charset = "CP1252"; break; case 77: charset = "Apple Roman"; break; case 128: charset = "Shift-JIS"; break; case 129: charset = "eucKR"; break; case 130: charset = "CP1361"; break; case 134: charset = "GB2312"; break; case 136: charset = "Big5-HKSCS"; break; case 161: charset = "CP1253"; break; case 162: charset = "CP1254"; break; case 163: charset = "CP1258"; break; case 177: charset = "CP1255"; break; case 178: charset = "CP1256"; break; case 186: charset = "CP1257"; break; case 204: charset = "CP1251"; break; case 222: charset = "CP874"; break; case 238: charset = "CP1250"; break; case 255: charset = "CP850"; break; default: return; } QTextCodec* codec = QTextCodec::codecForName(charset); if (codec != 0) { m_codepages[m_state.active_codepage] = codec; setCodec(codec); } m_state.ignore_text = true; } //----------------------------------------------------------------------------- void RTF::Reader::setCodec(QTextCodec* codec) { if (m_codec != codec) { m_codec = codec; if (m_codec) { delete m_decoder; m_decoder = m_codec->makeDecoder(); } } } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/rtf/reader.h000066400000000000000000000052301231434177300170770ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010, 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef RTF_READER_H #define RTF_READER_H #include "tokenizer.h" #include #include #include #include #include class QString; class QTextEdit; class QTextDecoder; namespace RTF { class Reader { Q_DECLARE_TR_FUNCTIONS(Reader) public: Reader(); ~Reader(); QByteArray codePage() const; QString errorString() const; bool hasError() const; void read(QIODevice* device, const QTextCursor& cursor); private: void endBlock(qint32); void ignoreGroup(qint32); void ignoreText(qint32); void insertHexSymbol(qint32); void insertSymbol(qint32 value); void insertUnicodeSymbol(qint32 value); void pushState(); void popState(); void resetBlockFormatting(qint32); void resetTextFormatting(qint32); void setBlockAlignment(qint32 value); void setBlockDirection(qint32 value); void setBlockIndent(qint32 value); void setTextBold(qint32 value); void setTextItalic(qint32 value); void setTextStrikeOut(qint32 value); void setTextUnderline(qint32 value); void setTextVerticalAlignment(qint32 value); void setSkipCharacters(qint32 value); void setCodepage(qint32 value); void setFont(qint32 value); void setFontCharset(qint32 value); void setFontCodepage(qint32 value); void setCodec(QTextCodec* codec); private: Tokenizer m_token; bool m_in_block; struct State { QTextBlockFormat block_format; QTextCharFormat char_format; bool ignore_control_word; bool ignore_text; int skip; int active_codepage; }; QStack m_states; State m_state; QTextBlockFormat m_block_format; QTextCodec* m_codec; QTextDecoder* m_decoder; QTextCodec* m_codepage; QVector m_codepages; QByteArray m_codepage_name; QString m_error; QTextCursor m_cursor; }; } #endif focuswriter-1.4.5/src/rtf/tokenizer.cpp000066400000000000000000000075201231434177300202060ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010 Graeme Gott * * Derived from KWord's rtfimport_tokenizer.cpp * Copyright (C) 2001 Ewald Snel * Copyright (C) 2001 Tomasz Grobelny * Copyright (C) 2005 Tommi Rantala * * 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 . * ***********************************************************************/ #include "tokenizer.h" #include #include //----------------------------------------------------------------------------- RTF::Tokenizer::Tokenizer() : m_device(0), m_position(0), m_value(0), m_has_value(false) { m_buffer.reserve(8192); m_text.reserve(8192); } //----------------------------------------------------------------------------- bool RTF::Tokenizer::hasNext() const { return (m_position < m_buffer.size() - 1) || !m_device->atEnd(); } //----------------------------------------------------------------------------- void RTF::Tokenizer::readNext() { // Reset values m_type = TextToken; m_hex.clear(); m_text.resize(0); m_value = 0; m_has_value = false; if (!m_device) { return; } // Read first character char c; do { c = next(); } while (c == '\n' || c == '\r'); // Determine token type if (c == '{') { m_type = StartGroupToken; } else if (c == '}') { m_type = EndGroupToken; } else if (c == '\\') { m_type = ControlWordToken; c = next(); if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) { // Read control word while ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) { m_text.append(c); c = next(); } // Read integer value int sign = (c != '-') ? 1 : -1; if (sign == -1) { c = next(); } QByteArray value; while (isdigit(c)) { value.append(c); c = next(); } m_has_value = !value.isEmpty(); m_value = value.toInt() * sign; // Eat space after control word if (c != ' ') { --m_position; } // Eat binary value if (m_text == "bin") { if (m_value > 0) { for (int i = 0; i < m_value; i++) { c = next(); } } return readNext(); } } else if (c == '\'') { // Read hexadecimal value m_text.append(c); QByteArray hex(2, 0); hex[0] = next(); hex[1] = next(); m_hex.append(hex.toInt(0, 16)); } else { // Read escaped character m_text.append(c); } } else { // Read text m_type = TextToken; while (c != '\\' && c != '{' && c != '}' && c != '\n' && c != '\r') { m_text.append(c); c = next(); } m_position--; } } //----------------------------------------------------------------------------- void RTF::Tokenizer::setDevice(QIODevice* device) { m_device = device; } //----------------------------------------------------------------------------- char RTF::Tokenizer::next() { m_position++; if (m_position >= m_buffer.size()) { m_buffer.resize(8192); int size = m_device->read(m_buffer.data(), m_buffer.size()); if (size < 1) { throw tr("Unexpectedly reached end of file."); } m_buffer.resize(size); m_position = 0; QApplication::processEvents(); } return m_buffer.at(m_position); } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/rtf/tokenizer.h000066400000000000000000000036221231434177300176520ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef RTF_TOKENIZER_H #define RTF_TOKENIZER_H #include #include class QIODevice; namespace RTF { enum TokenType { StartGroupToken, EndGroupToken, ControlWordToken, TextToken }; class Tokenizer { Q_DECLARE_TR_FUNCTIONS(Tokenizer) public: Tokenizer(); bool hasNext() const; bool hasValue() const; QByteArray hex() const; QByteArray text() const; TokenType type() const; qint32 value() const; void readNext(); void setDevice(QIODevice* device); private: char next(); private: QIODevice* m_device; QByteArray m_buffer; int m_position; TokenType m_type; QByteArray m_hex; QByteArray m_text; qint32 m_value; bool m_has_value; }; inline bool Tokenizer::hasValue() const { return m_has_value; } inline QByteArray Tokenizer::hex() const { return m_hex; } inline QByteArray Tokenizer::text() const { return m_text; } inline TokenType Tokenizer::type() const { return m_type; } inline qint32 Tokenizer::value() const { return m_value; } } #endif // TOKENIZER_H focuswriter-1.4.5/src/rtf/writer.cpp000066400000000000000000000271111231434177300175060ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010, 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #include "writer.h" #include #include #include #include #include #include #ifdef Q_OS_WIN32 #include #endif //----------------------------------------------------------------------------- namespace { #ifndef Q_OS_WIN32 QHash mapCodePages() { QHash codepages; codepages[QLocale::Thai] = "CP874"; codepages[QLocale::Japanese] = "CP932"; codepages[QLocale::Korean] = "CP949"; codepages[QLocale::Albanian] = "CP1250"; codepages[QLocale::Bosnian] = "CP1250"; codepages[QLocale::Croatian] = "CP1250"; codepages[QLocale::Czech] = "CP1250"; codepages[QLocale::Hungarian] = "CP1250"; codepages[QLocale::Polish] = "CP1250"; codepages[QLocale::Romanian] = "CP1250"; codepages[QLocale::SerboCroatian] = "CP1250"; codepages[QLocale::Slovak] = "CP1250"; codepages[QLocale::Slovenian] = "CP1250"; codepages[QLocale::Turkmen] = "CP1250"; codepages[QLocale::Bashkir] = "CP1251"; codepages[QLocale::Bulgarian] = "CP1251"; codepages[QLocale::Byelorussian] = "CP1251"; codepages[QLocale::Kazakh] = "CP1251"; codepages[QLocale::Kirghiz] = "CP1251"; codepages[QLocale::Macedonian] = "CP1251"; codepages[QLocale::Mongolian] = "CP1251"; codepages[QLocale::Russian] = "CP1251"; codepages[QLocale::Tajik] = "CP1251"; codepages[QLocale::Tatar] = "CP1251"; codepages[QLocale::Ukrainian] = "CP1251"; codepages[QLocale::Afrikaans] = "CP1252"; codepages[QLocale::Basque] = "CP1252"; codepages[QLocale::Breton] = "CP1252"; codepages[QLocale::Corsican] = "CP1252"; codepages[QLocale::Danish] = "CP1252"; codepages[QLocale::Dutch] = "CP1252"; codepages[QLocale::English] = "CP1252"; codepages[QLocale::Faroese] = "CP1252"; codepages[QLocale::Finnish] = "CP1252"; codepages[QLocale::French] = "CP1252"; codepages[QLocale::Frisian] = "CP1252"; codepages[QLocale::Galician] = "CP1252"; codepages[QLocale::Gaelic] = "CP1252"; codepages[QLocale::German] = "CP1252"; codepages[QLocale::Greenlandic] = "CP1252"; codepages[QLocale::Hausa] = "CP1252"; codepages[QLocale::Icelandic] = "CP1252"; codepages[QLocale::Igbo] = "CP1252"; codepages[QLocale::Indonesian] = "CP1252"; codepages[QLocale::Inuktitut] = "CP1252"; codepages[QLocale::Irish] = "CP1252"; codepages[QLocale::Italian] = "CP1252"; codepages[QLocale::Kinyarwanda] = "CP1252"; codepages[QLocale::Malay] = "CP1252"; codepages[QLocale::Norwegian] = "CP1252"; codepages[QLocale::NorwegianNynorsk] = "CP1252"; codepages[QLocale::Occitan] = "CP1252"; codepages[QLocale::Portuguese] = "CP1252"; codepages[QLocale::RhaetoRomance] = "CP1252"; codepages[QLocale::Quechua] = "CP1252"; codepages[QLocale::Spanish] = "CP1252"; codepages[QLocale::Swahili] = "CP1252"; codepages[QLocale::Swedish] = "CP1252"; codepages[QLocale::Tagalog] = "CP1252"; codepages[QLocale::Welsh] = "CP1252"; codepages[QLocale::Wolof] = "CP1252"; codepages[QLocale::Xhosa] = "CP1252"; codepages[QLocale::Yoruba] = "CP1252"; codepages[QLocale::Zulu] = "CP1252"; codepages[QLocale::Greek] = "CP1253"; codepages[QLocale::Azerbaijani] = "CP1254"; codepages[QLocale::Turkish] = "CP1254"; codepages[QLocale::Uzbek] = "CP1254"; codepages[QLocale::Hebrew] = "CP1255"; codepages[QLocale::Yiddish] = "CP1255"; codepages[QLocale::Arabic] = "CP1256"; codepages[QLocale::Persian] = "CP1256"; codepages[QLocale::Urdu] = "CP1256"; codepages[QLocale::Estonian] = "CP1257"; codepages[QLocale::Latvian] = "CP1257"; codepages[QLocale::Lithuanian] = "CP1257"; codepages[QLocale::Vietnamese] = "CP1258"; #if QT_VERSION >= QT_VERSION_CHECK(4, 7, 0) codepages[QLocale::CentralMoroccoTamazight] = "CP1252"; codepages[QLocale::LowGerman] = "CP1252"; codepages[QLocale::NorthernSami] = "CP1252"; codepages[QLocale::SwissGerman] = "CP1252"; #endif return codepages; } QByteArray fetchCodePage() { // Search code page map for current language QLocale::Language language = QLocale().language(); static const QHash codepages = mapCodePages(); QByteArray codepage = codepages.value(language); // Guess at Chinese code page for current country if (codepage.isEmpty() && language == QLocale::Chinese) { QLocale::Country country = QLocale().country(); codepage = (country == QLocale::HongKong || country == QLocale::Macau || country == QLocale::Taiwan) ? "CP950" : "CP936"; } // Guess at closest code page from environment variables if (codepage.isEmpty()) { QByteArray lang = setlocale(LC_CTYPE, 0); if (lang.isEmpty() || lang == "C") { lang = qgetenv("LC_ALL"); } if (lang.isEmpty() || lang == "C") { lang = qgetenv("LC_CTYPE"); } if (lang.isEmpty() || lang == "C") { lang = qgetenv("LANG"); } if (language == QLocale::Serbian) { codepage = (lang.contains("@latin") || lang.contains("Latn")) ? "CP1250" : "CP1251"; } if (lang.contains("8859-2")) { codepage = "CP1250"; } else if (lang.contains("8859-3")) { codepage = "CP1254"; } else if (lang.contains("8859-4")) { codepage = "CP1257"; } else if (lang.contains("8859-5")) { codepage = "CP1251"; } else if (lang.contains("8859-6")) { codepage = "CP1256"; } else if (lang.contains("8859-7")) { codepage = "CP1253"; } else if (lang.contains("8859-8")) { codepage = "CP1255"; } else if (lang.contains("8859-9")) { codepage = "CP1254"; } else if (lang.contains("8859-11")) { codepage = "CP874"; } else if (lang.contains("8859-13")) { codepage = "CP1257"; } if (codepage.isEmpty() && lang.contains("UTF-8")) { codepage = "CP65001"; } } // Fall back to Western European if (codepage.isEmpty()) { codepage = "CP1252"; } return codepage; } #else QByteArray fetchCodePage() { TCHAR buffer[7]; int size = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_IDEFAULTANSICODEPAGE, buffer, sizeof(buffer) / sizeof(TCHAR)); #if UNICODE QString codepage = QLatin1String("CP") + QString::fromUtf16((ushort*)buffer, size - 1); #else QString codepage = QLatin1String("CP") + QString::fromLocal8Bit(buffer); #endif return codepage.toLatin1(); } #endif } //----------------------------------------------------------------------------- RTF::Writer::Writer(const QByteArray& codepage) : m_codepage(codepage), m_codec(0) { // Fetch system codepage if (m_codepage.isEmpty()) { m_codepage = fetchCodePage(); } if (m_codepage == "CP932") { m_codepage = "Shift-JIS"; } // Load codec m_codec = QTextCodec::codecForName(m_codepage); if (!m_codec) { m_codepage = "CP1252"; m_codec = QTextCodec::codecForName(m_codepage); } // Create header switch (m_codec->mibEnum()) { case -168: m_header = "{\\rtf1\\mac\\ansicpg10000\n"; break; case 17: m_header = "{\\rtf1\\ansi\\ansicpg932\n"; break; case 106: m_header = "{\\rtf1\\ansi\\ansicpg65001\n"; break; case 2009: m_header = "{\\rtf1\\pca\\ansicpg850\n"; break; default: m_header = "{\\rtf1\\ansi\\ansicpg" + m_codepage.mid(2) + "\n"; break; } } //----------------------------------------------------------------------------- bool RTF::Writer::write(QIODevice* device, QTextDocument* text, bool full) { if (m_codec == 0) { return false; } device->write(m_header); for (QTextBlock block = text->begin(); block.isValid(); block = block.next()) { if (full) { QByteArray par("{\\pard\\plain"); QTextBlockFormat block_format = block.blockFormat(); bool rtl = block_format.layoutDirection() == Qt::RightToLeft; if (rtl) { par += "\\rtlpar"; } Qt::Alignment align = block_format.alignment(); if (rtl && (align & Qt::AlignLeft)) { par += "\\ql"; } else if (align & Qt::AlignRight) { par += "\\qr"; } else if (align & Qt::AlignCenter) { par += "\\qc"; } else if (align & Qt::AlignJustify) { par += "\\qj"; } if (block_format.indent() > 0) { par += "\\li" + QByteArray::number(block_format.indent() * 15); } device->write(par); } else { device->write("{"); } if (block.begin() != block.end()) { if (full) { device->write(" "); } for (QTextBlock::iterator iter = block.begin(); !(iter.atEnd()); ++iter) { QTextFragment fragment = iter.fragment(); QTextCharFormat char_format = fragment.charFormat(); QByteArray style; if (char_format.fontWeight() == QFont::Bold) { style += "\\b"; } if (char_format.fontItalic()) { style += "\\i"; } if (char_format.fontUnderline()) { style += "\\ul"; } if (char_format.fontStrikeOut()) { style += "\\strike"; } if (char_format.verticalAlignment() == QTextCharFormat::AlignSuperScript) { style += "\\super"; } else if (char_format.verticalAlignment() == QTextCharFormat::AlignSubScript) { style += "\\sub"; } if (!style.isEmpty()) { device->write("{" + style + " " + fromUnicode(fragment.text()) + "}"); } else { device->write(fromUnicode(fragment.text())); } } } if (full || block.next().isValid()) { device->write("\\par}\n"); } else { device->write("}"); } } device->write("}"); return true; } //----------------------------------------------------------------------------- QByteArray RTF::Writer::fromUnicode(const QString& string) const { QByteArray text; QByteArray encoded; QTextCodec::ConverterState state; state.flags = QTextCodec::ConvertInvalidToNull; QString::const_iterator end = string.constEnd(); for (QString::const_iterator i = string.constBegin(); i != end; ++i) { switch (i->unicode()) { case '\t': text += "\\tab "; break; case '\\': text += "\\'5C"; break; case '{': text += "\\'7B"; break; case '}': text += "\\'7D"; break; case 0x00a0: text += "\\~"; break; case 0x00ad: text += "\\-"; break; case 0x00b7: text += "\\|"; break; case 0x2002: text += "\\enspace "; break; case 0x2003: text += "\\emspace "; break; case 0x2004: text += "\\qmspace "; break; case 0x200c: text += "\\zwnj "; break; case 0x200d: text += "\\zwj "; break; case 0x200e: text += "\\ltrmark "; break; case 0x200f: text += "\\rtlmark "; break; case 0x2011: text += "\\_"; break; case 0x2013: text += "\\endash "; break; case 0x2014: text += "\\emdash "; break; case 0x2018: text += "\\lquote "; break; case 0x2019: text += "\\rquote "; break; case 0x201c: text += "\\ldblquote "; break; case 0x201d: text += "\\rdblquote "; break; case 0x2022: text += "\\bullet "; break; case 0x2028: text += "\\line "; break; default: encoded = m_codec->fromUnicode(i, 1, &state); if (state.invalidChars == 0) { if (encoded.count() == 1 && encoded.at(0) >= 0x20) { text += encoded; } else { for (int j = 0; j < encoded.count(); ++j) { text += "\\'" + QByteArray::number(static_cast(encoded.at(j)), 16).toUpper(); } } } else { text += "\\u" + QByteArray::number(i->unicode()) + "?"; } } } return text; } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/rtf/writer.h000066400000000000000000000027051231434177300171550ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010, 2011 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef RTF_WRITER_H #define RTF_WRITER_H #include #include class QIODevice; class QTextCodec; class QTextDocument; namespace RTF { class Writer { public: Writer(const QByteArray& codepage = QByteArray()); QByteArray codePage() const; bool write(QIODevice* device, QTextDocument* text, bool full = true); private: void setCodec(QTextCodec* codec); QByteArray fromUnicode(const QString& string) const; private: QByteArray m_codepage; QTextCodec* m_codec; QByteArray m_header; }; } inline QByteArray RTF::Writer::codePage() const { return m_codepage; } #endif focuswriter-1.4.5/src/scene_list.cpp000066400000000000000000000312721231434177300175320ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2012 Graeme Gott * * 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 . * ***********************************************************************/ #include "scene_list.h" #include "action_manager.h" #include "document.h" #include "scene_model.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include //----------------------------------------------------------------------------- namespace { class SceneDelegate : public QStyledItemDelegate { public: SceneDelegate(QObject* parent) : QStyledItemDelegate(parent) { } QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const; }; QSize SceneDelegate::sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const { QStyleOptionViewItemV4 opt = option; initStyleOption(&opt, index); const QWidget* widget = opt.widget; const QStyle* style = widget ? widget->style() : QApplication::style(); QSize size = style->sizeFromContents(QStyle::CT_ItemViewItem, &opt, QSize(), widget); int margin = style->pixelMetric(QStyle::PM_FocusFrameVMargin, &opt, widget) * 2; int height = opt.fontMetrics.lineSpacing() * 3; size.setHeight(margin + height); return size; } } //----------------------------------------------------------------------------- SceneList::SceneList(QWidget* parent) : QFrame(parent), m_document(0), m_resizing(false) { m_width = qBound(0, QSettings().value("SceneList/Width", qRound(3.5 * logicalDpiX())).toInt(), maximumWidth()); // Configure sidebar setFrameStyle(QFrame::Panel | QFrame::Raised); setAutoFillBackground(true); setPalette(QApplication::palette()); // Create actions for moving scenes QAction* action = new QAction(tr("Move Scenes Down"), this); action->setShortcut(tr("Ctrl+Shift+Down")); connect(action, SIGNAL(triggered()), this, SLOT(moveScenesDown())); addAction(action); ActionManager::instance()->addAction("MoveScenesDown", action); action = new QAction(tr("Move Scenes Up"), this); action->setShortcut(tr("Ctrl+Shift+Up")); connect(action, SIGNAL(triggered()), this, SLOT(moveScenesUp())); addAction(action); ActionManager::instance()->addAction("MoveScenesUp", action); // Create button to show scenes m_show_button = new QToolButton(this); m_show_button->setAutoRaise(true); m_show_button->setArrowType(Qt::RightArrow); m_show_button->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::MinimumExpanding); connect(m_show_button, SIGNAL(clicked()), this, SLOT(showScenes())); // Create button to hide scenes m_hide_button = new QToolButton(this); m_hide_button->setAutoRaise(true); m_hide_button->setArrowType(Qt::LeftArrow); m_hide_button->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::MinimumExpanding); connect(m_hide_button, SIGNAL(clicked()), this, SLOT(hideScenes())); // Create action for toggling scenes m_toggle_action = new QAction(tr("Toggle Scene List"), this); m_toggle_action->setShortcut(tr("Shift+F4")); connect(m_toggle_action, SIGNAL(changed()), this, SLOT(updateShortcuts())); connect(m_toggle_action, SIGNAL(triggered()), this, SLOT(toggleScenes())); ActionManager::instance()->addAction("ToggleScenes", m_toggle_action); updateShortcuts(); parent->addAction(m_toggle_action); // Create scene view m_filter_model = new QSortFilterProxyModel(this); m_filter_model->setFilterCaseSensitivity(Qt::CaseInsensitive); m_scenes = new QListView(this); m_scenes->setAlternatingRowColors(true); m_scenes->setDragEnabled(true); m_scenes->setDragDropMode(QAbstractItemView::InternalMove); m_scenes->setDropIndicatorShown(true); m_scenes->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); m_scenes->setItemDelegate(new SceneDelegate(m_scenes)); m_scenes->setSelectionMode(QAbstractItemView::ExtendedSelection); m_scenes->setUniformItemSizes(true); m_scenes->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); m_scenes->setWordWrap(true); m_scenes->viewport()->setAcceptDrops(true); m_scenes->setModel(m_filter_model); m_scenes->show(); setFocusProxy(m_scenes); setFocusPolicy(Qt::StrongFocus); // Create filter widget m_filter = new QLineEdit(this); #if (QT_VERSION >= QT_VERSION_CHECK(4,7,0)) m_filter->setPlaceholderText(tr("Filter")); #endif connect(m_filter, SIGNAL(textChanged(QString)), this, SLOT(setFilter(QString))); // Create widget for resizing m_resizer = new QFrame(this); m_resizer->setCursor(Qt::SizeHorCursor); m_resizer->setFrameStyle(QFrame::VLine | QFrame::Sunken); m_resizer->setToolTip(tr("Resize scene list")); // Lay out widgets QGridLayout* layout = new QGridLayout(this); layout->setMargin(layout->spacing()); layout->setColumnStretch(1, 1); layout->setRowStretch(0, 1); layout->addWidget(m_show_button, 0, 0, 2, 1); layout->addWidget(m_hide_button, 0, 1, 2, 1); layout->addWidget(m_scenes, 0, 2); layout->addWidget(m_filter, 1, 2); layout->addWidget(m_resizer, 0, 3, 2, 1); // Start collapsed hideScenes(); } //----------------------------------------------------------------------------- SceneList::~SceneList() { QSettings().setValue("SceneList/Width", m_width); } //----------------------------------------------------------------------------- bool SceneList::scenesVisible() const { return m_scenes->isVisible(); } //----------------------------------------------------------------------------- void SceneList::setDocument(Document* document) { if (m_document) { disconnect(m_document->text(), SIGNAL(cursorPositionChanged()), this, SLOT(selectCurrentScene())); } m_document = 0; m_scenes->clearSelection(); m_filter->clear(); m_filter_model->setSourceModel(document->sceneModel()); m_document = document; if (m_document && scenesVisible()) { m_scenes->setDragDropMode(!m_document->text()->isReadOnly() ? QAbstractItemView::InternalMove : QAbstractItemView::NoDragDrop); m_document->sceneModel()->setUpdatesBlocked(false); connect(m_document->text(), SIGNAL(cursorPositionChanged()), this, SLOT(selectCurrentScene())); selectCurrentScene(); } } //----------------------------------------------------------------------------- void SceneList::hideScenes() { if (m_document) { disconnect(m_scenes->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)), this, SLOT(sceneSelected(QModelIndex))); m_document->sceneModel()->setUpdatesBlocked(true); disconnect(m_document->text(), SIGNAL(cursorPositionChanged()), this, SLOT(selectCurrentScene())); } m_show_button->show(); m_hide_button->hide(); m_scenes->hide(); m_filter->hide(); m_resizer->hide(); setMinimumWidth(0); setMaximumWidth(minimumSizeHint().width()); m_filter->clear(); hide(); if (m_document) { m_document->text()->setFocus(); } } //----------------------------------------------------------------------------- void SceneList::showScenes() { show(); m_hide_button->show(); m_scenes->show(); m_filter->show(); m_resizer->show(); m_show_button->hide(); setMinimumWidth(qRound(1.5 * logicalDpiX())); setMaximumWidth(m_width); if (m_document) { m_scenes->setDragDropMode(!m_document->text()->isReadOnly() ? QAbstractItemView::InternalMove : QAbstractItemView::NoDragDrop); m_document->sceneModel()->setUpdatesBlocked(false); connect(m_document->text(), SIGNAL(cursorPositionChanged()), this, SLOT(selectCurrentScene())); selectCurrentScene(); connect(m_scenes->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)), this, SLOT(sceneSelected(QModelIndex))); } m_scenes->setFocus(); } //----------------------------------------------------------------------------- void SceneList::mouseMoveEvent(QMouseEvent* event) { if (m_resizing) { int delta = event->pos().x() - m_mouse_current.x(); m_mouse_current = event->pos(); m_width += delta; m_width = qMax(minimumWidth(), m_width); setMaximumWidth(m_width); event->accept(); } else { QFrame::mouseMoveEvent(event); } } //----------------------------------------------------------------------------- void SceneList::mousePressEvent(QMouseEvent* event) { if (scenesVisible() && (event->button() == Qt::LeftButton) && (event->pos().x() >= m_resizer->mapToParent(m_resizer->rect().topLeft()).x())) { m_width = width(); m_mouse_current = event->pos(); m_resizing = true; event->accept(); } else { QFrame::mousePressEvent(event); } } //----------------------------------------------------------------------------- void SceneList::mouseReleaseEvent(QMouseEvent* event) { if (event->button() == Qt::LeftButton) { m_resizing = false; } QFrame::mouseReleaseEvent(event); } //----------------------------------------------------------------------------- void SceneList::resizeEvent(QResizeEvent* event) { m_scenes->scrollTo(m_scenes->currentIndex()); QFrame::resizeEvent(event); } //----------------------------------------------------------------------------- void SceneList::moveScenesDown() { moveSelectedScenes(1); } //----------------------------------------------------------------------------- void SceneList::moveScenesUp() { moveSelectedScenes(-1); } //----------------------------------------------------------------------------- void SceneList::sceneSelected(const QModelIndex& index) { if (!m_document || !scenesVisible()) { return; } if (index.isValid()) { int block_number = index.data(Qt::UserRole).toInt(); QTextBlock block = m_document->text()->document()->findBlockByNumber(block_number); QTextCursor cursor = m_document->text()->textCursor(); cursor.setPosition(block.position()); m_document->text()->setTextCursor(cursor); m_document->centerCursor(true); } } //----------------------------------------------------------------------------- void SceneList::selectCurrentScene() { if (!m_document || !scenesVisible()) { return; } QModelIndex index = m_document->sceneModel()->findScene(m_document->text()->textCursor()); if (index.isValid()) { index = m_filter_model->mapFromSource(index); m_scenes->selectionModel()->blockSignals(true); m_scenes->clearSelection(); m_scenes->setCurrentIndex(index); m_scenes->scrollTo(index); m_scenes->selectionModel()->blockSignals(false); } } //----------------------------------------------------------------------------- void SceneList::setFilter(const QString& filter) { m_filter_model->setFilterFixedString(filter); if (filter.isEmpty()) { m_scenes->setDragEnabled(true); m_scenes->setSelectionMode(QAbstractItemView::ExtendedSelection); } else { m_scenes->setDragEnabled(false); m_scenes->setSelectionMode(QAbstractItemView::SingleSelection); } } //----------------------------------------------------------------------------- void SceneList::toggleScenes() { if (scenesVisible()) { hideScenes(); } else { showScenes(); } } //----------------------------------------------------------------------------- void SceneList::updateShortcuts() { QKeySequence shortcut = ActionManager::instance()->action("ToggleScenes")->shortcut(); m_toggle_action->setShortcut(shortcut); m_show_button->setToolTip(tr("Show scene list (%1)").arg(shortcut.toString(QKeySequence::NativeText))); m_hide_button->setToolTip(tr("Hide scene list (%1)").arg(shortcut.toString(QKeySequence::NativeText))); } //----------------------------------------------------------------------------- void SceneList::moveSelectedScenes(int movement) { // Find scenes to move QModelIndexList indexes = m_filter_model->mapSelectionToSource(m_scenes->selectionModel()->selection()).indexes(); if (indexes.isEmpty()) { return; } QList scenes; // Find target row int first_row = INT_MAX; int last_row = 0; int index_row = 0; for (int i = 0, count = indexes.count(); i < count; ++i) { index_row = indexes.at(i).row(); first_row = qMin(first_row, index_row); last_row = qMax(last_row, index_row); scenes.append(index_row); } int row = qMax(0, ((movement > 0) ? (last_row + 1) : first_row) + movement); // Move scenes m_document->sceneModel()->moveScenes(scenes, row); } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/scene_list.h000066400000000000000000000037341231434177300172010ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2012 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef SCENE_LIST_H #define SCENE_LIST_H class Document; #include class QLineEdit; class QListView; class QModelIndex; class QSortFilterProxyModel; class QToolButton; class SceneList : public QFrame { Q_OBJECT public: SceneList(QWidget* parent = 0); ~SceneList(); bool scenesVisible() const; void setDocument(Document* document); public slots: void hideScenes(); void showScenes(); protected: void mouseMoveEvent(QMouseEvent* event); void mousePressEvent(QMouseEvent* event); void mouseReleaseEvent(QMouseEvent* event); void resizeEvent(QResizeEvent* event); private slots: void moveScenesDown(); void moveScenesUp(); void sceneSelected(const QModelIndex& index); void selectCurrentScene(); void setFilter(const QString& filter); void toggleScenes(); void updateShortcuts(); private: void moveSelectedScenes(int movement); private: QAction* m_toggle_action; QToolButton* m_show_button; QListView* m_scenes; QLineEdit* m_filter; QToolButton* m_hide_button; QFrame* m_resizer; QSortFilterProxyModel* m_filter_model; Document* m_document; int m_width; QPoint m_mouse_current; bool m_resizing; }; #endif focuswriter-1.4.5/src/scene_model.cpp000066400000000000000000000362531231434177300176630ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2012 Graeme Gott * * 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 . * ***********************************************************************/ #include "scene_model.h" #include "block_stats.h" #include #include #include #include #include //----------------------------------------------------------------------------- static QString f_scene_divider = QLatin1String("##"); static QList f_scene_models; //----------------------------------------------------------------------------- SceneModel::SceneModel(QTextEdit* document, QObject* parent) : QAbstractListModel(parent), m_document(document), m_updates(0) { connect(m_document->document(), SIGNAL(blockCountChanged(int)), this, SLOT(invalidateScenes())); f_scene_models.append(this); } //----------------------------------------------------------------------------- SceneModel::~SceneModel() { f_scene_models.removeAll(this); } //----------------------------------------------------------------------------- QModelIndex SceneModel::findScene(const QTextCursor& cursor) const { // Find block stats for text cursor BlockStats* stats = 0; QTextBlock block = cursor.block(); while (block.isValid()) { stats = static_cast(block.userData()); if (stats && stats->isScene()) { break; } stats = 0; block = block.previous(); } if (!stats) { return QModelIndex(); } // Find block stats in scene list int pos = findSceneByStats(stats); return (pos != -1) ? index(pos) : QModelIndex(); } //----------------------------------------------------------------------------- void SceneModel::moveScenes(QList scenes, int row) { // Make sure scenes are ordered correctly if (scenes.isEmpty()) { return; } qSort(scenes); // Copy text fragments of scenes QTextCursor cursor = m_document->textCursor(); QList fragments; foreach (int scene, scenes) { selectScene(m_scenes.at(scene), cursor); fragments += cursor.selection(); } // Find location in document to insert text fragments int position = 0; if ((row < m_scenes.size()) && (row > -1)) { const Scene& scene = m_scenes.at(row); QTextBlock block = m_document->document()->findBlockByNumber(scene.block_number); if (block.userData() == scene.stats) { position = block.position(); } else { block = m_document->document()->begin(); while (block.isValid()) { position = block.position(); if (block.userData() == scene.stats) { break; } block = block.next(); } } } else { cursor.movePosition(QTextCursor::End); if (cursor.block().text().length()) { cursor.insertBlock(); } position = cursor.position(); } // Start edit block by moving to start of dragged scenes cursor = m_document->textCursor(); cursor.beginEditBlock(); cursor.setPosition(position); // Make sure inserted text begins with divider if (!fragments.first().toPlainText().startsWith(f_scene_divider)) { cursor.insertText(f_scene_divider + "\n"); } // Insert text fragments; will indirectly create scenes foreach (const QTextDocumentFragment& fragment, fragments) { cursor.insertFragment(fragment); if (!cursor.atBlockStart()) { cursor.insertBlock(); } } // Make sure inserted text ends with divider if (!cursor.atEnd() && !cursor.block().text().startsWith(f_scene_divider)) { cursor.insertText(f_scene_divider + "\n"); } // Delete original fragments; will indirectly delete scenes int delta = 0; for (int i = scenes.count() - 1; i >= 0; --i) { selectScene(m_scenes.at(scenes.at(i)), cursor); delta += cursor.position(); cursor.removeSelectedText(); delta -= cursor.position(); } // End edit block by moving to start of dropped scenes if (row > scenes.first()) { position -= delta; } cursor.setPosition(position); cursor.endEditBlock(); m_document->setTextCursor(cursor); } //----------------------------------------------------------------------------- void SceneModel::removeScene(BlockStats* stats) { // Find scene containing stats int pos = findSceneByStats(stats); if (pos == -1) { return; } // Remove scene beginRemoveRows(QModelIndex(), pos, pos); m_scenes.removeAt(pos); endRemoveRows(); // Make sure to update values invalidateScenes(); } //----------------------------------------------------------------------------- void SceneModel::removeAllScenes() { if (m_scenes.isEmpty()) { return; } beginRemoveRows(QModelIndex(), 0, m_scenes.count() - 1); m_scenes.clear(); endRemoveRows(); } //----------------------------------------------------------------------------- void SceneModel::updateScene(BlockStats* stats, const QTextBlock& block) { // Flag scenes out-of-date if (m_updates < 1) { m_updates = -1; return; } QString text = block.text(); bool was_scene = stats->isScene(); bool is_scene = text.startsWith(f_scene_divider); stats->setScene(is_scene || (block.blockNumber() == 0)); if (stats->isScene()) { // Add or update scene divider block text = is_scene ? text.mid(f_scene_divider.length()).trimmed() : text; if (was_scene) { updateScene(stats, text); } else { addScene(stats, block, text); } } else if (was_scene) { removeScene(stats); } else { updateScene(block); } } //----------------------------------------------------------------------------- void SceneModel::setUpdatesBlocked(bool blocked) { if (!blocked) { resetScenes(); } m_updates = !blocked; } //----------------------------------------------------------------------------- QVariant SceneModel::data(const QModelIndex& index, int role) const { QVariant result; if (index.row() < m_scenes.count()) { Scene scene = m_scenes.at(index.row()); // Make sure the scene data is up-to-date if (scene.outdated) { scene.outdated = false; scene.block_number = -1; QStringList lines; QTextBlock block = m_document->document()->begin(); while (block.isValid()) { BlockStats* stats = static_cast(block.userData()); if (stats == scene.stats) { scene.block_number = block.blockNumber(); lines += scene.text; } else if (!lines.isEmpty()) { if (stats && stats->isScene()) { break; } else { QString line = block.text().trimmed(); if (!line.isEmpty()) { lines += line; } if (lines.count() == 3) { break; } } } block = block.next(); } scene.display = lines.join(QLatin1String("\n")).trimmed(); } if (role == Qt::DisplayRole) { result = scene.display; } else if (role == Qt::UserRole) { result = scene.block_number; } } return result; } //----------------------------------------------------------------------------- bool SceneModel::dropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent) { QString format = mimeTypes().first(); if (!data || !data->hasFormat(format) || (action != Qt::MoveAction) || (column > 0) || parent.isValid()) { return false; } // Decode list of scenes QByteArray bytes = data->data(format); QDataStream stream(&bytes, QIODevice::ReadOnly); QList scenes; stream >> scenes; moveScenes(scenes, row); return true; } //----------------------------------------------------------------------------- Qt::ItemFlags SceneModel::flags(const QModelIndex& index) const { return QAbstractListModel::flags(index) | (!index.isValid() ? Qt::ItemIsDropEnabled : Qt::ItemIsDragEnabled); } //----------------------------------------------------------------------------- QMimeData* SceneModel::mimeData(const QModelIndexList& indexes) const { // Encode list of scenes QByteArray bytes; QDataStream stream(&bytes, QIODevice::WriteOnly); QList scenes; foreach (const QModelIndex& index, indexes) { scenes += index.row(); } stream << scenes; // Return mime data object containing list QMimeData* data = new QMimeData(); data->setData(mimeTypes().first(), bytes); return data; } //----------------------------------------------------------------------------- QStringList SceneModel::mimeTypes() const { return QStringList() << QLatin1String("application/x-fwscenelist"); } //----------------------------------------------------------------------------- int SceneModel::rowCount(const QModelIndex& parent) const { return !parent.isValid() ? m_scenes.count() : 0; } //----------------------------------------------------------------------------- Qt::DropActions SceneModel::supportedDropActions() const { return Qt::MoveAction; } //----------------------------------------------------------------------------- void SceneModel::setSceneDivider(const QString& divider) { if (f_scene_divider == divider) { return; } f_scene_divider = divider; f_scene_divider.replace(QLatin1String("\\t"), QLatin1String("\t")); foreach (SceneModel* model, f_scene_models) { model->resetScenes(); } } //----------------------------------------------------------------------------- void SceneModel::selectScene() { // Make sure scenes are up-to-date if (m_updates == -1) { resetScenes(); } QTextCursor cursor = m_document->textCursor(); cursor.clearSelection(); // Select to first block of scene cursor.movePosition(QTextCursor::StartOfBlock); QTextBlock block = cursor.block(); while (block.isValid()) { if (block.userData() && static_cast(block.userData())->isScene()) { break; } block = block.previous(); cursor.movePosition(QTextCursor::StartOfBlock); cursor.movePosition(QTextCursor::PreviousBlock); } cursor.movePosition(QTextCursor::EndOfBlock, QTextCursor::KeepAnchor); // Select to last block of scene cursor.movePosition(QTextCursor::NextBlock, QTextCursor::KeepAnchor); block = cursor.block(); while (block.isValid()) { if (block.userData() && static_cast(block.userData())->isScene()) { break; } block = block.next(); cursor.movePosition(QTextCursor::EndOfBlock, QTextCursor::KeepAnchor); cursor.movePosition(QTextCursor::NextBlock, QTextCursor::KeepAnchor); } m_document->setTextCursor(cursor); } //----------------------------------------------------------------------------- void SceneModel::invalidateScenes() { int count = m_scenes.count(); if (count == 0) { return; } for (int i = 0; i < count; ++i) { m_scenes[i].outdated = true; } emit dataChanged(index(0), index(count - 1)); } //----------------------------------------------------------------------------- void SceneModel::addScene(BlockStats* stats, const QTextBlock& block, const QString& text) { // Find previous scene in document BlockStats *before = 0, *check = 0; QTextBlock previous = block.previous(); while (previous.isValid()) { check = static_cast(previous.userData()); if (check && check->isScene()) { before = check; break; } previous = previous.previous(); } // Find previous scene in list int pos = findSceneByStats(before) + 1; // Insert scene beginInsertRows(QModelIndex(), pos, pos); Scene scene = { stats, text, QString(), block.blockNumber(), true }; m_scenes.insert(pos, scene); endInsertRows(); // Make sure to update values invalidateScenes(); } //----------------------------------------------------------------------------- int SceneModel::findSceneByStats(BlockStats* stats) const { int pos = -1; for (int i = m_scenes.count() - 1; i >= 0; --i) { if (m_scenes.at(i).stats == stats) { pos = i; break; } } return pos; } //----------------------------------------------------------------------------- void SceneModel::resetScenes() { // Remove all current scenes removeAllScenes(); // Check all blocks for new scenes QList scenes; QTextBlock block = m_document->document()->begin(); while (block.isValid()) { BlockStats* stats = static_cast(block.userData()); if (stats) { // Check if block is a scene QString text = block.text(); bool is_scene = text.startsWith(f_scene_divider); stats->setScene(is_scene || (block.blockNumber() == 0)); // Add scene if (stats->isScene()) { text = is_scene ? text.mid(f_scene_divider.length()).trimmed() : text; Scene scene = { stats, text, QString(), block.blockNumber(), true }; scenes += scene; } } block = block.next(); } // Add all found scenes if (!scenes.isEmpty()) { beginInsertRows(QModelIndex(), 0, scenes.count() - 1); m_scenes = scenes; endInsertRows(); } // Remove out-of-date flag if (m_updates == -1) { m_updates = 0; } } //----------------------------------------------------------------------------- void SceneModel::selectScene(const Scene& scene, QTextCursor& cursor) const { // Select first block of scene QTextBlock block = cursor.document()->findBlockByNumber(scene.block_number); int position = block.position(); if (block.userData() != scene.stats) { block = cursor.document()->begin(); while (block.isValid()) { position = block.position(); if (block.userData() == scene.stats) { break; } block = block.next(); } } cursor.setPosition(position); cursor.movePosition(QTextCursor::EndOfBlock, QTextCursor::KeepAnchor); // Select to last block of scene cursor.movePosition(QTextCursor::NextBlock, QTextCursor::KeepAnchor); block = cursor.block(); while (block.isValid()) { if ((block.userData() && static_cast(block.userData())->isScene()) || block.text().startsWith(f_scene_divider)) { break; } block = block.next(); cursor.movePosition(QTextCursor::EndOfBlock, QTextCursor::KeepAnchor); cursor.movePosition(QTextCursor::NextBlock, QTextCursor::KeepAnchor); } } //----------------------------------------------------------------------------- void SceneModel::updateScene(BlockStats* stats, const QString& text) { // Find scene containing stats int pos = findSceneByStats(stats); if (pos == -1) { return; } // Modify scene m_scenes[pos].text = text; m_scenes[pos].outdated = true; QModelIndex i = index(pos); emit dataChanged(i, i); } //----------------------------------------------------------------------------- void SceneModel::updateScene(const QTextBlock& block) { // Find first scene above block BlockStats* stats = 0; int count = 0; QTextBlock check = block; while (check.isValid()) { stats = static_cast(check.userData()); if (stats && stats->isScene()) { break; } ++count; if (count == 3) { return; } check = check.previous(); } if (!stats || !stats->isScene()) { return; } // Find scene containing stats int pos = findSceneByStats(stats); if (pos == -1) { return; } // Modify scene m_scenes[pos].outdated = true; QModelIndex i = index(pos); emit dataChanged(i, i); } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/scene_model.h000066400000000000000000000047351231434177300173300ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2012 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef SCENE_MODEL_H #define SCENE_MODEL_H class BlockStats; #include #include class QTextBlock; class QTextCursor; class QTextEdit; class SceneModel : public QAbstractListModel { Q_OBJECT struct Scene { BlockStats* stats; QString text; QString display; int block_number; bool outdated; }; public: SceneModel(QTextEdit* document, QObject* parent = 0); ~SceneModel(); QModelIndex findScene(const QTextCursor& cursor) const; void moveScenes(QList scenes, int row); void removeScene(BlockStats* stats); void removeAllScenes(); void updateScene(BlockStats* stats, const QTextBlock& block); void setUpdatesBlocked(bool blocked); QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const; bool dropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent); Qt::ItemFlags flags(const QModelIndex& index) const; QMimeData* mimeData(const QModelIndexList& indexes) const; QStringList mimeTypes() const; int rowCount(const QModelIndex& parent) const; Qt::DropActions supportedDropActions() const; static void setSceneDivider(const QString& divider); public slots: void selectScene(); private slots: void invalidateScenes(); private: void addScene(BlockStats* stats, const QTextBlock& block, const QString& text); int findSceneByStats(BlockStats* stats) const; void resetScenes(); void selectScene(const Scene& scene, QTextCursor& cursor) const; void updateScene(BlockStats* stats, const QString& text); void updateScene(const QTextBlock& block); private: QList m_scenes; QTextEdit* m_document; int m_updates; }; #endif focuswriter-1.4.5/src/sdl/000077500000000000000000000000001231434177300154535ustar00rootroot00000000000000focuswriter-1.4.5/src/sdl/sound.cpp000066400000000000000000000156251231434177300173200ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010, 2011, 2012 Graeme Gott * * SDL and SDL_mixer * Copyright (C) 1997-2009 Sam Lantinga * * 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 . * ***********************************************************************/ #include "../sound.h" #include #include #include #include //----------------------------------------------------------------------------- #ifndef SDLCALL # if defined(__WIN32__) && !defined(__GNUC__) # define SDLCALL __cdecl # elif defined(__OS2__) # if defined (__GNUC__) && __GNUC__ < 4 /* Added support for GCC-EMX f_chunks; int f_total_sounds = 0; QHash f_ids; QHash f_sound_objects; void loadSDL() { // Initialize SDL #ifndef Q_OS_WIN QLibrary mixer_lib("SDL2_mixer"); if (!mixer_lib.load()) { mixer_lib.setFileName("SDL_mixer"); } if (!mixer_lib.load()) { mixer_lib.setFileNameAndVersion("SDL2_mixer-2.0", "0"); } if (!mixer_lib.load()) { mixer_lib.setFileNameAndVersion("SDL_mixer-1.2", "0"); } #else QLibrary mixer_lib("SDL"); #endif sdl_Init = (func_SDL_Init) mixer_lib.resolve("SDL_Init"); sdl_Quit = (func_SDL_Quit) mixer_lib.resolve("SDL_Quit"); sdl_GetError = (func_SDL_GetError) mixer_lib.resolve("SDL_GetError"); sdl_RWFromFile = (func_SDL_RWFromFile) mixer_lib.resolve("SDL_RWFromFile"); if ((sdl_Init == 0) || (sdl_Quit == 0) || (sdl_GetError == 0) || (sdl_RWFromFile == 0)) { qWarning("Unable to load SDL"); return; } if (sdl_Init(SDL_INIT_AUDIO) != 0) { qWarning("Unable to initialize SDL: %s", sdl_GetError()); return; } // Initialize SDL_mixer #ifdef Q_OS_WIN mixer_lib.setFileName("SDL_mixer"); #endif mix_OpenAudio = (func_Mix_OpenAudio) mixer_lib.resolve("Mix_OpenAudio"); mix_CloseAudio = (func_Mix_CloseAudio) mixer_lib.resolve("Mix_CloseAudio"); mix_LoadWAV_RW = (func_Mix_LoadWAV_RW) mixer_lib.resolve("Mix_LoadWAV_RW"); mix_FreeChunk = (func_Mix_FreeChunk) mixer_lib.resolve("Mix_FreeChunk"); mix_PlayChannelTimed = (func_Mix_PlayChannelTimed) mixer_lib.resolve("Mix_PlayChannelTimed"); if ((mix_OpenAudio == 0) || (mix_CloseAudio == 0) || (mix_LoadWAV_RW == 0) || (mix_FreeChunk == 0) || (mix_PlayChannelTimed == 0)) { qWarning("Unable to load SDL_mixer"); sdl_Quit(); return; } if (mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 1024) != 0) { qWarning("Unable to initialize SDL_mixer: %s", mix_GetError()); sdl_Quit(); return; } f_sdl_loaded = true; } void unloadSDL() { // Free audio chunks int count = f_chunks.count(); for (int i = 0; i < count; ++i) { mix_FreeChunk(f_chunks.at(i)); } f_chunks.clear(); // Disable SDL mix_CloseAudio(); sdl_Quit(); f_sdl_loaded = false; } } //----------------------------------------------------------------------------- Sound::Sound(int name, const QString& filename, QObject* parent) : QObject(parent), m_id(-1), m_name(name) { if (!f_sdl_loaded) { loadSDL(); } f_total_sounds++; if (f_ids.contains(filename)) { m_id = f_ids.value(filename); } else if (f_sdl_loaded) { MixChunk* chunk = mix_LoadWAV(QFile::encodeName(f_path + "/" + filename).constData()); if (chunk == 0) { qWarning("Unable to load WAV file: %s", mix_GetError()); return; } m_id = f_chunks.count(); f_chunks.append(chunk); f_ids[filename] = m_id; } f_sound_objects[m_name] = this; } //----------------------------------------------------------------------------- Sound::~Sound() { f_sound_objects[m_name] = 0; f_total_sounds--; if (f_total_sounds == 0) { if (f_sdl_loaded) { unloadSDL(); } f_ids.clear(); } } //----------------------------------------------------------------------------- void Sound::play(int name) { if (f_enabled) { Sound* sound = f_sound_objects.value(name); if (sound && sound->isValid() && (mix_PlayChannel(-1, f_chunks.at(sound->m_id), 0) == -1)) { qWarning("Unable to play WAV file: %s", mix_GetError()); } } } //----------------------------------------------------------------------------- void Sound::setEnabled(bool enabled) { f_enabled = enabled; } //----------------------------------------------------------------------------- void Sound::setPath(const QString& path) { f_path = path; } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/session.cpp000066400000000000000000000074501231434177300170660ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #include "session.h" #include #include #include #include //----------------------------------------------------------------------------- QString Session::m_path; //----------------------------------------------------------------------------- Session::Session(const QString& name) : m_name(name), m_default(name == tr("Default")) { QString path = pathFromName(m_name); if (QFile::exists(path)) { m_data = new QSettings(path, QSettings::IniFormat); } else { m_data = new QSettings; m_name = tr("Default"); m_default = true; } } //----------------------------------------------------------------------------- Session::~Session() { delete m_data; m_data = 0; } //----------------------------------------------------------------------------- int Session::active() const { return m_data->value("Save/Active").toInt(); } //----------------------------------------------------------------------------- QSettings* Session::data() const { return m_data; } //----------------------------------------------------------------------------- QStringList Session::files() const { return m_data->value("Save/Current").toStringList(); } //----------------------------------------------------------------------------- QString Session::name() const { return m_name; } //----------------------------------------------------------------------------- QStringList Session::positions() const { return m_data->value("Save/Positions").toStringList(); } //----------------------------------------------------------------------------- QString Session::theme() const { return m_data->value("ThemeManager/Theme").toString(); } //----------------------------------------------------------------------------- void Session::setName(const QString& name) { if (m_default) { return; } QString old_file = m_data->fileName(); delete m_data; m_data = 0; m_name = name; QString file = pathFromName(m_name); QFile::remove(file); QFile::rename(old_file, file); m_data = new QSettings(file, QSettings::IniFormat); } //----------------------------------------------------------------------------- void Session::setTheme(const QString& theme) { m_data->setValue("ThemeManager/Theme", theme); } //----------------------------------------------------------------------------- QString Session::path() { return m_path; } //----------------------------------------------------------------------------- QString Session::pathFromName(const QString& name) { return m_path + "/" + QUrl::toPercentEncoding(name, " ") + ".session"; } //----------------------------------------------------------------------------- QString Session::pathToName(const QString& path) { return QUrl::fromPercentEncoding(QFileInfo(path).baseName().toUtf8()); } //----------------------------------------------------------------------------- void Session::setPath(const QString& path) { m_path = path; } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/session.h000066400000000000000000000030341231434177300165250ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef SESSION_H #define SESSION_H #include #include class QSettings; class Session { Q_DECLARE_TR_FUNCTIONS(Session) public: Session(const QString& name); ~Session(); int active() const; QSettings* data() const; QStringList files() const; QString name() const; QStringList positions() const; QString theme() const; void setName(const QString& name); void setTheme(const QString& theme); static QString path(); static QString pathFromName(const QString& name); static QString pathToName(const QString& path); static void setPath(const QString& path); private: QSettings* m_data; QString m_name; bool m_default; static QString m_path; }; #endif focuswriter-1.4.5/src/session_manager.cpp000066400000000000000000000272771231434177300205710ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010, 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #include "session_manager.h" #include "session.h" #include "theme.h" #include "window.h" #include #include #include #include #include #include #include #include #include #include #include #include //----------------------------------------------------------------------------- SessionManager::SessionManager(Window* parent) : QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint), m_session(0), m_window(parent) { setWindowTitle(tr("Manage Sessions")); // Create session lists m_sessions_menu = new QMenu(this); m_sessions_menu->setTitle(tr("S&essions")); m_sessions_actions = new QActionGroup(this); connect(m_sessions_actions, SIGNAL(triggered(QAction*)), this, SLOT(switchSession(QAction*))); m_sessions_list = new QListWidget(this); m_sessions_list->setIconSize(QSize(16,16)); m_sessions_list->setMovement(QListWidget::Static); m_sessions_list->setResizeMode(QListWidget::Adjust); m_sessions_list->setSelectionMode(QListWidget::SingleSelection); connect(m_sessions_list, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), this, SLOT(selectedSessionChanged(QListWidgetItem*))); connect(m_sessions_list, SIGNAL(itemActivated(QListWidgetItem*)), this, SLOT(switchSession())); // Create buttons QPushButton* new_button = new QPushButton(tr("New"), this); connect(new_button, SIGNAL(clicked()), this, SLOT(newSession())); m_rename_button = new QPushButton(tr("Rename"), this); connect(m_rename_button, SIGNAL(clicked()), this, SLOT(renameSession())); QPushButton* clone_button = new QPushButton(tr("Clone"), this); connect(clone_button, SIGNAL(clicked()), this, SLOT(cloneSession())); m_delete_button = new QPushButton(tr("Delete"), this); connect(m_delete_button, SIGNAL(clicked()), this, SLOT(deleteSession())); m_switch_button = new QPushButton(tr("Switch To"), this); connect(m_switch_button, SIGNAL(clicked()), this, SLOT(switchSession())); QDialogButtonBox* buttons = new QDialogButtonBox(QDialogButtonBox::Close, Qt::Horizontal, this); connect(buttons, SIGNAL(rejected()), this, SLOT(reject())); // Lay out window QGridLayout* layout = new QGridLayout(this); layout->setColumnStretch(0, 1); layout->setRowStretch(5, 1); layout->addWidget(m_sessions_list, 0, 0, 6, 1); layout->addWidget(new_button, 0, 1); layout->addWidget(m_rename_button, 1, 1); layout->addWidget(clone_button, 2, 1); layout->addWidget(m_delete_button, 3, 1); layout->addWidget(m_switch_button, 4, 1); layout->addWidget(buttons, 7, 1); // Restore size resize(QSettings().value("SessionManager/Size", sizeHint()).toSize()); } //----------------------------------------------------------------------------- SessionManager::~SessionManager() { delete m_session; m_session = 0; } //----------------------------------------------------------------------------- Session* SessionManager::current() const { return m_session; } //----------------------------------------------------------------------------- QMenu* SessionManager::menu() const { return m_sessions_menu; } //----------------------------------------------------------------------------- bool SessionManager::closeCurrent() { if (m_session) { if (!m_window->closeDocuments(m_session->data())) { return false; } delete m_session; m_session = 0; } return true; } //----------------------------------------------------------------------------- void SessionManager::setCurrent(const QString& session, const QStringList& files, const QStringList& datafiles) { // Close open documents if (!closeCurrent()) { updateList(m_session->name()); return; } // Open session m_session = new Session(!session.isEmpty() ? session : Session::tr("Default")); emit themeChanged(m_session->theme()); if (files.isEmpty()) { m_window->addDocuments(m_session->files(), m_session->files(), m_session->positions(), m_session->active(), true); } else { m_window->addDocuments(files, datafiles, m_session->positions(), m_session->active(), true); } // Save session name if (!session.isEmpty()) { QSettings().setValue("SessionManager/Session", m_session->name()); } else { QSettings().remove("SessionManager/Session"); } updateList(session); } //----------------------------------------------------------------------------- void SessionManager::newSession() { // Fetch session name QString name = getSessionName(tr("New Session")); if (name.isEmpty()) { return; } QString theme = m_session->theme(); // Close open documents bool visible = isVisible(); hide(); if (!closeCurrent()) { if (visible) { show(); } return; } accept(); // Create session and make it active { QSettings session(Session::pathFromName(name), QSettings::IniFormat); session.setValue("ThemeManager/Theme", theme); session.setValue("ThemeManager/Size", QSettings().value("ThemeManager/Size")); } setCurrent(name); } //----------------------------------------------------------------------------- void SessionManager::hideEvent(QHideEvent* event) { QSettings().setValue("SessionManager/Size", size()); QDialog::hideEvent(event); } //----------------------------------------------------------------------------- void SessionManager::cloneSession() { // Find path QListWidgetItem* item = selectedSession(false); if (!item) { return; } QString filename = item != m_sessions_list->item(0) ? Session::pathFromName(item->text()) : ""; // Fetch session name QString name = getSessionName(tr("Clone Session")); if (name.isEmpty()) { return; } // Close open documents hide(); if (!closeCurrent()) { show(); return; } accept(); // Create session and make it active QSettings settings; if (!filename.isEmpty()) { QFile::copy(filename, Session::pathFromName(name)); } else { QSettings session(Session::pathFromName(name), QSettings::IniFormat); session.setValue("ThemeManager/Theme", settings.value("ThemeManager/Theme")); session.setValue("ThemeManager/Size", settings.value("ThemeManager/Size")); session.setValue("Save/Current", settings.value("Save/Current")); if (settings.value("Save/RememberPositions", true).toBool()) { session.setValue("Save/Positions", settings.value("Save/Positions")); } session.setValue("Save/Active", settings.value("Save/Active")); } setCurrent(name); } //----------------------------------------------------------------------------- void SessionManager::renameSession() { QListWidgetItem* item = selectedSession(true); if (!item) { return; } // Fetch session name QString name = getSessionName(tr("Rename Session"), item->text()); if (name.isEmpty()) { return; } // Rename session QString current = item->text(); if (current == m_session->name()) { m_session->setName(name); QSettings().setValue("SessionManager/Session", m_session->name()); } else { QFile::rename(Session::pathFromName(current), Session::pathFromName(name)); } updateList(name); } //----------------------------------------------------------------------------- void SessionManager::deleteSession() { QListWidgetItem* item = selectedSession(true); if (!item) { return; } // Confirm removal if (QMessageBox::question(this, tr("Question"), tr("Delete selected session?"), QMessageBox::Yes | QMessageBox::No, QMessageBox::No) == QMessageBox::No) { return; } // Delete session QString session = item->text(); if (session == m_session->name()) { if (!closeCurrent()) { return; } setCurrent(""); } QFile::remove(Session::pathFromName(session)); updateList(m_session->name()); } //----------------------------------------------------------------------------- void SessionManager::switchSession() { QListWidgetItem* item = selectedSession(false); if (item) { accept(); setCurrent(item->data(Qt::UserRole).toString()); } } //----------------------------------------------------------------------------- void SessionManager::switchSession(QAction* session) { setCurrent(session->data().toString()); } //----------------------------------------------------------------------------- void SessionManager::selectedSessionChanged(QListWidgetItem* session) { bool not_default = (session && session != m_sessions_list->item(0)); if (not_default && m_session->name() == session->text()) { m_switch_button->setEnabled(false); m_rename_button->setEnabled(true); m_delete_button->setEnabled(true); } else { m_switch_button->setEnabled(session && m_session->name() != session->text()); m_rename_button->setEnabled(not_default); m_delete_button->setEnabled(not_default); } } //----------------------------------------------------------------------------- QListWidgetItem* SessionManager::selectedSession(bool prevent_default) { QListWidgetItem* item = m_sessions_list->selectedItems().value(0, 0); if (!item || (prevent_default && item == m_sessions_list->item(0))) { return 0; } else { return item; } } //----------------------------------------------------------------------------- QString SessionManager::getSessionName(const QString& title, const QString& session) { QWidget* window = isVisible() ? this : parentWidget()->window(); QString name = session; forever { bool ok; name = QInputDialog::getText(window, title, tr("Session name:"), QLineEdit::Normal, name, &ok); if (!ok) { return QString(); } if (name != Session::tr("Default") && !QFile::exists(Session::pathFromName(name))) { break; } else { QMessageBox::information(window, tr("Sorry"), tr("The requested session name is already in use.")); } } return name; } //----------------------------------------------------------------------------- void SessionManager::updateList(const QString& selected) { m_sessions_menu->clear(); m_sessions_list->clear(); QStringList files = QDir(Session::path(), "*.session").entryList(QDir::Files, QDir::Name | QDir::IgnoreCase); files.prepend(Session::tr("Default")); for (int i = 0; i < files.count(); ++i) { QString name = Session::pathToName(files.at(i)); if ((name == Session::tr("Default")) && (i > 0)) { continue; } QAction* action = m_sessions_menu->addAction(name); action->setData(name); action->setCheckable(true); m_sessions_actions->addAction(action); QListWidgetItem* item = new QListWidgetItem(QIcon::fromTheme("folder"), name, m_sessions_list); item->setData(Qt::UserRole, name); if (name == m_session->name()) { action->setChecked(true); item->setIcon(QIcon::fromTheme("folder-open")); } if (name == selected) { m_sessions_list->setCurrentItem(item); m_sessions_list->scrollToItem(item); } } m_sessions_menu->addSeparator(); m_sessions_menu->addAction(QIcon::fromTheme("window-new"), tr("&New..."), this, SLOT(newSession()), tr("Ctrl+Shift+N")); m_sessions_menu->addAction(QIcon::fromTheme("view-choose"), tr("&Manage..."), this, SLOT(exec()), tr("Ctrl+Shift+M")); } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/session_manager.h000066400000000000000000000041501231434177300202170ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010, 2011 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef SESSION_MANAGER_H #define SESSION_MANAGER_H class Session; class Theme; class Window; #include class QActionGroup; class QListWidget; class QListWidgetItem; class QMenu; class SessionManager : public QDialog { Q_OBJECT public: SessionManager(Window* parent); ~SessionManager(); Session* current() const; QMenu* menu() const; bool closeCurrent(); void setCurrent(const QString& session, const QStringList& files = QStringList(), const QStringList& datafiles = QStringList()); public slots: void newSession(); signals: void themeChanged(const Theme& theme); protected: virtual void hideEvent(QHideEvent* event); private slots: void renameSession(); void cloneSession(); void deleteSession(); void switchSession(); void switchSession(QAction* session); void selectedSessionChanged(QListWidgetItem* session); private: QString getSessionName(const QString& title, const QString& session = QString()); QListWidgetItem* selectedSession(bool prevent_default); void updateList(const QString& selected); private: Session* m_session; Window* m_window; QMenu* m_sessions_menu; QActionGroup* m_sessions_actions; QListWidget* m_sessions_list; QPushButton* m_rename_button; QPushButton* m_delete_button; QPushButton* m_switch_button; }; #endif focuswriter-1.4.5/src/settings_file.h000066400000000000000000000023411231434177300177010ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef SETTINGS_FILE_H #define SETTINGS_FILE_H class SettingsFile { public: SettingsFile() : m_changed(false) { } virtual ~SettingsFile() { } protected: bool isChanged() const { return m_changed; } template void setValue(T& dest, const T& source) { if (dest != source) { dest = source; m_changed = true; } } private: bool m_changed; }; #endif focuswriter-1.4.5/src/shortcut_edit.cpp000066400000000000000000000107161231434177300202620ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2012 Graeme Gott * * 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 . * ***********************************************************************/ #include "shortcut_edit.h" #include #include #include #include #include //----------------------------------------------------------------------------- ShortcutEdit::ShortcutEdit(QWidget* parent) : QWidget(parent) { m_edit = new QLineEdit(this); m_edit->installEventFilter(this); QPushButton* clear_button = new QPushButton(tr("Clear"), this); connect(clear_button, SIGNAL(clicked()), this, SLOT(clear())); m_reset_button = new QPushButton(tr("Reset to Default"), this); connect(m_reset_button, SIGNAL(clicked()), this, SLOT(reset())); m_reset_button->hide(); QHBoxLayout* layout = new QHBoxLayout(this); layout->setMargin(0); layout->addWidget(m_edit); layout->addWidget(clear_button); layout->addWidget(m_reset_button); setFocusPolicy(Qt::WheelFocus); setFocusProxy(m_edit); } //----------------------------------------------------------------------------- QKeySequence ShortcutEdit::shortcut() const { return m_shortcut; } //----------------------------------------------------------------------------- bool ShortcutEdit::eventFilter(QObject* watched, QEvent* event) { if ((watched == m_edit) && (event->type() == QEvent::KeyPress)) { QKeyEvent* key_event = static_cast(event); Qt::KeyboardModifiers modifiers = key_event->modifiers() & (Qt::ShiftModifier | Qt::ControlModifier | Qt::AltModifier | Qt::MetaModifier); int key = key_event->key(); switch (key) { // Don't do anything if they only press a modifier case Qt::Key_Shift: case Qt::Key_Control: case Qt::Key_Meta: case Qt::Key_Alt: return true; // Clear on backspace unless modifier is used case Qt::Key_Backspace: case Qt::Key_Delete: if (modifiers == Qt::NoModifier) { clear(); return true; } break; // Allow tab to change focus case Qt::Key_Tab: case Qt::Key_Backtab: return false; default: break; } // Add modifiers; only allow shift if it is not required for key of shortcut if (modifiers & Qt::ShiftModifier) { QChar c = !key_event->text().isEmpty() ? key_event->text().at(0) : QChar(); if (!c.isPrint() || c.isLetterOrNumber() || c.isSpace()) { key |= Qt::SHIFT; } } if (modifiers & Qt::ControlModifier) { key |= Qt::CTRL; } if (modifiers & Qt::MetaModifier) { key |= Qt::META; } if (modifiers & Qt::AltModifier) { key |= Qt::ALT; } // Change shortcut m_shortcut = QKeySequence(key); setText(); emit changed(); return true; } else { return QWidget::eventFilter(watched, event); } } //----------------------------------------------------------------------------- void ShortcutEdit::setShortcut(const QKeySequence& shortcut) { setShortcut(shortcut, QKeySequence()); m_reset_button->setHidden(true); } //----------------------------------------------------------------------------- void ShortcutEdit::setShortcut(const QKeySequence& shortcut, const QKeySequence& default_shortcut) { m_shortcut = shortcut; m_default_shortcut = default_shortcut; m_reset_button->setHidden(false); setText(); } //----------------------------------------------------------------------------- void ShortcutEdit::clear() { m_shortcut = QKeySequence(); setText(); emit changed(); } //----------------------------------------------------------------------------- void ShortcutEdit::reset() { m_shortcut = m_default_shortcut; setText(); emit changed(); } //----------------------------------------------------------------------------- void ShortcutEdit::setText() { m_edit->setText(m_shortcut.toString(QKeySequence::NativeText)); } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/shortcut_edit.h000066400000000000000000000027451231434177300177320ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2012 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef SHORTCUT_EDIT_H #define SHORTCUT_EDIT_H #include class QLineEdit; class QPushButton; class ShortcutEdit : public QWidget { Q_OBJECT public: ShortcutEdit(QWidget* parent = 0); QKeySequence shortcut() const; bool eventFilter(QObject* watched, QEvent* event); void setShortcut(const QKeySequence& shortcut); void setShortcut(const QKeySequence& shortcut, const QKeySequence& default_shortcut); signals: void changed(); public slots: void clear(); void reset(); private: void setText(); private: QKeySequence m_shortcut; QKeySequence m_default_shortcut; QLineEdit* m_edit; QPushButton* m_reset_button; }; #endif focuswriter-1.4.5/src/smart_quotes.cpp000066400000000000000000000256751231434177300201420ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010, 2011 Graeme Gott * * 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 . * ***********************************************************************/ #include "smart_quotes.h" #include "preferences.h" #include #include #include #include #include //----------------------------------------------------------------------------- bool SmartQuotes::m_enabled = true; QString SmartQuotes::m_quotes[4] = { QChar(0x201c), QChar(0x201d), QChar(0x2018), QChar(0x2019) }; const SmartQuotes::Quotes SmartQuotes::m_quotes_list[] = { { QChar(0x201c), QChar(0x201d) }, { QChar(0x2018), QChar(0x2019) }, { QChar(0x201e), QChar(0x201c) }, { QChar(0x201a), QChar(0x2018) }, { QChar(0x201e), QChar(0x201d) }, { QChar(0x201a), QChar(0x2019) }, { QChar(0x201c), QChar(0x201e) }, { QChar(0x2018), QChar(0x201a) }, { QChar(0x201d), QChar(0x201d) }, { QChar(0x2019), QChar(0x2019) }, { QChar(0x201d), QChar(0x201c) }, { QChar(0x2019), QChar(0x2018) }, { QChar(0x00ab), QChar(0x00bb) }, { QChar(0x2039), QChar(0x203a) }, { QChar(0x00bb), QChar(0x00ab) }, { QChar(0x203a), QChar(0x2039) }, { QChar(0x00bb), QChar(0x00bb) }, { QChar(0x203a), QChar(0x203a) }, { QChar(0x300c), QChar(0x300d) }, { QChar(0x300e), QChar(0x300f) }, { QChar(0x0022), QChar(0x0022) }, { QChar(0x0027), QChar(0x0027) }, { QLatin1String("``"), QLatin1String("''") }, { QLatin1String("`"), QLatin1String("'") }, { QLatin1String(",,"), QLatin1String("''") }, { QLatin1String(","), QLatin1String("'") }, { QLatin1String("``"), QLatin1String(",,") }, { QLatin1String("`"), QLatin1String(",") }, { QLatin1String("<<"), QLatin1String(">>") }, { QLatin1String("<"), QLatin1String(">") }, { QLatin1String(">>"), QLatin1String("<<") }, { QLatin1String(">"), QLatin1String("<") }, { QLatin1String(">>"), QLatin1String(">>") }, { QLatin1String(">"), QLatin1String(">") } }; const size_t SmartQuotes::m_quotes_list_count = sizeof(m_quotes_list) / sizeof(Quotes); //----------------------------------------------------------------------------- bool SmartQuotes::insert(QTextEdit* text, QKeyEvent* key) { if (key->modifiers() & Qt::ControlModifier) { return false; } int quote = 2; if (key->key() == Qt::Key_QuoteDbl) { quote = 0; } else if (key->key() != Qt::Key_Apostrophe) { return false; } QTextCursor cursor = text->textCursor(); QChar c = text->document()->characterAt(cursor.selectionStart() - 1); if (!c.isSpace() && !c.isNull() && (c.category() != QChar::Punctuation_Open)) { quote++; } cursor.beginEditBlock(); cursor.insertText(key->text()); cursor.endEditBlock(); if (key->text().right(1) != m_quotes[quote]) { cursor.beginEditBlock(); QTextCharFormat format = cursor.charFormat(); cursor.deletePreviousChar(); cursor.insertText(m_quotes[quote]); cursor.movePosition(QTextCursor::PreviousCharacter, QTextCursor::KeepAnchor); cursor.mergeCharFormat(format); cursor.endEditBlock(); } return true; } //----------------------------------------------------------------------------- void SmartQuotes::replace(QTextEdit* text, int start, int end) { QProgressDialog progress(text); progress.setCancelButton(0); progress.setLabelText(tr("Replacing quotation marks...")); progress.setWindowTitle(tr("Please Wait")); progress.setModal(true); progress.setMinimum(start); progress.setMaximum(end); progress.setMinimumDuration(0); QTextCursor cursor(text->document()); cursor.beginEditBlock(); QChar previous = text->document()->characterAt(start - 1); int length = 0; for (int i = start; i < end; ++i) { QChar c = text->document()->characterAt(i); int quote = 2; if (c == '"') { quote = 0; } else if (c != '\'') { previous = c; continue; } if (!previous.isSpace() && !previous.isNull() && (previous.category() != QChar::Punctuation_Open)) { quote++; } previous = c; if (QString(c) != m_quotes[quote]) { cursor.setPosition(i); cursor.deleteChar(); cursor.insertText(m_quotes[quote]); length = m_quotes[quote].length() - 1; i += length; end += length; } progress.setValue(i); } cursor.endEditBlock(); } //----------------------------------------------------------------------------- void SmartQuotes::replace(QString& string) { QChar previous; int end = string.length(); int length = 0; for (int i = 0; i < end; ++i) { QChar c = string.at(i); int quote = 2; if (c == '"') { quote = 0; } else if (c != '\'') { previous = c; continue; } if (!previous.isSpace() && !previous.isNull() && (previous.category() != QChar::Punctuation_Open)) { quote++; } previous = c; if (QString(c) != m_quotes[quote]) { string.replace(i, 1, m_quotes[quote]); length = m_quotes[quote].length() - 1; i += length; end += length; } } } //----------------------------------------------------------------------------- QString SmartQuotes::revert(const QString& string) { QString result = string; result.replace(m_quotes[0], QLatin1String("\"")); result.replace(m_quotes[1], QLatin1String("\"")); result.replace(m_quotes[2], QLatin1String("'")); result.replace(m_quotes[3], QLatin1String("'")); return result; } //----------------------------------------------------------------------------- QStringList SmartQuotes::revert(const QStringList& strings) { QStringList result = strings; result.replaceInStrings(m_quotes[0], QLatin1String("\"")); result.replaceInStrings(m_quotes[1], QLatin1String("\"")); result.replaceInStrings(m_quotes[2], QLatin1String("'")); result.replaceInStrings(m_quotes[3], QLatin1String("'")); return result; } //----------------------------------------------------------------------------- QString SmartQuotes::quoteString(const QString& string, size_t index) { QString result = string; if (index < count()) { const Quotes& quotes = m_quotes_list[index]; result.prepend(quotes.left); result.append(quotes.right); } return result; } //----------------------------------------------------------------------------- namespace { struct DefaultQuotes { QLocale::Language language; QLocale::Country country; size_t double_index; size_t single_index; }; } void SmartQuotes::loadPreferences(Preferences& preferences) { m_enabled = preferences.smartQuotes(); size_t double_index = preferences.doubleQuotes(); size_t single_index = preferences.singleQuotes(); if (double_index < count() && single_index < count()) { setQuotes(double_index, single_index); return; } const DefaultQuotes default_quotes[] = { { QLocale::Afrikaans, QLocale::AnyCountry, 0, 1 }, { QLocale::Albanian, QLocale::AnyCountry, 2, 1 }, { QLocale::Basque, QLocale::AnyCountry, 12, 13 }, { QLocale::Bulgarian, QLocale::AnyCountry, 2, 21 }, { QLocale::Byelorussian, QLocale::AnyCountry, 12, 21 }, { QLocale::Catalan, QLocale::AnyCountry, 12, 0 }, { QLocale::Chinese, QLocale::AnyCountry, 18, 19 }, { QLocale::Croatian, QLocale::AnyCountry, 4, 5 }, { QLocale::Czech, QLocale::AnyCountry, 2, 3 }, { QLocale::Danish, QLocale::AnyCountry, 14, 15 }, { QLocale::Dutch, QLocale::AnyCountry, 0, 1 }, { QLocale::English, QLocale::AnyCountry, 0, 1 }, { QLocale::Esperanto, QLocale::AnyCountry, 0, 1 }, { QLocale::Estonian, QLocale::AnyCountry, 2, 21 }, { QLocale::Finnish, QLocale::AnyCountry, 8, 9 }, { QLocale::French, QLocale::Switzerland, 12, 13 }, { QLocale::French, QLocale::AnyCountry, 12, 0 }, { QLocale::Georgian, QLocale::AnyCountry, 2, 21 }, { QLocale::German, QLocale::Switzerland, 12, 13 }, { QLocale::German, QLocale::AnyCountry, 2, 3 }, { QLocale::Greek, QLocale::AnyCountry, 12, 21 }, { QLocale::Hebrew, QLocale::AnyCountry, 0, 21 }, { QLocale::Hungarian, QLocale::AnyCountry, 4, 14 }, { QLocale::Icelandic, QLocale::AnyCountry, 2, 3 }, { QLocale::Indonesian, QLocale::AnyCountry, 0, 1 }, { QLocale::Irish, QLocale::AnyCountry, 0, 1 }, { QLocale::Italian, QLocale::Switzerland, 12, 13 }, { QLocale::Italian, QLocale::AnyCountry, 12, 21 }, { QLocale::Japanese, QLocale::AnyCountry, 18, 19 }, { QLocale::Korean, QLocale::AnyCountry, 0, 1 }, { QLocale::Latvian, QLocale::AnyCountry, 12, 2 }, { QLocale::Lithuanian, QLocale::AnyCountry, 2, 3 }, { QLocale::Macedonian, QLocale::AnyCountry, 2, 21 }, { QLocale::Norwegian, QLocale::AnyCountry, 2, 9 }, { QLocale::Polish, QLocale::AnyCountry, 4, 12 }, { QLocale::Portuguese, QLocale::Brazil, 0, 1 }, { QLocale::Portuguese, QLocale::AnyCountry, 12, 0 }, { QLocale::Romanian, QLocale::AnyCountry, 4, 12 }, { QLocale::Russian, QLocale::AnyCountry, 12, 2 }, { QLocale::Serbian, QLocale::AnyCountry, 2, 9 }, { QLocale::Slovak, QLocale::AnyCountry, 2, 3 }, { QLocale::Slovenian, QLocale::AnyCountry, 2, 3 }, { QLocale::Spanish, QLocale::AnyCountry, 12, 0 }, { QLocale::Swedish, QLocale::AnyCountry, 8, 9 }, { QLocale::Thai, QLocale::AnyCountry, 0, 1 }, { QLocale::Turkish, QLocale::AnyCountry, 12, 13 }, { QLocale::Ukrainian, QLocale::AnyCountry, 12, 21 }, { QLocale::Welsh, QLocale::AnyCountry, 0, 1 } }; const size_t default_quotes_count = sizeof(default_quotes) / sizeof(DefaultQuotes); QLocale locale; double_index = 0; single_index = 1; for (size_t i = 0; i < default_quotes_count; ++i) { const DefaultQuotes& quotes = default_quotes[i]; if (quotes.language == locale.language() && (quotes.country == QLocale::AnyCountry || quotes.country == locale.country())) { double_index = quotes.double_index; single_index = quotes.single_index; break; } } preferences.setDoubleQuotes(double_index); preferences.setSingleQuotes(single_index); setQuotes(double_index, single_index); } //----------------------------------------------------------------------------- void SmartQuotes::setQuotes(size_t index_double, size_t index_single) { const Quotes& double_quotes = m_quotes_list[index_double]; m_quotes[0] = double_quotes.left; m_quotes[1] = double_quotes.right; const Quotes& single_quotes = m_quotes_list[index_single]; m_quotes[2] = single_quotes.left; m_quotes[3] = single_quotes.right; } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/smart_quotes.h000066400000000000000000000035761231434177300176030ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010, 2011 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef SMART_QUOTES_H #define SMART_QUOTES_H class Preferences; #include #include class QKeyEvent; class QTextEdit; class SmartQuotes { Q_DECLARE_TR_FUNCTIONS(SmartQuote) public: static size_t count(); static bool isEnabled(); static bool insert(QTextEdit* text, QKeyEvent* key); static void replace(QTextEdit* text, int start, int end); static void replace(QString& string); static QString revert(const QString& string); static QStringList revert(const QStringList& strings); static QString quoteString(const QString& string, size_t index); static void loadPreferences(Preferences& preferences); private: static void setQuotes(size_t index_double, size_t index_single); private: static bool m_enabled; static QString m_quotes[4]; struct Quotes { const QString left, right; }; static const Quotes m_quotes_list[]; static const size_t m_quotes_list_count; }; inline size_t SmartQuotes::count() { return m_quotes_list_count; } inline bool SmartQuotes::isEnabled() { return m_enabled; } #endif focuswriter-1.4.5/src/sound.h000066400000000000000000000023711231434177300161750ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010, 2011 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef SOUND_H #define SOUND_H #include class Sound : public QObject { public: Sound(int name, const QString& filename, QObject* parent = 0); ~Sound(); bool isValid() const; static void play(int name); static void setEnabled(bool enabled); static void setPath(const QString& path); private: int m_id; int m_name; }; inline bool Sound::isValid() const { return m_id != -1; } #endif focuswriter-1.4.5/src/spell_checker.cpp000066400000000000000000000201001231434177300201710ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010, 2012, 2013 Graeme Gott * * 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 . * ***********************************************************************/ #include "spell_checker.h" #include "dictionary.h" #include "document.h" #include #include #include #include #include #include #include #include #include #include #include #include #include //----------------------------------------------------------------------------- void SpellChecker::checkDocument(QTextEdit* document, Dictionary& dictionary) { SpellChecker* checker = new SpellChecker(document, dictionary); checker->m_start_cursor = document->textCursor(); checker->m_cursor = checker->m_start_cursor; checker->m_cursor.movePosition(QTextCursor::Start); checker->show(); checker->check(); } //----------------------------------------------------------------------------- void SpellChecker::reject() { m_document->setTextCursor(m_start_cursor); Document* document = qobject_cast(m_document->parentWidget()); if (document) { document->centerCursor(true); } QDialog::reject(); } //----------------------------------------------------------------------------- void SpellChecker::suggestionChanged(QListWidgetItem* suggestion) { if (suggestion) { m_suggestion->setText(suggestion->text()); } } //----------------------------------------------------------------------------- void SpellChecker::add() { m_dictionary.addWord(m_word); ignore(); } //----------------------------------------------------------------------------- void SpellChecker::ignore() { check(); } //----------------------------------------------------------------------------- void SpellChecker::ignoreAll() { m_ignored.append(m_word); ignore(); } //----------------------------------------------------------------------------- void SpellChecker::change() { m_cursor.insertText(m_suggestion->text()); check(); } //----------------------------------------------------------------------------- void SpellChecker::changeAll() { QString replacement = m_suggestion->text(); QTextCursor cursor = m_cursor; cursor.movePosition(QTextCursor::Start); forever { cursor = m_document->document()->find(m_word, cursor, QTextDocument::FindCaseSensitively | QTextDocument::FindWholeWords); if (!cursor.isNull()) { cursor.insertText(replacement); } else { break; } } check(); } //----------------------------------------------------------------------------- SpellChecker::SpellChecker(QTextEdit* document, Dictionary& dictionary) : QDialog(document->parentWidget(), Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint), m_dictionary(dictionary), m_document(document) { setWindowTitle(tr("Check Spelling")); setWindowModality(Qt::WindowModal); setAttribute(Qt::WA_DeleteOnClose); // Create widgets m_context = new QTextEdit(this); m_context->setReadOnly(true); m_context->setTabStopWidth(50); QPushButton* add_button = new QPushButton(tr("&Add"), this); add_button->setAutoDefault(false); connect(add_button, SIGNAL(clicked()), this, SLOT(add())); QPushButton* ignore_button = new QPushButton(tr("&Ignore"), this); ignore_button->setAutoDefault(false); connect(ignore_button, SIGNAL(clicked()), this, SLOT(ignore())); QPushButton* ignore_all_button = new QPushButton(tr("I&gnore All"), this); ignore_all_button->setAutoDefault(false); connect(ignore_all_button, SIGNAL(clicked()), this, SLOT(ignoreAll())); m_suggestion = new QLineEdit(this); QPushButton* change_button = new QPushButton(tr("&Change"), this); change_button->setAutoDefault(false); connect(change_button, SIGNAL(clicked()), this, SLOT(change())); QPushButton* change_all_button = new QPushButton(tr("C&hange All"), this); change_all_button->setAutoDefault(false); connect(change_all_button, SIGNAL(clicked()), this, SLOT(changeAll())); m_suggestions = new QListWidget(this); connect(m_suggestions, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), this, SLOT(suggestionChanged(QListWidgetItem*))); QDialogButtonBox* buttons = new QDialogButtonBox(QDialogButtonBox::Close, Qt::Horizontal, this); connect(buttons, SIGNAL(rejected()), this, SLOT(reject())); // Lay out dialog QGridLayout* layout = new QGridLayout(this); layout->setMargin(12); layout->setSpacing(6); layout->setColumnMinimumWidth(2, 6); layout->addWidget(new QLabel(tr("Not in dictionary:"), this), 0, 0, 1, 2); layout->addWidget(m_context, 1, 0, 3, 2); layout->addWidget(add_button, 1, 3); layout->addWidget(ignore_button, 2, 3); layout->addWidget(ignore_all_button, 3, 3); layout->setRowMinimumHeight(4, 12); layout->addWidget(new QLabel(tr("Change to:"), this), 5, 0); layout->addWidget(m_suggestion, 5, 1); layout->addWidget(m_suggestions, 6, 0, 1, 2); layout->addWidget(change_button, 5, 3); layout->addWidget(change_all_button, 6, 3, Qt::AlignTop); layout->setRowMinimumHeight(7, 12); layout->addWidget(buttons, 8, 3); } //----------------------------------------------------------------------------- void SpellChecker::check() { setDisabled(true); QProgressDialog wait_dialog(tr("Checking spelling..."), tr("Cancel"), 0, m_document->document()->characterCount(), this); wait_dialog.setWindowTitle(tr("Please wait")); wait_dialog.setValue(0); wait_dialog.setWindowModality(Qt::WindowModal); forever { // Update wait dialog wait_dialog.setValue(m_cursor.position()); if (wait_dialog.wasCanceled()) { m_document->setTextCursor(m_start_cursor); reject(); } // Check current line QTextBlock block = m_cursor.block(); QStringRef word = m_dictionary.check(block.text(), m_cursor.position() - block.position()); if (word.isNull()) { if (block.next().isValid()) { m_cursor.movePosition(QTextCursor::NextBlock); continue; } else { break; } } // Select misspelled word m_cursor.setPosition(word.position() + block.position()); m_cursor.setPosition(m_cursor.position() + word.length(), QTextCursor::KeepAnchor); m_word = m_cursor.selectedText(); if (!m_ignored.contains(m_word)) { wait_dialog.close(); setEnabled(true); // Show misspelled word in context QTextCursor cursor = m_cursor; cursor.movePosition(QTextCursor::PreviousWord, QTextCursor::MoveAnchor, 10); int end = m_cursor.position() - cursor.position(); int start = end - m_word.length(); cursor.movePosition(QTextCursor::NextWord, QTextCursor::KeepAnchor, 21); QString context = cursor.selectedText(); context.insert(end, ""); context.insert(start, ""); context.replace("\n", "

      "); context.replace("\t", "\t"); context = "

      " + context + "

      "; m_context->setHtml(context); // Show suggestions m_suggestion->clear(); m_suggestions->clear(); QStringList words = m_dictionary.suggestions(m_word); if (!words.isEmpty()) { foreach (const QString& word, words) { m_suggestions->addItem(word); } m_suggestions->setCurrentRow(0); } // Stop checking words m_document->setTextCursor(m_cursor); m_suggestion->setFocus(); return; } } // Inform user of completed spell check wait_dialog.close(); QMessageBox::information(this, QString(), tr("Spell check complete.")); reject(); } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/spell_checker.h000066400000000000000000000032551231434177300176520ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef SPELL_H #define SPELL_H class Dictionary; #include #include class QAction; class QLineEdit; class QListWidget; class QListWidgetItem; class QTextEdit; class SpellChecker : public QDialog { Q_OBJECT public: static void checkDocument(QTextEdit* document, Dictionary& dictionary); public slots: virtual void reject(); private slots: void suggestionChanged(QListWidgetItem* suggestion); void add(); void ignore(); void ignoreAll(); void change(); void changeAll(); private: SpellChecker(QTextEdit* document, Dictionary& dictionary); void check(); private: Dictionary& m_dictionary; QTextEdit* m_document; QTextEdit* m_context; QLineEdit* m_suggestion; QListWidget* m_suggestions; QTextCursor m_cursor; QTextCursor m_start_cursor; QString m_word; QStringList m_ignored; }; #endif focuswriter-1.4.5/src/stack.cpp000066400000000000000000000533341231434177300165120ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010, 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #include "stack.h" #include "action_manager.h" #include "alert_layer.h" #include "document.h" #include "find_dialog.h" #include "load_screen.h" #include "scene_list.h" #include "scene_model.h" #include "smart_quotes.h" #include "symbols_dialog.h" #include "theme.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //----------------------------------------------------------------------------- namespace { class BackgroundLoader : public QThread { public: void create(int position, const QString& image_path, QWidget* widget); QPixmap pixmap(); void reset(); protected: virtual void run(); private: struct File { int position; QString image_path; QRect rect; QColor color; }; QList m_files; QMutex m_file_mutex; struct CacheFile { File file; QImage image; bool operator==(const CacheFile& other); }; QList m_cache; QImage m_image; QMutex m_image_mutex; } background_loader; void BackgroundLoader::create(int position, const QString& image_path, QWidget* widget) { File file = { position, image_path, widget->rect(), widget->palette().color(QPalette::Window) }; m_file_mutex.lock(); m_files.append(file); m_file_mutex.unlock(); if (!isRunning()) { start(); } } QPixmap BackgroundLoader::pixmap() { QMutexLocker locker(&m_image_mutex); return QPixmap::fromImage(m_image, Qt::AutoColor | Qt::AvoidDither); } void BackgroundLoader::reset() { QMutexLocker locker(&m_image_mutex); m_image = QImage(); } void BackgroundLoader::run() { m_file_mutex.lock(); do { File file = m_files.takeLast(); m_files.clear(); m_file_mutex.unlock(); CacheFile cache_file = { file, QImage() }; int index = m_cache.indexOf(cache_file); if (index != -1) { cache_file = m_cache.at(index); } else { cache_file.image = Theme::renderBackground(file.image_path, file.position, file.color, file.rect.size()); m_cache.prepend(cache_file); while (m_cache.size() > 10) { m_cache.removeLast(); } } m_image_mutex.lock(); m_image = cache_file.image; m_image_mutex.unlock(); m_file_mutex.lock(); } while (!m_files.isEmpty()); m_file_mutex.unlock(); } bool BackgroundLoader::CacheFile::operator==(const CacheFile& other) { return (file.image_path == other.file.image_path) && (file.color == other.file.color) && (file.position == other.file.position) && (file.rect == other.file.rect); } } //----------------------------------------------------------------------------- Stack::Stack(QWidget* parent) : QWidget(parent), m_symbols_dialog(0), m_current_document(0), m_background_position(0), m_margin(0), m_footer_margin(0), m_header_margin(0), m_footer_visible(0), m_header_visible(0) { setMouseTracking(true); m_contents = new QStackedWidget(this); m_alerts = new AlertLayer(this); m_scenes = new SceneList(this); setScenesVisible(false); m_load_screen = new LoadScreen(this); m_find_dialog = new FindDialog(this); connect(m_find_dialog, SIGNAL(findNextAvailable(bool)), this, SIGNAL(findNextAvailable(bool))); connect(ActionManager::instance(), SIGNAL(insertText(QString)), this, SLOT(insertSymbol(QString))); m_layout = new QGridLayout(this); m_layout->setMargin(0); m_layout->setSpacing(0); m_layout->setRowMinimumHeight(1, 6); m_layout->setRowMinimumHeight(4, 6); m_layout->setRowStretch(2, 1); m_layout->setColumnMinimumWidth(1, 6); m_layout->setColumnMinimumWidth(4, 6); m_layout->setColumnStretch(1, 1); m_layout->setColumnStretch(2, 1); m_layout->setColumnStretch(3, 1); m_layout->addWidget(m_contents, 1, 0, 4, 6); m_layout->addWidget(m_scenes, 1, 0, 4, 3); m_layout->addWidget(m_alerts, 3, 3); m_layout->addWidget(m_load_screen, 0, 0, 6, 6); m_resize_timer = new QTimer(this); m_resize_timer->setInterval(50); m_resize_timer->setSingleShot(true); connect(m_resize_timer, SIGNAL(timeout()), this, SLOT(updateBackground())); connect(&background_loader, SIGNAL(finished()), this, SLOT(updateBackground())); } //----------------------------------------------------------------------------- Stack::~Stack() { background_loader.wait(); } //----------------------------------------------------------------------------- void Stack::addDocument(Document* document) { document->setSceneList(m_scenes); connect(document, SIGNAL(alert(Alert*)), m_alerts, SLOT(addAlert(Alert*))); connect(document, SIGNAL(alignmentChanged()), this, SIGNAL(updateFormatAlignmentActions())); connect(document, SIGNAL(changedName()), this, SIGNAL(updateFormatActions())); connect(document, SIGNAL(changedName()), this, SLOT(updateMapping())); connect(document, SIGNAL(footerVisible(bool)), this, SLOT(setFooterVisible(bool))); connect(document, SIGNAL(headerVisible(bool)), this, SLOT(setHeaderVisible(bool))); connect(document, SIGNAL(scenesVisible(bool)), this, SLOT(setScenesVisible(bool))); connect(document->text(), SIGNAL(copyAvailable(bool)), this, SIGNAL(copyAvailable(bool))); connect(document->text(), SIGNAL(redoAvailable(bool)), this, SIGNAL(redoAvailable(bool))); connect(document->text(), SIGNAL(undoAvailable(bool)), this, SIGNAL(undoAvailable(bool))); connect(document->text(), SIGNAL(currentCharFormatChanged(QTextCharFormat)), this, SIGNAL(updateFormatActions())); m_documents.append(document); m_contents->addWidget(document); m_contents->setCurrentWidget(document); updateMapping(); emit documentAdded(document); emit updateFormatActions(); } //----------------------------------------------------------------------------- void Stack::moveDocument(int from, int to) { m_documents.move(from, to); updateMapping(); } //----------------------------------------------------------------------------- void Stack::removeDocument(int index) { Document* document = m_documents.takeAt(index); m_contents->removeWidget(document); emit documentRemoved(document); document->close(); updateMapping(); } //----------------------------------------------------------------------------- void Stack::setCurrentDocument(int index) { m_current_document = m_documents[index]; m_contents->setCurrentWidget(m_current_document); m_scenes->setDocument(m_current_document); emit copyAvailable(!m_current_document->text()->textCursor().selectedText().isEmpty()); emit redoAvailable(m_current_document->text()->document()->isRedoAvailable()); emit undoAvailable(m_current_document->text()->document()->isUndoAvailable()); emit updateFormatActions(); } //----------------------------------------------------------------------------- void Stack::setMargins(int footer, int header) { m_footer_margin = footer; m_header_margin = header; m_footer_visible = (m_footer_visible != 0) ? -m_footer_margin : 0; m_header_visible = (m_header_visible != 0) ? m_header_margin : 0; updateMask(); showHeader(); } //----------------------------------------------------------------------------- void Stack::waitForThemeBackground() { if (background_loader.isRunning()) { background_loader.wait(); repaint(); } } //----------------------------------------------------------------------------- bool Stack::eventFilter(QObject* watched, QEvent* event) { if (event->type() == QEvent::MouseMove) { mouseMoveEvent(static_cast(event)); } return QWidget::eventFilter(watched, event); } //----------------------------------------------------------------------------- void Stack::alignCenter() { m_current_document->setRichText(true); m_current_document->text()->setAlignment(Qt::AlignCenter); } //----------------------------------------------------------------------------- void Stack::alignJustify() { m_current_document->setRichText(true); m_current_document->text()->setAlignment(Qt::AlignJustify); } //----------------------------------------------------------------------------- void Stack::alignLeft() { m_current_document->setRichText(true); m_current_document->text()->setAlignment(Qt::AlignLeft | Qt::AlignAbsolute); } //----------------------------------------------------------------------------- void Stack::alignRight() { m_current_document->setRichText(true); m_current_document->text()->setAlignment(Qt::AlignRight | Qt::AlignAbsolute); } //----------------------------------------------------------------------------- void Stack::autoCache() { foreach (Document* document, m_documents) { if (document->text()->document()->isModified()) { document->cache(); } } } //----------------------------------------------------------------------------- void Stack::autoSave() { foreach (Document* document, m_documents) { if (document->text()->document()->isModified()) { if (!document->filename().isEmpty()) { document->save(); } else { document->cache(); } } } } //----------------------------------------------------------------------------- void Stack::checkSpelling() { m_current_document->checkSpelling(); } //----------------------------------------------------------------------------- void Stack::cut() { m_current_document->text()->cut(); } //----------------------------------------------------------------------------- void Stack::copy() { m_current_document->text()->copy(); } //----------------------------------------------------------------------------- void Stack::decreaseIndent() { m_current_document->setRichText(true); QTextCursor cursor = m_current_document->text()->textCursor(); QTextBlockFormat format = cursor.blockFormat(); format.setIndent(qMax(0, format.indent() - 48)); cursor.setBlockFormat(format); emit updateFormatActions(); } //----------------------------------------------------------------------------- void Stack::find() { m_find_dialog->showFindMode(); } //----------------------------------------------------------------------------- void Stack::findNext() { m_find_dialog->findNext(); } //----------------------------------------------------------------------------- void Stack::findPrevious() { m_find_dialog->findPrevious(); } //----------------------------------------------------------------------------- void Stack::increaseIndent() { m_current_document->setRichText(true); QTextCursor cursor = m_current_document->text()->textCursor(); QTextBlockFormat format = cursor.blockFormat(); format.setIndent(format.indent() + 48); cursor.setBlockFormat(format); emit updateFormatActions(); } //----------------------------------------------------------------------------- void Stack::paste() { m_current_document->text()->paste(); } //----------------------------------------------------------------------------- void Stack::pasteUnformatted() { QString text = QApplication::clipboard()->text(QClipboard::Clipboard); m_current_document->text()->insertPlainText(text); } //----------------------------------------------------------------------------- void Stack::print() { m_current_document->print(); } //----------------------------------------------------------------------------- void Stack::redo() { m_current_document->text()->redo(); } //----------------------------------------------------------------------------- void Stack::reload() { m_current_document->reload(); } //----------------------------------------------------------------------------- void Stack::replace() { m_find_dialog->showReplaceMode(); } //----------------------------------------------------------------------------- void Stack::save() { m_current_document->save(); updateMapping(); } //----------------------------------------------------------------------------- void Stack::saveAs() { m_current_document->saveAs(); } //----------------------------------------------------------------------------- void Stack::selectAll() { m_current_document->text()->selectAll(); } //----------------------------------------------------------------------------- void Stack::selectScene() { m_current_document->sceneModel()->selectScene(); } //----------------------------------------------------------------------------- void Stack::setFocusMode(QAction* action) { int focus_mode = action->data().toInt(); foreach (Document* document, m_documents) { document->setFocusMode(focus_mode); } } //----------------------------------------------------------------------------- void Stack::setFontBold(bool bold) { m_current_document->setRichText(true); m_current_document->text()->setFontWeight(bold ? QFont::Bold : QFont::Normal); } //----------------------------------------------------------------------------- void Stack::setFontItalic(bool italic) { m_current_document->setRichText(true); m_current_document->text()->setFontItalic(italic); } //----------------------------------------------------------------------------- void Stack::setFontStrikeOut(bool strikeout) { m_current_document->setRichText(true); QTextCharFormat format; format.setFontStrikeOut(strikeout); m_current_document->text()->mergeCurrentCharFormat(format); } //----------------------------------------------------------------------------- void Stack::setFontUnderline(bool underline) { m_current_document->setRichText(true); m_current_document->text()->setFontUnderline(underline); } //----------------------------------------------------------------------------- void Stack::setFontSuperScript(bool super) { m_current_document->setRichText(true); QTextCharFormat format; format.setVerticalAlignment(super ? QTextCharFormat::AlignSuperScript : QTextCharFormat::AlignNormal); m_current_document->text()->mergeCurrentCharFormat(format); } //----------------------------------------------------------------------------- void Stack::setFontSubScript(bool sub) { m_current_document->setRichText(true); QTextCharFormat format; format.setVerticalAlignment(sub ? QTextCharFormat::AlignSubScript : QTextCharFormat::AlignNormal); m_current_document->text()->mergeCurrentCharFormat(format); } //----------------------------------------------------------------------------- void Stack::setTextDirectionLTR() { if (m_current_document) { m_current_document->setRichText(true); QTextCursor cursor = m_current_document->text()->textCursor(); QTextBlockFormat format = cursor.blockFormat(); format.setLayoutDirection(Qt::LeftToRight); format.setAlignment(Qt::AlignLeft | Qt::AlignAbsolute); cursor.mergeBlockFormat(format); emit updateFormatAlignmentActions(); } } //----------------------------------------------------------------------------- void Stack::setTextDirectionRTL() { if (m_current_document) { m_current_document->setRichText(true); QTextCursor cursor = m_current_document->text()->textCursor(); QTextBlockFormat format = cursor.blockFormat(); format.setLayoutDirection(Qt::RightToLeft); format.setAlignment(Qt::AlignRight | Qt::AlignAbsolute); cursor.mergeBlockFormat(format); emit updateFormatAlignmentActions(); } } //----------------------------------------------------------------------------- void Stack::showSymbols() { // Load symbols dialog on demand if (!m_symbols_dialog) { window()->setCursor(Qt::WaitCursor); m_symbols_dialog = new SymbolsDialog(this); m_symbols_dialog->setInsertEnabled(!m_current_document->isReadOnly()); m_symbols_dialog->setPreviewFont(m_current_document->text()->font()); connect(m_symbols_dialog, SIGNAL(insertText(QString)), this, SLOT(insertSymbol(QString))); window()->unsetCursor(); } // Show dialog m_symbols_dialog->show(); m_symbols_dialog->raise(); m_symbols_dialog->activateWindow(); } //----------------------------------------------------------------------------- void Stack::themeSelected(const Theme& theme) { m_background_position = theme.backgroundType(); m_background_path = theme.backgroundImage(); QPalette p = palette(); p.setColor(QPalette::Window, theme.backgroundColor().rgb()); setPalette(p); background_loader.reset(); m_background = QPixmap(); updateBackground(); m_margin = theme.foregroundMargin(); m_layout->setRowMinimumHeight(0, m_margin); m_layout->setRowMinimumHeight(5, m_margin); m_layout->setColumnMinimumWidth(0, m_margin); m_layout->setColumnMinimumWidth(5, m_margin); if (m_symbols_dialog) { m_symbols_dialog->setPreviewFont(theme.textFont()); } foreach (Document* document, m_documents) { document->loadTheme(theme); } window()->setMinimumWidth((m_margin * 2) + theme.foregroundWidth()); } //----------------------------------------------------------------------------- void Stack::undo() { m_current_document->text()->undo(); } //----------------------------------------------------------------------------- void Stack::updateSmartQuotes() { SmartQuotes::replace(m_current_document->text(), 0, m_current_document->text()->document()->characterCount()); m_current_document->centerCursor(true); } //----------------------------------------------------------------------------- void Stack::updateSmartQuotesSelection() { QTextCursor cursor = m_current_document->text()->textCursor(); SmartQuotes::replace(m_current_document->text(), cursor.selectionStart(), cursor.selectionEnd()); } //----------------------------------------------------------------------------- void Stack::setFooterVisible(bool visible) { int footer_visible = visible * -m_footer_margin; if (m_footer_visible != footer_visible) { emit footerVisible(visible); m_footer_visible = footer_visible; updateMask(); } } //----------------------------------------------------------------------------- void Stack::setHeaderVisible(bool visible) { int header_visible = visible * m_header_margin; if (m_header_visible != header_visible) { emit headerVisible(visible); m_header_visible = header_visible; updateMask(); } } //----------------------------------------------------------------------------- void Stack::setScenesVisible(bool visible) { if (!visible && !m_scenes->scenesVisible()) { m_scenes->hide(); } else { m_scenes->show(); } } //----------------------------------------------------------------------------- void Stack::showHeader() { QPoint point = mapFromGlobal(QCursor::pos()); setHeaderVisible(window()->rect().contains(point) && point.y() <= m_header_margin); } //----------------------------------------------------------------------------- void Stack::mouseMoveEvent(QMouseEvent* event) { int y = mapFromGlobal(event->globalPos()).y(); bool header_visible = y <= m_header_margin; bool footer_visible = y >= (height() - m_footer_margin); setHeaderVisible(header_visible); setFooterVisible(footer_visible); setScenesVisible(false); if (m_current_document) { if (header_visible || footer_visible) { m_current_document->setScrollBarVisible(false); } else { m_current_document->mouseMoveEvent(event); } } } //----------------------------------------------------------------------------- void Stack::paintEvent(QPaintEvent* event) { QPainter painter(this); if (!m_background.isNull()) { painter.drawPixmap(event->rect(), m_background, event->rect()); } painter.end(); } //----------------------------------------------------------------------------- void Stack::resizeEvent(QResizeEvent* event) { updateMask(); m_background = QPixmap(); m_resize_timer->start(); updateBackground(); QWidget::resizeEvent(event); } //----------------------------------------------------------------------------- void Stack::insertSymbol(const QString& text) { m_current_document->text()->insertPlainText(text); } //----------------------------------------------------------------------------- void Stack::updateBackground() { m_background = background_loader.pixmap(); if ((m_background.isNull() || m_background.size() != size()) && isVisible()) { m_background = QPixmap(); background_loader.create(m_background_position, m_background_path, this); setAttribute(Qt::WA_NoSystemBackground, false); setAutoFillBackground(true); } else { setAttribute(Qt::WA_NoSystemBackground, true); setAutoFillBackground(false); } update(); } //----------------------------------------------------------------------------- void Stack::updateMask() { if (m_header_visible || m_footer_visible) { setMask(rect().adjusted(0, m_header_visible, 0, m_footer_visible)); setAttribute(Qt::WA_TransparentForMouseEvents, true); } else { clearMask(); setAttribute(Qt::WA_TransparentForMouseEvents, false); raise(); if (m_scenes->isVisible()) { QApplication::processEvents(); m_scenes->update(); m_scenes->clearFocus(); m_scenes->setFocus(); } } } //----------------------------------------------------------------------------- void Stack::updateMapping() { QFile file(Document::cachePath() + "/mapping"); if (file.open(QFile::WriteOnly | QFile::Text)) { QTextStream stream(&file); stream.setCodec(QTextCodec::codecForName("UTF-8")); stream.setGenerateByteOrderMark(true); foreach (Document* document, m_documents) { stream << QFileInfo(document->cacheFilename()).baseName() << " " << document->filename() << endl; } } } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/stack.h000066400000000000000000000104251231434177300161510ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010, 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef STACK_H #define STACK_H class AlertLayer; class Document; class FindDialog; class LoadScreen; class SceneList; class SymbolsDialog; class Theme; #include class QGridLayout; class QStackedWidget; class Stack : public QWidget { Q_OBJECT public: Stack(QWidget* parent = 0); ~Stack(); void addDocument(Document* document); AlertLayer* alerts() const; LoadScreen* loadScreen() const; SymbolsDialog* symbols() const; int count() const; Document* currentDocument() const; int currentIndex() const; Document* document(int index) const; void moveDocument(int from, int to); void removeDocument(int index); void setCurrentDocument(int index); void setMargins(int footer, int header); void waitForThemeBackground(); virtual bool eventFilter(QObject* watched, QEvent* event); signals: void copyAvailable(bool); void redoAvailable(bool); void undoAvailable(bool); void footerVisible(bool); void headerVisible(bool); void documentAdded(Document* document); void documentRemoved(Document* document); void findNextAvailable(bool available); void updateFormatActions(); void updateFormatAlignmentActions(); public slots: void alignCenter(); void alignJustify(); void alignLeft(); void alignRight(); void autoCache(); void autoSave(); void checkSpelling(); void cut(); void copy(); void decreaseIndent(); void find(); void findNext(); void findPrevious(); void increaseIndent(); void paste(); void pasteUnformatted(); void print(); void redo(); void reload(); void replace(); void save(); void saveAs(); void selectAll(); void selectScene(); void setFocusMode(QAction* action); void setFontBold(bool bold); void setFontItalic(bool italic); void setFontStrikeOut(bool strikeout); void setFontUnderline(bool underline); void setFontSuperScript(bool super); void setFontSubScript(bool sub); void setTextDirectionLTR(); void setTextDirectionRTL(); void showSymbols(); void themeSelected(const Theme& theme); void undo(); void updateSmartQuotes(); void updateSmartQuotesSelection(); void setFooterVisible(bool visible); void setHeaderVisible(bool visible = true); void setScenesVisible(bool visible); void showHeader(); protected: virtual void mouseMoveEvent(QMouseEvent* event); virtual void paintEvent(QPaintEvent* event); virtual void resizeEvent(QResizeEvent* event); private slots: void insertSymbol(const QString& text); void updateBackground(); void updateMask(); void updateMapping(); private: LoadScreen* m_load_screen; AlertLayer* m_alerts; SceneList* m_scenes; QGridLayout* m_layout; FindDialog* m_find_dialog; SymbolsDialog* m_symbols_dialog; QStackedWidget* m_contents; QList m_documents; Document* m_current_document; QPixmap m_background; int m_background_position; QString m_background_path; QTimer* m_resize_timer; int m_margin; int m_footer_margin; int m_header_margin; int m_footer_visible; int m_header_visible; }; inline AlertLayer* Stack::alerts() const { return m_alerts; } inline LoadScreen* Stack::loadScreen() const { return m_load_screen; } inline SymbolsDialog* Stack::symbols() const { return m_symbols_dialog; } inline int Stack::count() const { return m_documents.count(); } inline Document* Stack::currentDocument() const { return m_current_document; } inline int Stack::currentIndex() const { return m_documents.indexOf(m_current_document); } inline Document* Stack::document(int index) const { return m_documents[index]; } #endif focuswriter-1.4.5/src/stats.cpp000066400000000000000000000057541231434177300165460ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010 Graeme Gott * * 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 . * ***********************************************************************/ #include "stats.h" #include "block_stats.h" #include //----------------------------------------------------------------------------- Stats::Stats() : m_valid(false), m_character_count(0), m_page_count(0), m_paragraph_count(0), m_space_count(0), m_word_count(0) { } //----------------------------------------------------------------------------- Stats::Stats(const Stats& stats) : m_valid(stats.m_valid), m_character_count(stats.m_character_count), m_page_count(stats.m_page_count), m_paragraph_count(stats.m_paragraph_count), m_space_count(stats.m_space_count), m_word_count(stats.m_word_count) { } //----------------------------------------------------------------------------- Stats& Stats::operator=(const Stats& stats) { m_valid = stats.m_valid; m_character_count = stats.m_character_count; m_page_count = stats.m_page_count; m_paragraph_count = stats.m_paragraph_count; m_space_count = stats.m_space_count; m_word_count = stats.m_word_count; return *this; } //----------------------------------------------------------------------------- void Stats::append(const BlockStats* block) { m_valid = true; m_character_count += block->characterCount(); m_paragraph_count += !block->isEmpty(); m_space_count += block->spaceCount(); m_word_count += block->wordCount(); } //----------------------------------------------------------------------------- void Stats::calculatePageCount(int type, float page_amount) { float amount = 0; switch (type) { case 1: amount = m_paragraph_count; break; case 2: amount = m_word_count; break; default: amount = m_character_count; break; } m_page_count = qMax(1.0f, std::ceil(amount / page_amount)); } //----------------------------------------------------------------------------- void Stats::calculateEstimatedWordCount() { m_word_count = std::ceil(m_character_count / 6.0f); } //----------------------------------------------------------------------------- void Stats::clear() { m_valid = false; m_character_count = 0; m_page_count = 0; m_paragraph_count = 0; m_space_count = 0; m_word_count = 0; } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/stats.h000066400000000000000000000035011231434177300161770ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010 Graeme Gott * * 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 . * ***********************************************************************/ class BlockStats; class Stats { public: Stats(); Stats(const Stats& stats); Stats& operator=(const Stats& stats); bool isValid() const; int characterCount() const; int characterAndSpaceCount() const; int pageCount() const; int paragraphCount() const; int wordCount() const; void append(const BlockStats* block); void calculatePageCount(int type, float page_amount); void calculateEstimatedWordCount(); void clear(); private: bool m_valid; int m_character_count; int m_page_count; int m_paragraph_count; int m_space_count; int m_word_count; }; inline bool Stats::isValid() const { return m_valid; } inline int Stats::characterCount() const { return m_character_count - m_space_count; } inline int Stats::characterAndSpaceCount() const { return m_character_count; } inline int Stats::pageCount() const { return m_page_count; } inline int Stats::paragraphCount() const { return m_paragraph_count; } inline int Stats::wordCount() const { return m_word_count; } focuswriter-1.4.5/src/symbols_dialog.cpp000066400000000000000000000404221231434177300204060ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2012, 2014 Graeme Gott * * 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 . * ***********************************************************************/ #include "symbols_dialog.h" #include "action_manager.h" #include "shortcut_edit.h" #include "symbols_model.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //----------------------------------------------------------------------------- class SymbolsDialog::ElideLabel : public QFrame { public: ElideLabel(QWidget* parent = 0); void clear(); void setText(const QString& text); protected: void paintEvent(QPaintEvent* event); private: QString m_text; }; SymbolsDialog::ElideLabel::ElideLabel(QWidget* parent) : QFrame(parent) { setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); } void SymbolsDialog::ElideLabel::clear() { m_text.clear(); update(); } void SymbolsDialog::ElideLabel::setText(const QString& text) { m_text = text; update(); } void SymbolsDialog::ElideLabel::paintEvent(QPaintEvent* event) { QFrame::paintEvent(event); QPainter painter(this); QFontMetrics metrics = painter.fontMetrics(); QString text = metrics.elidedText(m_text, Qt::ElideRight, width()); painter.drawText(QPoint(0, metrics.ascent()), text); } //----------------------------------------------------------------------------- SymbolsDialog::SymbolsDialog(QWidget* parent) : QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint) { setWindowTitle(tr("Symbols")); m_model = new SymbolsModel(this); m_contents = new QSplitter(this); // Create table to show recently used symbols QGroupBox* recent_group = new QGroupBox(tr("Recently used symbols"), this); m_recent = new QTableWidget(recent_group); m_recent->setColumnCount(16); m_recent->setRowCount(1); m_recent->setSelectionMode(QAbstractItemView::SingleSelection); m_recent->setTabKeyNavigation(false); #if (QT_VERSION >= QT_VERSION_CHECK(5,0,0)) m_recent->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); m_recent->verticalHeader()->setSectionsClickable(false); m_recent->verticalHeader()->setSectionsMovable(false); m_recent->verticalHeader()->setSectionResizeMode(QHeaderView::Fixed); #else m_recent->horizontalHeader()->setResizeMode(QHeaderView::Stretch); m_recent->verticalHeader()->setClickable(false); m_recent->verticalHeader()->setMovable(false); m_recent->verticalHeader()->setResizeMode(QHeaderView::Fixed); #endif m_recent->setMaximumHeight(m_recent->verticalHeader()->sectionSize(0)); m_recent->horizontalHeader()->hide(); m_recent->verticalHeader()->hide(); m_recent->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); m_recent->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); connect(m_recent, SIGNAL(currentItemChanged(QTableWidgetItem*,QTableWidgetItem*)), this, SLOT(recentSymbolClicked(QTableWidgetItem*))); connect(m_recent, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(accept())); QVBoxLayout* recent_layout = new QVBoxLayout(recent_group); recent_layout->addWidget(m_recent); // Create filter list widgets QGroupBox* symbols_group = new QGroupBox(tr("All symbols"), this); QWidget* sidebar = new QWidget(symbols_group); m_contents->addWidget(sidebar); m_groups = new QComboBox(sidebar); connect(m_groups, SIGNAL(activated(int)), this, SLOT(showGroup(int))); QVBoxLayout* sidebar_layout = new QVBoxLayout(sidebar); sidebar_layout->setMargin(0); sidebar_layout->addWidget(m_groups); QStringList groups = m_model->filterGroups(); for (int i = 0, count = groups.count(); i < count; ++i) { m_groups->addItem(groups.at(i)); QListWidget* filters = new QListWidget(sidebar); sidebar_layout->addWidget(filters, 1); m_filters += filters; QStringList names = m_model->filters(i); for (int j = 0, j_count = names.count(); j < j_count; ++j) { QListWidgetItem* item = new QListWidgetItem(names.at(j), filters); item->setData(Qt::UserRole, j); item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); } filters->sortItems(); } // Create table to show all symbols m_view = new QTableView(symbols_group); m_view->setSelectionMode(QAbstractItemView::SingleSelection); m_view->setTabKeyNavigation(false); m_view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); #if (QT_VERSION >= QT_VERSION_CHECK(5,0,0)) m_view->horizontalHeader()->setSectionsClickable(false); m_view->horizontalHeader()->setSectionsMovable(false); m_view->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); m_view->verticalHeader()->setSectionsClickable(false); m_view->verticalHeader()->setSectionsMovable(false); m_view->verticalHeader()->setSectionResizeMode(QHeaderView::Fixed); #else m_view->horizontalHeader()->setClickable(false); m_view->horizontalHeader()->setMovable(false); m_view->horizontalHeader()->setResizeMode(QHeaderView::Stretch); m_view->verticalHeader()->setClickable(false); m_view->verticalHeader()->setMovable(false); m_view->verticalHeader()->setResizeMode(QHeaderView::Fixed); #endif m_view->horizontalHeader()->hide(); m_view->verticalHeader()->hide(); m_view->setModel(m_model); connect(m_view->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)), this, SLOT(symbolClicked(QModelIndex))); connect(m_view, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(accept())); m_contents->addWidget(m_view); m_contents->setStretchFactor(1, 1); QVBoxLayout* symbols_layout = new QVBoxLayout(symbols_group); symbols_layout->addWidget(m_contents); // Create details widgets QGroupBox* details_group = new QGroupBox(tr("Details"), this); QGraphicsScene* scene = new QGraphicsScene(this); scene->setBackgroundBrush(palette().base()); m_symbol_preview_item = scene->addSimpleText(""); m_symbol_preview_item->setBrush(palette().text()); m_symbol_preview = new QGraphicsView(scene, details_group); m_symbol_preview->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); m_symbol_preview->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); int size = fontMetrics().height() * 4; m_symbol_preview->setFixedSize(size, size); m_symbol_shortcut = new ShortcutEdit(details_group); connect(m_symbol_shortcut, SIGNAL(changed()), this, SLOT(shortcutChanged())); m_symbol_name = new ElideLabel(details_group); m_symbol_code = new QLabel(details_group); QGridLayout* details_layout = new QGridLayout(details_group); details_layout->setColumnStretch(2, 1); details_layout->setRowStretch(0, 1); details_layout->setRowStretch(3, 1); details_layout->addWidget(m_symbol_preview, 0, 0, 4, 1, Qt::AlignCenter); details_layout->addWidget(new QLabel(ShortcutEdit::tr("Shortcut:"), details_group), 1, 1, 1, 1, Qt::AlignRight | Qt::AlignVCenter); details_layout->addWidget(m_symbol_shortcut, 1, 2, 1, 3); details_layout->addWidget(new QLabel(tr("Name:"), details_group), 2, 1, 1, 1, Qt::AlignRight | Qt::AlignVCenter); details_layout->addWidget(m_symbol_name, 2, 2); details_layout->addWidget(m_symbol_code, 2, 3); // Create buttons QDialogButtonBox* buttons = new QDialogButtonBox(QDialogButtonBox::Close, Qt::Horizontal, this); buttons->button(QDialogButtonBox::Close)->setAutoDefault(false); connect(buttons, SIGNAL(accepted()), this, SLOT(accept())); connect(buttons, SIGNAL(rejected()), this, SLOT(reject())); m_insert_button = buttons->addButton(tr("Insert"), QDialogButtonBox::AcceptRole); m_insert_button->setAutoDefault(true); m_insert_button->setDefault(true); // Lay out dialog QVBoxLayout* layout = new QVBoxLayout(this); layout->addWidget(recent_group); layout->addWidget(symbols_group, 1); layout->addWidget(details_group); layout->addWidget(buttons); // Restore size of dialog QSettings settings; resize(settings.value("SymbolsDialog/Size", QSize(750,500)).toSize()); m_contents->setSizes(QList() << 200 << 550); m_contents->restoreState(settings.value("SymbolsDialog/SplitterSizes").toByteArray()); // Switch to last used tab m_groups->setCurrentIndex(settings.value("SymbolsDialog/Group", 1).toInt()); showGroup(m_groups->currentIndex()); // Fetch list of recently used symbols QList recent = settings.value("SymbolsDialog/Recent").toList(); for (int i = 0, count = qMin(16, recent.count()); i < count; ++i) { quint32 unicode = recent.at(i).toUInt(); QTableWidgetItem* item = new QTableWidgetItem(QString::fromUcs4(&unicode, 1)); item->setTextAlignment(Qt::AlignCenter); item->setData(Qt::UserRole, unicode); item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); m_recent->setItem(0, i, item); } for (int i = recent.count(); i < 16; ++i) { QTableWidgetItem* item = new QTableWidgetItem; item->setBackground(palette().button()); item->setFlags(Qt::NoItemFlags); m_recent->setItem(0, i, item); } // Select most recently selected symbol selectSymbol(settings.value("SymbolsDialog/Current", ' ').toUInt()); } //----------------------------------------------------------------------------- void SymbolsDialog::setInsertEnabled(bool enabled) { if (m_insert_button->isEnabled() == enabled) { return; } m_insert_button->setEnabled(enabled); if (enabled) { connect(m_view, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(accept())); } else { disconnect(m_view, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(accept())); } } //----------------------------------------------------------------------------- void SymbolsDialog::setPreviewFont(const QFont& font) { QFontMetrics metrics(font); m_symbol_preview_item->setFont(font); m_symbol_preview->fitInView(0, 0, metrics.height() * 1.5, metrics.height() * 1.5, Qt::KeepAspectRatio); } //----------------------------------------------------------------------------- void SymbolsDialog::accept() { QModelIndex symbol = m_view->currentIndex(); if (symbol.isValid()) { quint32 unicode = symbol.internalId(); // Remove symbol from recent list for (int i = 0, count = m_recent->columnCount(); i < count; ++i) { QTableWidgetItem* item = m_recent->item(0, i); if (item && (item->data(Qt::UserRole).toUInt() == unicode)) { m_recent->removeColumn(i); break; } } // Prepend symbol to recent list m_recent->insertColumn(0); while (m_recent->columnCount() > 16) { m_recent->removeColumn(15); } QTableWidgetItem* item = new QTableWidgetItem(symbol.data(Qt::DisplayRole).toString()); item->setTextAlignment(Qt::AlignCenter); item->setData(Qt::UserRole, unicode); item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); m_recent->setItem(0, 0, item); m_recent->clearSelection(); item->setSelected(true); emit insertText(QString::fromUcs4(&unicode, 1)); } saveSettings(); QDialog::accept(); } //----------------------------------------------------------------------------- void SymbolsDialog::reject() { saveSettings(); QDialog::reject(); } //----------------------------------------------------------------------------- void SymbolsDialog::showEvent(QShowEvent* event) { QFontMetrics metrics(m_symbol_preview_item->font()); float size = metrics.height() * 1.5f; m_symbol_preview->fitInView(0, 0, size, size); m_view->setFocus(); QDialog::showEvent(event); } //----------------------------------------------------------------------------- void SymbolsDialog::showFilter(QListWidgetItem* filter) { if (!filter) { return; } m_model->setFilter(m_groups->currentIndex(), filter->data(Qt::UserRole).toInt()); m_view->setCurrentIndex(m_model->index(0, 0)); } //----------------------------------------------------------------------------- void SymbolsDialog::showGroup(int group) { foreach (QListWidget* filters, m_filters) { disconnect(filters, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)), this, SLOT(showFilter(QListWidgetItem*))); filters->clearSelection(); } for (int i = 0, count = m_filters.count(); i < count; ++i) { m_filters.at(i)->hide(); } QListWidget* filters = m_filters.at(group); filters->show(); if (m_model->rowCount()) { QModelIndex symbol = m_view->currentIndex(); quint32 unicode = symbol.internalId(); if (!selectSymbol(unicode)) { selectSymbol(' '); } } else { filters->clearSelection(); } connect(filters, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)), this, SLOT(showFilter(QListWidgetItem*))); } //----------------------------------------------------------------------------- void SymbolsDialog::symbolClicked(const QModelIndex& symbol) { if (symbol.isValid()) { // Show symbol details quint32 unicode = symbol.internalId(); QString name = m_model->symbolName(unicode); m_symbol_preview_item->setText(symbol.data(Qt::DisplayRole).toString()); m_symbol_preview->setSceneRect(m_symbol_preview_item->boundingRect()); m_symbol_name->setText(name); m_symbol_name->setToolTip(name); m_symbol_code->setText(QString("U+%1").arg(unicode, 4, 16, QLatin1Char('0')).toUpper()); m_symbol_shortcut->setShortcut(ActionManager::instance()->shortcut(unicode)); // Select symbol in recent list, and clear any other selections for (int i = 0, count = m_recent->columnCount(); i < count; ++i) { QTableWidgetItem* item = m_recent->item(0, i); if (item) { item->setSelected(item->data(Qt::UserRole).toUInt() == unicode); } } } else { m_symbol_name->clear(); m_symbol_code->clear(); } } //----------------------------------------------------------------------------- void SymbolsDialog::recentSymbolClicked(QTableWidgetItem* symbol) { if (!symbol) { return; } selectSymbol(symbol->data(Qt::UserRole).toUInt()); } //----------------------------------------------------------------------------- void SymbolsDialog::shortcutChanged() { quint32 unicode = m_view->currentIndex().internalId(); QKeySequence sequence = m_symbol_shortcut->shortcut(); ActionManager::instance()->setShortcut(unicode, sequence); } //----------------------------------------------------------------------------- bool SymbolsDialog::selectSymbol(quint32 unicode) { int group = m_groups->currentIndex(); // Select filter for symbol QListWidget* filters = m_filters.at(group); int filter = m_model->symbolFilter(group, unicode); if (filter == -1) { return false; } QListWidgetItem* item = filters->currentItem(); if (!item || !item->isSelected() || (item->data(Qt::UserRole).toInt() != filter)) { item = 0; for (int i = 0, count = filters->count(); i < count; ++i) { QListWidgetItem* check = filters->item(i); if (check->data(Qt::UserRole).toInt() == filter) { item = check; break; } } if (!item) { return false; } filters->blockSignals(true); filters->setCurrentItem(item); filters->scrollToItem(item); m_model->setFilter(group, filter); filters->blockSignals(false); } // Select symbol in table QModelIndex symbol = m_model->index(unicode); m_view->setCurrentIndex(symbol); m_view->scrollTo(symbol); return true; } //----------------------------------------------------------------------------- void SymbolsDialog::saveSettings() { QSettings settings; settings.setValue("SymbolsDialog/Size", size()); settings.setValue("SymbolsDialog/SplitterSizes", m_contents->saveState()); settings.setValue("SymbolsDialog/Group", m_groups->currentIndex()); QList recent; for (int i = 0; i < 16; ++i) { QTableWidgetItem* item = m_recent->item(0, i); if (item && (item->flags() & Qt::ItemIsEnabled)) { recent += item->data(Qt::UserRole); } } settings.setValue("SymbolsDialog/Recent", recent); settings.setValue("SymbolsDialog/Current", m_view->currentIndex().internalId()); } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/symbols_dialog.h000066400000000000000000000042141231434177300200520ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2012 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef SYMBOLS_DIALOG_H #define SYMBOLS_DIALOG_H class ShortcutEdit; class SymbolsModel; #include class QComboBox; class QGraphicsView; class QGraphicsSimpleTextItem; class QLabel; class QListWidget; class QListWidgetItem; class QModelIndex; class QSplitter; class QTableView; class QTableWidget; class QTableWidgetItem; class SymbolsDialog : public QDialog { Q_OBJECT public: SymbolsDialog(QWidget* parent = 0); void setInsertEnabled(bool enabled); void setPreviewFont(const QFont& font); signals: void insertText(const QString& text); public slots: void accept(); void reject(); protected: void showEvent(QShowEvent* event); private slots: void showFilter(QListWidgetItem* filter); void showGroup(int group); void symbolClicked(const QModelIndex& symbol); void recentSymbolClicked(QTableWidgetItem* symbol); void shortcutChanged(); private: bool selectSymbol(quint32 unicode); void saveSettings(); private: SymbolsModel* m_model; QSplitter* m_contents; QComboBox* m_groups; QList m_filters; QTableView* m_view; QGraphicsView* m_symbol_preview; QGraphicsSimpleTextItem* m_symbol_preview_item; ShortcutEdit* m_symbol_shortcut; class ElideLabel; ElideLabel* m_symbol_name; QLabel* m_symbol_code; QTableWidget* m_recent; QPushButton* m_insert_button; }; #endif focuswriter-1.4.5/src/symbols_model.cpp000066400000000000000000000214531231434177300202520ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2012, 2013 Graeme Gott * * 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 . * ***********************************************************************/ #include "symbols_model.h" #include #include #include #include #include #include #include //----------------------------------------------------------------------------- QDataStream& operator>>(QDataStream& stream, SymbolsModel::Filter::Range& range) { stream >> range.start >> range.end; return stream; } QDataStream& operator>>(QDataStream& stream, SymbolsModel::Filter& filter) { stream >> filter.name >> filter.size >> filter.ranges; return stream; } //----------------------------------------------------------------------------- QString SymbolsModel::m_path; //----------------------------------------------------------------------------- SymbolsModel::SymbolsModel(QObject* parent) : QAbstractItemModel(parent) { QFile file(m_path); if (!file.open(QFile::ReadOnly)) { return; } QByteArray data = qUncompress(file.readAll()); file.close(); QBuffer buffer(&data); if (!buffer.open(QBuffer::ReadOnly)) { return; } QDataStream stream(&buffer); const int unicode_version = m_path.mid(m_path.length() - 7, 3).toInt(); switch (unicode_version) { #if (QT_VERSION >= QT_VERSION_CHECK(5,0,0)) case 620: stream.setVersion(QDataStream::Qt_5_0); break; #endif case 510: default: stream.setVersion(QDataStream::Qt_4_6); break; } stream >> m_names; stream >> m_groups; buffer.close(); } //----------------------------------------------------------------------------- QStringList SymbolsModel::filters(int group) const { // Find group QStringList names; if ((group < 0) || (group >= m_groups.count())) { return names; } const FilterGroup& filters = m_groups.at(group); // List names of all filters in group foreach (const Filter& filter, filters) { names += QLatin1String(filter.name); } return names; } //----------------------------------------------------------------------------- QStringList SymbolsModel::filterGroups() const { return QStringList() << tr("Blocks") << tr("Scripts"); } //----------------------------------------------------------------------------- void SymbolsModel::setFilter(int group, int index) { // Find filter if ((group < 0) || (group >= m_groups.count())) { return; } const FilterGroup& filters = m_groups.at(group); if ((index < 0) || (index >= filters.count())) { return; } const Filter& filter = filters.at(index); // Clear list of symbols beginRemoveRows(QModelIndex(), 0, rowCount() - 1); m_symbols.resize(0); endRemoveRows(); // Allocate space for symbols int padding = filter.size % 16; padding = padding ? (16 - padding) : 0; int size = filter.size + padding; if (m_symbols.capacity() < size) { m_symbols.reserve(size); } // Create list of symbols beginInsertRows(QModelIndex(), 0, (size / 16) - 1); for (int i = 0, count = filter.ranges.count(); i < count; ++i) { const Filter::Range& range = filter.ranges.at(i); for (quint32 code = range.start; code <= range.end; ++code) { m_symbols.append(code); } } // Pad list of symbols to be multiple of 16 for (int i = 0; i < padding; ++i) { m_symbols.append(UINT_MAX); } endInsertRows(); } //----------------------------------------------------------------------------- int SymbolsModel::symbolFilter(int group, quint32 unicode) const { // Find group int index = -1; if ((group < 0) || (group >= m_groups.count())) { return index; } const FilterGroup& filters = m_groups.at(group); // Check for filter whose ranges contain symbol for (int i = 0, count = filters.count(); i < count; ++i) { const Filter& filter = filters.at(i); foreach (const Filter::Range& range, filter.ranges) { if ((range.start <= unicode) && (range.end >= unicode)) { index = i; break; } } } return index; } //----------------------------------------------------------------------------- QString SymbolsModel::symbolName(quint32 unicode) const { if ((unicode >= 0x3400 && unicode <= 0x4DBF) || (unicode >= 0x4E00 && unicode <= 0x9FFF) || (unicode >= 0x20000 && unicode <= 0x2A6DF) || (unicode >= 0x2A700 && unicode <= 0x2B81F)) { return QLatin1String("CJK UNIFIED IDEOGRAPH-") + QString::number(unicode, 16).toUpper(); } else if (unicode >= 0xAC00 && unicode <= 0xD7AF) { // Hangul character name algorithm from section 3.12 of Unicode standard static const int SBase = 0xAC00; static const int LCount = 19; static const int VCount = 21; static const int TCount = 28; static const int NCount = (VCount * TCount); static const int SCount = (LCount * NCount); static const char JAMO_L_TABLE[][4] = { "G", "GG", "N", "D", "DD", "R", "M", "B", "BB", "S", "SS", "", "J", "JJ", "C", "K", "T", "P", "H" }; static const char JAMO_V_TABLE[][4] = { "A", "AE", "YA", "YAE", "EO", "E", "YEO", "YE", "O", "WA", "WAE", "OE", "YO", "U", "WEO", "WE", "WI", "YU", "EU", "YI", "I" }; static const char JAMO_T_TABLE[][4] = { "", "G", "GG", "GS", "N", "NJ", "NH", "D", "L", "LG", "LM", "LB", "LS", "LT", "LP", "LH", "M", "B", "BS", "S", "SS", "NG", "J", "C", "K", "T", "P", "H" }; int SIndex = unicode - SBase; if (SIndex < 0 || SIndex >= SCount) { return QString(); } int LIndex = SIndex / NCount; int VIndex = (SIndex % NCount) / TCount; int TIndex = SIndex % TCount; return QLatin1String("HANGUL SYLLABLE ") + QLatin1String(JAMO_L_TABLE[LIndex]) + QLatin1String(JAMO_V_TABLE[VIndex]) + QLatin1String(JAMO_T_TABLE[TIndex]); } else { return QLatin1String(m_names[unicode]); } } //----------------------------------------------------------------------------- int SymbolsModel::columnCount(const QModelIndex& parent) const { return !parent.isValid() ? 16 : 0; } //----------------------------------------------------------------------------- QVariant SymbolsModel::data(const QModelIndex& index, int role) const { if (!index.isValid()) { return QVariant(); } quint32 unicode = index.internalId(); bool printable = QChar(unicode).isPrint(); switch (role) { case Qt::BackgroundRole: return printable ? QVariant() : QApplication::palette().button(); case Qt::DisplayRole: return printable ? QString::fromUcs4(&unicode, 1) : QString(); case Qt::TextAlignmentRole: return Qt::AlignCenter; default: return QVariant(); } } //----------------------------------------------------------------------------- Qt::ItemFlags SymbolsModel::flags(const QModelIndex& index) const { if (!index.isValid() || (index.internalId() > 0x10FFFF)) { return Qt::NoItemFlags; } return Qt::ItemIsSelectable|Qt::ItemIsEnabled; } //----------------------------------------------------------------------------- QModelIndex SymbolsModel::index(quint32 unicode) const { int index = m_symbols.indexOf(unicode); if (index != -1) { return createIndex(index / 16, index % 16, unicode); } else { return QModelIndex(); } } //----------------------------------------------------------------------------- QModelIndex SymbolsModel::index(int row, int column, const QModelIndex& parent) const { int pos = (row * 16) + column; return (!parent.isValid() && (pos < m_symbols.count())) ? createIndex(row, column, m_symbols.at(pos)) : QModelIndex(); } //----------------------------------------------------------------------------- QModelIndex SymbolsModel::parent(const QModelIndex&) const { return QModelIndex(); } //----------------------------------------------------------------------------- int SymbolsModel::rowCount(const QModelIndex& parent) const { return !parent.isValid() ? (m_symbols.count() / 16) : 0; } //----------------------------------------------------------------------------- void SymbolsModel::setData(const QStringList& datadirs) { QStringList files = QStringList() #if (QT_VERSION >= QT_VERSION_CHECK(5,0,0)) << "symbols620.dat" #endif << "symbols510.dat"; foreach (const QString& path, datadirs) { foreach (const QString& file, files) { QFileInfo info(path + "/" + file); if (info.exists()) { m_path = info.absoluteFilePath(); break; } } } } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/symbols_model.h000066400000000000000000000043571231434177300177230ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2012, 2013 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef SYMBOLS_MODEL_H #define SYMBOLS_MODEL_H #include #include #include class SymbolsModel : public QAbstractItemModel { Q_OBJECT private: struct Filter { struct Range { quint32 start; quint32 end; }; QByteArray name; quint32 size; QVector ranges; }; typedef QVector FilterGroup; public: SymbolsModel(QObject* parent = 0); QStringList filters(int group) const; QStringList filterGroups() const; void setFilter(int group, int index); int symbolFilter(int group, quint32 unicode) const; QString symbolName(quint32 unicode) const; int columnCount(const QModelIndex& parent = QModelIndex()) const; QVariant data(const QModelIndex& index, int role) const; Qt::ItemFlags flags(const QModelIndex& index) const; QModelIndex index(quint32 unicode) const; QModelIndex index(int row, int column, const QModelIndex& parent = QModelIndex()) const; QModelIndex parent(const QModelIndex& child) const; int rowCount(const QModelIndex& parent = QModelIndex()) const; static void setData(const QStringList& datadirs); friend QDataStream& operator>>(QDataStream& stream, SymbolsModel::Filter& filter); friend QDataStream& operator>>(QDataStream& stream, SymbolsModel::Filter::Range& range); private: QVector m_symbols; QHash m_names; QVector m_groups; static QString m_path; }; #endif focuswriter-1.4.5/src/theme.cpp000066400000000000000000000357661231434177300165200ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010, 2011, 2012, 2013 Graeme Gott * * 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 . * ***********************************************************************/ #include "theme.h" #include "session.h" #include #include #include #include #include #include #include //----------------------------------------------------------------------------- bool compareFiles(const QString& filename1, const QString& filename2) { // Compare sizes QFile file1(filename1); QFile file2(filename2); if (file1.size() != file2.size()) { return false; } // Compare contents bool equal = true; if (file1.open(QFile::ReadOnly) && file2.open(QFile::ReadOnly)) { while (!file1.atEnd()) { if (file1.read(1000) != file2.read(1000)) { equal = false; break; } } file1.close(); file2.close(); } else { equal = false; } return equal; } namespace { QString copyImage(const QString& image) { // Check if already copied QDir images(Theme::path() + "/Images/"); QStringList filenames = images.entryList(QDir::Files); foreach (const QString& filename, filenames) { if (compareFiles(image, images.filePath(filename))) { return filename; } } // Find file name QString base = QCryptographicHash::hash(image.toUtf8(), QCryptographicHash::Sha1).toHex(); QString suffix = QFileInfo(image).suffix().toLower(); QString filename = QString("%1.%2").arg(base, suffix); // Handle file name collisions int id = 0; while (images.exists(filename)) { id++; filename = QString("%1-%2.%3").arg(base).arg(id).arg(suffix); } QFile::copy(image, images.filePath(filename)); return filename; } } //----------------------------------------------------------------------------- QString Theme::m_path; //----------------------------------------------------------------------------- Theme::Theme(const QString& name) : m_name(name) { if (m_name.isEmpty()) { QString untitled; int count = 0; do { count++; untitled = tr("Untitled %1").arg(count); } while (QFile::exists(filePath(untitled))); m_name = untitled; } QSettings settings(filePath(m_name), QSettings::IniFormat); // Load background settings m_background_type = settings.value("Background/Type", 0).toInt(); m_background_color = settings.value("Background/Color", "#cccccc").toString(); m_background_path = settings.value("Background/Image").toString(); m_background_image = settings.value("Background/ImageFile").toString(); if (!m_background_path.isEmpty() && m_background_image.isEmpty()) { setValue(m_background_image, copyImage(m_background_path)); } // Load foreground settings m_foreground_color = settings.value("Foreground/Color", "#cccccc").toString(); m_foreground_opacity = qBound(0, settings.value("Foreground/Opacity", 100).toInt(), 100); m_foreground_width = qBound(500, settings.value("Foreground/Width", 700).toInt(), 2000); m_foreground_rounding = qBound(0, settings.value("Foreground/Rounding", 0).toInt(), 100); m_foreground_margin = qBound(1, settings.value("Foreground/Margin", 65).toInt(), 250); m_foreground_padding = qBound(0, settings.value("Foreground/Padding", 0).toInt(), 250); m_foreground_position = qBound(0, settings.value("Foreground/Position", 1).toInt(), 3); // Load text settings m_text_color = settings.value("Text/Color", "#000000").toString(); m_text_font.fromString(settings.value("Text/Font", QFont("Times New Roman").toString()).toString()); m_misspelled_color = settings.value("Text/Misspelled", "#ff0000").toString(); // Load spacings m_indent_first_line = settings.value("Spacings/IndentFirstLine", false).toBool(); m_line_spacing = qBound(85, settings.value("Spacings/LineSpacing", 100).toInt(), 1000); m_paragraph_spacing_above = qBound(0, settings.value("Spacings/ParagraphAbove", 0).toInt(), 1000); m_paragraph_spacing_below = qBound(0, settings.value("Spacings/ParagraphBelow", 0).toInt(), 1000); } //----------------------------------------------------------------------------- Theme::~Theme() { if (!isChanged()) { return; } QSettings settings(filePath(m_name), QSettings::IniFormat); // Store background settings settings.setValue("Background/Type", m_background_type); settings.setValue("Background/Color", m_background_color.name()); if (!m_background_path.isEmpty()) { settings.setValue("Background/Image", m_background_path); } settings.setValue("Background/ImageFile", m_background_image); // Store foreground settings settings.setValue("Foreground/Color", m_foreground_color.name()); settings.setValue("Foreground/Opacity", m_foreground_opacity); settings.setValue("Foreground/Width", m_foreground_width); settings.setValue("Foreground/Rounding", m_foreground_rounding); settings.setValue("Foreground/Margin", m_foreground_margin); settings.setValue("Foreground/Padding", m_foreground_padding); settings.setValue("Foreground/Position", m_foreground_position); // Store text settings settings.setValue("Text/Color", m_text_color.name()); settings.setValue("Text/Font", m_text_font.toString()); settings.setValue("Text/Misspelled", m_misspelled_color.name()); // Store spacings settings.setValue("Spacings/IndentFirstLine", m_indent_first_line); settings.setValue("Spacings/LineSpacing", m_line_spacing); settings.setValue("Spacings/ParagraphAbove", m_paragraph_spacing_above); settings.setValue("Spacings/ParagraphBelow", m_paragraph_spacing_below); } //----------------------------------------------------------------------------- void Theme::copyBackgrounds() { QDir dir(path() + "/Images"); QStringList images; // Copy images QStringList themes = QDir(path(), "*.theme").entryList(QDir::Files); foreach (const QString& theme, themes) { QSettings settings(path() + "/" + theme, QSettings::IniFormat); QString background_path = settings.value("Background/Image").toString(); QString background_image = settings.value("Background/ImageFile").toString(); if (background_path.isEmpty() && background_image.isEmpty()) { continue; } if (!background_path.isEmpty() && (background_image.isEmpty() || !dir.exists(background_image))) { background_image = copyImage(background_path); settings.setValue("Background/ImageFile", background_image); } images.append(background_image); } // Delete unused images QStringList files = dir.entryList(QDir::Files); foreach (const QString& file, files) { if (!images.contains(file)) { QFile::remove(path() + "/Images/" + file); } } } //----------------------------------------------------------------------------- QImage Theme::renderBackground(const QString& filename, int type, const QColor& background, const QSize& size) { QImage image(size, QImage::Format_RGB32); image.fill(background.rgb()); QPainter painter(&image); if (type > 1) { QImageReader source(filename); QSize scaled = source.size(); switch (type) { case 3: scaled.scale(size, Qt::IgnoreAspectRatio); break; case 4: scaled.scale(size, Qt::KeepAspectRatio); break; case 5: scaled.scale(size, Qt::KeepAspectRatioByExpanding); break; default: break; } source.setScaledSize(scaled); painter.drawImage((size.width() - scaled.width()) / 2, (size.height() - scaled.height()) / 2, source.read()); } else if (type == 1) { painter.fillRect(image.rect(), QImage(filename)); } painter.end(); return image; } //----------------------------------------------------------------------------- QString Theme::path() { return m_path; } //----------------------------------------------------------------------------- QString Theme::filePath(const QString& theme) { return path() + "/" + QUrl::toPercentEncoding(theme, " ") + ".theme"; } //----------------------------------------------------------------------------- QString Theme::iconPath(const QString& theme) { return path() + "/" + QUrl::toPercentEncoding(theme, " ") + ".png"; } //----------------------------------------------------------------------------- void Theme::setPath(const QString& path) { m_path = path; } //----------------------------------------------------------------------------- QString Theme::name() const { return m_name; } //----------------------------------------------------------------------------- void Theme::setName(const QString& name) { if (m_name != name) { QStringList files = QDir(Session::path(), "*.session").entryList(QDir::Files); files.prepend(""); foreach (const QString& file, files) { Session session(file); if (session.theme() == m_name) { session.setTheme(name); } } QFile::remove(filePath(m_name)); QFile::remove(iconPath(m_name)); setValue(m_name, name); } } //----------------------------------------------------------------------------- int Theme::backgroundType() const { return m_background_type; } //----------------------------------------------------------------------------- QColor Theme::backgroundColor() const { return m_background_color; } //----------------------------------------------------------------------------- QString Theme::backgroundImage() const { return path() + "/Images/" + m_background_image; } //----------------------------------------------------------------------------- QString Theme::backgroundPath() const { return m_background_path; } //----------------------------------------------------------------------------- void Theme::setBackgroundType(int type) { setValue(m_background_type, type); } //----------------------------------------------------------------------------- void Theme::setBackgroundColor(const QColor& color) { setValue(m_background_color, color); } //----------------------------------------------------------------------------- void Theme::setBackgroundImage(const QString& path) { if (m_background_path != path) { setValue(m_background_path, path); if (!m_background_path.isEmpty()) { m_background_image = copyImage(m_background_path); } else { m_background_image.clear(); } } } //----------------------------------------------------------------------------- QColor Theme::foregroundColor() const { return m_foreground_color; } //----------------------------------------------------------------------------- int Theme::foregroundOpacity() const { return m_foreground_opacity; } //----------------------------------------------------------------------------- int Theme::foregroundWidth() const { return m_foreground_width; } //----------------------------------------------------------------------------- int Theme::foregroundRounding() const { return m_foreground_rounding; } //----------------------------------------------------------------------------- int Theme::foregroundMargin() const { return m_foreground_margin; } //----------------------------------------------------------------------------- int Theme::foregroundPadding() const { return m_foreground_padding; } //----------------------------------------------------------------------------- int Theme::foregroundPosition() const { return m_foreground_position; } //----------------------------------------------------------------------------- void Theme::setForegroundColor(const QColor& color) { setValue(m_foreground_color, color); } //----------------------------------------------------------------------------- void Theme::setForegroundOpacity(int opacity) { setValue(m_foreground_opacity, opacity); } //----------------------------------------------------------------------------- void Theme::setForegroundWidth(int width) { setValue(m_foreground_width, width); } //----------------------------------------------------------------------------- void Theme::setForegroundRounding(int rounding) { setValue(m_foreground_rounding, rounding); } //----------------------------------------------------------------------------- void Theme::setForegroundMargin(int margin) { setValue(m_foreground_margin, margin); } //----------------------------------------------------------------------------- void Theme::setForegroundPadding(int padding) { setValue(m_foreground_padding, padding); } //----------------------------------------------------------------------------- void Theme::setForegroundPosition(int position) { setValue(m_foreground_position, position); } //----------------------------------------------------------------------------- QColor Theme::textColor() const { return m_text_color; } //----------------------------------------------------------------------------- QFont Theme::textFont() const { return m_text_font; } //----------------------------------------------------------------------------- QColor Theme::misspelledColor() const { return m_misspelled_color; } //----------------------------------------------------------------------------- void Theme::setTextColor(const QColor& color) { setValue(m_text_color, color); } //----------------------------------------------------------------------------- void Theme::setTextFont(const QFont& font) { setValue(m_text_font, font); } //----------------------------------------------------------------------------- void Theme::setMisspelledColor(const QColor& color) { setValue(m_misspelled_color, color); } //----------------------------------------------------------------------------- bool Theme::indentFirstLine() const { return m_indent_first_line; } //----------------------------------------------------------------------------- int Theme::lineSpacing() const { return m_line_spacing; } //----------------------------------------------------------------------------- int Theme::spacingAboveParagraph() const { return m_paragraph_spacing_above; } //----------------------------------------------------------------------------- int Theme::spacingBelowParagraph() const { return m_paragraph_spacing_below; } //----------------------------------------------------------------------------- void Theme::setIndentFirstLine(bool indent) { setValue(m_indent_first_line, indent); } //----------------------------------------------------------------------------- void Theme::setLineSpacing(int spacing) { setValue(m_line_spacing, spacing); } //----------------------------------------------------------------------------- void Theme::setSpacingAboveParagraph(int spacing) { setValue(m_paragraph_spacing_above, spacing); } //----------------------------------------------------------------------------- void Theme::setSpacingBelowParagraph(int spacing) { setValue(m_paragraph_spacing_below, spacing); } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/theme.h000066400000000000000000000065561231434177300161600ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef THEME_H #define THEME_H #include "settings_file.h" #include #include #include class QImage; class QSize; class Theme : public SettingsFile { Q_DECLARE_TR_FUNCTIONS(Theme) public: Theme(const QString& name = QString()); ~Theme(); static void copyBackgrounds(); static QImage renderBackground(const QString& filename, int type, const QColor& background, const QSize& size); static QString path(); static QString filePath(const QString& theme); static QString iconPath(const QString& theme); static void setPath(const QString& path); QString name() const; void setName(const QString& name); // Background settings int backgroundType() const; QColor backgroundColor() const; QString backgroundImage() const; QString backgroundPath() const; void setBackgroundType(int type); void setBackgroundColor(const QColor& color); void setBackgroundImage(const QString& path); // Foreground settings QColor foregroundColor() const; int foregroundOpacity() const; int foregroundWidth() const; int foregroundRounding() const; int foregroundMargin() const; int foregroundPadding() const; int foregroundPosition() const; void setForegroundColor(const QColor& color); void setForegroundOpacity(int opacity); void setForegroundWidth(int width); void setForegroundRounding(int rounding); void setForegroundMargin(int margin); void setForegroundPadding(int padding); void setForegroundPosition(int position); // Text settings QColor textColor() const; QFont textFont() const; QColor misspelledColor() const; void setTextColor(const QColor& color); void setTextFont(const QFont& font); void setMisspelledColor(const QColor& color); // Spacing settings bool indentFirstLine() const; int lineSpacing() const; int spacingAboveParagraph() const; int spacingBelowParagraph() const; void setIndentFirstLine(bool indent); void setLineSpacing(int spacing); void setSpacingAboveParagraph(int spacing); void setSpacingBelowParagraph(int spacing); private: static QString m_path; QString m_name; int m_background_type; QColor m_background_color; QString m_background_path; QString m_background_image; QColor m_foreground_color; int m_foreground_opacity; int m_foreground_width; int m_foreground_rounding; int m_foreground_margin; int m_foreground_padding; int m_foreground_position; QColor m_text_color; QFont m_text_font; QColor m_misspelled_color; bool m_indent_first_line; int m_line_spacing; int m_paragraph_spacing_above; int m_paragraph_spacing_below; }; #endif focuswriter-1.4.5/src/theme_dialog.cpp000066400000000000000000000446211231434177300200250ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010, 2011, 2012, 2013 Graeme Gott * * 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 . * ***********************************************************************/ #include "theme_dialog.h" #include "color_button.h" #include "font_combobox.h" #include "image_button.h" #include "theme.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //----------------------------------------------------------------------------- ThemeDialog::ThemeDialog(Theme& theme, QWidget* parent) : QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint), m_theme(theme) { setWindowTitle(tr("Modify Theme")); setWindowModality(Qt::WindowModal); // Create name edit m_name = new QLineEdit(this); m_name->setText(m_theme.name()); connect(m_name, SIGNAL(textChanged(QString)), this, SLOT(checkNameAvailable())); QHBoxLayout* name_layout = new QHBoxLayout; name_layout->setMargin(0); name_layout->addWidget(new QLabel(tr("Name:"), this)); name_layout->addWidget(m_name); QTabWidget* tabs = new QTabWidget(this); // Create background group QWidget* tab = new QWidget(this); tabs->addTab(tab, tr("Background")); m_background_type = new QComboBox(tab); m_background_type->addItems(QStringList() << tr("No Image") << tr("Tiled") << tr("Centered") << tr("Stretched") << tr("Scaled") << tr("Zoomed")); m_background_type->setCurrentIndex(m_theme.backgroundType()); connect(m_background_type, SIGNAL(activated(int)), this, SLOT(renderPreview())); m_background_color = new ColorButton(tab); m_background_color->setColor(m_theme.backgroundColor()); connect(m_background_color, SIGNAL(changed(QColor)), this, SLOT(renderPreview())); m_background_image = new ImageButton(tab); m_background_image->setImage(m_theme.backgroundImage(), m_theme.backgroundPath()); connect(m_background_image, SIGNAL(changed(QString)), this, SLOT(imageChanged())); m_clear_image = new QPushButton(tr("Remove"), this); connect(m_clear_image, SIGNAL(clicked()), m_background_image, SLOT(unsetImage())); QVBoxLayout* image_layout = new QVBoxLayout; image_layout->setSpacing(0); image_layout->addWidget(m_background_image); image_layout->addWidget(m_clear_image); QFormLayout* background_layout = new QFormLayout(tab); background_layout->setFieldGrowthPolicy(QFormLayout::FieldsStayAtSizeHint); background_layout->setFormAlignment(Qt::AlignHCenter | Qt::AlignTop); background_layout->setLabelAlignment(Qt::AlignRight); background_layout->addRow(tr("Type:"), m_background_type); background_layout->addRow(tr("Color:"), m_background_color); background_layout->addRow(tr("Image:"), image_layout); // Create foreground group tab = new QWidget(this); tabs->addTab(tab, tr("Foreground")); m_foreground_color = new ColorButton(tab); m_foreground_color->setColor(m_theme.foregroundColor()); connect(m_foreground_color, SIGNAL(changed(QColor)), this, SLOT(renderPreview())); m_foreground_opacity = new QSpinBox(tab); m_foreground_opacity->setCorrectionMode(QSpinBox::CorrectToNearestValue); m_foreground_opacity->setSuffix("%"); m_foreground_opacity->setRange(0, 100); m_foreground_opacity->setValue(m_theme.foregroundOpacity()); m_foreground_opacity->setToolTip(tr("Opacity")); connect(m_foreground_opacity, SIGNAL(valueChanged(int)), this, SLOT(renderPreview())); m_foreground_width = new QSpinBox(tab); m_foreground_width->setCorrectionMode(QSpinBox::CorrectToNearestValue); m_foreground_width->setSuffix(tr(" pixels")); m_foreground_width->setRange(500, 2000); m_foreground_width->setValue(m_theme.foregroundWidth()); m_foreground_position = new QComboBox(tab); m_foreground_position->addItems(QStringList() << tr("Left") << tr("Centered") << tr("Right") << tr("Stretched")); m_foreground_position->setCurrentIndex(m_theme.foregroundPosition()); m_foreground_position->setToolTip(tr("Position")); m_foreground_rounding = new QSpinBox(tab); m_foreground_rounding->setCorrectionMode(QSpinBox::CorrectToNearestValue); m_foreground_rounding->setSuffix(tr(" pixels")); m_foreground_rounding->setRange(0, 100); m_foreground_rounding->setValue(m_theme.foregroundRounding()); connect(m_foreground_rounding, SIGNAL(valueChanged(int)), this, SLOT(renderPreview())); m_foreground_margin = new QSpinBox(tab); m_foreground_margin->setCorrectionMode(QSpinBox::CorrectToNearestValue); m_foreground_margin->setSuffix(tr(" pixels")); m_foreground_margin->setRange(1, 250); m_foreground_margin->setValue(m_theme.foregroundMargin()); m_foreground_padding = new QSpinBox(tab); m_foreground_padding->setCorrectionMode(QSpinBox::CorrectToNearestValue); m_foreground_padding->setSuffix(tr(" pixels")); m_foreground_padding->setRange(0, 250); m_foreground_padding->setValue(m_theme.foregroundPadding()); connect(m_foreground_padding, SIGNAL(valueChanged(int)), this, SLOT(renderPreview())); QHBoxLayout* color_layout = new QHBoxLayout; color_layout->setMargin(0); color_layout->addWidget(m_foreground_color); color_layout->addWidget(m_foreground_opacity); QHBoxLayout* size_layout = new QHBoxLayout; size_layout->setMargin(0); size_layout->addWidget(m_foreground_width); size_layout->addWidget(m_foreground_position); QFormLayout* foreground_layout = new QFormLayout(tab); foreground_layout->setFieldGrowthPolicy(QFormLayout::FieldsStayAtSizeHint); foreground_layout->setFormAlignment(Qt::AlignHCenter | Qt::AlignTop); foreground_layout->setLabelAlignment(Qt::AlignRight); foreground_layout->addRow(tr("Color:"), color_layout); foreground_layout->addRow(tr("Size:"), size_layout); foreground_layout->addRow(tr("Rounding:"), m_foreground_rounding); foreground_layout->addRow(tr("Margin:"), m_foreground_margin); foreground_layout->addRow(tr("Padding:"), m_foreground_padding); // Create text group tab = new QWidget(this); tabs->addTab(tab, tr("Text")); m_text_color = new ColorButton(tab); m_text_color->setColor(m_theme.textColor()); connect(m_text_color, SIGNAL(changed(QColor)), this, SLOT(renderPreview())); m_font_names = new FontComboBox(tab); m_font_names->setEditable(false); m_font_names->setCurrentFont(m_theme.textFont()); connect(m_font_names, SIGNAL(activated(int)), this, SLOT(fontChanged())); connect(m_font_names, SIGNAL(activated(int)), this, SLOT(renderPreview())); m_font_sizes = new QComboBox(tab); m_font_sizes->setEditable(true); m_font_sizes->setMinimumContentsLength(3); connect(m_font_sizes, SIGNAL(editTextChanged(QString)), this, SLOT(renderPreview())); fontChanged(); m_misspelled_color = new ColorButton(tab); m_misspelled_color->setColor(m_theme.misspelledColor()); connect(m_misspelled_color, SIGNAL(changed(QColor)), this, SLOT(renderPreview())); QHBoxLayout* font_layout = new QHBoxLayout; font_layout->addWidget(m_font_names); font_layout->addWidget(m_font_sizes); QFormLayout* text_layout = new QFormLayout(tab); text_layout->setFieldGrowthPolicy(QFormLayout::FieldsStayAtSizeHint); text_layout->setFormAlignment(Qt::AlignHCenter | Qt::AlignTop); text_layout->setLabelAlignment(Qt::AlignRight); text_layout->addRow(tr("Color:"), m_text_color); text_layout->addRow(tr("Font:"), font_layout); text_layout->addRow(tr("Misspelled:"), m_misspelled_color); // Create spacing group tab = new QWidget(this); tabs->addTab(tab, tr("Spacings")); QGroupBox* line_spacing = new QGroupBox(tr("Line Spacing"), tab); m_line_spacing_type = new QComboBox(line_spacing); m_line_spacing_type->setEditable(false); m_line_spacing_type->addItems(QStringList() << tr("Single") << tr("1.5 Lines") << tr("Double") << tr("Proportional")); m_line_spacing_type->setCurrentIndex(3); m_line_spacing = new QSpinBox(line_spacing); m_line_spacing->setSuffix(QLocale().percent()); m_line_spacing->setRange(85, 1000); m_line_spacing->setValue(m_theme.lineSpacing()); m_line_spacing->setEnabled(false); switch (m_theme.lineSpacing()) { case 100: m_line_spacing_type->setCurrentIndex(0); break; case 150: m_line_spacing_type->setCurrentIndex(1); break; case 200: m_line_spacing_type->setCurrentIndex(2); break; default: m_line_spacing->setEnabled(true); break; } connect(m_line_spacing_type, SIGNAL(currentIndexChanged(int)), this, SLOT(lineSpacingChanged(int))); connect(m_line_spacing_type, SIGNAL(currentIndexChanged(int)), this, SLOT(renderPreview())); connect(m_line_spacing, SIGNAL(valueChanged(int)), this, SLOT(renderPreview())); QGroupBox* paragraph_spacing = new QGroupBox(tr("Paragraph Spacing"), tab); m_indent_first_line = new QCheckBox(tab); m_indent_first_line->setChecked(m_theme.indentFirstLine()); connect(m_indent_first_line, SIGNAL(toggled(bool)), this, SLOT(renderPreview())); m_spacing_above_paragraph = new QSpinBox(paragraph_spacing); m_spacing_above_paragraph->setRange(0, 1000); m_spacing_above_paragraph->setValue(m_theme.spacingAboveParagraph()); connect(m_spacing_above_paragraph, SIGNAL(valueChanged(int)), this, SLOT(renderPreview())); m_spacing_below_paragraph = new QSpinBox(paragraph_spacing); m_spacing_below_paragraph->setRange(0, 1000); m_spacing_below_paragraph->setValue(m_theme.spacingBelowParagraph()); connect(m_spacing_below_paragraph, SIGNAL(valueChanged(int)), this, SLOT(renderPreview())); QHBoxLayout* line_spacing_layout = new QHBoxLayout(line_spacing); line_spacing_layout->addWidget(m_line_spacing_type); line_spacing_layout->addWidget(m_line_spacing); line_spacing_layout->addStretch(); QFormLayout* paragraph_spacing_layout = new QFormLayout(paragraph_spacing); paragraph_spacing_layout->addRow(tr("Indent First Line:"), m_indent_first_line); paragraph_spacing_layout->addRow(tr("Pixels Above:"), m_spacing_above_paragraph); paragraph_spacing_layout->addRow(tr("Pixels Below:"), m_spacing_below_paragraph); QVBoxLayout* spacing_layout = new QVBoxLayout(tab); spacing_layout->addWidget(line_spacing); spacing_layout->addWidget(paragraph_spacing); spacing_layout->addStretch(); #if (QT_VERSION < QT_VERSION_CHECK(4,8,0)) line_spacing->hide(); #endif // Create preview m_preview_background = new QLabel; m_preview_text = new QTextEdit(m_preview_background); m_preview_text->setGeometry(20, 20, 160, 110); m_preview_text->setFrameStyle(QFrame::NoFrame); m_preview_text->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); m_preview_text->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); m_preview = new QLabel(this); m_preview->setAlignment(Qt::AlignCenter); renderPreview(); // Lay out dialog QDialogButtonBox* buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, this); m_ok = buttons->button(QDialogButtonBox::Ok); connect(buttons, SIGNAL(accepted()), this, SLOT(accept())); connect(buttons, SIGNAL(rejected()), this, SLOT(reject())); QHBoxLayout* contents_layout = new QHBoxLayout; contents_layout->setMargin(0); contents_layout->addWidget(tabs); contents_layout->addWidget(m_preview); QVBoxLayout* layout = new QVBoxLayout(this); layout->setSpacing(12); layout->addLayout(name_layout); layout->addLayout(contents_layout); layout->addWidget(buttons); } //----------------------------------------------------------------------------- ThemeDialog::~ThemeDialog() { delete m_preview_background; } //----------------------------------------------------------------------------- void ThemeDialog::createPreview(const QString& name) { Theme theme(name); ThemeDialog dialog(theme); dialog.savePreview(); } //----------------------------------------------------------------------------- void ThemeDialog::accept() { m_theme.setName(m_name->text()); m_theme.setBackgroundType(m_background_type->currentIndex()); m_theme.setBackgroundColor(m_background_color->color()); m_theme.setBackgroundImage(m_background_image->toString()); m_theme.setForegroundColor(m_foreground_color->color()); m_theme.setForegroundOpacity(m_foreground_opacity->value()); m_theme.setForegroundWidth(m_foreground_width->value()); m_theme.setForegroundRounding(m_foreground_rounding->value()); m_theme.setForegroundMargin(m_foreground_margin->value()); m_theme.setForegroundPadding(m_foreground_padding->value()); m_theme.setForegroundPosition(m_foreground_position->currentIndex()); m_theme.setTextColor(m_text_color->color()); QFont font = m_font_names->currentFont(); font.setPointSizeF(m_font_sizes->currentText().toDouble()); m_theme.setTextFont(font); m_theme.setMisspelledColor(m_misspelled_color->color()); m_theme.setIndentFirstLine(m_indent_first_line->isChecked()); m_theme.setLineSpacing(m_line_spacing->value()); m_theme.setSpacingAboveParagraph(m_spacing_above_paragraph->value()); m_theme.setSpacingBelowParagraph(m_spacing_below_paragraph->value()); savePreview(); QDialog::accept(); } //----------------------------------------------------------------------------- void ThemeDialog::checkNameAvailable() { QString name = m_name->text(); bool empty = name.isEmpty(); bool changed = (name != m_theme.name()); bool exists = QFile::exists(Theme::filePath(name)); m_ok->setEnabled(!changed || (!empty && !exists)); } //----------------------------------------------------------------------------- void ThemeDialog::fontChanged() { QFontDatabase db; QFont font = m_font_names->currentFont(); QList font_sizes = db.smoothSizes(font.family(), QString()); if (font_sizes.isEmpty()) { font_sizes = db.standardSizes(); } qreal font_size = m_font_sizes->currentText().toDouble(); if (font_size < 0.1) { font_size = qRound(m_theme.textFont().pointSizeF() * 10.0) * 0.1; } m_font_sizes->blockSignals(true); m_font_sizes->clear(); int index = 0; for (int i = 0; i < font_sizes.count(); ++i) { int size = font_sizes.at(i); if (size <= font_size) { index = i; } m_font_sizes->addItem(QString::number(size)); } m_font_sizes->setCurrentIndex(index); m_font_sizes->setEditText(QString::number(font_size)); m_font_sizes->setValidator(new QDoubleValidator(font_sizes.first(), font_sizes.last(), 1, m_font_sizes)); m_font_sizes->blockSignals(false); } //----------------------------------------------------------------------------- void ThemeDialog::imageChanged() { if (!m_background_image->image().isEmpty()) { if (m_background_type->currentIndex() == 0) { m_background_type->setCurrentIndex(5); } } else { m_background_type->setCurrentIndex(0); } renderPreview(); } //----------------------------------------------------------------------------- void ThemeDialog::lineSpacingChanged(int index) { switch (index) { case 0: m_line_spacing->setValue(100); m_line_spacing->setEnabled(false); break; case 1: m_line_spacing->setValue(150); m_line_spacing->setEnabled(false); break; case 2: m_line_spacing->setValue(200); m_line_spacing->setEnabled(false); break; default: m_line_spacing->setEnabled(true); break; } } //----------------------------------------------------------------------------- void ThemeDialog::renderPreview() { QPixmap preview(":/shadow.png"); { // Set up painter inside of shadow QPainter painter(&preview); painter.translate(9, 6); painter.setClipRect(0, 0, 200, 150); // Create background, zoomed to fit preview image int type = m_background_type->currentIndex(); m_clear_image->setEnabled(m_background_image->isEnabled() && !m_background_image->image().isEmpty()); QRect rect = QApplication::desktop()->screenGeometry(); QImage background = Theme::renderBackground(m_background_image->image(), type, m_background_color->color(), rect.size()); background = background.scaled(200, 150, Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation); background = background.copy((background.width() - 200) / 2, (background.height() - 150) / 2, 200, 150); m_preview_background->setPixmap(QPixmap::fromImage(background)); // Set up colors QColor color = m_foreground_color->color(); color.setAlpha(m_foreground_opacity->value() * 2.55f); QColor text_color = m_text_color->color(); text_color.setAlpha(255); QString contrast = (qGray(text_color.rgb()) > 127) ? "black" : "white"; m_preview_text->clear(); m_preview_text->setStyleSheet( QString("QTextEdit { background:rgba(%1,%2,%3,%4); color:rgba(%5,%6,%7,%8); selection-background-color:%9; selection-color:%10; padding:%11px; border-radius:%12px; }") .arg(color.red()) .arg(color.green()) .arg(color.blue()) .arg(color.alpha()) .arg(text_color.red()) .arg(text_color.green()) .arg(text_color.blue()) .arg(text_color.alpha()) .arg(text_color.name()) .arg(contrast) .arg(m_foreground_padding->value()) .arg(m_foreground_rounding->value()) ); // Set up spacings QTextBlockFormat block_format; #if (QT_VERSION >= QT_VERSION_CHECK(4,8,0)) block_format.setLineHeight(m_line_spacing->value(), (m_line_spacing->value() == 100) ? QTextBlockFormat::SingleHeight : QTextBlockFormat::ProportionalHeight); #endif block_format.setTextIndent(48 * m_indent_first_line->isChecked()); block_format.setTopMargin(m_spacing_above_paragraph->value()); block_format.setBottomMargin(m_spacing_below_paragraph->value()); m_preview_text->textCursor().mergeBlockFormat(block_format); // Set up text QFont font = m_font_names->currentFont(); font.setPointSizeF(m_font_sizes->currentText().toDouble()); m_preview_text->setFont(font); m_preview_text->append(tr("The quick brown fox jumps over the lazy dog")); // Create preview pixmap m_preview_background->render(&painter); } m_preview->setPixmap(preview); } //----------------------------------------------------------------------------- void ThemeDialog::savePreview() { if (m_preview->pixmap()) { m_preview->pixmap()->save(Theme::iconPath(m_theme.name())); } else { qWarning("Theme preview was not created."); } } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/theme_dialog.h000066400000000000000000000044571231434177300174750ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010, 2011, 2012, 2013 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef THEME_DIALOG_H #define THEME_DIALOG_H class ColorButton; class FontComboBox; class ImageButton; class Theme; #include class QCheckBox; class QComboBox; class QFrame; class QLabel; class QLineEdit; class QPushButton; class QSpinBox; class QTextEdit; class ThemeDialog : public QDialog { Q_OBJECT public: ThemeDialog(Theme& theme, QWidget* parent = 0); ~ThemeDialog(); static void createPreview(const QString& name); public slots: virtual void accept(); private slots: void checkNameAvailable(); void fontChanged(); void imageChanged(); void lineSpacingChanged(int index); void renderPreview(); private: void savePreview(); private: Theme& m_theme; QLineEdit* m_name; QPushButton* m_ok; QLabel* m_preview; QLabel* m_preview_background; QTextEdit* m_preview_text; QComboBox* m_background_type; ColorButton* m_background_color; ImageButton* m_background_image; QPushButton* m_clear_image; ColorButton* m_foreground_color; QSpinBox* m_foreground_opacity; QSpinBox* m_foreground_width; QSpinBox* m_foreground_rounding; QSpinBox* m_foreground_margin; QSpinBox* m_foreground_padding; QComboBox* m_foreground_position; ColorButton* m_text_color; FontComboBox* m_font_names; QComboBox* m_font_sizes; ColorButton* m_misspelled_color; QCheckBox* m_indent_first_line; QComboBox* m_line_spacing_type; QSpinBox* m_line_spacing; QSpinBox* m_spacing_above_paragraph; QSpinBox* m_spacing_below_paragraph; }; #endif focuswriter-1.4.5/src/theme_manager.cpp000066400000000000000000000225721231434177300202010ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010, 2012, 2014 Graeme Gott * * 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 . * ***********************************************************************/ #include "theme_manager.h" #include "gzip.h" #include "session.h" #include "theme.h" #include "theme_dialog.h" #include #include #include #include #include #include #include #include #include #include #include #include #include //----------------------------------------------------------------------------- ThemeManager::ThemeManager(QSettings& settings, QWidget* parent) : QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint), m_settings(settings) { setWindowTitle(tr("Themes")); // Add themes list m_themes = new QListWidget(this); m_themes->setSortingEnabled(true); m_themes->setViewMode(QListView::IconMode); m_themes->setIconSize(QSize(218, 168)); m_themes->setMovement(QListView::Static); m_themes->setResizeMode(QListView::Adjust); m_themes->setSelectionMode(QAbstractItemView::SingleSelection); m_themes->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel); m_themes->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); m_themes->setMinimumSize(250, 250); m_themes->setWordWrap(true); QStringList themes = QDir(Theme::path(), "*.theme").entryList(QDir::Files, QDir::Name | QDir::IgnoreCase); foreach (const QString& theme, themes) { addItem(QUrl::fromPercentEncoding(QFileInfo(theme).baseName().toUtf8())); } QList items = m_themes->findItems(m_settings.value("ThemeManager/Theme").toString(), Qt::MatchExactly); if (!items.isEmpty()) { m_themes->setCurrentItem(items.first()); } connect(m_themes, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), this, SLOT(currentThemeChanged(QListWidgetItem*))); connect(m_themes, SIGNAL(itemActivated(QListWidgetItem*)), this, SLOT(modifyTheme())); // Add control buttons QPushButton* add_button = new QPushButton(tr("Add"), this); add_button->setAutoDefault(false); connect(add_button, SIGNAL(clicked()), this, SLOT(addTheme())); QPushButton* edit_button = new QPushButton(tr("Modify"), this); edit_button->setAutoDefault(false); connect(edit_button, SIGNAL(clicked()), this, SLOT(modifyTheme())); m_remove_button = new QPushButton(tr("Remove"), this); m_remove_button->setAutoDefault(false); connect(m_remove_button, SIGNAL(clicked()), this, SLOT(removeTheme())); QPushButton* import_button = new QPushButton(tr("Import"), this); import_button->setAutoDefault(false); connect(import_button, SIGNAL(clicked()), this, SLOT(importTheme())); QPushButton* export_button = new QPushButton(tr("Export"), this); export_button->setAutoDefault(false); connect(export_button, SIGNAL(clicked()), this, SLOT(exportTheme())); QPushButton* close_button = new QPushButton(tr("Close"), this); close_button->setAutoDefault(false); connect(close_button, SIGNAL(clicked()), this, SLOT(accept())); // Lay out dialog QVBoxLayout* buttons_layout = new QVBoxLayout; buttons_layout->setMargin(0); buttons_layout->addWidget(add_button); buttons_layout->addWidget(edit_button); buttons_layout->addWidget(m_remove_button); buttons_layout->addSpacing(import_button->sizeHint().height()); buttons_layout->addWidget(import_button); buttons_layout->addWidget(export_button); buttons_layout->addStretch(); buttons_layout->addWidget(close_button); QHBoxLayout* layout = new QHBoxLayout(this); layout->addWidget(m_themes); layout->addLayout(buttons_layout); // Restore size resize(m_settings.value("ThemeManager/Size", QSize(630, 450)).toSize()); } //----------------------------------------------------------------------------- void ThemeManager::hideEvent(QHideEvent* event) { QList items = m_themes->selectedItems(); QString selected = !items.isEmpty() ? items.first()->text() : QString(); if (!selected.isEmpty()) { m_settings.setValue("ThemeManager/Theme", selected); } m_settings.setValue("ThemeManager/Size", size()); QDialog::hideEvent(event); } //----------------------------------------------------------------------------- void ThemeManager::addTheme() { QString name; { Theme theme; ThemeDialog dialog(theme, this); if (dialog.exec() == QDialog::Rejected) { return; } name = theme.name(); } addItem(name); m_remove_button->setEnabled(true); } //----------------------------------------------------------------------------- void ThemeManager::modifyTheme() { QListWidgetItem* item = m_themes->currentItem(); if (!item) { return; } QString name; { Theme theme(item->text()); ThemeDialog dialog(theme, this); if (dialog.exec() == QDialog::Rejected) { return; } name = theme.name(); } if (name == item->text()) { item->setIcon(QIcon(Theme::iconPath(name))); emit themeSelected(name); } else { delete item; item = 0; addItem(name); } } //----------------------------------------------------------------------------- void ThemeManager::removeTheme() { QListWidgetItem* item = m_themes->currentItem(); if (!item) { return; } if (QMessageBox::question(this, tr("Question"), tr("Remove selected theme?"), QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) { QFile::remove(Theme::filePath(item->text())); QFile::remove(Theme::iconPath(item->text())); delete item; item = 0; // Create default theme if all themes are removed if (m_themes->count() == 0) { Theme theme; theme.setName(Session::tr("Default")); addItem(theme.name()); m_remove_button->setDisabled(true); } } } //----------------------------------------------------------------------------- void ThemeManager::importTheme() { // Find file to import QString filename = QFileDialog::getOpenFileName(this, tr("Import Theme"), QDir::homePath(), tr("Themes (*.fwtz *.theme)")); if (filename.isEmpty()) { return; } // Find theme name QString name = QUrl::fromPercentEncoding(QFileInfo(filename).baseName().toUtf8()); while (QFile::exists(Theme::filePath(name))) { bool ok; name = QInputDialog::getText(this, tr("Sorry"), tr("A theme already exists with that name. Please enter a new name:"), QLineEdit::Normal, name, &ok); if (!ok) { return; } } // Uncompress theme QString theme_filename = Theme::filePath(name); QByteArray theme = gunzip(filename); { QFile file(theme_filename); if (file.open(QFile::WriteOnly)) { file.write(theme); file.close(); } } // Extract and use background image QSettings settings(theme_filename, QSettings::IniFormat); QByteArray data = QByteArray::fromBase64(settings.value("Data/Image").toByteArray()); QString image_file = settings.value("Background/ImageFile").toString(); settings.remove("Background/ImageFile"); settings.remove("Data/Image"); settings.sync(); if (!data.isEmpty()) { QTemporaryFile file(QDir::tempPath() + "/XXXXXX-" + image_file); if (file.open()) { file.write(data); file.close(); } Theme theme(name); theme.setBackgroundImage(file.fileName()); } settings.sync(); settings.remove("Background/Image"); addItem(name); } //----------------------------------------------------------------------------- void ThemeManager::exportTheme() { QListWidgetItem* item = m_themes->currentItem(); if (!item) { return; } // Find export file name QString filename = QFileDialog::getSaveFileName(this, tr("Export Theme"), QDir::homePath() + "/" + item->text() + ".fwtz", tr("Themes (*.fwtz)")); if (filename.isEmpty()) { return; } if (!filename.endsWith(".fwtz")) { filename += ".fwtz"; } // Copy theme QFile::remove(filename); QFile::copy(Theme::filePath(item->text()), filename); // Store image in export file { QSettings settings(filename, QSettings::IniFormat); settings.remove("Background/Image"); QString image = settings.value("Background/ImageFile").toString(); if (!image.isEmpty()) { QFile file(Theme::path() + "/Images/" + image); if (file.open(QFile::ReadOnly)) { settings.setValue("Data/Image", file.readAll().toBase64()); file.close(); } } } // Compress theme gzip(filename); } //----------------------------------------------------------------------------- void ThemeManager::currentThemeChanged(QListWidgetItem* current) { if (current) { emit themeSelected(current->text()); } } //----------------------------------------------------------------------------- void ThemeManager::addItem(const QString& name) { QString icon = Theme::iconPath(name); if (!QFile::exists(icon)) { ThemeDialog::createPreview(name); } QListWidgetItem* item = new QListWidgetItem(QIcon(icon), name, m_themes); m_themes->setCurrentItem(item); } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/theme_manager.h000066400000000000000000000030171231434177300176370ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2009, 2010, 2014 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef THEME_MANAGER_H #define THEME_MANAGER_H class Theme; #include class QListWidget; class QListWidgetItem; class QSettings; class ThemeManager : public QDialog { Q_OBJECT public: ThemeManager(QSettings& settings, QWidget* parent = 0); signals: void themeSelected(const Theme& theme); protected: virtual void hideEvent(QHideEvent* event); private slots: void addTheme(); void modifyTheme(); void removeTheme(); void importTheme(); void exportTheme(); void currentThemeChanged(QListWidgetItem* current); private: void addItem(const QString& name); private: QListWidget* m_themes; QSettings& m_settings; QPushButton* m_remove_button; }; #endif focuswriter-1.4.5/src/timer.cpp000066400000000000000000000375441231434177300165320ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010 Graeme Gott * * 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 . * ***********************************************************************/ #include "timer.h" #include "alert.h" #include "alert_layer.h" #include "document.h" #include "deltas.h" #include "stack.h" #include #include #include #include #include #include #include #include #include #include #include #include //----------------------------------------------------------------------------- namespace { QTime removeMSecs(const QTime& time) { return QTime(time.hour(), time.minute(), time.second()); } QDateTime removeMSecs(const QDateTime& datetime) { return QDateTime(datetime.date(), removeMSecs(datetime.time())); } } //----------------------------------------------------------------------------- Timer::Timer(Stack* documents, QWidget* parent) : QFrame(parent), m_type(0), m_started(false), m_finished(false), m_documents(documents) { init(); // Set default delay m_delay_edit->setTime(QTime(0, 15)); } //----------------------------------------------------------------------------- Timer::Timer(int type, const QStringList& values, Stack* documents, QWidget* parent) : QFrame(parent), m_type(type), m_started(false), m_finished(false), m_documents(documents) { init(); // Set default values QTime time = QTime::fromString(values.value(0), Qt::ISODate); m_type_box->setCurrentIndex(m_type); if (m_type == 0) { m_delay_edit->setTime(time); } else { m_end_edit->setTime(time); } m_memo_edit->setText(values.value(1)); // Start timer editAccepted(); } //----------------------------------------------------------------------------- Timer::Timer(const QString& id, Stack* documents, QWidget* parent) : QFrame(parent), m_id(id), m_started(false), m_finished(false), m_documents(documents) { init(); QSettings settings; settings.beginGroup("Timers"); // Load values QStringList values = settings.value(m_id).toStringList(); m_type = values.value(0).toInt(); QDateTime start = removeMSecs(QDateTime::fromString(values.value(1), Qt::ISODate)); QDateTime end = removeMSecs(QDateTime::fromString(values.value(2), Qt::ISODate)); QString memo = values.value(3); QDateTime current = QDateTime::currentDateTime(); if (start.isNull() || end.isNull() || start > end || start > current || end < current || start.daysTo(end) > 1) { remove(); return; } if (values.count() == 9) { m_character_count = values[4].toInt(); m_character_and_space_count = values[5].toInt(); m_page_count = values[6].toInt(); m_paragraph_count = values[7].toInt(); m_word_count = values[8].toInt(); } // Set editor values m_end_edit->setTime(end.time()); m_type_box->setCurrentIndex(m_type); m_memo_edit->setText(memo); // Start timer m_start = removeMSecs(start); startTimer(); } //----------------------------------------------------------------------------- Timer::~Timer() { if (m_started && !m_finished) { save(); } qDeleteAll(m_deltas); m_deltas.clear(); } //----------------------------------------------------------------------------- bool Timer::isEditing() const { return m_edit->isVisible(); } //----------------------------------------------------------------------------- bool Timer::isRunning() const { return m_timer->isActive(); } //----------------------------------------------------------------------------- QString Timer::memo() const { return m_memo; } //----------------------------------------------------------------------------- QString Timer::memoShort() const { return m_memo_short; } //----------------------------------------------------------------------------- int Timer::msecsFrom(const QDateTime& start) const { if (start.date() == m_end.date()) { return start.time().msecsTo(m_end.time()) + 1000; } else { return start.time().msecsTo(QTime(23, 59, 59, 999)) + QTime(0, 0).msecsTo(m_end.time()) + 1001; } } //----------------------------------------------------------------------------- int Timer::msecsTotal() const { return m_delay_msecs; } //----------------------------------------------------------------------------- void Timer::cancelEditing() { if (isEditing()) { editRejected(); } } //----------------------------------------------------------------------------- void Timer::save() { QSettings settings; settings.beginGroup("Timers"); // Find ID if (m_id.isEmpty()) { int i = 1; forever { QString timer_id = QString("Timer%1").arg(i); if (settings.contains(timer_id)) { i++; } else { m_id = timer_id; break; } } } // Find stats updateCounts(); // Write timer QStringList values; values.append(QString::number(m_type)); values.append(m_start.toString(Qt::ISODate)); values.append(m_end.toString(Qt::ISODate)); values.append(m_memo); values.append(QString::number(m_character_count)); values.append(QString::number(m_character_and_space_count)); values.append(QString::number(m_page_count)); values.append(QString::number(m_paragraph_count)); values.append(QString::number(m_word_count)); settings.setValue(m_id, values); } //----------------------------------------------------------------------------- bool Timer::operator<=(const Timer& timer) const { return m_end <= timer.m_end; } //----------------------------------------------------------------------------- QString Timer::toString(const QString& time, const QString& memo) { if (!memo.isEmpty()) { return tr("%1 - %2").arg(time.simplified()).arg(memo); } else { return QLatin1String("") + time.simplified() + QLatin1String(""); } } //----------------------------------------------------------------------------- void Timer::delayChanged(const QTime& delay) { QTime end = removeMSecs(QTime::currentTime()).addSecs(QTime(0,0,0).secsTo(delay)); m_end_edit->blockSignals(true); m_end_edit->setTime(end); m_end_edit->blockSignals(false); } //----------------------------------------------------------------------------- void Timer::endChanged(const QTime& end) { QTime delay = QTime(0,0,0).addSecs(removeMSecs(QTime::currentTime()).secsTo(end)); m_delay_edit->blockSignals(true); m_delay_edit->setTime(delay); m_delay_edit->blockSignals(false); } //----------------------------------------------------------------------------- void Timer::editAccepted() { m_type = m_type_box->currentIndex(); if (!startTimer()) { return editRejected(); } QSettings settings; settings.beginGroup("Timers"); // Prepend values to recent list QString key = QString("Recent%1").arg(m_type); QStringList recent = settings.value(key).toStringList(); QString defaults = ((m_type == 0) ? m_delay_edit : m_end_edit)->time().toString(Qt::ISODate)+ " " + m_memo; recent.removeAll(defaults); recent.prepend(defaults); while (recent.count() > 5) { recent.removeLast(); } settings.setValue(key, recent); save(); emit changed(this); } //----------------------------------------------------------------------------- void Timer::editRejected() { m_edit->hide(); if (!m_started) { remove(); } else if (m_end < QDateTime::currentDateTime()) { timerFinished(); } else { setMode(false); m_type_box->setCurrentIndex(m_type); m_delay_edit->setTime(m_delay); m_end_edit->setTime(m_end.time()); m_memo_edit->setText(m_memo); } } //----------------------------------------------------------------------------- void Timer::editClicked() { endChanged(m_end_edit->time()); setMode(true); emit edited(this); } //----------------------------------------------------------------------------- void Timer::removeClicked() { if (QMessageBox::question(this, tr("Question"), tr("Delete timer?"), QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) { remove(); } } //----------------------------------------------------------------------------- void Timer::timerFinished() { if (!isEditing()) { updateCounts(); qDeleteAll(m_deltas); m_deltas.clear(); QStringList details; details << tr("Words: %L1").arg(m_word_count); details << tr("Pages: %L1").arg(m_page_count); details << tr("Paragraphs: %L1").arg(m_paragraph_count); details << tr("Characters: %L1 / %L2").arg(m_character_count).arg(m_character_and_space_count); remove(); m_documents->alerts()->addAlert(new Alert(Alert::NoIcon, m_display_label->text(), details, true)); } } //----------------------------------------------------------------------------- void Timer::documentAdded(Document* document) { m_deltas.insert(document, new Deltas(document)); } //----------------------------------------------------------------------------- void Timer::documentRemoved(Document* document) { Deltas* delta = m_deltas.take(document); m_character_count += delta->characterCount(); m_character_and_space_count += delta->characterAndSpaceCount(); m_page_count += delta->pageCount(); m_paragraph_count += delta->paragraphCount(); m_word_count += delta->wordCount(); delete delta; } //----------------------------------------------------------------------------- void Timer::init() { m_delay_msecs = 0; m_character_count = 0; m_character_and_space_count = 0; m_page_count = 0; m_paragraph_count = 0; m_word_count = 0; setFrameStyle(QFrame::StyledPanel | QFrame::Raised); // Create edit widgets m_edit = new QWidget(this); m_type_box = new QComboBox(m_edit); m_type_box->addItem(tr("Set Delay")); m_type_box->addItem(tr("Set Time")); QStackedWidget* time_labels = new QStackedWidget(this); QLabel* label = new QLabel(tr("Delay:"), time_labels); label->setAlignment(Qt::AlignRight | Qt::AlignVCenter); time_labels->addWidget(label); label = new QLabel(tr("Time:"), time_labels); label->setAlignment(Qt::AlignRight | Qt::AlignVCenter); time_labels->addWidget(label); connect(m_type_box, SIGNAL(currentIndexChanged(int)), time_labels, SLOT(setCurrentIndex(int))); QStackedWidget* time_edits = new QStackedWidget(this); connect(m_type_box, SIGNAL(currentIndexChanged(int)), time_edits, SLOT(setCurrentIndex(int))); m_delay_edit = new QTimeEdit(time_edits); m_delay_edit->setDisplayFormat(tr("HH:mm:ss")); m_delay_edit->setCurrentSection(QDateTimeEdit::MinuteSection); m_delay_edit->setWrapping(true); time_edits->addWidget(m_delay_edit); connect(m_delay_edit, SIGNAL(timeChanged(QTime)), this, SLOT(delayChanged(QTime))); m_end_edit = new QTimeEdit(time_edits); m_end_edit->setDisplayFormat(QLocale().timeFormat(QLocale::LongFormat).contains("AP", Qt::CaseInsensitive) ? "h:mm:ss AP" : "HH:mm:ss"); m_end_edit->setCurrentSection(QDateTimeEdit::MinuteSection); m_end_edit->setWrapping(true); time_edits->addWidget(m_end_edit); connect(m_end_edit, SIGNAL(timeChanged(QTime)), this, SLOT(endChanged(QTime))); m_memo_edit = new QLineEdit(tr("Alarm"), m_edit); m_memo_edit->setMaxLength(140); QDialogButtonBox* edit_buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, m_edit); m_ok_button = edit_buttons->button(QDialogButtonBox::Ok); m_ok_button->setDefault(true); connect(edit_buttons, SIGNAL(accepted()), this, SLOT(editAccepted())); connect(edit_buttons, SIGNAL(rejected()), this, SLOT(editRejected())); // Lay out edit widgets QGridLayout* edit_layout = new QGridLayout(m_edit); edit_layout->setMargin(0); edit_layout->setColumnStretch(1, 1); edit_layout->addWidget(new QLabel(tr("Type:"), m_edit), 0, 0, Qt::AlignRight | Qt::AlignVCenter); edit_layout->addWidget(m_type_box, 0, 1, Qt::AlignLeft | Qt::AlignVCenter); edit_layout->addWidget(time_labels, 1, 0, Qt::AlignRight | Qt::AlignVCenter); edit_layout->addWidget(time_edits, 1, 1, Qt::AlignLeft | Qt::AlignVCenter); edit_layout->addWidget(new QLabel(tr("Memo:"), m_edit), 2, 0, Qt::AlignRight | Qt::AlignVCenter); edit_layout->addWidget(m_memo_edit, 2, 1); edit_layout->addWidget(edit_buttons, 3, 0, 1, 2); // Create display widgets m_display = new QWidget(this); m_display_label = new QLabel(m_display); m_display_label->setWordWrap(true); QDialogButtonBox* display_buttons = new QDialogButtonBox(Qt::Horizontal, m_display); m_edit_button = display_buttons->addButton(tr("Edit"), QDialogButtonBox::AcceptRole); m_edit_button->setDefault(true); display_buttons->addButton(tr("Delete"), QDialogButtonBox::RejectRole); connect(display_buttons, SIGNAL(accepted()), this, SLOT(editClicked())); connect(display_buttons, SIGNAL(rejected()), this, SLOT(removeClicked())); // Lay out display widgets QVBoxLayout* display_layout = new QVBoxLayout(m_display); display_layout->setMargin(0); display_layout->addWidget(m_display_label); display_layout->addWidget(display_buttons); // Lay out window QVBoxLayout* layout = new QVBoxLayout(this); layout->addWidget(m_edit); layout->addWidget(m_display); // Add timer m_timer = new QTimer(this); m_timer->setSingleShot(true); connect(m_timer, SIGNAL(timeout()), this, SLOT(timerFinished())); // Show edit widgets by default setMode(true); } //----------------------------------------------------------------------------- void Timer::remove() { m_finished = true; if (!m_id.isEmpty()) { QSettings().remove("Timers/" + m_id); } if (m_timer->isActive()) { m_timer->stop(); } deleteLater(); } //----------------------------------------------------------------------------- void Timer::setMode(bool edit) { if (edit) { m_display->hide(); m_edit->show(); m_ok_button->setFocus(); } else { m_edit->hide(); m_display->show(); m_edit_button->setFocus(); } } //----------------------------------------------------------------------------- bool Timer::startTimer() { // Don't restart unchanged timers if (m_timer->isActive() && m_end.time() == m_end_edit->time()) { setMode(false); return false; } // Setup timer, making sure to ignore milliseconds m_delay = m_delay_edit->time(); QDateTime start = removeMSecs(QDateTime::currentDateTime()); if (!m_start.isValid()) { m_start = start; } if (m_type == 0) { m_end = start.addSecs(QTime(0,0,0).secsTo(m_delay)); } else { m_end.setTime(m_end_edit->time()); m_end.setDate((m_end.time() > start.time()) ? start.date() : start.date().addDays(1)); } m_end_edit->setTime(m_end.time()); m_timer->start((start.secsTo(m_end) * 1000) - QTime::currentTime().msec()); // Show values m_memo = m_memo_edit->text().simplified(); m_memo.truncate(140); m_memo_short = fontMetrics().elidedText(m_memo, Qt::ElideRight, 300); m_delay_msecs = m_start.secsTo(m_end) * 1000; m_display_label->setText(toString(m_end.time().toString(Qt::DefaultLocaleLongDate), m_memo)); setMode(false); // Create document deltas if (m_deltas.isEmpty()) { int count = m_documents->count(); for (int i = 0; i < count; ++i) { Document* document = m_documents->document(i); m_deltas.insert(document, new Deltas(document)); } } m_started = true; return true; } //----------------------------------------------------------------------------- void Timer::updateCounts() { QList deltas = m_deltas.values(); foreach (Deltas* delta, deltas) { m_character_count += delta->characterCount(); m_character_and_space_count += delta->characterAndSpaceCount(); m_page_count += delta->pageCount(); m_paragraph_count += delta->paragraphCount(); m_word_count += delta->wordCount(); delta->refresh(); } } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/timer.h000066400000000000000000000053671231434177300161750ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef TIMER_H #define TIMER_H class Document; class Deltas; class Stack; #include #include #include #include class QComboBox; class QLabel; class QLineEdit; class QPushButton; class QTimeEdit; class QTimer; class Timer : public QFrame { Q_OBJECT public: Timer(Stack* documents, QWidget* parent = 0); Timer(int type, const QStringList& values, Stack* documents, QWidget* parent = 0); Timer(const QString& id, Stack* documents, QWidget* parent = 0); ~Timer(); bool isEditing() const; bool isRunning() const; QString memo() const; QString memoShort() const; int msecsFrom(const QDateTime& start) const; int msecsTotal() const; void cancelEditing(); void save(); bool operator<=(const Timer& timer) const; static QString toString(const QString& time, const QString& memo); signals: void changed(Timer* timer); void edited(Timer* timer); private slots: void delayChanged(const QTime& delay); void endChanged(const QTime& end); void editAccepted(); void editRejected(); void editClicked(); void removeClicked(); void timerFinished(); void documentAdded(Document* document); void documentRemoved(Document* document); private: void init(); void remove(); void setMode(bool edit); bool startTimer(); void updateCounts(); private: QString m_id; QDateTime m_start; QDateTime m_end; QTime m_delay; int m_delay_msecs; QString m_memo; QString m_memo_short; int m_type; bool m_started; bool m_finished; Stack* m_documents; QTimer* m_timer; QHash m_deltas; int m_character_count; int m_character_and_space_count; int m_page_count; int m_paragraph_count; int m_word_count; // Edit widgets QWidget* m_edit; QComboBox* m_type_box; QTimeEdit* m_end_edit; QTimeEdit* m_delay_edit; QLineEdit* m_memo_edit; QPushButton* m_ok_button; // Display widgets QWidget* m_display; QLabel* m_display_label; QPushButton* m_edit_button; }; #endif focuswriter-1.4.5/src/timer_display.cpp000066400000000000000000000113211231434177300202400ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010 Graeme Gott * * 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 . * ***********************************************************************/ #include "timer_display.h" #include "timer.h" #include #include #include #include #include #include //----------------------------------------------------------------------------- TimerDisplay::TimerDisplay(QList& timers, QWidget* parent) : QWidget(parent), m_show_tip(false), m_timer(0), m_timers(timers) { m_size = fontMetrics().height(); m_update_timer = new QTimer(this); m_update_timer->setInterval(40); m_update_timer->start(); connect(m_update_timer, SIGNAL(timeout()), this, SLOT(update())); } //----------------------------------------------------------------------------- void TimerDisplay::setTimer(Timer* timer) { m_timer = timer; if (m_timer) { m_update_timer->start(); } else { m_update_timer->stop(); } update(); } //----------------------------------------------------------------------------- QSize TimerDisplay::minimumSizeHint() const { return QSize(m_size, m_size); } //----------------------------------------------------------------------------- QSize TimerDisplay::sizeHint() const { return QSize(m_size, m_size); } //----------------------------------------------------------------------------- void TimerDisplay::changeEvent(QEvent* event) { if (event->type() == QEvent::FontChange) { m_size = fontMetrics().height(); updateGeometry(); } QWidget::changeEvent(event); } //----------------------------------------------------------------------------- bool TimerDisplay::event(QEvent* event) { if (event->type() == QEvent::ToolTip) { m_show_tip = true; m_tip_pos = static_cast(event)->globalPos(); update(); } return QWidget::event(event); } //----------------------------------------------------------------------------- void TimerDisplay::hideEvent(QHideEvent* event) { m_update_timer->stop(); QWidget::hideEvent(event); } //----------------------------------------------------------------------------- void TimerDisplay::leaveEvent(QEvent* event) { m_show_tip = false; QToolTip::hideText(); QWidget::leaveEvent(event); } //----------------------------------------------------------------------------- void TimerDisplay::mouseReleaseEvent(QMouseEvent* event) { if ((event->button() == Qt::LeftButton) && rect().contains(event->pos())) { emit clicked(); } QWidget::mouseReleaseEvent(event); } //----------------------------------------------------------------------------- void TimerDisplay::paintEvent(QPaintEvent* event) { QWidget::paintEvent(event); QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); QRectF rect(1.5, 1.5, m_size - 3, m_size - 3); if (m_timer) { QDateTime current = QDateTime::currentDateTime(); int degrees = (m_timer->msecsFrom(current) * -5760.0) / m_timer->msecsTotal(); painter.setPen(palette().color(QPalette::WindowText)); painter.drawEllipse(rect); painter.setPen(Qt::NoPen); painter.setBrush(Qt::black); painter.drawPie(rect, 1440, degrees); if (m_show_tip) { QStringList timers; foreach (Timer* timer, m_timers) { if (timer->isRunning()) { int msecs = timer->msecsFrom(current); timers += Timer::toString(QTime().addMSecs(msecs).toString(tr("HH:mm:ss")), timer->memoShort()); } } QString text = QLatin1String("

      ") + timers.join(QLatin1String("\n")) + QLatin1String("

      "); QToolTip::showText(m_tip_pos, text, this, this->rect()); } } else { painter.setPen(palette().color(QPalette::Disabled, QPalette::WindowText)); painter.drawEllipse(rect); if (m_show_tip) { QToolTip::showText(m_tip_pos, tr("No timers running"), this, this->rect()); } } } //----------------------------------------------------------------------------- void TimerDisplay::showEvent(QShowEvent* event) { if (m_timer) { m_update_timer->start(); } QWidget::showEvent(event); } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/timer_display.h000066400000000000000000000032171231434177300177120ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef TIMER_DISPLAY_H #define TIMER_DISPLAY_H class Timer; #include class QDateTime; class QTimer; class TimerDisplay : public QWidget { Q_OBJECT public: TimerDisplay(QList& timers, QWidget* parent = 0); void setTimer(Timer* timer); virtual QSize minimumSizeHint() const; virtual QSize sizeHint() const; signals: void clicked(); protected: virtual void changeEvent(QEvent* event); virtual bool event(QEvent* event); virtual void hideEvent(QHideEvent* event); virtual void leaveEvent(QEvent* event); virtual void mouseReleaseEvent(QMouseEvent* event); virtual void paintEvent(QPaintEvent* event); virtual void showEvent(QShowEvent* event); private: int m_size; bool m_show_tip; QPoint m_tip_pos; QTimer* m_update_timer; Timer* m_timer; QList& m_timers; }; #endif focuswriter-1.4.5/src/timer_manager.cpp000066400000000000000000000242711231434177300202150ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010, 2011 Graeme Gott * * 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 . * ***********************************************************************/ #include "timer_manager.h" #include "stack.h" #include "timer.h" #include "timer_display.h" #include #include #include #include #include #include #include #include #include #include #include #include #include //----------------------------------------------------------------------------- TimerManager::TimerManager(Stack* documents, QWidget* parent) : QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint), m_documents(documents) { setWindowTitle(tr("Timers")); // Set up interaction with timer display m_display = new TimerDisplay(m_timers, this); m_display->setContextMenuPolicy(Qt::CustomContextMenu); connect(m_display, SIGNAL(clicked()), this, SLOT(toggleVisibility())); connect(m_display, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(recentTimerMenuRequested(QPoint))); // Create clock m_clock_label = new QLabel(this); m_clock_label->setAlignment(Qt::AlignCenter); m_clock_timer = new QTimer(this); m_clock_timer->setInterval(1000); connect(m_clock_timer, SIGNAL(timeout()), this, SLOT(updateClock())); startClock(); // Create timers layout QWidget* timers_widget = new QWidget(this); m_timers_layout = new QVBoxLayout(timers_widget); m_timers_layout->addStretch(); m_timers_layout->setSizeConstraint(QLayout::SetMinAndMaxSize); m_timers_area = new QScrollArea(this); m_timers_area->setWidget(timers_widget); m_timers_area->setWidgetResizable(true); // Create action buttons QDialogButtonBox* buttons = new QDialogButtonBox(QDialogButtonBox::Close, Qt::Horizontal, this); connect(buttons, SIGNAL(rejected()), this, SLOT(close())); m_new_button = buttons->addButton(tr("New"), QDialogButtonBox::ActionRole); m_new_button->setDefault(true); connect(m_new_button, SIGNAL(clicked()), this, SLOT(newTimer())); m_recent_timers = new QMenu(this); m_recent_button = buttons->addButton(tr("Recent"), QDialogButtonBox::ActionRole); m_recent_button->setMenu(m_recent_timers); setupRecentMenu(); connect(m_recent_timers, SIGNAL(triggered(QAction*)), this, SLOT(recentTimer(QAction*))); // Lay out window QVBoxLayout* layout = new QVBoxLayout(this); layout->addWidget(m_clock_label); layout->addWidget(m_timers_area, 1); layout->addWidget(buttons); setMinimumHeight(sizeHint().width()); QSettings settings; settings.beginGroup("Timers"); resize(settings.value("DialogSize").toSize()); // Load currently running timers QStringList ids = settings.childKeys(); foreach (const QString& id, ids) { int i = id.mid(5).toInt(); if (!id.startsWith("Timer") || i == 0) { continue; } Timer* timer = new Timer(id, m_documents, this); addTimer(timer); timerChanged(timer); } m_new_button->setFocus(); } //----------------------------------------------------------------------------- bool TimerManager::cancelEditing() { bool check = false; foreach (Timer* timer, m_timers) { check |= timer->isEditing(); } if (check) { if (QMessageBox::question(this, tr("Question"), tr("Cancel editing timers?"), QMessageBox::Yes | QMessageBox::No, QMessageBox::No) == QMessageBox::No) { return false; } else { foreach (Timer* timer, m_timers) { timer->cancelEditing(); } } } return true; } //----------------------------------------------------------------------------- TimerDisplay* TimerManager::display() const { return m_display; } //----------------------------------------------------------------------------- void TimerManager::saveTimers() { foreach (Timer* timer, m_timers) { timer->save(); } } //----------------------------------------------------------------------------- void TimerManager::closeEvent(QCloseEvent* event) { if (cancelEditing()) { QSettings().setValue("Timers/DialogSize", size()); m_new_button->setFocus(); event->accept(); } else { event->ignore(); } } //----------------------------------------------------------------------------- void TimerManager::hideEvent(QHideEvent* event) { m_clock_timer->stop(); QDialog::hideEvent(event); } //----------------------------------------------------------------------------- void TimerManager::showEvent(QShowEvent* event) { startClock(); QDialog::showEvent(event); } //----------------------------------------------------------------------------- void TimerManager::newTimer() { Timer* timer = new Timer(m_documents, this); addTimer(timer); } //----------------------------------------------------------------------------- void TimerManager::recentTimer(QAction* action) { QStringList values = action->data().toStringList(); Timer* timer = new Timer(values.takeAt(0).toInt(), values, m_documents, this); addTimer(timer); timerChanged(timer); } //----------------------------------------------------------------------------- void TimerManager::recentTimerMenuRequested(const QPoint& pos) { if (!m_recent_timers->isEmpty()) { m_recent_timers->popup(m_display->mapToGlobal(pos)); } } //----------------------------------------------------------------------------- void TimerManager::timerChanged(Timer* timer) { setupRecentMenu(); if (m_timers.count() == 1) { updateDisplay(); return; } // Find new timer position based on when it ends int index = m_timers.indexOf(timer); int new_index = 0; for (new_index = 0; new_index < m_timers.count(); ++new_index) { Timer* test = m_timers[new_index]; if ((*timer <= *test) && (timer != test)) { break; } } // Move timer to new position if (new_index != index) { if (new_index > index) { new_index--; } m_timers.move(index, new_index); // Re-add all timers to widget so that tab order will be correct for (int i = 0; i < m_timers.count(); ++i) { m_timers[i]->setParent(0); } for (int i = 0; i < m_timers.count(); ++i) { m_timers_layout->insertWidget(i, m_timers[i]); } // Scroll to current timer QApplication::processEvents(); m_timers_area->ensureWidgetVisible(timer, 0, 0); } updateDisplay(); } //----------------------------------------------------------------------------- void TimerManager::timerDeleted(QObject* object) { for (int i = 0; i < m_timers.count(); ++i) { if (m_timers.at(i) == object) { m_timers.removeAt(i); break; } } updateDisplay(); } //----------------------------------------------------------------------------- void TimerManager::timerEdited(Timer* timer) { m_timers_area->ensureWidgetVisible(timer, 0, 0); } //----------------------------------------------------------------------------- void TimerManager::toggleVisibility() { setVisible(!isVisible()); } //----------------------------------------------------------------------------- void TimerManager::updateClock() { m_clock_label->setText(QTime::currentTime().toString(Qt::DefaultLocaleLongDate).simplified()); } //----------------------------------------------------------------------------- void TimerManager::addTimer(Timer* timer) { m_timers_layout->insertWidget(0, timer); m_timers.append(timer); connect(timer, SIGNAL(changed(Timer*)), this, SLOT(timerChanged(Timer*))); connect(timer, SIGNAL(destroyed(QObject*)), this, SLOT(timerDeleted(QObject*))); connect(timer, SIGNAL(edited(Timer*)), this, SLOT(timerEdited(Timer*))); connect(m_documents, SIGNAL(documentAdded(Document*)), timer, SLOT(documentAdded(Document*))); connect(m_documents, SIGNAL(documentRemoved(Document*)), timer, SLOT(documentRemoved(Document*))); m_timers_area->ensureWidgetVisible(timer, 0, 0); } //----------------------------------------------------------------------------- void TimerManager::setupRecentMenu() { QList end_timers; QList delay_timers; for (int i = 0; i < 2; ++i) { QString type = QString::number(i); QStringList recent = QSettings().value(QString("Timers/Recent%1").arg(i)).toStringList(); foreach (const QString& timer, recent) { QString time = timer.section(' ', 0, 0); QString memo = timer.section(' ', 1).simplified(); memo.truncate(140); QAction* action = new QAction(this); action->setData(QStringList() << type << time << memo); if (i == 0) { time = QTime::fromString(time, Qt::ISODate).toString(tr("+HH:mm:ss")).simplified(); delay_timers.append(action); } else { time = QTime::fromString(time, Qt::ISODate).toString(Qt::DefaultLocaleLongDate).simplified(); end_timers.append(action); } memo = fontMetrics().elidedText(memo, Qt::ElideRight, 300); action->setText(!memo.isEmpty() ? tr("%1 - %2").arg(time).arg(memo) : time); } } m_recent_timers->clear(); foreach (QAction* action, delay_timers) { m_recent_timers->addAction(action); } m_recent_timers->addSeparator(); foreach (QAction* action, end_timers) { m_recent_timers->addAction(action); } m_recent_button->setEnabled(!m_recent_timers->isEmpty()); } //----------------------------------------------------------------------------- void TimerManager::startClock() { updateClock(); int delay = 1000 - QTime::currentTime().msec(); QTimer::singleShot(delay, m_clock_timer, SLOT(start())); QTimer::singleShot(delay, this, SLOT(updateClock())); } //----------------------------------------------------------------------------- void TimerManager::updateDisplay() { foreach (Timer* timer, m_timers) { if (timer->isRunning()) { m_display->setTimer(timer); return; } } m_display->setTimer(0); } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/timer_manager.h000066400000000000000000000040261231434177300176560ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2010 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef TIMER_MANAGER_H #define TIMER_MANAGER_H class Stack; class Timer; class TimerDisplay; #include class QLabel; class QMenu; class QScrollArea; class QTimer; class QVBoxLayout; class TimerManager : public QDialog { Q_OBJECT public: TimerManager(Stack* documents, QWidget* parent = 0); bool cancelEditing(); TimerDisplay* display() const; public slots: void saveTimers(); protected: virtual void closeEvent(QCloseEvent* event); virtual void hideEvent(QHideEvent* event); virtual void showEvent(QShowEvent* event); private slots: void newTimer(); void recentTimer(QAction* action); void recentTimerMenuRequested(const QPoint& pos); void timerChanged(Timer* timer); void timerDeleted(QObject* object); void timerEdited(Timer* timer); void toggleVisibility(); void updateClock(); private: void addTimer(Timer* timer); void setupRecentMenu(); void startClock(); void updateDisplay(); private: Stack* m_documents; TimerDisplay* m_display; QLabel* m_clock_label; QTimer* m_clock_timer; QList m_timers; QVBoxLayout* m_timers_layout; QScrollArea* m_timers_area; QPushButton* m_new_button; QPushButton* m_recent_button; QMenu* m_recent_timers; }; #endif focuswriter-1.4.5/src/window.cpp000066400000000000000000001556701231434177300167220ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014 Graeme Gott * * 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 . * ***********************************************************************/ #include "window.h" #include "action_manager.h" #include "alert.h" #include "alert_layer.h" #include "document.h" #include "document_cache.h" #include "document_watcher.h" #include "load_screen.h" #include "locale_dialog.h" #include "preferences.h" #include "preferences_dialog.h" #include "session.h" #include "session_manager.h" #include "smart_quotes.h" #include "sound.h" #include "stack.h" #include "symbols_dialog.h" #include "theme.h" #include "theme_manager.h" #include "timer_display.h" #include "timer_manager.h" #include #include #include #include #if (QT_VERSION >= QT_VERSION_CHECK(5,0,0)) #include #else #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //----------------------------------------------------------------------------- extern bool compareFiles(const QString& filename1, const QString& filename2); namespace { QKeySequence keyBinding(const QKeySequence& shortcut, const QKeySequence& back) { if (!shortcut.isEmpty()) { return shortcut; } else { return back; } } } //----------------------------------------------------------------------------- Window::Window(const QStringList& command_line_files) : m_toolbar(0), m_loading(false), m_key_sound(0), m_enter_key_sound(0), m_fullscreen(true), m_auto_save(true), m_save_positions(true), m_goal_type(0), m_time_goal(0), m_wordcount_goal(0), m_current_time(0), m_current_wordcount(0) { setAcceptDrops(true); setAttribute(Qt::WA_DeleteOnClose); setContextMenuPolicy(Qt::NoContextMenu); setCursor(Qt::WaitCursor); // Set up icons if (QIcon::themeName().isEmpty()) { QIcon::setThemeName("hicolor"); setIconSize(QSize(22,22)); } // Create actions manager new ActionManager(this); // Create window contents first so they stack behind documents menuBar(); m_toolbar = new QToolBar(this); m_toolbar->setFloatable(false); m_toolbar->setMovable(false); addToolBar(m_toolbar); QWidget* contents = new QWidget(this); setCentralWidget(contents); // Set up watcher for documents m_document_watcher = new DocumentWatcher(this); connect(m_document_watcher, SIGNAL(closeDocument(Document*)), this, SLOT(closeDocument(Document*))); connect(m_document_watcher, SIGNAL(showDocument(Document*)), this, SLOT(showDocument(Document*))); // Set up thread for caching documents m_document_cache = new DocumentCache; m_document_cache_thread = new QThread(this); m_document_cache->moveToThread(m_document_cache_thread); m_document_cache_thread->start(); // Create documents m_documents = new Stack(this); m_sessions = new SessionManager(this); m_timers = new TimerManager(m_documents, this); connect(m_documents, SIGNAL(footerVisible(bool)), m_timers->display(), SLOT(setVisible(bool))); connect(m_documents, SIGNAL(updateFormatActions()), this, SLOT(updateFormatActions())); connect(m_documents, SIGNAL(updateFormatAlignmentActions()), this, SLOT(updateFormatAlignmentActions())); connect(m_sessions, SIGNAL(themeChanged(Theme)), m_documents, SLOT(themeSelected(Theme))); contents->setMouseTracking(true); contents->installEventFilter(m_documents); // Set up menubar and toolbar initMenus(); // Set up cache timer m_save_timer = new QTimer(this); m_save_timer->setInterval(600000); // Set up details m_footer = new QWidget(contents); QWidget* details = new QWidget(m_footer); m_wordcount_label = new QLabel(tr("Words: %L1").arg(0), details); m_page_label = new QLabel(tr("Pages: %L1").arg(0), details); m_paragraph_label = new QLabel(tr("Paragraphs: %L1").arg(0), details); m_character_label = new QLabel(tr("Characters: %L1 / %L2").arg(0).arg(0), details); m_progress_label = new QLabel(tr("%1% of daily goal").arg(0), details); m_clock_label = new QLabel(details); updateClock(); // Set up clock m_clock_timer = new QTimer(this); m_clock_timer->setInterval(60000); connect(m_clock_timer, SIGNAL(timeout()), this, SLOT(updateClock())); connect(m_clock_timer, SIGNAL(timeout()), m_timers, SLOT(saveTimers())); int delay = (60 - QTime::currentTime().second()) * 1000; QTimer::singleShot(delay, m_clock_timer, SLOT(start())); QTimer::singleShot(delay, this, SLOT(updateClock())); // Set up tabs m_tabs = new QTabBar(m_footer); m_tabs->setShape(QTabBar::RoundedSouth); m_tabs->setDocumentMode(true); m_tabs->setExpanding(false); m_tabs->setMovable(true); m_tabs->setTabsClosable(true); m_tabs->setUsesScrollButtons(true); connect(m_tabs, SIGNAL(currentChanged(int)), this, SLOT(tabClicked(int))); connect(m_tabs, SIGNAL(tabCloseRequested(int)), this, SLOT(tabClosed(int))); connect(m_tabs, SIGNAL(tabMoved(int, int)), this, SLOT(tabMoved(int, int))); // Set up tab navigation QAction* action = new QAction(tr("Switch to Next Document"), this); action->setShortcut(QKeySequence::NextChild); connect(action, SIGNAL(triggered()), this, SLOT(nextDocument())); addAction(action); ActionManager::instance()->addAction("SwitchNextDocument", action); action = new QAction(tr("Switch to Previous Document"), this); action->setShortcut(QKeySequence::PreviousChild); connect(action, SIGNAL(triggered()), this, SLOT(previousDocument())); addAction(action); ActionManager::instance()->addAction("SwitchPreviousDocument", action); action = new QAction(tr("Switch to First Document"), this); action->setShortcut(Qt::CTRL + Qt::Key_1); connect(action, SIGNAL(triggered()), this, SLOT(firstDocument())); addAction(action); ActionManager::instance()->addAction("SwitchFirstDocument", action); action = new QAction(tr("Switch to Last Document"), this); action->setShortcut(Qt::CTRL + Qt::Key_0); connect(action, SIGNAL(triggered()), this, SLOT(lastDocument())); addAction(action); ActionManager::instance()->addAction("SwitchLastDocument", action); QSignalMapper* mapper = new QSignalMapper(this); for (int i = 2; i < 10 ; ++i) { action = new QAction(tr("Switch to Document %1").arg(i), this); action->setShortcut(Qt::CTRL + Qt::Key_0 + i); connect(action, SIGNAL(triggered()), mapper, SLOT(map())); mapper->setMapping(action, i - 1); addAction(action); ActionManager::instance()->addAction(QString("SwitchDocument%1").arg(i), action); } connect(mapper, SIGNAL(mapped(int)), m_tabs, SLOT(setCurrentIndex(int))); // Always bring interface to front connect(m_documents, SIGNAL(headerVisible(bool)), menuBar(), SLOT(raise())); connect(m_documents, SIGNAL(headerVisible(bool)), m_toolbar, SLOT(raise())); connect(m_documents, SIGNAL(footerVisible(bool)), m_footer, SLOT(raise())); // Lay out details QHBoxLayout* clock_layout = new QHBoxLayout; clock_layout->setMargin(0); clock_layout->setSpacing(6); clock_layout->addWidget(m_timers->display(), 0, Qt::AlignCenter); clock_layout->addWidget(m_clock_label); QHBoxLayout* details_layout = new QHBoxLayout(details); details_layout->setSpacing(25); details_layout->setMargin(6); details_layout->addWidget(m_wordcount_label); details_layout->addWidget(m_page_label); details_layout->addWidget(m_paragraph_label); details_layout->addWidget(m_character_label); details_layout->addStretch(); details_layout->addWidget(m_progress_label); details_layout->addStretch(); details_layout->addLayout(clock_layout); // Lay out footer QVBoxLayout* footer_layout = new QVBoxLayout(m_footer); footer_layout->setSpacing(0); footer_layout->setMargin(0); footer_layout->addWidget(details); footer_layout->addWidget(m_tabs); // Lay out window QVBoxLayout* layout = new QVBoxLayout(contents); layout->setSpacing(0); layout->setMargin(0); layout->addStretch(); layout->addWidget(m_footer); // Load current daily progress QSettings settings; if (settings.value("Progress/Date").toDate() != QDate::currentDate()) { settings.remove("Progress"); } settings.setValue("Progress/Date", QDate::currentDate().toString(Qt::ISODate)); m_current_wordcount = settings.value("Progress/Words", 0).toInt(); m_current_time = settings.value("Progress/Time", 0).toInt(); updateProgress(); // Restore window geometry setMinimumSize(640, 480); resize(800, 600); restoreGeometry(settings.value("Window/Geometry").toByteArray()); show(); m_fullscreen = !settings.value("Window/Fullscreen", true).toBool(); toggleFullscreen(); m_actions["Fullscreen"]->setChecked(m_fullscreen); // Load settings m_documents->loadScreen()->setText(tr("Loading settings")); Preferences preferences; loadPreferences(preferences); // Update and load theme m_documents->loadScreen()->setText(tr("Loading themes")); m_documents->themeSelected(settings.value("ThemeManager/Theme").toString()); Theme::copyBackgrounds(); // Update margin m_tabs->blockSignals(true); m_tabs->addTab(tr("Untitled")); updateMargin(); m_tabs->removeTab(0); m_tabs->blockSignals(false); // Restore after crash bool writable = QFileInfo(Document::cachePath()).isWritable() && QFileInfo(Document::cachePath() + "/../").isWritable(); if (!writable) { m_documents->alerts()->addAlert(new Alert(Alert::Warning, tr("Emergency cache is not writable."), QStringList(), true)); } QStringList files, datafiles; QString cachepath; QStringList entries = QDir(Document::cachePath()).entryList(QDir::Files); if (writable && (entries.count() > 1) && entries.contains("mapping")) { // Find cachedir QString date = QDate::currentDate().toString("yyyyMMdd"); int extra = 0; QDir dir(QDir::cleanPath(Document::cachePath() + "/../")); QStringList subdirs = dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); foreach (const QString& subdir, subdirs) { if (subdir.startsWith(date)) { extra = qMax(extra, subdir.mid(9).toInt() + 1); } } cachepath = dir.absoluteFilePath(date + ((extra > 0) ? QString("-%1").arg(extra) : "")); // Move cache out of the way dir.rename("Files", cachepath); dir.mkdir("Files"); // Read mapping of cached files QFile file(cachepath + "/mapping"); if (file.open(QFile::ReadOnly | QFile::Text)) { QTextStream stream(&file); stream.setCodec(QTextCodec::codecForName("UTF-8")); stream.setAutoDetectUnicode(true); while (!stream.atEnd()) { QString line = stream.readLine(); QString datafile = line.section(' ', 0, 0); QString path = line.section(' ', 1); if (!datafile.isEmpty()) { files.append(path); datafiles.append(cachepath + "/" + datafile); } } file.close(); } // Ask if they want to use cached files if (!files.isEmpty()) { QStringList filenames; int untitled = 1; int count = files.count(); for (int i = 0; i < count; ++i) { if (!files.at(i).isEmpty()) { filenames.append(QDir::toNativeSeparators(files.at(i))); } else { filenames.append(tr("(Untitled %1)").arg(untitled)); untitled++; } } m_documents->loadScreen()->setText(""); QMessageBox mbox(window()); mbox.setWindowTitle(tr("Warning")); mbox.setText(tr("FocusWriter was not shut down cleanly.")); mbox.setInformativeText(tr("Restore from the emergency cache?")); mbox.setDetailedText(filenames.join("\n")); mbox.setStandardButtons(QMessageBox::Yes | QMessageBox::No); mbox.setDefaultButton(QMessageBox::Yes); mbox.setIcon(QMessageBox::Warning); if (mbox.exec() == QMessageBox::No) { files.clear(); datafiles.clear(); } } } // Open previous documents QString session = settings.value("SessionManager/Session").toString(); if (files.isEmpty() && !command_line_files.isEmpty()) { session.clear(); settings.setValue("Save/Current", command_line_files); settings.setValue("Save/Positions", QStringList()); settings.setValue("Save/Active", 0); } m_sessions->setCurrent(session, files, datafiles); // Remove old cache if (!cachepath.isEmpty()) { QDir cachedir(cachepath); if ((cachedir.count() == 3) && (cachedir.entryList(QDir::Files).first() == "mapping")) { cachedir.remove("mapping"); cachedir.rmdir(cachepath); } } // Bring to front activateWindow(); raise(); unsetCursor(); m_save_timer->start(); } //----------------------------------------------------------------------------- void Window::addDocuments(const QStringList& files, const QStringList& datafiles, const QStringList& positions, int active, bool show_load) { m_loading = true; // Hide interface m_documents->setHeaderVisible(false); m_documents->setFooterVisible(false); // Skip loading files of unsupported formats static const QStringList suffixes = QStringList() << "abw" << "awt" << "zabw" << "doc" << "dot" << "docx" << "docm" << "dotx" << "dotm" << "kwd" << "ott" << "wpd" << "bmp" << "dds" << "gif" << "icns" << "ico" << "jng" << "jp2" << "jpg" << "jpeg" << "jps" << "mng" << "png" << "tga" << "tif" << "tiff" << "xcf" << "aac" << "aif" << "aifc" << "aiff" << "asf" << "au" << "flac" << "mid" << "midi" << "mod" << "mp2" << "mp3" << "m4a" << "ogg" << "s3m" << "snd" << "spx" << "wav" << "wma" << "avi" << "m1v" << "m2ts" << "m4v" << "mkv" << "mov" << "mp4" << "mp4v" << "mpa" << "mpe" << "mpg" << "mpeg" << "mpv2" << "wm" << "wmv"; QList skip; for (int i = 0; i < files.count(); ++i) { if (suffixes.contains(QFileInfo(files.at(i)).suffix().toLower())) { skip += i; } } if (!skip.isEmpty()) { QStringList skipped; foreach (int i, skip) { skipped += QDir::toNativeSeparators(files.at(i)); } m_documents->alerts()->addAlert(new Alert(Alert::Warning, tr("Some files were unsupported and could not be opened."), skipped, true)); } // Show load screen if switching sessions or opening more than one file show_load = show_load || ((files.count() > 1) && (files.count() > skip.count())); if (show_load) { m_documents->loadScreen()->setText(""); setCursor(Qt::WaitCursor); } // Remember current file and if it is untitled and unmodified int untitled_index = -1; int current_index = -1; if (m_documents->count()) { current_index = m_documents->currentIndex(); Document* document = m_documents->currentDocument(); if (document->untitledIndex() && !document->text()->document()->isModified()) { untitled_index = m_documents->currentIndex(); } } // Read files QStringList missing; QStringList errors; QStringList readonly; int open_files = m_documents->count(); for (int i = 0; i < files.count(); ++i) { // Skip file known to be unsupported if (!skip.isEmpty() && (skip.first() == i)) { skip.removeFirst(); continue; // Attempt to load file or datafile } else if (!addDocument(files.at(i), datafiles.at(i), positions.value(i, "-1").toInt())) { // Track if unable to open file missing.append(QDir::toNativeSeparators(files.at(i))); } else if (!files.at(i).isEmpty() && (m_documents->currentDocument()->untitledIndex() > 0)) { // Track if unable to read file int index = m_documents->currentIndex(); errors.append(QDir::toNativeSeparators(files.at(i))); m_documents->removeDocument(index); m_tabs->removeTab(index); } else if (m_documents->currentDocument()->isReadOnly() && (m_documents->count() > open_files)) { // Track if file is read-only and not already open readonly.append(QDir::toNativeSeparators(files.at(i))); } open_files = m_documents->count(); } // Make sure that there is always at least one document if (m_documents->count() == 0) { newDocument(); } // Switch to tab of active session file or of current file if (untitled_index == -1) { if (active != -1) { m_tabs->setCurrentIndex(active); } else if (m_documents->currentIndex() == current_index) { m_tabs->setCurrentIndex(m_tabs->count() - 1); } // Replace current tab if it is untitled and unmodified } else if (files.count() > (missing.count() + errors.count())) { m_tabs->setCurrentIndex(untitled_index); closeDocument(); } // Inform user about unopened and read-only files if (!missing.isEmpty()) { m_documents->alerts()->addAlert(new Alert(Alert::Warning, tr("Some files could not be opened."), missing, true)); } if (!readonly.isEmpty()) { m_documents->alerts()->addAlert(new Alert(Alert::Information, tr("Some files were opened Read-Only."), readonly, true)); } // Hide load screen if (m_documents->loadScreen()->isVisible()) { m_documents->waitForThemeBackground(); m_documents->loadScreen()->finish(); unsetCursor(); } // Open any files queued during load if (!m_queued_documents.isEmpty()) { QStringList queued = m_queued_documents; m_queued_documents.clear(); addDocuments(queued, queued); } m_loading = false; } //----------------------------------------------------------------------------- void Window::addDocuments(QDropEvent* event) { if (event->mimeData()->hasUrls()) { QStringList files; foreach (QUrl url, event->mimeData()->urls()) { files.append(url.toLocalFile()); } queueDocuments(files); event->acceptProposedAction(); } } //----------------------------------------------------------------------------- bool Window::closeDocuments(QSettings* session) { if (m_documents->count() == 0) { return true; } // Save files int active = m_tabs->currentIndex(); QStringList files; QStringList positions; for (int i = 0; i < m_documents->count(); ++i) { m_tabs->setCurrentIndex(i); if (!saveDocument(i)) { m_tabs->setCurrentIndex(active); return false; } Document* document = m_documents->document(i); QString filename = document->filename(); if (!filename.isEmpty()) { files.append(filename); positions.append(QString::number(document->text()->textCursor().position())); } } // Store current files session->setValue("Save/Current", files); session->setValue("Save/Positions", positions); session->setValue("Save/Active", active); // Close files int count = m_documents->count(); for (int i = 0; i < count; ++i) { m_documents->removeDocument(0); m_tabs->removeTab(0); } return true; } //----------------------------------------------------------------------------- void Window::addDocuments(const QString& documents) { QStringList files = documents.split(QLatin1String("\n"), QString::SkipEmptyParts); if (!files.isEmpty()) { queueDocuments(files); } } //----------------------------------------------------------------------------- void Window::changeEvent(QEvent* event) { if (isActiveWindow()) { m_document_watcher->processUpdates(); } QMainWindow::changeEvent(event); } //----------------------------------------------------------------------------- void Window::dragEnterEvent(QDragEnterEvent* event) { if (event->mimeData()->hasUrls()) { event->acceptProposedAction(); } } //----------------------------------------------------------------------------- void Window::dropEvent(QDropEvent* event) { addDocuments(event); } //----------------------------------------------------------------------------- bool Window::event(QEvent* event) { if (event->type() == QEvent::WindowBlocked) { hideInterface(); } return QMainWindow::event(event); } //----------------------------------------------------------------------------- void Window::closeEvent(QCloseEvent* event) { // Confirm discarding any unsaved changes if (!m_timers->cancelEditing() || !m_sessions->closeCurrent()) { event->ignore(); return; } // Save window settings QSettings().setValue("Window/FocusedText", m_focus_actions->checkedAction()->data().toInt()); if (!m_fullscreen) { QSettings().setValue("Window/Geometry", saveGeometry()); } // Stop cache thread while window is visible setCursor(Qt::WaitCursor); m_document_cache_thread->quit(); m_document_cache_thread->wait(); delete m_document_cache; m_document_cache = 0; QMainWindow::closeEvent(event); } //----------------------------------------------------------------------------- void Window::leaveEvent(QEvent* event) { if ((qApp->activePopupWidget() == 0) && !m_fullscreen) { hideInterface(); } QMainWindow::leaveEvent(event); } //----------------------------------------------------------------------------- void Window::resizeEvent(QResizeEvent* event) { if (!m_fullscreen) { QSettings().setValue("Window/Geometry", saveGeometry()); } m_documents->resize(size()); QMainWindow::resizeEvent(event); } //----------------------------------------------------------------------------- void Window::newDocument() { addDocument(); m_actions["Rename"]->setEnabled(false); if (m_documents->currentDocument()->isRichText()) { if (QApplication::isLeftToRight()) { m_actions["FormatDirectionLTR"]->setChecked(true); } else { m_actions["FormatDirectionRTL"]->setChecked(true); } } } //----------------------------------------------------------------------------- void Window::openDocument() { #if (QT_VERSION >= QT_VERSION_CHECK(5,0,0)) static QString oldpath = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation); #else static QString oldpath = QDesktopServices::storageLocation(QDesktopServices::DocumentsLocation); #endif QString path = m_documents->currentDocument()->filename(); if (!path.isEmpty()) { path = QFileInfo(path).dir().path(); } else { path = oldpath; } QStringList filenames = QFileDialog::getOpenFileNames(window(), tr("Open File"), path, tr("Text Files (%1);;All Files (*)").arg("*.txt *.text *.odt *.rtf")); if (!filenames.isEmpty()) { addDocuments(filenames, filenames); oldpath = QFileInfo(filenames.last()).dir().path(); } } //----------------------------------------------------------------------------- void Window::renameDocument() { if (m_documents->currentDocument()->rename()) { updateTab(m_documents->currentIndex()); } } //----------------------------------------------------------------------------- void Window::saveAllDocuments() { int index = m_tabs->currentIndex(); for (int i = 0; i < m_documents->count(); ++i) { Document* document = m_documents->document(i); if (!document->filename().isEmpty()) { document->save(); } else { m_tabs->setCurrentIndex(i); document->saveAs(); } } m_tabs->setCurrentIndex(index); } //----------------------------------------------------------------------------- void Window::closeDocument() { int index = m_documents->currentIndex(); if (!saveDocument(index)) { return; } m_documents->removeDocument(index); m_tabs->removeTab(index); if (m_documents->count() == 0) { newDocument(); } } //----------------------------------------------------------------------------- void Window::closeDocument(Document* document) { int index = -1; for (int i = 0; i < m_documents->count(); ++i) { if (m_documents->document(i) == document) { index = i; break; } } if (index == -1) { return; } m_documents->removeDocument(index); m_tabs->removeTab(index); if (m_documents->count() == 0) { newDocument(); } } //----------------------------------------------------------------------------- void Window::showDocument(Document* document) { for (int i = 0; i < m_documents->count(); ++i) { if (m_documents->document(i) == document) { m_tabs->setCurrentIndex(i); break; } } } //----------------------------------------------------------------------------- void Window::nextDocument() { int index = m_tabs->currentIndex() + 1; if (index >= m_tabs->count()) { index = 0; } m_tabs->setCurrentIndex(index); } //----------------------------------------------------------------------------- void Window::previousDocument() { int index = m_tabs->currentIndex() - 1; if (index < 0) { index = m_tabs->count() - 1; } m_tabs->setCurrentIndex(index); } //----------------------------------------------------------------------------- void Window::firstDocument() { m_tabs->setCurrentIndex(0); } //----------------------------------------------------------------------------- void Window::lastDocument() { m_tabs->setCurrentIndex(m_tabs->count() - 1); } //----------------------------------------------------------------------------- void Window::minimize() { #ifdef Q_OS_MAC if (m_fullscreen) { toggleFullscreen(); } #endif showMinimized(); } //----------------------------------------------------------------------------- void Window::toggleFullscreen() { m_fullscreen = !m_fullscreen; QSettings().setValue("Window/Fullscreen", m_fullscreen); if (m_fullscreen) { setWindowState(windowState() | Qt::WindowFullScreen); } else { setWindowState(windowState() & ~Qt::WindowFullScreen); } show(); QApplication::processEvents(); activateWindow(); raise(); QApplication::processEvents(); } //----------------------------------------------------------------------------- void Window::toggleToolbar(bool visible) { m_toolbar->setVisible(visible); QSettings().setValue("Toolbar/Shown", visible); updateMargin(); } //----------------------------------------------------------------------------- void Window::toggleMenuIcons(bool visible) { QApplication::setAttribute(Qt::AA_DontShowIconsInMenus, !visible); QSettings().setValue("Window/MenuIcons", visible); } //----------------------------------------------------------------------------- void Window::themeClicked() { ThemeManager manager(*m_sessions->current()->data(), this); connect(&manager, SIGNAL(themeSelected(Theme)), m_documents, SLOT(themeSelected(Theme))); manager.exec(); } //----------------------------------------------------------------------------- void Window::preferencesClicked() { Preferences preferences; PreferencesDialog dialog(preferences, this); if (dialog.exec() == QDialog::Accepted) { loadPreferences(preferences); } } //----------------------------------------------------------------------------- void Window::aboutClicked() { QMessageBox::about(this, tr("About FocusWriter"), QString( "

      %1 %2
      %3
      %4
      %5

      " "

      %6
      %7

      ") .arg(tr("FocusWriter"), QApplication::applicationVersion(), tr("A simple fullscreen word processor"), tr("Copyright © 2008-%1 Graeme Gott").arg("2013"), tr("Released under the
      GPL 3 license").arg("\"http://www.gnu.org/licenses/gpl.html\""), tr("Uses icons from the Oxygen icon theme").arg("\"http://www.oxygen-icons.org/\""), tr("Used under the LGPL 3 license").arg("\"http://www.gnu.org/licenses/lgpl.html\"")) ); } //----------------------------------------------------------------------------- void Window::setLocaleClicked() { LocaleDialog dialog(this); dialog.exec(); } //----------------------------------------------------------------------------- void Window::tabClicked(int index) { if (m_documents->count() == 0) { return; } updateWriteState(index); m_documents->setCurrentDocument(index); updateDetails(); updateSave(); updateFormatAlignmentActions(); m_documents->currentDocument()->text()->setFocus(); } //----------------------------------------------------------------------------- void Window::tabClosed(int index) { m_tabs->setCurrentIndex(index); closeDocument(); } //----------------------------------------------------------------------------- void Window::tabMoved(int from, int to) { m_documents->moveDocument(from, to); m_documents->setCurrentDocument(m_tabs->currentIndex()); } //----------------------------------------------------------------------------- void Window::updateClock() { m_clock_label->setText(QTime::currentTime().toString(Qt::DefaultLocaleShortDate)); } //----------------------------------------------------------------------------- void Window::updateDetails() { Document* document = m_documents->currentDocument(); m_character_label->setText(tr("Characters: %L1 / %L2").arg(document->characterCount()).arg(document->characterAndSpaceCount())); m_page_label->setText(tr("Pages: %L1").arg(document->pageCount())); m_paragraph_label->setText(tr("Paragraphs: %L1").arg(document->paragraphCount())); m_wordcount_label->setText(tr("Words: %L1").arg(document->wordCount())); } //----------------------------------------------------------------------------- void Window::updateFormatActions() { Document* document = m_documents->currentDocument(); if (!document) { return; } m_actions["FormatIndentDecrease"]->setEnabled(!document->isReadOnly() && document->text()->textCursor().blockFormat().indent() > 0); QTextCharFormat format = document->text()->currentCharFormat(); m_actions["FormatBold"]->setChecked(format.fontWeight() == QFont::Bold); m_actions["FormatItalic"]->setChecked(format.fontItalic()); m_actions["FormatStrikeOut"]->setChecked(format.fontStrikeOut()); m_actions["FormatUnderline"]->setChecked(format.fontUnderline()); m_actions["FormatSuperScript"]->setChecked(format.verticalAlignment() == QTextCharFormat::AlignSuperScript); m_actions["FormatSubScript"]->setChecked(format.verticalAlignment() == QTextCharFormat::AlignSubScript); } //----------------------------------------------------------------------------- void Window::updateFormatAlignmentActions() { Document* document = m_documents->currentDocument(); if (!document) { return; } if (document->text()->textCursor().blockFormat().layoutDirection() == Qt::LeftToRight) { m_actions["FormatDirectionLTR"]->setChecked(true); } else if (document->text()->textCursor().blockFormat().layoutDirection() == Qt::RightToLeft) { m_actions["FormatDirectionRTL"]->setChecked(true); } else { m_actions[QApplication::isLeftToRight() ? "FormatDirectionLTR" : "FormatDirectionRTL"]->setChecked(true); } Qt::Alignment alignment = document->text()->alignment(); if (alignment & Qt::AlignLeft) { m_actions["FormatAlignLeft"]->setChecked(true); } else if (alignment & Qt::AlignRight) { m_actions["FormatAlignRight"]->setChecked(true); } else if (alignment & Qt::AlignCenter) { m_actions["FormatAlignCenter"]->setChecked(true); } else if (alignment & Qt::AlignJustify) { m_actions["FormatAlignJustify"]->setChecked(true); } } //----------------------------------------------------------------------------- void Window::updateProgress() { int progress = 0; if (m_goal_type == 1) { progress = (m_current_time * 100) / (m_time_goal * 60000); } else if (m_goal_type == 2) { progress = (m_current_wordcount * 100) / m_wordcount_goal; } m_progress_label->setText(tr("%1% of daily goal").arg(progress)); } //----------------------------------------------------------------------------- void Window::updateSave() { m_actions["Save"]->setEnabled(m_documents->currentDocument()->text()->document()->isModified()); m_actions["Rename"]->setDisabled(m_documents->currentDocument()->isReadOnly() || m_documents->currentDocument()->filename().isEmpty()); for (int i = 0; i < m_documents->count(); ++i) { updateTab(i); } } //----------------------------------------------------------------------------- bool Window::addDocument(const QString& file, const QString& datafile, int position) { QFileInfo info(file); if (!file.isEmpty()) { // Check if already open QString canonical_filename = info.canonicalFilePath(); for (int i = 0; i < m_documents->count(); ++i) { if (m_documents->document(i)->filename() == canonical_filename) { m_tabs->setCurrentIndex(i); return true; } } // Check if unreadable if (!info.exists() || !info.isReadable()) { return false; } } // Show filename in load screen bool show_load = false; show_load = !file.isEmpty() && !m_documents->loadScreen()->isVisible() && (info.size() > 100000); if (m_documents->loadScreen()->isVisible() || show_load) { if (!file.isEmpty()) { m_documents->loadScreen()->setText(tr("Opening %1").arg(QDir::toNativeSeparators(file))); } else { m_documents->loadScreen()->setText(""); } } // Create document QString path = file; if (!file.isEmpty() && (datafile != file)) { if (QFileInfo(datafile).lastModified() > QFileInfo(file).lastModified()) { path = datafile; position = -1; } else { QMessageBox mbox(window()); mbox.setWindowTitle(tr("Warning")); mbox.setText(tr("'%1' is newer than the cached copy.").arg(file)); mbox.setInformativeText(tr("Overwrite newer file?")); mbox.setStandardButtons(QMessageBox::Yes | QMessageBox::No); mbox.setDefaultButton(QMessageBox::No); mbox.setIcon(QMessageBox::Warning); if (mbox.exec() == QMessageBox::Yes) { path = datafile; position = -1; } } } else { path = datafile; } Document* document = new Document(file, m_current_wordcount, m_current_time, this); m_documents->addDocument(document); document->loadTheme(m_sessions->current()->theme()); document->setFocusMode(m_focus_actions->checkedAction()->data().toInt()); if (document->loadFile(path, m_save_positions ? position : -1)) { if (datafile != file) { document->text()->document()->setModified(!compareFiles(file, datafile)); QFile::remove(datafile); } } else if (path != file) { document->loadFile(file, m_save_positions ? position : -1); } connect(document, SIGNAL(changed()), this, SLOT(updateDetails())); connect(document, SIGNAL(changed()), this, SLOT(updateProgress())); connect(document, SIGNAL(changedName()), this, SLOT(updateSave())); connect(document, SIGNAL(indentChanged(bool)), m_actions["FormatIndentDecrease"], SLOT(setEnabled(bool))); connect(document->text()->document(), SIGNAL(modificationChanged(bool)), this, SLOT(updateSave())); connect(document, SIGNAL(cacheFile(DocumentWriter*)), m_document_cache, SLOT(cacheFile(DocumentWriter*))); connect(document, SIGNAL(removeCacheFile(QString)), m_document_cache, SLOT(removeCacheFile(QString))); // Add tab for document int index = m_tabs->addTab(tr("Untitled")); updateTab(index); m_tabs->setCurrentIndex(index); if (show_load) { m_documents->loadScreen()->finish(); } // Allow documents to show load screen on reload connect(document, SIGNAL(loadStarted(QString)), m_documents->loadScreen(), SLOT(setText(QString))); connect(document, SIGNAL(loadFinished()), m_documents->loadScreen(), SLOT(finish())); connect(document, SIGNAL(loadFinished()), this, SLOT(updateSave())); return true; } //----------------------------------------------------------------------------- void Window::queueDocuments(const QStringList& files) { if (m_loading) { m_queued_documents += files; } else { addDocuments(files, files); } } //----------------------------------------------------------------------------- bool Window::saveDocument(int index) { Document* document = m_documents->document(index); if (!document->text()->document()->isModified()) { return true; } // Auto-save document if (m_auto_save && document->text()->document()->isModified() && !document->filename().isEmpty()) { return document->save(); } // Prompt about saving changes switch (QMessageBox::question(this, tr("Question"), tr("Save changes?"), QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel, QMessageBox::Cancel)) { case QMessageBox::Save: return document->save(); case QMessageBox::Discard: document->text()->document()->setModified(false); m_current_wordcount -= document->wordCountDelta(); return true; case QMessageBox::Cancel: default: return false; } } //----------------------------------------------------------------------------- void Window::loadPreferences(Preferences& preferences) { if (preferences.typewriterSounds() && (!m_key_sound || !m_enter_key_sound)) { if (m_documents->loadScreen()->isVisible()) { m_documents->loadScreen()->setText(tr("Loading sounds")); } m_key_sound = new Sound(Qt::Key_Any, "keyany.wav", this); m_enter_key_sound = new Sound(Qt::Key_Enter, "keyenter.wav", this); if (!m_key_sound->isValid() || !m_enter_key_sound->isValid()) { m_documents->alerts()->addAlert(new Alert(Alert::Warning, tr("Unable to load typewriter sounds."), QStringList(tr("Please make sure that SDL_mixer is installed.")), true)); delete m_key_sound; delete m_enter_key_sound; m_key_sound = m_enter_key_sound = 0; preferences.setTypewriterSounds(false); } } Sound::setEnabled(preferences.typewriterSounds()); m_auto_save = preferences.autoSave(); if (m_auto_save) { disconnect(m_save_timer, SIGNAL(timeout()), m_documents, SLOT(autoCache())); connect(m_save_timer, SIGNAL(timeout()), m_documents, SLOT(autoSave())); } else { disconnect(m_save_timer, SIGNAL(timeout()), m_documents, SLOT(autoSave())); connect(m_save_timer, SIGNAL(timeout()), m_documents, SLOT(autoCache())); } m_save_positions = preferences.savePositions(); SmartQuotes::loadPreferences(preferences); m_character_label->setVisible(preferences.showCharacters()); m_page_label->setVisible(preferences.showPages()); m_paragraph_label->setVisible(preferences.showParagraphs()); m_wordcount_label->setVisible(preferences.showWords()); m_progress_label->setVisible(preferences.goalType() != 0); m_goal_type = preferences.goalType(); m_wordcount_goal = preferences.goalWords(); m_time_goal = preferences.goalMinutes(); updateProgress(); m_toolbar->clear(); m_toolbar->hide(); m_toolbar->setToolButtonStyle(Qt::ToolButtonStyle(preferences.toolbarStyle())); QStringList actions = preferences.toolbarActions(); foreach (const QString action, actions) { if (action == "|") { m_toolbar->addSeparator(); } else if (!action.startsWith("^")) { m_toolbar->addAction(m_actions.value(action)); } } m_toolbar->setVisible(QSettings().value("Toolbar/Shown", true).toBool()); updateMargin(); for (int i = 0; i < m_documents->count(); ++i) { m_documents->document(i)->loadPreferences(preferences); } if (m_documents->count() > 0) { updateDetails(); } m_replace_document_quotes->setEnabled(preferences.smartQuotes()); m_replace_selection_quotes->setEnabled(preferences.smartQuotes()); } //----------------------------------------------------------------------------- void Window::hideInterface() { m_documents->setFooterVisible(false); m_documents->setHeaderVisible(false); m_documents->setScenesVisible(false); for (int i = 0; i < m_documents->count(); ++i) { m_documents->document(i)->setScrollBarVisible(false); } } //----------------------------------------------------------------------------- void Window::updateMargin() { QApplication::processEvents(); int header = centralWidget()->mapToParent(QPoint(0,0)).y(); int footer = m_footer->sizeHint().height(); m_documents->setMargins(footer, header); } //----------------------------------------------------------------------------- void Window::updateTab(int index) { Document* document = m_documents->document(index); QString filename = document->filename(); QString name = QFileInfo(filename).fileName(); if (name.isEmpty()) { name = tr("(Untitled %1)").arg(document->untitledIndex()); } if (document->isReadOnly()) { name = tr("%1 (Read-Only)").arg(name); } bool modified = document->text()->document()->isModified(); m_tabs->setTabText(index, name + (modified ? "*" : "")); m_tabs->setTabToolTip(index, QDir::toNativeSeparators(filename)); if (document == m_documents->currentDocument()) { setWindowFilePath(name); setWindowModified(modified); updateWriteState(index); } } //----------------------------------------------------------------------------- void Window::updateWriteState(int index) { Document* document = m_documents->document(index); bool writable = !document->isReadOnly(); m_actions["Paste"]->setEnabled(writable); m_actions["PasteUnformatted"]->setEnabled(writable); m_actions["Replace"]->setEnabled(writable); m_actions["CheckSpelling"]->setEnabled(writable); if (writable) { connect(m_documents, SIGNAL(copyAvailable(bool)), m_actions["Cut"], SLOT(setEnabled(bool))); } else { disconnect(m_documents, SIGNAL(copyAvailable(bool)), m_actions["Cut"], SLOT(setEnabled(bool))); m_actions["Cut"]->setEnabled(false); } m_replace_document_quotes->setEnabled(writable); m_replace_selection_quotes->setEnabled(writable); if (m_documents->symbols()) { m_documents->symbols()->setInsertEnabled(writable); } foreach (QAction* action, m_format_actions) { action->setEnabled(writable); } m_actions["FormatIndentDecrease"]->setEnabled(writable && document->text()->textCursor().blockFormat().indent() > 0); } //----------------------------------------------------------------------------- void Window::initMenus() { // Create file menu QMenu* file_menu = menuBar()->addMenu(tr("&File")); m_actions["New"] = file_menu->addAction(QIcon::fromTheme("document-new"), tr("&New"), this, SLOT(newDocument()), QKeySequence::New); m_actions["Open"] = file_menu->addAction(QIcon::fromTheme("document-open"), tr("&Open..."), this, SLOT(openDocument()), QKeySequence::Open); m_actions["Reload"] = file_menu->addAction(QIcon::fromTheme("view-refresh"), tr("Reloa&d"), m_documents, SLOT(reload()), QKeySequence::Refresh); file_menu->addSeparator(); m_actions["Save"] = file_menu->addAction(QIcon::fromTheme("document-save"), tr("&Save"), m_documents, SLOT(save()), QKeySequence::Save); m_actions["Save"]->setEnabled(false); m_actions["SaveAs"] = file_menu->addAction(QIcon::fromTheme("document-save-as"), tr("Save &As..."), m_documents, SLOT(saveAs()), QKeySequence::SaveAs); m_actions["Rename"] = file_menu->addAction(QIcon::fromTheme("edit-rename"), tr("&Rename..."), this, SLOT(renameDocument())); m_actions["Rename"]->setEnabled(false); m_actions["SaveAll"] = file_menu->addAction(QIcon::fromTheme("document-save-all"), tr("Save A&ll"), this, SLOT(saveAllDocuments())); file_menu->addSeparator(); file_menu->addMenu(m_sessions->menu()); m_actions["ManageSessions"] = new QAction(QIcon::fromTheme("view-choose"), tr("Manage Sessions"), this); connect(m_actions["ManageSessions"], SIGNAL(triggered()), m_sessions, SLOT(exec())); m_actions["NewSession"] = new QAction(QIcon::fromTheme("window-new"), tr("New Session"), this); connect(m_actions["NewSession"], SIGNAL(triggered()), m_sessions, SLOT(newSession())); file_menu->addSeparator(); m_actions["Print"] = file_menu->addAction(QIcon::fromTheme("document-print"), tr("&Print..."), m_documents, SLOT(print()), QKeySequence::Print); file_menu->addSeparator(); m_actions["Close"] = file_menu->addAction(QIcon::fromTheme("window-close"), tr("&Close"), this, SLOT(closeDocument()), QKeySequence::Close); m_actions["Quit"] = file_menu->addAction(QIcon::fromTheme("application-exit"), tr("&Quit"), this, SLOT(close()), keyBinding(QKeySequence::Quit, tr("Ctrl+Q"))); m_actions["Quit"]->setMenuRole(QAction::QuitRole); // Create edit menu QMenu* edit_menu = menuBar()->addMenu(tr("&Edit")); m_actions["Undo"] = edit_menu->addAction(QIcon::fromTheme("edit-undo"), tr("&Undo"), m_documents, SLOT(undo()), QKeySequence::Undo); m_actions["Undo"]->setEnabled(false); connect(m_documents, SIGNAL(undoAvailable(bool)), m_actions["Undo"], SLOT(setEnabled(bool))); m_actions["Redo"] = edit_menu->addAction(QIcon::fromTheme("edit-redo"), tr("&Redo"), m_documents, SLOT(redo()), QKeySequence::Redo); m_actions["Redo"]->setEnabled(false); connect(m_documents, SIGNAL(redoAvailable(bool)), m_actions["Redo"], SLOT(setEnabled(bool))); edit_menu->addSeparator(); m_actions["Cut"] = edit_menu->addAction(QIcon::fromTheme("edit-cut"), tr("Cu&t"), m_documents, SLOT(cut()), QKeySequence::Cut); m_actions["Cut"]->setEnabled(false); connect(m_documents, SIGNAL(copyAvailable(bool)), m_actions["Cut"], SLOT(setEnabled(bool))); m_actions["Copy"] = edit_menu->addAction(QIcon::fromTheme("edit-copy"), tr("&Copy"), m_documents, SLOT(copy()), QKeySequence::Copy); m_actions["Copy"]->setEnabled(false); connect(m_documents, SIGNAL(copyAvailable(bool)), m_actions["Copy"], SLOT(setEnabled(bool))); m_actions["Paste"] = edit_menu->addAction(QIcon::fromTheme("edit-paste"), tr("&Paste"), m_documents, SLOT(paste()), QKeySequence::Paste); m_actions["PasteUnformatted"] = edit_menu->addAction(QIcon::fromTheme("edit-paste"), tr("Paste &Unformatted"), m_documents, SLOT(pasteUnformatted()), tr("Ctrl+Shift+V")); edit_menu->addSeparator(); m_actions["SelectAll"] = edit_menu->addAction(QIcon::fromTheme("edit-select-all"), tr("Select &All"), m_documents, SLOT(selectAll()), QKeySequence::SelectAll); m_actions["SelectScene"] = edit_menu->addAction(QIcon::fromTheme("edit-select-all"), tr("Select &Scene"), m_documents, SLOT(selectScene()), tr("Ctrl+Shift+A")); // Create format menu QMenu* format_menu = menuBar()->addMenu(tr("Fo&rmat")); m_actions["FormatBold"] = format_menu->addAction(QIcon::fromTheme("format-text-bold"), tr("&Bold"), m_documents, SLOT(setFontBold(bool)), QKeySequence::Bold); m_actions["FormatBold"]->setCheckable(true); m_actions["FormatItalic"] = format_menu->addAction(QIcon::fromTheme("format-text-italic"), tr("&Italic"), m_documents, SLOT(setFontItalic(bool)), QKeySequence::Italic); m_actions["FormatItalic"]->setCheckable(true); m_actions["FormatUnderline"] = format_menu->addAction(QIcon::fromTheme("format-text-underline"), tr("&Underline"), m_documents, SLOT(setFontUnderline(bool)), QKeySequence::Underline); m_actions["FormatUnderline"]->setCheckable(true); m_actions["FormatStrikeOut"] = format_menu->addAction(QIcon::fromTheme("format-text-strikethrough"), tr("Stri&kethrough"), m_documents, SLOT(setFontStrikeOut(bool)), tr("Ctrl+K")); m_actions["FormatStrikeOut"]->setCheckable(true); m_actions["FormatSuperScript"] = format_menu->addAction(QIcon::fromTheme("format-text-superscript"), tr("Sup&erscript"), m_documents, SLOT(setFontSuperScript(bool)), tr("Ctrl+^")); m_actions["FormatSuperScript"]->setCheckable(true); m_actions["FormatSubScript"] = format_menu->addAction(QIcon::fromTheme("format-text-subscript"), tr("&Subscript"), m_documents, SLOT(setFontSubScript(bool)), tr("Ctrl+_")); m_actions["FormatSubScript"]->setCheckable(true); format_menu->addSeparator(); m_actions["FormatAlignLeft"] = format_menu->addAction(QIcon::fromTheme("format-justify-left"), tr("Align &Left"), m_documents, SLOT(alignLeft()), tr("Ctrl+{")); m_actions["FormatAlignLeft"]->setCheckable(true); m_actions["FormatAlignCenter"] = format_menu->addAction(QIcon::fromTheme("format-justify-center"), tr("Align &Center"), m_documents, SLOT(alignCenter()), tr("Ctrl+|")); m_actions["FormatAlignCenter"]->setCheckable(true); m_actions["FormatAlignRight"] = format_menu->addAction(QIcon::fromTheme("format-justify-right"), tr("Align &Right"), m_documents, SLOT(alignRight()), tr("Ctrl+}")); m_actions["FormatAlignRight"]->setCheckable(true); m_actions["FormatAlignJustify"] = format_menu->addAction(QIcon::fromTheme("format-justify-fill"), tr("Align &Justify"), m_documents, SLOT(alignJustify()), tr("Ctrl+J")); m_actions["FormatAlignJustify"]->setCheckable(true); QActionGroup* alignment = new QActionGroup(this); alignment->addAction(m_actions["FormatAlignLeft"]); alignment->addAction(m_actions["FormatAlignCenter"]); alignment->addAction(m_actions["FormatAlignRight"]); alignment->addAction(m_actions["FormatAlignJustify"]); m_actions["FormatAlignLeft"]->setChecked(true); format_menu->addSeparator(); m_actions["FormatIndentDecrease"] = format_menu->addAction(QIcon::fromTheme("format-indent-less"), tr("&Decrease Indent"), m_documents, SLOT(decreaseIndent()), tr("Ctrl+<")); m_actions["FormatIndentIncrease"] = format_menu->addAction(QIcon::fromTheme("format-indent-more"), tr("I&ncrease Indent"), m_documents, SLOT(increaseIndent()), tr("Ctrl+>")); format_menu->addSeparator(); m_actions["FormatDirectionLTR"] = format_menu->addAction(QIcon::fromTheme("format-text-direction-ltr"), tr("Le&ft to Right Block"), m_documents, SLOT(setTextDirectionLTR())); m_actions["FormatDirectionLTR"]->setCheckable(true); m_actions["FormatDirectionRTL"] = format_menu->addAction(QIcon::fromTheme("format-text-direction-rtl"), tr("Ri&ght to Left Block"), m_documents, SLOT(setTextDirectionRTL())); m_actions["FormatDirectionRTL"]->setCheckable(true); QActionGroup* direction = new QActionGroup(this); direction->addAction(m_actions["FormatDirectionLTR"]); direction->addAction(m_actions["FormatDirectionRTL"]); m_actions["FormatDirectionLTR"]->setChecked(true); // Create tools menu QMenu* tools_menu = menuBar()->addMenu(tr("&Tools")); m_actions["Find"] = tools_menu->addAction(QIcon::fromTheme("edit-find"), tr("&Find..."), m_documents, SLOT(find()), QKeySequence::Find); m_actions["FindNext"] = tools_menu->addAction(QIcon::fromTheme("go-down"), tr("Find &Next"), m_documents, SLOT(findNext()), QKeySequence::FindNext); m_actions["FindNext"]->setEnabled(false); connect(m_documents, SIGNAL(findNextAvailable(bool)), m_actions["FindNext"], SLOT(setEnabled(bool))); m_actions["FindPrevious"] = tools_menu->addAction(QIcon::fromTheme("go-up"), tr("Find Pre&vious"), m_documents, SLOT(findPrevious()), QKeySequence::FindPrevious); m_actions["FindPrevious"]->setEnabled(false); connect(m_documents, SIGNAL(findNextAvailable(bool)), m_actions["FindPrevious"], SLOT(setEnabled(bool))); m_actions["Replace"] = tools_menu->addAction(QIcon::fromTheme("edit-find-replace"), tr("&Replace..."), m_documents, SLOT(replace()), keyBinding(QKeySequence::Replace, tr("Ctrl+R"))); tools_menu->addSeparator(); QMenu* quotes_menu = tools_menu->addMenu(tr("Smart &Quotes")); m_replace_document_quotes = quotes_menu->addAction(tr("Update &Document"), m_documents, SLOT(updateSmartQuotes())); m_replace_document_quotes->setStatusTip("Update Document Smart Quotes"); ActionManager::instance()->addAction("SmartQuotesUpdateDocument", m_replace_document_quotes); m_replace_selection_quotes = quotes_menu->addAction(tr("Update &Selection"), m_documents, SLOT(updateSmartQuotesSelection())); m_replace_selection_quotes->setStatusTip("Update Selection Smart Quotes"); ActionManager::instance()->addAction("SmartQuotesUpdateSelection", m_replace_selection_quotes); tools_menu->addSeparator(); m_actions["CheckSpelling"] = tools_menu->addAction(QIcon::fromTheme("tools-check-spelling"), tr("&Spelling..."), m_documents, SLOT(checkSpelling()), tr("F7")); m_actions["Timers"] = tools_menu->addAction(QIcon::fromTheme("appointment", QIcon::fromTheme("chronometer")), tr("&Timers..."), m_timers, SLOT(show())); m_actions["Symbols"] = tools_menu->addAction(QIcon::fromTheme("character-set"), tr("S&ymbols..."), m_documents, SLOT(showSymbols())); // Create settings menu QMenu* settings_menu = menuBar()->addMenu(tr("&Settings")); QAction* action = settings_menu->addAction(tr("Show &Toolbar"), this, SLOT(toggleToolbar(bool))); action->setCheckable(true); action->setChecked(QSettings().value("Toolbar/Shown", true).toBool()); ActionManager::instance()->addAction("ShowToolbar", action); #ifndef Q_OS_MAC action = settings_menu->addAction(tr("Show &Menu Icons"), this, SLOT(toggleMenuIcons(bool))); action->setCheckable(true); action->setChecked(QSettings().value("Window/MenuIcons", false).toBool()); ActionManager::instance()->addAction("ShowMenuIcons", action); #endif settings_menu->addSeparator(); QMenu* focus_menu = settings_menu->addMenu(tr("F&ocused Text")); settings_menu->addSeparator(); m_actions["Fullscreen"] = settings_menu->addAction(QIcon::fromTheme("view-fullscreen"), tr("&Fullscreen"), this, SLOT(toggleFullscreen()), tr("F11")); #ifdef Q_OS_MAC m_actions["Fullscreen"]->setShortcut(tr("Esc")); #else m_actions["Fullscreen"]->setCheckable(true); #endif m_actions["Minimize"] = settings_menu->addAction(QIcon::fromTheme("arrow-down"), tr("M&inimize"), this, SLOT(minimize()), tr("Ctrl+M")); settings_menu->addSeparator(); m_actions["Themes"] = settings_menu->addAction(QIcon::fromTheme("applications-graphics"), tr("&Themes..."), this, SLOT(themeClicked())); settings_menu->addSeparator(); m_actions["PreferencesLocale"] = settings_menu->addAction(QIcon::fromTheme("preferences-desktop-locale"), tr("Application &Language..."), this, SLOT(setLocaleClicked())); m_actions["Preferences"] = settings_menu->addAction(QIcon::fromTheme("preferences-system"), tr("&Preferences..."), this, SLOT(preferencesClicked()), QKeySequence::Preferences); m_actions["Preferences"]->setMenuRole(QAction::PreferencesRole); // Create focus sub-menu QAction* focus_mode[4]; focus_mode[0] = focus_menu->addAction(tr("&Off")); focus_mode[0]->setStatusTip(tr("Focus Off")); focus_mode[1] = focus_menu->addAction(tr("One &Line")); focus_mode[1]->setStatusTip(tr("Focus One Line")); focus_mode[2] = focus_menu->addAction(tr("&Three Lines")); focus_mode[2]->setStatusTip(tr("Focus Three Lines")); focus_mode[3] = focus_menu->addAction(tr("&Paragraph")); focus_mode[3]->setStatusTip(tr("Focus Paragraph")); m_focus_actions = new QActionGroup(this); for (int i = 0; i < 4; ++i) { focus_mode[i]->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + (Qt::Key_0 + i))); focus_mode[i]->setCheckable(true); focus_mode[i]->setData(i); m_focus_actions->addAction(focus_mode[i]); ActionManager::instance()->addAction(QString("FocusedText%1").arg(i), focus_mode[i]); } focus_mode[qBound(0, QSettings().value("Window/FocusedText").toInt(), 3)]->setChecked(true); connect(m_focus_actions, SIGNAL(triggered(QAction*)), m_documents, SLOT(setFocusMode(QAction*))); // Create help menu QMenu* help_menu = menuBar()->addMenu(tr("&Help")); m_actions["About"] = help_menu->addAction(QIcon::fromTheme("help-about"), tr("&About"), this, SLOT(aboutClicked())); m_actions["About"]->setMenuRole(QAction::AboutRole); m_actions["AboutQt"] = help_menu->addAction( #if (QT_VERSION >= QT_VERSION_CHECK(5,0,0)) QIcon(":/qt-project.org/qmessagebox/images/qtlogo-64.png"), #else QIcon(":/trolltech/qmessagebox/images/qtlogo-64.png"), #endif tr("About &Qt"), qApp, SLOT(aboutQt())); m_actions["AboutQt"]->setMenuRole(QAction::AboutQtRole); // Always show menubar #ifndef Q_OS_MAC connect(file_menu, SIGNAL(aboutToShow()), m_documents, SLOT(setHeaderVisible())); connect(edit_menu, SIGNAL(aboutToShow()), m_documents, SLOT(setHeaderVisible())); connect(format_menu, SIGNAL(aboutToShow()), m_documents, SLOT(setHeaderVisible())); connect(tools_menu, SIGNAL(aboutToShow()), m_documents, SLOT(setHeaderVisible())); connect(settings_menu, SIGNAL(aboutToShow()), m_documents, SLOT(setHeaderVisible())); connect(help_menu, SIGNAL(aboutToShow()), m_documents, SLOT(setHeaderVisible())); connect(file_menu, SIGNAL(aboutToHide()), m_documents, SLOT(showHeader())); connect(edit_menu, SIGNAL(aboutToHide()), m_documents, SLOT(showHeader())); connect(format_menu, SIGNAL(aboutToHide()), m_documents, SLOT(showHeader())); connect(tools_menu, SIGNAL(aboutToHide()), m_documents, SLOT(showHeader())); connect(settings_menu, SIGNAL(aboutToHide()), m_documents, SLOT(showHeader())); connect(help_menu, SIGNAL(aboutToHide()), m_documents, SLOT(showHeader())); #endif // Enable toolbar management in preferences dialog QHashIterator i(m_actions); while (i.hasNext()) { i.next(); i.value()->setData(i.key()); // Add to format actions if (i.key().startsWith("Format")) { m_format_actions.append(i.value()); } // Load custom shortcut ActionManager::instance()->addAction(i.key(), i.value()); } addActions(m_actions.values()); } //----------------------------------------------------------------------------- focuswriter-1.4.5/src/window.h000066400000000000000000000076351231434177300163640ustar00rootroot00000000000000/*********************************************************************** * * Copyright (C) 2008, 2009, 2010, 2011, 2012 Graeme Gott * * 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 . * ***********************************************************************/ #ifndef WINDOW_H #define WINDOW_H class Document; class DocumentCache; class DocumentWatcher; class Preferences; class SessionManager; class Sound; class Stack; class TimerManager; #include #include class QAction; class QActionGroup; class QLabel; class QSettings; class QTabBar; class QToolBar; class Window : public QMainWindow { Q_OBJECT public: Window(const QStringList& command_line_files); void addDocuments(const QStringList& files, const QStringList& datafiles, const QStringList& positions = QStringList(), int active = -1, bool show_load = false); void addDocuments(QDropEvent* event); bool closeDocuments(QSettings* session = 0); public slots: void addDocuments(const QString& documents); protected: virtual void changeEvent(QEvent* event); virtual void dragEnterEvent(QDragEnterEvent* event); virtual void dropEvent(QDropEvent* event); virtual bool event(QEvent* event); virtual void closeEvent(QCloseEvent* event); virtual void leaveEvent(QEvent* event); virtual void resizeEvent(QResizeEvent* event); private slots: void newDocument(); void openDocument(); void renameDocument(); void saveAllDocuments(); void closeDocument(); void closeDocument(Document* document); void showDocument(Document* document); void nextDocument(); void previousDocument(); void firstDocument(); void lastDocument(); void minimize(); void toggleFullscreen(); void toggleToolbar(bool visible); void toggleMenuIcons(bool visible); void themeClicked(); void preferencesClicked(); void aboutClicked(); void setLocaleClicked(); void tabClicked(int index); void tabMoved(int from, int to); void tabClosed(int index); void updateClock(); void updateDetails(); void updateFormatActions(); void updateFormatAlignmentActions(); void updateProgress(); void updateSave(); private: bool addDocument(const QString& file = QString(), const QString& datafile = QString(), int position = -1); void queueDocuments(const QStringList& files); bool saveDocument(int index); void loadPreferences(Preferences& preferences); void hideInterface(); void updateMargin(); void updateTab(int index); void updateWriteState(int index); void initMenus(); private: QToolBar* m_toolbar; QHash m_actions; QList m_format_actions; QAction* m_replace_document_quotes; QAction* m_replace_selection_quotes; QActionGroup* m_focus_actions; Stack* m_documents; DocumentCache* m_document_cache; DocumentWatcher* m_document_watcher; QThread* m_document_cache_thread; QStringList m_queued_documents; bool m_loading; QTabBar* m_tabs; SessionManager* m_sessions; TimerManager* m_timers; Sound* m_key_sound; Sound* m_enter_key_sound; QWidget* m_footer; QLabel* m_character_label; QLabel* m_page_label; QLabel* m_paragraph_label; QLabel* m_wordcount_label; QLabel* m_progress_label; QLabel* m_clock_label; QTimer* m_clock_timer; QTimer* m_save_timer; bool m_fullscreen; bool m_auto_save; bool m_save_positions; int m_goal_type; int m_time_goal; int m_wordcount_goal; int m_current_time; int m_current_wordcount; }; #endif focuswriter-1.4.5/translations/000077500000000000000000000000001231434177300166235ustar00rootroot00000000000000focuswriter-1.4.5/translations/focuswriter_ar.qm000066400000000000000000000373611231434177300222320ustar00rootroot00000000000000&vf3(0(c1~31r, +4*^ J)$.z!zElu Ԏ4'u 3GI}6Z+++,,K,x,-P-}+-,--.,,"5b4+HhDfv 0V3A2}ev 'E!QY T#5t5tiFFhF!KH5BG9!t7~M#dJjc gs(//25::*II#Z 6gl&mzC;.4l)̊|OO +z2t< um 7/Bf1)! 42"G9N (|>&Gp46@S3%%'CC1 \~& " v Y z z .3 W W2:  .^  +Iq :6 ;f4^  t / ʀs ˔( z_ B5u f VI % L.q f(  r A) + E2 c"] c" >c#+ & >(N J tf3 u `  s( V  u t \ s%? / DY, DY DZ- ^3 D uu I < n ER45)jA uWes)`-zNCN5i7%:@D'B (%1) Close (%1)Alert *,EJ9CollapseAlert(3@7ExpandAlert Ctrl+DCtrl+D AlertLayerCD 'DEDA'* (*) All Files (*)Document6F5 'DE3*F/ 'DEA*H- (*.odt).OpenDocument Text (*.odt)DocumentF5 51A (*.txt)Plain Text (*.txt)Document *-/J@+ReloadDocument*-/J@+ 'DEDA Reload FileDocument"*3EJ) 'DEDA E,//' Rename FileDocumentF5 +1J (*.rtf)Rich Text (*.rtf)Document-A8 ('3E Save File AsDocumentE9@01)!SorryDocument2D' JECF 'DC*'() 9DI '%1'.Unable to overwrite '%1'.Document2D' JECF %9'/) *3EJ) '%1'.Unable to rename '%1'.Document$D' JECF -A8 '%1'.Unable to save '%1'.Document"*-/PQ+ G0' 'DEDADo you want to reload the file?DocumentWatcher:*1J/ %:D'B G0' 'DEDA #E -A8G&Do you want to save or close the file?DocumentWatcher *,'G@DIgnoreDocumentWatcher *-/J@+ReloadDocumentWatcher(-@+&Find FindDialog'3*(/'D 'DCD&Replace FindDialog(-@+Find FindDialog CDE) :J1 EH,H/).Phrase not found. FindDialog*9(J1'* BJ'3J)Regular expressions FindDialog'3*(@/'DReplace FindDialog'3*(/'D ('DCD Replace &All FindDialog'3*(/'D:  Replace with: FindDialog(-+ *,'G *-* Search down FindDialog(-+ 9F: Search for: FindDialog(-+ *,'G AHB Search up FindDialog E901)!Sorry FindDialog %6'A)Add Highlighter5H1(%1) Images(%1) ImageButtonA*- 5H1) Open Image ImageButton<D:) 'DF8'E> LocaleDialog ED'-8)Note LocaleDialoglEF A6DC #9/ *4:JD 'D(1F'E, DJ*E *A9JD 'DD:) 'DE.*'1).JPlease restart this application for the change in language to take effect. LocaleDialog&'.*J'1 D:) 'D(1F'E,Select application language: LocaleDialog %6'A)AddPreferencesDialog%6'A) A'5D Add SeparatorPreferencesDialog(-A8 *DB'&J DD*:JJ1'*Automatically save changesPreferencesDialog9// 'D-1HACharacter countPreferencesDialog'D-1HA:  Characters:PreferencesDialogE-*HJ'*ContentsPreferencesDialog *-1J@1EditingPreferencesDialog9@'EGeneralPreferencesDialog#JBH'F'* AB7 Icons OnlyPreferencesDialog 'DD:)LanguagePreferencesDialog*-1JC %DI #3AD Move DownPreferencesDialog*-1JC %DI #9DIMove UpPreferencesDialog-,E 'D5A-) Page SizePreferencesDialog9// 'D5A-'* Page countPreferencesDialog9// 'DAB1'*Paragraph countPreferencesDialog'DAB1'*: Paragraphs:PreferencesDialogB'EH3 4.5JPersonal DictionaryPreferencesDialog*A6JD'* PreferencesPreferencesDialog-@0ARemovePreferencesDialog-A@8SavingPreferencesDialog'.*@1 B'EH3'KSelect DictionaryPreferencesDialog*F9JE 'D.7H7 Smooth fontsPreferencesDialog'DF@E@7StylePreferencesDialog F5 AB7 Text OnlyPreferencesDialog*EH69 'DF5:Text Position:PreferencesDialog"'DF5 *-* 'D#JBHF)Text Under IconsPreferencesDialog41J7 'D#/H'*ToolbarPreferencesDialog#5H'* 'D1BFTypewriter soundsPreferencesDialog2D' JECF %:D'B 'DEDA '%1'.Unable to close file '%1'.PreferencesDialog.D' JECF A*- EDA 'D#14JAUnable to open archive.PreferencesDialog.D' JECF A*- 'DEDA '%1'.Unable to open file '%1'.PreferencesDialog9// 'DCDE'* Word countPreferencesDialog'DCDE@'*:Words:PreferencesDialog2D' JECF %:D'B 'DEDA '%1'.Unable to close file '%1'.Reader0D' JECF A*- EDA 'D#14JA.Unable to open archive.Reader.D' JECF A*- 'DEDA '%1'.Unable to open file '%1'.ReaderCtrl+Shift+DownCtrl+Shift+Down SceneListCtrl+Shift+Up Ctrl+Shift+Up SceneListShift+F4Shift+F4 SceneList'D'A*1'6JDefaultSession%/'1)... &Manage...SessionManager,/J@/...&New...SessionManagerCtrl+Shift+M Ctrl+Shift+MSessionManager-@0ADeleteSessionManager(*-0A 'D,D3) 'DE-//)Delete selected session?SessionManager%/'1) 'D,D3'*Manage SessionsSessionManager,/J/NewSessionManager,D3) ,/J/) New SessionSessionManager'D*3EJ) E,//'RenameSessionManager&*3EJ) 'D,D3) E,//K'Rename SessionSessionManager'D,D3@'* S&essionsSessionManager'3E 'D,D3): Session name:SessionManager'D*(/JD %DI Switch ToSessionManagerEF A6DC 'F*81 Please Wait SmartQuote %6'A)&Add SpellChecker *:JJ@1&Change SpellChecker *,'G@D&Ignore SpellChecker %D:@'!Cancel SpellChecker*,'GD 'DCD I&gnore All SpellChecker*A'5J@DDetails SymbolsDialog %/1',Insert SymbolsDialog'D'3@E:Name: SymbolsDialog'D.DAJ@) Background ThemeDialog'DD@HF:Color: ThemeDialog 'D.@7Font: ThemeDialog'DH',@G) Foreground ThemeDialog'D5@H1):Image: ThemeDialog J3'1'Left ThemeDialog&'DE('9/) (JF 'D#371 Line Spacing ThemeDialog'DG'E@4:Margin: ThemeDialog*9/JD 'D3E) Modify Theme ThemeDialog'D'3@E:Name: ThemeDialogD' 5H1)No Image ThemeDialog'D9*@'E)Opacity ThemeDialog 'DEH69Position ThemeDialog-@0ARemove ThemeDialog JEJF@'Right ThemeDialog*-/J( 'D-H'A Rounding: ThemeDialog'D-,@E:Size: ThemeDialogE('9@/)Spacings ThemeDialog'DF5Text ThemeDialog'DF@H9:Type: ThemeDialog %6'A)Add ThemeManager %:@D'BClose ThemeManager *5/J@1Export ThemeManager*5/J1 'D3E) Export Theme ThemeManager *-EJ@DImport ThemeManager*-EJD 3E) Import Theme ThemeManager *9/J@DModify ThemeManager-@0ARemove ThemeManager&*-0A 'D3E) 'DE-//)Remove selected theme? ThemeManager'D3E@'*Themes ThemeManager EF(@GAlarmTimer-@0ADeleteTimerHH:mm:ssHH:mm:ssTimer'DF@H9:Type:TimerHH:mm:ssHH:mm:ss TimerDisplay%1 - %2%1 - %2 TimerManager+HH:mm:ss +HH:mm:ss TimerManager ,/J@/New TimerManager"'DE3*F/'* 'D#.J1)Recent TimerManager %1 (DDB1'!) AB7)%1 (Read-Only)Window-@HD&AboutWindow 3E@JC&BoldWindow(%:D'B 'DE3*F/ 'D-'DJ&CloseWindowF3@.&CopyWindow *-1J@1&EditWindowED@A&FileWindow(-@+&Find...Window E3'9/)&HelpWindow E'&@D&ItalicWindow ,/J@/&NewWindow/HF *1CJ2&OffWindowA*@-&Open...Window AB@1) &ParagraphWindowD5@B&PasteWindow*A6JD'*...&Preferences...Window 7('9) &Print...Window%:D'B 'D(1F'E,&QuitWindow'3*1,'9&RedoWindow'D*3EJ) E,//K' &Rename...Window'3*(@/'D... &Replace...Window-A@8&SaveWindow%9@/'/'* &SettingsWindow3E@'*... &Themes...Window(*1CJ2 9DI +D'+) #371 &Three LinesWindow #/H'*&ToolsWindowE371 *-*G &UnderlineWindow *1',@9&UndoWindow(%1 :J1 E9FHF) (Untitled %1)Window-@HD "CJH*J" About &QtWindow2-@HD 'D(1F'E, FocusWriterAbout FocusWriterWindow E-'0') %DI 'DH37 Align &CenterWindow6(@7Align &JustifyWindow"E-'0') %DI 'DJ3'1 Align &LeftWindow"E-'0') %DI 'DJEJF Align &RightWindowD:) 'D*7(JB...Application &Language...Window Ctrl+<Ctrl+<Window Ctrl+>Ctrl+>Window Ctrl+JCtrl+JWindow Ctrl+KCtrl+KWindow Ctrl+MCtrl+MWindow Ctrl+QCtrl+QWindow Ctrl+RCtrl+RWindowCtrl+Shift+A Ctrl+Shift+AWindowCtrl+Shift+V Ctrl+Shift+VWindow Ctrl+^Ctrl+^Window Ctrl+_Ctrl+_Window Ctrl+{Ctrl+{Window Ctrl+|Ctrl+|Window Ctrl+}Ctrl+}WindowB@5Cu&tWindowEscEscWindow 'DF5 'DE1C2 9DJG F&ocused TextWindowF11F11WindowF7F7Window#H,/ 'DD'-B Find &NextWindow#H,/ 'D3'(BFind Pre&viousWindow 'DFE@7Fo&rmatWindow/HF *1CJ2 Focus OffWindow*1CJ2 9DI 371Focus One LineWindow*1CJ2 9DI AB1)Focus ParagraphWindow(*1CJ2 9DI +D'+) #371Focus Three LinesWindow8'D'*,'G EF 'DJ3'1 %DI 'DJEJFLe&ft to Right BlockWindow*-EJD 'D%9/'/'*Loading settingsWindow*-EJD 'D#5H'*Loading soundsWindow*-EJ@D 3E@'*Loading themesWindow%/'1) 'D,D3'*Manage SessionsWindow,D3) ,/J/) New SessionWindow*1CJ2 9DI 371 One &LineWindowA*@- EDA Open FileWindowA*@- %1 Opening %1Window *-/J@+Reloa&dWindow8'D'*,'G EF 'DJEJF %DI 'DJ3'1Ri&ght to Left BlockWindow-A8 ('3E Save &As...Window-A8 'DCD Save A&llWindow*-A8 'D*:JJ1'* Save changes?Window*-/J@/ 'DCD Select &AllWindow$%8G'1 41J7 'D#/H'* Show &ToolbarWindow E4@7(Stri&kethroughWindow,'D*(/JD %DI 'DE3*F/ %1Switch to Document %1Window2'D*(/JD %DI 'DE3*F/ 'D#HDSwitch to First DocumentWindow4'D*(/JD %DI 'DE3*F/ 'D#.J1Switch to Last DocumentWindow4'D*(/JD %DI 'DE3*F/ 'DD'-BSwitch to Next DocumentWindow4'D*(/JD %DI 'DE3*F/ 'D3'(BSwitch to Previous DocumentWindow2D' JECF *-ED #5H'* 'D1BF.!Unable to load typewriter sounds.Window:J1 E9FHFUntitledWindow$ * focuswriter-1.4.5/translations/focuswriter_ar.ts000066400000000000000000002250561231434177300222430ustar00rootroot00000000000000 Alert Close (%1) إغـلاق (%1) Collapse تجميع Expand بسـط AlertLayer Dismiss Alert Ctrl+D Ctrl+D Document Sorry معـذرة! Unable to save '%1'. لا يمكن حفظ '%1'. Save File As حفظ باسم Unable to overwrite '%1'. لا يمكن الكتابة على '%1'. Rename File تسمية الملف مجددا Unable to rename '%1'. لا يمكن إعادة تسمية '%1'. Reload File تحديـث الملف Reload the file %1 from disk? All unsaved changes will be lost. Reload تحديـث Plain Text (*.txt) نص صرف (*.txt) Question Saving as plain text will discard all formatting. Discard formatting? OpenDocument Text (*.odt) نص المستند المفتوح (*.odt). Rich Text (*.rtf) نص ثري (*.rtf) All Files (*) كل الملفات (*) DocumentWatcher File Changed The file %1 was changed by another program. Do you want to reload the file? تحدِّث هذا الملف؟ Reload تحديـث Ignore تجاهـل File Deleted The file %1 was deleted by another program. Do you want to save or close the file? تريد إغلاق هذا الملف أم حفظه؟ FindDialog Search for: بحث عن: Replace with: استبدال: Ignore case Whole words only Regular expressions تعبيرات قياسية Search up بحث تجاه فوق Search down بحث تجاه تحت &Find بحـث &Replace استبدال الكل Replace &All استبدال بالكل Find بحـث Replace استبـدال Replace %n instance(s)? Question Sorry معذرة! Phrase not found. كلمة غير موجودة. Highlighter Add إضافة Check Spelling... (No suggestions found) ImageButton Open Image فتح صورة Images(%1) صور(%1) LocaleDialog Select application language: اختيار لغة البرنامج <System Language> <لغة النظام> Note ملاحظة Please restart this application for the change in language to take effect. من فضلك، أعد تشغيل البرنامج ليتم تفعيل اللغة المختارة. PreferencesDialog Preferences تفضيلات General عـام Statistics Toolbar شريط الأدوات Spell Checking Select Dictionary اختـر قاموساً Sorry Unable to open archive. لا يمكن فتح ملف الأرشيف Unable to read archive metadata. The archive does not contain a usable dictionary. Unable to open file '%1'. لا يمكن فتح الملف '%1'. Unable to close file '%1'. لا يمكن إغلاق الملف '%1'. Question Shortcuts One or more shortcuts conflict. Do you wish to proceed? The dictionary "%1" already exists. Do you want to replace it? Daily Goal None Minutes: Words: الكلمـات: Editing تحريـر Always vertically center Block insertion cursor Smooth fonts تنعيم الخطوط Typewriter sounds أصوات الرقن Smart quotes: Double Single Scenes Divider: Saving حفـظ Automatically save changes حفظ تلقائي للتغييرات Remember cursor position Contents محتويات Word count عدد الكلمات Page count عدد الصفحات Paragraph count عدد الفقرات Character count عدد الحروف Page Size حجم الصفحة Characters: الحروف: Paragraphs: الفقرات: Word Count Algorithm Detect word boundaries Divide character count by six Style النـمـط Icons Only أيقوانات فقط Text Only نص فقط Text Alongside Icons Text Under Icons النص تحت الأيقونة Text Position: تموضع النص: Actions Move Up تحريك إلى أعلى Move Down تحريك إلى أسفل Add Separator إضافة فاصل Command Shortcut Action Check spelling as you type Ignore words in UPPERCASE Ignore words with numbers Language اللغة Add إضافة Remove حـذف Personal Dictionary قاموس شخصي Reader Not a supported RTF file. Unable to open archive. لا يمكن فتح ملف الأرشيف. Unable to open file '%1'. لا يمكن فتح الملف '%1'. Unable to close file '%1'. لا يمكن إغلاق الملف '%1'. SceneList Ctrl+Shift+Down Ctrl+Shift+Down Move Scenes Up Ctrl+Shift+Up Ctrl+Shift+Up Toggle Scene List Shift+F4 Shift+F4 Show scene list (%1) Hide scene list (%1) Filter Move Scenes Down Resize scene list Session Default الافتراضي SessionManager Manage Sessions إدارة الجلسات S&essions الجلسـات New جديد Rename التسمية مجددا Clone Delete حـذف Switch To التبديل إلى New Session جلسة جديدة Clone Session Rename Session تسمية الجلسة مجددًا Question Delete selected session? تحذف الجلسة المحددة؟ Session name: اسم الجلسة: Sorry The requested session name is already in use. &New... جديـد... Ctrl+Shift+N &Manage... إدارة... Ctrl+Shift+M Ctrl+Shift+M ShortcutEdit Clear Reset to Default Shortcut: SmartQuote Replacing quotation marks... Please Wait من فضلك، انتظر SpellChecker Check Spelling &Add إضافة &Ignore تجاهـل I&gnore All تجاهل الكل &Change تغييـر C&hange All Not in dictionary: Change to: Checking spelling... Cancel إلغـاء Please wait Spell check complete. SymbolsDialog Symbols Recently used symbols All symbols Details تفاصيـل Name: الاسـم: Insert إدراج SymbolsModel Blocks Scripts Theme Untitled %1 ThemeDialog Modify Theme تعديل السمة Name: الاسـم: Background الخلفيـة No Image لا صورة Tiled Centered Stretched Scaled Zoomed Remove حـذف Type: النـوع: Color: اللـون: Image: الصـورة: Foreground الواجـهة Opacity العتـامة pixels Left يسارا Right يمينـا Position الموضع Size: الحجـم: Rounding: تحديب الحواف Margin: الهامـش: Padding: Text النص Font: الخـط Misspelled: Spacings مباعـدة Line Spacing المباعدة بين الأسطر Single 1.5 Lines Double Proportional Paragraph Spacing Indent First Line: Pixels Above: Pixels Below: The quick brown fox jumps over the lazy dog ThemeManager Themes السمـات Add إضافة Modify تعديـل Remove حـذف Import تحميـل Export تصديـر Close إغـلاق Question Remove selected theme? تحذف السمة المحددة؟ Import Theme تحميل سمة Themes (*.fwtz *.theme) Themes (*.fwtz) Sorry A theme already exists with that name. Please enter a new name: Export Theme تصدير السمة Timer <b>%1</b> - %2 Question Delete timer? <b>Words:</b> %L1 <b>Pages:</b> %L1 <b>Paragraphs:</b> %L1 <b>Characters:</b> %L1 / %L2 Set Delay Set Time Delay: Time: HH:mm:ss HH:mm:ss Alarm منبـه Type: النـوع: Memo: Edit Delete حـذف TimerDisplay HH:mm:ss HH:mm:ss No timers running TimerManager Timers New جديـد Recent المستندات الأخيرة Question Cancel editing timers? +HH:mm:ss +HH:mm:ss %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. Window Loading themes تحميـل سمـات Loading sounds تحميل الأصوات Untitled غير معنون Open File فتـح ملف About FocusWriter حـول البرنامج FocusWriter FocusWriter A simple fullscreen word processor Copyright &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Uses icons from the <a href=%1>Oxygen</a> icon theme Used under the <a href=%1>LGPL 3</a> license Characters: %L1 / %L2 Pages: %L1 Paragraphs: %L1 Words: %L1 %1% of daily goal Opening %1 فتـح %1 Question Save changes? تحفظ التغييرات؟ (Untitled %1) (%1 غير معنون) Switch to Next Document التبديل إلى المستند اللاحق Switch to Previous Document التبديل إلى المستند السابق Switch to First Document التبديل إلى المستند الأول Switch to Last Document التبديل إلى المستند الأخير Switch to Document %1 التبديل إلى المستند %1 Loading settings تحميل الإعدادات Emergency cache is not writable. Warning FocusWriter was not shut down cleanly. Restore from the emergency cache? Some files could not be opened. Some files were opened Read-Only. Text Files (%1);;All Files (*) '%1' is newer than the cached copy. Overwrite newer file? Unable to load typewriter sounds. لا يمكن تحمل أصوات الرقن. Please make sure that SDL_mixer is installed. %1 (Read-Only) %1 (للقراءة فقط) &File ملـف &New جديـد &Open... فتـح Reloa&d تحديـث &Save حفـظ Save &As... حفظ باسم &Rename... التسمية مجددًا Save A&ll حفظ الكل Manage Sessions إدارة الجلسات New Session جلسة جديدة &Print... طباعة &Close إغلاق المستند الحالي &Quit إغلاق البرنامج Ctrl+Q Ctrl+Q &Edit تحريـر &Undo تراجـع &Redo استرجاع Cu&t قـص &Copy نسـخ &Paste لصـق Paste &Unformatted Ctrl+Shift+V Ctrl+Shift+V Select &All تحديـد الكل Select &Scene Ctrl+Shift+A Ctrl+Shift+A Fo&rmat النمـط &Bold سمـيك &Italic مائـل &Underline مسطر تحته Stri&kethrough مشـطب Ctrl+K Ctrl+K Sup&erscript Ctrl+^ Ctrl+^ &Subscript Ctrl+_ Ctrl+_ Align &Left محاذاة إلى اليسار Ctrl+{ Ctrl+{ Align &Center محاذاة إلى الوسط Ctrl+| Ctrl+| Align &Right محاذاة إلى اليمين Ctrl+} Ctrl+} Align &Justify ضبـط Ctrl+J Ctrl+J &Decrease Indent Ctrl+< Ctrl+< I&ncrease Indent Ctrl+> Ctrl+> Le&ft to Right Block الاتجاه من اليسار إلى اليمين Ri&ght to Left Block الاتجاه من اليمين إلى اليسار &Tools أدوات &Find... بحـث Find &Next أوجد اللاحق Find Pre&vious أوجد السابق &Replace... استبـدال... Ctrl+R Ctrl+R Smart &Quotes Update &Document Update &Selection &Spelling... F7 F7 &Timers... S&ymbols... &Settings إعـدادات Show &Toolbar إظهار شريط الأدوات Show &Menu Icons F&ocused Text النص المركز عليه &Fullscreen F11 F11 Esc Esc M&inimize Ctrl+M Ctrl+M &Themes... سمـات... &Preferences... تفضيلات... Focus Off دون تركيز Focus One Line تركيز على سطر Focus Three Lines تركيز على ثلاثة أسطر &Paragraph فقـرة Focus Paragraph تركيز على فقرة &Help مساعدة Application &Language... لغة التطبيق... Some files were unsupported and could not be opened. &Off دون تركيز One &Line تركيز على سطر &Three Lines تركيز على ثلاثة أسطر &About حـول About &Qt حـول "كيوتي" focuswriter-1.4.5/translations/focuswriter_ca.qm000066400000000000000000001010141231434177300221760ustar00rootroot00000000000000VEVC*$RM*yR*S)*%SU*D :*0S+U+U+V+įX@AH(KJ+4J6E/J6FKQMez=PeS*M T:T?XBZC[Zi Zi@Zi"Zi3ZiHZ%"[D[M\E\N"\*'_ >Vc4[9{ O3Ϩ% Gd23]h2~m.0n&0n*NP2@'qIto^rmb"tS^<%Bc$S ~VPaqp7efbzX,F:J!eR"6R{ZU f3Xbd?.PceY"\+'aJ~kd(cJ, 4Z940^GwwA5AJ?0)'Kr$`WS|\(<WHaᑞ9GsOpN/ J`~o( WD+E+M@IgZ-gluz^ZԎ/V7 Z#; jI7Q6Z=+] ]7]d]]]^^^+_,_J-_w(K,0,Lbm@%%=]M(~g@[Ȟn_hDhvF:,+7V rAf}>vGB: IC;az>DD8$EGQY2TPf5t5t FFBKFH,H52GB +N%!+N%C'2YI6<Pts]rJ[M0dݲ Cj)csWcEP\UQ/a2588Nnj:[IIQ{JIMrZ[.|g@glTm)TzCCC 5.AjlZ.̊|8O'O+)޷5$!?c#*Yr(g+zf< uR<lCm 5pT|w"Mp}s4qZPcSi%% h' CC1yCeW \~U >kE 9J "5 %^v Y v Y z z .3&U JW) W2 WfD ; 3f ·N .^t  Ńp +IG :q ;flO d8 eE 6 q^$} t. a ʀs:c ˔XD ˼C: z_0 Bp f  V6 c;t ^, T( #" L./] f(& iqu w9< xj8 {"ul Nh 3 K ʫ ʫ z ʫ ʫ2E ʫG ʫM@ ʫP- ʫi#  A)/ pUtE = Ef cL cNM >cO4 U; 6o >W` JB Z$< eM iN!g tfk uc 3( sV E CB  'B * t 1k \ sS Ds a 8j DY^E DY0 DY0X DZ^ ^3 noLL uu {N) Pu I <j ޘ Zc#XnYE?Nltr Acl -dcRiV4pZdj-A VL9. W>e#iT sYEI,[-z,C!"v ivTanca (%1) Close (%1)AlertRedueixCollapseAlertExpandeixExpandAlert Ctrl+DCtrl+D AlertLayer"Descarta l'alerta Dismiss Alert AlertLayer(Tots els fitxers (*) All Files (*)Document6Es perdran tots els canvis.!All unsaved changes will be lost.Document2Text OpenDocument (*.odt)OpenDocument Text (*.odt)Document Text pla (*.txt)Plain Text (*.txt)DocumentPreguntaQuestionDocument Torna a carregarReloadDocument4Torna a carregar el fitxer Reload FileDocumentdVoleu tornar a carregar el fitxer %1 des del disc?Reload the file %1 from disk?Document&Reanomena el fitxer Rename FileDocument*Text enriquit (*.rtf)Rich Text (*.rtf)DocumentAnomena i desa Save File AsDocumentSi deseu com a text pla es perdran tots els canvis de format. Voleu descartar el formatatge?ESaving as plain text will discard all formatting. Discard formatting?DocumentDisculpesSorryDocumentBNo s'ha pogut sobreescriure '%1'.Unable to overwrite '%1'.Document<No s'ha pogut reanomenar '%1'.Unable to rename '%1'.Document2No s'ha pogut desar '%1'.Unable to save '%1'.DocumentbEste segur que voleu tornar a carregar el fitxer?Do you want to reload the file?DocumentWatcher>Voleu tancar o desar el fitxer?&Do you want to save or close the file?DocumentWatcher,S'ha canviat el fitxer File ChangedDocumentWatcher.S'ha esborrat el fitxer File DeletedDocumentWatcher IgnoraIgnoreDocumentWatcher Torna a carregarReloadDocumentWatcherVUn altre programa ha modificat el fitxer %1+The file %1 was changed by another program.DocumentWatcherTUn altre programa ha esborrat el fitxer %1+The file %1 was deleted by another program.DocumentWatcher Cerca&Find FindDialog&Reemplaa&Replace FindDialog TrobaFind FindDialog"Ignora majscules Ignore case FindDialog.No s'ha trobat la frasePhrase not found. FindDialogPreguntaQuestion FindDialog(Expressions regularsRegular expressions FindDialogReemplaaReplace FindDialog.Reemplaa %n instncia?0Reemplaa %n instncies?Replace %n instance(s)? FindDialog Reemplaa-ho tot Replace &All FindDialogReemplaa amb: Replace with: FindDialog$Cerca cap endavant Search down FindDialog Cerca: Search for: FindDialog Cerca cap enrere Search up FindDialogDisculpeuSorry FindDialog.Noms paraules senceresWhole words only FindDialog<(No s'han trobat suggeriments)(No suggestions found) HighlighterAfegeixAdd Highlighter*Comprova l'ortografiaCheck Spelling... HighlighterImatges (%1) Images(%1) ImageButtonObre la imatge Open Image ImageButton(<Idioma del sistema> LocaleDialogNotaNote LocaleDialogCall que reinicieu l'aplicaci perqu tingui efecte el canvi d'idiomaJPlease restart this application for the change in language to take effect. LocaleDialogHSeleccioneu l'idioma de l'aplicaci:Select application language: LocaleDialog AcciActionPreferencesDialogAccionsActionsPreferencesDialogAfegeixAddPreferencesDialog"Afegeix separador Add SeparatorPreferencesDialog6Sempre centrat verticalmentAlways vertically centerPreferencesDialog<Desa els canvis automticamentAutomatically save changesPreferencesDialog2Cursor d'inserci de blocBlock insertion cursorPreferencesDialog*Recompte de carctersCharacter countPreferencesDialogCarcters: Characters:PreferencesDialogJComprova l'ortografia mentre s'escriuCheck spelling as you typePreferencesDialog OrdreCommandPreferencesDialogContingutsContentsPreferencesDialog Objectiu del dia Daily GoalPreferencesDialogDDetecta els lmits de les paraulesDetect word boundariesPreferencesDialogRDivideix el nombre de carcters entre sisDivide character count by sixPreferencesDialogDivisorDivider:PreferencesDialog DobleDoublePreferencesDialog EditaEditingPreferencesDialogGeneralGeneralPreferencesDialogNoms icones Icons OnlyPreferencesDialogDIgnaora les paraules en MAJSCULESIgnore words in UPPERCASEPreferencesDialog>Ignora les paraules amb nmerosIgnore words with numbersPreferencesDialog IdiomaLanguagePreferencesDialogMinuts:Minutes:PreferencesDialog Baixa Move DownPreferencesDialogPujaMove UpPreferencesDialogCapNonePreferencesDialogHi ha un conflicte entre dreceres. Esteu segur que voleu continuar?7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialog"Mida de la pgina Page SizePreferencesDialog&Recompte de pgines Page countPreferencesDialog*Recompte de pargrafsParagraph countPreferencesDialogPargrafs: Paragraphs:PreferencesDialog&Diccionari personalPersonal DictionaryPreferencesDialogPreferncies PreferencesPreferencesDialogPreguntaQuestionPreferencesDialog:Recorda la posici del cursorRemember cursor positionPreferencesDialogEliminaRemovePreferencesDialogS'est desantSavingPreferencesDialogEscenesScenesPreferencesDialog2Seleccioneu un diccionariSelect DictionaryPreferencesDialogDreceraShortcutPreferencesDialogDreceres ShortcutsPreferencesDialogSenzillSinglePreferencesDialog,Cometes tipogrfiques: Smart quotes:PreferencesDialogLletres suaus Smooth fontsPreferencesDialogDisculpeuSorryPreferencesDialogOrtografiaSpell CheckingPreferencesDialogEstadstiques StatisticsPreferencesDialog EstilStylePreferencesDialog8Text al costat de les iconesText Alongside IconsPreferencesDialogNoms text Text OnlyPreferencesDialog"Posici del text:Text Position:PreferencesDialog(Text sota les iconesText Under IconsPreferencesDialognEl fitxer no cont un diccionari que es pugui utilitzar1The archive does not contain a usable dictionary.PreferencesDialoghJa existeix el diccionari '%1'. Voleu reemplaar-lo?>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialogBarra d'einesToolbarPreferencesDialog0So de mquina d'escriureTypewriter soundsPreferencesDialogFs impossible tancar el fitxer '%1'Unable to close file '%1'.PreferencesDialog:s impossible obrir el fitxerUnable to open archive.PreferencesDialogDs impossible obrir el fitxer '%1'Unable to open file '%1'.PreferencesDialogVs impossible llegir el fitxer de metadades Unable to read archive metadata.PreferencesDialogBAlgorisme de recompte de paraulesWord Count AlgorithmPreferencesDialog(Recompte de paraules Word countPreferencesDialogParaules:Words:PreferencesDialog0Fitxer RTF sense suport.Not a supported RTF file.Reader@No es pot tancar el fitxer '%1'.Unable to close file '%1'.Reader4No es pot obrir el fitxer.Unable to open archive.Reader>No es pot obrir el fitxer '%1'.Unable to open file '%1'.ReaderCtrl+Shift+DownCtrl+Shift+Down SceneListCtrl+Shift+Up Ctrl+Shift+Up SceneList FiltreFilter SceneList>Oculta la llista d'escenes (%1)Hide scene list (%1) SceneList"Baixa les escenesMove Scenes Down SceneList Puja les escenesMove Scenes Up SceneList@Redimensiona la llista d'escenesResize scene list SceneListShift+F4Shift+F4 SceneList>Mostra la llista d'escenes (%1)Show scene list (%1) SceneList6Commuta la llista d'escenesToggle Scene List SceneListPer defecteDefaultSessionAdministrar &Manage...SessionManager&Nou...&New...SessionManager ClonaCloneSessionManagerClona la sessi Clone SessionSessionManagerCtrl+Maj+M Ctrl+Shift+MSessionManagerCtrl+Maj+N Ctrl+Shift+NSessionManagerEliminaDeleteSessionManagerlEsteu segur que voleu eliminar la sessi seleccionada?Delete selected session?SessionManager*Gestiona les sessionsManage SessionsSessionManagerNouNewSessionManagerSessi nova New SessionSessionManagerPreguntaQuestionSessionManagerCanvia el nomRenameSessionManager4Canvia el nom de la sessiRename SessionSessionManagerS&essions S&essionsSessionManager"Nom de la sessi: Session name:SessionManagerDisculpesSorrySessionManagerCanvia a  Switch ToSessionManagerrEl nom de la sessi seleccionat ja est essent utilitzat.-The requested session name is already in use.SessionManager NetejaClear ShortcutEdit,Reinicia a per defecteReset to Default ShortcutEditDrecera: Shortcut: ShortcutEdit Espereu siusplau Please Wait SmartQuote*Reemplaa cometes ...Replacing quotation marks... SmartQuote&Afegeix&Add SpellChecker&Canvia&Change SpellChecker&Ignora&Ignore SpellCheckerCanvia-ho tot C&hange All SpellCheckerCancellaCancel SpellCheckerCanvia per: Change to: SpellChecker*Comprova l'ortografiaCheck Spelling SpellChecker<S'est comprovant l'ortografiaChecking spelling... SpellCheckerI&gnora-ho tot I&gnore All SpellChecker:No s'ha trobat al diccionari:Not in dictionary: SpellChecker Espereu siusplau Please wait SpellCheckerJS'ha completat la revisi ortogrficaSpell check complete. SpellChecker Tots els smbols All symbols SymbolsDialogDetallsDetails SymbolsDialogInsereixInsert SymbolsDialogNom:Name: SymbolsDialog<Smbols utilitzats darreramentRecently used symbols SymbolsDialogSmbolsSymbols SymbolsDialog BlocsBlocks SymbolsModelScriptsScripts SymbolsModelSensettol %1 Untitled %1Theme pxels pixels ThemeDialog1.5 Lnies 1.5 Lines ThemeDialogFons Background ThemeDialogCentradaCentered ThemeDialog Color:Color: ThemeDialog DobleDouble ThemeDialog Tipus de lletra:Font: ThemeDialogPrimer pla Foreground ThemeDialogImatge:Image: ThemeDialog6Sagnat de la primera lnia:Indent First Line: ThemeDialogEsquerraLeft ThemeDialog$Espai entre lnies Line Spacing ThemeDialog Marge:Margin: ThemeDialog Error ortogrfic Misspelled: ThemeDialog Modifica el Tema Modify Theme ThemeDialogNom:Name: ThemeDialogSense imatgeNo Image ThemeDialogOpacitatOpacity ThemeDialogFarciment:Padding: ThemeDialog*Espai entre pargrafsParagraph Spacing ThemeDialog"Pxels per sobre: Pixels Above: ThemeDialog Pxels per sota: Pixels Below: ThemeDialogPosiciPosition ThemeDialogProporcional Proportional ThemeDialogEsborraRemove ThemeDialog DretaRight ThemeDialogArrodoniment: Rounding: ThemeDialogEscaladaScaled ThemeDialogSenzillSingle ThemeDialog Mida:Size: ThemeDialogEspaiamentSpacings ThemeDialogEstirada Stretched ThemeDialogTextText ThemeDialogrJove xef, porti whisky amb quinze glaons d'hidrogen, coi+The quick brown fox jumps over the lazy dog ThemeDialogEn mosaicTiled ThemeDialog Tipus:Type: ThemeDialogAplica el zoomZoomed ThemeDialogtJa existeix un tema amb aquest nom. Poseu-li un altre nom:?A theme already exists with that name. Please enter a new name: ThemeManagerAfegeixAdd ThemeManager TancaClose ThemeManagerExportaExport ThemeManagerExporta Tema Export Theme ThemeManagerImportaImport ThemeManagerImporta Tema Import Theme ThemeManagerModificaModify ThemeManagerPreguntaQuestion ThemeManagerEliminaRemove ThemeManagerfEsteu segur que voleu eliminar el Tema seleccionat?Remove selected theme? ThemeManagerDisculpesSorry ThemeManager TemesThemes ThemeManager,Temes (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManagerTemes (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer6<b>Carcters:</b> %L1 / %L2Characters: %L1 / %L2Timer&<b>Pgines:</b> %L1Pages: %L1Timer*<b>Pargrafs:</b> %L1Paragraphs: %L1Timer(<b>Paraules:</b> %L1Words: %L1Timer AlarmaAlarmTimerRetard:Delay:TimerEsborraDeleteTimer@Voleu eliminar el temporitzador? Delete timer?Timer EditaEditTimerHH:mm:ssHH:mm:ssTimerMemorndumMemo:TimerPreguntaQuestionTimer Ajusta el retard Set DelayTimer Ajusta el tempsSet TimeTimer Temps:Time:Timer Tipus:Type:TimerHH:mm:ssHH:mm:ss TimerDisplayFNo hi ha cap temporitzador en marxaNo timers running TimerDisplay%1 - %2%1 - %2 TimerManager+HH:mm:ss +HH:mm:ss TimerManager\Voleu cancellar els temporitzadors existents?Cancel editing timers? TimerManagerNouNew TimerManagerPreguntaQuestion TimerManager RecentRecent TimerManagerTemporitzadorsTimers TimerManager`S'ha arribat inesperadament al final del fitxer.!Unexpectedly reached end of file. Tokenizer$%1 (Noms lectura)%1 (Read-Only)Window.%1% de l'objectiu diari%1% of daily goalWindow Sobre&AboutWindowNegreta&BoldWindow Tan&ca&CloseWindow &Copia&CopyWindow*&Disminueix el sagnat&Decrease IndentWindow &Edita&EditWindow&Fitxer&FileWindowCerca...&Find...Window"Pantalla completa &FullscreenWindow Ajuda&HelpWindowItlica&ItalicWindow&Nou&NewWindow Tanca&OffWindow &Obre&Open...Window&Pargraf &ParagraphWindowEnganxa&PasteWindow &Preferncies...&Preferences...WindowIm&primeix &Print...WindowSurt&QuitWindow &Refs&RedoWindow&Reanomena... &Rename...WindowReemplaa &Replace...Window &Desa&SaveWindowConfiguraci &SettingsWindowOrtografia &Spelling...Window&Subndex &SubscriptWindow&Temes... &Themes...Window&Tres lnies &Three LinesWindow&Temporitzadors &Timers...Window Eines&ToolsWindowS&ubratllat &UnderlineWindow Desfs&UndoWindow\'%1's ms nou que la cpia de la memria cau.#'%1' is newer than the cached copy.Window (Sense ttol %1) (Untitled %1)WindowdUn processador de text senzill a pantalla completa"A simple fullscreen word processorWindowSobre &Qt About &QtWindow"Sobre FocusWriterAbout FocusWriterWindow"Alinea al &Centre Align &CenterWindow&JustificaAlign &JustifyWindow&Alinea a l'esquerra Align &LeftWindow"Alinea a la dreta Align &RightWindow*Idioma de l'aplicaciApplication &Language...Window(Carcters: %L1 / %L2Characters: %L1 / %L2WindowHCopyright &copy; 2008-%1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindow Ctrl+<Ctrl+<Window Ctrl+>Ctrl+>Window Ctrl+JCtrl+JWindow Ctrl+KCtrl+KWindow Ctrl+MCtrl+MWindow Ctrl+QCtrl+QWindow Ctrl+RCtrl+RWindowCtrl+Shift+A Ctrl+Shift+AWindowCtrl+Shift+V Ctrl+Shift+VWindow Ctrl+^Ctrl+^Window Ctrl+_Ctrl+_Window Ctrl+{Ctrl+{Window Ctrl+|Ctrl+|Window Ctrl+}Ctrl+}Window TallaCu&tWindowbNo es pot escriure a la memria cau d'emergncia. Emergency cache is not writable.WindowEscEscWindowText focalitzat F&ocused TextWindowF11F11WindowF7F7Window Cerca el segent Find &NextWindow Cerca l'anteriorFind Pre&viousWindowFo&rmatFo&rmatWindowNo focalitzis Focus OffWindow&Focalitza una lniaFocus One LineWindow*Focalitza un pargrafFocus ParagraphWindow*Focalitza tres lniesFocus Three LinesWindowFocusWriter FocusWriterWindowRFocusWriter no es va tancat correctament.&FocusWriter was not shut down cleanly.Window*I&ncrementa el sagnatI&ncrease IndentWindow6Escriure d'esquerra a dretaLe&ft to Right BlockWindow:S'estan carregant els ajustosLoading settingsWindow4S'estan carregant els sonsLoading soundsWindow6S'estan carregant els TemesLoading themesWindowM&inimitza M&inimizeWindow*Gestiona les sessionsManage SessionsWindowNova sessi New SessionWindowUna &Lnia One &LineWindowbre fitxer Open FileWindow'est obrint %1 Opening %1WindowLVoleu sobreescriure el fitxer ms nou?Overwrite newer file?WindowPgines: %L1 Pages: %L1WindowPargrafs: %L1Paragraphs: %L1Window(Enganxa sense formatPaste &UnformattedWindowTAssegureu-vos que heu installat SDL_mixer-Please make sure that SDL_mixer is installed.WindowPreguntaQuestionWindowZPublicat sota llicncia <a href=%1>GPL 3</a>/Released under the GPL 3 licenseWindow Torna a carregarReloa&dWindowfVoleu restaurar des de la memria cau d'emergncia?!Restore from the emergency cache?Window8Escriure de dreta a esquerraRi&ght to Left BlockWindowS&mbols... S&ymbols...WindowDesa &com... Save &As...WindowDesa-ho tot Save A&llWindow.Voleu desar els canvis? Save changes?WindowSeleccion&a tot Select &AllWindow&Selecciona l'escena Select &SceneWindow4Mostra les icones del menShow &Menu IconsWindow.Mostra la barra d'eines Show &ToolbarWindow*Cometes tipogrfiques Smart &QuotesWindowHNo s'han pogut obrir alguns fitxers.Some files could not be opened.WindowhS'han obert alguns fitxers en mode de Noms lectura.!Some files were opened Read-Only.WindowfAlguns fitxers no tenen suport i no es podran obrir4Some files were unsupported and could not be opened.WindowRatllatStri&kethroughWindowSup&erndex Sup&erscriptWindow*Canvia al document %1Switch to Document %1Window2Canvia al primer documentSwitch to First DocumentWindow2Canvia al darrer documentSwitch to Last DocumentWindow0Canvia a un document nouSwitch to Next DocumentWindow6Canvia al document anteriorSwitch to Previous DocumentWindowRFitxers de text (%1);;Tots el fitxers (*)Text Files (%1);;All Files (*)WindownNo s'han pogut carregar els sons de mquina d'escriure.!Unable to load typewriter sounds.WindowSense ttolUntitledWindow,Actualitza el documentUpdate &DocumentWindow,Actualitza la selecciUpdate &SelectionWindow`Utilitzades sota llicncia <a href=%1>LGPL 3</a>,Used under the LGPL 3 licenseWindow\Usa les icones del tema <a href=%1>Oxygen</a> 4Uses icons from the Oxygen icon themeWindowAvsWarningWindowParaules: %L1 Words: %L1WindowA focuswriter-1.4.5/translations/focuswriter_ca.ts000066400000000000000000002246241231434177300222240ustar00rootroot00000000000000 Alert Close (%1) Tanca (%1) Collapse Redueix Expand Expandeix AlertLayer Dismiss Alert Descarta l'alerta Ctrl+D Ctrl+D Document Sorry Disculpes Unable to save '%1'. No s'ha pogut desar '%1'. Save File As Anomena i desa Unable to overwrite '%1'. No s'ha pogut sobreescriure '%1'. Rename File Reanomena el fitxer Unable to rename '%1'. No s'ha pogut reanomenar '%1'. Reload File Torna a carregar el fitxer Reload the file %1 from disk? Voleu tornar a carregar el fitxer %1 des del disc? All unsaved changes will be lost. Es perdran tots els canvis. Reload Torna a carregar Plain Text (*.txt) Text pla (*.txt) Question Pregunta Saving as plain text will discard all formatting. Discard formatting? Si deseu com a text pla es perdran tots els canvis de format. Voleu descartar el formatatge? OpenDocument Text (*.odt) Text OpenDocument (*.odt) Rich Text (*.rtf) Text enriquit (*.rtf) All Files (*) Tots els fitxers (*) DocumentWatcher File Changed S'ha canviat el fitxer The file %1 was changed by another program. Un altre programa ha modificat el fitxer %1 Do you want to reload the file? Este segur que voleu tornar a carregar el fitxer? Reload Torna a carregar Ignore Ignora File Deleted S'ha esborrat el fitxer The file %1 was deleted by another program. Un altre programa ha esborrat el fitxer %1 Do you want to save or close the file? Voleu tancar o desar el fitxer? FindDialog Search for: Cerca: Replace with: Reemplaça amb: Ignore case Ignora majúscules Whole words only Només paraules senceres Regular expressions Expressions regulars Search up Cerca cap enrere Search down Cerca cap endavant &Find Cerca &Replace &Reemplaça Replace &All Reemplaça-ho tot Find Troba Replace Reemplaça Replace %n instance(s)? Reemplaça %n instància? Reemplaça %n instàncies? Question Pregunta Sorry Disculpeu Phrase not found. No s'ha trobat la frase Highlighter Add Afegeix Check Spelling... Comprova l'ortografia (No suggestions found) (No s'han trobat suggeriments) ImageButton Open Image Obre la imatge Images(%1) Imatges (%1) LocaleDialog Select application language: Seleccioneu l'idioma de l'aplicació: <System Language> <Idioma del sistema> Note Nota Please restart this application for the change in language to take effect. Call que reinicieu l'aplicació perquè tingui efecte el canvi d'idioma PreferencesDialog Preferences Preferències General General Statistics Estadístiques Toolbar Barra d'eines Spell Checking Ortografia Select Dictionary Seleccioneu un diccionari Sorry Disculpeu Unable to open archive. És impossible obrir el fitxer Unable to read archive metadata. És impossible llegir el fitxer de metadades The archive does not contain a usable dictionary. El fitxer no conté un diccionari que es pugui utilitzar Unable to open file '%1'. És impossible obrir el fitxer '%1' Unable to close file '%1'. És impossible tancar el fitxer '%1' Question Pregunta Shortcuts Dreceres One or more shortcuts conflict. Do you wish to proceed? Hi ha un conflicte entre dreceres. Esteu segur que voleu continuar? The dictionary "%1" already exists. Do you want to replace it? Ja existeix el diccionari '%1'. Voleu reemplaçar-lo? Daily Goal Objectiu del dia None Cap Minutes: Minuts: Words: Paraules: Editing Edita Always vertically center Sempre centrat verticalment Block insertion cursor Cursor d'inserció de bloc Smooth fonts Lletres suaus Typewriter sounds So de màquina d'escriure Smart quotes: Cometes tipogràfiques: Double Doble Single Senzill Scenes Escenes Divider: Divisor Saving S'està desant Automatically save changes Desa els canvis automàticament Remember cursor position Recorda la posició del cursor Contents Continguts Word count Recompte de paraules Page count Recompte de pàgines Paragraph count Recompte de paràgrafs Character count Recompte de caràcters Page Size Mida de la pàgina Characters: Caràcters: Paragraphs: Paràgrafs: Word Count Algorithm Algorisme de recompte de paraules Detect word boundaries Detecta els límits de les paraules Divide character count by six Divideix el nombre de caràcters entre sis Style Estil Icons Only Només icones Text Only Només text Text Alongside Icons Text al costat de les icones Text Under Icons Text sota les icones Text Position: Posició del text: Actions Accions Move Up Puja Move Down Baixa Add Separator Afegeix separador Command Ordre Shortcut Drecera Action Acció Check spelling as you type Comprova l'ortografia mentre s'escriu Ignore words in UPPERCASE Ignaora les paraules en MAJÚSCULES Ignore words with numbers Ignora les paraules amb números Language Idioma Add Afegeix Remove Elimina Personal Dictionary Diccionari personal Reader Not a supported RTF file. Fitxer RTF sense suport. Unable to open archive. No es pot obrir el fitxer. Unable to open file '%1'. No es pot obrir el fitxer '%1'. Unable to close file '%1'. No es pot tancar el fitxer '%1'. SceneList Ctrl+Shift+Down Ctrl+Shift+Down Move Scenes Up Puja les escenes Ctrl+Shift+Up Ctrl+Shift+Up Toggle Scene List Commuta la llista d'escenes Shift+F4 Shift+F4 Show scene list (%1) Mostra la llista d'escenes (%1) Hide scene list (%1) Oculta la llista d'escenes (%1) Filter Filtre Move Scenes Down Baixa les escenes Resize scene list Redimensiona la llista d'escenes Session Default Per defecte SessionManager Manage Sessions Gestiona les sessions S&essions S&essions New Nou Rename Canvia el nom Clone Clona Delete Elimina Switch To Canvia a New Session Sessió nova Clone Session Clona la sessió Rename Session Canvia el nom de la sessió Question Pregunta Delete selected session? Esteu segur que voleu eliminar la sessió seleccionada? Session name: Nom de la sessió: Sorry Disculpes The requested session name is already in use. El nom de la sessió seleccionat ja està essent utilitzat. &New... &Nou... Ctrl+Shift+N Ctrl+Maj+N &Manage... Administrar Ctrl+Shift+M Ctrl+Maj+M ShortcutEdit Clear Neteja Reset to Default Reinicia a per defecte Shortcut: Drecera: SmartQuote Replacing quotation marks... Reemplaça cometes ... Please Wait Espereu siusplau SpellChecker Check Spelling Comprova l'ortografia &Add &Afegeix &Ignore &Ignora I&gnore All I&gnora-ho tot &Change &Canvia C&hange All Canvia-ho tot Not in dictionary: No s'ha trobat al diccionari: Change to: Canvia per: Checking spelling... S'està comprovant l'ortografia Cancel Cancel·la Please wait Espereu siusplau Spell check complete. S'ha completat la revisió ortogràfica SymbolsDialog Symbols Símbols Recently used symbols Símbols utilitzats darrerament All symbols Tots els símbols Details Detalls Name: Nom: Insert Insereix SymbolsModel Blocks Blocs Scripts Scripts Theme Untitled %1 Sensetítol %1 ThemeDialog Modify Theme Modifica el Tema Name: Nom: Background Fons No Image Sense imatge Tiled En mosaic Centered Centrada Stretched Estirada Scaled Escalada Zoomed Aplica el zoom Remove Esborra Type: Tipus: Color: Color: Image: Imatge: Foreground Primer pla Opacity Opacitat pixels píxels Left Esquerra Right Dreta Position Posició Size: Mida: Rounding: Arrodoniment: Margin: Marge: Padding: Farciment: Text Text Font: Tipus de lletra: Misspelled: Error ortogràfic Spacings Espaiament Line Spacing Espai entre línies Single Senzill 1.5 Lines 1.5 Línies Double Doble Proportional Proporcional Paragraph Spacing Espai entre paràgrafs Indent First Line: Sagnat de la primera línia: Pixels Above: Píxels per sobre: Pixels Below: Píxels per sota: The quick brown fox jumps over the lazy dog Jove xef, porti whisky amb quinze glaçons d'hidrogen, coi ThemeManager Themes Temes Add Afegeix Modify Modifica Remove Elimina Import Importa Export Exporta Close Tanca Question Pregunta Remove selected theme? Esteu segur que voleu eliminar el Tema seleccionat? Import Theme Importa Tema Themes (*.fwtz *.theme) Temes (*.fwtz *.theme) Themes (*.fwtz) Temes (*.fwtz) Sorry Disculpes A theme already exists with that name. Please enter a new name: Ja existeix un tema amb aquest nom. Poseu-li un altre nom: Export Theme Exporta Tema Timer <b>%1</b> - %2 <b>%1</b> - %2 Question Pregunta Delete timer? Voleu eliminar el temporitzador? <b>Words:</b> %L1 <b>Paraules:</b> %L1 <b>Pages:</b> %L1 <b>Pàgines:</b> %L1 <b>Paragraphs:</b> %L1 <b>Paràgrafs:</b> %L1 <b>Characters:</b> %L1 / %L2 <b>Caràcters:</b> %L1 / %L2 Set Delay Ajusta el retard Set Time Ajusta el temps Delay: Retard: Time: Temps: HH:mm:ss HH:mm:ss Alarm Alarma Type: Tipus: Memo: Memoràndum Edit Edita Delete Esborra TimerDisplay HH:mm:ss HH:mm:ss No timers running No hi ha cap temporitzador en marxa TimerManager Timers Temporitzadors New Nou Recent Recent Question Pregunta Cancel editing timers? Voleu cancel·lar els temporitzadors existents? +HH:mm:ss +HH:mm:ss %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. S'ha arribat inesperadament al final del fitxer. Window Loading themes S'estan carregant els Temes Loading sounds S'estan carregant els sons Untitled Sense títol Open File bre fitxer About FocusWriter Sobre FocusWriter FocusWriter FocusWriter A simple fullscreen word processor Un processador de text senzill a pantalla completa Copyright &copy; 2008-%1 Graeme Gott Copyright &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Publicat sota llicència <a href=%1>GPL 3</a> Uses icons from the <a href=%1>Oxygen</a> icon theme Usa les icones del tema <a href=%1>Oxygen</a> Used under the <a href=%1>LGPL 3</a> license Utilitzades sota llicència <a href=%1>LGPL 3</a> Characters: %L1 / %L2 Caràcters: %L1 / %L2 Pages: %L1 Pàgines: %L1 Paragraphs: %L1 Paràgrafs: %L1 Words: %L1 Paraules: %L1 %1% of daily goal %1% de l'objectiu diari Opening %1 'està obrint %1 Question Pregunta Save changes? Voleu desar els canvis? (Untitled %1) (Sense títol %1) Switch to Next Document Canvia a un document nou Switch to Previous Document Canvia al document anterior Switch to First Document Canvia al primer document Switch to Last Document Canvia al darrer document Switch to Document %1 Canvia al document %1 Loading settings S'estan carregant els ajustos Emergency cache is not writable. No es pot escriure a la memòria cau d'emergència. Warning Avís FocusWriter was not shut down cleanly. FocusWriter no es va tancat correctament. Restore from the emergency cache? Voleu restaurar des de la memòria cau d'emergència? Some files could not be opened. No s'han pogut obrir alguns fitxers. Some files were opened Read-Only. S'han obert alguns fitxers en mode de Només lectura. Text Files (%1);;All Files (*) Fitxers de text (%1);;Tots el fitxers (*) '%1' is newer than the cached copy. '%1'és més nou que la còpia de la memòria cau. Overwrite newer file? Voleu sobreescriure el fitxer més nou? Unable to load typewriter sounds. No s'han pogut carregar els sons de màquina d'escriure. Please make sure that SDL_mixer is installed. Assegureu-vos que heu instal·lat SDL_mixer %1 (Read-Only) %1 (Només lectura) &File &Fitxer &New &Nou &Open... &Obre Reloa&d Torna a carregar &Save &Desa Save &As... Desa &com... &Rename... &Reanomena... Save A&ll Desa-ho tot Manage Sessions Gestiona les sessions New Session Nova sessió &Print... Im&primeix &Close Tan&ca &Quit Surt Ctrl+Q Ctrl+Q &Edit &Edita &Undo Desfés &Redo &Refés Cu&t Talla &Copy &Copia &Paste Enganxa Paste &Unformatted Enganxa sense format Ctrl+Shift+V Ctrl+Shift+V Select &All Seleccion&a tot Select &Scene Selecciona l'escena Ctrl+Shift+A Ctrl+Shift+A Fo&rmat Fo&rmat &Bold Negreta &Italic Itàlica &Underline S&ubratllat Stri&kethrough Ratllat Ctrl+K Ctrl+K Sup&erscript Sup&eríndex Ctrl+^ Ctrl+^ &Subscript &Subíndex Ctrl+_ Ctrl+_ Align &Left Alinea a l'esquerra Ctrl+{ Ctrl+{ Align &Center Alinea al &Centre Ctrl+| Ctrl+| Align &Right Alinea a la dreta Ctrl+} Ctrl+} Align &Justify &Justifica Ctrl+J Ctrl+J &Decrease Indent &Disminueix el sagnat Ctrl+< Ctrl+< I&ncrease Indent I&ncrementa el sagnat Ctrl+> Ctrl+> Le&ft to Right Block Escriure d'esquerra a dreta Ri&ght to Left Block Escriure de dreta a esquerra &Tools Eines &Find... Cerca... Find &Next Cerca el següent Find Pre&vious Cerca l'anterior &Replace... Reemplaça Ctrl+R Ctrl+R Smart &Quotes Cometes tipogràfiques Update &Document Actualitza el document Update &Selection Actualitza la selecció &Spelling... Ortografia F7 F7 &Timers... &Temporitzadors S&ymbols... S&ímbols... &Settings Configuració Show &Toolbar Mostra la barra d'eines Show &Menu Icons Mostra les icones del menú F&ocused Text Text focalitzat &Fullscreen Pantalla completa F11 F11 Esc Esc M&inimize M&inimitza Ctrl+M Ctrl+M &Themes... &Temes... &Preferences... &Preferències... Focus Off No focalitzis Focus One Line Focalitza una línia Focus Three Lines Focalitza tres línies &Paragraph &Paràgraf Focus Paragraph Focalitza un paràgraf &Help Ajuda Application &Language... Idioma de l'aplicació Some files were unsupported and could not be opened. Alguns fitxers no tenen suport i no es podran obrir &Off Tanca One &Line Una &Línia &Three Lines &Tres línies &About Sobre About &Qt Sobre &Qt focuswriter-1.4.5/translations/focuswriter_cs.qm000066400000000000000000000764751231434177300222460ustar00rootroot00000000000000Z?ZiZifZi Zi0lZiE~Z% [A[J=\A\Jd\*{_ >Sc4WU{ O0Ϩ%a`.3]c~i6.0n$\0n'P2kFDH5/TG?#+(N%-N%?g2UE<LtnrFM-dݲ mj&csScAXUM/]-25:8Ni:WIIMeJIIZ[+g<lPm&zC?C2.=flV6̊|5 O%5O(Q޷1!;!* mc+zbB< uR8lC:m p8xe]j<j^2f`!gw4Y2K 9} G9NCf/b|>P|w Kp$}o54lP_&Se%% x' 7@C.YCa/ \~Q >f 5 "2S %^ Y  v Y z zO .3# JSE W. Wb 8( 0" ·J .^ Ń +IW :m6 ;fg d8 eEE 3; q^"O t+ ] ʀs6 ˔Tf ˼C6j z_~ Bk f  V3q c7 ^) P" # L.,o f(# iqp w98^ xj5S {"ug Nd1  G ʫ ʫ ʫ ʫ/ ʫD ʫI ʫL+ ʫd  A)c pUo} : Eb~ cI1 cJ >cKV QK 6k` >S J> Z$9A eJ iN!c[ tfgE u / sR B8 C>1  $ ' t 1c \ ) sOu Dn ] 8j DYZS DY-/ DY-v DZZ ^3 noH uu< {N' Pp I < ޘ Zc!TnmE;NltrTAch? *Kd_Ne 4ld Vdj+ A L9+@W;e!hiTsUgI)-z nC" @iq0ZavYt (%1) Close (%1)Alert Slo~itCollapseAlertRozbalitExpandAlert Ctrl+DCtrl+D AlertLayerOdvolat poplach Dismiss Alert AlertLayer&Vaechny soubory (*) All Files (*)DocumentNVaechny neulo~en zmny budou ztraceny.!All unsaved changes will be lost.Document2OpenDocument Text (*.odt)OpenDocument Text (*.odt)Document&Prost text (*.txt)Plain Text (*.txt)Document OtzkaQuestionDocumentNahrt znovuReloadDocument&Nahrt soubor znovu Reload FileDocument2Nahrt soubor %1 z disku?Reload the file %1 from disk?Document$PYejmenovat soubor Rename FileDocument6Text s formtovnm (*.rtf)Rich Text (*.rtf)Document$Ulo~it soubor jako Save File AsDocumentUlo~en v prostm textu zahod vaechno formtovn. Zahodit formtovn?ESaving as plain text will discard all formatting. Discard formatting?DocumentPromiHteSorryDocument&Nelze pYepsat '%1'.Unable to overwrite '%1'.Document.Nelze pYejmenovat '%1'.Unable to rename '%1'.Document$Nelze ulo~it '%1'.Unable to save '%1'.Document6Chcete soubor nahrt znovu?Do you want to reload the file?DocumentWatcherBChcete soubor ulo~it nebo zavYt?&Do you want to save or close the file?DocumentWatcherSoubor zmnn File ChangedDocumentWatcherSoubor smazn File DeletedDocumentWatcherPYehl~etIgnoreDocumentWatcherNahrt znovuReloadDocumentWatcherBSoubor %1 zmnn jinm programem.+The file %1 was changed by another program.DocumentWatcherJSoubor %1 byl smazn jinm programem.+The file %1 was deleted by another program.DocumentWatcher&Hledat&Find FindDialog&Nahradit&Replace FindDialog NajtFind FindDialog8Nevamat si velikosti psmen Ignore case FindDialogBSlovn spojen nebylo nenalezeno.Phrase not found. FindDialog OtzkaQuestion FindDialog Regulrn vrazyRegular expressions FindDialogNahraditReplace FindDialog,Nahradit jeden pYpad?(Nahradit %n pYpady?(Nahradit %n pYpado?Replace %n instance(s)? FindDialogNahradit &vae Replace &All FindDialogNahradit: Replace with: FindDialogHledat dolo Search down FindDialogHledat: Search for: FindDialogHledat nahoru Search up FindDialogPromiHteSorry FindDialog Pouze cel slovaWhole words only FindDialog<(Nebyly nalezeny ~dn nvrhy)(No suggestions found) Highlighter PYidatAdd Highlighter(OvYen pravopisu...Check Spelling... HighlighterObrzky (%1) Images(%1) ImageButtonOtevYt obrzek Open Image ImageButton<Jazyk systmu> LocaleDialogPoznmkaNote LocaleDialogjSpusete program znovu, aby se zmna jazyka projevila.JPlease restart this application for the change in language to take effect. LocaleDialog,Vybrat jazyk programu:Select application language: LocaleDialog innostActionPreferencesDialog innostiActionsPreferencesDialog PYidatAddPreferencesDialog PYidat oddlova  Add SeparatorPreferencesDialog:Umstit v~dy svisle do stYeduAlways vertically centerPreferencesDialog0Automaticky ulo~it zmnyAutomatically save changesPreferencesDialog.Ukazatel vkldn blokuBlock insertion cursorPreferencesDialogPo et znakoCharacter countPreferencesDialog Znako: Characters:PreferencesDialog>OvYovn pravopisu bhem psanCheck spelling as you typePreferencesDialog PYkazCommandPreferencesDialog ObsahContentsPreferencesDialogDenn cl Daily GoalPreferencesDialog(Zjistit hranice slovDetect word boundariesPreferencesDialog2Vydlit po et znako aestiDivide character count by sixPreferencesDialogOddlova Divider:PreferencesDialogdvojitDoublePreferencesDialog pravyEditingPreferencesDialog ObecnGeneralPreferencesDialogPouze ikony Icons OnlyPreferencesDialogPNevamat si slov psanch VELKMI PSMENYIgnore words in UPPERCASEPreferencesDialog0Nevamat si slov s  slyIgnore words with numbersPreferencesDialog JazykLanguagePreferencesDialog Minut:Minutes:PreferencesDialogPosunout dolo Move DownPreferencesDialogPosunout nahoruMove UpPreferencesDialog }dnNonePreferencesDialogbStYet jedn nebo vce zkratek. Chcete pokra ovat?7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialogVelikost strany Page SizePreferencesDialogPo et stran Page countPreferencesDialogPo et odstavcoParagraph countPreferencesDialogOdstavco: Paragraphs:PreferencesDialogOsobn slovnkPersonal DictionaryPreferencesDialogNastaven PreferencesPreferencesDialog OtzkaQuestionPreferencesDialog>Zapamatovat si polohu ukazateleRemember cursor positionPreferencesDialogOdstranitRemovePreferencesDialogUkldnSavingPreferencesDialog ScnyScenesPreferencesDialogVybrat slovnkSelect DictionaryPreferencesDialogZkratkaShortcutPreferencesDialogZkratky ShortcutsPreferencesDialogjednoduchSinglePreferencesDialog Chytr uvozovky: Smart quotes:PreferencesDialogVyhlazen psma Smooth fontsPreferencesDialogPromiHteSorryPreferencesDialogSprvn psanSpell CheckingPreferencesDialogStatistika StatisticsPreferencesDialogStylStylePreferencesDialogText vedle ikonText Alongside IconsPreferencesDialogPouze text Text OnlyPreferencesDialogPoloha textu:Text Position:PreferencesDialog Text pod ikonamiText Under IconsPreferencesDialogJArchiv neobsahuje pou~iteln slovnk.1The archive does not contain a usable dictionary.PreferencesDialog^Slovnk "%1" ji~ existuje. Chcete jej nahradit?>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialogNstrojov pruhToolbarPreferencesDialog(Zvuky psacho strojeTypewriter soundsPreferencesDialog2Nelze zavYt soubor '%1'.Unable to close file '%1'.PreferencesDialog*Nelze otevYt archiv.Unable to open archive.PreferencesDialog4Nelze otevYt soubor '%1'.Unable to open file '%1'.PreferencesDialog>Nelze pYe st metadata archivu. Unable to read archive metadata.PreferencesDialog8Algoritmus pro po tn slovWord Count AlgorithmPreferencesDialogPo et slov Word countPreferencesDialog Slov:Words:PreferencesDialogBToto nen podporovan soubor RTF.Not a supported RTF file.Reader2Nelze zavYt soubor '%1'.Unable to close file '%1'.Reader*Nelze otevYt archiv.Unable to open archive.Reader4Nelze otevYt soubor '%1'.Unable to open file '%1'.Reader*Ctrl+Shift+aipka doloCtrl+Shift+Down SceneList.Ctrl+Shift+aipka nahoru Ctrl+Shift+Up SceneList FiltrFilter SceneList,Skrt seznam scn (%1)Hide scene list (%1) SceneList(PYesunout scny doloMove Scenes Down SceneList,PYesunout scny nahoruMove Scenes Up SceneList8Zmnit velikost seznamu scnResize scene list SceneListShift+F4Shift+F4 SceneList.Ukzat seznam scn (%1)Show scene list (%1) SceneList(PYepnout seznam scnToggle Scene List SceneListVchozDefaultSession&Spravovat... &Manage...SessionManager&Nov...&New...SessionManagerKlonovatCloneSessionManagerKlonovat sezen Clone SessionSessionManagerCtrl+Shift+M Ctrl+Shift+MSessionManagerCtrl+Shift+N Ctrl+Shift+NSessionManager SmazatDeleteSessionManager,Smazat vybran sezen?Delete selected session?SessionManager Spravovat sezenManage SessionsSessionManagerNovNewSessionManagerNov sezen New SessionSessionManager OtzkaQuestionSessionManagerPYejmenovatRenameSessionManager$PYejmenovat sezenRename SessionSessionManagerS&ezen S&essionsSessionManagerNzev sezen: Session name:SessionManagerPromiHteSorrySessionManagerPYepnout na Switch ToSessionManagerNPo~adovan nzev sezen se ji~ pou~v.-The requested session name is already in use.SessionManager SmazatClear ShortcutEdit2Nastavit znovu na vchozReset to Default ShortcutEditZkratka: Shortcut: ShortcutEdit Po kejte, prosm Please Wait SmartQuote0Nahrazuj se uvozovky...Replacing quotation marks... SmartQuote&PYidat&Add SpellChecker&Zmnit&Change SpellCheckerPYe&hl~et&Ignore SpellCheckerZm&nit C&hange All SpellChecker ZruaitCancel SpellCheckerZmnit na: Change to: SpellChecker"OvYen pravopisuCheck Spelling SpellChecker,OvYuje se pravopis...Checking spelling... SpellCheckerPYeh&l~et vae I&gnore All SpellCheckerNe ve slovnku:Not in dictionary: SpellChecker Po kejte, prosm Please wait SpellCheckerDOvYen sprvnho psan je hotovo.Spell check complete. SpellCheckerVaechny symboly All symbols SymbolsDialogPodrobnostiDetails SymbolsDialog Vlo~itInsert SymbolsDialog Nzev:Name: SymbolsDialog.Nedvno pou~it symbolyRecently used symbols SymbolsDialogSymbolySymbols SymbolsDialog BlokyBlocks SymbolsModelSkriptyScripts SymbolsModelBez nzvu %1 Untitled %1Theme pixelo pixels ThemeDialog1.5 Ydku 1.5 Lines ThemeDialog Pozad Background ThemeDialogVystYednoCentered ThemeDialog Barva:Color: ThemeDialogDvojitDouble ThemeDialog Psmo:Font: ThemeDialogPopYed Foreground ThemeDialogObrzek:Image: ThemeDialog(Odsadit prvn Ydek:Indent First Line: ThemeDialogZarovnno vlevoLeft ThemeDialog$Odstupy mezi Ydky Line Spacing ThemeDialog Okraj:Margin: ThemeDialog`patn napsno: Misspelled: ThemeDialogUpravit podobu Modify Theme ThemeDialog Nzev:Name: ThemeDialog}dn obrzekNo Image ThemeDialogNeprohlednostOpacity ThemeDialogOdstup:Padding: ThemeDialog*Odstupy mezi odstavciParagraph Spacing ThemeDialogPixelo nad: Pixels Above: ThemeDialogPixelo pod: Pixels Below: ThemeDialog PolohaPosition ThemeDialogPomrn Proportional ThemeDialogOdstranitRemove ThemeDialog Zarovnno vpravoRight ThemeDialogZaoblen: Rounding: ThemeDialogZmnno mYtkoScaled ThemeDialogJednoduchSingle ThemeDialog `Yka:Size: ThemeDialogOdstupySpacings ThemeDialogRozta~eno Stretched ThemeDialogTextText ThemeDialogRychl bl liaka hbit sk e pYes pomalho je~ka. , , , zaznvaj obdivn vkYiky pYihl~ejcch zvYtek+The quick brown fox jumps over the lazy dog ThemeDialogVydl~dnoTiled ThemeDialogTyp:Type: ThemeDialogPYibl~enoZoomed ThemeDialogPodoba s tmto nzvem ji~ existuje. Zadejte, prosm, nov nzev:?A theme already exists with that name. Please enter a new name: ThemeManager PYidatAdd ThemeManager ZavYtClose ThemeManager VyvstExport ThemeManagerVyvst podobu Export Theme ThemeManager ZavstImport ThemeManagerZavst vzhled Import Theme ThemeManagerPozmnitModify ThemeManager OtzkaQuestion ThemeManagerOdstranitRemove ThemeManager4Odstranit vybranou podobu?Remove selected theme? ThemeManagerPromiHteSorry ThemeManager VzhledThemes ThemeManager.Podoby (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManagerPodoby (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer.<b>Znaky:</b> %L1 / %L2Characters: %L1 / %L2Timer$<b>Strany:</b> %L1Pages: %L1Timer(<b>Odstavce:</b> %L1Paragraphs: %L1Timer"<b>Slova:</b> %L1Words: %L1Timer BudkAlarmTimerZpo~dn:Delay:Timer SmazatDeleteTimer Smazat  asomru? Delete timer?TimerUpravitEditTimerHH:mm:ssHH:mm:ssTimerZprva:Memo:Timer OtzkaQuestionTimer"Nastavit zpo~dn Set DelayTimerNastavit  asSet TimeTimer as:Time:TimerTyp:Type:TimerHH:mm:ssHH:mm:ss TimerDisplay*Neb~ ~dn  asomraNo timers running TimerDisplay%1 - %2%1 - %2 TimerManager+HH:mm:ss +HH:mm:ss TimerManager6Zruait  asomry pro pravy?Cancel editing timers? TimerManagerNovNew TimerManager OtzkaQuestion TimerManager"Naposledy pou~itRecent TimerManager asomryTimers TimerManagerFNeo ekvan dosa~eno konce souboru.!Unexpectedly reached end of file. Tokenizer(%1 (Pouze pro  ten)%1 (Read-Only)Window$%1% z dennho cle%1% of daily goalWindow&O programu&AboutWindow &Tu n&BoldWindow&ZavYt&CloseWindow&Koprovat&CopyWindow"Z&menait odsazen&Decrease IndentWindowp&ravy&EditWindow&Soubor&FileWindow&Hledat...&Find...Window&Cel obrazovka &FullscreenWindow&Npovda&HelpWindow&Kurzva&ItalicWindow &Nov&NewWindow&Vypnuto&OffWindow&OtevYt...&Open...Window&Odstavec &ParagraphWindow&Vlo~it&PasteWindow&Nastaven...&Preferences...Window&Tisk... &Print...Window&Ukon it&QuitWindow Zn&ovu&RedoWindowPYe&jmenovat... &Rename...Window&Nahradit... &Replace...Window&Ulo~it&SaveWindow&Nastaven &SettingsWindow&Pravopis... &Spelling...Window&Doln index &SubscriptWindow&Vzhled... &Themes...Window&TYi Ydky &Three LinesWindow aso&mry... &Timers...Window&Nstroje&ToolsWindow&Podtr~en &UnderlineWindow &Zpt&UndoWindow`'%1' je novja ne~ kopie ve vyrovnvac pamti.#'%1' is newer than the cached copy.Window(Bez nzvu %1) (Untitled %1)WindowNJednoduch celoobrazovkov editor textu"A simple fullscreen word processorWindow O &Qt About &QtWindow,O programu FocusWriterAbout FocusWriterWindow$Zarovnat na &stYed Align &CenterWindow$Zarovnat do &blokuAlign &JustifyWindowZarovnat &vlevo Align &LeftWindow Zarovnat vp&ravo Align &RightWindow$Jazyk &programu...Application &Language...Window Znaky: %L1 / %L2Characters: %L1 / %L2WindowRAutorsk prvo &copy; 2008-%1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindow Ctrl+<Ctrl+<Window Ctrl+>Ctrl+>Window Ctrl+JCtrl+JWindow Ctrl+KCtrl+KWindow Ctrl+MCtrl+MWindow Ctrl+QCtrl+QWindow Ctrl+RCtrl+RWindowCtrl+Shift+A Ctrl+Shift+AWindowCtrl+Shift+V Ctrl+Shift+VWindow Ctrl+^Ctrl+^Window Ctrl+_Ctrl+_Window Ctrl+{Ctrl+{Window Ctrl+|Ctrl+|Window Ctrl+}Ctrl+}WindowVyj&moutCu&tWindowbPohotovostn vyrovnvac pame nen zapisovateln Emergency cache is not writable.WindowEscEscWindowZao&stYen text F&ocused TextWindowF11F11WindowF7F7WindowNajt &dala Find &NextWindow Najt &pYedchozFind Pre&viousWindow&FormtFo&rmatWindow ZamYen vypnuto Focus OffWindow.ZamYen na jeden YdekFocus One LineWindow(ZamYen na odstavecFocus ParagraphWindow*ZamYen na tYi YdkyFocus Three LinesWindowFocusWriter FocusWriterWindow>FocusWriter nebyl vypnut  ist.&FocusWriter was not shut down cleanly.Window"Zvta&it odsazenI&ncrease IndentWindow&Blok zl&eva dopravaLe&ft to Right BlockWindow,Nahrvaj se nastavenLoading settingsWindow$Nahrvaj se zvukyLoading soundsWindow&Nahrvaj se podobyLoading themesWindow"Z&menait na panel M&inimizeWindow Spravovat sezenManage SessionsWindowNov sezen New SessionWindowJeden Y&dek One &LineWindowOtevYt soubor Open FileWindowOtevr se %1 Opening %1Window.PYepsat novja soubor?Overwrite newer file?WindowStrany: %L1 Pages: %L1WindowOdstavce: %L1Paragraphs: %L1Window*Vlo~it ne&formtovanPaste &UnformattedWindowdUjistte se, prosm, ~e je nainstalovn SDL_mixer.-Please make sure that SDL_mixer is installed.Window OtzkaQuestionWindowNVydno pod licenc <a href=%1>GPL 3</a>/Released under the GPL 3 licenseWindowNahrt z&novuReloa&dWindowTObnovit z pohotovostn vyrovnvac pamti?!Restore from the emergency cache?Window&Blok z&prava dolevaRi&ght to Left BlockWindowS&ymboly... S&ymbols...WindowUlo~it &jako... Save &As...WindowU&lo~it vae Save A&llWindowUlo~it zmny? Save changes?WindowVybrat &vae Select &AllWindowVybrat &scnu Select &SceneWindow.Ukzat &nabdkov ikonyShow &Menu IconsWindow.Ukzat n&strojov pruh Show &ToolbarWindow Chytr &uvozovky Smart &QuotesWindowLNkter soubory se nepodaYilo otevYt.Some files could not be opened.Window\Nkter soubory byly otevYeny pouze pro  ten.!Some files were opened Read-Only.Window|Nkter soubory nebyly podporovny a nepodaYilo se je otevYt.4Some files were unsupported and could not be opened.WindowPYeakr&tnutStri&kethroughWindow&Horn index Sup&erscriptWindow.PYepnout na dokument %1Switch to Document %1Window4PYepnout na prvn dokumentSwitch to First DocumentWindow:PYepnout na posledn dokumentSwitch to Last DocumentWindow4PYepnout na dala dokumentSwitch to Next DocumentWindow<PYepnout na pYedchoz dokumentSwitch to Previous DocumentWindowRTextov soubory (%1);;Vaechny soubory (*)Text Files (%1);;All Files (*)WindowDNelze nahrt zvuky psacho stroje.!Unable to load typewriter sounds.WindowBez nzvuUntitledWindow"Obnovit &dokumentUpdate &DocumentWindowObnovit &vbrUpdate &SelectionWindowPVydno pod licenc <a href=%1>LGPL 3</a>,Used under the LGPL 3 licenseWindowbPou~v ikony z motivu ikon <a href=%1>Oxygen</a>4Uses icons from the Oxygen icon themeWindowVarovnWarningWindowSlova: %L1 Words: %L1Windowfocuswriter-1.4.5/translations/focuswriter_cs.ts000066400000000000000000002242441231434177300222440ustar00rootroot00000000000000 Alert Close (%1) Zavřít (%1) Collapse Složit Expand Rozbalit AlertLayer Dismiss Alert Odvolat poplach Ctrl+D Ctrl+D Document Sorry Promiňte Unable to save '%1'. Nelze uložit '%1'. Save File As Uložit soubor jako Unable to overwrite '%1'. Nelze přepsat '%1'. Rename File Přejmenovat soubor Unable to rename '%1'. Nelze přejmenovat '%1'. Reload File Nahrát soubor znovu Reload the file %1 from disk? Nahrát soubor %1 z disku? All unsaved changes will be lost. Všechny neuložené změny budou ztraceny. Reload Nahrát znovu Plain Text (*.txt) Prostý text (*.txt) Question Otázka Saving as plain text will discard all formatting. Discard formatting? Uložení v prostém textu zahodí všechno formátování. Zahodit formátování? OpenDocument Text (*.odt) OpenDocument Text (*.odt) Rich Text (*.rtf) Text s formátováním (*.rtf) All Files (*) Všechny soubory (*) DocumentWatcher File Changed Soubor změněn The file %1 was changed by another program. Soubor %1 změněn jiným programem. Do you want to reload the file? Chcete soubor nahrát znovu? Reload Nahrát znovu Ignore Přehlížet File Deleted Soubor smazán The file %1 was deleted by another program. Soubor %1 byl smazán jiným programem. Do you want to save or close the file? Chcete soubor uložit nebo zavřít? FindDialog Search for: Hledat: Replace with: Nahradit: Ignore case Nevšímat si velikosti písmen Whole words only Pouze celá slova Regular expressions Regulární výrazy Search up Hledat nahoru Search down Hledat dolů &Find &Hledat &Replace &Nahradit Replace &All Nahradit &vše Find Najít Replace Nahradit Replace %n instance(s)? Nahradit jeden případ? Nahradit %n případy? Nahradit %n případů? Question Otázka Sorry Promiňte Phrase not found. Slovní spojení nebylo nenalezeno. Highlighter Add Přidat Check Spelling... Ověření pravopisu... (No suggestions found) (Nebyly nalezeny žádné návrhy) ImageButton Open Image Otevřít obrázek Images(%1) Obrázky (%1) LocaleDialog Select application language: Vybrat jazyk programu: <System Language> <Jazyk systému> Note Poznámka Please restart this application for the change in language to take effect. Spusťte program znovu, aby se změna jazyka projevila. PreferencesDialog Preferences Nastavení General Obecné Statistics Statistika Toolbar Nástrojový pruh Spell Checking Správné psaní Select Dictionary Vybrat slovník Sorry Promiňte Unable to open archive. Nelze otevřít archiv. Unable to read archive metadata. Nelze přečíst metadata archivu. The archive does not contain a usable dictionary. Archiv neobsahuje použitelný slovník. Unable to open file '%1'. Nelze otevřít soubor '%1'. Unable to close file '%1'. Nelze zavřít soubor '%1'. Question Otázka Shortcuts Zkratky One or more shortcuts conflict. Do you wish to proceed? Střet jedné nebo více zkratek. Chcete pokračovat? The dictionary "%1" already exists. Do you want to replace it? Slovník "%1" již existuje. Chcete jej nahradit? Daily Goal Denní cíl None Žádný Minutes: Minut: Words: Slov: Editing Úpravy Always vertically center Umístit vždy svisle do středu Block insertion cursor Ukazatel vkládání bloku Smooth fonts Vyhlazená písma Typewriter sounds Zvuky psacího stroje Smart quotes: Chytré uvozovky: Double dvojité Single jednoduché Scenes Scény Divider: Oddělovač Saving Ukládání Automatically save changes Automaticky uložit změny Remember cursor position Zapamatovat si polohu ukazatele Contents Obsah Word count Počet slov Page count Počet stran Paragraph count Počet odstavců Character count Počet znaků Page Size Velikost strany Characters: Znaků: Paragraphs: Odstavců: Word Count Algorithm Algoritmus pro počítání slov Detect word boundaries Zjistit hranice slov Divide character count by six Vydělit počet znaků šesti Style Styl Icons Only Pouze ikony Text Only Pouze text Text Alongside Icons Text vedle ikon Text Under Icons Text pod ikonami Text Position: Poloha textu: Actions Činnosti Move Up Posunout nahoru Move Down Posunout dolů Add Separator Přidat oddělovač Command Příkaz Shortcut Zkratka Action Činnost Check spelling as you type Ověřování pravopisu během psaní Ignore words in UPPERCASE Nevšímat si slov psaných VELKÝMI PÍSMENY Ignore words with numbers Nevšímat si slov s čísly Language Jazyk Add Přidat Remove Odstranit Personal Dictionary Osobní slovník Reader Not a supported RTF file. Toto není podporovaný soubor RTF. Unable to open archive. Nelze otevřít archiv. Unable to open file '%1'. Nelze otevřít soubor '%1'. Unable to close file '%1'. Nelze zavřít soubor '%1'. SceneList Ctrl+Shift+Down Ctrl+Shift+šipka dolů Move Scenes Up Přesunout scény nahoru Ctrl+Shift+Up Ctrl+Shift+šipka nahoru Toggle Scene List Přepnout seznam scén Shift+F4 Shift+F4 Show scene list (%1) Ukázat seznam scén (%1) Hide scene list (%1) Skrýt seznam scén (%1) Filter Filtr Move Scenes Down Přesunout scény dolů Resize scene list Změnit velikost seznamu scén Session Default Výchozí SessionManager Manage Sessions Spravovat sezení S&essions S&ezení New Nové Rename Přejmenovat Clone Klonovat Delete Smazat Switch To Přepnout na New Session Nové sezení Clone Session Klonovat sezení Rename Session Přejmenovat sezení Question Otázka Delete selected session? Smazat vybrané sezení? Session name: Název sezení: Sorry Promiňte The requested session name is already in use. Požadovaný název sezení se již používá. &New... &Nové... Ctrl+Shift+N Ctrl+Shift+N &Manage... &Spravovat... Ctrl+Shift+M Ctrl+Shift+M ShortcutEdit Clear Smazat Reset to Default Nastavit znovu na výchozí Shortcut: Zkratka: SmartQuote Replacing quotation marks... Nahrazují se uvozovky... Please Wait Počkejte, prosím SpellChecker Check Spelling Ověření pravopisu &Add &Přidat &Ignore Pře&hlížet I&gnore All Přeh&lížet vše &Change &Změnit C&hange All Změ&nit Not in dictionary: Ne ve slovníku: Change to: Změnit na: Checking spelling... Ověřuje se pravopis... Cancel Zrušit Please wait Počkejte, prosím Spell check complete. Ověření správného psaní je hotovo. SymbolsDialog Symbols Symboly Recently used symbols Nedávno použité symboly All symbols Všechny symboly Details Podrobnosti Name: Název: Insert Vložit SymbolsModel Blocks Bloky Scripts Skripty Theme Untitled %1 Bez názvu %1 ThemeDialog Modify Theme Upravit podobu Name: Název: Background Pozadí No Image Žádný obrázek Tiled Vydlážděno Centered Vystředěno Stretched Roztaženo Scaled Změněno měřítko Zoomed Přiblíženo Remove Odstranit Type: Typ: Color: Barva: Image: Obrázek: Foreground Popředí Opacity Neprůhlednost pixels pixelů Left Zarovnáno vlevo Right Zarovnáno vpravo Position Poloha Size: Šířka: Rounding: Zaoblení: Margin: Okraj: Padding: Odstup: Text Text Font: Písmo: Misspelled: Špatně napsáno: Spacings Odstupy Line Spacing Odstupy mezi řádky Single Jednoduchý 1.5 Lines 1.5 řádku Double Dvojitý Proportional Poměrný Paragraph Spacing Odstupy mezi odstavci Indent First Line: Odsadit první řádek: Pixels Above: Pixelů nad: Pixels Below: Pixelů pod: The quick brown fox jumps over the lazy dog Rychlá bílá liška hbitě skáče přes pomalého ježka. Ó, ú, á, é zaznívají obdivné výkřiky přihlížejících zvířátek ThemeManager Themes Vzhled Add Přidat Modify Pozměnit Remove Odstranit Import Zavést Export Vyvést Close Zavřít Question Otázka Remove selected theme? Odstranit vybranou podobu? Import Theme Zavést vzhled Themes (*.fwtz *.theme) Podoby (*.fwtz *.theme) Themes (*.fwtz) Podoby (*.fwtz) Sorry Promiňte A theme already exists with that name. Please enter a new name: Podoba s tímto názvem již existuje. Zadejte, prosím, nový název: Export Theme Vyvést podobu Timer <b>%1</b> - %2 <b>%1</b> - %2 Question Otázka Delete timer? Smazat časomíru? <b>Words:</b> %L1 <b>Slova:</b> %L1 <b>Pages:</b> %L1 <b>Strany:</b> %L1 <b>Paragraphs:</b> %L1 <b>Odstavce:</b> %L1 <b>Characters:</b> %L1 / %L2 <b>Znaky:</b> %L1 / %L2 Set Delay Nastavit zpoždění Set Time Nastavit čas Delay: Zpoždění: Time: Čas: HH:mm:ss HH:mm:ss Alarm Budík Type: Typ: Memo: Zpráva: Edit Upravit Delete Smazat TimerDisplay HH:mm:ss HH:mm:ss No timers running Neběží žádná časomíra TimerManager Timers Časomíry New Nová Recent Naposledy použitá Question Otázka Cancel editing timers? Zrušit časomíry pro úpravy? +HH:mm:ss +HH:mm:ss %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. Neočekávaně dosaženo konce souboru. Window Loading themes Nahrávají se podoby Loading sounds Nahrávají se zvuky Untitled Bez názvu Open File Otevřít soubor About FocusWriter O programu FocusWriter FocusWriter FocusWriter A simple fullscreen word processor Jednoduchý celoobrazovkový editor textu Copyright &copy; 2008-%1 Graeme Gott Autorské právo &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Vydáno pod licencí <a href=%1>GPL 3</a> Uses icons from the <a href=%1>Oxygen</a> icon theme Používá ikony z motivu ikon <a href=%1>Oxygen</a> Used under the <a href=%1>LGPL 3</a> license Vydáno pod licencí <a href=%1>LGPL 3</a> Characters: %L1 / %L2 Znaky: %L1 / %L2 Pages: %L1 Strany: %L1 Paragraphs: %L1 Odstavce: %L1 Words: %L1 Slova: %L1 %1% of daily goal %1% z denního cíle Opening %1 Otevírá se %1 Question Otázka Save changes? Uložit změny? (Untitled %1) (Bez názvu %1) Switch to Next Document Přepnout na další dokument Switch to Previous Document Přepnout na předchozí dokument Switch to First Document Přepnout na první dokument Switch to Last Document Přepnout na poslední dokument Switch to Document %1 Přepnout na dokument %1 Loading settings Nahrávají se nastavení Emergency cache is not writable. Pohotovostní vyrovnávací paměť není zapisovatelná Warning Varování FocusWriter was not shut down cleanly. FocusWriter nebyl vypnut čistě. Restore from the emergency cache? Obnovit z pohotovostní vyrovnávací paměti? Some files could not be opened. Některé soubory se nepodařilo otevřít. Some files were opened Read-Only. Některé soubory byly otevřeny pouze pro čtení. Text Files (%1);;All Files (*) Textové soubory (%1);;Všechny soubory (*) '%1' is newer than the cached copy. '%1' je novější než kopie ve vyrovnávací paměti. Overwrite newer file? Přepsat novější soubor? Unable to load typewriter sounds. Nelze nahrát zvuky psacího stroje. Please make sure that SDL_mixer is installed. Ujistěte se, prosím, že je nainstalován SDL_mixer. %1 (Read-Only) %1 (Pouze pro čtení) &File &Soubor &New &Nový &Open... &Otevřít... Reloa&d Nahrát z&novu &Save &Uložit Save &As... Uložit &jako... &Rename... Pře&jmenovat... Save A&ll U&ložit vše Manage Sessions Spravovat sezení New Session Nové sezení &Print... &Tisk... &Close &Zavřít &Quit &Ukončit Ctrl+Q Ctrl+Q &Edit Úp&ravy &Undo &Zpět &Redo Zn&ovu Cu&t Vyj&mout &Copy &Kopírovat &Paste &Vložit Paste &Unformatted Vložit ne&formátované Ctrl+Shift+V Ctrl+Shift+V Select &All Vybrat &vše Select &Scene Vybrat &scénu Ctrl+Shift+A Ctrl+Shift+A Fo&rmat &Formát &Bold &Tučné &Italic &Kurzíva &Underline &Podtržení Stri&kethrough Přeškr&tnutí Ctrl+K Ctrl+K Sup&erscript &Horní index Ctrl+^ Ctrl+^ &Subscript &Dolní index Ctrl+_ Ctrl+_ Align &Left Zarovnat &vlevo Ctrl+{ Ctrl+{ Align &Center Zarovnat na &střed Ctrl+| Ctrl+| Align &Right Zarovnat vp&ravo Ctrl+} Ctrl+} Align &Justify Zarovnat do &bloku Ctrl+J Ctrl+J &Decrease Indent Z&menšit odsazení Ctrl+< Ctrl+< I&ncrease Indent Zvětš&it odsazení Ctrl+> Ctrl+> Le&ft to Right Block Blok zl&eva doprava Ri&ght to Left Block Blok z&prava doleva &Tools &Nástroje &Find... &Hledat... Find &Next Najít &další Find Pre&vious Najít &předchozí &Replace... &Nahradit... Ctrl+R Ctrl+R Smart &Quotes Chytré &uvozovky Update &Document Obnovit &dokument Update &Selection Obnovit &výběr &Spelling... &Pravopis... F7 F7 &Timers... Časo&míry... S&ymbols... S&ymboly... &Settings &Nastavení Show &Toolbar Ukázat ná&strojový pruh Show &Menu Icons Ukázat &nabídkové ikony F&ocused Text Zao&střený text &Fullscreen &Celá obrazovka F11 F11 Esc Esc M&inimize Z&menšit na panel Ctrl+M Ctrl+M &Themes... &Vzhled... &Preferences... &Nastavení... Focus Off Zaměření vypnuto Focus One Line Zaměření na jeden řádek Focus Three Lines Zaměření na tři řádky &Paragraph &Odstavec Focus Paragraph Zaměření na odstavec &Help &Nápověda Application &Language... Jazyk &programu... Some files were unsupported and could not be opened. Některé soubory nebyly podporovány a nepodařilo se je otevřít. &Off &Vypnuto One &Line Jeden řá&dek &Three Lines &Tři řádky &About &O programu About &Qt O &Qt focuswriter-1.4.5/translations/focuswriter_da.qm000066400000000000000000000750561231434177300222170ustar00rootroot00000000000000Z?TZiZi[ZiZi0uZiDcZ% n[@[H\@\I#\*2_ >QQc4Up{ O0Ϩ%]3]aa~fm.0n$-0n'P2<&qE2th(^kf+["mS^8"c!S ~Paqhef\zXwB:JL6LTOkf3R\??.Kc^"V@'aF$~dp^(] , 4U390^C"w=N=J;A)'F$ZWN#|%RGDᑞ5sJQN, E~`~gk( W@(E)KM@DZ*luz^Ԏ,MP~3Z#7 cI36Z9`WWBWoWWWX#XX+Y(,YU-Y(G7,-,Gmbe%*%9M&o~g<UȞnYhDlvBm:)4 VA`[}:;vB6 IC7, az:qD4ECiQY/TK5t5t F^F>VFCH5/gG>)N%N%?$2SD<KPtkrEM-d-ݲ j')csR c@VULO/[2548Nf:UIIKJIHZ[+gO(޷1!;v!N*ja!+z_< uR8lCm :p8pxcW[M<=^2f^P!dw4L2I9} G9Nf/`|>O8|wp}l4iP\Sc!%% ' [?C.bC_e \~O >d2 5 "2F %^ Y > v Y zR zC .3# JQ W. W_ 7 0% ·I .^ Ń +IW :j/ ;fe d8T eE( 3* q^! t, [ ʀs6 ˔R ˼C6G z_ Bi f  V3^ c7 ^** N # , L., f(# iqm w981 xj5L {"ueX Na f Fq ʫ ʫ ʫ ʫ/* ʫC ʫHY ʫJ ʫbJ  A) pUlj : E`) cG cIL >cJ O 6hi >Q J> Z$9& eH iN!` tfd ur / sQ A- C> e $ (6 tF 1S \  sM Dk [ 8j@ DYXP DY-@ DY- DZX ^3n noG uu {N'] Pm I < ޘ Zc S"nDE;NltrAce *vd]MEb4iiTj+A L9+SW:e! iTQsSI)-z _CO"s pin%Luk (%1) Close (%1)AlertFold sammenCollapseAlertFold udExpandAlert Ctrl+DCtrl+D AlertLayerAfvis alarm Dismiss Alert AlertLayerAlle filer (*) All Files (*)Document\Alle ndringer, der ikke er gemt, vil g tabt.!All unsaved changes will be lost.Document4OpenDocument-tekst (*.odt)OpenDocument Text (*.odt)Document"Ren tekst (*.txt)Plain Text (*.txt)DocumentSprgsmlQuestionDocumentGenindlsReloadDocumentGenindls fil Reload FileDocument8Genindls filen %1 fra disk?Reload the file %1 from disk?DocumentOmdb fil Rename FileDocument"Rich Text (*.rtf)Rich Text (*.rtf)DocumentGem fil som Save File AsDocumentGemmes der som ren tekst, vil al formatting blive fjernet. Fjern formattering?ESaving as plain text will discard all formatting. Discard formatting?DocumentBeklagerSorryDocumentLDet er ikke muligt at overskrive '%1'.Unable to overwrite '%1'.DocumentDDet er ikke muligt at omdbe '%1'.Unable to rename '%1'.DocumentBDet er ikke muligt at gemme '%1'.Unable to save '%1'.Document<nsker du at genindlse filen?Do you want to reload the file?DocumentWatcherJnsker du at gemme eller lukke filen?&Do you want to save or close the file?DocumentWatcherFil ndret File ChangedDocumentWatcherFil slettet File DeletedDocumentWatcherIgnorerIgnoreDocumentWatcherGenindlsReloadDocumentWatcherRFilen %1 blev ndret af et andet program.+The file %1 was changed by another program.DocumentWatcherTFilen %1 blev slettet af et andet program.+The file %1 was deleted by another program.DocumentWatcher &Find&Find FindDialog&Erstat&Replace FindDialogFindFind FindDialog6Ignorer store/sm bogstaver Ignore case FindDialog2Frasen kunne ikke findes.Phrase not found. FindDialogSprgsmlQuestion FindDialogRegulre udtrykRegular expressions FindDialog ErstatReplace FindDialog(Erstat %n forekomst?,Erstat %n forekomster?Replace %n instance(s)? FindDialogErstat &alle Replace &All FindDialogErstat med: Replace with: FindDialogSg fremad Search down FindDialogSg efter: Search for: FindDialogSg tilbage Search up FindDialogBeklagerSorry FindDialogKun hele ordWhole words only FindDialog8(Der er ikke fundet forslag)(No suggestions found) Highlighter TilfjAdd HighlighterStavekontrol...Check Spelling... HighlighterBilleder(%1) Images(%1) ImageButtonbn billede Open Image ImageButton<Systemsprog> LocaleDialogNoteNote LocaleDialognGenstart programmet for at skifte til det valgte sprog.JPlease restart this application for the change in language to take effect. LocaleDialog.Vlg programmets sprog:Select application language: LocaleDialogHandlingActionPreferencesDialogHandlingerActionsPreferencesDialog TilfjAddPreferencesDialogTilfj opdeling Add SeparatorPreferencesDialog,Altid centreret lodretAlways vertically centerPreferencesDialogGem automatiskAutomatically save changesPreferencesDialog@Firkantet markr for indsttelseBlock insertion cursorPreferencesDialogAntal tegnCharacter countPreferencesDialog Tegn: Characters:PreferencesDialogJKontroller stavning, mens der skrivesCheck spelling as you typePreferencesDialogKommandoCommandPreferencesDialogIndholdContentsPreferencesDialogDagligt ml Daily GoalPreferencesDialog(Registrer ordgrnserDetect word boundariesPreferencesDialog.Del antal tegn med seksDivide character count by sixPreferencesDialogSeparator:Divider:PreferencesDialogDobbelteDoublePreferencesDialogRedigeringEditingPreferencesDialogGenereltGeneralPreferencesDialogKun ikoner Icons OnlyPreferencesDialog.Ignorer STORE BOGSTAVERIgnore words in UPPERCASEPreferencesDialog&Ignorer ord med talIgnore words with numbersPreferencesDialog SprogLanguagePreferencesDialogMinutter:Minutes:PreferencesDialogFlyt ned Move DownPreferencesDialogFlyt opMove UpPreferencesDialog IntetNonePreferencesDialogzEn eller flere genveje er i konflikt. nsker du at fortstte?7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialogSideformat Page SizePreferencesDialogAntal sider Page countPreferencesDialogAntal afsnitParagraph countPreferencesDialogAfsnit: Paragraphs:PreferencesDialog Personlig ordbogPersonal DictionaryPreferencesDialogIndstillinger PreferencesPreferencesDialogSprgsmlQuestionPreferencesDialog0Husk markrens placeringRemember cursor positionPreferencesDialog FjernRemovePreferencesDialog GemmerSavingPreferencesDialog ScenerScenesPreferencesDialogVlg ordbogSelect DictionaryPreferencesDialog GenvejShortcutPreferencesDialogGenveje ShortcutsPreferencesDialogEnkelteSinglePreferencesDialogSmart quotes: Smart quotes:PreferencesDialog$Udjvn skrifttyper Smooth fontsPreferencesDialogBeklagerSorryPreferencesDialogStavekontrolSpell CheckingPreferencesDialogStatistik StatisticsPreferencesDialogStilStylePreferencesDialog2Tekst ved siden af ikonerText Alongside IconsPreferencesDialogKun tekst Text OnlyPreferencesDialog"Placering i tekstText Position:PreferencesDialog$Tekst under ikonerText Under IconsPreferencesDialogbDette arkiv indeholder ikke en anvendelig ordbog.1The archive does not contain a usable dictionary.PreferencesDialogrOrdbogen '%1' findes allerede. nsker du at erstatte den?>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialogVrktjslinieToolbarPreferencesDialog"SkrivemaskinelydeTypewriter soundsPreferencesDialogNDet er ikke muligt at lukke filen '%1'.Unable to close file '%1'.PreferencesDialogFDet er ikke muligt at bne arkivet.Unable to open archive.PreferencesDialogLDet er ikke muligt at bne filen '%1'.Unable to open file '%1'.PreferencesDialog`Det er ikke muligt at indlse arkivets metadata. Unable to read archive metadata.PreferencesDialog0Algoritme til ordtllingWord Count AlgorithmPreferencesDialog Optlling af ord Word countPreferencesDialogOrd:Words:PreferencesDialog8Ikke en understttet RTF-filNot a supported RTF file.Reader8Kunne ikke lukke filen '%1'.Unable to close file '%1'.Reader0Kunne ikke bne arkivet.Unable to open archive.Reader6Kunne ikke bne filen '%1'.Unable to open file '%1'.ReaderCtrl+Shift+NedCtrl+Shift+Down SceneListCtrl+Shift+Op Ctrl+Shift+Up SceneList FilterFilter SceneList8Skjul liste over scener (%1)Hide scene list (%1) SceneListFlyt scener nedMove Scenes Down SceneListFlyt scener opMove Scenes Up SceneList0Juster liste over scenerResize scene list SceneListShift+F4Shift+F4 SceneList4Vis liste over scener (%1)Show scene list (%1) SceneList2Liste over scener til/fraToggle Scene List SceneListStandardDefaultSession&Administrer &Manage...SessionManager &Ny...&New...SessionManagerKlonCloneSessionManagerKlon session Clone SessionSessionManagerCtrl+Shift+M Ctrl+Shift+MSessionManagerCtrl+Shift+N Ctrl+Shift+NSessionManagerSletDeleteSessionManager(Slet valgte session?Delete selected session?SessionManager*Administrer sessionerManage SessionsSessionManagerNyNewSessionManagerNy session New SessionSessionManagerSprgsmlQuestionSessionManager OmdbRenameSessionManagerOmdb sessionRename SessionSessionManagerS&essioner S&essionsSessionManager Navn p session: Session name:SessionManagerBeklagerSorrySessionManagerSkift til Switch ToSessionManagerhDer gres allerede brug af det nskede sessionsnavn.-The requested session name is already in use.SessionManagerRydClear ShortcutEditNulstilReset to Default ShortcutEditGenvej: Shortcut: ShortcutEditVent venligst Please Wait SmartQuote2Erstatter citatonstegn...Replacing quotation marks... SmartQuote&Tilfj&Add SpellChecker &Skift&Change SpellChecker&Ignorer&Ignore SpellCheckerS&kift alle C&hange All SpellCheckerFortrydCancel SpellCheckerSkift til: Change to: SpellChecker&Kontroller stavningCheck Spelling SpellChecker0Kontrollerer stavning...Checking spelling... SpellCheckerI&gnorer alle I&gnore All SpellChecker Ikke i ordbogen:Not in dictionary: SpellCheckerVent venligst Please wait SpellChecker,Stavekontrol fuldfrt.Spell check complete. SpellCheckerAlle symboler All symbols SymbolsDialogDetaljerDetails SymbolsDialog IndstInsert SymbolsDialog Navn:Name: SymbolsDialog,Nyligt brugte symbolerRecently used symbols SymbolsDialogSymbolerSymbols SymbolsDialog BlokkeBlocks SymbolsModelScriptsScripts SymbolsModelUden titel %1 Untitled %1Theme pixels pixels ThemeDialogHalvanden linie 1.5 Lines ThemeDialogBaggrund Background ThemeDialogCentreretCentered ThemeDialog Farve:Color: ThemeDialogDobbeltDouble ThemeDialogSkrifttype:Font: ThemeDialogForgrund Foreground ThemeDialogBillede:Image: ThemeDialog(Indryk frste linje:Indent First Line: ThemeDialogVenstreLeft ThemeDialogLinjeafstand Line Spacing ThemeDialogMargen:Margin: ThemeDialogStavefejl: Misspelled: ThemeDialogTilpas tema Modify Theme ThemeDialog Navn:Name: ThemeDialogIntet billedeNo Image ThemeDialogGennemsigtighedOpacity ThemeDialogLuft omkring:Padding: ThemeDialog.Mellemrum mellem afsnitParagraph Spacing ThemeDialogPixels over: Pixels Above: ThemeDialogPixels under: Pixels Below: ThemeDialogPositionPosition ThemeDialogProportionel Proportional ThemeDialog FjernRemove ThemeDialog HjreRight ThemeDialogRunding: Rounding: ThemeDialogSkaleretScaled ThemeDialog EnkelSingle ThemeDialogStrrelse:Size: ThemeDialogAfstandeSpacings ThemeDialog Strakt Stretched ThemeDialog TekstText ThemeDialogTekst til test+The quick brown fox jumps over the lazy dog ThemeDialogSide om sideTiled ThemeDialog Type:Type: ThemeDialog ZoometZoomed ThemeDialogDer findes allerede et tema med det navn. Indtast venligst et nyt:?A theme already exists with that name. Please enter a new name: ThemeManager TilfjAdd ThemeManagerLukClose ThemeManagerEksportExport ThemeManagerEksporter tema Export Theme ThemeManagerImporterImport ThemeManagerImporter tema Import Theme ThemeManager TilpasModify ThemeManagerSprgsmlQuestion ThemeManager FjernRemove ThemeManager$Fjern valgte tema?Remove selected theme? ThemeManagerBeklagerSorry ThemeManager TemaerThemes ThemeManager.Temaer (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManagerTemaer(*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer,<b>Tegn:</b> %L1 / %L2Characters: %L1 / %L2Timer"<b>Sider:</b> %L1Pages: %L1Timer$<b>Afsnit:</b> %L1Paragraphs: %L1Timer<b>Ord:</b> %L1Words: %L1Timer AlarmAlarmTimerNedtlling:Delay:TimerSletDeleteTimerSlet tller Delete timer?TimerRedigerEditTimerTT:mm:ssHH:mm:ssTimer Memo:Memo:TimerSprgsmlQuestionTimerSt nedtlling Set DelayTimerSt tidSet TimeTimerTid:Time:Timer Type:Type:TimerTT:mm:ssHH:mm:ss TimerDisplay(Ingen aktive tllereNo timers running TimerDisplay%1 - %2%1 - %2 TimerManager+TT:mm:ss +HH:mm:ss TimerManager4Fortryd ndring af tllereCancel editing timers? TimerManagerNyNew TimerManagerSprgsmlQuestion TimerManager NyligRecent TimerManagerTllereTimers TimerManager:Uventet net slutning p fil.!Unexpectedly reached end of file. Tokenizer(%1 (Skrivebeskyttet)%1 (Read-Only)Window$%1% af dagligt ml%1% of daily goalWindow&Om&AboutWindow&Fed&BoldWindow&Luk&CloseWindow&Kopier&CopyWindow(&Forminds indrykning&Decrease IndentWindow&Rediger&EditWindow&Fil&FileWindow&Find...&Find...Window&Fuld skrm &FullscreenWindow &Hjlp&HelpWindow&Kursiv&ItalicWindow&Ny&NewWindow&Fra&OffWindow&bn...&Open...WindowA&fsnit &ParagraphWindow&Indst&PasteWindow"&Indstillinger...&Preferences...Window&Udskrift... &Print...Window&Afslut&QuitWindow&Gendan&RedoWindow&Omdb... &Rename...Window&Erstat &Replace...Window&Gem&SaveWindow&Indstillinger &SettingsWindow&Stavning... &Spelling...Window&Snket skrift &SubscriptWindow&Temaer... &Themes...Window&Tre linier &Three LinesWindow&Tllere... &Timers...Window&Vrktjer&ToolsWindow&Understreg &UnderlineWindow&Fortryd&UndoWindowF'%1' er nyere end den lagrede kopi.#'%1' is newer than the cached copy.Window(Uden titel%1) (Untitled %1)Window\Et enkelt tekstbehandlingsprogram i fuld skrm"A simple fullscreen word processorWindow Om &QT About &QtWindowOm FocusWriterAbout FocusWriterWindow&Centrer Align &CenterWindow&TilpassetAlign &JustifyWindow&Venstrestil Align &LeftWindow&Hjrestil Align &RightWindow$Programmets &sprogApplication &Language...WindowTegn: %L1 / %L2Characters: %L1 / %L2WindowHCopyright &copy; 2008-%1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindow Ctrl+<Ctrl+<Window Ctrl+>Ctrl+>Window Ctrl+JCtrl+JWindow Ctrl+KCtrl+KWindow Ctrl+MCtrl+MWindow Ctrl+QCtrl+QWindow Ctrl+RCtrl+RWindowCtrl+Shift+A Ctrl+Shift+AWindowCtrl+Shift+V Ctrl+Shift+VWindow Ctrl+^Ctrl+^Window Ctrl+_Ctrl+_Window Ctrl+{Ctrl+{Window Ctrl+|Ctrl+|Window Ctrl+}Ctrl+}Window K&lipCu&tWindowNDer kan ikke skrives til reservecachen. Emergency cache is not writable.WindowEscEscWindow F&okuseret tekst F&ocused TextWindowF11F11WindowF7F7WindowFind &nste Find &NextWindowFind &tidligereFind Pre&viousWindowFo&rmatFo&rmatWindowFokus fra Focus OffWindowFokus n linieFocus One LineWindowFokus afsnitFocus ParagraphWindow Fokus tre linierFocus Three LinesWindowFocusWriter FocusWriterWindowJFocusWriter blev ikke lukket korrekt.&FocusWriter was not shut down cleanly.Window"Fo&rg indrykningI&ncrease IndentWindow@Tekstblok med Ve&nstre til hjreLe&ft to Right BlockWindow,Indlser indstillingerLoading settingsWindowIndlser lydeLoading soundsWindowIndlser temaerLoading themesWindowM&inimer M&inimizeWindow*Administrer sessionerManage SessionsWindowNy session New SessionWindowEn &linie One &LineWindowbn fil Open FileWindowbner %1 Opening %1Window(Overskriv nyere fil?Overwrite newer file?WindowSider: %L1 Pages: %L1WindowAfsnit: %L1Paragraphs: %L1Window(Indst &uformatteretPaste &UnformattedWindowLSrg for, at SDL_mixer er installeret.-Please make sure that SDL_mixer is installed.WindowSprgsmlQuestionWindowXUdgivet under licensen <a href=%1>GPL 3</a>./Released under the GPL 3 licenseWindowGenind&lsReloa&dWindow0Gendan fra reservecache?!Restore from the emergency cache?Window@Tekstblok med H&jre til venstreRi&ght to Left BlockWindowS&ymboler... S&ymbols...WindowGem &som Save &As...WindowGem &alle Save A&llWindowGem ndringer Save changes?WindowVlg &alle Select &AllWindowVlg &scene Select &SceneWindowVis &menuikonerShow &Menu IconsWindow$Vis &vrktjslinie Show &ToolbarWindowSmart &Quotes Smart &QuotesWindow:Visse filer kunne ikke bnes.Some files could not be opened.WindowNVisse filer blev bnet skrivebeskyttet.!Some files were opened Read-Only.WindownNogle filer var ikke understttede og kunne ikke bnes.4Some files were unsupported and could not be opened.Window&GennemstregStri&kethroughWindow&Hvet skrift Sup&erscriptWindow*Skift til dokument %1Switch to Document %1Window2Skift til frste dokumentSwitch to First DocumentWindow2Skift til sidste dokumentSwitch to Last DocumentWindow0Skift til nste dokumentSwitch to Next DocumentWindow8Skift til tidligere dokumentSwitch to Previous DocumentWindow>Tekstfiler (%1);;Alle Filer (*)Text Files (%1);;All Files (*)WindowFKan ikke indlse skrivemaskinelyde.!Unable to load typewriter sounds.WindowUden titelUntitledWindow"Opdater &dokumentUpdate &DocumentWindow$Opdater &markeringUpdate &SelectionWindow^Anvendes under licensen <a href=%1>LGPL 3</a>.,Used under the LGPL 3 licenseWindow`Anvender ikoner fra <a href=%1>Oxygen</a>-temaet4Uses icons from the Oxygen icon themeWindowAdvarselWarningWindowOrd: %L1 Words: %L1Windowfocuswriter-1.4.5/translations/focuswriter_da.ts000066400000000000000000002224571231434177300222270ustar00rootroot00000000000000 Alert Close (%1) Luk (%1) Collapse Fold sammen Expand Fold ud AlertLayer Dismiss Alert Afvis alarm Ctrl+D Ctrl+D Document Sorry Beklager Unable to save '%1'. Det er ikke muligt at gemme '%1'. Save File As Gem fil som Unable to overwrite '%1'. Det er ikke muligt at overskrive '%1'. Rename File Omdøb fil Unable to rename '%1'. Det er ikke muligt at omdøbe '%1'. Reload File Genindlæs fil Reload the file %1 from disk? Genindlæs filen %1 fra disk? All unsaved changes will be lost. Alle ændringer, der ikke er gemt, vil gå tabt. Reload Genindlæs Plain Text (*.txt) Ren tekst (*.txt) Question Spørgsmål Saving as plain text will discard all formatting. Discard formatting? Gemmes der som ren tekst, vil al formatting blive fjernet. Fjern formattering? OpenDocument Text (*.odt) OpenDocument-tekst (*.odt) Rich Text (*.rtf) Rich Text (*.rtf) All Files (*) Alle filer (*) DocumentWatcher File Changed Fil ændret The file %1 was changed by another program. Filen %1 blev ændret af et andet program. Do you want to reload the file? Ønsker du at genindlæse filen? Reload Genindlæs Ignore Ignorer File Deleted Fil slettet The file %1 was deleted by another program. Filen %1 blev slettet af et andet program. Do you want to save or close the file? Ønsker du at gemme eller lukke filen? FindDialog Search for: Søg efter: Replace with: Erstat med: Ignore case Ignorer store/små bogstaver Whole words only Kun hele ord Regular expressions Regulære udtryk Search up Søg tilbage Search down Søg fremad &Find &Find &Replace &Erstat Replace &All Erstat &alle Find Find Replace Erstat Replace %n instance(s)? Erstat %n forekomst? Erstat %n forekomster? Question Spørgsmål Sorry Beklager Phrase not found. Frasen kunne ikke findes. Highlighter Add Tilføj Check Spelling... Stavekontrol... (No suggestions found) (Der er ikke fundet forslag) ImageButton Open Image Åbn billede Images(%1) Billeder(%1) LocaleDialog Select application language: Vælg programmets sprog: <System Language> <Systemsprog> Note Note Please restart this application for the change in language to take effect. Genstart programmet for at skifte til det valgte sprog. PreferencesDialog Preferences Indstillinger General Generelt Statistics Statistik Toolbar Værktøjslinie Spell Checking Stavekontrol Select Dictionary Vælg ordbog Sorry Beklager Unable to open archive. Det er ikke muligt at åbne arkivet. Unable to read archive metadata. Det er ikke muligt at indlæse arkivets metadata. The archive does not contain a usable dictionary. Dette arkiv indeholder ikke en anvendelig ordbog. Unable to open file '%1'. Det er ikke muligt at åbne filen '%1'. Unable to close file '%1'. Det er ikke muligt at lukke filen '%1'. Question Spørgsmål Shortcuts Genveje One or more shortcuts conflict. Do you wish to proceed? En eller flere genveje er i konflikt. Ønsker du at fortsætte? The dictionary "%1" already exists. Do you want to replace it? Ordbogen '%1' findes allerede. Ønsker du at erstatte den? Daily Goal Dagligt mål None Intet Minutes: Minutter: Words: Ord: Editing Redigering Always vertically center Altid centreret lodret Block insertion cursor Firkantet markør for indsættelse Smooth fonts Udjævn skrifttyper Typewriter sounds Skrivemaskinelyde Smart quotes: Smart quotes: Double Dobbelte Single Enkelte Scenes Scener Divider: Separator: Saving Gemmer Automatically save changes Gem automatisk Remember cursor position Husk markørens placering Contents Indhold Word count Optælling af ord Page count Antal sider Paragraph count Antal afsnit Character count Antal tegn Page Size Sideformat Characters: Tegn: Paragraphs: Afsnit: Word Count Algorithm Algoritme til ordtælling Detect word boundaries Registrer ordgrænser Divide character count by six Del antal tegn med seks Style Stil Icons Only Kun ikoner Text Only Kun tekst Text Alongside Icons Tekst ved siden af ikoner Text Under Icons Tekst under ikoner Text Position: Placering i tekst Actions Handlinger Move Up Flyt op Move Down Flyt ned Add Separator Tilføj opdeling Command Kommando Shortcut Genvej Action Handling Check spelling as you type Kontroller stavning, mens der skrives Ignore words in UPPERCASE Ignorer STORE BOGSTAVER Ignore words with numbers Ignorer ord med tal Language Sprog Add Tilføj Remove Fjern Personal Dictionary Personlig ordbog Reader Not a supported RTF file. Ikke en understøttet RTF-fil Unable to open archive. Kunne ikke åbne arkivet. Unable to open file '%1'. Kunne ikke åbne filen '%1'. Unable to close file '%1'. Kunne ikke lukke filen '%1'. SceneList Ctrl+Shift+Down Ctrl+Shift+Ned Move Scenes Up Flyt scener op Ctrl+Shift+Up Ctrl+Shift+Op Toggle Scene List Liste over scener til/fra Shift+F4 Shift+F4 Show scene list (%1) Vis liste over scener (%1) Hide scene list (%1) Skjul liste over scener (%1) Filter Filter Move Scenes Down Flyt scener ned Resize scene list Juster liste over scener Session Default Standard SessionManager Manage Sessions Administrer sessioner S&essions S&essioner New Ny Rename Omdøb Clone Klon Delete Slet Switch To Skift til New Session Ny session Clone Session Klon session Rename Session Omdøb session Question Spørgsmål Delete selected session? Slet valgte session? Session name: Navn på session: Sorry Beklager The requested session name is already in use. Der gøres allerede brug af det ønskede sessionsnavn. &New... &Ny... Ctrl+Shift+N Ctrl+Shift+N &Manage... &Administrer Ctrl+Shift+M Ctrl+Shift+M ShortcutEdit Clear Ryd Reset to Default Nulstil Shortcut: Genvej: SmartQuote Replacing quotation marks... Erstatter citatonstegn... Please Wait Vent venligst SpellChecker Check Spelling Kontroller stavning &Add &Tilføj &Ignore &Ignorer I&gnore All I&gnorer alle &Change &Skift C&hange All S&kift alle Not in dictionary: Ikke i ordbogen: Change to: Skift til: Checking spelling... Kontrollerer stavning... Cancel Fortryd Please wait Vent venligst Spell check complete. Stavekontrol fuldført. SymbolsDialog Symbols Symboler Recently used symbols Nyligt brugte symboler All symbols Alle symboler Details Detaljer Name: Navn: Insert Indsæt SymbolsModel Blocks Blokke Scripts Scripts Theme Untitled %1 Uden titel %1 ThemeDialog Modify Theme Tilpas tema Name: Navn: Background Baggrund No Image Intet billede Tiled Side om side Centered Centreret Stretched Strakt Scaled Skaleret Zoomed Zoomet Remove Fjern Type: Type: Color: Farve: Image: Billede: Foreground Forgrund Opacity Gennemsigtighed pixels pixels Left Venstre Right Højre Position Position Size: Størrelse: Rounding: Runding: Margin: Margen: Padding: Luft omkring: Text Tekst Font: Skrifttype: Misspelled: Stavefejl: Spacings Afstande Line Spacing Linjeafstand Single Enkel 1.5 Lines Halvanden linie Double Dobbelt Proportional Proportionel Paragraph Spacing Mellemrum mellem afsnit Indent First Line: Indryk første linje: Pixels Above: Pixels over: Pixels Below: Pixels under: The quick brown fox jumps over the lazy dog Tekst til test ThemeManager Themes Temaer Add Tilføj Modify Tilpas Remove Fjern Import Importer Export Eksport Close Luk Question Spørgsmål Remove selected theme? Fjern valgte tema? Import Theme Importer tema Themes (*.fwtz *.theme) Temaer (*.fwtz *.theme) Themes (*.fwtz) Temaer(*.fwtz) Sorry Beklager A theme already exists with that name. Please enter a new name: Der findes allerede et tema med det navn. Indtast venligst et nyt: Export Theme Eksporter tema Timer <b>%1</b> - %2 <b>%1</b> - %2 Question Spørgsmål Delete timer? Slet tæller <b>Words:</b> %L1 <b>Ord:</b> %L1 <b>Pages:</b> %L1 <b>Sider:</b> %L1 <b>Paragraphs:</b> %L1 <b>Afsnit:</b> %L1 <b>Characters:</b> %L1 / %L2 <b>Tegn:</b> %L1 / %L2 Set Delay Sæt nedtælling Set Time Sæt tid Delay: Nedtælling: Time: Tid: HH:mm:ss TT:mm:ss Alarm Alarm Type: Type: Memo: Memo: Edit Rediger Delete Slet TimerDisplay HH:mm:ss TT:mm:ss No timers running Ingen aktive tællere TimerManager Timers Tællere New Ny Recent Nylig Question Spørgsmål Cancel editing timers? Fortryd ændring af tællere +HH:mm:ss +TT:mm:ss %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. Uventet nået slutning på fil. Window Loading themes Indlæser temaer Loading sounds Indlæser lyde Untitled Uden titel Open File Åbn fil About FocusWriter Om FocusWriter FocusWriter FocusWriter A simple fullscreen word processor Et enkelt tekstbehandlingsprogram i fuld skærm Copyright &copy; 2008-%1 Graeme Gott Copyright &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Udgivet under licensen <a href=%1>GPL 3</a>. Uses icons from the <a href=%1>Oxygen</a> icon theme Anvender ikoner fra <a href=%1>Oxygen</a>-temaet Used under the <a href=%1>LGPL 3</a> license Anvendes under licensen <a href=%1>LGPL 3</a>. Characters: %L1 / %L2 Tegn: %L1 / %L2 Pages: %L1 Sider: %L1 Paragraphs: %L1 Afsnit: %L1 Words: %L1 Ord: %L1 %1% of daily goal %1% af dagligt mål Opening %1 Åbner %1 Question Spørgsmål Save changes? Gem ændringer (Untitled %1) (Uden titel%1) Switch to Next Document Skift til næste dokument Switch to Previous Document Skift til tidligere dokument Switch to First Document Skift til første dokument Switch to Last Document Skift til sidste dokument Switch to Document %1 Skift til dokument %1 Loading settings Indlæser indstillinger Emergency cache is not writable. Der kan ikke skrives til reservecachen. Warning Advarsel FocusWriter was not shut down cleanly. FocusWriter blev ikke lukket korrekt. Restore from the emergency cache? Gendan fra reservecache? Some files could not be opened. Visse filer kunne ikke åbnes. Some files were opened Read-Only. Visse filer blev åbnet skrivebeskyttet. Text Files (%1);;All Files (*) Tekstfiler (%1);;Alle Filer (*) '%1' is newer than the cached copy. '%1' er nyere end den lagrede kopi. Overwrite newer file? Overskriv nyere fil? Unable to load typewriter sounds. Kan ikke indlæse skrivemaskinelyde. Please make sure that SDL_mixer is installed. Sørg for, at SDL_mixer er installeret. %1 (Read-Only) %1 (Skrivebeskyttet) &File &Fil &New &Ny &Open... &Åbn... Reloa&d Genind&læs &Save &Gem Save &As... Gem &som &Rename... &Omdøb... Save A&ll Gem &alle Manage Sessions Administrer sessioner New Session Ny session &Print... &Udskrift... &Close &Luk &Quit &Afslut Ctrl+Q Ctrl+Q &Edit &Rediger &Undo &Fortryd &Redo &Gendan Cu&t K&lip &Copy &Kopier &Paste &Indsæt Paste &Unformatted Indsæt &uformatteret Ctrl+Shift+V Ctrl+Shift+V Select &All Vælg &alle Select &Scene Vælg &scene Ctrl+Shift+A Ctrl+Shift+A Fo&rmat Fo&rmat &Bold &Fed &Italic &Kursiv &Underline &Understreg Stri&kethrough &Gennemstreg Ctrl+K Ctrl+K Sup&erscript &Hævet skrift Ctrl+^ Ctrl+^ &Subscript &Sænket skrift Ctrl+_ Ctrl+_ Align &Left &Venstrestil Ctrl+{ Ctrl+{ Align &Center &Centrer Ctrl+| Ctrl+| Align &Right &Højrestil Ctrl+} Ctrl+} Align &Justify &Tilpasset Ctrl+J Ctrl+J &Decrease Indent &Forminds indrykning Ctrl+< Ctrl+< I&ncrease Indent Fo&røg indrykning Ctrl+> Ctrl+> Le&ft to Right Block Tekstblok med Ve&nstre til højre Ri&ght to Left Block Tekstblok med Hø&jre til venstre &Tools &Værktøjer &Find... &Find... Find &Next Find &næste Find Pre&vious Find &tidligere &Replace... &Erstat Ctrl+R Ctrl+R Smart &Quotes Smart &Quotes Update &Document Opdater &dokument Update &Selection Opdater &markering &Spelling... &Stavning... F7 F7 &Timers... &Tællere... S&ymbols... S&ymboler... &Settings &Indstillinger Show &Toolbar Vis &værktøjslinie Show &Menu Icons Vis &menuikoner F&ocused Text F&okuseret tekst &Fullscreen &Fuld skærm F11 F11 Esc Esc M&inimize M&inimer Ctrl+M Ctrl+M &Themes... &Temaer... &Preferences... &Indstillinger... Focus Off Fokus fra Focus One Line Fokus én linie Focus Three Lines Fokus tre linier &Paragraph A&fsnit Focus Paragraph Fokus afsnit &Help &Hjælp Application &Language... Programmets &sprog Some files were unsupported and could not be opened. Nogle filer var ikke understøttede og kunne ikke åbnes. &Off &Fra One &Line En &linie &Three Lines &Tre linier &About &Om About &Qt Om &QT focuswriter-1.4.5/translations/focuswriter_de.qm000066400000000000000000001012121231434177300222030ustar00rootroot00000000000000xPeS*MT;T@XCZCZiZiZi"Zi4ZiIZ%#[E[N\E\N\*_ >WQc4[{ !O4Ϩ% dg3]hI~m.0n'c0n+-P2@qJtp^s.mbj"uMS^-=%c$$S ~VaqpefbzXG:J!R;6R[+U7f3Xb?.Qce"\n'aK~ke3(c, 4[i95!^HbwABJ?)'L1$`WS|)XUIPᑞ:{sON1 J`~o'( WDE-M@J0Z.lu'z^Ԏ0EV^8 Z#<| jI8P6Z> ]I]v]]]^*^W__/+_\,_-_(L,1,LbmE%N%>>M)~gA\%Ȟn`hDvvG:-`8V Ag}>vH%;q IC;az?D9'EHQY 3TP5t5t F &FBFIH53wG dC ,N%!N%C2Z*I<PtsrK$M2dݲ j*cfsXcE\UQ/ap25@8Nnu:[IIQJINZ[/gAlTm*;zCD'C!q6^.BfvlZ̊|9O(~O,2޷5!@ $*rh+zf< u0R=WlC%m p="xjaaAM ^6fd!lw82Oq9} &G9LNRf/gf|>U|w#pO}tL4qPcCSj/%% ' uD_C2xCf \~U >kJ :7 "6 %^ Y  v Y z z .3' JW W2 Wfc < 4I ·O .^  Ń +I} :r9 ;flf d8p eEP 7 q^%4 t0 b4 ʀs;: ˔X ˼C: z_D Bp f ! V7 c Ef cMx cN >cO Uj 6pQ >W JCK Z$= eND iN!g tfk u 4 sW F CB  ' + tR 1k \: sS Ds a 8j DY^ DY1X DY1 DZ^ ^3J noM uu {N* Pv I, < ޘ Zc#Y:nE@gNltr 8Acl .^ddRi4q_sZj/'A LL9/]W?e$OiT!3sYI--zC"a" ivSchlieen (%1) Close (%1)AlertEinklappenCollapseAlertAusklappenExpandAlert Strg+DCtrl+D AlertLayerAlarm Beenden Dismiss Alert AlertLayer Alle Dateien (*) All Files (*)DocumentlAlle ungespeicherten nderungen werden verloren gehen.!All unsaved changes will be lost.Document2OpenDocument Text (*.odt)OpenDocument Text (*.odt)Document nur Text (*.txt)Plain Text (*.txt)Document FrageQuestionDocumentNeu ladenReloadDocumentDatei neu laden Reload FileDocumentTDie Datei %1 von der Festplatte neu laden?Reload the file %1 from disk?Document Datei umbenennen Rename FileDocument Rich Text(*.rtf)Rich Text (*.rtf)Document*Datei speichern unter Save File AsDocumentDurch das Soeichern als einfacher Text werden alle Formatierungen entfernt. Formatierungen entfernen?ESaving as plain text will discard all formatting. Discard formatting?DocumentEntschuldigungSorryDocumentJ'%1' kann nicht berschrieben werden.Unable to overwrite '%1'.DocumentB'%1' kann nicht umbenannt werden.Unable to rename '%1'.DocumentF'%1' kann nicht gespeichert werden.Unable to save '%1'.Document>Wollen Sie die Datei neu laden?Do you want to reload the file?DocumentWatcher^Wollen Sie die Datei speichern oder schliessen?&Do you want to save or close the file?DocumentWatcherDatei gendert File ChangedDocumentWatcher0Die Datei wurde gelscht File DeletedDocumentWatcherIgnorierenIgnoreDocumentWatcherNeu ladenReloadDocumentWatchernDie Datei %1 wurde von einem anderen Programm gendert.+The file %1 was changed by another program.DocumentWatchernDie Datei %1 wurde von einem anderen Programm gelscht.+The file %1 was deleted by another program.DocumentWatcher&Suchen&Find FindDialog&Ersetzen&Replace FindDialog SuchenFind FindDialog@Gro-/Kleinschreibung ignorieren Ignore case FindDialog0Ausdruck nicht gefunden.Phrase not found. FindDialog FrageQuestion FindDialog"Regulre AusrckeRegular expressions FindDialogErsetzenReplace FindDialog(In %n Fall ersetzen?,In %n Fllen ersetzen?Replace %n instance(s)? FindDialog&Alle Ersetzen Replace &All FindDialogErsetze durch: Replace with: FindDialogAbwrts suchen Search down FindDialogSuche nach: Search for: FindDialogAufwrts suchen Search up FindDialogEntschuldigungSorry FindDialog Nur ganze WrterWhole words only FindDialog6(keine Vorschlge gefunden)(No suggestions found) HighlighterHinzufgenAdd Highlighter4Rechtschreibung prfen ...Check Spelling... HighlighterBilder(%1) Images(%1) ImageButtonBild ffnen Open Image ImageButton<Systemsprache> LocaleDialogBeachteNote LocaleDialogDamit nderungen an der Programmsprache in Kraft treten knnen, muss das Programm neu gestartet werden.JPlease restart this application for the change in language to take effect. LocaleDialog.Programmsprache whlen:Select application language: LocaleDialog BefehlActionPreferencesDialogBefehleActionsPreferencesDialogHinzufgenAddPreferencesDialog*Trennlinie hinzufgen Add SeparatorPreferencesDialog.Immer mittig ausrichtenAlways vertically centerPreferencesDialog@nderungen automatisch speichernAutomatically save changesPreferencesDialogLEingabemarkierung als Block darstellenBlock insertion cursorPreferencesDialogZeichenzhlungCharacter countPreferencesDialogZeichen: Characters:PreferencesDialogLRechtschreibung bei der Eingabe prfenCheck spelling as you typePreferencesDialog BefehlCommandPreferencesDialog InhaltContentsPreferencesDialogTagesziel Daily GoalPreferencesDialog*Wortgrenzen entdeckenDetect word boundariesPreferencesDialogDZeichenzahl durch sechs dividierenDivide character count by sixPreferencesDialogTeiler:Divider:PreferencesDialogDoppeltDoublePreferencesDialogBearbeitungEditingPreferencesDialogAllgemeinGeneralPreferencesDialognur Symbole Icons OnlyPreferencesDialogJGROSCHREIBUNG von Wrtern ignorierenIgnore words in UPPERCASEPreferencesDialog:Wrter mit Ziffern ignorierenIgnore words with numbersPreferencesDialogSpracheLanguagePreferencesDialogMinuten:Minutes:PreferencesDialog,Nach unten verschieben Move DownPreferencesDialog*Nach oben verschiebenMove UpPreferencesDialog NichtsNonePreferencesDialogEine oder mehrere Verknpfungen Konflikte. Mchten Sie fortfahren?7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialogSeitengre Page SizePreferencesDialogSeitenzhlung Page countPreferencesDialogAbsatzzhlungParagraph countPreferencesDialogAbstze: Paragraphs:PreferencesDialog.Persnliches WrterbuchPersonal DictionaryPreferencesDialogEinstellungen PreferencesPreferencesDialog FrageQuestionPreferencesDialogJPosition der Eingabemarkierung merkenRemember cursor positionPreferencesDialogEntfernenRemovePreferencesDialogSpeichernSavingPreferencesDialog SzenenScenesPreferencesDialog"Wrterbuch whlenSelect DictionaryPreferencesDialogShortcutShortcutPreferencesDialogShortcuts ShortcutsPreferencesDialogEinfachSinglePreferencesDialogBTypographische Anfhrungszeichen: Smart quotes:PreferencesDialog(Geglttete Schriften Smooth fontsPreferencesDialogEntschuldigungSorryPreferencesDialog&RechtschreibprfungSpell CheckingPreferencesDialogStatistiken StatisticsPreferencesDialog ErscheinungsbildStylePreferencesDialog(Text neben SymbolenText Alongside IconsPreferencesDialognur Text Text OnlyPreferencesDialogText Position:Text Position:PreferencesDialog Text unter IconsText Under IconsPreferencesDialogdDieses Archiv enthlt kein brauchbares Wrterbuch.1The archive does not contain a usable dictionary.PreferencesDialogzDas Wrterbuch %1 existiert bereits. Mchten Sie es ersetzen?>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialogSymbolleisteToolbarPreferencesDialogTippgeruscheTypewriter soundsPreferencesDialogZDie Datei '%1' kann nicht geschlossen werden.Unable to close file '%1'.PreferencesDialogDArchiv kann nicht geffnet werden.Unable to open archive.PreferencesDialogTDie Datei '%1' kann nicht geffnet werden.Unable to open file '%1'.PreferencesDialoglDie Metadaten des Archivs knnen nicht gelesen werden. Unable to read archive metadata.PreferencesDialog>Algorithmus fr die WortzhlungWord Count AlgorithmPreferencesDialogWrterzhlung Word countPreferencesDialogWrter:Words:PreferencesDialog:Keine untersttzte RTF-Datei.Not a supported RTF file.ReaderZDie Datei '%1' kann nicht geschlossen werden.Unable to close file '%1'.ReaderDArchiv kann nicht geffnet werden.Unable to open archive.ReaderTDie Datei '%1' kann nicht geffnet werden.Unable to open file '%1'.Reader4Strg+Shift+Bild nach untenCtrl+Shift+Down SceneListStrg+Shift+Up Ctrl+Shift+Up SceneList FilterFilter SceneList4Szeneliste verstecken (%1)Hide scene list (%1) SceneList:Szenen nach unten verschiebenMove Scenes Down SceneList8Szenen nach oben verschiebenMove Scenes Up SceneList6Gre der Szeneliste ndernResize scene list SceneListShift+F4Shift+F4 SceneList0Szeneliste anzeigen (%1)Show scene list (%1) SceneList$Toggle Szene ListeToggle Scene List SceneListStandardDefaultSession&Verwalten... &Manage...SessionManager&Neu...&New...SessionManagerDuplizierenCloneSessionManager&Sitzung duplizieren Clone SessionSessionManagerStrg+Shift+V Ctrl+Shift+MSessionManagerStrg+Shift+N Ctrl+Shift+NSessionManagerLschenDeleteSessionManager Sitzung lschen?Delete selected session?SessionManager&Sitzungen verwaltenManage SessionsSessionManagerNeuNewSessionManagerNeue Sitzung New SessionSessionManager FrageQuestionSessionManagerUmbenennenRenameSessionManager$Sitzung umbenennenRename SessionSessionManagerS&itzungen S&essionsSessionManager"Name der Sitzung: Session name:SessionManagerEntschuldigungSorrySessionManagerWechseln zu Switch ToSessionManagerXDie gewnschte Sitzung wird derzeit benutzt.-The requested session name is already in use.SessionManager LeerenClear ShortcutEdit2Auf Standard zurcksetzenReset to Default ShortcutEditShortcut: Shortcut: ShortcutEditBitte warten Please Wait SmartQuoteFAnfhrungszeichen werden ersetzt...Replacing quotation marks... SmartQuote&Hinzufgen&Add SpellChecker&ndern&Change SpellChecker&Ignorieren&Ignore SpellCheckerAlle &ndern C&hange All SpellCheckerAbbrechenCancel SpellCheckerErsetzen durch: Change to: SpellChecker&RechtschreibprfungCheck Spelling SpellChecker4Rechtschreibung prfen ...Checking spelling... SpellChecker Alle I&gnorieren I&gnore All SpellChecker(Nicht im Wrterbuch:Not in dictionary: SpellCheckerBitte warten Please wait SpellCheckerDRechtschreibprfung abgeschlossen.Spell check complete. SpellCheckerAlle Symbole All symbols SymbolsDialogDetailsDetails SymbolsDialogEinfgenInsert SymbolsDialog Name:Name: SymbolsDialog4Zuletzt verwendete SymboleRecently used symbols SymbolsDialogSymboleSymbols SymbolsDialog BlckeBlocks SymbolsModelSkripteScripts SymbolsModelUnbenannt %1 Untitled %1Theme Pixel pixels ThemeDialog1,5zeilig 1.5 Lines ThemeDialogHintergrund Background ThemeDialogZentriertCentered ThemeDialog Farbe:Color: ThemeDialogZweizeiligDouble ThemeDialogSchrift:Font: ThemeDialogVordergrund Foreground ThemeDialog Bild:Image: ThemeDialog,Erste Zeile Einrcken:Indent First Line: ThemeDialog LinksLeft ThemeDialogZeilenabstand Line Spacing ThemeDialog Rand:Margin: ThemeDialogSchreibfehler: Misspelled: ThemeDialogThema ndern Modify Theme ThemeDialog Name:Name: ThemeDialogKein BildNo Image ThemeDialogDeckkraftOpacity ThemeDialogAbstand:Padding: ThemeDialogAbsatzabstndeParagraph Spacing ThemeDialogPixel darber: Pixels Above: ThemeDialogPixel darunter: Pixels Below: ThemeDialogPositionPosition ThemeDialogProportional Proportional ThemeDialogEntfernenRemove ThemeDialog RechtsRight ThemeDialogAbrundung: Rounding: ThemeDialogSkaliertScaled ThemeDialogEinzeiligSingle ThemeDialog Gre:Size: ThemeDialogAbstndeSpacings ThemeDialogGedehnt Stretched ThemeDialogTextText ThemeDialog|Schweigeqult zndet Typograf Jakob verflixt de Pangramme an+The quick brown fox jumps over the lazy dog ThemeDialogGekacheltTiled ThemeDialog Stil:Type: ThemeDialogZoomZoomed ThemeDialogEin Thema mit diesem Namen existiert bereits. Bitte geben Sie einen anderen Namen ein:?A theme already exists with that name. Please enter a new name: ThemeManagerHinzufgenAdd ThemeManagerSchlieenClose ThemeManagerExportierenExport ThemeManager"Thema exportieren Export Theme ThemeManagerImportierenImport ThemeManager"Thema importieren Import Theme ThemeManager ndernModify ThemeManager FrageQuestion ThemeManagerEntfernenRemove ThemeManager4Gewhltes Thema entfernen?Remove selected theme? ThemeManagerEntschuldigungSorry ThemeManager ThemenThemes ThemeManager,Thema (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManagerThema (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer2<b>Zeichen:</b> %L1 / %L2Characters: %L1 / %L2Timer$<b>Seiten:</b> %L1Pages: %L1Timer&<b>Abstze:</b> %L1Paragraphs: %L1Timer$<b>Wrter:</b> %L1Words: %L1Timer AlarmAlarmTimer Dauer:Delay:TimerLschenDeleteTimerTimer lschen? Delete timer?TimerBearbeitenEditTimerHH:mm:ssHH:mm:ssTimer Notiz:Memo:Timer FrageQuestionTimer Dauer einstellen Set DelayTimer$Uhrzeit einstellenSet TimeTimer Zeit:Time:TimerTyp:Type:TimerHH:mm:ssHH:mm:ss TimerDisplay,Kein Timer eingestelltNo timers running TimerDisplay%1 - %2%1 - %2 TimerManager+HH:mm:ss +HH:mm:ss TimerManager6Timer einstellen abbrechen?Cancel editing timers? TimerManagerNeuNew TimerManager FrageQuestion TimerManagerLetzterRecent TimerManager TimerTimers TimerManagerFEnde der Datei unerwartet erreicht.!Unexpectedly reached end of file. Tokenizer*%1 (Schreibgeschtzt)%1 (Read-Only)Window$%1% des Tagesziels%1% of daily goalWindow &ber&AboutWindow &Fett&BoldWindow&Schlieen&CloseWindowK&opieren&CopyWindow0Zeileneinzug &verringern&Decrease IndentWindow&Bearbeiten&EditWindow &Datei&FileWindow&Suchen...&Find...Window&Vollbild &FullscreenWindow &Hilfe&HelpWindow&Kursiv&ItalicWindow&Neu&NewWindow&Aus&OffWindow&ffnen...&Open...Window&Absatz &ParagraphWindowEinf&gen&PasteWindow(&Voreinstellungen...&Preferences...Window&Drucken... &Print...Window&Beenden&QuitWindow&Wiederholen&RedoWindow&Umbenennen... &Rename...Window&Ersetzen... &Replace...Window&Speichern&SaveWindow&Einstellungen &SettingsWindow&&Rechtschreibung... &Spelling...Window&Tiefgestellt &SubscriptWindow&Designs... &Themes...WindowDrei Zeilen &Three LinesWindow&Wecker... &Timers...Window&Werkzeuge&ToolsWindow&Unterstrichen &UnderlineWindow&Rckgngig&UndoWindown'%1' ist aktueller als die Version im Zwischenspeicher.#'%1' is newer than the cached copy.Window(Unbenannt %1) (Untitled %1)WindowDEinfache Vollbild Textverarbeitung"A simple fullscreen word processorWindowber &Qt About &QtWindow ber FocusWriterAbout FocusWriterWindow&Zentrieren Align &CenterWindow&BlocksatzAlign &JustifyWindow&Linksbndig Align &LeftWindow&Rechtsbndig Align &RightWindow&Sprache...Application &Language...Window$Zeichen: %L1 / %L2Characters: %L1 / %L2WindowHCopyright &copy; 2008-%1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindow Strg+<Ctrl+<Window Strg+>Ctrl+>Window Strg+JCtrl+JWindow Strg+GCtrl+KWindow Strg+MCtrl+MWindow Strg+QCtrl+QWindow Strg+RCtrl+RWindowCtrl+Shift+A Ctrl+Shift+AWindowStrg+Shift+V Ctrl+Shift+VWindow Strg+^Ctrl+^Window Strg+_Ctrl+_Window Strg+{Ctrl+{Window Strg+|Ctrl+|Window Strg+}Ctrl+}WindowA&usschneidenCu&tWindow^Der Sicherheitsspeicher ist nicht beschreibbar. Emergency cache is not writable.WindowEscEscWindow*&Hervorgehobener Text F&ocused TextWindowF11F11WindowF7F7Window&Weitersuchen Find &NextWindow"&Rckwrts suchenFind Pre&viousWindowFo&rmatierenFo&rmatWindowFokus Aus Focus OffWindow Fokus EIne ZeileFocus One LineWindowFokus AbsatzFocus ParagraphWindow"Fokus Drei ZeilenFocus Three LinesWindowFocusWriter FocusWriterWindow\FocusWriter wurde nicht ordnungsgem beendet.&FocusWriter was not shut down cleanly.Window &Zeile einrckenI&ncrease IndentWindow:Block &linksbndig ausrichtenLe&ft to Right BlockWindow8Einstellungen werden geladenLoading settingsWindow*Sounds werden geladenLoading soundsWindow*Themen werden geladenLoading themesWindowM&inimieren M&inimizeWindow&Sitzungen verwaltenManage SessionsWindowNeue Sitzung New SessionWindowEine Zeile One &LineWindowDatei ffnen Open FileWindow,Datei %1 wird geffnet Opening %1Window6Neuere Datei berschreiben?Overwrite newer file?WindowSeiten: %L1 Pages: %L1WindowAbstze: %L1Paragraphs: %L1Window"&Rohtext einfgenPaste &UnformattedWindowrBitte stellen Sie sicher, dass SDL_mixer installiert ist.-Please make sure that SDL_mixer is installed.Window FrageQuestionWindowfHerausgegeben unter der <a href=%1>GPL 3</a> Lizenz/Released under the GPL 3 licenseWindowNeuladenReloa&dWindowDSicherheitskopie wiederherstellen?!Restore from the emergency cache?Window:Block &rechtbndig ausrichtenRi&ght to Left BlockWindowSymbole... S&ymbols...Window&Speichern &unter... Save &As...Window &Alles speichern Save A&llWindow*nderungen speichern? Save changes?Window Alles Ausw&hlen Select &AllWindowSzene auswhlen Select &SceneWindow(&Menu Icons anzeigenShow &Menu IconsWindow(&Symbolleiste zeigen Show &ToolbarWindow$&Anfhrungszeichen Smart &QuotesWindowZEinige Dateien konnten nicht geffnet werden.Some files could not be opened.WindowvEinige Dateien wurden im schreibgeschtzten Modus geffnet.!Some files were opened Read-Only.WindowEinige Dateien werden nicht untersttzt und knnen nicht geffnet werden.4Some files were unsupported and could not be opened.Window Durch&gestrichenStri&kethroughWindow&Hochgestellt Sup&erscriptWindow2Ins Dokument %1 bergehenSwitch to Document %1Window8Ins erste Dokument bergehenSwitch to First DocumentWindow:Ins letzte Dokument bergehenSwitch to Last DocumentWindow<Ins nchste Dokument bergehenSwitch to Next DocumentWindow@Ins vorherige Dokument bergehenSwitch to Previous DocumentWindowFText-Dateien (%1);;Alle Dateien (*)Text Files (%1);;All Files (*)WindowTTippgerusche knnen nicht geladen werden.!Unable to load typewriter sounds.WindowUnbenanntUntitledWindow.&Dokument aktualisierenUpdate &DocumentWindow,Aus&wahl aktualisierenUpdate &SelectionWindowbUnter Verwendung der <a href=%1>LGPL 3</a> Lizenz,Used under the LGPL 3 licenseWindowzDie Symbole entstammen dem <a href=%1>Oxygen</a> Symbol-Thema4Uses icons from the Oxygen icon themeWindowWarnungWarningWindowWrter: %L1 Words: %L1Windowfocuswriter-1.4.5/translations/focuswriter_de.ts000066400000000000000000002245201231434177300222240ustar00rootroot00000000000000 Alert Close (%1) Schließen (%1) Collapse Einklappen Expand Ausklappen AlertLayer Dismiss Alert Alarm Beenden Ctrl+D Strg+D Document Sorry Entschuldigung Unable to save '%1'. '%1' kann nicht gespeichert werden. Save File As Datei speichern unter Unable to overwrite '%1'. '%1' kann nicht überschrieben werden. Rename File Datei umbenennen Unable to rename '%1'. '%1' kann nicht umbenannt werden. Reload File Datei neu laden Reload the file %1 from disk? Die Datei %1 von der Festplatte neu laden? All unsaved changes will be lost. Alle ungespeicherten Änderungen werden verloren gehen. Reload Neu laden Plain Text (*.txt) nur Text (*.txt) Question Frage Saving as plain text will discard all formatting. Discard formatting? Durch das Soeichern als einfacher Text werden alle Formatierungen entfernt. Formatierungen entfernen? OpenDocument Text (*.odt) OpenDocument Text (*.odt) Rich Text (*.rtf) Rich Text(*.rtf) All Files (*) Alle Dateien (*) DocumentWatcher File Changed Datei geändert The file %1 was changed by another program. Die Datei %1 wurde von einem anderen Programm geändert. Do you want to reload the file? Wollen Sie die Datei neu laden? Reload Neu laden Ignore Ignorieren File Deleted Die Datei wurde gelöscht The file %1 was deleted by another program. Die Datei %1 wurde von einem anderen Programm gelöscht. Do you want to save or close the file? Wollen Sie die Datei speichern oder schliessen? FindDialog Search for: Suche nach: Replace with: Ersetze durch: Ignore case Groß-/Kleinschreibung ignorieren Whole words only Nur ganze Wörter Regular expressions Reguläre Ausrücke Search up Aufwärts suchen Search down Abwärts suchen &Find &Suchen &Replace &Ersetzen Replace &All &Alle Ersetzen Find Suchen Replace Ersetzen Replace %n instance(s)? In %n Fall ersetzen? In %n Fällen ersetzen? Question Frage Sorry Entschuldigung Phrase not found. Ausdruck nicht gefunden. Highlighter Add Hinzufügen Check Spelling... Rechtschreibung prüfen ... (No suggestions found) (keine Vorschläge gefunden) ImageButton Open Image Bild öffnen Images(%1) Bilder(%1) LocaleDialog Select application language: Programmsprache wählen: <System Language> <Systemsprache> Note Beachte Please restart this application for the change in language to take effect. Damit Änderungen an der Programmsprache in Kraft treten können, muss das Programm neu gestartet werden. PreferencesDialog Preferences Einstellungen General Allgemein Statistics Statistiken Toolbar Symbolleiste Spell Checking Rechtschreibprüfung Select Dictionary Wörterbuch wählen Sorry Entschuldigung Unable to open archive. Archiv kann nicht geöffnet werden. Unable to read archive metadata. Die Metadaten des Archivs können nicht gelesen werden. The archive does not contain a usable dictionary. Dieses Archiv enthält kein brauchbares Wörterbuch. Unable to open file '%1'. Die Datei '%1' kann nicht geöffnet werden. Unable to close file '%1'. Die Datei '%1' kann nicht geschlossen werden. Question Frage Shortcuts Shortcuts One or more shortcuts conflict. Do you wish to proceed? Eine oder mehrere Verknüpfungen Konflikte. Möchten Sie fortfahren? The dictionary "%1" already exists. Do you want to replace it? Das Wörterbuch %1 existiert bereits. Möchten Sie es ersetzen? Daily Goal Tagesziel None Nichts Minutes: Minuten: Words: Wörter: Editing Bearbeitung Always vertically center Immer mittig ausrichten Block insertion cursor Eingabemarkierung als Block darstellen Smooth fonts Geglättete Schriften Typewriter sounds Tippgeräusche Smart quotes: Typographische Anführungszeichen: Double Doppelt Single Einfach Scenes Szenen Divider: Teiler: Saving Speichern Automatically save changes Änderungen automatisch speichern Remember cursor position Position der Eingabemarkierung merken Contents Inhalt Word count Wörterzählung Page count Seitenzählung Paragraph count Absatzzählung Character count Zeichenzählung Page Size Seitengröße Characters: Zeichen: Paragraphs: Absätze: Word Count Algorithm Algorithmus für die Wortzählung Detect word boundaries Wortgrenzen entdecken Divide character count by six Zeichenzahl durch sechs dividieren Style Erscheinungsbild Icons Only nur Symbole Text Only nur Text Text Alongside Icons Text neben Symbolen Text Under Icons Text unter Icons Text Position: Text Position: Actions Befehle Move Up Nach oben verschieben Move Down Nach unten verschieben Add Separator Trennlinie hinzufügen Command Befehl Shortcut Shortcut Action Befehl Check spelling as you type Rechtschreibung bei der Eingabe prüfen Ignore words in UPPERCASE GROßSCHREIBUNG von Wörtern ignorieren Ignore words with numbers Wörter mit Ziffern ignorieren Language Sprache Add Hinzufügen Remove Entfernen Personal Dictionary Persönliches Wörterbuch Reader Not a supported RTF file. Keine unterstützte RTF-Datei. Unable to open archive. Archiv kann nicht geöffnet werden. Unable to open file '%1'. Die Datei '%1' kann nicht geöffnet werden. Unable to close file '%1'. Die Datei '%1' kann nicht geschlossen werden. SceneList Ctrl+Shift+Down Strg+Shift+Bild nach unten Move Scenes Up Szenen nach oben verschieben Ctrl+Shift+Up Strg+Shift+Up Toggle Scene List Toggle Szene Liste Shift+F4 Shift+F4 Show scene list (%1) Szeneliste anzeigen (%1) Hide scene list (%1) Szeneliste verstecken (%1) Filter Filter Move Scenes Down Szenen nach unten verschieben Resize scene list Größe der Szeneliste ändern Session Default Standard SessionManager Manage Sessions Sitzungen verwalten S&essions S&itzungen New Neu Rename Umbenennen Clone Duplizieren Delete Löschen Switch To Wechseln zu New Session Neue Sitzung Clone Session Sitzung duplizieren Rename Session Sitzung umbenennen Question Frage Delete selected session? Sitzung löschen? Session name: Name der Sitzung: Sorry Entschuldigung The requested session name is already in use. Die gewünschte Sitzung wird derzeit benutzt. &New... &Neu... Ctrl+Shift+N Strg+Shift+N &Manage... &Verwalten... Ctrl+Shift+M Strg+Shift+V ShortcutEdit Clear Leeren Reset to Default Auf Standard zurücksetzen Shortcut: Shortcut: SmartQuote Replacing quotation marks... Anführungszeichen werden ersetzt... Please Wait Bitte warten SpellChecker Check Spelling Rechtschreibprüfung &Add &Hinzufügen &Ignore &Ignorieren I&gnore All Alle I&gnorieren &Change &Ändern C&hange All Alle Ä&ndern Not in dictionary: Nicht im Wörterbuch: Change to: Ersetzen durch: Checking spelling... Rechtschreibung prüfen ... Cancel Abbrechen Please wait Bitte warten Spell check complete. Rechtschreibprüfung abgeschlossen. SymbolsDialog Symbols Symbole Recently used symbols Zuletzt verwendete Symbole All symbols Alle Symbole Details Details Name: Name: Insert Einfügen SymbolsModel Blocks Blöcke Scripts Skripte Theme Untitled %1 Unbenannt %1 ThemeDialog Modify Theme Thema ändern Name: Name: Background Hintergrund No Image Kein Bild Tiled Gekachelt Centered Zentriert Stretched Gedehnt Scaled Skaliert Zoomed Zoom Remove Entfernen Type: Stil: Color: Farbe: Image: Bild: Foreground Vordergrund Opacity Deckkraft pixels Pixel Left Links Right Rechts Position Position Size: Größe: Rounding: Abrundung: Margin: Rand: Padding: Abstand: Text Text Font: Schrift: Misspelled: Schreibfehler: Spacings Abstände Line Spacing Zeilenabstand Single Einzeilig 1.5 Lines 1,5zeilig Double Zweizeilig Proportional Proportional Paragraph Spacing Absatzabstände Indent First Line: Erste Zeile Einrücken: Pixels Above: Pixel darüber: Pixels Below: Pixel darunter: The quick brown fox jumps over the lazy dog Schweißgequält zündet Typograf Jakob verflixt öde Pangramme an ThemeManager Themes Themen Add Hinzufügen Modify Ändern Remove Entfernen Import Importieren Export Exportieren Close Schließen Question Frage Remove selected theme? Gewähltes Thema entfernen? Import Theme Thema importieren Themes (*.fwtz *.theme) Thema (*.fwtz *.theme) Themes (*.fwtz) Thema (*.fwtz) Sorry Entschuldigung A theme already exists with that name. Please enter a new name: Ein Thema mit diesem Namen existiert bereits. Bitte geben Sie einen anderen Namen ein: Export Theme Thema exportieren Timer <b>%1</b> - %2 <b>%1</b> - %2 Question Frage Delete timer? Timer löschen? <b>Words:</b> %L1 <b>Wörter:</b> %L1 <b>Pages:</b> %L1 <b>Seiten:</b> %L1 <b>Paragraphs:</b> %L1 <b>Absätze:</b> %L1 <b>Characters:</b> %L1 / %L2 <b>Zeichen:</b> %L1 / %L2 Set Delay Dauer einstellen Set Time Uhrzeit einstellen Delay: Dauer: Time: Zeit: HH:mm:ss HH:mm:ss Alarm Alarm Type: Typ: Memo: Notiz: Edit Bearbeiten Delete Löschen TimerDisplay HH:mm:ss HH:mm:ss No timers running Kein Timer eingestellt TimerManager Timers Timer New Neu Recent Letzter Question Frage Cancel editing timers? Timer einstellen abbrechen? +HH:mm:ss +HH:mm:ss %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. Ende der Datei unerwartet erreicht. Window Loading themes Themen werden geladen Loading sounds Sounds werden geladen Untitled Unbenannt Open File Datei öffnen About FocusWriter Über FocusWriter FocusWriter FocusWriter A simple fullscreen word processor Einfache Vollbild Textverarbeitung Copyright &copy; 2008-%1 Graeme Gott Copyright &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Herausgegeben unter der <a href=%1>GPL 3</a> Lizenz Uses icons from the <a href=%1>Oxygen</a> icon theme Die Symbole entstammen dem <a href=%1>Oxygen</a> Symbol-Thema Used under the <a href=%1>LGPL 3</a> license Unter Verwendung der <a href=%1>LGPL 3</a> Lizenz Characters: %L1 / %L2 Zeichen: %L1 / %L2 Pages: %L1 Seiten: %L1 Paragraphs: %L1 Absätze: %L1 Words: %L1 Wörter: %L1 %1% of daily goal %1% des Tagesziels Opening %1 Datei %1 wird geöffnet Question Frage Save changes? Änderungen speichern? (Untitled %1) (Unbenannt %1) Switch to Next Document Ins nächste Dokument übergehen Switch to Previous Document Ins vorherige Dokument übergehen Switch to First Document Ins erste Dokument übergehen Switch to Last Document Ins letzte Dokument übergehen Switch to Document %1 Ins Dokument %1 übergehen Loading settings Einstellungen werden geladen Emergency cache is not writable. Der Sicherheitsspeicher ist nicht beschreibbar. Warning Warnung FocusWriter was not shut down cleanly. FocusWriter wurde nicht ordnungsgemäß beendet. Restore from the emergency cache? Sicherheitskopie wiederherstellen? Some files could not be opened. Einige Dateien konnten nicht geöffnet werden. Some files were opened Read-Only. Einige Dateien wurden im schreibgeschützten Modus geöffnet. Text Files (%1);;All Files (*) Text-Dateien (%1);;Alle Dateien (*) '%1' is newer than the cached copy. '%1' ist aktueller als die Version im Zwischenspeicher. Overwrite newer file? Neuere Datei überschreiben? Unable to load typewriter sounds. Tippgeräusche können nicht geladen werden. Please make sure that SDL_mixer is installed. Bitte stellen Sie sicher, dass SDL_mixer installiert ist. %1 (Read-Only) %1 (Schreibgeschützt) &File &Datei &New &Neu &Open... &Öffnen... Reloa&d Neuladen &Save &Speichern Save &As... Speichern &unter... &Rename... &Umbenennen... Save A&ll &Alles speichern Manage Sessions Sitzungen verwalten New Session Neue Sitzung &Print... &Drucken... &Close &Schließen &Quit &Beenden Ctrl+Q Strg+Q &Edit &Bearbeiten &Undo &Rückgängig &Redo &Wiederholen Cu&t A&usschneiden &Copy K&opieren &Paste Einf&ügen Paste &Unformatted &Rohtext einfügen Ctrl+Shift+V Strg+Shift+V Select &All Alles Ausw&ählen Select &Scene Szene auswählen Ctrl+Shift+A Ctrl+Shift+A Fo&rmat Fo&rmatieren &Bold &Fett &Italic &Kursiv &Underline &Unterstrichen Stri&kethrough Durch&gestrichen Ctrl+K Strg+G Sup&erscript &Hochgestellt Ctrl+^ Strg+^ &Subscript &Tiefgestellt Ctrl+_ Strg+_ Align &Left &Linksbündig Ctrl+{ Strg+{ Align &Center &Zentrieren Ctrl+| Strg+| Align &Right &Rechtsbündig Ctrl+} Strg+} Align &Justify &Blocksatz Ctrl+J Strg+J &Decrease Indent Zeileneinzug &verringern Ctrl+< Strg+< I&ncrease Indent &Zeile einrücken Ctrl+> Strg+> Le&ft to Right Block Block &linksbündig ausrichten Ri&ght to Left Block Block &rechtbündig ausrichten &Tools &Werkzeuge &Find... &Suchen... Find &Next &Weitersuchen Find Pre&vious &Rückwärts suchen &Replace... &Ersetzen... Ctrl+R Strg+R Smart &Quotes &Anführungszeichen Update &Document &Dokument aktualisieren Update &Selection Aus&wahl aktualisieren &Spelling... &Rechtschreibung... F7 F7 &Timers... &Wecker... S&ymbols... Symbole... &Settings &Einstellungen Show &Toolbar &Symbolleiste zeigen Show &Menu Icons &Menu Icons anzeigen F&ocused Text &Hervorgehobener Text &Fullscreen &Vollbild F11 F11 Esc Esc M&inimize M&inimieren Ctrl+M Strg+M &Themes... &Designs... &Preferences... &Voreinstellungen... Focus Off Fokus Aus Focus One Line Fokus EIne Zeile Focus Three Lines Fokus Drei Zeilen &Paragraph &Absatz Focus Paragraph Fokus Absatz &Help &Hilfe Application &Language... &Sprache... Some files were unsupported and could not be opened. Einige Dateien werden nicht unterstützt und können nicht geöffnet werden. &Off &Aus One &Line Eine Zeile &Three Lines Drei Zeilen &About &Über About &Qt Über &Qt focuswriter-1.4.5/translations/focuswriter_el.qm000066400000000000000000001026401231434177300222210ustar00rootroot00000000000000Y=c4]{ OO5Ϩh%!g3#]j~p.0n'0n+eP2BLqKtr^v pe"xIS^>&c$dS ~XaqsrefezXI:J"T6Td]?W'f3Zre_?.Rcg"^'aL~nzg(f?, 4]96#^IwC\CJAG)'Mw$cgWU|)7Z1Jᑞ;sQmN18 L`~r#( WFNE-CM@KdZ.lu]z^Ԏ0yXD9@Z#= mI96Z?X__``J`w``a|a+a,b-b0(M,26,N1bpI%%?M)~gC^gȞnbhDpvH:-9V Ai}@7vIQ< IC=0az@kD:OEIQYb4xTRQ5t5t &F LFD`FJIH549G E ,N%!N%EB2\K1<RtvrL\M2odݲ j*c~sYcGQ_US/c25>8Nq:^"IISTJIOZ[/gBlVm*qzCEC!7.Cl\̊|:O(O,p޷7+!A$* uj+ziE< u8R>lCmm p>jxmGd?B9^8$fgf!ow92P9} \G9Nf/j|>V|w#p}w84tPfSm %% ' EC3Ch \~W >n> ;k "7 %^5 Y h v Y z z .3'* JY W3 Wh = 5? ·P .^- s Ń% +Is :u ;fod d8 eE 8 q^%\ t0B d ʀs< ˔Z ˼C<; z_ Bs f % V9 c= ^.. V ##p L.0 f(& iqy\ w9>) xj; {"uo Nkd  M ʫ ʫ  ʫ ʫ4 ʫJ ʫOU ʫR ʫl&  A) pUw ? Ei cN cP\ >cQ1 W^ 6s; >Y JD Z$? eO iN!jx tfn u 4 sY G CD" ] ( + tj 1q \ sUx Dv d 8j @ DY` DY1 DY1 DZa= ^3 noNa uu {N* Py I <) ޘ  Zc#[nEANltr Aco .dfTlW4t7\j/IA hL9/W@e$UiT!Us[I--zC"i"' iy (%1) Close (%1)AlertCollapseAlertExpandAlert Ctrl+DCtrl+D AlertLayer(  Dismiss Alert AlertLayer"   (*) All Files (*)DocumentV      .!All unsaved changes will be lost.Document8  ODF (*.odt)OpenDocument Text (*.odt)Document(  (*.txt)Plain Text (*.txt)DocumentQuestionDocumentReloadDocument(  Reload FileDocumentX   %1   ;Reload the file %1 from disk?Document&  Rename FileDocument:  (*.rtf)Rich Text (*.rtf)Document*   Save File AsDocument          .    ;ESaving as plain text will discard all formatting. Discard formatting?DocumentSorryDocumentT      %1.Unable to overwrite '%1'.DocumentP      %1.Unable to rename '%1'.DocumentN      %1.Unable to save '%1'.DocumentF    ;Do you want to reload the file?DocumentWatcher^       ;&Do you want to save or close the file?DocumentWatcher,    File ChangedDocumentWatcher  File DeletedDocumentWatcherIgnoreDocumentWatcherReloadDocumentWatcher\  %1     .+The file %1 was changed by another program.DocumentWatcherV  %1    .+The file %1 was deleted by another program.DocumentWatcher&&Find FindDialog&&Replace FindDialog Find FindDialog<  / Ignore case FindDialog(   .Phrase not found. FindDialogQuestion FindDialog& Regular expressions FindDialogReplace FindDialog6 %n ;6 %n ;Replace %n instance(s)? FindDialog& & Replace &All FindDialog" : Replace with: FindDialog  Search down FindDialog : Search for: FindDialog  Search up FindDialogSorry FindDialog*  Whole words only FindDialog0(  )(No suggestions found) HighlighterAdd Highlighter. ...Check Spelling... Highlighter (%1) Images(%1) ImageButton  Open Image ImageButton&< > LocaleDialogNote LocaleDialogv        .JPlease restart this application for the change in language to take effect. LocaleDialogB    :Select application language: LocaleDialogActionPreferencesDialogActionsPreferencesDialogAddPreferencesDialog,  Add SeparatorPreferencesDialog<  Always vertically centerPreferencesDialog6  Automatically save changesPreferencesDialog.  Block insertion cursorPreferencesDialog$ Character countPreferencesDialog: Characters:PreferencesDialogV    Check spelling as you typePreferencesDialog CommandPreferencesDialogContentsPreferencesDialog   Daily GoalPreferencesDialog.  Detect word boundariesPreferencesDialogN     Divide character count by sixPreferencesDialog:Divider:PreferencesDialog DoublePreferencesDialogEditingPreferencesDialog GeneralPreferencesDialog  Icons OnlyPreferencesDialog8   Ignore words in UPPERCASEPreferencesDialog8   Ignore words with numbersPreferencesDialog LanguagePreferencesDialog :Minutes:PreferencesDialog  Move DownPreferencesDialog Move UpPreferencesDialogNonePreferencesDialog    .   ;7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialog$  Page SizePreferencesDialog  Page countPreferencesDialog$ Paragraph countPreferencesDialog: Paragraphs:PreferencesDialog  Personal DictionaryPreferencesDialog PreferencesPreferencesDialogQuestionPreferencesDialog.  Remember cursor positionPreferencesDialogRemovePreferencesDialogSavingPreferencesDialog ScenesPreferencesDialog Select DictionaryPreferencesDialogShortcutPreferencesDialog ShortcutsPreferencesDialogSinglePreferencesDialog$ : Smart quotes:PreferencesDialog:  Smooth fontsPreferencesDialogSorryPreferencesDialog( Spell CheckingPreferencesDialog StatisticsPreferencesDialogStylePreferencesDialog4   Text Alongside IconsPreferencesDialog  Text OnlyPreferencesDialog :Text Position:PreferencesDialog:    Text Under IconsPreferencesDialog\     .1The archive does not contain a usable dictionary.PreferencesDialogj  %1  .   ;>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialog  ToolbarPreferencesDialog" Typewriter soundsPreferencesDialogT       %1.Unable to close file '%1'.PreferencesDialogP      .Unable to open archive.PreferencesDialogT       %1.Unable to open file '%1'.PreferencesDialog~        . Unable to read archive metadata.PreferencesDialog<  Word Count AlgorithmPreferencesDialog  Word countPreferencesDialog:Words:PreferencesDialog:   RTF.Not a supported RTF file.ReaderT       %1.Unable to close file '%1'.ReaderP      .Unable to open archive.ReaderT       %1.Unable to open file '%1'.ReaderCtrl+Shift+Ctrl+Shift+Down SceneListCtrl+Shift+ Ctrl+Shift+Up SceneListFilter SceneList6   (%1)Hide scene list (%1) SceneList,  Move Scenes Down SceneList,  Move Scenes Up SceneList:   Resize scene list SceneListShift+F4Shift+F4 SceneList6   (%1)Show scene list (%1) SceneList,  Toggle Scene List SceneListDefaultSession&... &Manage...SessionManager&...&New...SessionManagerCloneSessionManager@   Clone SessionSessionManagerCtrl+Shift+M Ctrl+Shift+MSessionManagerCtrl+Shift+N Ctrl+Shift+NSessionManagerDeleteSessionManager\     ;Delete selected session?SessionManager>  Manage SessionsSessionManagerNewSessionManager0   New SessionSessionManagerQuestionSessionManagerRenameSessionManager@  Rename SessionSessionManager*&  S&essionsSessionManager6  : Session name:SessionManagerSorrySessionManager  Switch ToSessionManager~        .-The requested session name is already in use.SessionManagerClear ShortcutEdit8  Reset to Default ShortcutEdit: Shortcut: ShortcutEdit&  Please Wait SmartQuote8 ...Replacing quotation marks... SmartQuote&&Add SpellChecker&&Change SpellChecker&&Ignore SpellChecker&  C&hange All SpellCheckerCancel SpellChecker : Change to: SpellChecker( Check Spelling SpellChecker<  ...Checking spelling... SpellChecker&  I&gnore All SpellChecker.   :Not in dictionary: SpellChecker&  Please wait SpellCheckerH   .Spell check complete. SpellChecker   All symbols SymbolsDialogDetails SymbolsDialogInsert SymbolsDialog :Name: SymbolsDialog  Recently used symbols SymbolsDialogSymbols SymbolsDialogBlocks SymbolsModel Scripts SymbolsModel  %1 Untitled %1Theme pixel pixels ThemeDialog1,5  1.5 Lines ThemeDialog Background ThemeDialogCentered ThemeDialog :Color: ThemeDialog Double ThemeDialog:Font: ThemeDialog Foreground ThemeDialog:Image: ThemeDialog*  :Indent First Line: ThemeDialogLeft ThemeDialog   Line Spacing ThemeDialog:Margin: ThemeDialog: Misspelled: ThemeDialog&  Modify Theme ThemeDialog :Name: ThemeDialog No Image ThemeDialogOpacity ThemeDialog:Padding: ThemeDialog& Paragraph Spacing ThemeDialogPixel : Pixels Above: ThemeDialogPixel : Pixels Below: ThemeDialogPosition ThemeDialog Proportional ThemeDialogRemove ThemeDialog Right ThemeDialog: Rounding: ThemeDialogScaled ThemeDialogSingle ThemeDialog:Size: ThemeDialogSpacings ThemeDialog Stretched ThemeDialogText ThemeDialogB   +The quick brown fox jumps over the lazy dog ThemeDialog Tiled ThemeDialog :Type: ThemeDialogZoomed ThemeDialogz      .    :?A theme already exists with that name. Please enter a new name: ThemeManagerAdd ThemeManagerClose ThemeManagerExport ThemeManager  Export Theme ThemeManagerImport ThemeManager   Import Theme ThemeManagerModify ThemeManagerQuestion ThemeManagerRemove ThemeManager@    ;Remove selected theme? ThemeManagerSorry ThemeManager Themes ThemeManager. (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManager (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer8<b>:</b> %L1 / %L2Characters: %L1 / %L2Timer&<b>:</b> %L1Pages: %L1Timer,<b>:</b> %L1Paragraphs: %L1Timer$<b>:</b> %L1Words: %L1TimerAlarmTimer:Delay:TimerDeleteTimer6   ; Delete timer?TimerEditTimer::HH:mm:ssTimer:Memo:TimerQuestionTimer(  Set DelayTimer Set TimeTimer:Time:Timer :Type:Timer::HH:mm:ss TimerDisplay4  No timers running TimerDisplay%1 - %2%1 - %2 TimerManager+:: +HH:mm:ss TimerManagerL    ;Cancel editing timers? TimerManagerNew TimerManagerQuestion TimerManagerRecent TimerManagerTimers TimerManagerR     .!Unexpectedly reached end of file. Tokenizer,%1 (  )%1 (Read-Only)Window0%1%   %1% of daily goalWindow&&AboutWindow&&BoldWindow&&CloseWindow&&CopyWindow& &Decrease IndentWindow&&EditWindow&&FileWindow&...&Find...Window & &FullscreenWindow&&HelpWindow&&ItalicWindow&&NewWindow&&OffWindow&...&Open...Window& &ParagraphWindow&&PasteWindow&...&Preferences...Window&... &Print...Window&&QuitWindow&&RedoWindow&... &Rename...Window"&... &Replace...Window&&SaveWindow& &SettingsWindow&... &Spelling...Window& &SubscriptWindow&... &Themes...Window&  &Three LinesWindow&... &Timers...Window&&ToolsWindow& &UnderlineWindow&&UndoWindowb %1       .#'%1' is newer than the cached copy.Window (  %1) (Untitled %1)Window\     "A simple fullscreen word processorWindow"&   Qt About &QtWindow2   FocusWriterAbout FocusWriterWindow(  & Align &CenterWindow  &Align &JustifyWindow$ & Align &LeftWindow & Align &RightWindow(& ...Application &Language...Window*: %L1 / %L2Characters: %L1 / %L2Windowh   &copy; 2008-%1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindow Ctrl+<Ctrl+<Window Ctrl+>Ctrl+>Window Ctrl+JCtrl+JWindow Ctrl+KCtrl+KWindow Ctrl+MCtrl+MWindow Ctrl+QCtrl+QWindow Ctrl+RCtrl+RWindowCtrl+Shift+A Ctrl+Shift+AWindowCtrl+Shift+V Ctrl+Shift+VWindow Ctrl+^Ctrl+^Window Ctrl+_Ctrl+_Window Ctrl+{Ctrl+{Window Ctrl+|Ctrl+|Window Ctrl+}Ctrl+}Window&Cu&tWindow|         . Emergency cache is not writable.WindowEscEscWindow& & F&ocused TextWindowF11F11WindowF7F7Window  & Find &NextWindow( &Find Pre&viousWindow&Fo&rmatWindow   Focus OffWindow(  Focus One LineWindow$ Focus ParagraphWindow*  Focus Three LinesWindowFocusWriter FocusWriterWindowL FocusWriter   .&FocusWriter was not shut down cleanly.Window& I&ncrease IndentWindow$& Le&ft to Right BlockWindow& Loading settingsWindow Loading soundsWindow  Loading themesWindow& M&inimizeWindow>  Manage SessionsWindow0   New SessionWindow&  One &LineWindow  Open FileWindow  %1 Opening %1WindowH    ;Overwrite newer file?Window: %L1 Pages: %L1Window: %L1Paragraphs: %L1Window: & Paste &UnformattedWindowz    SDL_mixer  .-Please make sure that SDL_mixer is installed.WindowQuestionWindowj     <a href=%1>GPL 3</a> /Released under the GPL 3 licenseWindow&Reloa&dWindowb       ;!Restore from the emergency cache?Window*& Ri&ght to Left BlockWindow&... S&ymbols...Window" &... Save &As...Window  & Save A&llWindow6   ; Save changes?Window & Select &AllWindow & Select &SceneWindow4  &Show &Menu IconsWindow6  & Show &ToolbarWindow$ & Smart &QuotesWindowZ      .Some files could not be opened.Window`      .!Some files were opened Read-Only.Window         .4Some files were unsupported and could not be opened.Window&Stri&kethroughWindow& Sup&erscriptWindow.   %1Switch to Document %1Window4   Switch to First DocumentWindow<   Switch to Last DocumentWindow8   Switch to Next DocumentWindow@   Switch to Previous DocumentWindowN  (%1);;   (*)Text Files (%1);;All Files (*)Windowd       .!Unable to load typewriter sounds.Window  UntitledWindow&& Update &DocumentWindow&& Update &SelectionWindowx     <a href=%1>LGPL 3</ a>,Used under the LGPL 3 licenseWindow      <a href=%1>Oxygen</a> 4Uses icons from the Oxygen icon themeWindowWarningWindow: %L1 Words: %L1Windowfocuswriter-1.4.5/translations/focuswriter_el.ts000066400000000000000000002401471231434177300222370ustar00rootroot00000000000000 Alert Close (%1) Κλείσιμο (%1) Collapse Σύμπτυξη Expand Ανάπτυξη AlertLayer Dismiss Alert Απόκρυψη Ειδοποίησης Ctrl+D Ctrl+D Document Sorry Λυπούμαστε Unable to save '%1'. Δεν ήταν δυνατό να αποθηκευτεί το «%1». Save File As Αποθήκευση Αρχείου Ως Unable to overwrite '%1'. Δεν ήταν δυνατό να αντικατασταθεί το «%1». Rename File Μετονομασία Αρχείου Unable to rename '%1'. Δεν ήταν δυνατό να μετονομαστεί το «%1». Reload File Επαναφόρτωση Αρχείου Reload the file %1 from disk? Επαναφόρτωση του αρχείου «%1» από τον δίσκο; All unsaved changes will be lost. Όλες οι μη αποθηκευμένες αλλαγές θα χαθούν. Reload Επαναφόρτωση Plain Text (*.txt) Απλό Κείμενο (*.txt) Question Ερώτηση Saving as plain text will discard all formatting. Discard formatting? Η αποθήκευση σε τύπο απλού κειμένου θα απορρίψει όλη τη μορφοποίηση. Απόρριψη όλης της μορφοποίησης; OpenDocument Text (*.odt) Έγγραφο Κειμένου ODF (*.odt) Rich Text (*.rtf) Εμπλουτισμένο Κείμενο (*.rtf) All Files (*) Όλα τα αρχεία (*) DocumentWatcher File Changed Το Αρχείο Έχει Αλλάξει The file %1 was changed by another program. Το αρχείο %1 έχει αλλαχθεί από άλλο πρόγραμμα. Do you want to reload the file? Θέλετε να επαναφορτώσετε το αρχείο; Reload Επαναφόρτωση Ignore Παράβλεψη File Deleted Αρχείο Διεγράφη The file %1 was deleted by another program. Το αρχείο «%1» διεγράφη από άλλο πρόγραμμα. Do you want to save or close the file? Θέλετε να αποθηκεύσετε ή να κλείσετε το αρχείο; FindDialog Search for: Αναζήτηση για: Replace with: Αντικατάσταση με: Ignore case Χωρίς διάκριση πεζών/κεφαλαίων Whole words only Μόνο ολόκληρες λέξεις Regular expressions Κανονικές εκφράσεις Search up Αναζήτηση πάνω Search down Αναζήτηση κάτω &Find &Εύρεση &Replace &Αντικατάσταση Replace &All Αντικατάσταση &Όλων Find Εύρεση Replace Αντικατάσταση Replace %n instance(s)? Αντικατάσταση %n ευρήματος; Αντικατάσταση %n ευρημάτων; Question Ερώτηση Sorry Λυπούμαστε Phrase not found. Δεν βρέθηκε η φράση. Highlighter Add Προσθήκη Check Spelling... Ορθογραφικός Έλεγχος... (No suggestions found) (Δεν βρέθηκαν προτάσεις) ImageButton Open Image Άνοιγμα Εικόνας Images(%1) Εικόνες (%1) LocaleDialog Select application language: Επιλέξτε τη γλώσσα της εφαρμογής: <System Language> <Γλώσσα Συστήματος> Note Σημείωση Please restart this application for the change in language to take effect. Επανεκκινήστε την εφαρμογή για να ισχύσει η αλλαγή γλώσσας. PreferencesDialog Preferences Προτιμήσεις General Γενικά Statistics Στατιστικά Toolbar Γραμμή Εργαλείων Spell Checking Ορθογραφικός Έλεγχος Select Dictionary Επιλογή Λεξικού Sorry Λυπούμαστε Unable to open archive. Δεν ήταν δυνατό να ανοίξει η αρχειοθήκη. Unable to read archive metadata. Δεν ήταν δυνατό να αναγνωστούν τα μεταδεδομένα της αρχειοθήκης. The archive does not contain a usable dictionary. Η αρχειοθήκη δεν περιέχει αξιοποιήσιμο λεξικό. Unable to open file '%1'. Δεν ήταν δυνατό να ανοίξει το αρχείο «%1». Unable to close file '%1'. Δεν ήταν δυνατό να κλείσει το αρχείο «%1». Question Ερώτηση Shortcuts Συντομεύσεις One or more shortcuts conflict. Do you wish to proceed? Μία ή περισσότερες συντομεύσεις συγκρούονται. Θέλετε να συνεχίσετε; The dictionary "%1" already exists. Do you want to replace it? Το λεξικό «%1» υπάρχει ήδη. Θέλετε να αντικατασταθεί; Daily Goal Ημερήσιος Στόχος None Κανένας Minutes: Λεπτά: Words: Λέξεις: Editing Επεξεργασία Always vertically center Πάντοτε κατακόρυφο κεντράρισμα Block insertion cursor Παχύς δρομέας εισαγωγής Smooth fonts Στρογγυλεμένες γραμματοσειρές Typewriter sounds Ήχοι γραφομηχανής Smart quotes: Έξυπνα εισαγωγικά: Double Διπλά Single Μονά Scenes Σκηνές Divider: Διαχωριστικό: Saving Αποθήκευση Automatically save changes Αυτόματη αποθήκευση αλλαγών Remember cursor position Μνημόνευση θέσης δρομέα Contents Περιεχόμενα Word count Αριθμός λέξεων Page count Αριθμός σελίδων Paragraph count Αριθμός παραγράφων Character count Αριθμός χαρακτήρων Page Size Διαστάσεις Σελίδας Characters: Χαρακτήρες: Paragraphs: Παράγραφοι: Word Count Algorithm Αλγόριθμος Καταμέτρησης Λέξεων Detect word boundaries Εντοπισμός Ορίων Λέξεων Divide character count by six Διαίρεση αριθμού χαρακτήρων διά του έξι Style Στυλ Icons Only Μόνο Εικονίδια Text Only Μόνο Κείμενο Text Alongside Icons Κείμενο Πλάι στα Εικονίδια Text Under Icons Κείμενο Κάτω από τα Εικονίδια Text Position: Θέση Κειμένου: Actions Ενέργειες Move Up Μετακίνηση Πάνω Move Down Μετακίνηση Κάτω Add Separator Προσθήκη Διαχωριστικού Command Εντολή Shortcut Συντόμευση Action Ενέργεια Check spelling as you type Ορθογραφικός έλεγχος κατά την πληκτρολόγηση Ignore words in UPPERCASE Παράβλεψη λέξεων σε ΚΕΦΑΛΑΙΑ Ignore words with numbers Παράβλεψη λέξεων με αριθμούς Language Γλώσσα Add Προσθήκη Remove Αφαίρεση Personal Dictionary Προσωπικό Λεξικό Reader Not a supported RTF file. Μη υποστηριζόμενο αρχείο RTF. Unable to open archive. Δεν ήταν δυνατό να ανοίξει η αρχειοθήκη. Unable to open file '%1'. Δεν ήταν δυνατό να ανοίξει το αρχείο «%1». Unable to close file '%1'. Δεν ήταν δυνατό να κλείσει το αρχείο «%1». SceneList Ctrl+Shift+Down Ctrl+Shift+Κάτω Move Scenes Up Μετακίνηση Σκηνών Πάνω Ctrl+Shift+Up Ctrl+Shift+Πάνω Toggle Scene List Εναλλαγή Λίστας Σκηνών Shift+F4 Shift+F4 Show scene list (%1) Εμφάνιση λίστας σκηνών (%1) Hide scene list (%1) Απόκρυψη λίστας σκηνών (%1) Filter Φιλτράρισμα Move Scenes Down Μετακίνηση Σκηνών Κάτω Resize scene list Αλλαγή μεγέθους λίστας σκηνών Session Default Προεπιλογή SessionManager Manage Sessions Διαχείριση Περιόδων Λειτουργίας S&essions Π&ερίοδοι λειτουργίας New Νέα Rename Μετονομασία Clone Κλωνοποίηση Delete Διαγραφή Switch To Εναλλαγή Σε New Session Νέα Περίοδος Λειτουργίας Clone Session Κλωνοποίηση Περιόδου Λειτουργίας Rename Session Μετονομασία Περιόδου Λειτουργίας Question Ερώτηση Delete selected session? Να διαγραφή η επιλεγμένη περιόδου λειτουργίας; Session name: Όνομα περιόδου λειτουργίας: Sorry Λυπούμαστε The requested session name is already in use. Αυτό το όνομα χρησιμοποιείται ήδη για άλλη περίοδο λειτουργίας. &New... &Νέα... Ctrl+Shift+N Ctrl+Shift+N &Manage... &Διαχείριση... Ctrl+Shift+M Ctrl+Shift+M ShortcutEdit Clear Εκκαθάριση Reset to Default Επαναφορά στα Προκαθορισμένα Shortcut: Συντόμευση: SmartQuote Replacing quotation marks... Αντικατάσταση εισαγωγικών... Please Wait Παρακαλώ Περιμένετε SpellChecker Check Spelling Ορθογραφικός Έλεγχος &Add &Προσθήκη &Ignore Πα&ράβλεψη I&gnore All Παράβλε&ψη Όλων &Change &Αλλαγή C&hange All Α&λλαγή Όλων Not in dictionary: Δεν υπάρχει στο λεξικό: Change to: Αλλαγή σε: Checking spelling... Γίνεται έλεγχος ορθογραφίας... Cancel Ακύρωση Please wait Παρακαλώ Περιμένετε Spell check complete. Ο ορθογραφικός έλεγχος ολοκληρώθηκε. SymbolsDialog Symbols Σύμβολα Recently used symbols Πρόσφατα σύμβολα All symbols Όλα τα σύμβολα Details Λεπτομέρειες Name: Όνομα: Insert Εισαγωγή SymbolsModel Blocks Κουτάκια Scripts Γραφές Theme Untitled %1 Χωρίς τίτλο %1 ThemeDialog Modify Theme Τροποποίηση Θέματος Name: Όνομα: Background Παρασκήνιο No Image Χωρίς Εικόνα Tiled Επαναλαμβανόμενη Centered Κεντραρισμένη Stretched Τεντωμένη Scaled Κλιμακωμένη Zoomed Μεγεθυσμένη Remove Αφαίρεση Type: Τύπος: Color: Χρώμα: Image: Εικόνα: Foreground Προσκήνιο Opacity Αδιαφάνεια pixels pixel Left Αριστερά Right Δεξιά Position Θέση Size: Μέγεθος: Rounding: Στρογγύλωση: Margin: Περιθώριο: Padding: Αναπλήρωση: Text Κείμενο Font: Γραμματοσειρά: Misspelled: Ανορθογραφίες: Spacings Αποστάσεις Line Spacing Απόσταση Γραμμών Single Μονή 1.5 Lines 1,5 Γραμμή Double Διπλή Proportional Αναλογική Paragraph Spacing Απόσταση Παραγράφων Indent First Line: Εσοχή Πρώτης Γραμμής: Pixels Above: Pixel Παραπάνω: Pixels Below: Pixel Παρακάτω: The quick brown fox jumps over the lazy dog Ξεσκεπάζω την ψυχοφθόρα βδελυγμία ThemeManager Themes Θέματα Add Προσθήκη Modify Τροποποίηση Remove Αφαίρεση Import Εισαγωγή Export Εξαγωγή Close Κλείσιμο Question Ερώτηση Remove selected theme? Να αφαιρεθεί το επιλεγμένο θέμα; Import Theme Εισαγωγή Θέματος Themes (*.fwtz *.theme) Θέματα (*.fwtz *.theme) Themes (*.fwtz) Θέματα (*.fwtz) Sorry Λυπούμαστε A theme already exists with that name. Please enter a new name: Υπάρχει ήδη θέμα με αυτό το όνομα. Παρακαλώ γράψτε νέο όνομα: Export Theme Εξαγωγή Θέματος Timer <b>%1</b> - %2 <b>%1</b> - %2 Question Ερώτηση Delete timer? Να διαγραφεί το χρονομέτρο; <b>Words:</b> %L1 <b>Λέξεις:</b> %L1 <b>Pages:</b> %L1 <b>Σελίδες:</b> %L1 <b>Paragraphs:</b> %L1 <b>Παράγραφοι:</b> %L1 <b>Characters:</b> %L1 / %L2 <b>Χαρακτήρες:</b> %L1 / %L2 Set Delay Ορισμός Καθυστέρησης Set Time Ορισμός Ώρας Delay: Καθυστέρηση: Time: Ώρα: HH:mm:ss ΩΩ:λλ:δδ Alarm Ειδοποίηση Type: Τύπος: Memo: Υπόμνημα: Edit Επεξεργασία Delete Διαγραφή TimerDisplay HH:mm:ss ΩΩ:λλ:δδ No timers running Δεν λειτουργούν χρονόμετρα TimerManager Timers Χρονόμετρα New Νέο Recent Πρόσφατα Question Ερώτηση Cancel editing timers? Να ακυρωθεί η επεξεργασία χρονομέτρων; +HH:mm:ss +ΩΩ:λλ:δδ %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. Απρόσμενη μετάβαση στο τέλος του αρχείου. Window Loading themes Φορτώνουν θέματα Loading sounds Φορτώνουν ήχοι Untitled Χωρίς τίτλο Open File Άνοιγμα Αρχείου About FocusWriter Σχετικά με το FocusWriter FocusWriter FocusWriter A simple fullscreen word processor Ένας απλός επεξεργαστής κειμένου πλήρης οθόνης Copyright &copy; 2008-%1 Graeme Gott Πνευματική ιδιοκτησία του &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Κυκλοφορεί υπό την άδεια χρήσης <a href=%1>GPL 3</a> Uses icons from the <a href=%1>Oxygen</a> icon theme Χρησιμοποιεί εικονίδια από το θέμα εικονιδίων <a href=%1>Oxygen</a> Used under the <a href=%1>LGPL 3</a> license Χρησιμοποιούνται υπό την άδεια χρήσης <a href=%1>LGPL 3</ a> Characters: %L1 / %L2 Χαρακτήρες: %L1 / %L2 Pages: %L1 Σελίδες: %L1 Paragraphs: %L1 Παράγραφοι: %L1 Words: %L1 Λέξεις: %L1 %1% of daily goal %1% του ημερήσιου στόχου Opening %1 Ανοίγει το %1 Question Ερώτηση Save changes? Να αποθηκευτούν οι αλλαγές; (Untitled %1) (Χωρίς τίτλο %1) Switch to Next Document Μετάβαση στο Επόμενο Έγγραφο Switch to Previous Document Μετάβαση στο Προηγούμενο Έγγραφο Switch to First Document Μετάβαση στο Πρώτο Έγγραφο Switch to Last Document Μετάβαση στο Τελευταίο Έγγραφο Switch to Document %1 Μετάβαση στο Έγγραφο %1 Loading settings Φορτώνουν ρυθμίσεις Emergency cache is not writable. Δεν μπορεί να γίνει εγγραφή στην κρυφή μνήμη εκτάκτου ανάγκης. Warning Προειδοποίηση FocusWriter was not shut down cleanly. Το FocusWriter δεν τερματίστηκε σωστά. Restore from the emergency cache? Να γίνει επαναφορά από τη μνήμη εκτάκτου ανάγκης; Some files could not be opened. Ορισμένα αρχεία δεν ήταν δυνατό να ανοιχτούν. Some files were opened Read-Only. Ορισμένα αρχεία ανοίχτηκαν ως μόνο για ανάγνωση. Text Files (%1);;All Files (*) Αρχεία Κειμένου (%1);;Όλα τα αρχεία (*) '%1' is newer than the cached copy. Το «%1» είναι νεότερο από το αντίγραφο στη μνήμη. Overwrite newer file? Να αντικατασταθεί το νεότερο αρχείο; Unable to load typewriter sounds. Δεν ήταν δυνατό να φορτώσουν οι ήχοι γραφομηχανής. Please make sure that SDL_mixer is installed. Παρακαλούμε βεβαιωθείτε ότι το SDL_mixer είναι εγκατεστημένο. %1 (Read-Only) %1 (μόνο για ανάγνωση) &File &Αρχείο &New &Νέο &Open... Άν&οιγμα... Reloa&d Επαναφόρτωσ&η &Save Αποθήκευ&ση Save &As... Αποθήκευση &ως... &Rename... &Μετονομασία... Save A&ll Αποθήκευση ό&λων Manage Sessions Διαχείριση Περιόδων Λειτουργίας New Session Νέα Περίοδος Λειτουργίας &Print... Εκτύ&πωση... &Close &Κλείσιμο &Quit Έξο&δος Ctrl+Q Ctrl+Q &Edit &Επεξεργασία &Undo &Αναίρεση &Redo Ε&πανάληψη Cu&t Απο&κοπή &Copy Αν&τιγραφή &Paste Επικό&λληση Paste &Unformatted Επικόλληση &Χωρίς Μορφοποίηση Ctrl+Shift+V Ctrl+Shift+V Select &All Επιλογή Όλ&ων Select &Scene Επιλογή &Σκηνής Ctrl+Shift+A Ctrl+Shift+A Fo&rmat &Μορφοποίηση &Bold Έντ&ονα &Italic &Πλάγια &Underline &Υπογραμμισμένα Stri&kethrough Διαγραμμέ&να Ctrl+K Ctrl+K Sup&erscript &Εκθέτης Ctrl+^ Ctrl+^ &Subscript &Δείκτης Ctrl+_ Ctrl+_ Align &Left Στοίχιση &Αριστερά Ctrl+{ Ctrl+{ Align &Center Στοίχιση στο Κέν&τρο Ctrl+| Ctrl+| Align &Right Στοίχιση &Δεξιά Ctrl+} Ctrl+} Align &Justify Πλήρης &Στοίχιση Ctrl+J Ctrl+J &Decrease Indent Μεί&ωση Εσοχής Ctrl+< Ctrl+< I&ncrease Indent Αύ&ξηση Εσοχής Ctrl+> Ctrl+> Le&ft to Right Block Δεξιόστ&ροφη Γραφή Ri&ght to Left Block Αριστερόστρο&φη Γραφή &Tools Εργα&λεία &Find... Εύρε&ση... Find &Next Εύρεση &Επόμενου Find Pre&vious Εύρεση &Προηγούμενου &Replace... &Αντικατάσταση... Ctrl+R Ctrl+R Smart &Quotes Έξυπνα Εισαγ&ωγικά Update &Document Ενη&μέρωση εγγράφου Update &Selection Ε&νημέρωση Επιλογής &Spelling... Ορ&θογραφία... F7 F7 &Timers... Χρονόμε&τρα... S&ymbols... Σύμ&βολα... &Settings &Ρυθμίσεις Show &Toolbar Εμφάνιση Γραμμής Εργα&λείων Show &Menu Icons Εμφάνιση Εικονιδίων &Μενού F&ocused Text Εστιασμένο &Κείμενο &Fullscreen Πλήρης Οθό&νη F11 F11 Esc Esc M&inimize Ελαχι&στοποίηση Ctrl+M Ctrl+M &Themes... &Θέματα... &Preferences... Προ&τιμήσεις... Focus Off Εστίαση Ανενεργή Focus One Line Εστίαση Μίας Γραμμής Focus Three Lines Εστίαση Τριών Γραμμών &Paragraph &Παραγράφου Focus Paragraph Εστίαση Παραγράφου &Help &Βοήθεια Application &Language... &Γλώσσα Εφαρμογής... Some files were unsupported and could not be opened. Ορισμένα αρχεία δεν υποστηρίζονται και δεν ήταν δυνατό να ανοιχτούν. &Off &Απενεργοποίηση One &Line &Μία Γραμμή &Three Lines &Τρεις Γραμμές &About &Σχετικά About &Qt &Σχετικά με το Qt focuswriter-1.4.5/translations/focuswriter_en.qm000066400000000000000000000002661231434177300222240ustar00rootroot00000000000000 Alert Close (%1) Collapse Expand AlertLayer Dismiss Alert Ctrl+D Document Sorry Unable to save '%1'. Save File As Unable to overwrite '%1'. Rename File Unable to rename '%1'. Reload File Reload the file %1 from disk? All unsaved changes will be lost. Reload Plain Text (*.txt) Question Saving as plain text will discard all formatting. Discard formatting? OpenDocument Text (*.odt) Rich Text (*.rtf) All Files (*) DocumentWatcher File Changed The file %1 was changed by another program. Do you want to reload the file? Reload Ignore File Deleted The file %1 was deleted by another program. Do you want to save or close the file? FindDialog Search for: Replace with: Ignore case Whole words only Regular expressions Search up Search down &Find &Replace Replace &All Find Replace Replace %n instance(s)? Replace %n instance? Replace %n instances? Question Sorry Phrase not found. Highlighter Add Check Spelling... (No suggestions found) ImageButton Open Image Images(%1) LocaleDialog Select application language: <System Language> Note Please restart this application for the change in language to take effect. PreferencesDialog Preferences General Statistics Toolbar Spell Checking Select Dictionary Sorry Unable to open archive. Unable to read archive metadata. The archive does not contain a usable dictionary. Unable to open file '%1'. Unable to close file '%1'. Question Shortcuts One or more shortcuts conflict. Do you wish to proceed? The dictionary "%1" already exists. Do you want to replace it? Daily Goal None Minutes: Words: Editing Always vertically center Block insertion cursor Smooth fonts Typewriter sounds Smart quotes: Double Single Scenes Divider: Saving Automatically save changes Remember cursor position Contents Word count Page count Paragraph count Character count Page Size Characters: Paragraphs: Word Count Algorithm Detect word boundaries Divide character count by six Style Icons Only Text Only Text Alongside Icons Text Under Icons Text Position: Actions Move Up Move Down Add Separator Command Shortcut Action Check spelling as you type Ignore words in UPPERCASE Ignore words with numbers Language Add Remove Personal Dictionary Reader Not a supported RTF file. Unable to open archive. Unable to open file '%1'. Unable to close file '%1'. SceneList Ctrl+Shift+Down Move Scenes Up Ctrl+Shift+Up Toggle Scene List Shift+F4 Show scene list (%1) Hide scene list (%1) Filter Move Scenes Down Resize scene list Session Default SessionManager Manage Sessions S&essions New Rename Clone Delete Switch To New Session Clone Session Rename Session Question Delete selected session? Session name: Sorry The requested session name is already in use. &New... Ctrl+Shift+N &Manage... Ctrl+Shift+M ShortcutEdit Clear Reset to Default Shortcut: SmartQuote Replacing quotation marks... Please Wait SpellChecker Check Spelling &Add &Ignore I&gnore All &Change C&hange All Not in dictionary: Change to: Checking spelling... Cancel Please wait Spell check complete. SymbolsDialog Symbols Recently used symbols All symbols Details Name: Insert SymbolsModel Blocks Scripts Theme Untitled %1 ThemeDialog Modify Theme Name: Background No Image Tiled Centered Stretched Scaled Zoomed Remove Type: Color: Image: Foreground Opacity pixels Left Right Position Size: Rounding: Margin: Padding: Text Font: Misspelled: Spacings Line Spacing Single 1.5 Lines Double Proportional Paragraph Spacing Indent First Line: Pixels Above: Pixels Below: The quick brown fox jumps over the lazy dog ThemeManager Themes Add Modify Remove Import Export Close Question Remove selected theme? Import Theme Themes (*.fwtz *.theme) Themes (*.fwtz) Sorry A theme already exists with that name. Please enter a new name: Export Theme Timer <b>%1</b> - %2 Question Delete timer? <b>Words:</b> %L1 <b>Pages:</b> %L1 <b>Paragraphs:</b> %L1 <b>Characters:</b> %L1 / %L2 Set Delay Set Time Delay: Time: HH:mm:ss Alarm Type: Memo: Edit Delete TimerDisplay HH:mm:ss No timers running TimerManager Timers New Recent Question Cancel editing timers? +HH:mm:ss %1 - %2 Tokenizer Unexpectedly reached end of file. Window Loading themes Loading sounds Untitled Open File About FocusWriter FocusWriter A simple fullscreen word processor Copyright &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Uses icons from the <a href=%1>Oxygen</a> icon theme Used under the <a href=%1>LGPL 3</a> license Characters: %L1 / %L2 Pages: %L1 Paragraphs: %L1 Words: %L1 %1% of daily goal Opening %1 Question Save changes? (Untitled %1) Switch to Next Document Switch to Previous Document Switch to First Document Switch to Last Document Switch to Document %1 Loading settings Emergency cache is not writable. Warning FocusWriter was not shut down cleanly. Restore from the emergency cache? Some files could not be opened. Some files were opened Read-Only. Text Files (%1);;All Files (*) '%1' is newer than the cached copy. Overwrite newer file? Unable to load typewriter sounds. Please make sure that SDL_mixer is installed. %1 (Read-Only) &File &New &Open... Reloa&d &Save Save &As... &Rename... Save A&ll Manage Sessions New Session &Print... &Close &Quit Ctrl+Q &Edit &Undo &Redo Cu&t &Copy &Paste Paste &Unformatted Ctrl+Shift+V Select &All Select &Scene Ctrl+Shift+A Fo&rmat &Bold &Italic &Underline Stri&kethrough Ctrl+K Sup&erscript Ctrl+^ &Subscript Ctrl+_ Align &Left Ctrl+{ Align &Center Ctrl+| Align &Right Ctrl+} Align &Justify Ctrl+J &Decrease Indent Ctrl+< I&ncrease Indent Ctrl+> Le&ft to Right Block Ri&ght to Left Block &Tools &Find... Find &Next Find Pre&vious &Replace... Ctrl+R Smart &Quotes Update &Document Update &Selection &Spelling... F7 &Timers... S&ymbols... &Settings Show &Toolbar Show &Menu Icons F&ocused Text &Fullscreen F11 Esc M&inimize Ctrl+M &Themes... &Preferences... Focus Off Focus One Line Focus Three Lines &Paragraph Focus Paragraph &Help Application &Language... Some files were unsupported and could not be opened. &Off One &Line &Three Lines &About About &Qt focuswriter-1.4.5/translations/focuswriter_en_GB.qm000066400000000000000000000740641231434177300226030ustar00rootroot00000000000000<*$K*yKq*K*%L*D *0L+N+Nj+O3+įQ"@H(EJ+0MJ6E+J6@KQ^Mez8NP]ES*FT5T:iX<Z=Zi]Zi Zi;Zi/3ZiBZ% [? [G^\?8\G\*_ >Oc4S{ iO/eϨr%\3q]_~d.+0n#0n&P2:qCtfB^i"dOZ*"k S^7t";c!,S ~NaqfefZzX~A:JJ6KDSMf3PZo?.Ic]"T~'aD~b\([A, 4S[9/^A|w;;J9)'E5$XWLm|I$PB`ᑞ4ZsHN+ C`~e( W>hE(CM@C&Z)luCz^Ԏ+ N2VZ#6b aI26Z7U_UUUVV@VmWWE+Wr,W-W(E,,,Ebd %%8M%~g;=TȞnX hDjv@:(2VPA^k}8vAI5e IC5az8D3UEAQY`.^TIu5t5tFF<FB-H5.)G$=6\'N%lN%=h2RB<ItirDM,dݲ j&+csPDc?gTUJ/YF2588Ne :SIIJZJIFZ [*g:lMSm%zC=C+0.<.lR̊|3O$O'޷0}!9 *\h_?+z]< uR79lCm p7xaY;^1Jf\p!cw3 2H=9} G9PNf/^|>M|wpp }j4gP[SaO%% <' >C-.C]{x \~N4 >bT 4K "1 %^ Y v Y z0 z .3#V JO W- W] 6 . ·G .^ K Ń +I9 :hA ;fcD d8 eE 1 q^! t* Y ʀs5. ˔P ˼C4 z_* Bg f  V2 c6+ ^) L # L.+L f(# iqk w96 xj3 {"uc N_  D ʫ ʫ 2 ʫ@ ʫ- ʫA ʫF ʫI< ʫ`t B A) pUjl 8} E^5 cFj cG >cHs M 6f >P J< Z$7 eG, iN!_ tfb u . sO] ? CDo you want to reload the file?Do you want to reload the file?DocumentWatcherLDo you want to save or close the file?&Do you want to save or close the file?DocumentWatcherFile Changed File ChangedDocumentWatcherFile Deleted File DeletedDocumentWatcher IgnoreIgnoreDocumentWatcher ReloadReloadDocumentWatcherZThe file %1 was changed by another programme.+The file %1 was changed by another program.DocumentWatcherZThe file %1 was deleted by another programme.+The file %1 was deleted by another program.DocumentWatcher &Find&Find FindDialog&Replace&Replace FindDialogFindFind FindDialogIgnore case: Ignore case FindDialog"Phrase not found.Phrase not found. FindDialogQuestionQuestion FindDialog&Regular expressionsRegular expressions FindDialogReplaceReplace FindDialog(Replace %n instance?*Replace %n instances?Replace %n instance(s)? FindDialogReplace &All Replace &All FindDialogReplace with: Replace with: FindDialogSearch down Search down FindDialogSearch for: Search for: FindDialogSearch up Search up FindDialog SorrySorry FindDialog Whole words onlyWhole words only FindDialog,(No suggestions found)(No suggestions found) HighlighterAddAdd Highlighter"Check Spelling...Check Spelling... HighlighterImages(%1) Images(%1) ImageButtonOpen Image Open Image ImageButton"<System Language> LocaleDialogNoteNote LocaleDialogPlease restart the application for the language change to take effect.JPlease restart this application for the change in language to take effect. LocaleDialog8Select application language:Select application language: LocaleDialog ActionActionPreferencesDialogActionsActionsPreferencesDialogAddAddPreferencesDialogAdd Separator Add SeparatorPreferencesDialog0Always centre verticallyAlways vertically centerPreferencesDialog4Automatically save changesAutomatically save changesPreferencesDialog,Block insertion cursorBlock insertion cursorPreferencesDialogCharacter countCharacter countPreferencesDialogCharacters: Characters:PreferencesDialog4Check spelling as you typeCheck spelling as you typePreferencesDialogCommandCommandPreferencesDialogContentsContentsPreferencesDialogDaily Goal Daily GoalPreferencesDialog,Detect word boundariesDetect word boundariesPreferencesDialog:Divide character count by sixDivide character count by sixPreferencesDialogDivider:Divider:PreferencesDialog DoubleDoublePreferencesDialogEditing:EditingPreferencesDialogGeneralGeneralPreferencesDialogIcons Only Icons OnlyPreferencesDialog2Ignore words in UPPERCASEIgnore words in UPPERCASEPreferencesDialog2Ignore words with numbersIgnore words with numbersPreferencesDialogLanguageLanguagePreferencesDialogMinutes:Minutes:PreferencesDialogMove Down Move DownPreferencesDialogMove UpMove UpPreferencesDialogNoneNonePreferencesDialognOne or more shortcuts conflict. Do you wish to proceed?7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialogPage Size Page SizePreferencesDialogPage count Page countPreferencesDialogParagraph countParagraph countPreferencesDialogParagraphs: Paragraphs:PreferencesDialog&Personal DictionaryPersonal DictionaryPreferencesDialogPreferences PreferencesPreferencesDialogQuestionQuestionPreferencesDialog0Remember cursor positionRemember cursor positionPreferencesDialog RemoveRemovePreferencesDialog SavingSavingPreferencesDialog ScenesScenesPreferencesDialog"Select DictionarySelect DictionaryPreferencesDialogShortcutShortcutPreferencesDialogShortcuts ShortcutsPreferencesDialog SingleSinglePreferencesDialogSmart quotes: Smart quotes:PreferencesDialogSmooth fonts Smooth fontsPreferencesDialog SorrySorryPreferencesDialogSpell CheckingSpell CheckingPreferencesDialogStatistics StatisticsPreferencesDialog StyleStylePreferencesDialog(Text Alongside IconsText Alongside IconsPreferencesDialogText Only Text OnlyPreferencesDialogText Position:Text Position:PreferencesDialog Text Under IconsText Under IconsPreferencesDialogbThe archive does not contain a usable dictionary.1The archive does not contain a usable dictionary.PreferencesDialog|The dictionary "%1" already exists. Do you want to replace it?>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialogToolbarToolbarPreferencesDialog"Typewriter soundsTypewriter soundsPreferencesDialog4Unable to close file '%1'.Unable to close file '%1'.PreferencesDialog.Unable to open archive.Unable to open archive.PreferencesDialog2Unable to open file '%1'.Unable to open file '%1'.PreferencesDialog@Unable to read archive metadata. Unable to read archive metadata.PreferencesDialog(Word Count AlgorithmWord Count AlgorithmPreferencesDialogWord count Word countPreferencesDialog Words:Words:PreferencesDialog2Not a supported RTF file.Not a supported RTF file.Reader4Unable to close file '%1'.Unable to close file '%1'.Reader.Unable to open archive.Unable to open archive.Reader2Unable to open file '%1'.Unable to open file '%1'.ReaderCtrl+Shift+DownCtrl+Shift+Down SceneListCtrl+Shift+Up Ctrl+Shift+Up SceneList FilterFilter SceneList(Hide scene list (%1)Hide scene list (%1) SceneList Move Scenes DownMove Scenes Down SceneListMove Scenes UpMove Scenes Up SceneList"Resize scene listResize scene list SceneListShift+F4Shift+F4 SceneList(Show scene list (%1)Show scene list (%1) SceneList"Toggle Scene ListToggle Scene List SceneListDefaultDefaultSession&Manage... &Manage...SessionManager&New...&New...SessionManager CloneCloneSessionManagerClone Session Clone SessionSessionManagerCtrl+Shift+M Ctrl+Shift+MSessionManagerCtrl+Shift+N Ctrl+Shift+NSessionManager DeleteDeleteSessionManager0Delete selected session?Delete selected session?SessionManagerManage SessionsManage SessionsSessionManagerNewNewSessionManagerNew Session New SessionSessionManagerQuestionQuestionSessionManager RenameRenameSessionManagerRename SessionRename SessionSessionManagerS&essions S&essionsSessionManagerSession name: Session name:SessionManager SorrySorrySessionManagerSwitch To Switch ToSessionManagerZThe requested session name is already in use.-The requested session name is already in use.SessionManager ClearClear ShortcutEdit Reset to DefaultReset to Default ShortcutEditShortcut: Shortcut: ShortcutEditPlease Wait Please Wait SmartQuote8Replacing quotation marks...Replacing quotation marks... SmartQuote&Add&Add SpellChecker&Change&Change SpellChecker&Ignore&Ignore SpellCheckerC&hange All C&hange All SpellChecker CancelCancel SpellCheckerChange to: Change to: SpellCheckerCheck SpellingCheck Spelling SpellChecker(Checking spelling...Checking spelling... SpellCheckerI&gnore All I&gnore All SpellChecker$Not in dictionary:Not in dictionary: SpellCheckerPlease wait Please wait SpellChecker(Spell check completeSpell check complete. SpellCheckerAll symbols All symbols SymbolsDialogDetailsDetails SymbolsDialog InsertInsert SymbolsDialog Name:Name: SymbolsDialog*Recently used symbolsRecently used symbols SymbolsDialogSymbolsSymbols SymbolsDialog BlocksBlocks SymbolsModelScriptsScripts SymbolsModelUntitled %1 Untitled %1Theme pixels pixels ThemeDialog1.5 Lines 1.5 Lines ThemeDialogBackground Background ThemeDialogCentredCentered ThemeDialogColour:Color: ThemeDialog DoubleDouble ThemeDialog Font:Font: ThemeDialogForeground Foreground ThemeDialog Image:Image: ThemeDialog$Indent First Line:Indent First Line: ThemeDialogLeftLeft ThemeDialogLine Spacing Line Spacing ThemeDialogMargin:Margin: ThemeDialogMisspelt: Misspelled: ThemeDialogModify Theme Modify Theme ThemeDialog Name:Name: ThemeDialogNo imageNo Image ThemeDialogOpacityOpacity ThemeDialogPadding:Padding: ThemeDialog"Paragraph SpacingParagraph Spacing ThemeDialogPixels Above: Pixels Above: ThemeDialogPixels Below: Pixels Below: ThemeDialogPositionPosition ThemeDialogProportional Proportional ThemeDialog RemoveRemove ThemeDialog RightRight ThemeDialogRounding: Rounding: ThemeDialog ScaledScaled ThemeDialog SingleSingle ThemeDialog Size:Size: ThemeDialogSpacingsSpacings ThemeDialogStretched Stretched ThemeDialogTextText ThemeDialogVThe quick brown fox jumps over the lazy dog+The quick brown fox jumps over the lazy dog ThemeDialog TiledTiled ThemeDialog Type:Type: ThemeDialog ZoomedZoomed ThemeDialog~A theme with that name already exists. Please enter a new name:?A theme already exists with that name. Please enter a new name: ThemeManagerAddAdd ThemeManager CloseClose ThemeManager ExportExport ThemeManagerExport Theme Export Theme ThemeManager ImportImport ThemeManagerImport Theme Import Theme ThemeManager ModifyModify ThemeManagerQuestionQuestion ThemeManager RemoveRemove ThemeManager,Remove selected theme?Remove selected theme? ThemeManager SorrySorry ThemeManager ThemesThemes ThemeManager.Themes (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManagerThemes (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer8<b>Characters:</b> %L1 / %L2Characters: %L1 / %L2Timer"<b>Pages:</b> %L1Pages: %L1Timer,<b>Paragraphs:</b> %L1Paragraphs: %L1Timer"<b>Words:</b> %L1Words: %L1Timer AlarmAlarmTimer Delay:Delay:Timer DeleteDeleteTimerDelete timer? Delete timer?TimerEditEditTimerHH:mm:ssHH:mm:ssTimer Note:Memo:TimerQuestionQuestionTimerSet Delay Set DelayTimerSet TimeSet TimeTimer Time:Time:Timer Type:Type:TimerHH:mm:ssHH:mm:ss TimerDisplay"No timers runningNo timers running TimerDisplay%1 - %2%1 - %2 TimerManager+HH:mm:ss +HH:mm:ss TimerManager,Cancel editing timers?Cancel editing timers? TimerManagerNewNew TimerManagerQuestionQuestion TimerManager RecentRecent TimerManager TimersTimers TimerManager@Unexpectedly reached end of file!Unexpectedly reached end of file. Tokenizer%1 (Read-Only)%1 (Read-Only)Window"%1% of daily goal%1% of daily goalWindow &About&AboutWindow &Bold&BoldWindow &Close&CloseWindow &Copy&CopyWindow &Decrease Indent&Decrease IndentWindow &Edit&EditWindow &File&FileWindow&Find...&Find...Window&Full-screen &FullscreenWindow &Help&HelpWindow&Italic&ItalicWindow&New&NewWindow&Off&OffWindow&Open...&Open...Window&Paragraph &ParagraphWindow &Paste&PasteWindow&Preferences...&Preferences...Window&Print... &Print...Window &Quit&QuitWindow &Redo&RedoWindow&Rename... &Rename...Window&Replace... &Replace...Window &Save&SaveWindow&Settings &SettingsWindow&Spelling... &Spelling...Window&Subscript &SubscriptWindow&Themes... &Themes...Window&Three Lines &Three LinesWindow&Timers... &Timers...Window &Tools&ToolsWindow&Underline &UnderlineWindow &Undo&UndoWindowF'%1' is newer than the cached copy.#'%1' is newer than the cached copy.Window(Untitled %1) (Untitled %1)WindowFA simple full-screen word processor"A simple fullscreen word processorWindowAbout &Qt About &QtWindow"About FocusWriterAbout FocusWriterWindowAlign &Centre Align &CenterWindowAlign &JustifyAlign &JustifyWindowAlign &Left Align &LeftWindowAlign &Right Align &RightWindow0Application &Language...Application &Language...Window*Characters: %L1 / %L2Characters: %L1 / %L2WindowHCopyright &copy; 2008-%1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindow Ctrl+<Ctrl+<Window Ctrl+>Ctrl+>Window Ctrl+JCtrl+JWindow Ctrl+KCtrl+KWindow Ctrl+MCtrl+MWindow Ctrl+QCtrl+QWindow Ctrl+RCtrl+RWindowCtrl+Shift+A Ctrl+Shift+AWindowCtrl+Shift+V Ctrl+Shift+VWindow Ctrl+^Ctrl+^Window Ctrl+_Ctrl+_Window Ctrl+{Ctrl+{Window Ctrl+|Ctrl+|Window Ctrl+}Ctrl+}WindowCu&tCu&tWindow@Emergency cache is not writable. Emergency cache is not writable.WindowEscEscWindowF&ocused Text F&ocused TextWindowF11F11WindowF7F7WindowFind &Next Find &NextWindowFind Pre&viousFind Pre&viousWindowFo&rmatFo&rmatWindowFocus Off Focus OffWindowFocus One LineFocus One LineWindowFocus ParagraphFocus ParagraphWindow"Focus Three LinesFocus Three LinesWindowFocusWriter FocusWriterWindowLFocusWriter was not shut down cleanly.&FocusWriter was not shut down cleanly.Window I&ncrease IndentI&ncrease IndentWindow(Le&ft to Right BlockLe&ft to Right BlockWindow Loading settingsLoading settingsWindowLoading soundsLoading soundsWindowLoading themesLoading themesWindowM&inimise M&inimizeWindowManage SessionsManage SessionsWindowNew Session New SessionWindowOne &Line One &LineWindowOpen File Open FileWindowOpening %1 Opening %1Window2Overwrite the newer file?Overwrite newer file?WindowPages: %L1 Pages: %L1WindowParagraphs: %L1Paragraphs: %L1Window$Paste &UnformattedPaste &UnformattedWindowTPlease ensure that SDL_mixer is installed.-Please make sure that SDL_mixer is installed.WindowQuestionQuestionWindow^Released under the <a href=%1>GPL 3</a> licence/Released under the GPL 3 licenseWindowReloa&dReloa&dWindowBRestore from the emergency cache?!Restore from the emergency cache?Window(Ri&ght to Left BlockRi&ght to Left BlockWindowS&ymbols... S&ymbols...WindowSave &As... Save &As...WindowSave A&ll Save A&llWindowSave changes? Save changes?WindowSelect &All Select &AllWindowSelect &Scene Select &SceneWindow Show &Menu IconsShow &Menu IconsWindowShow &Toolbar Show &ToolbarWindowSmart &Quotes Smart &QuotesWindow>Some files could not be opened.Some files could not be opened.WindowHSome files were opened as Read-Only.!Some files were opened Read-Only.WindowfSome files are unsupported and could not be opened.4Some files were unsupported and could not be opened.WindowStri&kethoughStri&kethroughWindowSup&erscript Sup&erscriptWindow*Switch to Document %1Switch to Document %1Window0Switch to First DocumentSwitch to First DocumentWindow.Switch to Last DocumentSwitch to Last DocumentWindow.Switch to Next DocumentSwitch to Next DocumentWindow6Switch to Previous DocumentSwitch to Previous DocumentWindow<Text Files (%1);;All Files (*)Text Files (%1);;All Files (*)WindowBUnable to load typewriter sounds.!Unable to load typewriter sounds.WindowUntitledUntitledWindow Update &DocumentUpdate &DocumentWindow"Update &SelectionUpdate &SelectionWindowXUsed under the <a href=%1>LGPL 3</a> licence,Used under the LGPL 3 licenseWindowhUses icons from the <a href=%1>Oxygen</a> icon theme4Uses icons from the Oxygen icon themeWindowWarningWarningWindowWords: %L1 Words: %L1Windowfocuswriter-1.4.5/translations/focuswriter_en_GB.ts000066400000000000000000002216751231434177300226160ustar00rootroot00000000000000 Alert Close (%1) Close (%1) Collapse Collapse Expand Expand AlertLayer Dismiss Alert Dismiss Alert Ctrl+D Ctrl+D Document Sorry Sorry Unable to save '%1'. Unable to save '%1'. Save File As Save File As Unable to overwrite '%1'. Unable to overwrite '%1'. Rename File Rename File Unable to rename '%1'. Unable to rename '%1'. Reload File Reload File Reload the file %1 from disk? Reload the file %1 from disk? All unsaved changes will be lost. All unsaved changes will be lost. Reload Reload Plain Text (*.txt) Plain Text (*.txt) Question Question Saving as plain text will discard all formatting. Discard formatting? Saving as plain-text will discard all formatting. Discard formatting? OpenDocument Text (*.odt) OpenDocument Text (*.odt) Rich Text (*.rtf) Rich Text (*.rtf) All Files (*) All Files (*) DocumentWatcher File Changed File Changed The file %1 was changed by another program. The file %1 was changed by another programme. Do you want to reload the file? Do you want to reload the file? Reload Reload Ignore Ignore File Deleted File Deleted The file %1 was deleted by another program. The file %1 was deleted by another programme. Do you want to save or close the file? Do you want to save or close the file? FindDialog Search for: Search for: Replace with: Replace with: Ignore case Ignore case: Whole words only Whole words only Regular expressions Regular expressions Search up Search up Search down Search down &Find &Find &Replace &Replace Replace &All Replace &All Find Find Replace Replace Replace %n instance(s)? Replace %n instance? Replace %n instances? Question Question Sorry Sorry Phrase not found. Phrase not found. Highlighter Add Add Check Spelling... Check Spelling... (No suggestions found) (No suggestions found) ImageButton Open Image Open Image Images(%1) Images(%1) LocaleDialog Select application language: Select application language: <System Language> <System Language> Note Note Please restart this application for the change in language to take effect. Please restart the application for the language change to take effect. PreferencesDialog Preferences Preferences General General Statistics Statistics Toolbar Toolbar Spell Checking Spell Checking Select Dictionary Select Dictionary Sorry Sorry Unable to open archive. Unable to open archive. Unable to read archive metadata. Unable to read archive metadata. The archive does not contain a usable dictionary. The archive does not contain a usable dictionary. Unable to open file '%1'. Unable to open file '%1'. Unable to close file '%1'. Unable to close file '%1'. Question Question Shortcuts Shortcuts One or more shortcuts conflict. Do you wish to proceed? One or more shortcuts conflict. Do you wish to proceed? The dictionary "%1" already exists. Do you want to replace it? The dictionary "%1" already exists. Do you want to replace it? Daily Goal Daily Goal None None Minutes: Minutes: Words: Words: Editing Editing: Always vertically center Always centre vertically Block insertion cursor Block insertion cursor Smooth fonts Smooth fonts Typewriter sounds Typewriter sounds Smart quotes: Smart quotes: Double Double Single Single Scenes Scenes Divider: Divider: Saving Saving Automatically save changes Automatically save changes Remember cursor position Remember cursor position Contents Contents Word count Word count Page count Page count Paragraph count Paragraph count Character count Character count Page Size Page Size Characters: Characters: Paragraphs: Paragraphs: Word Count Algorithm Word Count Algorithm Detect word boundaries Detect word boundaries Divide character count by six Divide character count by six Style Style Icons Only Icons Only Text Only Text Only Text Alongside Icons Text Alongside Icons Text Under Icons Text Under Icons Text Position: Text Position: Actions Actions Move Up Move Up Move Down Move Down Add Separator Add Separator Command Command Shortcut Shortcut Action Action Check spelling as you type Check spelling as you type Ignore words in UPPERCASE Ignore words in UPPERCASE Ignore words with numbers Ignore words with numbers Language Language Add Add Remove Remove Personal Dictionary Personal Dictionary Reader Not a supported RTF file. Not a supported RTF file. Unable to open archive. Unable to open archive. Unable to open file '%1'. Unable to open file '%1'. Unable to close file '%1'. Unable to close file '%1'. SceneList Ctrl+Shift+Down Ctrl+Shift+Down Move Scenes Up Move Scenes Up Ctrl+Shift+Up Ctrl+Shift+Up Toggle Scene List Toggle Scene List Shift+F4 Shift+F4 Show scene list (%1) Show scene list (%1) Hide scene list (%1) Hide scene list (%1) Filter Filter Move Scenes Down Move Scenes Down Resize scene list Resize scene list Session Default Default SessionManager Manage Sessions Manage Sessions S&essions S&essions New New Rename Rename Clone Clone Delete Delete Switch To Switch To New Session New Session Clone Session Clone Session Rename Session Rename Session Question Question Delete selected session? Delete selected session? Session name: Session name: Sorry Sorry The requested session name is already in use. The requested session name is already in use. &New... &New... Ctrl+Shift+N Ctrl+Shift+N &Manage... &Manage... Ctrl+Shift+M Ctrl+Shift+M ShortcutEdit Clear Clear Reset to Default Reset to Default Shortcut: Shortcut: SmartQuote Replacing quotation marks... Replacing quotation marks... Please Wait Please Wait SpellChecker Check Spelling Check Spelling &Add &Add &Ignore &Ignore I&gnore All I&gnore All &Change &Change C&hange All C&hange All Not in dictionary: Not in dictionary: Change to: Change to: Checking spelling... Checking spelling... Cancel Cancel Please wait Please wait Spell check complete. Spell check complete SymbolsDialog Symbols Symbols Recently used symbols Recently used symbols All symbols All symbols Details Details Name: Name: Insert Insert SymbolsModel Blocks Blocks Scripts Scripts Theme Untitled %1 Untitled %1 ThemeDialog Modify Theme Modify Theme Name: Name: Background Background No Image No image Tiled Tiled Centered Centred Stretched Stretched Scaled Scaled Zoomed Zoomed Remove Remove Type: Type: Color: Colour: Image: Image: Foreground Foreground Opacity Opacity pixels pixels Left Left Right Right Position Position Size: Size: Rounding: Rounding: Margin: Margin: Padding: Padding: Text Text Font: Font: Misspelled: Misspelt: Spacings Spacings Line Spacing Line Spacing Single Single 1.5 Lines 1.5 Lines Double Double Proportional Proportional Paragraph Spacing Paragraph Spacing Indent First Line: Indent First Line: Pixels Above: Pixels Above: Pixels Below: Pixels Below: The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog ThemeManager Themes Themes Add Add Modify Modify Remove Remove Import Import Export Export Close Close Question Question Remove selected theme? Remove selected theme? Import Theme Import Theme Themes (*.fwtz *.theme) Themes (*.fwtz *.theme) Themes (*.fwtz) Themes (*.fwtz) Sorry Sorry A theme already exists with that name. Please enter a new name: A theme with that name already exists. Please enter a new name: Export Theme Export Theme Timer <b>%1</b> - %2 <b>%1</b> - %2 Question Question Delete timer? Delete timer? <b>Words:</b> %L1 <b>Words:</b> %L1 <b>Pages:</b> %L1 <b>Pages:</b> %L1 <b>Paragraphs:</b> %L1 <b>Paragraphs:</b> %L1 <b>Characters:</b> %L1 / %L2 <b>Characters:</b> %L1 / %L2 Set Delay Set Delay Set Time Set Time Delay: Delay: Time: Time: HH:mm:ss HH:mm:ss Alarm Alarm Type: Type: Memo: Note: Edit Edit Delete Delete TimerDisplay HH:mm:ss HH:mm:ss No timers running No timers running TimerManager Timers Timers New New Recent Recent Question Question Cancel editing timers? Cancel editing timers? +HH:mm:ss +HH:mm:ss %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. Unexpectedly reached end of file Window Loading themes Loading themes Loading sounds Loading sounds Untitled Untitled Open File Open File About FocusWriter About FocusWriter FocusWriter FocusWriter A simple fullscreen word processor A simple full-screen word processor Copyright &copy; 2008-%1 Graeme Gott Copyright &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Released under the <a href=%1>GPL 3</a> licence Uses icons from the <a href=%1>Oxygen</a> icon theme Uses icons from the <a href=%1>Oxygen</a> icon theme Used under the <a href=%1>LGPL 3</a> license Used under the <a href=%1>LGPL 3</a> licence Characters: %L1 / %L2 Characters: %L1 / %L2 Pages: %L1 Pages: %L1 Paragraphs: %L1 Paragraphs: %L1 Words: %L1 Words: %L1 %1% of daily goal %1% of daily goal Opening %1 Opening %1 Question Question Save changes? Save changes? (Untitled %1) (Untitled %1) Switch to Next Document Switch to Next Document Switch to Previous Document Switch to Previous Document Switch to First Document Switch to First Document Switch to Last Document Switch to Last Document Switch to Document %1 Switch to Document %1 Loading settings Loading settings Emergency cache is not writable. Emergency cache is not writable. Warning Warning FocusWriter was not shut down cleanly. FocusWriter was not shut down cleanly. Restore from the emergency cache? Restore from the emergency cache? Some files could not be opened. Some files could not be opened. Some files were opened Read-Only. Some files were opened as Read-Only. Text Files (%1);;All Files (*) Text Files (%1);;All Files (*) '%1' is newer than the cached copy. '%1' is newer than the cached copy. Overwrite newer file? Overwrite the newer file? Unable to load typewriter sounds. Unable to load typewriter sounds. Please make sure that SDL_mixer is installed. Please ensure that SDL_mixer is installed. %1 (Read-Only) %1 (Read-Only) &File &File &New &New &Open... &Open... Reloa&d Reloa&d &Save &Save Save &As... Save &As... &Rename... &Rename... Save A&ll Save A&ll Manage Sessions Manage Sessions New Session New Session &Print... &Print... &Close &Close &Quit &Quit Ctrl+Q Ctrl+Q &Edit &Edit &Undo &Undo &Redo &Redo Cu&t Cu&t &Copy &Copy &Paste &Paste Paste &Unformatted Paste &Unformatted Ctrl+Shift+V Ctrl+Shift+V Select &All Select &All Select &Scene Select &Scene Ctrl+Shift+A Ctrl+Shift+A Fo&rmat Fo&rmat &Bold &Bold &Italic &Italic &Underline &Underline Stri&kethrough Stri&kethough Ctrl+K Ctrl+K Sup&erscript Sup&erscript Ctrl+^ Ctrl+^ &Subscript &Subscript Ctrl+_ Ctrl+_ Align &Left Align &Left Ctrl+{ Ctrl+{ Align &Center Align &Centre Ctrl+| Ctrl+| Align &Right Align &Right Ctrl+} Ctrl+} Align &Justify Align &Justify Ctrl+J Ctrl+J &Decrease Indent &Decrease Indent Ctrl+< Ctrl+< I&ncrease Indent I&ncrease Indent Ctrl+> Ctrl+> Le&ft to Right Block Le&ft to Right Block Ri&ght to Left Block Ri&ght to Left Block &Tools &Tools &Find... &Find... Find &Next Find &Next Find Pre&vious Find Pre&vious &Replace... &Replace... Ctrl+R Ctrl+R Smart &Quotes Smart &Quotes Update &Document Update &Document Update &Selection Update &Selection &Spelling... &Spelling... F7 F7 &Timers... &Timers... S&ymbols... S&ymbols... &Settings &Settings Show &Toolbar Show &Toolbar Show &Menu Icons Show &Menu Icons F&ocused Text F&ocused Text &Fullscreen &Full-screen F11 F11 Esc Esc M&inimize M&inimise Ctrl+M Ctrl+M &Themes... &Themes... &Preferences... &Preferences... Focus Off Focus Off Focus One Line Focus One Line Focus Three Lines Focus Three Lines &Paragraph &Paragraph Focus Paragraph Focus Paragraph &Help &Help Application &Language... Application &Language... Some files were unsupported and could not be opened. Some files are unsupported and could not be opened. &Off &Off One &Line One &Line &Three Lines &Three Lines &About &About About &Qt About &Qt focuswriter-1.4.5/translations/focuswriter_es.qm000066400000000000000000001016421231434177300222310ustar00rootroot00000000000000Pg S*MT;GT@}XCZCZiSZiZi"1Zi4AZiIZ%"[E[N\F\N\*n_ >Xc4\h{ O4sϨ% fe3=]i~oe.A0n&0n*P2@qJtq@^tZoc"vS^!=J%cc$:S ~W]aqqefdQzXy8G:J!xR6SR[Vf3Y<d?.Qcf"]v'aK~lf(d, <4\)94^HnwABJ?)'LW$b%WT|(YIfᑞ: sP?N0j J`~p( WDE,YM@JJZ-luz^Ԏ/W7Z#<& l1I76Z=^W^^^__L_}`<`m+`,`-a (L,1F,Mbn%R%=M)#~gA[] ȞnahhDlvG:,7V hAhG}>vH7; IC;|Taz>D8EHQY3TTQ;5t5t FFBFI/H53GC ,,N%!>N%C2ZJ<QtturK@M1dݲ j)csXcFM]UR/b25:8No:\IIRNJINOZw[/ g@lUm)zCDC!5.B`l[]̊|9O'O+޷5{!?#*siG+zg< uHR= lCm Zp<xkbA#^6tff(!im^w8B2O9} G9ZN4f/h|>U|w"fpM}u4rPdSkS%% ' QDYC2 CgE \~V| >l 9 "6( %^ Y v Y z z .3& JXR W2 Wg <[ 3 ·O_ .^  Ń +Iu :sU ;fm d8< eEF 7 q^$ t/p cv ʀs: ˔Yw ˼C: z_2 Br f  V7J c; ^-P U #" L./ f(&/ iqwZ w9< xj9J {"un Ni  K ʫ ʫ ʫ ʫ2 ʫH ʫN ʫP ʫjx  A)H pUu >Y Eh cM cO& >cP V2 6qy >X JCE Z$=~ eN iN!i tfm u 3 sW F CB  ' + t 1q \8 sT\ Du; cD 8j DY_ DY0 DY0 DZ_ ^3 noM3 uu {N*+ Pw" I < ޘ Zc#-YnE@5Nltr AcnR -delSj4r[j.]A L9.W?ie#iT sZvI,-zC!" ViwCerrar (%1) Close (%1)AlertContraerCollapseAlertExpandirExpandAlert Ctrl+DCtrl+D AlertLayer"Desactivar alerta Dismiss Alert AlertLayer,Todos los archivos (*) All Files (*)DocumentVSe perdern todos los cambios no guardados.!All unsaved changes will be lost.Document:Texto de OpenDocument (*.odt)OpenDocument Text (*.odt)Document&Texto plano (*.txt)Plain Text (*.txt)DocumentConfirmacinQuestionDocumentVolver a cargarReloadDocument4Volver a cargar el archivo Reload FileDocument^Desea volver a cargar el archivo %1 del disco?Reload the file %1 from disk?Document(Renombrar el archivo Rename FileDocument2Texto enriquecido (*.rtf)Rich Text (*.rtf)Document(Guardar archivo como Save File AsDocumentAl guardar como texto plano se descartarn todos los cambios de formato. Desea continuar?ESaving as plain text will discard all formatting. Discard formatting?Document AvisoSorryDocument<No se puede sobrescribir %1.Unable to overwrite '%1'.Document6No se puede renombrar %1.Unable to rename '%1'.Document2No se puede guardar %1.Unable to save '%1'.Document2Desea volver a cargarlo?Do you want to reload the file?DocumentWatcherFDesea guardar o cerrar el archivo?&Do you want to save or close the file?DocumentWatcher$Archivo modificado File ChangedDocumentWatcher"Archivo eliminado File DeletedDocumentWatcherIgnorarIgnoreDocumentWatcherVolver a cargarReloadDocumentWatcherfEl archivo %1 ha sido modificado por otro programa.+The file %1 was changed by another program.DocumentWatcherdEl archivo %1 ha sido eliminado por otro programa.+The file %1 was deleted by another program.DocumentWatcher&Buscar&Find FindDialog&Reemplazar&Replace FindDialog BuscarFind FindDialog>Ignorar maysculas y minsculas Ignore case FindDialog0No se encontr la frase.Phrase not found. FindDialogConfirmacinQuestion FindDialog*Expresiones regularesRegular expressions FindDialogReemplazarReplace FindDialog8Reemplazar %n coincidencia?:Reemplazar %n coincidencias?Replace %n instance(s)? FindDialog"Reemplazar &todas Replace &All FindDialogReemplazar por: Replace with: FindDialogHacia adelante Search down FindDialogBuscar: Search for: FindDialogHacia atrs Search up FindDialog AvisoSorry FindDialog.Solo palabras completasWhole words only FindDialog>(No se encontraron sugerencias)(No suggestions found) Highlighter AadirAdd Highlighter,Revisar la ortografa &Check Spelling... HighlighterImgenes(%1) Images(%1) ImageButtonAbrir imagen Open Image ImageButton(<Idioma del sistema> LocaleDialogNotaNote LocaleDialogReinicie la aplicacin para que el cambio de idioma tenga efecto.JPlease restart this application for the change in language to take effect. LocaleDialogLSeleccione el idioma de la aplicacin:Select application language: LocaleDialog AccinActionPreferencesDialogAccionesActionsPreferencesDialog AadirAddPreferencesDialog Aadir separador Add SeparatorPreferencesDialog:Centrar siempre verticalmenteAlways vertically centerPreferencesDialogFGuardar los cambios automticamenteAutomatically save changesPreferencesDialog>Bloquear el cursor de insercinBlock insertion cursorPreferencesDialog(Nmero de caracteresCharacter countPreferencesDialogCaracteres: Characters:PreferencesDialogLRevisar la ortografa mientras escribeCheck spelling as you typePreferencesDialogComandoCommandPreferencesDialogContenidoContentsPreferencesDialogObjetivo diario Daily GoalPreferencesDialog8Detectar lmites de palabrasDetect word boundariesPreferencesDialogTDividir entre seis el nmero de caracteresDivide character count by sixPreferencesDialogSeparador:Divider:PreferencesDialog DoblesDoublePreferencesDialogEdicinEditingPreferencesDialogGeneralGeneralPreferencesDialogSolo iconos Icons OnlyPreferencesDialog:Omitir palabras en MAYSCULASIgnore words in UPPERCASEPreferencesDialog6Omitir palabras con nmerosIgnore words with numbersPreferencesDialog IdiomaLanguagePreferencesDialogMinutos:Minutes:PreferencesDialog Bajar Move DownPreferencesDialog SubirMove UpPreferencesDialogNingunoNonePreferencesDialogZDos o ms atajos coinciden. Desea continuar?7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialog Tamao de pgina Page SizePreferencesDialog"Nmero de pginas Page countPreferencesDialog$Nmero de prrafosParagraph countPreferencesDialogPrrafos: Paragraphs:PreferencesDialog(Diccionario personalPersonal DictionaryPreferencesDialogPreferencias PreferencesPreferencesDialogConfirmacinQuestionPreferencesDialog>Recordar la posicin del cursorRemember cursor positionPreferencesDialogEliminarRemovePreferencesDialogGuardadoSavingPreferencesDialogEscenasScenesPreferencesDialog.Seleccionar diccionarioSelect DictionaryPreferencesDialog AtajoShortcutPreferencesDialog Atajos ShortcutsPreferencesDialogSimplesSinglePreferencesDialog,Comillas tipogrficas: Smart quotes:PreferencesDialog(Suavizar tipografas Smooth fontsPreferencesDialog AvisoSorryPreferencesDialogOrtografaSpell CheckingPreferencesDialogEstadsticas StatisticsPreferencesDialog EstiloStylePreferencesDialog6Texto al lado de los iconosText Alongside IconsPreferencesDialogSolo texto Text OnlyPreferencesDialog&Posicin del texto:Text Position:PreferencesDialog4Texto debajo de los iconosText Under IconsPreferencesDialoghEl archivador no contiene un diccionario compatible.1The archive does not contain a usable dictionary.PreferencesDialoghEl diccionario %1 ya existe. Quiere reemplazarlo?>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialog*Barra de herramientasToolbarPreferencesDialog<Sonidos de mquina de escribirTypewriter soundsPreferencesDialogFNo se puede cerrar el archivo %1.Unable to close file '%1'.PreferencesDialog@No se puede abrir el archivador.Unable to open archive.PreferencesDialogDNo se puede abrir el archivo %1.Unable to open file '%1'.PreferencesDialog^No se pueden leer los metadatos del archivador. Unable to read archive metadata.PreferencesDialog<Algoritmo para contar palabrasWord Count AlgorithmPreferencesDialog$Nmero de palabras Word countPreferencesDialogPalabras:Words:PreferencesDialog@No es un archivo RTF compatible.Not a supported RTF file.ReaderFNo se puede cerrar el archivo %1.Unable to close file '%1'.Reader@No se puede abrir el archivador.Unable to open archive.ReaderDNo se puede abrir el archivo %1.Unable to open file '%1'.Reader(Ctrl + Mays + AbajoCtrl+Shift+Down SceneList*Ctrl + Mays + Arriba Ctrl+Shift+Up SceneList FiltroFilter SceneList@Ocultar la lista de escenas (%1)Hide scene list (%1) SceneListBajar escenasMove Scenes Down SceneListSubir escenasMove Scenes Up SceneListPCambiar el tamao de la lista de escenasResize scene list SceneListMays + F4Shift+F4 SceneList@Mostrar la lista de escenas (%1)Show scene list (%1) SceneList8Invertir la lista de escenasToggle Scene List SceneListPredeterminadoDefaultSession&Gestionar... &Manage...SessionManager&Nueva...&New...SessionManagerDuplicarCloneSessionManagerDuplicar sesin Clone SessionSessionManagerCtrl+Mays+M Ctrl+Shift+MSessionManagerCtrl+Mays+N Ctrl+Shift+NSessionManagerEliminarDeleteSessionManagerPQuiere eliminar la sesin seleccionada?Delete selected session?SessionManager$Gestionar sesionesManage SessionsSessionManager NuevaNewSessionManagerNueva sesin New SessionSessionManagerConfirmacinQuestionSessionManagerRenombrarRenameSessionManager&Renombrar la sesinRename SessionSessionManager&Sesiones S&essionsSessionManager(Nombre de la sesin: Session name:SessionManager AvisoSorrySessionManagerCambiar a Switch ToSessionManagerHEl nombre solicitado ya est en uso.-The requested session name is already in use.SessionManager BorrarClear ShortcutEditFRestablecer valores predeterminadosReset to Default ShortcutEdit Atajo: Shortcut: ShortcutEdit"Espere un momento Please Wait SmartQuote0Reemplazando comillas...Replacing quotation marks... SmartQuote&Aadir&Add SpellChecker&Cambiar&Change SpellChecker&Omitir&Ignore SpellCheckerCambiar t&odas C&hange All SpellCheckerCancelarCancel SpellCheckerCambiar por: Change to: SpellChecker*Revisar la ortografaCheck Spelling SpellChecker4Revisando la ortografa...Checking spelling... SpellCheckerOmitir &todas I&gnore All SpellCheckerBNo se encontr en el diccionario:Not in dictionary: SpellChecker"Espere un momento Please wait SpellCheckerBFinaliz la revisin ortogrfica.Spell check complete. SpellChecker$Todos los smbolos All symbols SymbolsDialogDetallesDetails SymbolsDialogInsertarInsert SymbolsDialogNombre:Name: SymbolsDialog:Smbolos usados recientementeRecently used symbols SymbolsDialogSmbolosSymbols SymbolsDialogBloquesBlocks SymbolsModelSecuenciasScripts SymbolsModelSin ttulo %1 Untitled %1Theme pxeles pixels ThemeDialog1,5 lneas 1.5 Lines ThemeDialog Fondo Background ThemeDialogCentradoCentered ThemeDialog Color:Color: ThemeDialog DobleDouble ThemeDialogTipo de letra:Font: ThemeDialogPrimer plano Foreground ThemeDialogImagen:Image: ThemeDialog2Sangra de primera lnea:Indent First Line: ThemeDialogIzquierdaLeft ThemeDialogInterlineado Line Spacing ThemeDialogMargen:Margin: ThemeDialog(Faltas ortogrficas: Misspelled: ThemeDialogModificar tema Modify Theme ThemeDialogNombre:Name: ThemeDialogSin imagenNo Image ThemeDialogOpacidadOpacity ThemeDialogRelleno:Padding: ThemeDialog0Espaciado entre prrafosParagraph Spacing ThemeDialog&Pxeles por encima: Pixels Above: ThemeDialog$Pxeles por abajo: Pixels Below: ThemeDialogPosicinPosition ThemeDialogProporcional Proportional ThemeDialogEliminarRemove ThemeDialogDerechaRight ThemeDialogRedondeo: Rounding: ThemeDialogA escalaScaled ThemeDialogSencilloSingle ThemeDialogTamao:Size: ThemeDialogEspaciadoSpacings ThemeDialogEstirado Stretched ThemeDialog TextoText ThemeDialogEl veloz murcilago hind coma feliz cardillo y kiwi. La cigea tocaba el saxofn detrs del palenque de paja.+The quick brown fox jumps over the lazy dog ThemeDialogMosaicoTiled ThemeDialog Tipo:Type: ThemeDialogAmpliadoZoomed ThemeDialogtYa existe un tema con ese nombre. Escriba un nombre nuevo:?A theme already exists with that name. Please enter a new name: ThemeManager AadirAdd ThemeManager CerrarClose ThemeManagerExportarExport ThemeManagerExportar tema Export Theme ThemeManagerImportarImport ThemeManagerImportar tema Import Theme ThemeManagerModificarModify ThemeManagerConfirmacinQuestion ThemeManagerEliminarRemove ThemeManagerLQuiere eliminar el tema seleccionado?Remove selected theme? ThemeManager AvisoSorry ThemeManager TemasThemes ThemeManager.Temas (*.fwtz, *.theme)Themes (*.fwtz *.theme) ThemeManagerTemas (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer8<b>Caracteres:</b> %L1 / %L2Characters: %L1 / %L2Timer&<b>Pginas:</b> %L1Pages: %L1Timer(<b>Prrafos:</b> %L1Paragraphs: %L1Timer(<b>Palabras:</b> %L1Words: %L1Timer AlarmaAlarmTimerTiempo:Delay:TimerEliminarDeleteTimer6Quiere eliminar la alarma? Delete timer?Timer EditarEditTimerHH:mm:ssHH:mm:ssTimer Nota:Memo:TimerConfirmacinQuestionTimer"Establecer tiempo Set DelayTimerEstablecer horaSet TimeTimer Hora:Time:Timer Tipo:Type:TimerHH:mm:ssHH:mm:ss TimerDisplay<No hay ninguna alarma activadaNo timers running TimerDisplay%1 - %2%1 - %2 TimerManager+HH:mm:ss +HH:mm:ss TimerManagerVQuiere cancelar la edicin de las alarmas?Cancel editing timers? TimerManager NuevaNew TimerManagerConfirmacinQuestion TimerManagerRecientesRecent TimerManagerAlarmasTimers TimerManagerfSe ha llegado al final del archivo inesperadamente.!Unexpectedly reached end of file. Tokenizer"%1 (Solo lectura)%1 (Read-Only)Window.%1% del objetivo diario%1% of daily goalWindowA&cerca&AboutWindow&Negrita&BoldWindowC&errar&CloseWindow&Copiar&CopyWindow$&Disminuir sangra&Decrease IndentWindow&Editar&EditWindow&Archivo&FileWindow&Buscar...&Find...Window$&Pantalla completa &FullscreenWindow &Ayuda&HelpWindow&Cursiva&ItalicWindow &Nuevo&NewWindow&Desactivar&OffWindowA&brir...&Open...Window&Prrafo &ParagraphWindow &Pegar&PasteWindow &Preferencias...&Preferences...Window&Imprimir... &Print...Window Sali&r&QuitWindow&Rehacer&RedoWindow$&Cambiar nombre... &Rename...Window&Reemplazar... &Replace...Window&Guardar&SaveWindow&Configuracin &SettingsWindow&Ortografa... &Spelling...WindowSu&bndice &SubscriptWindow&Temas... &Themes...Window&Tres lneas &Three LinesWindow&Alarmas... &Timers...Window&Herramientas&ToolsWindow&Subrayado &UnderlineWindow&Deshacer&UndoWindowV"%1" es ms reciente que la copia en cach.#'%1' is newer than the cached copy.Window(Sin ttulo %1) (Untitled %1)WindowdUn procesador de textos simple a pantalla completa"A simple fullscreen word processorWindowAc&erca de Qt About &QtWindow*Acerca de FocusWriterAbout FocusWriterWindowCentra&r Align &CenterWindow&JustificarAlign &JustifyWindow.Alinear a la i&zquierda Align &LeftWindow*Alinear a la &derecha Align &RightWindow6&Idioma de la aplicacin...Application &Language...Window*Caracteres: %L1 / %L2Characters: %L1 / %L2WindowHCopyright &copy; 2008-%1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindowCtrl + <Ctrl+<WindowCtrl + >Ctrl+>WindowCtrl + JCtrl+JWindowCtrl + KCtrl+KWindowCtrl + MCtrl+MWindowCtrl + QCtrl+QWindowCtrl + RCtrl+RWindow Ctrl + Mays + A Ctrl+Shift+AWindow Ctrl + Mays + V Ctrl+Shift+VWindowCtrl + ^Ctrl+^WindowCtrl + _Ctrl+_WindowCaracteres: 0Ctrl+{WindowCtrl + |Ctrl+|WindowCtrl + }Ctrl+}WindowC&ortarCu&tWindow^No se puede escribir en la cach de emergencia. Emergency cache is not writable.WindowEscEscWindow"En&focar el texto F&ocused TextWindowF11F11WindowF7F7Window"Buscar &siguiente Find &NextWindow Buscar &anteriorFind Pre&viousWindow&FormatoFo&rmatWindowDesactivar foco Focus OffWindow"Enfocar una lneaFocus One LineWindow$Enfocar un prrafoFocus ParagraphWindow&Enfocar tres lneasFocus Three LinesWindowFocusWriter FocusWriterWindowLFocusWriter no se cerr correctamente.&FocusWriter was not shut down cleanly.Window"&Aumentar sangraI&ncrease IndentWindow@&Escribir de izquierda a derechaLe&ft to Right BlockWindow,Cargando configuracinLoading settingsWindow Cargando sonidosLoading soundsWindowCargando temasLoading themesWindow&Minimizar M&inimizeWindow$Gestionar sesionesManage SessionsWindowNueva sesin New SessionWindowUna &lnea One &LineWindowAbrir archivo Open FileWindowAbriendo %1 Opening %1WindowXDesea sobrescribir el archivo ms reciente?Overwrite newer file?WindowPginas: %L1 Pages: %L1WindowPrrafos: %L1Paragraphs: %L1Window$Pegar sin &formatoPaste &UnformattedWindowTAsegrese de que SDL_mixer est instalado.-Please make sure that SDL_mixer is installed.WindowConfirmacinQuestionWindowVPublicado con licencia <a href=%1>GPL 3</a>/Released under the GPL 3 licenseWindow Vol&ver a cargarReloa&dWindow`Desea restaurarlo desde la cach de emergencia?!Restore from the emergency cache?Window@Escribir de derec&ha a izquierdaRi&ght to Left BlockWindowSmb&olos & S&ymbols...Window G&uardar como... Save &As...WindowGuardar &todo Save A&llWindow6Desea guardar los cambios? Save changes?Window"&Seleccionar todo Select &AllWindow&Seleccionar &escena Select &SceneWindow0M&ostrar iconos del menShow &Menu IconsWindow<Mo&strar barra de herramientas Show &ToolbarWindow,&Comillas tipogrficas Smart &QuotesWindowHAlgunos archivos no se pueden abrir.Some files could not be opened.Window^Algunos archivos se abrieron como solo lectura.!Some files were opened Read-Only.WindowpAlgunos archivos no son compatibles y no pueden abrirse.4Some files were unsupported and could not be opened.Window&TachadoStri&kethroughWindowSu&perndice Sup&erscriptWindow.Cambiar al documento %1Switch to Document %1Window6Cambiar al primer documentoSwitch to First DocumentWindow6Cambiar al ltimo documentoSwitch to Last DocumentWindow<Cambiar al documento siguienteSwitch to Next DocumentWindow:Cambiar al documento anteriorSwitch to Previous DocumentWindow\Archivos de texto (%1);;Todos los archivos (*)Text Files (%1);;All Files (*)WindownNo se pueden cargar los sonidos de mquina de escribir.!Unable to load typewriter sounds.WindowSin ttuloUntitledWindow*Actualizar &documentoUpdate &DocumentWindow*Actualizar &seleccinUpdate &SelectionWindow\Usados segn la licencia <a href=%1>LGPL 3</a>,Used under the LGPL 3 licenseWindowJIconos del tema <a href=%1>Oxygen</a>4Uses icons from the Oxygen icon themeWindowAdvertenciaWarningWindowPalabras: %L1 Words: %L1Windowfocuswriter-1.4.5/translations/focuswriter_es.ts000066400000000000000000002247031231434177300222460ustar00rootroot00000000000000 Alert Close (%1) Cerrar (%1) Collapse Contraer Expand Expandir AlertLayer Dismiss Alert Desactivar alerta Ctrl+D Ctrl+D Document Sorry Aviso Unable to save '%1'. No se puede guardar «%1». Save File As Guardar archivo como Unable to overwrite '%1'. No se puede sobrescribir «%1». Rename File Renombrar el archivo Unable to rename '%1'. No se puede renombrar «%1». Reload File Volver a cargar el archivo Reload the file %1 from disk? ¿Desea volver a cargar el archivo %1 del disco? All unsaved changes will be lost. Se perderán todos los cambios no guardados. Reload Volver a cargar Plain Text (*.txt) Texto plano (*.txt) Question Confirmación Saving as plain text will discard all formatting. Discard formatting? Al guardar como texto plano se descartarán todos los cambios de formato. ¿Desea continuar? OpenDocument Text (*.odt) Texto de OpenDocument (*.odt) Rich Text (*.rtf) Texto enriquecido (*.rtf) All Files (*) Todos los archivos (*) DocumentWatcher File Changed Archivo modificado The file %1 was changed by another program. El archivo %1 ha sido modificado por otro programa. Do you want to reload the file? ¿Desea volver a cargarlo? Reload Volver a cargar Ignore Ignorar File Deleted Archivo eliminado The file %1 was deleted by another program. El archivo %1 ha sido eliminado por otro programa. Do you want to save or close the file? ¿Desea guardar o cerrar el archivo? FindDialog Search for: Buscar: Replace with: Reemplazar por: Ignore case Ignorar mayúsculas y minúsculas Whole words only Solo palabras completas Regular expressions Expresiones regulares Search up Hacia atrás Search down Hacia adelante &Find &Buscar &Replace &Reemplazar Replace &All Reemplazar &todas Find Buscar Replace Reemplazar Replace %n instance(s)? ¿Reemplazar %n coincidencia? ¿Reemplazar %n coincidencias? Question Confirmación Sorry Aviso Phrase not found. No se encontró la frase. Highlighter Add Añadir Check Spelling... Revisar la ortografía… (No suggestions found) (No se encontraron sugerencias) ImageButton Open Image Abrir imagen Images(%1) Imágenes(%1) LocaleDialog Select application language: Seleccione el idioma de la aplicación: <System Language> <Idioma del sistema> Note Nota Please restart this application for the change in language to take effect. Reinicie la aplicación para que el cambio de idioma tenga efecto. PreferencesDialog Preferences Preferencias General General Statistics Estadísticas Toolbar Barra de herramientas Spell Checking Ortografía Select Dictionary Seleccionar diccionario Sorry Aviso Unable to open archive. No se puede abrir el archivador. Unable to read archive metadata. No se pueden leer los metadatos del archivador. The archive does not contain a usable dictionary. El archivador no contiene un diccionario compatible. Unable to open file '%1'. No se puede abrir el archivo «%1». Unable to close file '%1'. No se puede cerrar el archivo «%1». Question Confirmación Shortcuts Atajos One or more shortcuts conflict. Do you wish to proceed? Dos o más atajos coinciden. ¿Desea continuar? The dictionary "%1" already exists. Do you want to replace it? El diccionario «%1» ya existe. ¿Quiere reemplazarlo? Daily Goal Objetivo diario None Ninguno Minutes: Minutos: Words: Palabras: Editing Edición Always vertically center Centrar siempre verticalmente Block insertion cursor Bloquear el cursor de inserción Smooth fonts Suavizar tipografías Typewriter sounds Sonidos de máquina de escribir Smart quotes: Comillas tipográficas: Double Dobles Single Simples Scenes Escenas Divider: Separador: Saving Guardado Automatically save changes Guardar los cambios automáticamente Remember cursor position Recordar la posición del cursor Contents Contenido Word count Número de palabras Page count Número de páginas Paragraph count Número de párrafos Character count Número de caracteres Page Size Tamaño de página Characters: Caracteres: Paragraphs: Párrafos: Word Count Algorithm Algoritmo para contar palabras Detect word boundaries Detectar límites de palabras Divide character count by six Dividir entre seis el número de caracteres Style Estilo Icons Only Solo iconos Text Only Solo texto Text Alongside Icons Texto al lado de los iconos Text Under Icons Texto debajo de los iconos Text Position: Posición del texto: Actions Acciones Move Up Subir Move Down Bajar Add Separator Añadir separador Command Comando Shortcut Atajo Action Acción Check spelling as you type Revisar la ortografía mientras escribe Ignore words in UPPERCASE Omitir palabras en MAYÚSCULAS Ignore words with numbers Omitir palabras con números Language Idioma Add Añadir Remove Eliminar Personal Dictionary Diccionario personal Reader Not a supported RTF file. No es un archivo RTF compatible. Unable to open archive. No se puede abrir el archivador. Unable to open file '%1'. No se puede abrir el archivo «%1». Unable to close file '%1'. No se puede cerrar el archivo «%1». SceneList Ctrl+Shift+Down Ctrl + Mayús + Abajo Move Scenes Up Subir escenas Ctrl+Shift+Up Ctrl + Mayús + Arriba Toggle Scene List Invertir la lista de escenas Shift+F4 Mayús + F4 Show scene list (%1) Mostrar la lista de escenas (%1) Hide scene list (%1) Ocultar la lista de escenas (%1) Filter Filtro Move Scenes Down Bajar escenas Resize scene list Cambiar el tamaño de la lista de escenas Session Default Predeterminado SessionManager Manage Sessions Gestionar sesiones S&essions &Sesiones New Nueva Rename Renombrar Clone Duplicar Delete Eliminar Switch To Cambiar a New Session Nueva sesión Clone Session Duplicar sesión Rename Session Renombrar la sesión Question Confirmación Delete selected session? ¿Quiere eliminar la sesión seleccionada? Session name: Nombre de la sesión: Sorry Aviso The requested session name is already in use. El nombre solicitado ya está en uso. &New... &Nueva... Ctrl+Shift+N Ctrl+Mayús+N &Manage... &Gestionar... Ctrl+Shift+M Ctrl+Mayús+M ShortcutEdit Clear Borrar Reset to Default Restablecer valores predeterminados Shortcut: Atajo: SmartQuote Replacing quotation marks... Reemplazando comillas... Please Wait Espere un momento SpellChecker Check Spelling Revisar la ortografía &Add &Añadir &Ignore &Omitir I&gnore All Omitir &todas &Change &Cambiar C&hange All Cambiar t&odas Not in dictionary: No se encontró en el diccionario: Change to: Cambiar por: Checking spelling... Revisando la ortografía... Cancel Cancelar Please wait Espere un momento Spell check complete. Finalizó la revisión ortográfica. SymbolsDialog Symbols Símbolos Recently used symbols Símbolos usados recientemente All symbols Todos los símbolos Details Detalles Name: Nombre: Insert Insertar SymbolsModel Blocks Bloques Scripts Secuencias Theme Untitled %1 Sin título %1 ThemeDialog Modify Theme Modificar tema Name: Nombre: Background Fondo No Image Sin imagen Tiled Mosaico Centered Centrado Stretched Estirado Scaled A escala Zoomed Ampliado Remove Eliminar Type: Tipo: Color: Color: Image: Imagen: Foreground Primer plano Opacity Opacidad pixels píxeles Left Izquierda Right Derecha Position Posición Size: Tamaño: Rounding: Redondeo: Margin: Margen: Padding: Relleno: Text Texto Font: Tipo de letra: Misspelled: Faltas ortográficas: Spacings Espaciado Line Spacing Interlineado Single Sencillo 1.5 Lines 1,5 líneas Double Doble Proportional Proporcional Paragraph Spacing Espaciado entre párrafos Indent First Line: Sangría de primera línea: Pixels Above: Píxeles por encima: Pixels Below: Píxeles por abajo: The quick brown fox jumps over the lazy dog El veloz murciélago hindú comía feliz cardillo y kiwi. La cigüeña tocaba el saxofón detrás del palenque de paja. ThemeManager Themes Temas Add Añadir Modify Modificar Remove Eliminar Import Importar Export Exportar Close Cerrar Question Confirmación Remove selected theme? ¿Quiere eliminar el tema seleccionado? Import Theme Importar tema Themes (*.fwtz *.theme) Temas (*.fwtz, *.theme) Themes (*.fwtz) Temas (*.fwtz) Sorry Aviso A theme already exists with that name. Please enter a new name: Ya existe un tema con ese nombre. Escriba un nombre nuevo: Export Theme Exportar tema Timer <b>%1</b> - %2 <b>%1</b> - %2 Question Confirmación Delete timer? ¿Quiere eliminar la alarma? <b>Words:</b> %L1 <b>Palabras:</b> %L1 <b>Pages:</b> %L1 <b>Páginas:</b> %L1 <b>Paragraphs:</b> %L1 <b>Párrafos:</b> %L1 <b>Characters:</b> %L1 / %L2 <b>Caracteres:</b> %L1 / %L2 Set Delay Establecer tiempo Set Time Establecer hora Delay: Tiempo: Time: Hora: HH:mm:ss HH:mm:ss Alarm Alarma Type: Tipo: Memo: Nota: Edit Editar Delete Eliminar TimerDisplay HH:mm:ss HH:mm:ss No timers running No hay ninguna alarma activada TimerManager Timers Alarmas New Nueva Recent Recientes Question Confirmación Cancel editing timers? ¿Quiere cancelar la edición de las alarmas? +HH:mm:ss +HH:mm:ss %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. Se ha llegado al final del archivo inesperadamente. Window Loading themes Cargando temas Loading sounds Cargando sonidos Untitled Sin título Open File Abrir archivo About FocusWriter Acerca de FocusWriter FocusWriter FocusWriter A simple fullscreen word processor Un procesador de textos simple a pantalla completa Copyright &copy; 2008-%1 Graeme Gott Copyright &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Publicado con licencia <a href=%1>GPL 3</a> Uses icons from the <a href=%1>Oxygen</a> icon theme Iconos del tema <a href=%1>Oxygen</a> Used under the <a href=%1>LGPL 3</a> license Usados según la licencia <a href=%1>LGPL 3</a> Characters: %L1 / %L2 Caracteres: %L1 / %L2 Pages: %L1 Páginas: %L1 Paragraphs: %L1 Párrafos: %L1 Words: %L1 Palabras: %L1 %1% of daily goal %1% del objetivo diario Opening %1 Abriendo %1 Question Confirmación Save changes? ¿Desea guardar los cambios? (Untitled %1) (Sin título %1) Switch to Next Document Cambiar al documento siguiente Switch to Previous Document Cambiar al documento anterior Switch to First Document Cambiar al primer documento Switch to Last Document Cambiar al último documento Switch to Document %1 Cambiar al documento %1 Loading settings Cargando configuración Emergency cache is not writable. No se puede escribir en la caché de emergencia. Warning Advertencia FocusWriter was not shut down cleanly. FocusWriter no se cerró correctamente. Restore from the emergency cache? ¿Desea restaurarlo desde la caché de emergencia? Some files could not be opened. Algunos archivos no se pueden abrir. Some files were opened Read-Only. Algunos archivos se abrieron como solo lectura. Text Files (%1);;All Files (*) Archivos de texto (%1);;Todos los archivos (*) '%1' is newer than the cached copy. "%1" es más reciente que la copia en caché. Overwrite newer file? ¿Desea sobrescribir el archivo más reciente? Unable to load typewriter sounds. No se pueden cargar los sonidos de máquina de escribir. Please make sure that SDL_mixer is installed. Asegúrese de que SDL_mixer está instalado. %1 (Read-Only) %1 (Solo lectura) &File &Archivo &New &Nuevo &Open... A&brir... Reloa&d Vol&ver a cargar &Save &Guardar Save &As... G&uardar como... &Rename... &Cambiar nombre... Save A&ll Guardar &todo Manage Sessions Gestionar sesiones New Session Nueva sesión &Print... &Imprimir... &Close C&errar &Quit Sali&r Ctrl+Q Ctrl + Q &Edit &Editar &Undo &Deshacer &Redo &Rehacer Cu&t C&ortar &Copy &Copiar &Paste &Pegar Paste &Unformatted Pegar sin &formato Ctrl+Shift+V Ctrl + Mayús + V Select &All &Seleccionar todo Select &Scene Seleccionar &escena Ctrl+Shift+A Ctrl + Mayús + A Fo&rmat &Formato &Bold &Negrita &Italic &Cursiva &Underline &Subrayado Stri&kethrough &Tachado Ctrl+K Ctrl + K Sup&erscript Su&períndice Ctrl+^ Ctrl + ^ &Subscript Su&bíndice Ctrl+_ Ctrl + _ Align &Left Alinear a la i&zquierda Ctrl+{ Caracteres: 0 Align &Center Centra&r Ctrl+| Ctrl + | Align &Right Alinear a la &derecha Ctrl+} Ctrl + } Align &Justify &Justificar Ctrl+J Ctrl + J &Decrease Indent &Disminuir sangría Ctrl+< Ctrl + < I&ncrease Indent &Aumentar sangría Ctrl+> Ctrl + > Le&ft to Right Block &Escribir de izquierda a derecha Ri&ght to Left Block Escribir de derec&ha a izquierda &Tools &Herramientas &Find... &Buscar... Find &Next Buscar &siguiente Find Pre&vious Buscar &anterior &Replace... &Reemplazar... Ctrl+R Ctrl + R Smart &Quotes &Comillas tipográficas Update &Document Actualizar &documento Update &Selection Actualizar &selección &Spelling... &Ortografía... F7 F7 &Timers... &Alarmas... S&ymbols... Símb&olos… &Settings &Configuración Show &Toolbar Mo&strar barra de herramientas Show &Menu Icons M&ostrar iconos del menú F&ocused Text En&focar el texto &Fullscreen &Pantalla completa F11 F11 Esc Esc M&inimize &Minimizar Ctrl+M Ctrl + M &Themes... &Temas... &Preferences... &Preferencias... Focus Off Desactivar foco Focus One Line Enfocar una línea Focus Three Lines Enfocar tres líneas &Paragraph &Párrafo Focus Paragraph Enfocar un párrafo &Help &Ayuda Application &Language... &Idioma de la aplicación... Some files were unsupported and could not be opened. Algunos archivos no son compatibles y no pueden abrirse. &Off &Desactivar One &Line Una &línea &Three Lines &Tres líneas &About A&cerca About &Qt Ac&erca de Qt focuswriter-1.4.5/translations/focuswriter_es_MX.qm000066400000000000000000000601331231434177300226340ustar00rootroot00000000000000T#T;@I8\D++VEV 2/<*$=*y>K*>*%?*0?+AP+A$+B+įC@H(7bJ6E!J62EKQMez+ PMS*8T)T,X-Z.ZilZiZi<Zi%Zi4Z%[0[9\0\9\*_ >Bqc4FO%%LK~S. ]0n0n|P2,q5htT^U%RS^ _*;`cKrS ~AzX*2:J=6>E@qf3Cu?.<cMN"G 'a6f~PM(Ke, q4E9%^3,J+'7W?i|trC$4ᑞ)" s;N! 5( W/jM@5luTԎ!A PxI'O6Z*GdG`GGHHEHrHH+H,I&-IS(7,",7bRX%%*M FȞnIhD2v2w'AN}+v2D(E3sQY_$T;FrF-F3H5$dG.bN%KN%.4<<4tUr5M"ݲ.jc fc0U=a/J258NS:F\II=JI9Z4g-l@<m.-lEOO c!,* TOlCm  p*xOJ-P ^&fL! iQaw'2:9}G9}Nf/N|wyp}VE'/C#YCM \~@ ( "& %^ z z .3 JB W# WN %. ·:! .^ G Ń +I ;fQ eE q^ t ˔C f ? # L.!_ f(* iqV w9) xj(w  6 ʫ< ʫ ʫ ʫ$) ʫ3 ʫ8 ʫ; ʫO T A) +> EN[ c8 c9 >c: @ 6TQ >B J.' Z$*o e9T iN!OD tfQ# u $ sB1 1) o x  t s?2 DU K3 DY"# DY"j ^3 * no7 uu {N PV IR <$ ZcVDnE,bAcQdK>yEAA esD-zC"]iWColapsarCollapseAlertExpadirExpandAlert Ctrl+DCtrl+D AlertLayer,Todos los archivos (*) All Files (*)Document&Texto Plano (*.txt)Plain Text (*.txt)DocumentPreguntaQuestionDocument"Renombrar archivo Rename FileDocument2Texto Enriquecido (*.rtf)Rich Text (*.rtf)Document(Guardar archivo como Save File AsDocumentLo sientoSorryDocument>No se puede sobreescribir '%1'.Unable to overwrite '%1'.Document6No se puede renombrar '%1'.Unable to rename '%1'.Document2No se puede guardar '%1'.Unable to save '%1'.Document BuscarFind FindDialog$Ignorar maysculas Ignore case FindDialog0No se encontr la frase.Phrase not found. FindDialogPreguntaQuestion FindDialogReemplazarReplace FindDialog(Replace %n instance?*Replace %n instances?Replace %n instance(s)? FindDialogReemplazar con: Replace with: FindDialogBuscar abajo Search down FindDialogBuscar: Search for: FindDialogBuscar arriba Search up FindDialogLo sientoSorry FindDialog.Solo palabras completasWhole words only FindDialog>(No se encontraron sugerencias)(No suggestions found) HighlighterAgregarAdd Highlighter(Checar ortografa...Check Spelling... HighlighterImgenes (%1) Images(%1) ImageButtonAbrir imagen Open Image ImageButton(<Idioma del sistema> LocaleDialogNotaNote LocaleDialogPor favor reinicie esta aplicacin para que los cambios de idioma se realicen.JPlease restart this application for the change in language to take effect. LocaleDialogFSeleccione idioma de la aplicacin:Select application language: LocaleDialogAccionesActionsPreferencesDialogAgregarAddPreferencesDialog"Agregar separador Add SeparatorPreferencesDialog:Siempre centrar verticalmenteAlways vertically centerPreferencesDialogFGuardar automticamente los cambiosAutomatically save changesPreferencesDialog Cursor de bloqueBlock insertion cursorPreferencesDialog(Conteo de caracteresCharacter countPreferencesDialogCaracteres: Characters:PreferencesDialogDChecar ortigrafa mientras escribeCheck spelling as you typePreferencesDialogContenidoContentsPreferencesDialogMeta diaria Daily GoalPreferencesDialog4Detectar lmite de palabraDetect word boundariesPreferencesDialogDDividir conteo de caracteres por 6Divide character count by sixPreferencesDialog DoblesDoublePreferencesDialogEdicinEditingPreferencesDialogGeneralGeneralPreferencesDialogSolo conos Icons OnlyPreferencesDialog<Ignorar palabras en maysculasIgnore words in UPPERCASEPreferencesDialog8Ignorar palabras con nmerosIgnore words with numbersPreferencesDialog IdiomaLanguagePreferencesDialogMinutos:Minutes:PreferencesDialogMover abajo Move DownPreferencesDialogMover arribaMove UpPreferencesDialogNingunaNonePreferencesDialog Tamao de pgina Page SizePreferencesDialog"Conteo de pginas Page countPreferencesDialog$Conteo de prrafosParagraph countPreferencesDialogPrrafos: Paragraphs:PreferencesDialog(Diccionario personalPersonal DictionaryPreferencesDialogPreferencias PreferencesPreferencesDialogPreguntaQuestionPreferencesDialog>Recordar la posicin del cursorRemember cursor positionPreferencesDialogEliminarRemovePreferencesDialogGuardarSavingPreferencesDialog,Seleccione diccionarioSelect DictionaryPreferencesDialogSencillasSinglePreferencesDialog,Comillas inteligentes: Smart quotes:PreferencesDialog"Suavizar fuentess Smooth fontsPreferencesDialogLo sientoSorryPreferencesDialog*Chequeo de ortgrafaSpell CheckingPreferencesDialogEstadsticas StatisticsPreferencesDialog EStiloStylePreferencesDialog Texto con conosText Alongside IconsPreferencesDialogSolo texto Text OnlyPreferencesDialog$Posicin de texto:Text Position:PreferencesDialog&Texto debajo conosText Under IconsPreferencesDialogbEl archivo no contiene un diccionario utilizable.1The archive does not contain a usable dictionary.PreferencesDialogfEl diccionario "%1" ya existe. Desea reemplazarlo?>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialog*Barra de herramientasToolbarPreferencesDialog:Sonido de mquina de escribirTypewriter soundsPreferencesDialogFNo se puede cerrar el archivo '%1'.Unable to close file '%1'.PreferencesDialog:No se puede abrir el archivo.Unable to open archive.PreferencesDialogDNo se puede abrir el archivo '%1'.Unable to open file '%1'.PreferencesDialogTNo se puede abrir el archivo de metadatos. Unable to read archive metadata.PreferencesDialog>Algoritmo de conteo de palabrasWord Count AlgorithmPreferencesDialog$Conteo de palabras Word countPreferencesDialogPalabras:Words:PreferencesDialog2Archivo RTF no soportado.Not a supported RTF file.ReaderFNo se puede cerrar el archivo '%1'.Unable to close file '%1'.Reader:No se puede abrir el archivo.Unable to open archive.ReaderDNo se puede abrir el archivo '%1'.Unable to open file '%1'.ReaderPor omisinDefaultSession&Administrar... &Manage...SessionManager&Nueva...&New...SessionManagerDuplicarCloneSessionManager Duplicar sessin Clone SessionSessionManagerCtrl+Mayus+M Ctrl+Shift+MSessionManagerCtrl+Mayus+N Ctrl+Shift+NSessionManager BorrarDeleteSessionManager8Borrar sesin seleccionada?Delete selected session?SessionManager(Administrar sesionesManage SessionsSessionManager NuevaNewSessionManagerNueva sesin New SessionSessionManagerPreguntaQuestionSessionManagerRenombrarRenameSessionManager Renombrar sesinRename SessionSessionManagerS&esiones S&essionsSessionManager"Nombre de sesin: Session name:SessionManagerLo sientoSorrySessionManagerCambiar a Switch ToSessionManagerRLa sesin solicitada se encuentra en uso.-The requested session name is already in use.SessionManager Por favor espere Please Wait SmartQuote0Reemplazando comillas...Replacing quotation marks... SmartQuoteCancelarCancel SpellCheckerCambiar a: Change to: SpellChecker"Checar ortografaCheck Spelling SpellChecker,Checando ortografa...Checking spelling... SpellChecker,Fuera del diccionario:Not in dictionary: SpellChecker Por favor espere Please wait SpellChecker:Chequeo ortogrfico completo.Spell check complete. SpellCheckerNombre:Name: SymbolsDialogSin ttulo %1 Untitled %1Themepixeles pixels ThemeDialog Fondo Background ThemeDialogCentradoCentered ThemeDialog Color:Color: ThemeDialog DoblesDouble ThemeDialogFuente:Font: ThemeDialogPrimer plano Foreground ThemeDialogImagen:Image: ThemeDialogIzquierdaLeft ThemeDialogMargen:Margin: ThemeDialogMal escrito: Misspelled: ThemeDialogModificar tema Modify Theme ThemeDialogNombre:Name: ThemeDialogSin imagenNo Image ThemeDialogOpacidadOpacity ThemeDialogRelleno:Padding: ThemeDialogPosicinPosition ThemeDialogREmoverRemove ThemeDialogDerechaRight ThemeDialogRedondeo: Rounding: ThemeDialogEscaladoScaled ThemeDialogSencillasSingle ThemeDialogTamao:Size: ThemeDialogEstirado Stretched ThemeDialog TextoText ThemeDialogEl veloz murcilago hind coma feliz cardillo y kiwi La cigea tocaba el saxofn detrs del palenque de paja+The quick brown fox jumps over the lazy dog ThemeDialogMosaicoTiled ThemeDialog Tipo:Type: ThemeDialogAjustadoZoomed ThemeDialogYa existe un tema con este nombre. Por favor escriba un nombre nuevo:?A theme already exists with that name. Please enter a new name: ThemeManagerAgregarAdd ThemeManager CerrarClose ThemeManagerExportarExport ThemeManagerExportar tema Export Theme ThemeManagerImportarImport ThemeManagerImportar tema Import Theme ThemeManagerModificarModify ThemeManagerPreguntaQuestion ThemeManagerRemoverRemove ThemeManagerJDesea eliminar el tema seleccionado?Remove selected theme? ThemeManagerLo sientoSorry ThemeManager TemasThemes ThemeManager,Temas (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManagerTemas (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer8<b>Caracteres:</b> %L1 / %L2Characters: %L1 / %L2Timer&<b>Pginas:</b> %L1Pages: %L1Timer(<b>Prrafos:</b> %L1Paragraphs: %L1Timer(<b>Palabras:</b> %L1Words: %L1Timer AlarmaAlarmTimerRetraso:Delay:Timer BorrarDeleteTimerLDesea eliminar el contador de tiempo? Delete timer?Timer EditarEditTimerHH:mm:ssHH:mm:ssTimer Nota:Memo:TimerPreguntaQuestionTimerAjustar retraso Set DelayTimerAjustar tiempoSet TimeTimerTiempo:Time:Timer Tipo:Type:TimerHH:mm:ssHH:mm:ss TimerDisplayPNo hay contadores de tiempo en ejecucinNo timers running TimerDisplay%1 - %2%1 - %2 TimerManager+HH:mm:ss +HH:mm:ss TimerManagerJDesea cancelar contadores de tiempo?Cancel editing timers? TimerManager NuevoNew TimerManagerPreguntaQuestion TimerManagerRecienteRecent TimerManager$Contador de tiempoTimers TimerManagerXSe alcaz inesperadamente el fin de archivo.!Unexpectedly reached end of file. Tokenizer"%1 (Solo lectura)%1 (Read-Only)Window*%1% de la meta diaria%1% of daily goalWindow&Acerca de&AboutWindow&Negrita&BoldWindow&Cerrar&CloseWindow&Copiar&CopyWindow0&Decrementar Indentacin&Decrease IndentWindow&Editar&EditWindow&Archivo&FileWindow&Buscar...&Find...Window$&Pantalla completa &FullscreenWindow A&yuda&HelpWindow&Itlica&ItalicWindow &Nuevo&NewWindow&Abrir...&Open...Window &Pegar&PasteWindow &Preferencias...&Preferences...Window&Imprimir... &Print...Window &Salir&QuitWindow&Rehacer&RedoWindow&Renombrar... &Rename...Window&Reemplazar... &Replace...Window&Guardar&SaveWindow&Configuracin &SettingsWindow&Ortografa... &Spelling...Window&Subndice &SubscriptWindow&Temas... &Themes...Window,Contador de &tiempo... &Timers...Window&Herramientas&ToolsWindow&Subrayado &UnderlineWindow&Deshacer&UndoWindowd'%1' is ms reciente que el que se tiene en cach.#'%1' is newer than the cached copy.Window(Sin ttulo %1) (Untitled %1)WindowAcerca de &Qt About &QtWindow*Acerca de FocusWriterAbout FocusWriterWindow&Centrar Align &CenterWindow&JustificarAlign &JustifyWindow(Alinear a &Izquierda Align &LeftWindow$Alinear a &Derecha Align &RightWindow0&Idioma de aplicacin...Application &Language...Window*Caracteres: %L1 / %L2Characters: %L1 / %L2Window Ctrl+<Ctrl+<Window Ctrl+>Ctrl+>Window Ctrl+JCtrl+JWindow Ctrl+KCtrl+KWindow Ctrl+MCtrl+MWindow Ctrl+QCtrl+QWindow Ctrl+RCtrl+RWindow Ctrl+^Ctrl+^Window Ctrl+_Ctrl+_Window Ctrl+{Ctrl+{Window Ctrl+|Ctrl+|Window Ctrl+}Ctrl+}WindowCor&tarCu&tWindowVNo se puede escribir el cach de emergencia Emergency cache is not writable.WindowEscEscWindowF11F11WindowF7F7Window"&Buscar siguiente Find &NextWindow&Buscar previoFind Pre&viousWindowFo&rmatoFo&rmatWindowPFocusWriter no fue cerrado correctamente&FocusWriter was not shut down cleanly.Window*A&umentar IndentacinI&ncrease IndentWindow6Bloque &Izquierda a DerechaLe&ft to Right BlockWindow*Cargando preferenciasLoading settingsWindow Cargando sonidosLoading soundsWindowCargando temasLoading themesWindowM&inimizar M&inimizeWindow(Administrar sesionesManage SessionsWindowNueva sesin New SessionWindowAbrir archivo Open FileWindowAbriendo %1 Opening %1Window@Sobreescribir el archivo nuevo?Overwrite newer file?WindowPginas: %L1 Pages: %L1WindowPrrafos: %L1Paragraphs: %L1WindowPreguntaQuestionWindowDRestaurar el cach de emergencia?!Restore from the emergency cache?Window6Bloque &Derecha a IzquierdaRi&ght to Left BlockWindow Guardar &como... Save &As...WindowGuardar To&do Save A&llWindow.Desea guardar cambios? Save changes?Window"Seleccionar &todo Select &AllWindow.Mostrar &men de conosShow &Menu IconsWindow<Mostrar &barra de herramientas Show &ToolbarWindow,Comillas &inteligentes Smart &QuotesWindowHAlgunos archivos no se pueden abrir.Some files could not be opened.WindowJAlgunos archivos son de slo lectura.!Some files were opened Read-Only.WindowTa&chadoStri&kethroughWindowSup&erndice Sup&erscriptWindow\Archivos de Texto (%1);;Todos los archivos (*)Text Files (%1);;All Files (*)WindowXNo se puede cargar los sonidos de escritura.!Unable to load typewriter sounds.WindowSin ttuloUntitledWindow*Actualizar &documentoUpdate &DocumentWindow*Actualizar &seleccinUpdate &SelectionWindowAdvertenciaWarningWindowPalabras: %L1 Words: %L1Windowfocuswriter-1.4.5/translations/focuswriter_es_MX.ts000066400000000000000000002237301231434177300226510ustar00rootroot00000000000000 Alert Close (%1) Collapse Colapsar Expand Expadir AlertLayer Dismiss Alert Ctrl+D Ctrl+D Document Sorry Lo siento Unable to save '%1'. No se puede guardar '%1'. Save File As Guardar archivo como Unable to overwrite '%1'. No se puede sobreescribir '%1'. Rename File Renombrar archivo Unable to rename '%1'. No se puede renombrar '%1'. Reload File Reload the file %1 from disk? All unsaved changes will be lost. Reload Plain Text (*.txt) Texto Plano (*.txt) Question Pregunta Saving as plain text will discard all formatting. Discard formatting? OpenDocument Text (*.odt) Rich Text (*.rtf) Texto Enriquecido (*.rtf) All Files (*) Todos los archivos (*) DocumentWatcher File Changed The file %1 was changed by another program. Do you want to reload the file? Reload Ignore File Deleted The file %1 was deleted by another program. Do you want to save or close the file? FindDialog Search for: Buscar: Replace with: Reemplazar con: Ignore case Ignorar mayúsculas Whole words only Solo palabras completas Regular expressions Search up Buscar arriba Search down Buscar abajo &Find &Replace Replace &All Find Buscar Replace Reemplazar Replace %n instance(s)? Replace %n instance? Replace %n instances? Question Pregunta Sorry Lo siento Phrase not found. No se encontró la frase. Highlighter Add Agregar Check Spelling... Checar ortografía... (No suggestions found) (No se encontraron sugerencias) ImageButton Open Image Abrir imagen Images(%1) Imágenes (%1) LocaleDialog Select application language: Seleccione idioma de la aplicación: <System Language> <Idioma del sistema> Note Nota Please restart this application for the change in language to take effect. Por favor reinicie esta aplicación para que los cambios de idioma se realicen. PreferencesDialog Preferences Preferencias General General Statistics Estadísticas Toolbar Barra de herramientas Spell Checking Chequeo de ortógrafía Select Dictionary Seleccione diccionario Sorry Lo siento Unable to open archive. No se puede abrir el archivo. Unable to read archive metadata. No se puede abrir el archivo de metadatos. The archive does not contain a usable dictionary. El archivo no contiene un diccionario utilizable. Unable to open file '%1'. No se puede abrir el archivo '%1'. Unable to close file '%1'. No se puede cerrar el archivo '%1'. Question Pregunta Shortcuts One or more shortcuts conflict. Do you wish to proceed? The dictionary "%1" already exists. Do you want to replace it? El diccionario "%1" ya existe. ¿Desea reemplazarlo? Daily Goal Meta diaria None Ninguna Minutes: Minutos: Words: Palabras: Editing Edición Always vertically center Siempre centrar verticalmente Block insertion cursor Cursor de bloque Smooth fonts Suavizar fuentess Typewriter sounds Sonido de máquina de escribir Smart quotes: Comillas inteligentes: Double Dobles Single Sencillas Scenes Divider: Saving Guardar Automatically save changes Guardar automáticamente los cambios Remember cursor position Recordar la posición del cursor Contents Contenido Word count Conteo de palabras Page count Conteo de páginas Paragraph count Conteo de párrafos Character count Conteo de caracteres Page Size Tamaño de página Characters: Caracteres: Paragraphs: Párrafos: Word Count Algorithm Algoritmo de conteo de palabras Detect word boundaries Detectar límite de palabra Divide character count by six Dividir conteo de caracteres por 6 Style EStilo Icons Only Solo íconos Text Only Solo texto Text Alongside Icons Texto con íconos Text Under Icons Texto debajo íconos Text Position: Posición de texto: Actions Acciones Move Up Mover arriba Move Down Mover abajo Add Separator Agregar separador Command Shortcut Action Check spelling as you type Checar ortigrafía mientras escribe Ignore words in UPPERCASE Ignorar palabras en mayúsculas Ignore words with numbers Ignorar palabras con números Language Idioma Add Agregar Remove Eliminar Personal Dictionary Diccionario personal Reader Not a supported RTF file. Archivo RTF no soportado. Unable to open archive. No se puede abrir el archivo. Unable to open file '%1'. No se puede abrir el archivo '%1'. Unable to close file '%1'. No se puede cerrar el archivo '%1'. SceneList Ctrl+Shift+Down Move Scenes Up Ctrl+Shift+Up Toggle Scene List Shift+F4 Show scene list (%1) Hide scene list (%1) Filter Move Scenes Down Resize scene list Session Default Por omisión SessionManager Manage Sessions Administrar sesiones S&essions S&esiones New Nueva Rename Renombrar Clone Duplicar Delete Borrar Switch To Cambiar a New Session Nueva sesión Clone Session Duplicar sessión Rename Session Renombrar sesión Question Pregunta Delete selected session? ¿Borrar sesión seleccionada? Session name: Nombre de sesión: Sorry Lo siento The requested session name is already in use. La sesión solicitada se encuentra en uso. &New... &Nueva... Ctrl+Shift+N Ctrl+Mayus+N &Manage... &Administrar... Ctrl+Shift+M Ctrl+Mayus+M ShortcutEdit Clear Reset to Default Shortcut: SmartQuote Replacing quotation marks... Reemplazando comillas... Please Wait Por favor espere SpellChecker Check Spelling Checar ortografía &Add &Ignore I&gnore All &Change C&hange All Not in dictionary: Fuera del diccionario: Change to: Cambiar a: Checking spelling... Checando ortografía... Cancel Cancelar Please wait Por favor espere Spell check complete. Chequeo ortográfico completo. SymbolsDialog Symbols Recently used symbols All symbols Details Name: Nombre: Insert SymbolsModel Blocks Scripts Theme Untitled %1 Sin título %1 ThemeDialog Modify Theme Modificar tema Name: Nombre: Background Fondo No Image Sin imagen Tiled Mosaico Centered Centrado Stretched Estirado Scaled Escalado Zoomed Ajustado Remove REmover Type: Tipo: Color: Color: Image: Imagen: Foreground Primer plano Opacity Opacidad pixels pixeles Left Izquierda Right Derecha Position Posición Size: Tamaño: Rounding: Redondeo: Margin: Margen: Padding: Relleno: Text Texto Font: Fuente: Misspelled: Mal escrito: Spacings Line Spacing Single Sencillas 1.5 Lines Double Dobles Proportional Paragraph Spacing Indent First Line: Pixels Above: Pixels Below: The quick brown fox jumps over the lazy dog El veloz murciélago hindú comía feliz cardillo y kiwi La cigüeña tocaba el saxofón detrás del palenque de paja ThemeManager Themes Temas Add Agregar Modify Modificar Remove Remover Import Importar Export Exportar Close Cerrar Question Pregunta Remove selected theme? ¿Desea eliminar el tema seleccionado? Import Theme Importar tema Themes (*.fwtz *.theme) Temas (*.fwtz *.theme) Themes (*.fwtz) Temas (*.fwtz) Sorry Lo siento A theme already exists with that name. Please enter a new name: Ya existe un tema con este nombre. Por favor escriba un nombre nuevo: Export Theme Exportar tema Timer <b>%1</b> - %2 <b>%1</b> - %2 Question Pregunta Delete timer? ¿Desea eliminar el contador de tiempo? <b>Words:</b> %L1 <b>Palabras:</b> %L1 <b>Pages:</b> %L1 <b>Páginas:</b> %L1 <b>Paragraphs:</b> %L1 <b>Párrafos:</b> %L1 <b>Characters:</b> %L1 / %L2 <b>Caracteres:</b> %L1 / %L2 Set Delay Ajustar retraso Set Time Ajustar tiempo Delay: Retraso: Time: Tiempo: HH:mm:ss HH:mm:ss Alarm Alarma Type: Tipo: Memo: Nota: Edit Editar Delete Borrar TimerDisplay HH:mm:ss HH:mm:ss No timers running No hay contadores de tiempo en ejecución TimerManager Timers Contador de tiempo New Nuevo Recent Reciente Question Pregunta Cancel editing timers? ¿Desea cancelar contadores de tiempo? +HH:mm:ss +HH:mm:ss %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. Se alcazó inesperadamente el fin de archivo. Window Loading themes Cargando temas Loading sounds Cargando sonidos Untitled Sin título Open File Abrir archivo About FocusWriter Acerca de FocusWriter FocusWriter A simple fullscreen word processor Copyright &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Uses icons from the <a href=%1>Oxygen</a> icon theme Used under the <a href=%1>LGPL 3</a> license Characters: %L1 / %L2 Caracteres: %L1 / %L2 Pages: %L1 Páginas: %L1 Paragraphs: %L1 Párrafos: %L1 Words: %L1 Palabras: %L1 %1% of daily goal %1% de la meta diaria Opening %1 Abriendo %1 Question Pregunta Save changes? ¿Desea guardar cambios? (Untitled %1) (Sin título %1) Switch to Next Document Switch to Previous Document Switch to First Document Switch to Last Document Switch to Document %1 Loading settings Cargando preferencias Emergency cache is not writable. No se puede escribir el caché de emergencia Warning Advertencia FocusWriter was not shut down cleanly. FocusWriter no fue cerrado correctamente Restore from the emergency cache? ¿Restaurar el caché de emergencia? Some files could not be opened. Algunos archivos no se pueden abrir. Some files were opened Read-Only. Algunos archivos son de sólo lectura. Text Files (%1);;All Files (*) Archivos de Texto (%1);;Todos los archivos (*) '%1' is newer than the cached copy. '%1' is más reciente que el que se tiene en caché. Overwrite newer file? ¿Sobreescribir el archivo nuevo? Unable to load typewriter sounds. No se puede cargar los sonidos de escritura. Please make sure that SDL_mixer is installed. %1 (Read-Only) %1 (Solo lectura) &File &Archivo &New &Nuevo &Open... &Abrir... Reloa&d &Save &Guardar Save &As... Guardar &como... &Rename... &Renombrar... Save A&ll Guardar To&do Manage Sessions Administrar sesiones New Session Nueva sesión &Print... &Imprimir... &Close &Cerrar &Quit &Salir Ctrl+Q Ctrl+Q &Edit &Editar &Undo &Deshacer &Redo &Rehacer Cu&t Cor&tar &Copy &Copiar &Paste &Pegar Paste &Unformatted Ctrl+Shift+V Select &All Seleccionar &todo Select &Scene Ctrl+Shift+A Fo&rmat Fo&rmato &Bold &Negrita &Italic &Itálica &Underline &Subrayado Stri&kethrough Ta&chado Ctrl+K Ctrl+K Sup&erscript Sup&eríndice Ctrl+^ Ctrl+^ &Subscript &Subíndice Ctrl+_ Ctrl+_ Align &Left Alinear a &Izquierda Ctrl+{ Ctrl+{ Align &Center &Centrar Ctrl+| Ctrl+| Align &Right Alinear a &Derecha Ctrl+} Ctrl+} Align &Justify &Justificar Ctrl+J Ctrl+J &Decrease Indent &Decrementar Indentación Ctrl+< Ctrl+< I&ncrease Indent A&umentar Indentación Ctrl+> Ctrl+> Le&ft to Right Block Bloque &Izquierda a Derecha Ri&ght to Left Block Bloque &Derecha a Izquierda &Tools &Herramientas &Find... &Buscar... Find &Next &Buscar siguiente Find Pre&vious &Buscar previo &Replace... &Reemplazar... Ctrl+R Ctrl+R Smart &Quotes Comillas &inteligentes Update &Document Actualizar &documento Update &Selection Actualizar &selección &Spelling... &Ortografía... F7 F7 &Timers... Contador de &tiempo... S&ymbols... &Settings &Configuración Show &Toolbar Mostrar &barra de herramientas Show &Menu Icons Mostrar &menú de íconos F&ocused Text &Fullscreen &Pantalla completa F11 F11 Esc Esc M&inimize M&inimizar Ctrl+M Ctrl+M &Themes... &Temas... &Preferences... &Preferencias... Focus Off Focus One Line Focus Three Lines &Paragraph Focus Paragraph &Help A&yuda Application &Language... &Idioma de aplicación... Some files were unsupported and could not be opened. &Off One &Line &Three Lines &About &Acerca de About &Qt Acerca de &Qt focuswriter-1.4.5/translations/focuswriter_fi.qm000066400000000000000000001001001231434177300222040ustar00rootroot00000000000000/VEVC*$Q *yQm*Q*%R*D *0R+T+T`+UG+įWT@uH(JJ+4J6E/J6FKQ$Mez=$Pd S*L0T:/T?wXBZBZi=ZioZi"Zi3uZiH1Z%"[D[M\D\M+\* _ >Uc4Z { O3Ϩ~% (b3!]fk~l.0n&0n*P2?qItn^q k`"s'S^<>%3c$S ~UaqnefazX Fz:J!^P6Q@YSf3Va??.Occ"['aJ~ic}(b, "4Y93^Fw@A J>)'J$_UWRe|K(1VGᑞ9'>sNaN/ IT`~m( WCE+M@HZ-nluz^aԎ/T6Z#; hI66Z<[\\=\j\\\]]+],^#-^P(K),0,KUbk]%%<M(~g@_ZȞn^hDjvFM:,7/V AeE}=vF9 IC:`>az=D7EG%QY2TO?5t5t FrFAFGH52EGB+N%!N%B2XHHm<O~tqrIM0dݲ j)wcsVjcD[\UPo/_2588Nl:ZhIIP*JILZ[.qg?lSYm)5zCC-C 5.AdlX̊|8:O'O+޷4!>#*2pf#+zd< u>R;lCm Vp;xhs`)@^5fc.!jw7h2M9} ,G9Nf/e~|>S|w"Xp5}r24oPaSh1%% ' qCkC1@CdAZ \~T* >iV 8 "5Z %^ Y \ v Y z z .3&F JU W1 Wd ;7 3) ·M .^  Ńi +Ic :p# ;fjx d8 eE 6: q^$ t. ` ʀs9 ˔W ˼C9} z_ Bn f  V6n c: ^, R #" L./T f(% iqs w9; xj8 {"uj Nf  JQ ʫ ʫ ʫ ʫ2 ʫGZ ʫLc ʫO ʫgT  A), pUr~ =[ Ee cK cMX >cN% S 6nC >V5 JBG Z$ge#iT sXI,F-zC!" it7Sulje (%1) Close (%1)AlertPienennCollapseAlertLaajennaExpandAlert Ctrl+DCtrl+D AlertLayerKuittaa hlytys Dismiss Alert AlertLayer Kaikki tiedostot All Files (*)DocumentZKaikki tallentamattomat muutokset menetetn.!All unsaved changes will be lost.Document6OpenDocument-teksti (*.odt)OpenDocument Text (*.odt)Document8Muotoilematon teksti (*.txt)Plain Text (*.txt)DocumentKysymysQuestionDocumentLataa uudelleenReloadDocument0Lataa tiedosto uudelleen Reload FileDocumentRLadataanko tiedosto %1 uudelleen levylt?Reload the file %1 from disk?Document0Nime tiedosto uudelleen Rename FileDocument0Muotoiltu teksti (*.rtf)Rich Text (*.rtf)Document Tallenna nimell Save File AsDocumentMuotoilemattomana tekstin tallennettaessa menetetn kaikki muotoilu. Poistetaanko muotoilu?ESaving as plain text will discard all formatting. Discard formatting?DocumentPahoittelutSorryDocumentNTiedoston %1  korvaaminen eponnistui.Unable to overwrite '%1'.DocumentZTiedoston %1  nimen muuttaminen eponnistui.Unable to rename '%1'.DocumentNTiedoston %1 tallentaminen eponnistui.Unable to save '%1'.DocumentHHaluatko ladata tiedoston uudelleen?Do you want to reload the file?DocumentWatcherPHaluatko tallentaa vai sulkea tiedoston?&Do you want to save or close the file?DocumentWatcher Tiedosto muuttui File ChangedDocumentWatcher$Tiedosto poistettu File DeletedDocumentWatcherJt huomiottaIgnoreDocumentWatcherLataa uudelleenReloadDocumentWatcherRToinen ohjelma on muuttanut tiedostoa %1.+The file %1 was changed by another program.DocumentWatcherRToinen ohjelma on poistanut tiedoston %1.+The file %1 was deleted by another program.DocumentWatcher &Etsi&Find FindDialog&Korvaa&Replace FindDialogEtsiFind FindDialog,Kirjainkoolla ei vli Ignore case FindDialog*Virkett ei lytynyt.Phrase not found. FindDialogKysymysQuestion FindDialog.Snnlliset lausekkeetRegular expressions FindDialog KorvaaReplace FindDialog2Korvataanko %n esiintym?4Korvataanko %n esiintym?Replace %n instance(s)? FindDialogKorvaa k&aikki Replace &All FindDialogKorvaa: Replace with: FindDialogEtsi alas Search down FindDialog Etsi: Search for: FindDialogEtsi yls Search up FindDialogPahoittelutSorry FindDialog*Vain kokonaiset sanatWhole words only FindDialog(Ei ehdotuksia)(No suggestions found) Highlighter LisAdd Highlighter2Tarkista oikeinkirjoitus &Check Spelling... HighlighterKuvat (%1) Images(%1) ImageButtonAvaa kuva Open Image ImageButton$Jrjestelmn kieli LocaleDialogHuomautusNote LocaleDialogOle hyv ja kynnist sovellus uudelleen, jotta kielen muutos tulee voimaan.JPlease restart this application for the change in language to take effect. LocaleDialog4Valitse sovelluksen kieli:Select application language: LocaleDialogToimintoActionPreferencesDialogToiminnotActionsPreferencesDialog LisAddPreferencesDialogLis erotin Add SeparatorPreferencesDialog6Keskit aina pystysuunnassaAlways vertically centerPreferencesDialog0Tallenna automaattisestiAutomatically save changesPreferencesDialog(Est lisyskohdistinBlock insertion cursorPreferencesDialogMerkkimrCharacter countPreferencesDialogMerkkein: Characters:PreferencesDialogPTarkista oikeinkirjoitus kirjoitettaessaCheck spelling as you typePreferencesDialogKomentoCommandPreferencesDialog SisllysluetteloContentsPreferencesDialog(Pivittinen tavoite Daily GoalPreferencesDialog,Tunnista sanojen rajatDetect word boundariesPreferencesDialog0Jaa merkkimr kuudellaDivide character count by sixPreferencesDialogErotin:Divider:PreferencesDialog"KokolainausmerkitDoublePreferencesDialogMuokkaaminenEditingPreferencesDialogYleisasetuksetGeneralPreferencesDialogVain kuvakkeet Icons OnlyPreferencesDialogHOhita SUURAAKKOSIN kirjoitetut sanatIgnore words in UPPERCASEPreferencesDialog@Ohita sanat, joissa on numeroitaIgnore words with numbersPreferencesDialog KieliLanguagePreferencesDialogMinuutteina:Minutes:PreferencesDialogSiirr alemmas Move DownPreferencesDialogSiirr ylemmsMove UpPreferencesDialogEi tavoitettaNonePreferencesDialogxYksi tai useampi pllekkinen pikanppin. Haluatko jatkaa?7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialogSivun koko Page SizePreferencesDialogSivumr Page countPreferencesDialogKappalemrParagraph countPreferencesDialogKappaleina: Paragraphs:PreferencesDialogOma sanakirjaPersonal DictionaryPreferencesDialogAsetukset PreferencesPreferencesDialogKysymysQuestionPreferencesDialog6Muista kohdistimen sijaintiRemember cursor positionPreferencesDialog PoistaRemovePreferencesDialogTallennusSavingPreferencesDialogKohtauksetScenesPreferencesDialog"Valitse sanakirjaSelect DictionaryPreferencesDialogPikanppinShortcutPreferencesDialogPikanppimet ShortcutsPreferencesDialog$PuolilainausmerkitSinglePreferencesDialog,lykkt lainausmerkit Smart quotes:PreferencesDialog(Tasoitetut kirjaimet Smooth fontsPreferencesDialogPahoittelutSorryPreferencesDialogOikolukuSpell CheckingPreferencesDialogTilastot StatisticsPreferencesDialog TyyliStylePreferencesDialog6Teksti kuvakkeiden vieressText Alongside IconsPreferencesDialogVain teksti Text OnlyPreferencesDialog"Tekstin sijainti:Text Position:PreferencesDialog.Teksti kuvakkeiden allaText Under IconsPreferencesDialog\Arkisto ei sisll kyttkelpoista sanakirjaa.1The archive does not contain a usable dictionary.PreferencesDialoghSanakirja %1  on jo olemassa. Haluatko korvata sen?>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialogTykalupalkkiToolbarPreferencesDialog$KirjoituskonenetTypewriter soundsPreferencesDialogLTiedoston %1  sulkeminen eponnistui.Unable to close file '%1'.PreferencesDialog>Arkiston avaaminen eponnistui.Unable to open archive.PreferencesDialogJTiedoston %1  avaaminen eponnistui.Unable to open file '%1'.PreferencesDialogXArkiston metatietojen lukeminen eponnistui. Unable to read archive metadata.PreferencesDialog,Sanalaskenta-algoritmiWord Count AlgorithmPreferencesDialogSanamr Word countPreferencesDialogSanoina:Words:PreferencesDialog.Ei tuettu RTF-tiedosto.Not a supported RTF file.ReaderLTiedoston %1  sulkeminen eponnistui.Unable to close file '%1'.Reader>Arkiston avaaminen eponnistui.Unable to open archive.ReaderJTiedoston %1  avaaminen eponnistui.Unable to open file '%1'.ReaderCtrl+Shift+DownCtrl+Shift+Down SceneListCtrl+Shift+Up Ctrl+Shift+Up SceneListSuodataFilter SceneList8Piilota kohtausluettelo (%1)Hide scene list (%1) SceneList2Siirr kohtauksia alemmasMove Scenes Down SceneList2Siirr kohtauksia ylemmsMove Scenes Up SceneList8Muuta kohtausluettelon kokoaResize scene list SceneListShift+F4Shift+F4 SceneList4Nyt kohtausluettelo (%1)Show scene list (%1) SceneListBNyt tai piilota kohtausluetteloToggle Scene List SceneList OletusDefaultSession&Hallinnoi & &Manage...SessionManager &Uusi &&New...SessionManager KopioiCloneSessionManagerKopioi sessio Clone SessionSessionManagerCtrl+Shift+M Ctrl+Shift+MSessionManagerCtrl+Shift+N Ctrl+Shift+NSessionManager PoistaDeleteSessionManager:Poistetaanko valittu istunto?Delete selected session?SessionManager&Hallinnoi istuntojaManage SessionsSessionManagerUusiNewSessionManagerUusi istunto New SessionSessionManagerKysymysQuestionSessionManagerNime uudelleenRenameSessionManager.Nime istunto uudelleenRename SessionSessionManager&Istunnot S&essionsSessionManagerIstunnon nimi: Session name:SessionManagerPahoittelutSorrySessionManager Siirry Switch ToSessionManagerNPyytmsi istunnon nimi on jo kytss.-The requested session name is already in use.SessionManagerTyhjennClear ShortcutEdit(Palauta oletusarvoonReset to Default ShortcutEditPikanppin: Shortcut: ShortcutEditOdota hetki Please Wait SmartQuote4Korvataan lainausmerkkej &Replacing quotation marks... SmartQuote &Lis&Add SpellChecker &Muuta&Change SpellCheckerJt &huomiotta&Ignore SpellCheckerMuuta &kaikki C&hange All SpellCheckerPeruutaCancel SpellCheckerVaihda: Change to: SpellChecker0Tarkista oikeinkirjoitusCheck Spelling SpellChecker>Tarkistetaan oikeinkirjoitusta &Checking spelling... SpellChecker,&Jt kaikki huomiotta I&gnore All SpellChecker Ei sanakirjassa:Not in dictionary: SpellCheckerOdota hetki Please wait SpellChecker Oikoluku valmis.Spell check complete. SpellCheckerKaikki symbolit All symbols SymbolsDialog TiedotDetails SymbolsDialog LisInsert SymbolsDialog Nimi:Name: SymbolsDialog4Viimeksi kytetyt symbolitRecently used symbols SymbolsDialogSymbolitSymbols SymbolsDialog LohkotBlocks SymbolsModel*KirjoitusjrjestelmtScripts SymbolsModelNimetn %1 Untitled %1Theme pikseli pixels ThemeDialog1,5-kertainen 1.5 Lines ThemeDialog Tausta Background ThemeDialogKeskitettyCentered ThemeDialog Vri:Color: ThemeDialogKaksinkertainenDouble ThemeDialogKirjasin:Font: ThemeDialogTekstialue Foreground ThemeDialog Kuva:Image: ThemeDialog4Sisenn ensimmist rivi:Indent First Line: ThemeDialogVasemmallaLeft ThemeDialogRivivli Line Spacing ThemeDialogMarginaali:Margin: ThemeDialog$Vrinkirjoitettu: Misspelled: ThemeDialogMuokkaa teemaa Modify Theme ThemeDialog Nimi:Name: ThemeDialogEi kuvaaNo Image ThemeDialogPeittvyysOpacity ThemeDialogSismarginaali:Padding: ThemeDialogKappalevlistysParagraph Spacing ThemeDialog.Pikseleit ylpuolella: Pixels Above: ThemeDialog.Pikseleit alapuolella: Pixels Below: ThemeDialogSijaintiPosition ThemeDialogSuhteellinen Proportional ThemeDialog PoistaRemove ThemeDialogOikeallaRight ThemeDialogPyristys: Rounding: ThemeDialogSkaalattuScaled ThemeDialogYksinkertainenSingle ThemeDialog Koko:Size: ThemeDialogVlistyksetSpacings ThemeDialogVenytetty Stretched ThemeDialog TekstiText ThemeDialogdAlbert osti fagotin ja trytti puhkuvan melodian.+The quick brown fox jumps over the lazy dog ThemeDialogToistettuTiled ThemeDialogTyyppi:Type: ThemeDialogSuurennettuZoomed ThemeDialogdSamanniminen teema on jo olemassa. Anna uusi nimi:?A theme already exists with that name. Please enter a new name: ThemeManager LisAdd ThemeManager SuljeClose ThemeManagerVieExport ThemeManagerVie teema Export Theme ThemeManagerTuoImport ThemeManagerTuo teema Import Theme ThemeManagerMuokkaaModify ThemeManagerKysymysQuestion ThemeManager PoistaRemove ThemeManager6Poistetaanko valittu teema?Remove selected theme? ThemeManagerPahoittelutSorry ThemeManager TeematThemes ThemeManager.Teemat (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManagerTeemat (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer4<b>Merkkej:</b> %L1 / %L2Characters: %L1 / %L2Timer$<b>Sivuja:</b> %L1Pages: %L1Timer,<b>Kappaleita:</b> %L1Paragraphs: %L1Timer$<b>Sanoja:</b> %L1Words: %L1TimerHlytysAlarmTimer Viive:Delay:Timer PoistaDeleteTimer*Poistetaanko ajastin? Delete timer?TimerMuokkaaEditTimerHH:mm:ssHH:mm:ssTimerListieto:Memo:TimerKysymysQuestionTimerAseta viive Set DelayTimerAseta aikaSet TimeTimer Aika:Time:TimerTyyppi:Type:TimerHH:mm:ssHH:mm:ss TimerDisplay,Ei ajastimia kynnissNo timers running TimerDisplay%1  %2%1 - %2 TimerManager+HH:mm:ss +HH:mm:ss TimerManagerDPeruutetaanko ajastimien muokkaus?Cancel editing timers? TimerManagerUusiNew TimerManagerKysymysQuestion TimerManagerViimeisimmtRecent TimerManagerAjastimetTimers TimerManager4Tiedosto loppui ylltten.!Unexpectedly reached end of file. Tokenizer%1 (vain luku)%1 (Read-Only)Window>%1 % pivittisest tavoiteesta%1% of daily goalWindow&Tietoja&AboutWindowLi&havointi&BoldWindow &Sulje&CloseWindow&Kopioi&CopyWindow&Ulonna&Decrease IndentWindow&Muokkaa&EditWindow&Tiedosto&FileWindow &Etsi &&Find...WindowKoko &nytt &FullscreenWindow &Ohje&HelpWindowKu&rsivointi&ItalicWindow &Uusi&NewWindow &Pois&OffWindow &Avaa &&Open...Window&Kappale &ParagraphWindow &Liit&PasteWindow&Asetukset &&Preferences...WindowTul&osta & &Print...Window&Lopeta&QuitWindow&Tee uudelleen&RedoWindow"Ni&me uudelleen & &Rename...Window&Korvaa & &Replace...Window&Tallenna&SaveWindow&Asetukset &SettingsWindow"&Oikeinkirjoitus & &Spelling...Window&Alaindeksi &SubscriptWindowT&eemat & &Themes...WindowKolme &rivi &Three LinesWindow&Ajastimet & &Timers...WindowT&ykalut&ToolsWindowAll&eviivaus &UnderlineWindow &Peru&UndoWindowL%1 on uudempi kuin vlimuistin versio.#'%1' is newer than the cached copy.Window(Nimetn %1) (Untitled %1)WindowdYksinkertainen koko nytn tekstinksittelyohjelma"A simple fullscreen word processorWindowTietoja &Qt:sta About &QtWindow.Tietoja FocusWriteristaAbout FocusWriterWindowTasaa &keskelle Align &CenterWindow,&Tasaa molemmat reunatAlign &JustifyWindow"Tasaa &vasemmalle Align &LeftWindowTasaa &oikealle Align &RightWindow&Sovelluksen &kieli &Application &Language...Window&Merkkej: %L1 / %L2Characters: %L1 / %L2WindowHCopyright &copy; 2008 %1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindow Ctrl+<Ctrl+<Window Ctrl+>Ctrl+>Window Ctrl+JCtrl+JWindow Ctrl+KCtrl+KWindow Ctrl+MCtrl+MWindow Ctrl+QCtrl+QWindow Ctrl+RCtrl+RWindowCtrl+Shift+A Ctrl+Shift+AWindowCtrl+Shift+V Ctrl+Shift+VWindow Ctrl+^Ctrl+^Window Ctrl+_Ctrl+_Window Ctrl+{Ctrl+{Window Ctrl+|Ctrl+|Window Ctrl+}Ctrl+}WindowL&eikkaaCu&tWindowJHtvlimuistiin ei voida kirjoittaa. Emergency cache is not writable.WindowEscEscWindow&K&ohdistettu teksti F&ocused TextWindowF11F11WindowF7F7WindowEtsi &seuraava Find &NextWindowEtsi edelli&nenFind Pre&viousWindowM&uotoileFo&rmatWindow*Kohdistus pois plt Focus OffWindow$Kohdista yksi riviFocus One LineWindow Kohdista kappaleFocus ParagraphWindow(Kohdista kolme riviFocus Three LinesWindowFocusWriter FocusWriterWindowBFocusWriteri ei suljettu oikein.&FocusWriter was not shut down cleanly.Window&SisennI&ncrease IndentWindow(Vase&mmalta oikealleLe&ft to Right BlockWindow$Ladataan asetuksiaLoading settingsWindowLadataan niLoading soundsWindow Ladataan teemojaLoading themesWindowP&ienenn M&inimizeWindow&Hallinnoi istuntojaManage SessionsWindowUusi istunto New SessionWindow&Yksi rivi One &LineWindowAvaa tiedosto Open FileWindowAvataan %1 Opening %1Window:Korvataanko uudempi tiedosto?Overwrite newer file?WindowSivuja: %L1 Pages: %L1WindowKappaleita: %L1Paragraphs: %L1Window(Liit &muotoilemattaPaste &UnformattedWindowLTarkista, ett SDL_mixer on asennettu.-Please make sure that SDL_mixer is installed.WindowKysymysQuestionWindowbJulkaistu <a href=%1>GPL 3</a>-lisenssin alaisena/Released under the GPL 3 licenseWindow Lataa uu&delleenReloa&dWindowPPalautetaanko tilanne htvlimuistista?!Restore from the emergency cache?Window(Oikea&lta vasemmalleRi&ght to Left BlockWindowS&ymbolit & S&ymbols...Window$Tallenna &nimell & Save &As...Window Tallenna &kaikki Save A&llWindow2Tallennetaanko muutokset? Save changes?WindowValitse k&aikki Select &AllWindow &Valitse kohtaus Select &SceneWindow.Nyt &valikkokuvakkeetShow &Menu IconsWindow(Nyt &tykalupalkki Show &ToolbarWindow.lykkt &lainausmerkit Smart &QuotesWindowHJoitain tiedostoja ei saatu avattua.Some files could not be opened.WindowZOsa tiedostoista avattiin vain luku -tilassa.!Some files were opened Read-Only.WindowJoidenkin tiedostojen tiedostomuotoja ei tueta; niiden avaaminen eponnistui.4Some files were unsupported and could not be opened.WindowYl&iviivausStri&kethroughWindow&Ylindeksi Sup&erscriptWindow*Siirry asiakirjaan %1Switch to Document %1Window>Siirry ensimmiseen asiakirjaanSwitch to First DocumentWindow:Siirry viimeiseen asiakirjaanSwitch to Last DocumentWindow:Siirry seuraavaan asiakirjaanSwitch to Next DocumentWindow:Siirry edelliseen asiakirjaanSwitch to Previous DocumentWindowTTekstitiedostot (%1);;Kaikki tiedostot (*)Text Files (%1);;All Files (*)WindowVKirjoituskonenien lataaminen eponnistui.!Unable to load typewriter sounds.WindowNimetnUntitledWindow$Pivit &asiakirjaUpdate &DocumentWindow Pivit &valintaUpdate &SelectionWindowbKytetty <a href=%1>LGPL 3</a>-lisenssin alaisena,Used under the LGPL 3 licenseWindowTKytt <a href=%1>Oxygen</a>-kuvaketeemaa4Uses icons from the Oxygen icon themeWindowVaroitusWarningWindowSanoja: %L1 Words: %L1Windowfocuswriter-1.4.5/translations/focuswriter_fi.ts000066400000000000000000002241571231434177300222400ustar00rootroot00000000000000 Alert Close (%1) Sulje (%1) Collapse Pienennä Expand Laajenna AlertLayer Dismiss Alert Kuittaa hälytys Ctrl+D Ctrl+D Document Sorry Pahoittelut Unable to save '%1'. Tiedoston %1 tallentaminen epäonnistui. Save File As Tallenna nimellä Unable to overwrite '%1'. Tiedoston ”%1” korvaaminen epäonnistui. Rename File Nimeä tiedosto uudelleen Unable to rename '%1'. Tiedoston ”%1” nimen muuttaminen epäonnistui. Reload File Lataa tiedosto uudelleen Reload the file %1 from disk? Ladataanko tiedosto %1 uudelleen levyltä? All unsaved changes will be lost. Kaikki tallentamattomat muutokset menetetään. Reload Lataa uudelleen Plain Text (*.txt) Muotoilematon teksti (*.txt) Question Kysymys Saving as plain text will discard all formatting. Discard formatting? Muotoilemattomana tekstinä tallennettaessa menetetään kaikki muotoilu. Poistetaanko muotoilu? OpenDocument Text (*.odt) OpenDocument-teksti (*.odt) Rich Text (*.rtf) Muotoiltu teksti (*.rtf) All Files (*) Kaikki tiedostot DocumentWatcher File Changed Tiedosto muuttui The file %1 was changed by another program. Toinen ohjelma on muuttanut tiedostoa %1. Do you want to reload the file? Haluatko ladata tiedoston uudelleen? Reload Lataa uudelleen Ignore Jätä huomiotta File Deleted Tiedosto poistettu The file %1 was deleted by another program. Toinen ohjelma on poistanut tiedoston %1. Do you want to save or close the file? Haluatko tallentaa vai sulkea tiedoston? FindDialog Search for: Etsi: Replace with: Korvaa: Ignore case Kirjainkoolla ei väliä Whole words only Vain kokonaiset sanat Regular expressions Säännölliset lausekkeet Search up Etsi ylös Search down Etsi alas &Find &Etsi &Replace &Korvaa Replace &All Korvaa k&aikki Find Etsi Replace Korvaa Replace %n instance(s)? Korvataanko %n esiintymä? Korvataanko %n esiintymää? Question Kysymys Sorry Pahoittelut Phrase not found. Virkettä ei löytynyt. Highlighter Add Lisää Check Spelling... Tarkista oikeinkirjoitus… (No suggestions found) (Ei ehdotuksia) ImageButton Open Image Avaa kuva Images(%1) Kuvat (%1) LocaleDialog Select application language: Valitse sovelluksen kieli: <System Language> Järjestelmän kieli Note Huomautus Please restart this application for the change in language to take effect. Ole hyvä ja käynnistä sovellus uudelleen, jotta kielen muutos tulee voimaan. PreferencesDialog Preferences Asetukset General Yleisasetukset Statistics Tilastot Toolbar Työkalupalkki Spell Checking Oikoluku Select Dictionary Valitse sanakirja Sorry Pahoittelut Unable to open archive. Arkiston avaaminen epäonnistui. Unable to read archive metadata. Arkiston metatietojen lukeminen epäonnistui. The archive does not contain a usable dictionary. Arkisto ei sisällä käyttökelpoista sanakirjaa. Unable to open file '%1'. Tiedoston ”%1” avaaminen epäonnistui. Unable to close file '%1'. Tiedoston ”%1” sulkeminen epäonnistui. Question Kysymys Shortcuts Pikanäppäimet One or more shortcuts conflict. Do you wish to proceed? Yksi tai useampi päällekkäinen pikanäppäin. Haluatko jatkaa? The dictionary "%1" already exists. Do you want to replace it? Sanakirja ”%1” on jo olemassa. Haluatko korvata sen? Daily Goal Päivittäinen tavoite None Ei tavoitetta Minutes: Minuutteina: Words: Sanoina: Editing Muokkaaminen Always vertically center Keskitä aina pystysuunnassa Block insertion cursor Estä lisäyskohdistin Smooth fonts Tasoitetut kirjaimet Typewriter sounds Kirjoituskoneäänet Smart quotes: Älykkäät lainausmerkit Double Kokolainausmerkit Single Puolilainausmerkit Scenes Kohtaukset Divider: Erotin: Saving Tallennus Automatically save changes Tallenna automaattisesti Remember cursor position Muista kohdistimen sijainti Contents Sisällysluettelo Word count Sanamäärä Page count Sivumäärä Paragraph count Kappalemäärä Character count Merkkimäärä Page Size Sivun koko Characters: Merkkeinä: Paragraphs: Kappaleina: Word Count Algorithm Sanalaskenta-algoritmi Detect word boundaries Tunnista sanojen rajat Divide character count by six Jaa merkkimäärä kuudella Style Tyyli Icons Only Vain kuvakkeet Text Only Vain teksti Text Alongside Icons Teksti kuvakkeiden vieressä Text Under Icons Teksti kuvakkeiden alla Text Position: Tekstin sijainti: Actions Toiminnot Move Up Siirrä ylemmäs Move Down Siirrä alemmas Add Separator Lisää erotin Command Komento Shortcut Pikanäppäin Action Toiminto Check spelling as you type Tarkista oikeinkirjoitus kirjoitettaessa Ignore words in UPPERCASE Ohita SUURAAKKOSIN kirjoitetut sanat Ignore words with numbers Ohita sanat, joissa on numeroita Language Kieli Add Lisää Remove Poista Personal Dictionary Oma sanakirja Reader Not a supported RTF file. Ei tuettu RTF-tiedosto. Unable to open archive. Arkiston avaaminen epäonnistui. Unable to open file '%1'. Tiedoston ”%1” avaaminen epäonnistui. Unable to close file '%1'. Tiedoston ”%1” sulkeminen epäonnistui. SceneList Ctrl+Shift+Down Ctrl+Shift+Down Move Scenes Up Siirrä kohtauksia ylemmäs Ctrl+Shift+Up Ctrl+Shift+Up Toggle Scene List Näytä tai piilota kohtausluettelo Shift+F4 Shift+F4 Show scene list (%1) Näytä kohtausluettelo (%1) Hide scene list (%1) Piilota kohtausluettelo (%1) Filter Suodata Move Scenes Down Siirrä kohtauksia alemmas Resize scene list Muuta kohtausluettelon kokoa Session Default Oletus SessionManager Manage Sessions Hallinnoi istuntoja S&essions &Istunnot New Uusi Rename Nimeä uudelleen Clone Kopioi Delete Poista Switch To Siirry New Session Uusi istunto Clone Session Kopioi sessio Rename Session Nimeä istunto uudelleen Question Kysymys Delete selected session? Poistetaanko valittu istunto? Session name: Istunnon nimi: Sorry Pahoittelut The requested session name is already in use. Pyytämäsi istunnon nimi on jo käytössä. &New... &Uusi… Ctrl+Shift+N Ctrl+Shift+N &Manage... &Hallinnoi… Ctrl+Shift+M Ctrl+Shift+M ShortcutEdit Clear Tyhjennä Reset to Default Palauta oletusarvoon Shortcut: Pikanäppäin: SmartQuote Replacing quotation marks... Korvataan lainausmerkkejä… Please Wait Odota hetki SpellChecker Check Spelling Tarkista oikeinkirjoitus &Add &Lisää &Ignore Jätä &huomiotta I&gnore All &Jätä kaikki huomiotta &Change &Muuta C&hange All Muuta &kaikki Not in dictionary: Ei sanakirjassa: Change to: Vaihda: Checking spelling... Tarkistetaan oikeinkirjoitusta… Cancel Peruuta Please wait Odota hetki Spell check complete. Oikoluku valmis. SymbolsDialog Symbols Symbolit Recently used symbols Viimeksi käytetyt symbolit All symbols Kaikki symbolit Details Tiedot Name: Nimi: Insert Lisää SymbolsModel Blocks Lohkot Scripts Kirjoitusjärjestelmät Theme Untitled %1 Nimetön %1 ThemeDialog Modify Theme Muokkaa teemaa Name: Nimi: Background Tausta No Image Ei kuvaa Tiled Toistettu Centered Keskitetty Stretched Venytetty Scaled Skaalattu Zoomed Suurennettu Remove Poista Type: Tyyppi: Color: Väri: Image: Kuva: Foreground Tekstialue Opacity Peittävyys pixels pikseliä Left Vasemmalla Right Oikealla Position Sijainti Size: Koko: Rounding: Pyöristys: Margin: Marginaali: Padding: Sisämarginaali: Text Teksti Font: Kirjasin: Misspelled: Väärinkirjoitettu: Spacings Välistykset Line Spacing Riviväli Single Yksinkertainen 1.5 Lines 1,5-kertainen Double Kaksinkertainen Proportional Suhteellinen Paragraph Spacing Kappalevälistys Indent First Line: Sisennä ensimmäistä riviä: Pixels Above: Pikseleitä yläpuolella: Pixels Below: Pikseleitä alapuolella: The quick brown fox jumps over the lazy dog Albert osti fagotin ja töräytti puhkuvan melodian. ThemeManager Themes Teemat Add Lisää Modify Muokkaa Remove Poista Import Tuo Export Vie Close Sulje Question Kysymys Remove selected theme? Poistetaanko valittu teema? Import Theme Tuo teema Themes (*.fwtz *.theme) Teemat (*.fwtz *.theme) Themes (*.fwtz) Teemat (*.fwtz) Sorry Pahoittelut A theme already exists with that name. Please enter a new name: Samanniminen teema on jo olemassa. Anna uusi nimi: Export Theme Vie teema Timer <b>%1</b> - %2 <b>%1</b> - %2 Question Kysymys Delete timer? Poistetaanko ajastin? <b>Words:</b> %L1 <b>Sanoja:</b> %L1 <b>Pages:</b> %L1 <b>Sivuja:</b> %L1 <b>Paragraphs:</b> %L1 <b>Kappaleita:</b> %L1 <b>Characters:</b> %L1 / %L2 <b>Merkkejä:</b> %L1 / %L2 Set Delay Aseta viive Set Time Aseta aika Delay: Viive: Time: Aika: HH:mm:ss HH:mm:ss Alarm Hälytys Type: Tyyppi: Memo: Lisätieto: Edit Muokkaa Delete Poista TimerDisplay HH:mm:ss HH:mm:ss No timers running Ei ajastimia käynnissä TimerManager Timers Ajastimet New Uusi Recent Viimeisimmät Question Kysymys Cancel editing timers? Peruutetaanko ajastimien muokkaus? +HH:mm:ss +HH:mm:ss %1 - %2 %1 – %2 Tokenizer Unexpectedly reached end of file. Tiedosto loppui yllättäen. Window Loading themes Ladataan teemoja Loading sounds Ladataan ääniä Untitled Nimetön Open File Avaa tiedosto About FocusWriter Tietoja FocusWriterista FocusWriter FocusWriter A simple fullscreen word processor Yksinkertainen koko näytön tekstinkäsittelyohjelma Copyright &copy; 2008-%1 Graeme Gott Copyright &copy; 2008–%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Julkaistu <a href=%1>GPL 3</a>-lisenssin alaisena Uses icons from the <a href=%1>Oxygen</a> icon theme Käyttää <a href=%1>Oxygen</a>-kuvaketeemaa Used under the <a href=%1>LGPL 3</a> license Käytetty <a href=%1>LGPL 3</a>-lisenssin alaisena Characters: %L1 / %L2 Merkkejä: %L1 / %L2 Pages: %L1 Sivuja: %L1 Paragraphs: %L1 Kappaleita: %L1 Words: %L1 Sanoja: %L1 %1% of daily goal %1 % päivittäisestä tavoiteesta Opening %1 Avataan %1 Question Kysymys Save changes? Tallennetaanko muutokset? (Untitled %1) (Nimetön %1) Switch to Next Document Siirry seuraavaan asiakirjaan Switch to Previous Document Siirry edelliseen asiakirjaan Switch to First Document Siirry ensimmäiseen asiakirjaan Switch to Last Document Siirry viimeiseen asiakirjaan Switch to Document %1 Siirry asiakirjaan %1 Loading settings Ladataan asetuksia Emergency cache is not writable. Hätävälimuistiin ei voida kirjoittaa. Warning Varoitus FocusWriter was not shut down cleanly. FocusWriteriä ei suljettu oikein. Restore from the emergency cache? Palautetaanko tilanne hätävälimuistista? Some files could not be opened. Joitain tiedostoja ei saatu avattua. Some files were opened Read-Only. Osa tiedostoista avattiin vain luku -tilassa. Text Files (%1);;All Files (*) Tekstitiedostot (%1);;Kaikki tiedostot (*) '%1' is newer than the cached copy. %1 on uudempi kuin välimuistin versio. Overwrite newer file? Korvataanko uudempi tiedosto? Unable to load typewriter sounds. Kirjoituskoneäänien lataaminen epäonnistui. Please make sure that SDL_mixer is installed. Tarkista, että SDL_mixer on asennettu. %1 (Read-Only) %1 (vain luku) &File &Tiedosto &New &Uusi &Open... &Avaa… Reloa&d Lataa uu&delleen &Save &Tallenna Save &As... Tallenna &nimellä… &Rename... Ni&meä uudelleen… Save A&ll Tallenna &kaikki Manage Sessions Hallinnoi istuntoja New Session Uusi istunto &Print... Tul&osta… &Close &Sulje &Quit &Lopeta Ctrl+Q Ctrl+Q &Edit &Muokkaa &Undo &Peru &Redo &Tee uudelleen Cu&t L&eikkaa &Copy &Kopioi &Paste &Liitä Paste &Unformatted Liitä &muotoilematta Ctrl+Shift+V Ctrl+Shift+V Select &All Valitse k&aikki Select &Scene &Valitse kohtaus Ctrl+Shift+A Ctrl+Shift+A Fo&rmat M&uotoile &Bold Li&havointi &Italic Ku&rsivointi &Underline All&eviivaus Stri&kethrough Yl&iviivaus Ctrl+K Ctrl+K Sup&erscript &Yläindeksi Ctrl+^ Ctrl+^ &Subscript &Alaindeksi Ctrl+_ Ctrl+_ Align &Left Tasaa &vasemmalle Ctrl+{ Ctrl+{ Align &Center Tasaa &keskelle Ctrl+| Ctrl+| Align &Right Tasaa &oikealle Ctrl+} Ctrl+} Align &Justify &Tasaa molemmat reunat Ctrl+J Ctrl+J &Decrease Indent &Ulonna Ctrl+< Ctrl+< I&ncrease Indent &Sisennä Ctrl+> Ctrl+> Le&ft to Right Block Vase&mmalta oikealle Ri&ght to Left Block Oikea&lta vasemmalle &Tools T&yökalut &Find... &Etsi… Find &Next Etsi &seuraava Find Pre&vious Etsi edelli&nen &Replace... &Korvaa… Ctrl+R Ctrl+R Smart &Quotes Älykkäät &lainausmerkit Update &Document Päivitä &asiakirja Update &Selection Päivitä &valinta &Spelling... &Oikeinkirjoitus… F7 F7 &Timers... &Ajastimet… S&ymbols... S&ymbolit… &Settings &Asetukset Show &Toolbar Näytä &työkalupalkki Show &Menu Icons Näytä &valikkokuvakkeet F&ocused Text K&ohdistettu teksti &Fullscreen Koko &näyttö F11 F11 Esc Esc M&inimize P&ienennä Ctrl+M Ctrl+M &Themes... T&eemat… &Preferences... &Asetukset… Focus Off Kohdistus pois päältä Focus One Line Kohdista yksi rivi Focus Three Lines Kohdista kolme riviä &Paragraph &Kappale Focus Paragraph Kohdista kappale &Help &Ohje Application &Language... Sovelluksen &kieli… Some files were unsupported and could not be opened. Joidenkin tiedostojen tiedostomuotoja ei tueta; niiden avaaminen epäonnistui. &Off &Pois One &Line &Yksi rivi &Three Lines Kolme &riviä &About &Tietoja About &Qt Tietoja &Qt:sta focuswriter-1.4.5/translations/focuswriter_fr.qm000066400000000000000000001022261231434177300222300ustar00rootroot00000000000000Pg?S*N@T;T@XCZDjZigZiZi"Zi4ZiJZ%#h[E[O\F4\OI\*r_ >XOc4\{ )O4Ϩ% e31]i~o.o0n'O0n*P2AqJtq^u2oc"wgS^9=%c$S ~WaqrdefdazX_|H*:J!SM6S\5VGf3Yd?.Rcf"]'aK~m&f(d, B4\95)^HwB6BJ@)'L$b!WT|(YAIᑞ:sPN0 K8`~q%( WEZE,M@JZ.lluz^Ԏ0+WZ7Z#< lsI886Z>2^^^_"_O_|_`L`y+`,`-a(M,1,MSbo%%8%>jM)~gA]OȞnaZhDnvG:,8mV Ah}?vHy; IC;`az?GD9EHQY3TQ5t5t F FCNFIoH53G BD ,hN%!N%D82[ JQ<QturK|M1dݲ j*CcBsYcFe^UR/b25:8Nps:]IIRJINZc[/gADlUm)zCDC!i6B.Bl[̊|9O(RO+޷5!@N$H*tiu+zh < uJR=}lCm p=HxkbAy^6ff>!Mmw82P9} RG9N8f/h|>V |w"pm}vj4sPdSk%% ' DC2pCgw \~V >l :; "6 %^ Y : v Y z z .3& JX W2 Wg < 4Q ·O .^ + Ń +I :t) ;fn d8& eE. 7~ q^% t/ c ʀs;^ ˔Y ˼C; z_ Br f  V7 c ʫ3H ʫI6 ʫNk ʫQZ ʫj  A) pUv > EhC cN cOt >cPI Vv 6r+ >X JC Z$= eN iN!i: tfmt u 4 sX F CC  ' +~ t 1k \` sT Dv cT 8j ( DY_ DY12 DY1u DZ` ^3F noM uuO {N*{ Px I, < ޘ Zc#ZnE@Nltr vAcn .deTj4sAG[j.A L9/W?e$iT!'sZI-"-zC"O" ixFermer (%1) Close (%1)AlertMinimiserCollapseAlertAgrandirExpandAlert Ctrl+DCtrl+D AlertLayerLever l'alerte Dismiss Alert AlertLayer*Tous les fichiers (*) All Files (*)DocumenttToutes les modifications non sauvegardes seront perdues. !All unsaved changes will be lost.Document4Texte OpenDocument (*.odt)OpenDocument Text (*.odt)Document$Texte brut (*.txt)Plain Text (*.txt)DocumentQuestionQuestionDocumentRechargementReloadDocument(Recharger le fichier Reload FileDocumentnVoulez-vous recharger le fichier %1 depuis le disque ? Reload the file %1 from disk?Document&Renommer le fichier Rename FileDocument*Texte enrichi (*.rtf)Rich Text (*.rtf)Document Enregistrer sous Save File AsDocumentLa sauvegarde en texte brut fera perdre toute mise en forme. Voulez-vous abandonner toute mise en forme ? ESaving as plain text will discard all formatting. Discard formatting?Document DsolSorryDocument8Impossible d'craser %1 .Unable to overwrite '%1'.DocumentRImpossible de renommer le fichier %1 .Unable to rename '%1'.Document@Impossible d'enregistrer %1 .Unable to save '%1'.DocumentFVoulez-vous recharger le fichier ? Do you want to reload the file?DocumentWatcher\Voulez-vous sauvegarder ou fermer le fichier ?&Do you want to save or close the file?DocumentWatcherFichier modifi File ChangedDocumentWatcher Fichier supprim File DeletedDocumentWatcherIgnorerIgnoreDocumentWatcherRechargerReloadDocumentWatcherhLe fichier %1 a t modifi par un autre programme. +The file %1 was changed by another program.DocumentWatcherjLe fichier %1 a t supprim par un autre programme. +The file %1 was deleted by another program.DocumentWatcher&Rechercher&Find FindDialog&Remplacer&Replace FindDialogChercherFind FindDialog Ignorer la casse Ignore case FindDialog&Phrase non trouve.Phrase not found. FindDialogQuestionQuestion FindDialog,Expressions rguliresRegular expressions FindDialogRemplacerReplace FindDialog2Remplacer %n occurrence ?4Remplacer %n occurrences ?Replace %n instance(s)? FindDialogRemplacer &tout Replace &All FindDialogRemplacer par : Replace with: FindDialogSuivant Search down FindDialogRechercher : Search for: FindDialogPrcdent Search up FindDialog DsolSorry FindDialogMots entiersWhole words only FindDialog6(Pas de suggestion trouve)(No suggestions found) HighlighterAjouterAdd Highlighter@Vrification de l'orthographe...Check Spelling... HighlighterImages(%1) Images(%1) ImageButton Ouvrir une image Open Image ImageButton&<Langue du systme> LocaleDialogNoteNote LocaleDialogVeuillez redmarrer le programme pour que le changement de langue prenne effet.JPlease restart this application for the change in language to take effect. LocaleDialogFChoisissez la langue du programme :Select application language: LocaleDialog ActionActionPreferencesDialogActionsActionsPreferencesDialogAjouterAddPreferencesDialog*Ajouter un sparateur Add SeparatorPreferencesDialog<Toujours centrer verticalementAlways vertically centerPreferencesDialogAutomatiqueAutomatically save changesPreferencesDialogCurseur blocBlock insertion cursorPreferencesDialog(Nombre de caractresCharacter countPreferencesDialogCaractres : Characters:PreferencesDialogPVrifier l'orthographe pendant la frappeCheck spelling as you typePreferencesDialogCommandeCommandPreferencesDialogContenuContentsPreferencesDialog$Objectif quotidien Daily GoalPreferencesDialog0Dtecter la fin des motsDetect word boundariesPreferencesDialogNDiviser le nombre de caractres par sixDivide character count by sixPreferencesDialogSparateur : Divider:PreferencesDialogDoublesDoublePreferencesDialogditionEditingPreferencesDialogGnralGeneralPreferencesDialogIcne seule Icons OnlyPreferencesDialog<Ignorer les mots en MAJUSCULESIgnore words in UPPERCASEPreferencesDialogPIgnorer les mots comportant des chiffresIgnore words with numbersPreferencesDialog LangueLanguagePreferencesDialogMinutes :Minutes:PreferencesDialogDescendre Move DownPreferencesDialog MonterMove UpPreferencesDialog AucunNonePreferencesDialogAu moins un conflit dans les raccourcis clavier. Voulez-vous continuer ? 7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialogTaille de page Page SizePreferencesDialogNombre de pages Page countPreferencesDialog*Nombre de paragraphesParagraph countPreferencesDialogParagraphes : Paragraphs:PreferencesDialog,Dictionnaire personnelPersonal DictionaryPreferencesDialogPrfrences PreferencesPreferencesDialogQuestionQuestionPreferencesDialogJSe souvenir de la position du curseurRemember cursor positionPreferencesDialogSupprimerRemovePreferencesDialogEnregistrementSavingPreferencesDialog ScnesScenesPreferencesDialog.Choisir le dictionnaireSelect DictionaryPreferencesDialogRaccourcisShortcutPreferencesDialogRaccourcis ShortcutsPreferencesDialogSimplesSinglePreferencesDialog6Guillemets typographiques : Smart quotes:PreferencesDialogPolices lisses Smooth fontsPreferencesDialog DsolSorryPreferencesDialogOrthographeSpell CheckingPreferencesDialogStatistiques StatisticsPreferencesDialog StyleStylePreferencesDialog.Texte ct des icnesText Alongside IconsPreferencesDialogTexte seul Text OnlyPreferencesDialog&Position du texte :Text Position:PreferencesDialog*Texte sous les icnesText Under IconsPreferencesDialogjL'archive ne contient pas de dictionnaire utilisable.1The archive does not contain a usable dictionary.PreferencesDialogxLe dictionnaire "%1" existe dj. Voulez-vous le remplacer ?>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialogBarre d'outilsToolbarPreferencesDialog0Sons de machine crireTypewriter soundsPreferencesDialogJImpossible de fermer le fichier '%1'.Unable to close file '%1'.PreferencesDialog<Impossible d'ouvrir l'archive.Unable to open archive.PreferencesDialogHImpossible d'ouvrir le fichier '%1'.Unable to open file '%1'.PreferencesDialog`Impossible de lire les mtadonnes de l'archive. Unable to read archive metadata.PreferencesDialog>Algorithme de comptage des motsWord Count AlgorithmPreferencesDialogNombre de mots Word countPreferencesDialog Mots :Words:PreferencesDialogPFormat de texte enrichi RTF non reconnu.Not a supported RTF file.ReaderJImpossible de fermer le fichier '%1'.Unable to close file '%1'.Reader<Impossible d'ouvrir l'archive.Unable to open archive.ReaderHImpossible d'ouvrir le fichier '%1'.Unable to open file '%1'.ReaderCtrl+Maj+BasCtrl+Shift+Down SceneListCtrl+Maj+Haut Ctrl+Shift+Up SceneList FiltreFilter SceneList@Masquer la liste des scnes (%1)Hide scene list (%1) SceneList>Dplacer les scnes vers le basMove Scenes Down SceneList@Dplacer les scnes vers le hautMove Scenes Up SceneListDRedimensionner la liste des scnesResize scene list SceneList Maj+F4Shift+F4 SceneListBAfficher la liste des scnes (%1)Show scene list (%1) SceneList@Affichage de la liste des scnesToggle Scene List SceneListPar dfautDefaultSession&Grer... &Manage...SessionManager&Nouvelle...&New...SessionManager ClonerCloneSessionManager"Cloner la session Clone SessionSessionManagerCtrl+Maj+M Ctrl+Shift+MSessionManagerCtrl+Maj+N Ctrl+Shift+NSessionManagerSupprimerDeleteSessionManagerBEffacer la session slectionne ?Delete selected session?SessionManager$Grer les sessionsManage SessionsSessionManagerNouveauNewSessionManager Nouvelle session New SessionSessionManagerQuestionQuestionSessionManagerRenommerRenameSessionManager&Renommer la sessionRename SessionSessionManagerS&essions S&essionsSessionManager&Nom de la session : Session name:SessionManager DsolSorrySessionManager"Ouvrir la session Switch ToSessionManager@Le nom demand est dj utilis.-The requested session name is already in use.SessionManagerEffacerClear ShortcutEdit$Valeurs par dfautReset to Default ShortcutEditRaccourcis : Shortcut: ShortcutEdit$Veuillez patienter Please Wait SmartQuote<Remplacement des guillemets...Replacing quotation marks... SmartQuote&Ajouter&Add SpellChecker&Modifier&Change SpellChecker&Ignorer&Ignore SpellCheckerTout m&odifier C&hange All SpellCheckerAnnulerCancel SpellCheckerChanger pour : Change to: SpellChecker:Vrification de l'orthographeCheck Spelling SpellChecker@Vrification de l'orthographe...Checking spelling... SpellCheckerTout i&gnorer I&gnore All SpellChecker0Absent du dictionnaire :Not in dictionary: SpellChecker$Veuillez patienter Please wait SpellCheckerNVrification de l'orthographe termine.Spell check complete. SpellChecker"Tous les symboles All symbols SymbolsDialogDtailsDetails SymbolsDialogInsrerInsert SymbolsDialog Nom :Name: SymbolsDialog6Symboles rcemment utilissRecently used symbols SymbolsDialogSymbolesSymbols SymbolsDialog BlocsBlocks SymbolsModelScriptsScripts SymbolsModelSans titre %1 Untitled %1Theme pixels pixels ThemeDialog1,5 lignes 1.5 Lines ThemeDialogFond d'cran Background ThemeDialogCentreCentered ThemeDialogCouleur :Color: ThemeDialog DoubleDouble ThemeDialogPolice :Font: ThemeDialogPremier plan Foreground ThemeDialogImage :Image: ThemeDialog0Retrait de 1re ligne : Indent First Line: ThemeDialog GaucheLeft ThemeDialogInterligne Line Spacing ThemeDialogMarge :Margin: ThemeDialogFautes : Misspelled: ThemeDialog"Modifier le thme Modify Theme ThemeDialog Nom :Name: ThemeDialogPas d'imageNo Image ThemeDialogOpacitOpacity ThemeDialogEspacement :Padding: ThemeDialogLRetraits et espacements de paragraphesParagraph Spacing ThemeDialogPixels avant :  Pixels Above: ThemeDialogPixels aprs :  Pixels Below: ThemeDialogPositionPosition ThemeDialogProportionnelle Proportional ThemeDialog"Supprimer l'imageRemove ThemeDialog DroiteRight ThemeDialogArrondi : Rounding: ThemeDialogAgrandieScaled ThemeDialog SimpleSingle ThemeDialogTaille :Size: ThemeDialog.Retraits et espacementsSpacings ThemeDialogAdapte Stretched ThemeDialog TexteText ThemeDialogZPortez ce vieux whisky au juge blond qui fume+The quick brown fox jumps over the lazy dog ThemeDialogMosaqueTiled ThemeDialog Type :Type: ThemeDialog$Agrandie et rogneZoomed ThemeDialogUn thme du mme nom existe dj. Veuillez entrer un autre nom :?A theme already exists with that name. Please enter a new name: ThemeManagerAjouterAdd ThemeManager FermerClose ThemeManagerExporterExport ThemeManager"Exporter le thme Export Theme ThemeManagerImporterImport ThemeManager"Importer un thme Import Theme ThemeManagerModifierModify ThemeManagerQuestionQuestion ThemeManagerSupprimerRemove ThemeManager@Supprimer le thme slectionne ?Remove selected theme? ThemeManager DsolSorry ThemeManager ThmesThemes ThemeManager.Thmes (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManagerThmes (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer:<b>Caractres :</b> %L1 / %L2Characters: %L1 / %L2Timer$<b>Pages :</b> %L1Pages: %L1Timer0<b>Paragraphes :</b> %L1Paragraphs: %L1Timer"<b>Mots :</b> %L1Words: %L1Timer AlarmeAlarmTimer Temps d'attente:Delay:TimerSupprimerDeleteTimer4Supprimer le chronomtre ? Delete timer?TimerModifierEditTimerHH:mm:ssHH:mm:ssTimer Mmo :Memo:TimerQuestionQuestionTimerrgler la dure Set DelayTimerRgler l'heureSet TimeTimerHeure :Time:Timer Type :Type:TimerHH:mm:ssHH:mm:ss TimerDisplay4Aucun chronomtre en coursNo timers running TimerDisplay%1 - %2%1 - %2 TimerManager+HH:mm:ss +HH:mm:ss TimerManagerlAnnuler les modifications apportes aux chronomtres ?Cancel editing timers? TimerManagerNouveauNew TimerManagerQuestionQuestion TimerManager RcentRecent TimerManagerChronomtresTimers TimerManagerXFin de fichier atteinte de faon inattendue.!Unexpectedly reached end of file. Tokenizer$%1 (lecture seule)%1 (Read-Only)Window8%1 % de l'objectif quotidien%1% of daily goalWindow &propos&AboutWindow &Gras&BoldWindowFer&mer&CloseWindow&Copier&CopyWindowD&sindenter&Decrease IndentWindow&dition&EditWindow&Fichier&FileWindow&Chercher...&Find...WindowPl&ein cran &FullscreenWindow &Aide&HelpWindow&Italique&ItalicWindow&Nouveau&NewWindow&HF&OffWindow&Ouvrir...&Open...Window&Paragraphe &ParagraphWindowC&oller&PasteWindow&Prfrences...&Preferences...WindowIm&primer... &Print...Window&Quitter&QuitWindowRe&faire&RedoWindow&Renommer... &Rename...Window&Remplacer... &Replace...Window&Enregistrer&SaveWindow&Configuration &SettingsWindowOrtho&graphe... &Spelling...WindowI&ndice &SubscriptWindow&Thmes... &Themes...Window&Trois lignes &Three LinesWindow C&hronomtres... &Timers...WindowO&utils&ToolsWindow&Souligner &UnderlineWindowAnnu&ler&UndoWindowh'%1' est plus rcent que la copie prsente en cache.#'%1' is newer than the cached copy.Window(Sans titre %1) (Untitled %1)WindowRUn traitement de texte plein cran simple"A simple fullscreen word processorWindow propos de &Qt About &QtWindow. propos de FocusWriterAbout FocusWriterWindow$Aligner au &centre Align &CenterWindow&JustifierAlign &JustifyWindow"&Aligner gauche Align &LeftWindow"Aligner &droite Align &RightWindow6&Langue de l'application...Application &Language...Window,Caractres : %L1 / %L2Characters: %L1 / %L2WindowHCopyright &copy; 2008-%1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindow Ctrl+<Ctrl+<Window Ctrl+>Ctrl+>Window Ctrl+JCtrl+JWindow Ctrl+KCtrl+KWindow Ctrl+MCtrl+MWindow Ctrl+QCtrl+QWindow Ctrl+RCtrl+RWindowCtrl+Maj+A Ctrl+Shift+AWindowCtrl+Maj+V Ctrl+Shift+VWindow Ctrl+^Ctrl+^Window Ctrl+_Ctrl+_Window Ctrl+{Ctrl+{Window Ctrl+|Ctrl+|Window Ctrl+}Ctrl+}WindowCo&uperCu&tWindowhLe cache d'urgence n'est pas accessible en criture. Emergency cache is not writable.WindowEscEscWindow$Texte en &vidence F&ocused TextWindowF11F11WindowF7F7Window(Occurrence &suivante Find &NextWindow,Occurrence &prcdenteFind Pre&viousWindowFo&rmatFo&rmatWindowZoom dsactiv Focus OffWindow$Zoom sur une ligneFocus One LineWindow&Zoom sur paragrapheFocus ParagraphWindow*Zoom sur trois lignesFocus Three LinesWindowFocusWriter FocusWriterWindowXFocusWriter ne s'est pas ferm correctement.&FocusWriter was not shut down cleanly.WindowInden&terI&ncrease IndentWindowFB&loc d'criture de gauche droiteLe&ft to Right BlockWindow4Chargement des prfrencesLoading settingsWindow&Chargement des sonsLoading soundsWindow*Chargement des thmesLoading themesWindowM&inimiser M&inimizeWindow$Grer les sessionsManage SessionsWindow Nouvelle session New SessionWindowUne &ligne One &LineWindow"Ouvrir un fichier Open FileWindowOuverture de %1 Opening %1Window>Ouvrir le fichier plus rcent ?Overwrite newer file?WindowPages : %L1 Pages: %L1Window"Paragraphes : %L1Paragraphs: %L1Window.Collage sans &formatagePaste &UnformattedWindowdVeuillez vous assurer que SDL_mixer est install. -Please make sure that SDL_mixer is installed.WindowQuestionQuestionWindowPPubli sous licence <a href=%1>GPL 3</a>/Released under the GPL 3 licenseWindowRechar&gerReloa&dWindowlRcuprer les informations depuis le cache d'urgence ?!Restore from the emergency cache?WindowFBl&oc d'criture de droite gaucheRi&ght to Left BlockWindowS&ymboles... S&ymbols...Window(Enregistrer &sous... Save &As...Window"Enregistrer &tout Save A&llWindow:Enregistrer les changements ? Save changes?Window$Tout &slectionner Select &AllWindow,Slectionner la &scne Select &SceneWindow@&Montrer les icnes dans le menuShow &Menu IconsWindow6Afficher la barre d'&outils Show &ToolbarWindow6&Apostrophes typographiques Smart &QuotesWindowXCertains fichiers n'ont pas pu tre ouverts.Some files could not be opened.WindowvCertains fichiers ont t ouverts en mode de lecture seule.!Some files were opened Read-Only.WindowCertains fichiers non pris en charge n'ont pas pu tre ouverts. 4Some files were unsupported and could not be opened.Window&BarrerStri&kethroughWindow&Exposant Sup&erscriptWindow8Basculer vers le document %1Switch to Document %1WindowBBasculer vers le premier documentSwitch to First DocumentWindowBBasculer vers le dernier documentSwitch to Last DocumentWindowBBasculer vers le document suivantSwitch to Next DocumentWindowFBasculer vers le document prcdentSwitch to Previous DocumentWindowTFichiers texte (%1);;Tous les fichiers (*)Text Files (%1);;All Files (*)WindowfImpossible de charger les sons de machine crire.!Unable to load typewriter sounds.WindowSans titreUntitledWindow4Mettre jour le &documentUpdate &DocumentWindow6Mettre jour la &slectionUpdate &SelectionWindowTUtilis sous licence <a href=%1>LGPL 3</a>,Used under the LGPL 3 licenseWindowbUtilise les icnes du thme <a href=%1>Oxygen</a>4Uses icons from the Oxygen icon themeWindowAvertissementWarningWindowMots : %L1 Words: %L1Windowfocuswriter-1.4.5/translations/focuswriter_fr.ts000066400000000000000000002254371231434177300222530ustar00rootroot00000000000000 Alert Close (%1) Fermer (%1) Collapse Minimiser Expand Agrandir AlertLayer Dismiss Alert Lever l'alerte Ctrl+D Ctrl+D Document Sorry Désolé Unable to save '%1'. Impossible d'enregistrer « %1 ». Save File As Enregistrer sous Unable to overwrite '%1'. Impossible d'écraser « %1 ». Rename File Renommer le fichier Unable to rename '%1'. Impossible de renommer le fichier « %1 ». Reload File Recharger le fichier Reload the file %1 from disk? Voulez-vous recharger le fichier %1 depuis le disque ? All unsaved changes will be lost. Toutes les modifications non sauvegardées seront perdues. Reload Rechargement Plain Text (*.txt) Texte brut (*.txt) Question Question Saving as plain text will discard all formatting. Discard formatting? La sauvegarde en texte brut fera perdre toute mise en forme. Voulez-vous abandonner toute mise en forme ? OpenDocument Text (*.odt) Texte OpenDocument (*.odt) Rich Text (*.rtf) Texte enrichi (*.rtf) All Files (*) Tous les fichiers (*) DocumentWatcher File Changed Fichier modifié The file %1 was changed by another program. Le fichier %1 a été modifié par un autre programme. Do you want to reload the file? Voulez-vous recharger le fichier ? Reload Recharger Ignore Ignorer File Deleted Fichier supprimé The file %1 was deleted by another program. Le fichier %1 a été supprimé par un autre programme. Do you want to save or close the file? Voulez-vous sauvegarder ou fermer le fichier ? FindDialog Search for: Rechercher : Replace with: Remplacer par : Ignore case Ignorer la casse Whole words only Mots entiers Regular expressions Expressions régulières Search up Précédent Search down Suivant &Find &Rechercher &Replace &Remplacer Replace &All Remplacer &tout Find Chercher Replace Remplacer Replace %n instance(s)? Remplacer %n occurrence ? Remplacer %n occurrences ? Question Question Sorry Désolé Phrase not found. Phrase non trouvée. Highlighter Add Ajouter Check Spelling... Vérification de l'orthographe... (No suggestions found) (Pas de suggestion trouvée) ImageButton Open Image Ouvrir une image Images(%1) Images(%1) LocaleDialog Select application language: Choisissez la langue du programme : <System Language> <Langue du système> Note Note Please restart this application for the change in language to take effect. Veuillez redémarrer le programme pour que le changement de langue prenne effet. PreferencesDialog Preferences Préférences General Général Statistics Statistiques Toolbar Barre d'outils Spell Checking Orthographe Select Dictionary Choisir le dictionnaire Sorry Désolé Unable to open archive. Impossible d'ouvrir l'archive. Unable to read archive metadata. Impossible de lire les métadonnées de l'archive. The archive does not contain a usable dictionary. L'archive ne contient pas de dictionnaire utilisable. Unable to open file '%1'. Impossible d'ouvrir le fichier '%1'. Unable to close file '%1'. Impossible de fermer le fichier '%1'. Question Question Shortcuts Raccourcis One or more shortcuts conflict. Do you wish to proceed? Au moins un conflit dans les raccourcis clavier. Voulez-vous continuer ? The dictionary "%1" already exists. Do you want to replace it? Le dictionnaire "%1" existe déjà. Voulez-vous le remplacer ? Daily Goal Objectif quotidien None Aucun Minutes: Minutes : Words: Mots : Editing Édition Always vertically center Toujours centrer verticalement Block insertion cursor Curseur bloc Smooth fonts Polices lissées Typewriter sounds Sons de machine à écrire Smart quotes: Guillemets typographiques : Double Doubles Single Simples Scenes Scènes Divider: Séparateur : Saving Enregistrement Automatically save changes Automatique Remember cursor position Se souvenir de la position du curseur Contents Contenu Word count Nombre de mots Page count Nombre de pages Paragraph count Nombre de paragraphes Character count Nombre de caractères Page Size Taille de page Characters: Caractères : Paragraphs: Paragraphes : Word Count Algorithm Algorithme de comptage des mots Detect word boundaries Détecter la fin des mots Divide character count by six Diviser le nombre de caractères par six Style Style Icons Only Icône seule Text Only Texte seul Text Alongside Icons Texte à côté des icônes Text Under Icons Texte sous les icônes Text Position: Position du texte : Actions Actions Move Up Monter Move Down Descendre Add Separator Ajouter un séparateur Command Commande Shortcut Raccourcis Action Action Check spelling as you type Vérifier l'orthographe pendant la frappe Ignore words in UPPERCASE Ignorer les mots en MAJUSCULES Ignore words with numbers Ignorer les mots comportant des chiffres Language Langue Add Ajouter Remove Supprimer Personal Dictionary Dictionnaire personnel Reader Not a supported RTF file. Format de texte enrichi RTF non reconnu. Unable to open archive. Impossible d'ouvrir l'archive. Unable to open file '%1'. Impossible d'ouvrir le fichier '%1'. Unable to close file '%1'. Impossible de fermer le fichier '%1'. SceneList Ctrl+Shift+Down Ctrl+Maj+Bas Move Scenes Up Déplacer les scènes vers le haut Ctrl+Shift+Up Ctrl+Maj+Haut Toggle Scene List Affichage de la liste des scènes Shift+F4 Maj+F4 Show scene list (%1) Afficher la liste des scènes (%1) Hide scene list (%1) Masquer la liste des scènes (%1) Filter Filtre Move Scenes Down Déplacer les scènes vers le bas Resize scene list Redimensionner la liste des scènes Session Default Par défaut SessionManager Manage Sessions Gérer les sessions S&essions S&essions New Nouveau Rename Renommer Clone Cloner Delete Supprimer Switch To Ouvrir la session New Session Nouvelle session Clone Session Cloner la session Rename Session Renommer la session Question Question Delete selected session? Effacer la session sélectionnée ? Session name: Nom de la session : Sorry Désolé The requested session name is already in use. Le nom demandé est déjà utilisé. &New... &Nouvelle... Ctrl+Shift+N Ctrl+Maj+N &Manage... &Gérer... Ctrl+Shift+M Ctrl+Maj+M ShortcutEdit Clear Effacer Reset to Default Valeurs par défaut Shortcut: Raccourcis : SmartQuote Replacing quotation marks... Remplacement des guillemets... Please Wait Veuillez patienter SpellChecker Check Spelling Vérification de l'orthographe &Add &Ajouter &Ignore &Ignorer I&gnore All Tout i&gnorer &Change &Modifier C&hange All Tout m&odifier Not in dictionary: Absent du dictionnaire : Change to: Changer pour : Checking spelling... Vérification de l'orthographe... Cancel Annuler Please wait Veuillez patienter Spell check complete. Vérification de l'orthographe terminée. SymbolsDialog Symbols Symboles Recently used symbols Symboles récemment utilisés All symbols Tous les symboles Details Détails Name: Nom : Insert Insérer SymbolsModel Blocks Blocs Scripts Scripts Theme Untitled %1 Sans titre %1 ThemeDialog Modify Theme Modifier le thème Name: Nom : Background Fond d'écran No Image Pas d'image Tiled Mosaïque Centered Centrée Stretched Adaptée Scaled Agrandie Zoomed Agrandie et rognée Remove Supprimer l'image Type: Type : Color: Couleur : Image: Image : Foreground Premier plan Opacity Opacité pixels pixels Left Gauche Right Droite Position Position Size: Taille : Rounding: Arrondi : Margin: Marge : Padding: Espacement : Text Texte Font: Police : Misspelled: Fautes : Spacings Retraits et espacements Line Spacing Interligne Single Simple 1.5 Lines 1,5 lignes Double Double Proportional Proportionnelle Paragraph Spacing Retraits et espacements de paragraphes Indent First Line: Retrait de 1ère ligne : Pixels Above: Pixels avant : Pixels Below: Pixels après : The quick brown fox jumps over the lazy dog Portez ce vieux whisky au juge blond qui fume ThemeManager Themes Thèmes Add Ajouter Modify Modifier Remove Supprimer Import Importer Export Exporter Close Fermer Question Question Remove selected theme? Supprimer le thème sélectionne ? Import Theme Importer un thème Themes (*.fwtz *.theme) Thèmes (*.fwtz *.theme) Themes (*.fwtz) Thèmes (*.fwtz) Sorry Désolé A theme already exists with that name. Please enter a new name: Un thème du même nom existe déjà. Veuillez entrer un autre nom : Export Theme Exporter le thème Timer <b>%1</b> - %2 <b>%1</b> - %2 Question Question Delete timer? Supprimer le chronomètre ? <b>Words:</b> %L1 <b>Mots :</b> %L1 <b>Pages:</b> %L1 <b>Pages :</b> %L1 <b>Paragraphs:</b> %L1 <b>Paragraphes :</b> %L1 <b>Characters:</b> %L1 / %L2 <b>Caractères :</b> %L1 / %L2 Set Delay régler la durée Set Time Régler l'heure Delay: Temps d'attente: Time: Heure : HH:mm:ss HH:mm:ss Alarm Alarme Type: Type : Memo: Mémo : Edit Modifier Delete Supprimer TimerDisplay HH:mm:ss HH:mm:ss No timers running Aucun chronomètre en cours TimerManager Timers Chronomètres New Nouveau Recent Récent Question Question Cancel editing timers? Annuler les modifications apportées aux chronomètres ? +HH:mm:ss +HH:mm:ss %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. Fin de fichier atteinte de façon inattendue. Window Loading themes Chargement des thèmes Loading sounds Chargement des sons Untitled Sans titre Open File Ouvrir un fichier About FocusWriter À propos de FocusWriter FocusWriter FocusWriter A simple fullscreen word processor Un traitement de texte plein écran simple Copyright &copy; 2008-%1 Graeme Gott Copyright &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Publié sous licence <a href=%1>GPL 3</a> Uses icons from the <a href=%1>Oxygen</a> icon theme Utilise les icônes du thème <a href=%1>Oxygen</a> Used under the <a href=%1>LGPL 3</a> license Utilisé sous licence <a href=%1>LGPL 3</a> Characters: %L1 / %L2 Caractères : %L1 / %L2 Pages: %L1 Pages : %L1 Paragraphs: %L1 Paragraphes : %L1 Words: %L1 Mots : %L1 %1% of daily goal %1 % de l'objectif quotidien Opening %1 Ouverture de %1 Question Question Save changes? Enregistrer les changements ? (Untitled %1) (Sans titre %1) Switch to Next Document Basculer vers le document suivant Switch to Previous Document Basculer vers le document précédent Switch to First Document Basculer vers le premier document Switch to Last Document Basculer vers le dernier document Switch to Document %1 Basculer vers le document %1 Loading settings Chargement des préférences Emergency cache is not writable. Le cache d'urgence n'est pas accessible en écriture. Warning Avertissement FocusWriter was not shut down cleanly. FocusWriter ne s'est pas fermé correctement. Restore from the emergency cache? Récupérer les informations depuis le cache d'urgence ? Some files could not be opened. Certains fichiers n'ont pas pu être ouverts. Some files were opened Read-Only. Certains fichiers ont été ouverts en mode de lecture seule. Text Files (%1);;All Files (*) Fichiers texte (%1);;Tous les fichiers (*) '%1' is newer than the cached copy. '%1' est plus récent que la copie présente en cache. Overwrite newer file? Ouvrir le fichier plus récent ? Unable to load typewriter sounds. Impossible de charger les sons de machine à écrire. Please make sure that SDL_mixer is installed. Veuillez vous assurer que SDL_mixer est installé. %1 (Read-Only) %1 (lecture seule) &File &Fichier &New &Nouveau &Open... &Ouvrir... Reloa&d Rechar&ger &Save &Enregistrer Save &As... Enregistrer &sous... &Rename... &Renommer... Save A&ll Enregistrer &tout Manage Sessions Gérer les sessions New Session Nouvelle session &Print... Im&primer... &Close Fer&mer &Quit &Quitter Ctrl+Q Ctrl+Q &Edit &Édition &Undo Annu&ler &Redo Re&faire Cu&t Co&uper &Copy &Copier &Paste C&oller Paste &Unformatted Collage sans &formatage Ctrl+Shift+V Ctrl+Maj+V Select &All Tout &sélectionner Select &Scene Sélectionner la &scène Ctrl+Shift+A Ctrl+Maj+A Fo&rmat Fo&rmat &Bold &Gras &Italic &Italique &Underline &Souligner Stri&kethrough &Barrer Ctrl+K Ctrl+K Sup&erscript &Exposant Ctrl+^ Ctrl+^ &Subscript I&ndice Ctrl+_ Ctrl+_ Align &Left &Aligner à gauche Ctrl+{ Ctrl+{ Align &Center Aligner au &centre Ctrl+| Ctrl+| Align &Right Aligner à &droite Ctrl+} Ctrl+} Align &Justify &Justifier Ctrl+J Ctrl+J &Decrease Indent D&ésindenter Ctrl+< Ctrl+< I&ncrease Indent Inden&ter Ctrl+> Ctrl+> Le&ft to Right Block B&loc d'écriture de gauche à droite Ri&ght to Left Block Bl&oc d'écriture de droite à gauche &Tools O&utils &Find... &Chercher... Find &Next Occurrence &suivante Find Pre&vious Occurrence &précédente &Replace... &Remplacer... Ctrl+R Ctrl+R Smart &Quotes &Apostrophes typographiques Update &Document Mettre à jour le &document Update &Selection Mettre à jour la &sélection &Spelling... Ortho&graphe... F7 F7 &Timers... C&hronomètres... S&ymbols... S&ymboles... &Settings &Configuration Show &Toolbar Afficher la barre d'&outils Show &Menu Icons &Montrer les icônes dans le menu F&ocused Text Texte en é&vidence &Fullscreen Pl&ein écran F11 F11 Esc Esc M&inimize M&inimiser Ctrl+M Ctrl+M &Themes... &Thèmes... &Preferences... &Préférences... Focus Off Zoom désactivé Focus One Line Zoom sur une ligne Focus Three Lines Zoom sur trois lignes &Paragraph &Paragraphe Focus Paragraph Zoom sur paragraphe &Help &Aide Application &Language... &Langue de l'application... Some files were unsupported and could not be opened. Certains fichiers non pris en charge n'ont pas pu être ouverts. &Off &HF One &Line Une &ligne &Three Lines &Trois lignes &About À &propos About &Qt À propos de &Qt focuswriter-1.4.5/translations/focuswriter_he.qm000066400000000000000000000671471231434177300222310ustar00rootroot000000000000002Z%[:[B\:\B\*_ >Jdc4NS{ O+Ϩ%S3P]W:~[.0n!40n$:P26q?t]^`[R"aS^V3wc?S ~Iaq^efRzX~<:JE6F3MHf3KR^?.DcT"O'a?~YT(S&, u4N9,.^=w7m7J5)'@Z$PWGX|"zKN=ᑞ0/sCN)!`~\( W:1E%M@>Z' luz^zԎ(|I.Z#2a YtI.6Z3(@,)c,@b[v%#%4M#~g7$NȞnPhDdv<`:%/VAV.}4v<1r IC1az4D/E=HQY+TD^5t|5tEFF8}F=H5*G9O%_N%SN%9?2L>b<Dt`r?SM)dhݲ |j#csKc; OiUE/Q32588N\p:NIIECJIBZ['g6lH4m#dzC9C-'.8lMP̊|/O" O$޷,!5*_V+zU< uR3<lC$m p3xYQn6^-fTA!Zuw/G9} /G9Nf/Vo|>Hi|w[p }a4_PRSX%% ' L9C)CULa \~I >Y 0h "-e %^ N Y v Y z z .3 JJ W*_ WU 2 + ·C .^ t Ńr +I :_R ;fZ d8u eE .= q^Y t(E Q ʀs1? ˔K ˼C1 z_ B^U f V.m c2. ^&y G # L.( f( iqb w92 xj0! {"uZ NW [ @ ʫO ʫ ʫU ʫ* ʫ=y ʫA ʫD- ʫX A) pUaQ 4v EU cA cB >cCd H 6] >J J8 Z$3 eBQ iN!V tfZ? uI +L sJ2 ;P C89  ! $ t 1 \ sG# D` Q 8j{ ^3 noA& uu {N# Pb Ie < ޘ  ZcLnE6NltrAc[) &dSFXB4^Mj'bA L9'W5`etiTsLI&-z 8C" sib (%1) Close (%1)Alert CollapseAlert ExpandAlert  Dismiss Alert AlertLayer  (*) All Files (*)Document8    .!All unsaved changes will be lost.Document< +OpenDocument +( -*.odt ,)OpenDocument Text (*.odt)Document&  *(*.txt)Plain Text (*.txt)DocumentQuestionDocument ReloadDocument   Reload FileDocumentB   %1   ?Reload the file %1 from disk?Document   Rename FileDocument&  *(*.rtf)Rich Text (*.rtf)Document   Save File AsDocumentp     .    ?ESaving as plain text will discard all formatting. Discard formatting?Document  SorryDocument.    '%1'.Unable to overwrite '%1'.Document,    '%1'.Unable to rename '%1'.Document&   '%1'.Unable to save '%1'.Document@     ?Do you want to reload the file?DocumentWatcherF      ?&Do you want to save or close the file?DocumentWatcher  File ChangedDocumentWatcher  File DeletedDocumentWatcher  IgnoreDocumentWatcher ReloadDocumentWatcherB %1     .+The file %1 was changed by another program.DocumentWatcherB %1     .+The file %1 was deleted by another program.DocumentWatcher&&Find FindDialog &&Replace FindDialog Find FindDialog  Ignore case FindDialog(   .Phrase not found. FindDialogQuestion FindDialog  Regular expressions FindDialog Replace FindDialog   %n?$ %n ?Replace %n instance(s)? FindDialog & Replace &All FindDialog : Replace with: FindDialog  Search down FindDialog : Search for: FindDialog  Search up FindDialog  Sorry FindDialog  Whole words only FindDialog (  )(No suggestions found) HighlighterAdd Highlighter ...Check Spelling... Highlighter(%1) Images(%1) ImageButton  Open Image ImageButton< > LocaleDialogNote LocaleDialog\         .JPlease restart this application for the change in language to take effect. LocaleDialog   :Select application language: LocaleDialog ActionPreferencesDialog ActionsPreferencesDialog AddPreferencesDialog  Add SeparatorPreferencesDialog$  Always vertically centerPreferencesDialog,  Automatically save changesPreferencesDialog  Block insertion cursorPreferencesDialog Character countPreferencesDialog : Characters:PreferencesDialog&   Check spelling as you typePreferencesDialog CommandPreferencesDialog ContentsPreferencesDialog  Daily GoalPreferencesDialog  Detect word boundariesPreferencesDialog(    (6)Divide character count by sixPreferencesDialog :Divider:PreferencesDialog DoublePreferencesDialog EditingPreferencesDialogGeneralPreferencesDialog  Icons OnlyPreferencesDialog&  Ignore words in UPPERCASEPreferencesDialog,   Ignore words with numbersPreferencesDialogLanguagePreferencesDialog :Minutes:PreferencesDialog  Move DownPreferencesDialog Move UpPreferencesDialogNonePreferencesDialogb     .   ?7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialog  Page SizePreferencesDialog  Page countPreferencesDialog Paragraph countPreferencesDialog: Paragraphs:PreferencesDialog Personal DictionaryPreferencesDialog  PreferencesPreferencesDialogQuestionPreferencesDialog  Remember cursor positionPreferencesDialogRemovePreferencesDialog SavingPreferencesDialog ScenesPreferencesDialog Select DictionaryPreferencesDialog ShortcutPreferencesDialog  ShortcutsPreferencesDialog SinglePreferencesDialog : Smart quotes:PreferencesDialog  Smooth fontsPreferencesDialog  SorryPreferencesDialog Spell CheckingPreferencesDialog StatisticsPreferencesDialog StylePreferencesDialog   Text Alongside IconsPreferencesDialog  Text OnlyPreferencesDialog :Text Position:PreferencesDialog   Text Under IconsPreferencesDialog6    .1The archive does not contain a usable dictionary.PreferencesDialogR "%1"  .   ?>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialog ToolbarPreferencesDialog"  Typewriter soundsPreferencesDialog0    '%1'.Unable to close file '%1'.PreferencesDialog*   .Unable to open archive.PreferencesDialog0    '%1'.Unable to open file '%1'.PreferencesDialogB   metadata  . Unable to read archive metadata.PreferencesDialog(  Word Count AlgorithmPreferencesDialog  Word countPreferencesDialog :Words:PreferencesDialog$ RTF  .Not a supported RTF file.Reader0    '%1'.Unable to close file '%1'.Reader*   .Unable to open archive.Reader0    '%1'.Unable to open file '%1'.ReaderCtrl+Shift+Ctrl+Shift+Down SceneListCtrl+Shift+ Ctrl+Shift+Up SceneList Filter SceneList(   (%1)Hide scene list (%1) SceneList  Move Scenes Down SceneList  Move Scenes Up SceneList&   Resize scene list SceneListShift+F4Shift+F4 SceneList&   (%1)Show scene list (%1) SceneList&/  Toggle Scene List SceneList DefaultSession&... &Manage...SessionManager&...&New...SessionManagerCloneSessionManager  Clone SessionSessionManagerDeleteSessionManager  ?Delete selected session?SessionManager Manage SessionsSessionManagerNewSessionManager  New SessionSessionManagerQuestionSessionManager  RenameSessionManager  Rename SessionSessionManager & S&essionsSessionManager : Session name:SessionManager  SorrySessionManager  Switch ToSessionManager>     .-The requested session name is already in use.SessionManager Clear ShortcutEdit Reset to Default ShortcutEdit : Shortcut: ShortcutEdit  Please Wait SmartQuote2   ...Replacing quotation marks... SmartQuote &&Add SpellChecker&&Change SpellChecker &&Ignore SpellChecker & C&hange All SpellChecker Cancel SpellChecker : Change to: SpellChecker Check Spelling SpellChecker   ...Checking spelling... SpellChecker & I&gnore All SpellChecker :Not in dictionary: SpellChecker  Please wait SpellChecker$  .Spell check complete. SpellChecker  All symbols SymbolsDialog Details SymbolsDialogInsert SymbolsDialog:Name: SymbolsDialog*  Recently used symbols SymbolsDialog Symbols SymbolsDialog Blocks SymbolsModelScripts SymbolsModel  %1 Untitled %1Theme pixels ThemeDialog1.5  1.5 Lines ThemeDialog  Background ThemeDialog Centered ThemeDialog:Color: ThemeDialog Double ThemeDialog :Font: ThemeDialog  Foreground ThemeDialog :Image: ThemeDialog   :Indent First Line: ThemeDialogLeft ThemeDialog  Line Spacing ThemeDialog:Margin: ThemeDialog : Misspelled: ThemeDialog  Modify Theme ThemeDialog:Name: ThemeDialog No Image ThemeDialog Opacity ThemeDialog :Padding: ThemeDialog Paragraph Spacing ThemeDialog  : Pixels Above: ThemeDialog  : Pixels Below: ThemeDialog Position ThemeDialog Proportional ThemeDialogRemove ThemeDialogRight ThemeDialog: Rounding: ThemeDialogScaled ThemeDialog Single ThemeDialog :Size: ThemeDialog Spacings ThemeDialog Stretched ThemeDialog Text ThemeDialogD      +The quick brown fox jumps over the lazy dog ThemeDialog Tiled ThemeDialog :Type: ThemeDialog Zoomed ThemeDialogR     .    :?A theme already exists with that name. Please enter a new name: ThemeManager Add ThemeManager Close ThemeManager Export ThemeManager  Export Theme ThemeManager Import ThemeManager  Import Theme ThemeManager Modify ThemeManagerQuestion ThemeManagerRemove ThemeManager"  ?Remove selected theme? ThemeManager  Sorry ThemeManagerThemes ThemeManager2 *(*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManager" *(*.fwtz)Themes (*.fwtz) ThemeManager.<b>:</b> %L1 / %L2Characters: %L1 / %L2Timer$<b>:</b> %L1Pages: %L1Timer$<b>:</b> %L1Paragraphs: %L1Timer"<b>:</b> %L1Words: %L1Timer AlarmTimer :Delay:Timer DeleteTimer  ? Delete timer?Timer EditTimerHH:mm:ssHH:mm:ssTimer :Memo:TimerQuestionTimer  Set DelayTimer Set TimeTimer:Time:Timer :Type:TimerHH:mm:ssHH:mm:ss TimerDisplay$   No timers running TimerDisplay+HH:mm:ss +HH:mm:ss TimerManager,   ?Cancel editing timers? TimerManagerNew TimerManagerQuestion TimerManagerRecent TimerManager Timers TimerManager8     .!Unexpectedly reached end of file. Tokenizer %1 (-)%1 (Read-Only)Window"%1%   %1% of daily goalWindow &&AboutWindow &&BoldWindow &&CloseWindow &&CopyWindow& &Decrease IndentWindow &&EditWindow &&FileWindow&...&Find...Window&  &FullscreenWindow &&HelpWindow &&ItalicWindow&&NewWindow &&OffWindow&...&Open...Window & &ParagraphWindow &&PasteWindow&...&Preferences...Window&... &Print...Window &&QuitWindow& &RedoWindow& ... &Rename...Window&... &Replace...Window &&SaveWindow& &SettingsWindow&... &Spelling...Window & &SubscriptWindow&... &Themes...Window&  &Three LinesWindow& ... &Timers...Window &&ToolsWindow&  &UnderlineWindow&&UndoWindowF'%1'      .#'%1' is newer than the cached copy.Window(  %1) (Untitled %1)Window4    "A simple fullscreen word processorWindow &Qt About &QtWindow" +FocusWriterAbout FocusWriterWindow & Align &CenterWindow &Align &JustifyWindow & Align &LeftWindow & Align &RightWindow& ...Application &Language...Window : %L1 / %L2Characters: %L1 / %L2WindowHCopyright &copy; 2008-%1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindow &Cu&tWindow4    . Emergency cache is not writable.WindowEscEscWindow & F&ocused TextWindowF11F11WindowF7F7Window  & Find &NextWindow  &Find Pre&viousWindow &Fo&rmatWindow  Focus OffWindow  Focus One LineWindow Focus ParagraphWindow   Focus Three LinesWindow +FocusWriter FocusWriterWindowB +FocusWriter    .&FocusWriter was not shut down cleanly.Window& I&ncrease IndentWindow$ &  Le&ft to Right BlockWindow  Loading settingsWindow   Loading soundsWindow"  Loading themesWindow & M&inimizeWindow Manage SessionsWindow  New SessionWindow & One &LineWindow  Open FileWindow + -%1 ,   Opening %1Window   ?Overwrite newer file?Window: %L1 Pages: %L1Window: %L1Paragraphs: %L1Window  &Paste &UnformattedWindowJ   SDL_mixer  .-Please make sure that SDL_mixer is installed.WindowQuestionWindowN   +<a href=%1>GPL 3</a>/Released under the GPL 3 licenseWindow& Reloa&dWindow*   ?!Restore from the emergency cache?Window$ &  Ri&ght to Left BlockWindow&... S&ymbols...Window &... Save &As...Window & Save A&llWindow ? Save changes?Window & Select &AllWindow & Select &SceneWindow" & Show &Menu IconsWindow &  Show &ToolbarWindow&  Smart &QuotesWindow:    .Some files could not be opened.Window@   -.!Some files were opened Read-Only.WindowV       .4Some files were unsupported and could not be opened.Window &Stri&kethroughWindow & Sup&erscriptWindow   %1Switch to Document %1Window$   Switch to First DocumentWindow$   Switch to Last DocumentWindow   Switch to Next DocumentWindow"   Switch to Previous DocumentWindow<  (%1);;  (*)Text Files (%1);;All Files (*)Window@     .!Unable to load typewriter sounds.Window UntitledWindow &Update &DocumentWindow &Update &SelectionWindowN   <a href=%1>LGPL 3</a>,Used under the LGPL 3 licenseWindow\    <a href=%1>Oxygen</a>4Uses icons from the Oxygen icon themeWindow WarningWindow: %L1 Words: %L1Windowfocuswriter-1.4.5/translations/focuswriter_he.ts000066400000000000000000002273121231434177300222320ustar00rootroot00000000000000 Alert Close (%1) לסגור (%1) Collapse לצמצם Expand להרחיב AlertLayer Dismiss Alert סלק אתראה Ctrl+D Document Sorry צר לי Unable to save '%1'. לא ניתן לשמור '%1'. Save File As שמירת קובץ בשם Unable to overwrite '%1'. לא ניתן להחליף את '%1'. Rename File שינוי שם קובץ Unable to rename '%1'. לא ניתן לשנות שם '%1'. Reload File טעינת קובץ מחדש Reload the file %1 from disk? לטעון את הקובץ %1 מחדש מתוך כונן? All unsaved changes will be lost. כל השינויים שלא נשמרו יאבדו. Reload טעינה מחדש Plain Text (*.txt) תמליל גלוי ‪(*.txt) Question שאלה Saving as plain text will discard all formatting. Discard formatting? שמירה כתמליל גלוי תתעלם מכל העיצוב. האם להתעלם מן עיצוב? OpenDocument Text (*.odt) תמליל ‫OpenDocument ‫(‭*.odt‬) Rich Text (*.rtf) תמליל עשיר ‪(*.rtf) All Files (*) כל הקבצים (*) DocumentWatcher File Changed קובץ שונה The file %1 was changed by another program. הקובץ %1 שונה על ידי תוכנית אחרת. Do you want to reload the file? האם ברצונך להטעין את הקובץ מחדש? Reload טעינה מחדש Ignore התעלם מן אירוע File Deleted קובץ נמחק The file %1 was deleted by another program. הקובץ %1 נמחק על ידי תוכנית אחרת. Do you want to save or close the file? האם ברצונך לשמור או לסגור את הקובץ? FindDialog Search for: חפש עבור: Replace with: החלף עם: Ignore case התעלם מרישיות Whole words only כל המילים בלבד Regular expressions ביטויים רגולריים Search up חפש מעלה Search down חפש מטה &Find &מצא &Replace &החלף Replace &All החלף ה&כל Find מציאה Replace החלפה Replace %n instance(s)? להחליף מאורע %n? להחליף %n מאורעות? Question שאלה Sorry צר לי Phrase not found. צירוף מילים לא נמצא. Highlighter Add הוסף Check Spelling... בדיקת איות... (No suggestions found) (לא נמצאו הצעות) ImageButton Open Image פתוח תמונה Images(%1) תמונות(%1) LocaleDialog Select application language: בחירת שפת יישום: <System Language> <שפת מערכת> Note הערה Please restart this application for the change in language to take effect. נא לאתחל את יישום זה כדי להחיל את השינוי בשפה. PreferencesDialog Preferences העדפות General כללי Statistics סטטיסטיקה Toolbar סרגל כלים Spell Checking בדיקת איות Select Dictionary בחר מילון Sorry צר לי Unable to open archive. לא ניתן לפתוח ארכיון. Unable to read archive metadata. לא ניתן לקרוא metadata של ארכיון. The archive does not contain a usable dictionary. הארכיון לא מכיל מילון שמיש. Unable to open file '%1'. לא ניתן לפתוח קובץ '%1'. Unable to close file '%1'. לא ניתן לסגור קובץ '%1'. Question שאלה Shortcuts קיצורי דרך One or more shortcuts conflict. Do you wish to proceed? מתנגשים קיצור דרך אחד או יותר. האם ברצונך להמשיך? The dictionary "%1" already exists. Do you want to replace it? המילון "%1" כבר קיים. האם ברצונך להחליפו? Daily Goal יעד יומי None בלי Minutes: דקות: Words: מילים: Editing עריכה Always vertically center תמיד ממורכז במאונך Block insertion cursor סמן שיבוץ בלוק Smooth fonts גופנים מלוטשים Typewriter sounds צלילי מכונת כתיבה Smart quotes: מרכאות חכמות: Double כפולות Single בודדות Scenes מקטעים Divider: מפריד: Saving שמירה Automatically save changes שמירת שינויים אוטומטית Remember cursor position זכור מיקום סמן Contents תכנים Word count ספירת מילים Page count ספירת עמודים Paragraph count ספירת פסקאות Character count ספירת תווים Page Size גודל עמוד Characters: תווים: Paragraphs: פסקאות: Word Count Algorithm אלגוריתם ספירת מילים Detect word boundaries אתר גבולות מילה Divide character count by six חלק ספירת תו בשש (6) Style סגנון Icons Only צלמיות בלבד Text Only תמליל בלבד Text Alongside Icons תמליל לצד צלמיות Text Under Icons תמליל תחת צלמיות Text Position: מיקום תמליל: Actions פעולות Move Up הזזה מעלה Move Down הזזה מטה Add Separator הוסף חוצץ Command פקודה Shortcut קיצור דרך Action פעולה Check spelling as you type בדוק איות בעת הקלדה Ignore words in UPPERCASE התעלם ממילים עיליות Ignore words with numbers התעלם ממילים עם אותיות Language שפה Add הוספה Remove הסרה Personal Dictionary מילון אישי Reader Not a supported RTF file. קובץ RTF שלא נתמך. Unable to open archive. לא ניתן לפתוח ארכיון. Unable to open file '%1'. לא ניתן לפתוח קובץ '%1'. Unable to close file '%1'. לא ניתן לסגור קובץ '%1'. SceneList Ctrl+Shift+Down Ctrl+Shift+מטה Move Scenes Up הזז מקטעים מעלה Ctrl+Shift+Up Ctrl+Shift+מעלה Toggle Scene List הצג/הסתר רשימת מקטע Shift+F4 Shift+F4 Show scene list (%1) הצג רשימת מקטע (%1) Hide scene list (%1) הסתר רשימת מקטע (%1) Filter סינון Move Scenes Down הזז מקטעים מטה Resize scene list שנה גודל רשימת מקטע Session Default ברירת מחדל SessionManager Manage Sessions ניהול סשנים S&essions ס&שנים New חדש Rename שנה שם Clone שבט Delete מחק Switch To החלף אל New Session סשן חדש Clone Session שיבוט סשן Rename Session שינוי שם סשן Question שאלה Delete selected session? למחוק סשן נבחר? Session name: שם סשן: Sorry צר לי The requested session name is already in use. שם הסשן המבוקש כבר מצוי בשימוש. &New... &חדש... Ctrl+Shift+N &Manage... &ניהול... Ctrl+Shift+M ShortcutEdit Clear טיהור Reset to Default איפוס Shortcut: קיצור דרך: SmartQuote Replacing quotation marks... מחליף כעת סימני מרכאות... Please Wait נא להמתין SpellChecker Check Spelling בדיקת איות &Add הו&סף &Ignore הת&עלם I&gnore All התעלם מ&הכל &Change &שנה C&hange All שנה ה&כל Not in dictionary: לא במילון: Change to: שנה אל: Checking spelling... בודק כעת איות... Cancel ביטול Please wait נא להמתין Spell check complete. בדיקת איות הושלמה. SymbolsDialog Symbols סמלים Recently used symbols סמלים שנשתמשו לאחרונה All symbols כל הסמלים Details פרטים Name: שם: Insert שבץ SymbolsModel Blocks בלוקים Scripts תסריטים Theme Untitled %1 ללא כותרת %1 ThemeDialog Modify Theme התאמת מוטיב Name: שם: Background רקע אחורי No Image אין תמונה Tiled מרוצף Centered ממורכז Stretched פרוש Scaled מתוח Zoomed מוקרב Remove הסרה Type: טיפוס: Color: צבע: Image: תמונה: Foreground רקע קדמי Opacity עמימות pixels פיקסלים Left שמאל Right ימין Position מיקום Size: גודל: Rounding: התעגלות: Margin: שוליים: Padding: ריפוד: Text תמליל Font: גופן: Misspelled: שגיאת כתיב: Spacings ריווח Line Spacing ריווח שורה Single בודדות 1.5 Lines 1.5 שורות Double כפולות Proportional פרופורציונלי Paragraph Spacing ריווח פסקאות Indent First Line: הזח שורה ראשונה: Pixels Above: פיקסלים תחתונים: Pixels Below: פיקסלים תחתונים: The quick brown fox jumps over the lazy dog השועל החום המהיר קפץ מעל הכלב העצל ThemeManager Themes מוטיבים Add הוספה Modify התאמה Remove הסרה Import ייבוא Export ייצוא Close סגירה Question שאלה Remove selected theme? להסיר מוטיב נבחר? Import Theme ייבוא מוטיב Themes (*.fwtz *.theme) מוטיבים ‪(*.fwtz *.theme) Themes (*.fwtz) מוטיבים ‪(*.fwtz) Sorry צר לי A theme already exists with that name. Please enter a new name: כבר קיים מוטיב עם שם זה. נא להזין שם חדש: Export Theme ייצוא מוטיב Timer <b>%1</b> - %2 Question שאלה Delete timer? למחוק שעון עצר? <b>Words:</b> %L1 <b>מילים:</b> %L1 <b>Pages:</b> %L1 <b>עמודים:</b> %L1 <b>Paragraphs:</b> %L1 <b>פסקאות:</b> %L1 <b>Characters:</b> %L1 / %L2 <b>תווים:</b> %L1 / %L2 Set Delay הגדר שיהוי Set Time הגדר זמן Delay: שיהוי: Time: זמן: HH:mm:ss HH:mm:ss Alarm אזעקה Type: טיפוס: Memo: תזכיר: Edit עריכה Delete מחיקה TimerDisplay HH:mm:ss HH:mm:ss No timers running אין שעון עצר שמורץ TimerManager Timers שעוני עצר New חדש Recent אחרונים Question שאלה Cancel editing timers? ביטול עריכת שעוני עצר? +HH:mm:ss +HH:mm:ss %1 - %2 Tokenizer Unexpectedly reached end of file. הגעה בלתי צפויה אל סוף קובץ. Window Loading themes מטעין כעת מוטיבים Loading sounds מטעין כעת צלילים Untitled ללא כותרת Open File פתיחת קובץ About FocusWriter אדות ‫FocusWriter FocusWriter ‫FocusWriter A simple fullscreen word processor עורך תמלילים פשוט במסך מלא Copyright &copy; 2008-%1 Graeme Gott Copyright &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license משוחרר תחת הרשיון ‫<a href=%1>GPL 3</a> Uses icons from the <a href=%1>Oxygen</a> icon theme הצלמיות נלקחו מן הפרויקט <a href=%1>Oxygen</a> Used under the <a href=%1>LGPL 3</a> license בשימוש תחת הרשיון <a href=%1>LGPL 3</a> Characters: %L1 / %L2 תווים: %L1 / %L2 Pages: %L1 עמודים: %L1 Paragraphs: %L1 פסקאות: %L1 Words: %L1 מילים: %L1 %1% of daily goal %1% מן היעד היומי Opening %1 ‫‭%1‬ נפתח כעת Question שאלה Save changes? לשמור שינויים? (Untitled %1) (ללא כותרת %1) Switch to Next Document מעבר אל מסמך בא Switch to Previous Document מעבר אל מסמך קודם Switch to First Document מעבר אל מסמך ראשון Switch to Last Document מעבר אל מסמך אחרון Switch to Document %1 מעבר אל מסמך %1 Loading settings טוען כעת הגדרות Emergency cache is not writable. מטמון חירום אינו בר כתיבה. Warning אזהרה FocusWriter was not shut down cleanly. ‫FocusWriter לא סוים באופן מוסדר. Restore from the emergency cache? לשחזר מן מטמון חירום? Some files could not be opened. קבצים מסוימים לא יכלו להיפתח. Some files were opened Read-Only. קבצים מסוימים נפתחו לקריאה-בלבד. Text Files (%1);;All Files (*) קבצי תמליל (%1);;כל הקבצים (*) '%1' is newer than the cached copy. '%1' הינו חדש יותר מן העותק המוטמן. Overwrite newer file? להחליף קובץ חדש? Unable to load typewriter sounds. לא ניתן לטעון צלילי מכונת כתיבה. Please make sure that SDL_mixer is installed. נא לוודא שהרכיב SDL_mixer הינו מותקן. %1 (Read-Only) %1 (לקריאה-בלבד) &File &קובץ &New &חדש &Open... &פתיחה... Reloa&d &טען מחדש &Save &שמור Save &As... שמירה &בשם... &Rename... שי&נוי שם... Save A&ll שמור ה&כל Manage Sessions ניהול סשנים New Session סשן חדש &Print... ה&דפסה... &Close &סגור &Quit י&ציאה Ctrl+Q &Edit ע&ריכה &Undo בט&ל &Redo ב&צע שוב Cu&t &גזור &Copy הע&תק &Paste ה&דבק Paste &Unformatted הדבק בלי &עיצוב Ctrl+Shift+V Select &All בחר ה&כל Select &Scene בחר &מקטע Ctrl+Shift+A Fo&rmat עי&צוב &Bold &מודגש &Italic &נטוי &Underline &קו תחתון Stri&kethrough קו &חוצה Ctrl+K Sup&erscript כיתוב &עילי Ctrl+^ &Subscript כיתוב &תחתי Ctrl+_ Align &Left יישור &שמאל Ctrl+{ Align &Center יישור מ&רכז Ctrl+| Align &Right יישור &ימין Ctrl+} Align &Justify יישור מ&אוזן Ctrl+J &Decrease Indent &צמצום שוליים Ctrl+< I&ncrease Indent &גידול שוליים Ctrl+> Le&ft to Right Block בלוק שמ&אל אל ימין Ri&ght to Left Block בלוק י&מין אל שמאל &Tools &כלים &Find... &חיפוש... Find &Next מצא את ה&בא Find Pre&vious מצא את ה&קודם &Replace... &החלפה... Ctrl+R Smart &Quotes מר&כאות חכמות Update &Document עדכן &מסמך Update &Selection עדכן &בחירה &Spelling... &איות... F7 F7 &Timers... &שעוני עצר... S&ymbols... &סמלים... &Settings &הגדרות Show &Toolbar הצג &סרגל כלים Show &Menu Icons הצג &צלמיות תפריט F&ocused Text תמליל ממור&כז &Fullscreen &מסך מלא F11 F11 Esc Esc M&inimize מ&זער Ctrl+M &Themes... מו&טיבים... &Preferences... &העדפות... Focus Off כיבוי מרכוז Focus One Line מרכוז שורה אחת Focus Three Lines מרכוז שלוש שורות &Paragraph &פסקה Focus Paragraph מרכוז פסקה &Help &עזרה Application &Language... &שפת יישום... Some files were unsupported and could not be opened. קבצים מסוימים לא נתמכו ולא ניתן היה לפתוחם. &Off &כבוי One &Line שורה &אחת &Three Lines &שלוש שורות &About &אודות About &Qt אודות &Qt focuswriter-1.4.5/translations/focuswriter_hu.qm000066400000000000000000001004061231434177300222330ustar00rootroot00000000000000VEVC*$Q9*yQ*R*%RS*D *0R+U+T+U+įW@H(K#J+4J6E/sJ6FKQMez=PdS*LkT:T?XBAZCZiZi&Zi!Zi3tZiHpZ%"[Dl[MA\D\Mp\* _ >V$c4Zs{ O3Ϩ]% cb3]g~l.0n&n0n)P2?qI;tn^qlaW"sS^<%c$qS ~Uaqo7efazXF:J!/Q6QgYT*f3WSa?.OcdW"[['aJ5~j_d(b, 4Z693^G w@AJJ>) 'J$_WR|<'WHᑞ9|EsNN/ I`~m( WCE+M@HZ-Kluz^.Ԏ.UC6Z#; iI776Z='\V\\\] ]7]d^^<+^i,^-^(K^,0,Kbl8%%=WM(~g@ZȞn_hDjvFJ:+7jV "Ae}=vF: IC:az>$D8EGZQYQ2TO5t5t xF[FBFGH52HGB+SN% N%B2XH<Otr[rIM0dYݲ oj)RcsVcD[UP/`G2548Nm^:ZIIPmJILZ[.dg@5lSm) zCCPC 53.AlYh̊|8wO'uO*޷4!?7#*;qRf+zer< u>RS|w"5p}r4ptPbNSh%% 6' ?CC1CCd5 \~T >j! 98 "5q %^Z Y v Y z z .3& JVg W1 We2 ; 3$ ·M .^`  Ń2 +Iq :p ;fkG d8 eE 6O q^$u t. a ʀs:I ˔W ˼C9 z_ Bo f % V6 c;X ^, S. #" L./= f(% iqt w9< xj8 {"uk Ngi  J ʫ ʫ ʫ ʫ2 ʫG ʫL ʫOK ʫh%  A) pUs; = Ee cL9 cM >cNd Tc 6n >V JBn Z$< eM iN!f tfj uE 2 sU E CA Z & *_ t 1m \ sR} Dr ` 8j DY] DY0 DY0J DZ] ^3 noK uu {N) Pt I < ޘ _ Zc#Wn+E?NltrAck ,dcQhT4pYj-A BL9-W>e#ziT psXI,-z(C!"H :iuBezrs  Close (%1)AlertsszezrsCollapseAlertKibontsExpandAlert Ctrl+DCtrl+D AlertLayer.Figyelmeztets bezrsa Dismiss Alert AlertLayerMinden fjl (*) All Files (*)Document^Minden el nem mentett vltoztats el fog veszni!All unsaved changes will be lost.Document2OpenDocument Text (*.odt)OpenDocument Text (*.odt)Document6Egyszerq szvegfjl (*.txt)Plain Text (*.txt)Document KrdsQuestionDocumentjratltsReloadDocument Fjl jratltse Reload FileDocument<%1 Fjl jratltse a lemezrQlReload the file %1 from disk?DocumentFjl tnevezse Rename FileDocument0Formzott szveg (*.rtf)Rich Text (*.rtf)DocumentMents msknt Save File AsDocumentEgyszerq szvegknt val ments minden formzst trl. Trl minden formzst?ESaving as plain text will discard all formatting. Discard formatting?DocumentElnzstSorryDocument:Nem sikerlt '%1' fellrsa.Unable to overwrite '%1'.Document:Nem sikerlt '%1' tnevezse.Unable to rename '%1'.Document4Nem sikerlt '%1' mentse.Unable to save '%1'.Document8jra akarja tlteni a fjlt?Do you want to reload the file?DocumentWatcherfEl szeretn menteni vagy be szeretn zrni a fjlt?&Do you want to save or close the file?DocumentWatcher&A flj megvltozott File ChangedDocumentWatcherFjl trlve File DeletedDocumentWatcher,Figyelmen kvl hagysIgnoreDocumentWatcherjratltsReloadDocumentWatcherZA(z) %1 fjl egy msik program megvltoztatta+The file %1 was changed by another program.DocumentWatcherNA()z %1 fjlt egy msik program trlte+The file %1 was deleted by another program.DocumentWatcher&Keress...&Find FindDialog &Csere&Replace FindDialogKeressFind FindDialogvKis- s nagybetqk kztti klnbsg figyelmen kvl hagysa Ignore case FindDialogFA keresett kifejezs nem tallhat.Phrase not found. FindDialog KrdsQuestion FindDialog*Szablyos kifejezsekRegular expressions FindDialog CsereReplace FindDialog:Kicserljnk %n elQfordulst?Replace %n instance(s)? FindDialogsszes &cserje Replace &All FindDialog Csere: Replace with: FindDialogKeress lefel Search down FindDialogKeress: Search for: FindDialogKeress felfel Search up FindDialogElnzstSorry FindDialog(Csak teljes szavakatWhole words only FindDialog,(Nincsenek javaslatok)(No suggestions found) HighlighterHozzadsAdd Highlighter0Helyesrs-ellenQrzs...Check Spelling... HighlighterKpek(%1) Images(%1) ImageButtonKp megnyitsa Open Image ImageButton&<A rendszer nyelve> LocaleDialogMegjegyzsNote LocaleDialogIndtsd jra az alkalmazst, hogy a vltoztatsok rvnybe lpjenek.JPlease restart this application for the change in language to take effect. LocaleDialogBVlaszd ki az alkalmazs nyelvt:Select application language: LocaleDialog AkciActionPreferencesDialog AkcikActionsPreferencesDialogHozzadsAddPreferencesDialog*Elvlaszt hozzadsa Add SeparatorPreferencesDialogLA kurzor maradjon fggQlegesen kzpenAlways vertically centerPreferencesDialogFA vltoztatsok automatikus mentseAutomatically save changesPreferencesDialog"Blokkszerq kurzorBlock insertion cursorPreferencesDialog Karakterek szmaCharacter countPreferencesDialogKarakter: Characters:PreferencesDialogHHelyesrs-ellenQrzs gpels kzbenCheck spelling as you typePreferencesDialogParancsCommandPreferencesDialogTartalomContentsPreferencesDialogNapi cl Daily GoalPreferencesDialog,Szhatrok felismerseDetect word boundariesPreferencesDialog6Karakterszm osztsa hattalDivide character count by sixPreferencesDialogElosztDivider:PreferencesDialog DuplaDoublePreferencesDialogSzerkesztsEditingPreferencesDialogltalnosGeneralPreferencesDialogCsak ikonok Icons OnlyPreferencesDialog\CSUPA NAGYBETpS SZAVAK figyelmen kvl hagysaIgnore words in UPPERCASEPreferencesDialogdSzmokat tartalmaz szavak figyelmen kvl hagysaIgnore words with numbersPreferencesDialog NyelvLanguagePreferencesDialog Perc:Minutes:PreferencesDialogLefel mozgats Move DownPreferencesDialog Felfel mozgatsMove UpPreferencesDialog NincsNonePreferencesDialoghEgy vagy tbb gyorsgomb tkzik. Szeretn folytatni?7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialog Egy oldal mrete Page SizePreferencesDialogOldalak szma Page countPreferencesDialog Bekezdsek szmaParagraph countPreferencesDialogBekezds: Paragraphs:PreferencesDialogSajt sztrPersonal DictionaryPreferencesDialogBelltsok PreferencesPreferencesDialog KrdsQuestionPreferencesDialogBA kurzor pozcijnak megjegyzseRemember cursor positionPreferencesDialogEltvoltsRemovePreferencesDialog MentsSavingPreferencesDialogJelenetekScenesPreferencesDialog&Sztr kivlasztsaSelect DictionaryPreferencesDialogGyorsgombShortcutPreferencesDialogGyorsgombok ShortcutsPreferencesDialogSzimplaSinglePreferencesDialog.Intelligens idzQjelek: Smart quotes:PreferencesDialog8Betqtpusok kpnek simtsa Smooth fontsPreferencesDialogElnzstSorryPreferencesDialog*Helyesrs-ellenQrzsSpell CheckingPreferencesDialogStatisztika StatisticsPreferencesDialog StlusStylePreferencesDialog0Szveg az ikonok mellettText Alongside IconsPreferencesDialogCsak szveg Text OnlyPreferencesDialog Szveg helyzete:Text Position:PreferencesDialog,Szveg az ikonok alattText Under IconsPreferencesDialogRNincs hasznlhat sztr a csomagfjlban.1The archive does not contain a usable dictionary.PreferencesDialog^"%1" sztr mr ltezik. Le szeretnd cserlni?>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialogEszkzsvToolbarPreferencesDialogrgphangokTypewriter soundsPreferencesDialog@Nem sikerlt '%1' fjl bezrsa.Unable to close file '%1'.PreferencesDialogJNem sikerlt a csomagfjl megnyitsa.Unable to open archive.PreferencesDialogDNem sikerlt '%1' fjl megnyitsa.Unable to open file '%1'.PreferencesDialogbNem sikerlt a csomagfjl metaadatainak olvassa. Unable to read archive metadata.PreferencesDialog0Szszmlls algoritmusaWord Count AlgorithmPreferencesDialogSzavak szma Word countPreferencesDialogSz:Words:PreferencesDialog0Nem tmogatott RTF fjl.Not a supported RTF file.Reader@Nem sikerlt '%1' fjl bezrsa.Unable to close file '%1'.ReaderJNem sikerlt a csomagfjl megnyitsa.Unable to open archive.ReaderDNem sikerlt '%1' fjl megnyitsa.Unable to open file '%1'.ReaderCtrl+Shift+LeCtrl+Shift+Down SceneListCtrl+Shift+Fel Ctrl+Shift+Up SceneList SzqrQFilter SceneListFJelenetek listjnak elrejtse (%1)Hide scene list (%1) SceneList4Jelenetek mozgatsa lefelMove Scenes Down SceneList6Jelenetek mozgatsa felfelMove Scenes Up SceneList>Jelenek listjnak tmretezseResize scene list SceneListShift+F4Shift+F4 SceneListDJelenetek listjnak mutatsa (%1)Show scene list (%1) SceneList&Jelenetek tvltsaToggle Scene List SceneListAlaprtelmezettDefaultSession&Kezels... &Manage...SessionManager &j...&New...SessionManagerKlnozsCloneSessionManager(Munkamenet klnozsa Clone SessionSessionManagerCtri+Shift+M Ctrl+Shift+MSessionManagerCtrl+Shift+N Ctrl+Shift+NSessionManager TrlsDeleteSessionManagerBTrljk a kijellt munkamenetet?Delete selected session?SessionManager*Munkamenetek kezelseManage SessionsSessionManagerjNewSessionManagerj munkamenet New SessionSessionManager KrdsQuestionSessionManagertnevezsRenameSessionManager*Munkamenet tnevezseRename SessionSessionManagerMunkam&enetek S&essionsSessionManager Munkamenet neve: Session name:SessionManagerElnzstSorrySessionManager Vlts Switch ToSessionManager^A megadott munkamenet-nv mr hasznlatban van.-The requested session name is already in use.SessionManager TrlsClear ShortcutEdit>Visszallts alaprtelmezettreReset to Default ShortcutEditGyorsgomb: Shortcut: ShortcutEditKrlek vrj Please Wait SmartQuote*IdzQjelek cserje...Replacing quotation marks... SmartQuote&Hozzads&Add SpellChecker&Vltoztats&Change SpellChecker.&Figyelmen kvl hagys&Ignore SpellChecker&sszes vltoztatsa C&hange All SpellChecker MgsemCancel SpellChecker"Vltoztats erre: Change to: SpellChecker*Helyesrs-ellenQrzsCheck Spelling SpellChecker2Helyesrs ellenQrzse...Checking spelling... SpellChecker>&sszes figyelmen kvl hagysa I&gnore All SpellChecker$Nincs a sztrban:Not in dictionary: SpellCheckerKrlek, vrj Please wait SpellCheckerJA helyesrs-ellenQrzs befejezQdtt.Spell check complete. SpellChecker Minden szimblum All symbols SymbolsDialogRszletekDetails SymbolsDialogBeszrsInsert SymbolsDialogNv:Name: SymbolsDialog6Nemrg hasznlt szimblumokRecently used symbols SymbolsDialogSzimblumokSymbols SymbolsDialog TmbkBlocks SymbolsModelSzkriptekScripts SymbolsModelNvtelen %1 Untitled %1Theme pixel pixels ThemeDialog1.5 Sor 1.5 Lines ThemeDialog Httr Background ThemeDialog Kzpre igaztvaCentered ThemeDialog Szn:Color: ThemeDialog DuplaDouble ThemeDialogBetqtpus:Font: ThemeDialog ElQtr Foreground ThemeDialogKp:Image: ThemeDialog<ElsQ sor bekezdssel indtsa:Indent First Line: ThemeDialogBalLeft ThemeDialogSorkzk Line Spacing ThemeDialogKlsQ marg:Margin: ThemeDialog"Helyesrsi hiba: Misspelled: ThemeDialogTma mdostsa Modify Theme ThemeDialogNv:Name: ThemeDialogNincs kpNo Image ThemeDialogttetszQsgOpacity ThemeDialogBelsQ marg:Padding: ThemeDialogBekezdskzkParagraph Spacing ThemeDialog Pixelek felette: Pixels Above: ThemeDialogPixelek alatta: Pixels Below: ThemeDialogHelyzetPosition ThemeDialogArnyos Proportional ThemeDialogEltvoltsRemove ThemeDialogJobbRight ThemeDialogLekerekts: Rounding: ThemeDialogKicsinytveScaled ThemeDialogSzimplaSingle ThemeDialog Mret:Size: ThemeDialogHelykzlsSpacings ThemeDialogNyjtva Stretched ThemeDialog SzvegText ThemeDialog,rvztqrQ tkrfrgp+The quick brown fox jumps over the lazy dog ThemeDialogMozaikozvaTiled ThemeDialog Tpus:Type: ThemeDialogNagytvaZoomed ThemeDialogtIlyen nevq tma mr ltezik. Krlek, adj meg egy j nevet:?A theme already exists with that name. Please enter a new name: ThemeManagerHozzadsAdd ThemeManagerBezrsClose ThemeManagerExportlsExport ThemeManager Tma exportlsa Export Theme ThemeManagerImportlsImport ThemeManager Tma importlsa Import Theme ThemeManagerMdostsModify ThemeManager KrdsQuestion ThemeManagerEltvoltsRemove ThemeManager4Trljk a kijellt tmt?Remove selected theme? ThemeManagerElnzstSorry ThemeManager TmkThemes ThemeManager,Tmk (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManagerTmk (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer4<b>Karakter:</b> %L1 / %L2Characters: %L1 / %L2Timer"<b>Oldal:</b> %L1Pages: %L1Timer(<b>Bekezds:</b> %L1Paragraphs: %L1Timer<b>Sz:</b> %L1Words: %L1TimerFigyelmeztetsAlarmTimerIdQ:Delay:Timer TrlsDeleteTimer,Trljk a a stoppert? Delete timer?TimerSzerkesztsEditTimerHH:mm:ssHH:mm:ssTimerEmlkeztetQ:Memo:Timer KrdsQuestionTimerVisszafel Set DelayTimerAdott idQbenSet TimeTimerIdQpont:Time:Timer Tpus:Type:TimerHH:mm:ssHH:mm:ss TimerDisplay(Nincsen fut stopperNo timers running TimerDisplay%1 - %2%1 - %2 TimerManager+HH:mm:ss +HH:mm:ss TimerManagerLFlbehagyod a stopperek szerkesztst?Cancel editing timers? TimerManagerjNew TimerManager KrdsQuestion TimerManagerLegutbbiakRecent TimerManagerStopperekTimers TimerManager8A fjl vratlanul vget rt.!Unexpectedly reached end of file. Tokenizer&%1 (Csak olvashat)%1 (Read-Only)Window A napi cl %1%-a%1% of daily goalWindow&Nvjegy&AboutWindow&Vastag&BoldWindowBe&zrs&CloseWindow&Msols&CopyWindow(Behzs &cskkentse&Decrease IndentWindow&Szerkeszts&EditWindow &Fjl&FileWindow&Keress...&Find...Window Teljes &kpernyQ &FullscreenWindow&Segtsg&HelpWindow &DQlt&ItalicWindow&j&NewWindow&Kikapcsols&OffWindowM&egnyits...&Open...Window&Bekezds &ParagraphWindow&Beilleszts&PasteWindow&Belltsok...&Preferences...Window&Nyomtats... &Print...Window&Kilps&QuitWindow &jra&RedoWindow&tnevezs... &Rename...Window&Csere... &Replace...Window&Ments&SaveWindow&Belltsok &SettingsWindow&Helyesrs... &Spelling...WindowA&ls index &SubscriptWindow&Tmk... &Themes...Window&Hrom sor &Three LinesWindow&Stopperek... &Timers...Window&Eszkzk&ToolsWindow&Alhzott &UnderlineWindow&Visszavons&UndoWindowZ'%1' jabb, mint a gyorsttrazott msolata.#'%1' is newer than the cached copy.Window(Nvtelen %1) (Untitled %1)WindowZEgy egyszerq teljeskpernyQs szvegszerkesztQ"A simple fullscreen word processorWindowA &Qt-rl About &QtWindow"A FocusWriter-rQlAbout FocusWriterWindow"&Kzpre igazts Align &CenterWindow&SorkizrtAlign &JustifyWindow&Balra igazts Align &LeftWindow &Jobbra igazts Align &RightWindow*Alkalmazs &nyelve...Application &Language...Window&Karakter: %L1 / %L2Characters: %L1 / %L2WindowfSzerzQi jogvdelem alatt &copy; 2008-%1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindow Ctrl+<Ctrl+<Window Ctrl+>Ctrl+>Window Ctrl+JCtrl+JWindow Ctrl+KCtrl+KWindow Ctrl+MCtrl+MWindow Ctrl+QCtrl+QWindow Ctrl+RCtrl+RWindowCtrl+Shift+A Ctrl+Shift+AWindowCtrl+Shift+V Ctrl+Shift+VWindow Ctrl+^Ctrl+^Window Ctrl+_Ctrl+_Window Ctrl+{Ctrl+{Window Ctrl+|Ctrl+|Window Ctrl+}Ctrl+}Window&KivgsCu&tWindow<A vsz-gyorsttr nem rhat. Emergency cache is not writable.WindowEscEscWindow Fkuszlt szveg F&ocused TextWindowF11F11WindowF7F7Window&K&vetkezQ keresse Find &NextWindow&ElQzQ keresseFind Pre&viousWindowFo&rmzsFo&rmatWindow&Fkusz kikapcsolsa Focus OffWindow&Egy sor fkuszlsaFocus One LineWindow(Bekezds fkuszlsaFocus ParagraphWindow*Hrom sor fkuszlsaFocus Three LinesWindowFocusWriter FocusWriterWindowJA FocusWriter hibsan lett lelltva.&FocusWriter was not shut down cleanly.Window"Behzs &nvelseI&ncrease IndentWindow(Bal&rl jobbra blokkLe&ft to Right BlockWindow*Belltsok betltseLoading settingsWindow Hangok betltseLoading soundsWindowTmk betltseLoading themesWindowM&inimalizls M&inimizeWindow*Munkamenetek kezelseManage SessionsWindowj munkamenet New SessionWindowEgy &Sor One &LineWindowFjl megnyitsa Open FileWindow%1 megnyitsa Opening %1Window4Fellrjuk az jabb fjlt?Overwrite newer file?WindowOldal: %L1 Pages: %L1WindowBekezds: %L1Paragraphs: %L1Window4Beilleszts &FormzatlanulPaste &UnformattedWindowtKrem gyQzQdjn meg rla, hogy az SDL_mixer teleptve van.-Please make sure that SDL_mixer is installed.Window KrdsQuestionWindowT <a href=%1>GPL 3</a> licensz alatt kiadva/Released under the GPL 3 licenseWindowjratlts &Reloa&dWindowbVisszalltsuk az adatokat a vsz-gyorsttrbl?!Restore from the emergency cache?Window(Jobbr&l balra blokkRi&ght to Left BlockWindow&Szimblumok S&ymbols...Window$Ments m&sknt... Save &As...Window&sszes mentse Save A&llWindow4Mentsk a vltoztatsokat? Save changes?Window$&sszes kijellse Select &AllWindow*&Jelenet kivlasztsa Select &SceneWindow*&Men ikonok mutatsaShow &Menu IconsWindow&&Eszkztr mutatsa Show &ToolbarWindow.Intelligens &idzQjelek Smart &QuotesWindowHNhny fjlt nem sikerlt megnyitni.Some files could not be opened.Window`Nhny fjl csak olvashat mdon lett megnyitva.!Some files were opened Read-Only.WindowtNhny fjltpus nem tmogatott s nem kerlt megnyitsra.4Some files were unsupported and could not be opened.Window&thzottStri&kethroughWindow&FelsQ index Sup&erscriptWindow8Vlts a(z) %1 dokumentumraSwitch to Document %1Window6Vlts az elsQ dokumentumraSwitch to First DocumentWindow:Vlts az utols dokumentumraSwitch to Last DocumentWindow>Vlts a kvetkezQ dokumentumraSwitch to Next DocumentWindow8Vlts az elQzQ dokumentumraSwitch to Previous DocumentWindowDSzvegfjlok (%1);;Minden fjl (*)Text Files (%1);;All Files (*)WindowPNem sikerlt az rgp-hangok betltse.!Unable to load typewriter sounds.WindowNvtelenUntitledWindow,&Dokumentum frisstseUpdate &DocumentWindow*&Kijells frisstseUpdate &SelectionWindowZ<a href=%1>LGPL 3</a> licensz alatt hasznlva,Used under the LGPL 3 licenseWindowf <a href=%1>Oxygen</a> ikontmbl hasznl ikonokat4Uses icons from the Oxygen icon themeWindowFigyelmeztetsWarningWindowSz: %L1 Words: %L1Windowfocuswriter-1.4.5/translations/focuswriter_hu.ts000066400000000000000000002253561231434177300222600ustar00rootroot00000000000000 Alert Close (%1) Bezárás Collapse Összezárás Expand Kibontás AlertLayer Dismiss Alert Figyelmeztetés bezárása Ctrl+D Ctrl+D Document Sorry Elnézést Unable to save '%1'. Nem sikerült '%1' mentése. Save File As Mentés másként Unable to overwrite '%1'. Nem sikerült '%1' felülírása. Rename File Fájl átnevezése Unable to rename '%1'. Nem sikerült '%1' átnevezése. Reload File Fájl újratöltése Reload the file %1 from disk? %1 Fájl újratöltése a lemezről All unsaved changes will be lost. Minden el nem mentett változtatás el fog veszni Reload Újratöltés Plain Text (*.txt) Egyszerű szövegfájl (*.txt) Question Kérdés Saving as plain text will discard all formatting. Discard formatting? Egyszerű szövegként való mentés minden formázást töröl. Töröl minden formázást? OpenDocument Text (*.odt) OpenDocument Text (*.odt) Rich Text (*.rtf) Formázott szöveg (*.rtf) All Files (*) Minden fájl (*) DocumentWatcher File Changed A fálj megváltozott The file %1 was changed by another program. A(z) %1 fájl egy másik program megváltoztatta Do you want to reload the file? Újra akarja tölteni a fájlt? Reload Újratöltés Ignore Figyelmen kívül hagyás File Deleted Fájl törölve The file %1 was deleted by another program. A()z %1 fájlt egy másik program törölte Do you want to save or close the file? El szeretné menteni vagy be szeretné zárni a fájlt? FindDialog Search for: Keresés: Replace with: Csere: Ignore case Kis- és nagybetűk közötti különbség figyelmen kívül hagyása Whole words only Csak teljes szavakat Regular expressions Szabályos kifejezések Search up Keresés felfelé Search down Keresés lefelé &Find &Keresés... &Replace &Csere Replace &All Összes &cseréje Find Keresés Replace Csere Replace %n instance(s)? Kicseréljünk %n előfordulást? Question Kérdés Sorry Elnézést Phrase not found. A keresett kifejezés nem található. Highlighter Add Hozzáadás Check Spelling... Helyesírás-ellenőrzés... (No suggestions found) (Nincsenek javaslatok) ImageButton Open Image Kép megnyitása Images(%1) Képek(%1) LocaleDialog Select application language: Válaszd ki az alkalmazás nyelvét: <System Language> <A rendszer nyelve> Note Megjegyzés Please restart this application for the change in language to take effect. Indítsd újra az alkalmazást, hogy a változtatások érvénybe lépjenek. PreferencesDialog Preferences Beállítások General Általános Statistics Statisztika Toolbar Eszközsáv Spell Checking Helyesírás-ellenőrzés Select Dictionary Szótár kiválasztása Sorry Elnézést Unable to open archive. Nem sikerült a csomagfájl megnyitása. Unable to read archive metadata. Nem sikerült a csomagfájl metaadatainak olvasása. The archive does not contain a usable dictionary. Nincs használható szótár a csomagfájlban. Unable to open file '%1'. Nem sikerült '%1' fájl megnyitása. Unable to close file '%1'. Nem sikerült '%1' fájl bezárása. Question Kérdés Shortcuts Gyorsgombok One or more shortcuts conflict. Do you wish to proceed? Egy vagy több gyorsgomb ütközik. Szeretné folytatni? The dictionary "%1" already exists. Do you want to replace it? "%1" szótár már létezik. Le szeretnéd cserélni? Daily Goal Napi cél None Nincs Minutes: Perc: Words: Szó: Editing Szerkesztés Always vertically center A kurzor maradjon függőlegesen középen Block insertion cursor Blokkszerű kurzor Smooth fonts Betűtípusok képének simítása Typewriter sounds Írógéphangok Smart quotes: Intelligens idézőjelek: Double Dupla Single Szimpla Scenes Jelenetek Divider: Elosztó Saving Mentés Automatically save changes A változtatások automatikus mentése Remember cursor position A kurzor pozíciójának megjegyzése Contents Tartalom Word count Szavak száma Page count Oldalak száma Paragraph count Bekezdések száma Character count Karakterek száma Page Size Egy oldal mérete Characters: Karakter: Paragraphs: Bekezdés: Word Count Algorithm Szószámlálás algoritmusa Detect word boundaries Szóhatárok felismerése Divide character count by six Karakterszám osztása hattal Style Stílus Icons Only Csak ikonok Text Only Csak szöveg Text Alongside Icons Szöveg az ikonok mellett Text Under Icons Szöveg az ikonok alatt Text Position: Szöveg helyzete: Actions Akciók Move Up Felfelé mozgatás Move Down Lefelé mozgatás Add Separator Elválasztó hozzáadása Command Parancs Shortcut Gyorsgomb Action Akció Check spelling as you type Helyesírás-ellenőrzés gépelés közben Ignore words in UPPERCASE CSUPA NAGYBETŰS SZAVAK figyelmen kívül hagyása Ignore words with numbers Számokat tartalmazó szavak figyelmen kívül hagyása Language Nyelv Add Hozzáadás Remove Eltávolítás Personal Dictionary Saját szótár Reader Not a supported RTF file. Nem támogatott RTF fájl. Unable to open archive. Nem sikerült a csomagfájl megnyitása. Unable to open file '%1'. Nem sikerült '%1' fájl megnyitása. Unable to close file '%1'. Nem sikerült '%1' fájl bezárása. SceneList Ctrl+Shift+Down Ctrl+Shift+Le Move Scenes Up Jelenetek mozgatása felfelé Ctrl+Shift+Up Ctrl+Shift+Fel Toggle Scene List Jelenetek átváltása Shift+F4 Shift+F4 Show scene list (%1) Jelenetek listájának mutatása (%1) Hide scene list (%1) Jelenetek listájának elrejtése (%1) Filter Szűrő Move Scenes Down Jelenetek mozgatása lefelé Resize scene list Jelenek listájának átméretezése Session Default Alapértelmezett SessionManager Manage Sessions Munkamenetek kezelése S&essions Munkam&enetek New Új Rename Átnevezés Clone Klónozás Delete Törlés Switch To Váltás New Session Új munkamenet Clone Session Munkamenet klónozása Rename Session Munkamenet átnevezése Question Kérdés Delete selected session? Töröljük a kijelölt munkamenetet? Session name: Munkamenet neve: Sorry Elnézést The requested session name is already in use. A megadott munkamenet-név már használatban van. &New... &Új... Ctrl+Shift+N Ctrl+Shift+N &Manage... &Kezelés... Ctrl+Shift+M Ctri+Shift+M ShortcutEdit Clear Törlés Reset to Default Visszaállítás alapértelmezettre Shortcut: Gyorsgomb: SmartQuote Replacing quotation marks... Idézőjelek cseréje... Please Wait Kérlek várj SpellChecker Check Spelling Helyesírás-ellenőrzés &Add &Hozzáadás &Ignore &Figyelmen kívül hagyás I&gnore All &Összes figyelmen kívül hagyása &Change &Változtatás C&hange All Összes változtatása Not in dictionary: Nincs a szótárban: Change to: Változtatás erre: Checking spelling... Helyesírás ellenőrzése... Cancel Mégsem Please wait Kérlek, várj Spell check complete. A helyesírás-ellenőrzés befejeződött. SymbolsDialog Symbols Szimbólumok Recently used symbols Nemrég használt szimbólumok All symbols Minden szimbólum Details Részletek Name: Név: Insert Beszúrás SymbolsModel Blocks Tömbök Scripts Szkriptek Theme Untitled %1 Névtelen %1 ThemeDialog Modify Theme Téma módosítása Name: Név: Background Háttér No Image Nincs kép Tiled Mozaikozva Centered Középre igazítva Stretched Nyújtva Scaled Kicsinyítve Zoomed Nagyítva Remove Eltávolítás Type: Típus: Color: Szín: Image: Kép: Foreground Előtér Opacity Áttetszőség pixels pixel Left Bal Right Jobb Position Helyzet Size: Méret: Rounding: Lekerekítés: Margin: Külső margó: Padding: Belső margó: Text Szöveg Font: Betűtípus: Misspelled: Helyesírási hiba: Spacings Helyközölés Line Spacing Sorközök Single Szimpla 1.5 Lines 1.5 Sor Double Dupla Proportional Arányos Paragraph Spacing Bekezdésközök Indent First Line: Első sor bekezdéssel indítása: Pixels Above: Pixelek felette: Pixels Below: Pixelek alatta: The quick brown fox jumps over the lazy dog Árvíztűrő tükörfúrógép ThemeManager Themes Témák Add Hozzáadás Modify Módosítás Remove Eltávolítás Import Importálás Export Exportálás Close Bezárás Question Kérdés Remove selected theme? Töröljük a kijelölt témát? Import Theme Téma importálása Themes (*.fwtz *.theme) Témák (*.fwtz *.theme) Themes (*.fwtz) Témák (*.fwtz) Sorry Elnézést A theme already exists with that name. Please enter a new name: Ilyen nevű téma már létezik. Kérlek, adj meg egy új nevet: Export Theme Téma exportálása Timer <b>%1</b> - %2 <b>%1</b> - %2 Question Kérdés Delete timer? Töröljük a a stoppert? <b>Words:</b> %L1 <b>Szó:</b> %L1 <b>Pages:</b> %L1 <b>Oldal:</b> %L1 <b>Paragraphs:</b> %L1 <b>Bekezdés:</b> %L1 <b>Characters:</b> %L1 / %L2 <b>Karakter:</b> %L1 / %L2 Set Delay Visszafelé Set Time Adott időben Delay: Idő: Time: Időpont: HH:mm:ss HH:mm:ss Alarm Figyelmeztetés Type: Típus: Memo: Emlékeztető: Edit Szerkesztés Delete Törlés TimerDisplay HH:mm:ss HH:mm:ss No timers running Nincsen futó stopper TimerManager Timers Stopperek New Új Recent Legutóbbiak Question Kérdés Cancel editing timers? Félbehagyod a stopperek szerkesztését? +HH:mm:ss +HH:mm:ss %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. A fájl váratlanul véget ért. Window Loading themes Témák betöltése Loading sounds Hangok betöltése Untitled Névtelen Open File Fájl megnyitása About FocusWriter A FocusWriter-ről FocusWriter FocusWriter A simple fullscreen word processor Egy egyszerű teljesképernyős szövegszerkesztő Copyright &copy; 2008-%1 Graeme Gott Szerzői jogvédelem alatt &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license <a href=%1>GPL 3</a> licensz alatt kiadva Uses icons from the <a href=%1>Oxygen</a> icon theme <a href=%1>Oxygen</a> ikontémából használ ikonokat Used under the <a href=%1>LGPL 3</a> license <a href=%1>LGPL 3</a> licensz alatt használva Characters: %L1 / %L2 Karakter: %L1 / %L2 Pages: %L1 Oldal: %L1 Paragraphs: %L1 Bekezdés: %L1 Words: %L1 Szó: %L1 %1% of daily goal A napi cél %1%-a Opening %1 %1 megnyitása Question Kérdés Save changes? Mentsük a változtatásokat? (Untitled %1) (Névtelen %1) Switch to Next Document Váltás a következő dokumentumra Switch to Previous Document Váltás az előző dokumentumra Switch to First Document Váltás az első dokumentumra Switch to Last Document Váltás az utolsó dokumentumra Switch to Document %1 Váltás a(z) %1 dokumentumra Loading settings Beállítások betöltése Emergency cache is not writable. A vész-gyorsítótár nem írható. Warning Figyelmeztetés FocusWriter was not shut down cleanly. A FocusWriter hibásan lett leállítva. Restore from the emergency cache? Visszaállítsuk az adatokat a vész-gyorsítótárból? Some files could not be opened. Néhány fájlt nem sikerült megnyitni. Some files were opened Read-Only. Néhány fájl csak olvasható módon lett megnyitva. Text Files (%1);;All Files (*) Szövegfájlok (%1);;Minden fájl (*) '%1' is newer than the cached copy. '%1' újabb, mint a gyorsítótárazott másolata. Overwrite newer file? Felülírjuk az újabb fájlt? Unable to load typewriter sounds. Nem sikerült az írógép-hangok betöltése. Please make sure that SDL_mixer is installed. Kérem győződjön meg róla, hogy az SDL_mixer telepítve van. %1 (Read-Only) %1 (Csak olvasható) &File &Fájl &New &Új &Open... M&egnyitás... Reloa&d Újratöltés & &Save &Mentés Save &As... Mentés m&ásként... &Rename... Á&tnevezés... Save A&ll &Összes mentése Manage Sessions Munkamenetek kezelése New Session Új munkamenet &Print... &Nyomtatás... &Close Be&zárás &Quit &Kilépés Ctrl+Q Ctrl+Q &Edit &Szerkesztés &Undo &Visszavonás &Redo &Újra Cu&t &Kivágás &Copy &Másolás &Paste &Beillesztés Paste &Unformatted Beillesztés &Formázatlanul Ctrl+Shift+V Ctrl+Shift+V Select &All &Összes kijelölése Select &Scene &Jelenet kiválasztása Ctrl+Shift+A Ctrl+Shift+A Fo&rmat Fo&rmázás &Bold &Vastag &Italic &Dőlt &Underline &Aláhúzott Stri&kethrough &Áthúzott Ctrl+K Ctrl+K Sup&erscript &Felső index Ctrl+^ Ctrl+^ &Subscript A&lsó index Ctrl+_ Ctrl+_ Align &Left &Balra igazítás Ctrl+{ Ctrl+{ Align &Center &Középre igazítás Ctrl+| Ctrl+| Align &Right &Jobbra igazítás Ctrl+} Ctrl+} Align &Justify &Sorkizárt Ctrl+J Ctrl+J &Decrease Indent Behúzás &csökkentése Ctrl+< Ctrl+< I&ncrease Indent Behúzás &növelése Ctrl+> Ctrl+> Le&ft to Right Block Bal&ról jobbra blokk Ri&ght to Left Block Jobbr&ól balra blokk &Tools &Eszközök &Find... &Keresés... Find &Next K&övetkező keresése Find Pre&vious &Előző keresése &Replace... &Csere... Ctrl+R Ctrl+R Smart &Quotes Intelligens &idézőjelek Update &Document &Dokumentum frissítése Update &Selection &Kijelölés frissítése &Spelling... &Helyesírás... F7 F7 &Timers... &Stopperek... S&ymbols... &Szimbólumok &Settings &Beállítások Show &Toolbar &Eszköztár mutatása Show &Menu Icons &Menü ikonok mutatása F&ocused Text Fókuszált szöveg &Fullscreen Teljes &képernyő F11 F11 Esc Esc M&inimize M&inimalizálás Ctrl+M Ctrl+M &Themes... &Témák... &Preferences... &Beállítások... Focus Off Fókusz kikapcsolása Focus One Line Egy sor fókuszálása Focus Three Lines Három sor fókuszálása &Paragraph &Bekezdés Focus Paragraph Bekezdés fókuszálása &Help &Segítség Application &Language... Alkalmazás &nyelve... Some files were unsupported and could not be opened. Néhány fájltípus nem támogatott és nem került megnyitásra. &Off &Kikapcsolás One &Line Egy &Sor &Three Lines &Három sor &About &Névjegy About &Qt A &Qt-ról focuswriter-1.4.5/translations/focuswriter_id.qm000066400000000000000000000751741231434177300222300ustar00rootroot00000000000000T.TJ)22NZNYGD +9VEVC?*$L[*yL*M/*%MY*D :*0M+O+O+P+įR@H(FCJ+0J6E,7J6AKQMez8P_ S*GkT6>T;X=Z>oZiZiZiZi/ZiCZ% [?[H?\@\Hj\*I_ >Qc4UG{ O/Ϩ%']3]aJ~f.0n$*0n'DP2;IqDWthm^kefX["mTS^v8"c!S ~P^aqhef\zXtA:J-L*6LTOf3R1\<?.K c^"V'aEO~d_^(] , 4U 904^B[w(gN%N%>;2SC<JtkrDM-jdݲ ]j&c}sQc@@VmUK/Z2588Ng:UIIKJIGZ[+&g;lNm&\zC>C1I.<flT>̊|49O$O(޷0!:!W*ja+z_< u R7lCm Yp7xcL[<;^1f^?!dw32IL9} G9~Nf/`c|>N|wp }le4jP\Sc%% t' '>C-C_B \~O >d% 4 "1 %^4 Y  v Y zN z .3# JQ= W.C W_ 70 / ·H .^ P Ń +I] :j ;fe1 d8M eE 2k q^! t+{ [ ʀs5 ˔Rf ˼C5 z_` BiE f  V2 c6 ^) N* # M L.+ f(# iqnC w97d xj4 {"ueo Na k E ʫ ʫ ʫ ʫ. ʫB ʫG ʫJU ʫb?  A); pUl 9 E_ cG9 cH >cI OK 6h >Qv J= Z$8W eH iN!` tfd u /J sP @t C=#  $ ' t? 1W \ sM Dl [ 8j DYX/ DY, DY, DZXn ^3W noF uu {N& Pn Iq < ޘ Zc RnE:NltrVAce )d]Lbv4iTxj*A L9*W:e!iTtsSoI)'-z C~"( TinzTutup (%1) Close (%1)Alert TutupCollapseAlertBukaExpandAlert Ctrl+DCtrl+D AlertLayer(Hilangkan Peringatan Dismiss Alert AlertLayerSemua File (*) All Files (*)Document`Semua perubahan yang tidak disimpan akan hilang.!All unsaved changes will be lost.Document2Teks OpenDocument (*.odt)OpenDocument Text (*.odt)Document$Teks Biasa (*.txt)Plain Text (*.txt)DocumentPertanyaanQuestionDocumentMuat ulangReloadDocumentMuat Ulang File Reload FileDocumentMuat file %1?Reload the file %1 from disk?DocumentUbah Nama File Rename FileDocument"Rich Text (*.rtf)Rich Text (*.rtf)Document&Simpan File Sebagai Save File AsDocumentMenyimpan sebagai teks polos akan membuang semua format. Buang format?ESaving as plain text will discard all formatting. Discard formatting?DocumentMaafSorryDocument.Gagal memperbarui '%1'.Unable to overwrite '%1'.Document2Gagal mengubah nama '%1'.Unable to rename '%1'.Document*Gagal menyimpan '%1'.Unable to save '%1'.DocumentDApakah Anda ingin memuat file ini?Do you want to reload the file?DocumentWatcherdApakah Anda ingin menyimpan atau menutup file ini?&Do you want to save or close the file?DocumentWatcherFile Berubah File ChangedDocumentWatcherFile Dihapus File DeletedDocumentWatcherAbaikanIgnoreDocumentWatcherMuat ulangReloadDocumentWatcherDFile %1 berubah oleh program lain.+The file %1 was changed by another program.DocumentWatcherDFile %1 dihapus oleh program lain.+The file %1 was deleted by another program.DocumentWatcher&Temukan...&Find FindDialog&Gantikan...&Replace FindDialogTemukanFind FindDialogFAbaikan jenis huruf (kapital/kecil) Ignore case FindDialog,Frase tidak ditemukan.Phrase not found. FindDialogPertanyaanQuestion FindDialog RegExRegular expressions FindDialogGantikanReplace FindDialog(Gantikan %n lainnya?Replace %n instance(s)? FindDialogGantikan &Semua Replace &All FindDialog Gantikan dengan: Replace with: FindDialogCari ke bawah Search down FindDialog Cari: Search for: FindDialogCari ke atas Search up FindDialogMaafSorry FindDialog,Hanya keseluruhan kataWhole words only FindDialog.(Saran tidak ditemukan)(No suggestions found) HighlighterTambahkanAdd HighlighterCek Ejaan...Check Spelling... HighlighterGambar(%1) Images(%1) ImageButtonBuka Gambar Open Image ImageButton"<System Language> LocaleDialogCatatanNote LocaleDialogSilakan tutup dan buka kembali aplikasi ini untuk menerapkan perubahan bahasa.JPlease restart this application for the change in language to take effect. LocaleDialogPilih bahasa:Select application language: LocaleDialogTindakanActionPreferencesDialogTindakan:ActionsPreferencesDialogTambahkanAddPreferencesDialog"Tambahkan Pemisah Add SeparatorPreferencesDialog:Selalu tengah secara vertikalAlways vertically centerPreferencesDialogFMenyimpan perubahan secara otomatisAutomatically save changesPreferencesDialog&Blok kursor sisipanBlock insertion cursorPreferencesDialogJumlah karakterCharacter countPreferencesDialogKarakter: Characters:PreferencesDialog8Cek ejaan saat Anda mengetikCheck spelling as you typePreferencesDialogPerintahCommandPreferencesDialogIsiContentsPreferencesDialogTarget Harian Daily GoalPreferencesDialog0Deteksi batas-batas kataDetect word boundariesPreferencesDialog@Bagikan jumlah karakter dengan 6Divide character count by sixPreferencesDialogPembagi:Divider:PreferencesDialog GandaDoublePreferencesDialogMengeditEditingPreferencesDialogUmumGeneralPreferencesDialogIkon saja Icons OnlyPreferencesDialog@Abaikan kata dalam huruf KAPITALIgnore words in UPPERCASEPreferencesDialog2Abaikan kata dengan angkaIgnore words with numbersPreferencesDialog BahasaLanguagePreferencesDialog Menit:Minutes:PreferencesDialog Turun Move DownPreferencesDialogNaikMove UpPreferencesDialogTak satupunNonePreferencesDialogSatu atau lebih shortcuts beradu. Apakah Anda ingin melanjutkan?7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialogUkuran Halaman Page SizePreferencesDialogJumlah halaman Page countPreferencesDialogJumlah paragrafParagraph countPreferencesDialogParagraf: Paragraphs:PreferencesDialogKamus PribadiPersonal DictionaryPreferencesDialogPreferensi PreferencesPreferencesDialogPertanyaanQuestionPreferencesDialog&Ingat posisi kursorRemember cursor positionPreferencesDialog HapusRemovePreferencesDialogMenyimpanSavingPreferencesDialogSuasanaScenesPreferencesDialogPilih KamusSelect DictionaryPreferencesDialogShortcutShortcutPreferencesDialogShortcuts ShortcutsPreferencesDialogTunggalSinglePreferencesDialogKutipan cerdas: Smart quotes:PreferencesDialogFont halus Smooth fontsPreferencesDialogMaafSorryPreferencesDialog"Pemeriksaan EjaanSpell CheckingPreferencesDialogStatistik StatisticsPreferencesDialogGayaStylePreferencesDialogTeks dan IkonText Alongside IconsPreferencesDialogTeks saja Text OnlyPreferencesDialogPosisi Teks:Text Position:PreferencesDialog$Teks di bawah IkonText Under IconsPreferencesDialoglArsip ini tidak memiliki kamus yang bisa dipergunakan.1The archive does not contain a usable dictionary.PreferencesDialogbKamus "%1" sudah ada. Anda ingin menggantikannya?>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialogBilah PeralatanToolbarPreferencesDialog"Suara Mesin KetikTypewriter soundsPreferencesDialog0Gagal menutup file '%1'.Unable to close file '%1'.PreferencesDialog(Gagal membuka arsip.Unable to open archive.PreferencesDialog0Gagal membuka file '%1'.Unable to open file '%1'.PreferencesDialog:Gagal membaca metadata arsip. Unable to read archive metadata.PreferencesDialog4Algoritma Penjumlahan KataWord Count AlgorithmPreferencesDialogJumlah kata Word countPreferencesDialog Kata:Words:PreferencesDialog8Bukan file RTF yng didukung.Not a supported RTF file.Reader0Gagal menutup file '%1'.Unable to close file '%1'.Reader(Gagal membuka arsip.Unable to open archive.Reader0Gagal membuka file '%1'.Unable to open file '%1'.ReaderCtrl+Shift+DownCtrl+Shift+Down SceneListCtrl+Shift+Up Ctrl+Shift+Up SceneList FilterFilter SceneList8Sembunyian list suasana (%1)Hide scene list (%1) SceneList Turunkan SuasanaMove Scenes Down SceneListNaikkan SuasanaMove Scenes Up SceneList0Ubah ukuran list suasanaResize scene list SceneListShift+F4Shift+F4 SceneList6Tampilkan list suasana (%1)Show scene list (%1) SceneList&Toggle List SuasanaToggle Scene List SceneListSetelan StandarDefaultSession&Kelola... &Manage...SessionManager&Baru...&New...SessionManagerKlonCloneSessionManagerKlon Sesi Clone SessionSessionManagerCtrl+Shift+M Ctrl+Shift+MSessionManagerCtrl+Shift+N Ctrl+Shift+NSessionManager HapusDeleteSessionManager(Hapus sesi terpilih?Delete selected session?SessionManagerKelola SesiManage SessionsSessionManagerBaruNewSessionManagerSesi Baru New SessionSessionManagerPertanyaanQuestionSessionManagerUbah NamaRenameSessionManagerUbah Nama SesiRename SessionSessionManager S&esi S&essionsSessionManagerJudul sesi: Session name:SessionManagerMaafSorrySessionManagerPindah Ke Switch ToSessionManager>Nama sesi sudah pernah dipakai.-The requested session name is already in use.SessionManagerBersihkanClear ShortcutEditSetelan StandarReset to Default ShortcutEditShortcut: Shortcut: ShortcutEditMohon Tunggu Please Wait SmartQuote0Mengganti tanda kutip...Replacing quotation marks... SmartQuote&Tambahkan&Add SpellChecker &Ubah&Change SpellChecker&Abaikan&Ignore SpellCheckerU&bah Semua C&hange All SpellCheckerBatalkanCancel SpellCheckerUbah menjadi: Change to: SpellCheckerMemeriksa EjaanCheck Spelling SpellChecker$Memeriksa ejaan...Checking spelling... SpellCheckerAbaikan &Semua I&gnore All SpellChecker(Tak ada dalam kamus:Not in dictionary: SpellCheckerSilakan tunggu Please wait SpellChecker0Ejaan selesai diperiksa.Spell check complete. SpellCheckerSemua simbol All symbols SymbolsDialogRincianDetails SymbolsDialogSisipkanInsert SymbolsDialog Nama:Name: SymbolsDialog&Simbol baru dipakaiRecently used symbols SymbolsDialog SimbolSymbols SymbolsDialogBlokBlocks SymbolsModel NaskahScripts SymbolsModelTanpa Judul %1 Untitled %1Theme piksel pixels ThemeDialog1.5 Baris 1.5 Lines ThemeDialogLatarbelakang Background ThemeDialogTerpusatCentered ThemeDialog Warna:Color: ThemeDialog GandaDouble ThemeDialog Font:Font: ThemeDialogLatardepan Foreground ThemeDialogGambar:Image: ThemeDialog*Indent Baris Pertama:Indent First Line: ThemeDialogKiriLeft ThemeDialogJarak Baris Line Spacing ThemeDialogMarjin luar:Margin: ThemeDialogKeliru eja: Misspelled: ThemeDialogAtur Tema Modify Theme ThemeDialog Nama:Name: ThemeDialogTanpa gambarNo Image ThemeDialogTransparansiOpacity ThemeDialogMarjin dalam:Padding: ThemeDialogJarak ParagrafParagraph Spacing ThemeDialogPiksel Di Atas: Pixels Above: ThemeDialog Piksel Di Bawah: Pixels Below: ThemeDialog PosisiPosition ThemeDialogProporsional Proportional ThemeDialog BuangRemove ThemeDialog KananRight ThemeDialogPembulatan: Rounding: ThemeDialogTerskalaScaled ThemeDialogTunggalSingle ThemeDialogUkuran:Size: ThemeDialog JarakSpacings ThemeDialogTerhampar Stretched ThemeDialogTeksText ThemeDialogVThe quick brown fox jumps over the lazy dog+The quick brown fox jumps over the lazy dog ThemeDialogBerjajarTiled ThemeDialog Tipe:Type: ThemeDialogDi-zoomZoomed ThemeDialogzSudah ada tema dengan nama tersebut. Silakan tulis nama baru:?A theme already exists with that name. Please enter a new name: ThemeManagerTambahkanAdd ThemeManager TutupClose ThemeManager EksporExport ThemeManagerEkspor Tema Export Theme ThemeManager ImporImport ThemeManagerImpor Tema Import Theme ThemeManagerAturModify ThemeManagerPertanyaanQuestion ThemeManager BuangRemove ThemeManager(Buang tema terpilih?Remove selected theme? ThemeManagerMaafSorry ThemeManagerTemaThemes ThemeManager*Tema (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManagerTema (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer4<b>Karakter:</b> %L1 / %L2Characters: %L1 / %L2Timer&<b>Halaman:</b> %L1Pages: %L1Timer(<b>Paragraf:</b> %L1Paragraphs: %L1Timer <b>Kata:</b> %L1Words: %L1Timer AlarmAlarmTimer Tunda:Delay:Timer HapusDeleteTimer*Hapus pengukur waktu? Delete timer?TimerEditEditTimerHH:mm:ssHH:mm:ssTimer Memo:Memo:TimerPertanyaanQuestionTimerAtur Penundaan Set DelayTimerAtur WaktuSet TimeTimer Waktu:Time:Timer Jenis:Type:TimerHH:mm:ssHH:mm:ss TimerDisplayLTak ada pengukur waktu yang dijalankanNo timers running TimerDisplay%1 - %2%1 - %2 TimerManager+HH:mm:ss +HH:mm:ss TimerManager4Batalkan pengaturan waktu?Cancel editing timers? TimerManagerBaruNew TimerManagerPertanyaanQuestion TimerManagerMutakhirRecent TimerManagerPengukur WaktuTimers TimerManagerBMencapai akhir file tanpa diduga.!Unexpectedly reached end of file. Tokenizer%1 (Read-Only)%1 (Read-Only)Window,%1% dari target harian%1% of daily goalWindow&Tentang&AboutWindow &Tebal&BoldWindow &Tutup&CloseWindow &Salin&CopyWindow$%Kurangi Indentasi&Decrease IndentWindow &Edit&EditWindow &File&FileWindow&Temukan...&Find...Window&Layar Penuh &FullscreenWindow&Bantuan&HelpWindow&Miring&ItalicWindow &Baru&NewWindow &Mati&OffWindow&Buka...&Open...Window&Paragraf &ParagraphWindow&Tempelkan&PasteWindow&Preferensi...&Preferences...Window&Cetak... &Print...Window&Keluar&QuitWindow &Redo&RedoWindow&Ubah Nama... &Rename...Window&Gantikan... &Replace...Window&Simpan&SaveWindow&Pengaturan &SettingsWindow%Ejaan... &Spelling...Window&Subscript &SubscriptWindow&Tema... &Themes...Window&Tiga Baris &Three LinesWindow$&Pengatur Waktu... &Timers...Window&Peralatan&ToolsWindow&Garisbawah &UnderlineWindow &Undo&UndoWindowf'%1' lebih mutakhir daripada kopian yang tersimpan.#'%1' is newer than the cached copy.Window (Tanpa Judul %1) (Untitled %1)WindowJPengolah kata selayar penuh sederhana"A simple fullscreen word processorWindowTentang &Qt About &QtWindow&Tentang FocusWriterAbout FocusWriterWindowRata &Tengah Align &CenterWindowRata &SisiAlign &JustifyWindowRata &Kiri Align &LeftWindowRata &Kanan Align &RightWindow&Bahasa &Aplikasi...Application &Language...Window&Karakter: %L1 / %L2Characters: %L1 / %L2WindowHHak Cipta &copy; 2008-%1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindow Ctrl+<Ctrl+<Window Ctrl+>Ctrl+>Window Ctrl+JCtrl+JWindow Ctrl+KCtrl+KWindow Ctrl+MCtrl+MWindow Ctrl+QCtrl+QWindow Ctrl+RCtrl+RWindowCtrl+Shift+A Ctrl+Shift+AWindowCtrl+Shift+V Ctrl+Shift+VWindow Ctrl+^Ctrl+^Window Ctrl+_Ctrl+_Window Ctrl+{Ctrl+{Window Ctrl+|Ctrl+|Window Ctrl+}Ctrl+}WindowPo%tongCu&tWindowHPenyimpanan darurat tak bisa diedit. Emergency cache is not writable.WindowEscEscWindow"Teks Yang Difokus F&ocused TextWindowF11F11WindowF7F7Window&Temukan &berikutnya Find &NextWindow&Temukan Seb&elumnyaFind Pre&viousWindowFo&rmatFo&rmatWindowFokus Mati Focus OffWindow Fokus Satu BarisFocus One LineWindowFokus ParagrafFocus ParagraphWindow Fokus Tiga BarisFocus Three LinesWindowFocusWriter FocusWriterWindowLFocusWriter tidak ditutup dengan baik.&FocusWriter was not shut down cleanly.Window(T&ambahkan IndentasiI&ncrease IndentWindow&Bl&ok Kiri ke KananLe&ft to Right BlockWindow"Memuat pengaturanLoading settingsWindowMemuat suaraLoading soundsWindowMemuat temaLoading themesWindowM&inimize M&inimizeWindowKelola SesiManage SessionsWindowSesi Baru New SessionWindowSatu &Baris One &LineWindowBuka File Open FileWindowMembuka %1 Opening %1Window6Timpa file yang lebih baru?Overwrite newer file?WindowHalaman: %L1 Pages: %L1WindowParagraf: %L1Paragraphs: %L1Window&Paste &Tanpa FormatPaste &UnformattedWindowZPastikan SDL_mixer dipasang di komputer Anda.-Please make sure that SDL_mixer is installed.WindowPertanyaanQuestionWindowTDirilis dalam lisensi <a href=%1>GPL 3</a>/Released under the GPL 3 licenseWindow&Muat UlangReloa&dWindowHKembalikan dari penyimpanan darurat?!Restore from the emergency cache?Window&Bl&ok Kanan ke KiriRi&ght to Left BlockWindowS&imbol... S&ymbols...Window$Simpan &sebagai... Save &As...WindowSimpan S&emua Save A&llWindow"Simpan perubahan? Save changes?WindowPilih &Semua Select &AllWindowPilih &Suasana Select &SceneWindow(Tampilkan &Ikon MenuShow &Menu IconsWindow*Tampilkan &Bilah Alat Show &ToolbarWindowKutipan &Cerdas Smart &QuotesWindow<Beberapa file tak bisa dibuka.Some files could not be opened.WindowpBeberapa file dibuka secara Read-Only (tak bisa diedit).!Some files were opened Read-Only.Window^Beberapa file tak didukung dan tak bisa dibuka.4Some files were unsupported and could not be opened.WindowGar&iscoretStri&kethroughWindowSup&erscript Sup&erscriptWindow*Beralih Ke Dokumen %1Switch to Document %1Window4Beralih Ke Dokumen PertamaSwitch to First DocumentWindow6Beralih Ke Dokumen TerakhirSwitch to Last DocumentWindow:Beralih Ke Dokumen BerikutnyaSwitch to Next DocumentWindow:Beralih Ke Dokumen SebelumnyaSwitch to Previous DocumentWindow<File Teks (%1);;Semua File (*)Text Files (%1);;All Files (*)Window>Gagal memuat suara mesin ketik.!Unable to load typewriter sounds.WindowTanpa JudulUntitledWindow"Perbarui &DokumenUpdate &DocumentWindow"Perbarui &SeleksiUpdate &SelectionWindowZDigunakan dalam lisensi <a href=%1>LGPL 3</a>,Used under the LGPL 3 licenseWindowjMenggunakan ikon dari tema ikon <a href=%1>Oxygen</a>4Uses icons from the Oxygen icon themeWindowPeringatanWarningWindowKata: %L1 Words: %L1Windowfocuswriter-1.4.5/translations/focuswriter_id.ts000066400000000000000000002222541231434177300222320ustar00rootroot00000000000000 Alert Close (%1) Tutup (%1) Collapse Tutup Expand Buka AlertLayer Dismiss Alert Hilangkan Peringatan Ctrl+D Ctrl+D Document Sorry Maaf Unable to save '%1'. Gagal menyimpan '%1'. Save File As Simpan File Sebagai Unable to overwrite '%1'. Gagal memperbarui '%1'. Rename File Ubah Nama File Unable to rename '%1'. Gagal mengubah nama '%1'. Reload File Muat Ulang File Reload the file %1 from disk? Muat file %1? All unsaved changes will be lost. Semua perubahan yang tidak disimpan akan hilang. Reload Muat ulang Plain Text (*.txt) Teks Biasa (*.txt) Question Pertanyaan Saving as plain text will discard all formatting. Discard formatting? Menyimpan sebagai teks polos akan membuang semua format. Buang format? OpenDocument Text (*.odt) Teks OpenDocument (*.odt) Rich Text (*.rtf) Rich Text (*.rtf) All Files (*) Semua File (*) DocumentWatcher File Changed File Berubah The file %1 was changed by another program. File %1 berubah oleh program lain. Do you want to reload the file? Apakah Anda ingin memuat file ini? Reload Muat ulang Ignore Abaikan File Deleted File Dihapus The file %1 was deleted by another program. File %1 dihapus oleh program lain. Do you want to save or close the file? Apakah Anda ingin menyimpan atau menutup file ini? FindDialog Search for: Cari: Replace with: Gantikan dengan: Ignore case Abaikan jenis huruf (kapital/kecil) Whole words only Hanya keseluruhan kata Regular expressions RegEx Search up Cari ke atas Search down Cari ke bawah &Find &Temukan... &Replace &Gantikan... Replace &All Gantikan &Semua Find Temukan Replace Gantikan Replace %n instance(s)? Gantikan %n lainnya? Question Pertanyaan Sorry Maaf Phrase not found. Frase tidak ditemukan. Highlighter Add Tambahkan Check Spelling... Cek Ejaan... (No suggestions found) (Saran tidak ditemukan) ImageButton Open Image Buka Gambar Images(%1) Gambar(%1) LocaleDialog Select application language: Pilih bahasa: <System Language> <System Language> Note Catatan Please restart this application for the change in language to take effect. Silakan tutup dan buka kembali aplikasi ini untuk menerapkan perubahan bahasa. PreferencesDialog Preferences Preferensi General Umum Statistics Statistik Toolbar Bilah Peralatan Spell Checking Pemeriksaan Ejaan Select Dictionary Pilih Kamus Sorry Maaf Unable to open archive. Gagal membuka arsip. Unable to read archive metadata. Gagal membaca metadata arsip. The archive does not contain a usable dictionary. Arsip ini tidak memiliki kamus yang bisa dipergunakan. Unable to open file '%1'. Gagal membuka file '%1'. Unable to close file '%1'. Gagal menutup file '%1'. Question Pertanyaan Shortcuts Shortcuts One or more shortcuts conflict. Do you wish to proceed? Satu atau lebih shortcuts beradu. Apakah Anda ingin melanjutkan? The dictionary "%1" already exists. Do you want to replace it? Kamus "%1" sudah ada. Anda ingin menggantikannya? Daily Goal Target Harian None Tak satupun Minutes: Menit: Words: Kata: Editing Mengedit Always vertically center Selalu tengah secara vertikal Block insertion cursor Blok kursor sisipan Smooth fonts Font halus Typewriter sounds Suara Mesin Ketik Smart quotes: Kutipan cerdas: Double Ganda Single Tunggal Scenes Suasana Divider: Pembagi: Saving Menyimpan Automatically save changes Menyimpan perubahan secara otomatis Remember cursor position Ingat posisi kursor Contents Isi Word count Jumlah kata Page count Jumlah halaman Paragraph count Jumlah paragraf Character count Jumlah karakter Page Size Ukuran Halaman Characters: Karakter: Paragraphs: Paragraf: Word Count Algorithm Algoritma Penjumlahan Kata Detect word boundaries Deteksi batas-batas kata Divide character count by six Bagikan jumlah karakter dengan 6 Style Gaya Icons Only Ikon saja Text Only Teks saja Text Alongside Icons Teks dan Ikon Text Under Icons Teks di bawah Ikon Text Position: Posisi Teks: Actions Tindakan: Move Up Naik Move Down Turun Add Separator Tambahkan Pemisah Command Perintah Shortcut Shortcut Action Tindakan Check spelling as you type Cek ejaan saat Anda mengetik Ignore words in UPPERCASE Abaikan kata dalam huruf KAPITAL Ignore words with numbers Abaikan kata dengan angka Language Bahasa Add Tambahkan Remove Hapus Personal Dictionary Kamus Pribadi Reader Not a supported RTF file. Bukan file RTF yng didukung. Unable to open archive. Gagal membuka arsip. Unable to open file '%1'. Gagal membuka file '%1'. Unable to close file '%1'. Gagal menutup file '%1'. SceneList Ctrl+Shift+Down Ctrl+Shift+Down Move Scenes Up Naikkan Suasana Ctrl+Shift+Up Ctrl+Shift+Up Toggle Scene List Toggle List Suasana Shift+F4 Shift+F4 Show scene list (%1) Tampilkan list suasana (%1) Hide scene list (%1) Sembunyian list suasana (%1) Filter Filter Move Scenes Down Turunkan Suasana Resize scene list Ubah ukuran list suasana Session Default Setelan Standar SessionManager Manage Sessions Kelola Sesi S&essions S&esi New Baru Rename Ubah Nama Clone Klon Delete Hapus Switch To Pindah Ke New Session Sesi Baru Clone Session Klon Sesi Rename Session Ubah Nama Sesi Question Pertanyaan Delete selected session? Hapus sesi terpilih? Session name: Judul sesi: Sorry Maaf The requested session name is already in use. Nama sesi sudah pernah dipakai. &New... &Baru... Ctrl+Shift+N Ctrl+Shift+N &Manage... &Kelola... Ctrl+Shift+M Ctrl+Shift+M ShortcutEdit Clear Bersihkan Reset to Default Setelan Standar Shortcut: Shortcut: SmartQuote Replacing quotation marks... Mengganti tanda kutip... Please Wait Mohon Tunggu SpellChecker Check Spelling Memeriksa Ejaan &Add &Tambahkan &Ignore &Abaikan I&gnore All Abaikan &Semua &Change &Ubah C&hange All U&bah Semua Not in dictionary: Tak ada dalam kamus: Change to: Ubah menjadi: Checking spelling... Memeriksa ejaan... Cancel Batalkan Please wait Silakan tunggu Spell check complete. Ejaan selesai diperiksa. SymbolsDialog Symbols Simbol Recently used symbols Simbol baru dipakai All symbols Semua simbol Details Rincian Name: Nama: Insert Sisipkan SymbolsModel Blocks Blok Scripts Naskah Theme Untitled %1 Tanpa Judul %1 ThemeDialog Modify Theme Atur Tema Name: Nama: Background Latarbelakang No Image Tanpa gambar Tiled Berjajar Centered Terpusat Stretched Terhampar Scaled Terskala Zoomed Di-zoom Remove Buang Type: Tipe: Color: Warna: Image: Gambar: Foreground Latardepan Opacity Transparansi pixels piksel Left Kiri Right Kanan Position Posisi Size: Ukuran: Rounding: Pembulatan: Margin: Marjin luar: Padding: Marjin dalam: Text Teks Font: Font: Misspelled: Keliru eja: Spacings Jarak Line Spacing Jarak Baris Single Tunggal 1.5 Lines 1.5 Baris Double Ganda Proportional Proporsional Paragraph Spacing Jarak Paragraf Indent First Line: Indent Baris Pertama: Pixels Above: Piksel Di Atas: Pixels Below: Piksel Di Bawah: The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog ThemeManager Themes Tema Add Tambahkan Modify Atur Remove Buang Import Impor Export Ekspor Close Tutup Question Pertanyaan Remove selected theme? Buang tema terpilih? Import Theme Impor Tema Themes (*.fwtz *.theme) Tema (*.fwtz *.theme) Themes (*.fwtz) Tema (*.fwtz) Sorry Maaf A theme already exists with that name. Please enter a new name: Sudah ada tema dengan nama tersebut. Silakan tulis nama baru: Export Theme Ekspor Tema Timer <b>%1</b> - %2 <b>%1</b> - %2 Question Pertanyaan Delete timer? Hapus pengukur waktu? <b>Words:</b> %L1 <b>Kata:</b> %L1 <b>Pages:</b> %L1 <b>Halaman:</b> %L1 <b>Paragraphs:</b> %L1 <b>Paragraf:</b> %L1 <b>Characters:</b> %L1 / %L2 <b>Karakter:</b> %L1 / %L2 Set Delay Atur Penundaan Set Time Atur Waktu Delay: Tunda: Time: Waktu: HH:mm:ss HH:mm:ss Alarm Alarm Type: Jenis: Memo: Memo: Edit Edit Delete Hapus TimerDisplay HH:mm:ss HH:mm:ss No timers running Tak ada pengukur waktu yang dijalankan TimerManager Timers Pengukur Waktu New Baru Recent Mutakhir Question Pertanyaan Cancel editing timers? Batalkan pengaturan waktu? +HH:mm:ss +HH:mm:ss %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. Mencapai akhir file tanpa diduga. Window Loading themes Memuat tema Loading sounds Memuat suara Untitled Tanpa Judul Open File Buka File About FocusWriter Tentang FocusWriter FocusWriter FocusWriter A simple fullscreen word processor Pengolah kata selayar penuh sederhana Copyright &copy; 2008-%1 Graeme Gott Hak Cipta &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Dirilis dalam lisensi <a href=%1>GPL 3</a> Uses icons from the <a href=%1>Oxygen</a> icon theme Menggunakan ikon dari tema ikon <a href=%1>Oxygen</a> Used under the <a href=%1>LGPL 3</a> license Digunakan dalam lisensi <a href=%1>LGPL 3</a> Characters: %L1 / %L2 Karakter: %L1 / %L2 Pages: %L1 Halaman: %L1 Paragraphs: %L1 Paragraf: %L1 Words: %L1 Kata: %L1 %1% of daily goal %1% dari target harian Opening %1 Membuka %1 Question Pertanyaan Save changes? Simpan perubahan? (Untitled %1) (Tanpa Judul %1) Switch to Next Document Beralih Ke Dokumen Berikutnya Switch to Previous Document Beralih Ke Dokumen Sebelumnya Switch to First Document Beralih Ke Dokumen Pertama Switch to Last Document Beralih Ke Dokumen Terakhir Switch to Document %1 Beralih Ke Dokumen %1 Loading settings Memuat pengaturan Emergency cache is not writable. Penyimpanan darurat tak bisa diedit. Warning Peringatan FocusWriter was not shut down cleanly. FocusWriter tidak ditutup dengan baik. Restore from the emergency cache? Kembalikan dari penyimpanan darurat? Some files could not be opened. Beberapa file tak bisa dibuka. Some files were opened Read-Only. Beberapa file dibuka secara Read-Only (tak bisa diedit). Text Files (%1);;All Files (*) File Teks (%1);;Semua File (*) '%1' is newer than the cached copy. '%1' lebih mutakhir daripada kopian yang tersimpan. Overwrite newer file? Timpa file yang lebih baru? Unable to load typewriter sounds. Gagal memuat suara mesin ketik. Please make sure that SDL_mixer is installed. Pastikan SDL_mixer dipasang di komputer Anda. %1 (Read-Only) %1 (Read-Only) &File &File &New &Baru &Open... &Buka... Reloa&d &Muat Ulang &Save &Simpan Save &As... Simpan &sebagai... &Rename... &Ubah Nama... Save A&ll Simpan S&emua Manage Sessions Kelola Sesi New Session Sesi Baru &Print... &Cetak... &Close &Tutup &Quit &Keluar Ctrl+Q Ctrl+Q &Edit &Edit &Undo &Undo &Redo &Redo Cu&t Po%tong &Copy &Salin &Paste &Tempelkan Paste &Unformatted Paste &Tanpa Format Ctrl+Shift+V Ctrl+Shift+V Select &All Pilih &Semua Select &Scene Pilih &Suasana Ctrl+Shift+A Ctrl+Shift+A Fo&rmat Fo&rmat &Bold &Tebal &Italic &Miring &Underline &Garisbawah Stri&kethrough Gar&iscoret Ctrl+K Ctrl+K Sup&erscript Sup&erscript Ctrl+^ Ctrl+^ &Subscript &Subscript Ctrl+_ Ctrl+_ Align &Left Rata &Kiri Ctrl+{ Ctrl+{ Align &Center Rata &Tengah Ctrl+| Ctrl+| Align &Right Rata &Kanan Ctrl+} Ctrl+} Align &Justify Rata &Sisi Ctrl+J Ctrl+J &Decrease Indent %Kurangi Indentasi Ctrl+< Ctrl+< I&ncrease Indent T&ambahkan Indentasi Ctrl+> Ctrl+> Le&ft to Right Block Bl&ok Kiri ke Kanan Ri&ght to Left Block Bl&ok Kanan ke Kiri &Tools &Peralatan &Find... &Temukan... Find &Next Temukan &berikutnya Find Pre&vious Temukan Seb&elumnya &Replace... &Gantikan... Ctrl+R Ctrl+R Smart &Quotes Kutipan &Cerdas Update &Document Perbarui &Dokumen Update &Selection Perbarui &Seleksi &Spelling... %Ejaan... F7 F7 &Timers... &Pengatur Waktu... S&ymbols... S&imbol... &Settings &Pengaturan Show &Toolbar Tampilkan &Bilah Alat Show &Menu Icons Tampilkan &Ikon Menu F&ocused Text Teks Yang Difokus &Fullscreen &Layar Penuh F11 F11 Esc Esc M&inimize M&inimize Ctrl+M Ctrl+M &Themes... &Tema... &Preferences... &Preferensi... Focus Off Fokus Mati Focus One Line Fokus Satu Baris Focus Three Lines Fokus Tiga Baris &Paragraph &Paragraf Focus Paragraph Fokus Paragraf &Help &Bantuan Application &Language... Bahasa &Aplikasi... Some files were unsupported and could not be opened. Beberapa file tak didukung dan tak bisa dibuka. &Off &Mati One &Line Satu &Baris &Three Lines &Tiga Baris &About &Tentang About &Qt Tentang &Qt focuswriter-1.4.5/translations/focuswriter_it.qm000066400000000000000000000775641231434177300222550ustar00rootroot00000000000000+X@ZAZiZiZi! Zi21ZiGZ%![C)[K\Cf\L\*P_ >Tc4Y0{ O2kϨ%NbY3]f~ky.-0n%0n)5P2>ZqGtmR^p>k=`6"rQS^#:$=c#"S ~Taqmef`zXuEN:J vO6P*XRf3U`?.Noccd"Z'aH~i,c(ao, 4X92^Ew?x?J=Y)'I$^WQa|')UFᑞ7sM?N.v H4`~l( WBnE*M@GZ,Fluz^Ԏ-S5rZ#9 hI56Z;dZ[*[[[[[\\\+](,]Y-](J,/d,J1bj%D%;M'~g?YȞn]hDhvE:+5VAd}tprHxM/d'ݲ j(csUjcCZrUOK/_25:8Nl:YxIIOJIK]Zk[-Cg>lRam(=zCAC3.?RlW̊|6O&O*޷3!="*oe+zds< uR:lCm Lp:xh _a>^4^fb!Siw6,2L9} 8G9Nf/e|>R|w!JpQ}qr4nPa3Sg%% ' yB C0Cc \~SD >h 7 "4 %^ Y . v Y z^ zY .3%< JU W0 Wd1 : 1 ·Lg .^  Ń +IO :oM ;fi d80 eE: 5 q^# t- _ ʀs8 ˔V ˼C8K z_ Bn f  V5< c9 ^+ Q #! L.. f(% iqs0 w9:E xj70 {"uj< Nfl | I/ ʫ ʫ ʫ ʫ0 ʫFD ʫK- ʫM ʫg  A)< pUq < Ed cJ cL. >cM R 6m >U5 J@ Z$;, eK iN!e tfiv u 1 sT C C@8  &5 ) t 1W \ H sQ, Dq# _ 8j$ DY\H DY. DY/ DZ\ ^3 noJ_ uu {N( Pr I < ޘ Zc"#VnE=NltrrAcj +db Pg34n{X1j,A L9,W=e"iTsWI+J-z C " iskChiudi (%1) Close (%1)Alert RiduciCollapseAlertEspandiExpandAlert Ctrl+DCtrl+D AlertLayerChiudi avviso Dismiss Alert AlertLayer Tutti i file (*) All Files (*)Document\Tutte le modifiche non salvate verranno perse.!All unsaved changes will be lost.Document(OpenDocument (*.odt)OpenDocument Text (*.odt)Document,Testo semplice (*.txt)Plain Text (*.txt)DocumentDomandaQuestionDocumentRicaricaReloadDocumentRicarica File Reload FileDocument@Ricaricare il file %1 dal disco?Reload the file %1 from disk?DocumentRinomina File Rename FileDocument"Rich Text (*.rtf)Rich Text (*.rtf)DocumentSalva con nome Save File AsDocumentSalvando come testo semplice la formattazione verr persa. Eliminare la formattazione?ESaving as plain text will discard all formatting. Discard formatting?DocumentSpiacenteSorryDocument>Impossibile sovrascrivere '%1'.Unable to overwrite '%1'.Document8Impossibile rinominare '%1'.Unable to rename '%1'.Document2Impossibile salvare '%1'.Unable to save '%1'.Document0Vuoi ricaricare il file?Do you want to reload the file?DocumentWatcher@Vuoi salvare o chiudere il file?&Do you want to save or close the file?DocumentWatcherFile modificato File ChangedDocumentWatcherFile eliminato File DeletedDocumentWatcher IgnoraIgnoreDocumentWatcherRicaricaReloadDocumentWatcherhIl file %1 stato modificato da un altro programma.+The file %1 was changed by another program.DocumentWatcherhIl file %1 stato modificato da un altro programma.+The file %1 was deleted by another program.DocumentWatcher &Cerca&Find FindDialog&Sostituisci&Replace FindDialog TrovaFind FindDialog4Ignora maiuscole/minuscole Ignore case FindDialog$Frase non trovata.Phrase not found. FindDialogDomandaQuestion FindDialog(Espressioni regolariRegular expressions FindDialogSostituisciReplace FindDialog,Sostituire %n istanze?,Sostituire %n istanze?Replace %n instance(s)? FindDialog"Sostitusci &tutto Replace &All FindDialogSostituire con: Replace with: FindDialogCerca gi Search down FindDialog Cerca: Search for: FindDialogCerca su Search up FindDialogSpiacenteSorry FindDialog$Solo parole intereWhole words only FindDialog:(Nessun suggerimento trovato)(No suggestions found) HighlighterAggiungiAdd Highlighter0Controllo ortografico...Check Spelling... HighlighterImmagini (%1) Images(%1) ImageButtonApri immagine Open Image ImageButton&<Lingua di sistema> LocaleDialogNotaNote LocaleDialogdPer modificare la lingua riavviare l'applicazione.JPlease restart this application for the change in language to take effect. LocaleDialogTSelezionare una lingua per l'applicazione:Select application language: LocaleDialog AzioneActionPreferencesDialog AzioniActionsPreferencesDialogAggiungiAddPreferencesDialog&Aggiungi separatore Add SeparatorPreferencesDialog8Sempre centrato in verticaleAlways vertically centerPreferencesDialogDSalva automaticamente le modificheAutomatically save changesPreferencesDialog<Blocca inserimento del cursoreBlock insertion cursorPreferencesDialog&Conteggio caratteriCharacter countPreferencesDialogCaratteri: Characters:PreferencesDialogXControllo ortografico durante la digitazioneCheck spelling as you typePreferencesDialogComandoCommandPreferencesDialogContenutiContentsPreferencesDialog*Obiettivo giornaliero Daily GoalPreferencesDialog4Rileva limiti delle paroleDetect word boundariesPreferencesDialogNDividere per sei il conteggio caratteriDivide character count by sixPreferencesDialogDivisoreDivider:PreferencesDialog DoppieDoublePreferencesDialogModificaEditingPreferencesDialogGeneraleGeneralPreferencesDialogSolo icone Icons OnlyPreferencesDialog.Ignora parole MAIUSCOLEIgnore words in UPPERCASEPreferencesDialog0Ignora parole con numeriIgnore words with numbersPreferencesDialog LinguaLanguagePreferencesDialogMinuti:Minutes:PreferencesDialogSposta gi Move DownPreferencesDialogSposta suMove UpPreferencesDialogNessunoNonePreferencesDialogXC' un conflitto di scorciatoie. Continuare?7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialog"Dimensioni pagina Page SizePreferencesDialog Conteggio pagine Page countPreferencesDialog&Conteggio paragrafiParagraph countPreferencesDialogParagrafi: Paragraphs:PreferencesDialog(Dizionario personalePersonal DictionaryPreferencesDialogPreferenze PreferencesPreferencesDialogDomandaQuestionPreferencesDialog@Ricorda la posizione del cursoreRemember cursor positionPreferencesDialogRimuoviRemovePreferencesDialogSalvataggioSavingPreferencesDialog SceneScenesPreferencesDialog,Selezionare DizionarioSelect DictionaryPreferencesDialogScorciatoiaShortcutPreferencesDialogScorciatioie ShortcutsPreferencesDialogSingoleSinglePreferencesDialogVirgolette: Smart quotes:PreferencesDialogFont "morbide" Smooth fontsPreferencesDialogSpiacenteSorryPreferencesDialog*Controllo ortograficoSpell CheckingPreferencesDialogStatistiche StatisticsPreferencesDialog StileStylePreferencesDialog.Testo e icone allineateText Alongside IconsPreferencesDialogSolo testo Text OnlyPreferencesDialog Posizione testo:Text Position:PreferencesDialog(Testo sotto le iconeText Under IconsPreferencesDialogfL'archivio non contiene un dizionario utilizzabile.1The archive does not contain a usable dictionary.PreferencesDialog`Il dizionario "%1" esiste gi. Vuoi sostituirlo?>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialogToolbarToolbarPreferencesDialog@Suoni della macchina da scrivereTypewriter soundsPreferencesDialogBImpossibile chiudere il file '%1'Unable to close file '%1'.PreferencesDialog8Impossibile aprire archivio.Unable to open archive.PreferencesDialog@Impossibile aprire il file '%1'.Unable to open file '%1'.PreferencesDialogZImpossibile leggere i metadati dell'archivio. Unable to read archive metadata.PreferencesDialog:Algoritmo di conteggio paroleWord Count AlgorithmPreferencesDialog Conteggio parole Word countPreferencesDialogParole:Words:PreferencesDialog:Non un file RTF supportato.Not a supported RTF file.ReaderDImpossibile chiudere il file '%1'.Unable to close file '%1'.Reader8Impossibile aprire archivio.Unable to open archive.Reader@Impossibile aprire il file '%1'.Unable to open file '%1'.ReaderCtrl+Shift+GiCtrl+Shift+Down SceneListCtrl+Shift+Su Ctrl+Shift+Up SceneList FiltroFilter SceneList2Nascondi lista scene (%1)Hide scene list (%1) SceneList Sposta scene giMove Scenes Down SceneListSposta scene suMove Scenes Up SceneList0Ridimensiona lista sceneResize scene list SceneListShift+F4Shift+F4 SceneList6Visualizza lista scene (%1)Show scene list (%1) SceneList$Attiva lista sceneToggle Scene List SceneListDefaultDefaultSession&Gestione... &Manage...SessionManager&New...&New...SessionManager ClonaCloneSessionManagerClona sessione Clone SessionSessionManager"Ctrl + Maiusc + M Ctrl+Shift+MSessionManager"Ctrl + Maiusc + N Ctrl+Shift+NSessionManagerEliminaDeleteSessionManager>Eliminare sessione selezionata?Delete selected session?SessionManager"Gestione sessioniManage SessionsSessionManager NuovaNewSessionManagerNuova sessione New SessionSessionManagerDomandaQuestionSessionManagerRinominaRenameSessionManager"Rinomina sessioneRename SessionSessionManagerS&essioni S&essionsSessionManagerNome sessione: Session name:SessionManagerSpiacenteSorrySessionManagerPassa a Switch ToSessionManagerVIl nome di sessione richiesto gi in uso.-The requested session name is already in use.SessionManagerEliminaClear ShortcutEdit$Ripristina defaultReset to Default ShortcutEditScorciatoia: Shortcut: ShortcutEditAttendere prego Please Wait SmartQuote6Sostituzione virgolette ...Replacing quotation marks... SmartQuote&Aggiungi&Add SpellChecker&Cambia&Change SpellChecker&Ignora&Ignore SpellCheckerCambia t&utto C&hange All SpellCheckerAnnullaCancel SpellCheckerCambia in: Change to: SpellChecker*Controllo ortograficoCheck Spelling SpellChecker0Controllo ortografico...Checking spelling... SpellCheckerIgnora &tutto I&gnore All SpellChecker&Non nel dizionario:Not in dictionary: SpellCheckerAttendere prego Please wait SpellCheckerBControllo ortografico completato.Spell check complete. SpellCheckerTutti i simboli All symbols SymbolsDialogDettagliDetails SymbolsDialogInserisciInsert SymbolsDialog Nome:Name: SymbolsDialog4Simboli usati recentementeRecently used symbols SymbolsDialogSimboliSymbols SymbolsDialogBlocchiBlocks SymbolsModel ScriptScripts SymbolsModelSenza titolo %1 Untitled %1Theme pixel pixels ThemeDialog1.5 linee 1.5 Lines ThemeDialog Sfondo Background ThemeDialogCentratoCentered ThemeDialogColore:Color: ThemeDialog DoppiaDouble ThemeDialog$Tipo di carattere:Font: ThemeDialogPrimo piano Foreground ThemeDialogImmagine:Image: ThemeDialog(Indenta prima linea:Indent First Line: ThemeDialogSinistraLeft ThemeDialogInterlinea Line Spacing ThemeDialogMargine:Margin: ThemeDialog*Errori di ortografia: Misspelled: ThemeDialogModifica tema Modify Theme ThemeDialog Nome:Name: ThemeDialog Nessuna ImmagineNo Image ThemeDialogOpacitOpacity ThemeDialog Margine esterno:Padding: ThemeDialog(Spaziatura paragrafiParagraph Spacing ThemeDialogPixel sopra Pixels Above: ThemeDialogPixel sotto Pixels Below: ThemeDialogPosizionePosition ThemeDialogProporzionale Proportional ThemeDialogRimuoviRemove ThemeDialog DestraRight ThemeDialogArrotondamento: Rounding: ThemeDialogScalatoScaled ThemeDialogSingolaSingle ThemeDialogDimensioni:Size: ThemeDialogSpaziatureSpacings ThemeDialogStirato Stretched ThemeDialog TestoText ThemeDialogpLorem ipsum dolor sit amet, consectetur adipiscing elit.+The quick brown fox jumps over the lazy dog ThemeDialogPiastrellatoTiled ThemeDialog Tipo:Type: ThemeDialogZoommatoZoomed ThemeDialogEsiste gi un tema con quel nome. Si prega di inserire un nuovo nome:?A theme already exists with that name. Please enter a new name: ThemeManagerAggiungiAdd ThemeManager ChiudiClose ThemeManager ExportExport ThemeManagerEsporta Tema Export Theme ThemeManagerImportaImport ThemeManagerImporta Tema Import Theme ThemeManagerModificaModify ThemeManagerDomandaQuestion ThemeManagerRimuoviRemove ThemeManager2Rimuovere il tema scelto?Remove selected theme? ThemeManagerSpiacenteSorry ThemeManagerTemiThemes ThemeManager.I temi (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManagerI temi (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer4<b>Caratteri</b> %L1 / %L2Characters: %L1 / %L2Timer"<b>Pagine</b> %L1Pages: %L1Timer(<b>Paragrafi</b> %L1Paragraphs: %L1Timer"<b>Parole</b> %L1Words: %L1TimerAllarmeAlarmTimerRitardo:Delay:TimerEliminaDeleteTimerCancella timer? Delete timer?TimerModificaEditTimerHH:mm:ssHH:mm:ssTimer Memo:Memo:TimerDomandaQuestionTimerImposta ritardo Set DelayTimerImposta tempoSet TimeTimer Tempo:Time:Timer Tipo:Type:TimerHH:mm:ssHH:mm:ss TimerDisplay4Nessun timer in esecuzioneNo timers running TimerDisplay%1 - %2%1 - %2 TimerManager+HH:mm:ss +HH:mm:ss TimerManager.Annulla modifica timer?Cancel editing timers? TimerManager NuovoNew TimerManagerDomandaQuestion TimerManagerRecentiRecent TimerManager TimerTimers TimerManagerRFine del file raggiunta inaspettatamente.!Unexpectedly reached end of file. Tokenizer"%1 (sola lettura)%1 (Read-Only)Window>%1% dell' obiettivo giornaliero%1% of daily goalWindow &Informazioni su&AboutWindow&Grassetto&BoldWindow&Chiudi&CloseWindow &Copia&CopyWindow & Riduci rientro&Decrease IndentWindow&Modifica&EditWindow &File&FileWindow&Trova...&Find...Window&Schermo intero &FullscreenWindow &Aiuto&HelpWindow&Corsivo&ItalicWindow &Nuovo&NewWindowNon attivo&OffWindow&Apri...&Open...Window&Paragrafo &ParagraphWindow&Incolla&PasteWindow&Preferenze...&Preferences...Window&Stampa... &Print...Window &Esci&QuitWindow&Ripeti&RedoWindow&Rinomina... &Rename...Window&Sostituisci... &Replace...Window &Salva&SaveWindow&Impostazioni &SettingsWindow&Ortografia... &Spelling...Window&Pedice &SubscriptWindow&Temi... &Themes...Window&Tre Linee &Three LinesWindow&Timer... &Timers...Window&Strumenti&ToolsWindow&Sottolineato &UnderlineWindow&Annulla&UndoWindowP'%1' pi recente della copia in cache.#'%1' is newer than the cached copy.Window(Senza nome %1) (Untitled %1)WindowVUn semplice editor di testo a pieno schermo"A simple fullscreen word processorWindow&Informazioni su &Qt About &QtWindow4A proposito di FocusWriterAbout FocusWriterWindowAllinea &Cenro Align &CenterWindow2Allineare &p;GiustificatoAlign &JustifyWindow"Allinea &Sinistra Align &LeftWindowAllinea &Right Align &RightWindow.Lingua &applicazione...Application &Language...Window&Caratteri:%L1 / %L2Characters: %L1 / %L2WindowHCopyright &copy; 2008-%1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindowCtrl + <Ctrl+<WindowCtrl + >Ctrl+>WindowCtrl + JCtrl+JWindowCtrl + KCtrl+KWindow Ctrl+MCtrl+MWindowCtrl + QCtrl+QWindow Ctrl+RCtrl+RWindowCtrl+Shift+A Ctrl+Shift+AWindowCtrl+Shift+V Ctrl+Shift+VWindowCtrl + ^Ctrl+^WindowCtrl + _Ctrl+_WindowCtrl + {Ctrl+{WindowCtrl + |Ctrl+|WindowCtrl + }Ctrl+}WindowTa&gliaCu&tWindowLLa cache di emergenza non scrivibile Emergency cache is not writable.WindowEscEscWindowTesto a fuoco F&ocused TextWindowF11F11WindowF7F7Window"Trova &successivo Find &NextWindow"Trova Pre&cedenteFind Pre&viousWindowFor&mattaFo&rmatWindow2Messa a fuoco disattivata Focus OffWindow.Metti a fuoco una lineaFocus One LineWindow"Paragrafo a fuocoFocus ParagraphWindow.Metti a fuoco tre lineeFocus Three LinesWindowFocusWriter FocusWriterWindowZFocusWriter non stato chiuso correttamente.&FocusWriter was not shut down cleanly.Window$A&umentare rientroI&ncrease IndentWindow6Blocco da sinistra a destraLe&ft to Right BlockWindow0Caricamento impostazioniLoading settingsWindow"Caricamento suoniLoading soundsWindow Caricamento temiLoading themesWindowM&inimizza M&inimizeWindow"Gestione sessioniManage SessionsWindowNuova sessione New SessionWindowUna &Linea One &LineWindowApri file Open FileWindowApertura %1 Opening %1WindowDSovrascrivere il file pi recente?Overwrite newer file?WindowPagine: %L1 Pages: %L1WindowParagrafi: %L1Paragraphs: %L1Window.Incolla &non formattatoPaste &UnformattedWindowNAccertati che SDL_mixer sia installato.-Please make sure that SDL_mixer is installed.WindowDomandaQuestionWindowZRilasciato sotto licenza <a href=%1>GPL 3</a>/Released under the GPL 3 licenseWindowRicaricaReloa&dWindowLRipristinare dalla cache di emergenza?!Restore from the emergency cache?Window6Blocco da destra a sinistraRi&ght to Left BlockWindowS&imboli S&ymbols...Window$Salva &con nome... Save &As...Window Salva Save A&llWindow*Salvare le modifiche? Save changes?Window Seleziona &tutto Select &AllWindow Seleziona &scena Select &SceneWindow,Mostra &icone del menuShow &Menu IconsWindow:Mostra &barra degli strumenti Show &ToolbarWindow&Citazioni Smart &QuotesWindowRNon stato possibile aprire alcuni file.Some files could not be opened.Window\Alcuni file sono stati aperti in sola lettura.!Some files were opened Read-Only.WindowfQualche file non supportato e non stato aperto.4Some files were unsupported and could not be opened.WindowBar&ratoStri&kethroughWindow Ap&ice Sup&erscriptWindow*Passa al documento %1Switch to Document %1Window0Passa al primo documentoSwitch to First DocumentWindow4Passa all'ultimo documentoSwitch to Last DocumentWindow:Passa al documento successivoSwitch to Next DocumentWindow:Passa al documento precedenteSwitch to Previous DocumentWindowHFile di testo (%1);;Tutti i file (*)Text Files (%1);;All Files (*)WindowrImpossibile caricare i suoni della macchina per scrivere.!Unable to load typewriter sounds.WindowSenza nomeUntitledWindow$Aggiorna &documentUpdate &DocumentWindow&Aggiorna &selezioneUpdate &SelectionWindowFSotto licenza <a href=%1>LGPL 3</a>,Used under the LGPL 3 licenseWindowZUtilizza icone del tema <a href=%1>Oxygen</a>4Uses icons from the Oxygen icon themeWindowAttenzioneWarningWindowParole: %L1 Words: %L1Windowfocuswriter-1.4.5/translations/focuswriter_it.ts000066400000000000000000002236051231434177300222530ustar00rootroot00000000000000 Alert Close (%1) Chiudi (%1) Collapse Riduci Expand Espandi AlertLayer Dismiss Alert Chiudi avviso Ctrl+D Ctrl+D Document Sorry Spiacente Unable to save '%1'. Impossibile salvare '%1'. Save File As Salva con nome Unable to overwrite '%1'. Impossibile sovrascrivere '%1'. Rename File Rinomina File Unable to rename '%1'. Impossibile rinominare '%1'. Reload File Ricarica File Reload the file %1 from disk? Ricaricare il file %1 dal disco? All unsaved changes will be lost. Tutte le modifiche non salvate verranno perse. Reload Ricarica Plain Text (*.txt) Testo semplice (*.txt) Question Domanda Saving as plain text will discard all formatting. Discard formatting? Salvando come testo semplice la formattazione verrà persa. Eliminare la formattazione? OpenDocument Text (*.odt) OpenDocument (*.odt) Rich Text (*.rtf) Rich Text (*.rtf) All Files (*) Tutti i file (*) DocumentWatcher File Changed File modificato The file %1 was changed by another program. Il file %1 è stato modificato da un altro programma. Do you want to reload the file? Vuoi ricaricare il file? Reload Ricarica Ignore Ignora File Deleted File eliminato The file %1 was deleted by another program. Il file %1 è stato modificato da un altro programma. Do you want to save or close the file? Vuoi salvare o chiudere il file? FindDialog Search for: Cerca: Replace with: Sostituire con: Ignore case Ignora maiuscole/minuscole Whole words only Solo parole intere Regular expressions Espressioni regolari Search up Cerca su Search down Cerca giù &Find &Cerca &Replace &Sostituisci Replace &All Sostitusci &tutto Find Trova Replace Sostituisci Replace %n instance(s)? Sostituire %n istanze? Sostituire %n istanze? Question Domanda Sorry Spiacente Phrase not found. Frase non trovata. Highlighter Add Aggiungi Check Spelling... Controllo ortografico... (No suggestions found) (Nessun suggerimento trovato) ImageButton Open Image Apri immagine Images(%1) Immagini (%1) LocaleDialog Select application language: Selezionare una lingua per l'applicazione: <System Language> <Lingua di sistema> Note Nota Please restart this application for the change in language to take effect. Per modificare la lingua riavviare l'applicazione. PreferencesDialog Preferences Preferenze General Generale Statistics Statistiche Toolbar Toolbar Spell Checking Controllo ortografico Select Dictionary Selezionare Dizionario Sorry Spiacente Unable to open archive. Impossibile aprire archivio. Unable to read archive metadata. Impossibile leggere i metadati dell'archivio. The archive does not contain a usable dictionary. L'archivio non contiene un dizionario utilizzabile. Unable to open file '%1'. Impossibile aprire il file '%1'. Unable to close file '%1'. Impossibile chiudere il file '%1' Question Domanda Shortcuts Scorciatioie One or more shortcuts conflict. Do you wish to proceed? C'è un conflitto di scorciatoie. Continuare? The dictionary "%1" already exists. Do you want to replace it? Il dizionario "%1" esiste già. Vuoi sostituirlo? Daily Goal Obiettivo giornaliero None Nessuno Minutes: Minuti: Words: Parole: Editing Modifica Always vertically center Sempre centrato in verticale Block insertion cursor Blocca inserimento del cursore Smooth fonts Font "morbide" Typewriter sounds Suoni della macchina da scrivere Smart quotes: Virgolette: Double Doppie Single Singole Scenes Scene Divider: Divisore Saving Salvataggio Automatically save changes Salva automaticamente le modifiche Remember cursor position Ricorda la posizione del cursore Contents Contenuti Word count Conteggio parole Page count Conteggio pagine Paragraph count Conteggio paragrafi Character count Conteggio caratteri Page Size Dimensioni pagina Characters: Caratteri: Paragraphs: Paragrafi: Word Count Algorithm Algoritmo di conteggio parole Detect word boundaries Rileva limiti delle parole Divide character count by six Dividere per sei il conteggio caratteri Style Stile Icons Only Solo icone Text Only Solo testo Text Alongside Icons Testo e icone allineate Text Under Icons Testo sotto le icone Text Position: Posizione testo: Actions Azioni Move Up Sposta su Move Down Sposta giù Add Separator Aggiungi separatore Command Comando Shortcut Scorciatoia Action Azione Check spelling as you type Controllo ortografico durante la digitazione Ignore words in UPPERCASE Ignora parole MAIUSCOLE Ignore words with numbers Ignora parole con numeri Language Lingua Add Aggiungi Remove Rimuovi Personal Dictionary Dizionario personale Reader Not a supported RTF file. Non è un file RTF supportato. Unable to open archive. Impossibile aprire archivio. Unable to open file '%1'. Impossibile aprire il file '%1'. Unable to close file '%1'. Impossibile chiudere il file '%1'. SceneList Ctrl+Shift+Down Ctrl+Shift+Giù Move Scenes Up Sposta scene su Ctrl+Shift+Up Ctrl+Shift+Su Toggle Scene List Attiva lista scene Shift+F4 Shift+F4 Show scene list (%1) Visualizza lista scene (%1) Hide scene list (%1) Nascondi lista scene (%1) Filter Filtro Move Scenes Down Sposta scene giù Resize scene list Ridimensiona lista scene Session Default Default SessionManager Manage Sessions Gestione sessioni S&essions S&essioni New Nuova Rename Rinomina Clone Clona Delete Elimina Switch To Passa a New Session Nuova sessione Clone Session Clona sessione Rename Session Rinomina sessione Question Domanda Delete selected session? Eliminare sessione selezionata? Session name: Nome sessione: Sorry Spiacente The requested session name is already in use. Il nome di sessione richiesto è già in uso. &New... &New... Ctrl+Shift+N Ctrl + Maiusc + N &Manage... &Gestione... Ctrl+Shift+M Ctrl + Maiusc + M ShortcutEdit Clear Elimina Reset to Default Ripristina default Shortcut: Scorciatoia: SmartQuote Replacing quotation marks... Sostituzione virgolette ... Please Wait Attendere prego SpellChecker Check Spelling Controllo ortografico &Add &Aggiungi &Ignore &Ignora I&gnore All Ignora &tutto &Change &Cambia C&hange All Cambia t&utto Not in dictionary: Non nel dizionario: Change to: Cambia in: Checking spelling... Controllo ortografico... Cancel Annulla Please wait Attendere prego Spell check complete. Controllo ortografico completato. SymbolsDialog Symbols Simboli Recently used symbols Simboli usati recentemente All symbols Tutti i simboli Details Dettagli Name: Nome: Insert Inserisci SymbolsModel Blocks Blocchi Scripts Script Theme Untitled %1 Senza titolo %1 ThemeDialog Modify Theme Modifica tema Name: Nome: Background Sfondo No Image Nessuna Immagine Tiled Piastrellato Centered Centrato Stretched Stirato Scaled Scalato Zoomed Zoommato Remove Rimuovi Type: Tipo: Color: Colore: Image: Immagine: Foreground Primo piano Opacity Opacità pixels pixel Left Sinistra Right Destra Position Posizione Size: Dimensioni: Rounding: Arrotondamento: Margin: Margine: Padding: Margine esterno: Text Testo Font: Tipo di carattere: Misspelled: Errori di ortografia: Spacings Spaziature Line Spacing Interlinea Single Singola 1.5 Lines 1.5 linee Double Doppia Proportional Proporzionale Paragraph Spacing Spaziatura paragrafi Indent First Line: Indenta prima linea: Pixels Above: Pixel sopra Pixels Below: Pixel sotto The quick brown fox jumps over the lazy dog Lorem ipsum dolor sit amet, consectetur adipiscing elit. ThemeManager Themes Temi Add Aggiungi Modify Modifica Remove Rimuovi Import Importa Export Export Close Chiudi Question Domanda Remove selected theme? Rimuovere il tema scelto? Import Theme Importa Tema Themes (*.fwtz *.theme) I temi (*.fwtz *.theme) Themes (*.fwtz) I temi (*.fwtz) Sorry Spiacente A theme already exists with that name. Please enter a new name: Esiste già un tema con quel nome. Si prega di inserire un nuovo nome: Export Theme Esporta Tema Timer <b>%1</b> - %2 <b>%1</b> - %2 Question Domanda Delete timer? Cancella timer? <b>Words:</b> %L1 <b>Parole</b> %L1 <b>Pages:</b> %L1 <b>Pagine</b> %L1 <b>Paragraphs:</b> %L1 <b>Paragrafi</b> %L1 <b>Characters:</b> %L1 / %L2 <b>Caratteri</b> %L1 / %L2 Set Delay Imposta ritardo Set Time Imposta tempo Delay: Ritardo: Time: Tempo: HH:mm:ss HH:mm:ss Alarm Allarme Type: Tipo: Memo: Memo: Edit Modifica Delete Elimina TimerDisplay HH:mm:ss HH:mm:ss No timers running Nessun timer in esecuzione TimerManager Timers Timer New Nuovo Recent Recenti Question Domanda Cancel editing timers? Annulla modifica timer? +HH:mm:ss +HH:mm:ss %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. Fine del file raggiunta inaspettatamente. Window Loading themes Caricamento temi Loading sounds Caricamento suoni Untitled Senza nome Open File Apri file About FocusWriter A proposito di FocusWriter FocusWriter FocusWriter A simple fullscreen word processor Un semplice editor di testo a pieno schermo Copyright &copy; 2008-%1 Graeme Gott Copyright &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Rilasciato sotto licenza <a href=%1>GPL 3</a> Uses icons from the <a href=%1>Oxygen</a> icon theme Utilizza icone del tema <a href=%1>Oxygen</a> Used under the <a href=%1>LGPL 3</a> license Sotto licenza <a href=%1>LGPL 3</a> Characters: %L1 / %L2 Caratteri:%L1 / %L2 Pages: %L1 Pagine: %L1 Paragraphs: %L1 Paragrafi: %L1 Words: %L1 Parole: %L1 %1% of daily goal %1% dell' obiettivo giornaliero Opening %1 Apertura %1 Question Domanda Save changes? Salvare le modifiche? (Untitled %1) (Senza nome %1) Switch to Next Document Passa al documento successivo Switch to Previous Document Passa al documento precedente Switch to First Document Passa al primo documento Switch to Last Document Passa all'ultimo documento Switch to Document %1 Passa al documento %1 Loading settings Caricamento impostazioni Emergency cache is not writable. La cache di emergenza non è scrivibile Warning Attenzione FocusWriter was not shut down cleanly. FocusWriter non è stato chiuso correttamente. Restore from the emergency cache? Ripristinare dalla cache di emergenza? Some files could not be opened. Non è stato possibile aprire alcuni file. Some files were opened Read-Only. Alcuni file sono stati aperti in sola lettura. Text Files (%1);;All Files (*) File di testo (%1);;Tutti i file (*) '%1' is newer than the cached copy. '%1' è più recente della copia in cache. Overwrite newer file? Sovrascrivere il file più recente? Unable to load typewriter sounds. Impossibile caricare i suoni della macchina per scrivere. Please make sure that SDL_mixer is installed. Accertati che SDL_mixer sia installato. %1 (Read-Only) %1 (sola lettura) &File &File &New &Nuovo &Open... &Apri... Reloa&d Ricarica &Save &Salva Save &As... Salva &con nome... &Rename... &Rinomina... Save A&ll Salva Manage Sessions Gestione sessioni New Session Nuova sessione &Print... &Stampa... &Close &Chiudi &Quit &Esci Ctrl+Q Ctrl + Q &Edit &Modifica &Undo &Annulla &Redo &Ripeti Cu&t Ta&glia &Copy &Copia &Paste &Incolla Paste &Unformatted Incolla &non formattato Ctrl+Shift+V Ctrl+Shift+V Select &All Seleziona &tutto Select &Scene Seleziona &scena Ctrl+Shift+A Ctrl+Shift+A Fo&rmat For&matta &Bold &Grassetto &Italic &Corsivo &Underline &Sottolineato Stri&kethrough Bar&rato Ctrl+K Ctrl + K Sup&erscript Ap&ice Ctrl+^ Ctrl + ^ &Subscript &Pedice Ctrl+_ Ctrl + _ Align &Left Allinea &Sinistra Ctrl+{ Ctrl + { Align &Center Allinea &Cenro Ctrl+| Ctrl + | Align &Right Allinea &Right Ctrl+} Ctrl + } Align &Justify Allineare &p;Giustificato Ctrl+J Ctrl + J &Decrease Indent & Riduci rientro Ctrl+< Ctrl + < I&ncrease Indent A&umentare rientro Ctrl+> Ctrl + > Le&ft to Right Block Blocco da sinistra a destra Ri&ght to Left Block Blocco da destra a sinistra &Tools &Strumenti &Find... &Trova... Find &Next Trova &successivo Find Pre&vious Trova Pre&cedente &Replace... &Sostituisci... Ctrl+R Ctrl+R Smart &Quotes &Citazioni Update &Document Aggiorna &document Update &Selection Aggiorna &selezione &Spelling... &Ortografia... F7 F7 &Timers... &Timer... S&ymbols... S&imboli &Settings &Impostazioni Show &Toolbar Mostra &barra degli strumenti Show &Menu Icons Mostra &icone del menu F&ocused Text Testo a fuoco &Fullscreen &Schermo intero F11 F11 Esc Esc M&inimize M&inimizza Ctrl+M Ctrl+M &Themes... &Temi... &Preferences... &Preferenze... Focus Off Messa a fuoco disattivata Focus One Line Metti a fuoco una linea Focus Three Lines Metti a fuoco tre linee &Paragraph &Paragrafo Focus Paragraph Paragrafo a fuoco &Help &Aiuto Application &Language... Lingua &applicazione... Some files were unsupported and could not be opened. Qualche file non è supportato e non è stato aperto. &Off Non attivo One &Line Una &Linea &Three Lines &Tre Linee &About &Informazioni su About &Qt Informazioni su &Qt focuswriter-1.4.5/translations/focuswriter_ja.qm000066400000000000000000000655641231434177300222300ustar00rootroot00000000000000*BBMb<-D 3+0VEcV 5 *$@*y@*Ag*%A*D*0B8+D7+D +D+įF@H(;}J+(J6E$J67KQ 9Mez/PR.S*<T-T1X3Z4uZiZi Zi.Zi(Zi8Z%[5[=%\5\=J\*_ >EHc4I%{ O(>Ϩ%Q*3]T$~X.j0n0n pP21q9tZI^\XO"^`S^ /#cS ~DaqZefOzX7m:J@F6@HC`f3FsO?.?jcQ"I'a:~VQ(Pl, P4H9(r^7w22J1 )';4$N&WA|F68ᑞ,gs>bN$ 9`~Y( W51E!M@9OZ"lu.z^Ԏ$@Di*Z#.1 VZI*6Z/JJK"KOK|KKLL+L,M-M5(;,%,;bX^%%/MV~g2nIȞnMhDjv7::!+ V^AS*}08v7-Z IC-az0dD+E8QY'OT?5t5tFF3F8vH5'GM4 }!gN%qN%4G2G9"<?;t]r:;M%dݲ sjcsFc6JAU@/N2548NYB:I[II?JI<Z[#g2 lBmzC4C0)Q.3lH(̊|+OO!޷)!1?*;\DS+zR< uR.lC8m up.xUN2:^)fQm!WYw+S2=9} ZG9Nf/Sc|>C-|w_p }]}4[PP0SU%%' I4C&CCRb \~C >V ,b ") %^ Y v Y z zQ .3y JE W& WR .` ' ·= .^ : l Ń8 +I :[ ;fW d8 eE *C q^ t$ OS ʀs-- ˔F ˼C, z_` B[ f V*y c- ^"s Bh # L.$ f(@ iq_= w9. xj, {"uW NTg K : ʫT ʫ ʫ ʫ& ʫ8I ʫ< ʫ> ʫT = A) pU] 0 ES cc>& C 6Z >E J3 Z$/Q e< iN!S tfW! u ' sE 6J C3I b * t 1? \ sA D]: O# 8j DYL DY%+ DY%r DZLB ^3 no; uu8 {N  P_ I  <| ޘG ZcG n mE1vNltrAcX  "dPA U4[THdj#@A L9#vW0eTiTsGqI"!-z C"  i_r0X0 (%1) Close (%1)Alert00000 (&S)CollapseAlerts}0ExpandAlert Ctrl+DCtrl+D AlertLayerfTJ0q!0Y0 Dismiss Alert AlertLayer0Y0y0f0n0000 (*.*) All Files (*)Document(O[X0U00f0D0j0DY f0o0Y0y0fY1000~0Y0!All unsaved changes will be lost.Document.OpenDocument _b_ (*.odt)OpenDocument Text (*.odt)Document0000ef (*.txt)Plain Text (*.txt)Document UO0DT00[QuestionDocument Q00ReloadDocument00000Q000Y0 Reload FileDocument&0000 %1 0Q000W0~0Y0KReload the file %1 from disk?Document0000T 0nY f Rename FileDocument$000 0000_b_ (*.rtf)Rich Text (*.rtf)DocumentT RM0N0Q0fO[X Save File AsDocumentP0000000000h0W0fO[X0W0_X4T00Y0y0f0nf_0LY1000~0Y0000W0D0g0Y0KESaving as plain text will discard all formatting. Discard formatting?Document000SorryDocument.'%1' 0N f0M0Y00S0h0L0g0M0~0[00g0W0_0Unable to overwrite '%1'.Document('%1' 0nT RM0Y f0g0M0~0[00g0W0_0Unable to rename '%1'.Document"'%1' 0O[X0g0M0~0[00g0W0_0Unable to save '%1'.Document0000000v0W0~0Y0KDo you want to reload the file?DocumentWatcher"00000O[X00~0_0o0X0~0Y0K&Do you want to save or close the file?DocumentWatcher00000LY f0U00f0D0~0Y File ChangedDocumentWatcher00000LRJd0U00~0W0_ File DeletedDocumentWatcherq!IgnoreDocumentWatcher Q00ReloadDocumentWatcher8N0n000000k000000 %1 0oY f0U00f0D0~0Y0+The file %1 was changed by another program.DocumentWatcher6N0n000000k000000 %1 0oRJd0U00~0W0_0+The file %1 was deleted by another program.DocumentWatcheri}" (&F)&Find FindDialognc (&R)&Replace FindDialogi}"Find FindDialogY'e[W0h\e[W0S:R%0W0j0D Ignore case FindDialog0d0K00~0[00g0W0_0Phrase not found. FindDialogxQuestion FindDialogkchsRegular expressions FindDialogncReplace FindDialog%n Nnc0W0~0Y0KReplace %n instance(s)? FindDialog0Y0y0fnc (&A) Replace &All FindDialognc_0ne[WR: Replace with: FindDialogk!0i}" Search down FindDialogi}"0Y0e[WR: Search for: FindDialogRM0i}" Search up FindDialog000Sorry FindDialogSXSXOM0gc0YWhole words only FindDialog"(OkcP0o0d0K00~0[00g0W0_)(No suggestions found) HighlighterRAdd Highlighter0000000...Check Spelling... Highlighteru;P (%1) Images(%1) ImageButton u;P0nxb Open Image ImageButton<00000n> LocaleDialoglaNote LocaleDialogB0nY f0Sf 0U0[00_00k000000000QwR0W0f0O0`0U0D0JPlease restart this application for the change in language to take effect. LocaleDialog 0nxb:Select application language: LocaleDialog 00000ActionPreferencesDialog 00000ActionsPreferencesDialogRAddPreferencesDialog0000000R Add SeparatorPreferencesDialog$0000OMn0^80k~&eT0nN-Y.0k0Y0Always vertically centerPreferencesDialogY f0Rv0kO[X0Y0Automatically save changesPreferencesDialog(c?Qe0000g00000_b0n00000O0FBlock insertion cursorPreferencesDialoge[WepCharacter countPreferencesDialoge[W Characters:PreferencesDialog0000Y00T0h0k00000Y0Check spelling as you typePreferencesDialog0000CommandPreferencesDialogQ[ContentsPreferencesDialog Ne0nvj Daily GoalPreferencesDialogSX0nXuL0X0Y0Detect word boundariesPreferencesDialoge[Wep0 6 0gRr0Divide character count by sixPreferencesDialog000000:Divider:PreferencesDialogNDoublePreferencesDialog}EditingPreferencesDialogN,GeneralPreferencesDialog 00000n0 Icons OnlyPreferencesDialogY'e[W0q!0Y0Ignore words in UPPERCASEPreferencesDialogep[W0LT+0~00SX0q!0Y0Ignore words with numbersPreferencesDialogLanguagePreferencesDialogR:Minutes:PreferencesDialogN 0xyR Move DownPreferencesDialogN 0xyRMove UpPreferencesDialog0j0WNonePreferencesDialogJ00000000L0D0O0d0K0000000W0f0D0~0Y0}L0W0f0000W0D0g0Y0K7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialog0000n000 Page SizePreferencesDialog000ep Page countPreferencesDialogk=epParagraph countPreferencesDialogk= Paragraphs:PreferencesDialog 0000fPersonal DictionaryPreferencesDialog-[ PreferencesPreferencesDialogxQuestionPreferencesDialog0000OMn0a0Y0Remember cursor positionPreferencesDialogRJdRemovePreferencesDialogO[XSavingPreferencesDialog 000NScenesPreferencesDialog f0nxbSelect DictionaryPreferencesDialog0000000ShortcutPreferencesDialog0000000N ShortcutsPreferencesDialogNSinglePreferencesDialog0000_u({&: Smart quotes:PreferencesDialog000000j000K0k0Y0 Smooth fontsPreferencesDialog000SorryPreferencesDialog0000000Spell CheckingPreferencesDialog}q StatisticsPreferencesDialog0000StylePreferencesDialog00000nj*0ke[WText Alongside IconsPreferencesDialoge[W0n0 Text OnlyPreferencesDialog e[W0nOMn:Text Position:PreferencesDialog00000nN 0ke[WText Under IconsPreferencesDialog00S0n000000k0og R0jf0LT+0~00f0D0~0[001The archive does not contain a usable dictionary.PreferencesDialogB"%1" 0h0D0FT RM0nf0oe0k0B00~0Y0n0Mc0H0f0o0D0g0Y0K>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialog 000 00ToolbarPreferencesDialog00000000Qu0Y0Typewriter soundsPreferencesDialog '%1' 00X00~0[00g0W0_0Unable to close file '%1'.PreferencesDialog0000000Q0~0[00g0W0_0Unable to open archive.PreferencesDialog'%1' 00Q0~0[00g0W0_0Unable to open file '%1'.PreferencesDialog.000000n000000000~0[00g0W0_0 Unable to read archive metadata.PreferencesDialogSX00000000000Word Count AlgorithmPreferencesDialogSXep Word countPreferencesDialog:Words:PreferencesDialog,00000W0f0D0j0D000 0000_b_0g0Y0Not a supported RTF file.Reader '%1' 00X00~0[00g0W0_0Unable to close file '%1'.Reader0000000Q0~0[00g0W0_0Unable to open archive.Reader'%1' 00Q0~0[00g0W0_0Unable to open file '%1'.ReaderCtrl+Shift+DownCtrl+Shift+Down SceneListCtrl+Shift+Up Ctrl+Shift+Up SceneList}^0Filter SceneList 00000000n^hy: (%1)Hide scene list (%1) SceneList00000r0h0dN 0kyRMove Scenes Down SceneList00000r0h0dN 0kyRMove Scenes Up SceneList00000000n0000Resize scene list SceneListShift+F4Shift+F4 SceneList00000000nhy: (%1)Show scene list (%1) SceneList00000000nhy:0nR0f0HToggle Scene List SceneList 00000DefaultSession{t (&M)... &Manage...SessionManagere (&N)...&New...SessionManagerCloneSessionManager000000n Clone SessionSessionManagerCtrl+Shift+M Ctrl+Shift+MSessionManagerCtrl+Shift+N Ctrl+Shift+NSessionManagerRJdDeleteSessionManager"xbN-0n000000RJd0W0~0Y0KDelete selected session?SessionManager000000n{tManage SessionsSessionManagereNewSessionManagere0W0D00000 New SessionSessionManagerxQuestionSessionManager T RM0nY fRenameSessionManager00000T 0nY fRename SessionSessionManager00000 (&S) S&essionsSessionManager00000T : Session name:SessionManager000SorrySessionManagerR0f0H Switch ToSessionManager$c[0W0_00000T 0oe0k0B00~0Y0-The requested session name is already in use.SessionManagermSClear ShortcutEdit000000kb;0YReset to Default ShortcutEdit0000000: Shortcut: ShortcutEdit0J_0a0O0`0U0D Please Wait SmartQuote_u({&0nnc...Replacing quotation marks... SmartQuoteR (&A)&Add SpellCheckerY f (&C)&Change SpellCheckerq! (&I)&Ignore SpellChecker0Y0y0fY f (&H) C&hange All SpellChecker 00000Cancel SpellCheckerY f_: Change to: SpellChecker0000000Check Spelling SpellChecker0000000N-0g0Y...Checking spelling... SpellChecker0Y0y0fq! (&G) I&gnore All SpellCheckerf0k0j0D00n:Not in dictionary: SpellChecker0J_0a0O0`0U0D Please wait SpellChecker00000000L}B000~0W0_0Spell check complete. SpellChecker0Y0y0f0n0000 All symbols SymbolsDialogs}0Details SymbolsDialogc?QeInsert SymbolsDialogT RM:Name: SymbolsDialoggO0c0_0000Recently used symbols SymbolsDialog 0000NSymbols SymbolsDialog0000Blocks SymbolsModel 00000Scripts SymbolsModel q!L %1 Untitled %1Theme 0000 pixels ThemeDialog1.5P  1.5 Lines ThemeDialogfo Background ThemeDialog N-Y.0khy:Centered ThemeDialogfor:Color: ThemeDialog2P Double ThemeDialog 0000:Font: ThemeDialogRMfo Foreground ThemeDialogu;P:Image: ThemeDialogNLv0n00000Indent First Line: ThemeDialog][0[Left ThemeDialogL0n0000 Line Spacing ThemeDialog YPt0nOYv}:Margin: ThemeDialog 00000: Misspelled: ThemeDialog 0000n} Modify Theme ThemeDialogT RM:Name: ThemeDialog 00000j0WNo Image ThemeDialogf^Opacity ThemeDialog QPt0nOYv}:Padding: ThemeDialogk=0n0000Paragraph Spacing ThemeDialog N 0nOYv}: Pixels Above: ThemeDialog N 0nOYv}: Pixels Below: ThemeDialogOMnPosition ThemeDialog00000000 Proportional ThemeDialogRJdRemove ThemeDialogS[0[Right ThemeDialog 0nN80U: Rounding: ThemeDialog000~&^E0kT00[0Scaled ThemeDialog0000Single ThemeDialogY'0M0U:Size: ThemeDialogOYv}Spacings ThemeDialogu;b0kT00[0fO8~. Stretched ThemeDialoge[WText ThemeDialog4Windows 0g00000000nNuL0L^0L00~0Y0+The quick brown fox jumps over the lazy dog ThemeDialog N&0y0fhy:Tiled ThemeDialog u;P0nMn:Type: ThemeDialog000j*^E0kT00[0Zoomed ThemeDialog<0]0nT RM0n0000oe0k0B00~0Y0N0nT RM0c[0W0f0O0`0U0D0?A theme already exists with that name. Please enter a new name: ThemeManagerRAdd ThemeManager0X0Close ThemeManager 000000Export ThemeManager0000n000000 Export Theme ThemeManager 00000Import ThemeManager0000n00000 Import Theme ThemeManager}Modify ThemeManagerxQuestion ThemeManagerRJdRemove ThemeManagerxbN-0n0000RJd0W0~0Y0KRemove selected theme? ThemeManager000Sorry ThemeManager000Themes ThemeManager(000 (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManager000 (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer*<b>e[Wep:</b> %L1 / %L2Characters: %L1 / %L2Timer <b>000ep:</b> %L1Pages: %L1Timer<b>k=ep:</b> %L1Paragraphs: %L1Timer<b>SXep:</b> %L1Words: %L1Timer0000AlarmTimerfB:Delay:TimerRJdDeleteTimer00000RJd0W0~0Y0K Delete timer?Timer}EditTimerHH:mm:ssHH:mm:ssTimer00:Memo:TimerxQuestionTimer fB0gc[ Set DelayTimer fBR;0gc[Set TimeTimerfBR;:Time:Timerz.^:Type:TimerHH:mm:ssHH:mm:ss TimerDisplay00000o0B00~0[00No timers running TimerDisplay%1 - %2%1 - %2 TimerManager+HH:mm:ss +HH:mm:ss TimerManager00000n}0N-kb0W0~0Y0KCancel editing timers? TimerManagereO\bNew TimerManagerxQuestion TimerManager\ektRecent TimerManager0000Timers TimerManager00000ng_0kR0T0W0~0W0_0!Unexpectedly reached end of file. Tokenizer%1 (00\u()%1 (Read-Only)WindowNe0nvj0n %1%%1% of daily goalWindow*FocusWriter 0k0d0D0f (&A)&AboutWindowY*[W (&B)&BoldWindow0X0 (&C)&CloseWindow000 (&C)&CopyWindow000000n00Y (&D)&Decrease IndentWindow} (&E)&EditWindow0000 (&F)&FileWindowi}" (&F)...&Find...WindowQhu;bhy: (&F) &FullscreenWindow000 (&H)&HelpWindoweOS (&I)&ItalicWindoweO\b (&N)&NewWindow00 (&O)&OffWindow0O (&O)...&Open...Windowk= (&P) &ParagraphWindow0N0Q (&P)&PasteWindow-[ (&P)...&Preferences...WindowSpR7 (&P)... &Print...Window}BN (&Q)&QuitWindow00v0W (&R)&RedoWindowT RM0nY f (&R)... &Rename...Windownc (&R)... &Replace...WindowO[X (&S)...&SaveWindow-[ (&S) &SettingsWindow0000000 (&S)... &Spelling...WindowN N0Me[W (&S) &SubscriptWindow000 (&T)... &Themes...WindowN L (&T) &Three LinesWindow0000 (&T)... &Timers...Window000 (&T)&ToolsWindowN } (&U) &UnderlineWindowQC0kb;0Y (&U)&UndoWindow*'%1' 0o0000000e0W0D00F0g0Y0#'%1' is newer than the cached copy.Window(q!L %1) (Untitled %1)WindowDA simple fullscreen word processor"A simple fullscreen word processorWindowQt 0k0d0D0f (&Q) About &QtWindow FocusWriter 0k0d0D0fAbout FocusWriterWindowN-Y.c0H (&C) Align &CenterWindowWG{IRrN (&J)Align &JustifyWindow]c0H (&L) Align &LeftWindowSc0H (&R) Align &RightWindow0Application &Language...Application &Language...Windowe[Wep: %L1 / %L2Characters: %L1 / %L2WindowHCopyright &copy; 2008-%1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindow Ctrl+<Ctrl+<Window Ctrl+>Ctrl+>Window Ctrl+JCtrl+JWindow Ctrl+KCtrl+KWindow Ctrl+MCtrl+MWindow Ctrl+QCtrl+QWindow Ctrl+RCtrl+RWindowCtrl+Shift+A Ctrl+Shift+AWindowCtrl+Shift+V Ctrl+Shift+VWindow Ctrl+^Ctrl+^Window Ctrl+_Ctrl+_Window Ctrl+{Ctrl+{Window Ctrl+|Ctrl+|Window Ctrl+}Ctrl+}WindowR0S0 (&T)Cu&tWindow4}`%u(0n000000kf0M00S0h0L0g0M0~0[00g0W0_0 Emergency cache is not writable.WindowEscEscWindow000000U00_e[W (&O) F&ocused TextWindowF11F11WindowF7F7Windowk!0i}" (&N) Find &NextWindowRM0i}" (&V)Find Pre&viousWindowf_ (&R)Fo&rmatWindow000000nq!R Focus OffWindowNL00000Focus One LineWindowk=00000Focus ParagraphWindowN L00000Focus Three LinesWindowFocusWriter FocusWriterWindow6FocusWriter 0okc^80k}BN0g0M0~0[00g0W0_0&FocusWriter was not shut down cleanly.Window000000X00Y (&N)I&ncrease IndentWindow]0K0S0x (&F)Le&ft to Right BlockWindow-[0000g0D0~0YLoading settingsWindowX0000g0D0~0YLoading soundsWindow0000000g0D0~0YLoading themesWindowg\S (&I) M&inimizeWindow000000n{tManage SessionsWindowe00000 New SessionWindowNL (&L) One &LineWindow0O Open FileWindow%1 00D0f0D0~0Y Opening %1Window e0W0D00000N f0M0W0~0Y0KOverwrite newer file?Window000ep: %L1 Pages: %L1Windowk=ep: %L1Paragraphs: %L1Windowf_0q!0W0f0N0QPaste &UnformattedWindowDSDL_mixer 0L0000000U00f0D00S0h0x0W0f0O0`0U0D0-Please make sure that SDL_mixer is installed.WindowxQuestionWindow^Released under the <a href=%1>GPL 3</a> license/Released under the GPL 3 licenseWindowQ00 (&D)Reloa&dWindow&}`%u(0n000000K0_m;0U0[0~0Y0K!Restore from the emergency cache?WindowS0K0]0x (&G)Ri&ght to Left BlockWindow0000 (&Y)... S&ymbols...Window T RM0N0Q0fO[X (&A)... Save &As...Window0Y0y0fO[X (&L) Save A&llWindowY f0O[X0W0~0Y0K Save changes?Window0Y0y0fxb (&A) Select &AllWindow0000nxb (&S) Select &SceneWindow&0000v0n00000hy: (&M)Show &Menu IconsWindow000 000hy: (&T) Show &ToolbarWindow0000_u({& (&Q) Smart &QuotesWindow&0D0O0d0K0n00000L0Q0~0[00g0W0_0Some files could not be opened.Window.0D0O0d0K0000000S0\u(0g0M0~0W0_0!Some files were opened Read-Only.WindowN0D0O0d0K0n00000L00000U00f0D0j0D_b_0n0_00O0S0h0L0g0M0~0[00g0W0_04Some files were unsupported and could not be opened.WindowS0m0W} (&K)Stri&kethroughWindowN N0Me[W (&E) Sup&erscriptWindow%1 0xR0f0H0Switch to Document %1WindowgR0n0000000xR0f0H0Switch to First DocumentWindowg_0n0000000xR0f0H0Switch to Last DocumentWindowk!0n0000000xR0f0H0Switch to Next DocumentWindowRM0n0000000xR0f0H0Switch to Previous DocumentWindow20000ef (%1);;0Y0y0f0n0000 (*)Text Files (%1);;All Files (*)Window(00000000000~0[00g0W0_0!Unable to load typewriter sounds.Windowq!LUntitledWindowefQhOS0kiu( (&D)Update &DocumentWindowxb{V0kiu( (&S)Update &SelectionWindowXUsed under the <a href=%1>LGPL 3</a> license,Used under the LGPL 3 licenseWindowhUses icons from the <a href=%1>Oxygen</a> icon theme4Uses icons from the Oxygen icon themeWindowfTJWarningWindowSXep: %L1 Words: %L1Windowfocuswriter-1.4.5/translations/focuswriter_ja.ts000066400000000000000000002300261231434177300222240ustar00rootroot00000000000000 Alert Close (%1) 閉じる (%1) Collapse セッション (&S) Expand 詳細 AlertLayer Dismiss Alert 警告を無視する Ctrl+D Ctrl+D Document Sorry エラー Unable to save '%1'. '%1' を保存できませんでした。 Save File As 名前を付けて保存 Unable to overwrite '%1'. '%1' を上書きすることができませんでした。 Rename File ファイル名の変更 Unable to rename '%1'. '%1' の名前を変更できませんでした。 Reload File ファイルを再読み込みする Reload the file %1 from disk? ファイル %1 を再読み込みしますか? All unsaved changes will be lost. 保存されていない変更はすべて失われます。 Reload 再読み込み Plain Text (*.txt) テキスト文書 (*.txt) Question 問い合わせ Saving as plain text will discard all formatting. Discard formatting? プレーン・テキストとして保存した場合、すべての書式が失われます。よろしいですか? OpenDocument Text (*.odt) OpenDocument 形式 (*.odt) Rich Text (*.rtf) リッチ テキスト形式 (*.rtf) All Files (*) すべてのファイル (*.*) DocumentWatcher File Changed ファイルが変更されています The file %1 was changed by another program. 他のプログラムによりファイル %1 は変更されています。 Do you want to reload the file? ファイルを読み込み直しますか? Reload 再読み込み Ignore 無視 File Deleted ファイルが削除されました The file %1 was deleted by another program. 他のプログラムによりファイル %1 は削除されました。 Do you want to save or close the file? ファイルを保存、または閉じますか? FindDialog Search for: 検索する文字列: Replace with: 置換後の文字列: Ignore case 大文字と小文字を区別しない Whole words only 単語単位で探す Regular expressions 正規表現 Search up 前を検索 Search down 次を検索 &Find 検索 (&F) &Replace 置換 (&R) Replace &All すべて置換 (&A) Find 検索 Replace 置換 Replace %n instance(s)? %n 件置換しますか? Question 確認 Sorry エラー Phrase not found. 見つかりませんでした。 Highlighter Add 追加 Check Spelling... スペルチェック... (No suggestions found) (修正候補は見つかりませんでした) ImageButton Open Image 画像の選択 Images(%1) 画像 (%1) LocaleDialog Select application language: 言語の選択: <System Language> <システムの言語> Note 注意 Please restart this application for the change in language to take effect. 言語の変更を反映させるためにアプリケーションを再起動してください。 PreferencesDialog Preferences 設定 General 一般 Statistics 統計 Toolbar ツール バー Spell Checking スペルチェック Select Dictionary 辞書の選択 Sorry エラー Unable to open archive. アーカイブを開けませんでした。 Unable to read archive metadata. アーカイブのメタデータを読み込めませんでした。 The archive does not contain a usable dictionary. このアーカイブには有効な辞書が含まれていません。 Unable to open file '%1'. '%1' を開けませんでした。 Unable to close file '%1'. '%1' を閉じれませんでした。 Question 確認 Shortcuts ショートカット一覧 One or more shortcuts conflict. Do you wish to proceed? ショートカットがいくつかバッティングしています。続行してもよろしいですか? The dictionary "%1" already exists. Do you want to replace it? "%1" という名前の辞書は既にあります。置き換えても良いですか? Daily Goal 一日の目標 None なし Minutes: 分: Words: 語: Editing 編集 Always vertically center カーソル位置を常に縦方向の中央にする Block insertion cursor 挿入モードでもブロック形のカーソルを使う Smooth fonts フォントをなめらかにする Typewriter sounds タイプライター音を再生する Smart quotes: スマート引用符: Double 二重 Single 一重 Scenes シーン一覧 Divider: ディバイダー: Saving 保存 Automatically save changes 変更を自動的に保存する Remember cursor position カーソル位置を記憶する Contents 内容 Word count 単語数 Page count ページ数 Paragraph count 段落数 Character count 文字数 Page Size ページのサイズ Characters: 文字 Paragraphs: 段落 Word Count Algorithm 単語カウント・アルゴリズム Detect word boundaries 単語の境界を認識する Divide character count by six 文字数を 6 で割る Style スタイル Icons Only アイコンのみ Text Only 文字のみ Text Alongside Icons アイコンの横に文字 Text Under Icons アイコンの下に文字 Text Position: 文字の位置: Actions アクション Move Up 上へ移動 Move Down 下へ移動 Add Separator セパレーターを追加 Command コマンド Shortcut ショートカット Action アクション Check spelling as you type タイプするごとにチェックする Ignore words in UPPERCASE 大文字を無視する Ignore words with numbers 数字が含まれる単語を無視する Language 言語 Add 追加 Remove 削除 Personal Dictionary ユーザー辞書 Reader Not a supported RTF file. サポートしていないリッチ テキスト形式です。 Unable to open archive. アーカイブを開けませんでした。 Unable to open file '%1'. '%1' を開けませんでした。 Unable to close file '%1'. '%1' を閉じれませんでした。 SceneList Ctrl+Shift+Down Ctrl+Shift+Down Move Scenes Up シーンをひとつ上に移動 Ctrl+Shift+Up Ctrl+Shift+Up Toggle Scene List シーン・リストの表示の切り替え Shift+F4 Shift+F4 Show scene list (%1) シーン・リストの表示 (%1) Hide scene list (%1) シーン・リストの非表示 (%1) Filter 絞込み Move Scenes Down シーンをひとつ下に移動 Resize scene list シーン・リストのリサイズ Session Default デフォルト SessionManager Manage Sessions セッションの管理 S&essions セッション (&S) New 新規 Rename 名前の変更 Clone 複製 Delete 削除 Switch To 切り替え New Session 新しいセッション Clone Session セッションの複製 Rename Session セッション名の変更 Question 確認 Delete selected session? 選択中のセッションを削除しますか? Session name: セッション名: Sorry エラー The requested session name is already in use. 指定したセッション名は既にあります。 &New... 新規 (&N)... Ctrl+Shift+N Ctrl+Shift+N &Manage... 管理 (&M)... Ctrl+Shift+M Ctrl+Shift+M ShortcutEdit Clear 消去 Reset to Default デフォルトに戻す Shortcut: ショートカット: SmartQuote Replacing quotation marks... 引用符の置換... Please Wait お待ちください SpellChecker Check Spelling スペルチェック &Add 追加 (&A) &Ignore 無視 (&I) I&gnore All すべて無視 (&G) &Change 変更 (&C) C&hange All すべて変更 (&H) Not in dictionary: 辞書にないもの: Change to: 変更後: Checking spelling... スペルチェック中です... Cancel キャンセル Please wait お待ちください Spell check complete. スペルチェックが終わりました。 SymbolsDialog Symbols シンボル一覧 Recently used symbols 最近使ったシンボル All symbols すべてのシンボル Details 詳細 Name: 名前: Insert 挿入 SymbolsModel Blocks ブロック Scripts スクリプト Theme Untitled %1 無題 %1 ThemeDialog Modify Theme テーマの編集 Name: 名前: Background 背景 No Image イメージなし Tiled 並べて表示 Centered 中央に表示 Stretched 画面に合わせて伸縮 Scaled ページ縦幅に合わせる Zoomed ページ横幅に合わせる Remove 削除 Type: 画像の配置: Color: 背景色: Image: 画像: Foreground 前景 Opacity 透明度 pixels ピクセル Left 左寄せ Right 右寄せ Position 位置 Size: 大きさ: Rounding: 角の丸さ: Margin: 外側の余白: Padding: 内側の余白: Text 文字 Font: フォント: Misspelled: スペルミス: Spacings 余白 Line Spacing 行間のスペース Single シングル 1.5 Lines 1.5倍 Double 2倍 Proportional プロポーショナル Paragraph Spacing 段落間のマージン Indent First Line: 一行目のインデント Pixels Above: 上の余白: Pixels Below: 下の余白: The quick brown fox jumps over the lazy dog Windows でコンピューターの世界が広がります。 ThemeManager Themes テーマ Add 追加 Modify 編集 Remove 削除 Import インポート Export エクスポート Close 閉じる Question 確認 Remove selected theme? 選択中のテーマを削除しますか? Import Theme テーマのインポート Themes (*.fwtz *.theme) テーマ (*.fwtz *.theme) Themes (*.fwtz) テーマ (*.fwtz) Sorry エラー A theme already exists with that name. Please enter a new name: その名前のテーマは既にあります。他の名前を指定してください。 Export Theme テーマのエクスポート Timer <b>%1</b> - %2 <b>%1</b> - %2 Question 確認 Delete timer? タイマーを削除しますか? <b>Words:</b> %L1 <b>単語数:</b> %L1 <b>Pages:</b> %L1 <b>ページ数:</b> %L1 <b>Paragraphs:</b> %L1 <b>段落数:</b> %L1 <b>Characters:</b> %L1 / %L2 <b>文字数:</b> %L1 / %L2 Set Delay 時間で指定 Set Time 時刻で指定 Delay: 時間: Time: 時刻: HH:mm:ss HH:mm:ss Alarm アラーム Type: 種類: Memo: メモ: Edit 編集 Delete 削除 TimerDisplay HH:mm:ss HH:mm:ss No timers running タイマーはありません。 TimerManager Timers タイマー New 新規作成 Recent 履歴 Question 確認 Cancel editing timers? タイマーの編集を中止しますか? +HH:mm:ss +HH:mm:ss %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. ファイルの最後に到達しました。 Window Loading themes テーマを読み込んでいます Loading sounds 音声を読み込んでいます Untitled 無題 Open File 開く About FocusWriter FocusWriter について FocusWriter FocusWriter A simple fullscreen word processor A simple fullscreen word processor Copyright &copy; 2008-%1 Graeme Gott Copyright &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Released under the <a href=%1>GPL 3</a> license Uses icons from the <a href=%1>Oxygen</a> icon theme Uses icons from the <a href=%1>Oxygen</a> icon theme Used under the <a href=%1>LGPL 3</a> license Used under the <a href=%1>LGPL 3</a> license Characters: %L1 / %L2 文字数: %L1 / %L2 Pages: %L1 ページ数: %L1 Paragraphs: %L1 段落数: %L1 Words: %L1 単語数: %L1 %1% of daily goal 一日の目標の %1% Opening %1 %1 を開いています Question 確認 Save changes? 変更を保存しますか? (Untitled %1) (無題 %1) Switch to Next Document 次のドキュメントへ切り替える Switch to Previous Document 前のドキュメントへ切り替える Switch to First Document 最初のドキュメントへ切り替える Switch to Last Document 最後のドキュメントへ切り替える Switch to Document %1 %1 へ切り替える Loading settings 設定を読み込んでいます Emergency cache is not writable. 緊急用のキャッシュに書き込むことができませんでした。 Warning 警告 FocusWriter was not shut down cleanly. FocusWriter は正常に終了できませんでした。 Restore from the emergency cache? 緊急用のキャッシュから復活させますか? Some files could not be opened. いくつかのファイルが開けませんでした。 Some files were opened Read-Only. いくつかをファイルを読み取り専用で開きました。 Text Files (%1);;All Files (*) テキスト文書 (%1);;すべてのファイル (*) '%1' is newer than the cached copy. '%1' はキャッシュより新しいようです。 Overwrite newer file? 新しいファイルを上書きしますか? Unable to load typewriter sounds. タイプライター音を読み込めませんでした。 Please make sure that SDL_mixer is installed. SDL_mixer がインストールされていることを確認してください。 %1 (Read-Only) %1 (読み込み専用) &File ファイル (&F) &New 新規作成 (&N) &Open... 開く (&O)... Reloa&d 再読み込み (&D) &Save 保存 (&S)... Save &As... 名前を付けて保存 (&A)... &Rename... 名前の変更 (&R)... Save A&ll すべて保存 (&L) Manage Sessions セッションの管理 New Session 新規セッション &Print... 印刷 (&P)... &Close 閉じる (&C) &Quit 終了 (&Q) Ctrl+Q Ctrl+Q &Edit 編集 (&E) &Undo 元に戻す (&U) &Redo やり直し (&R) Cu&t 切り取り (&T) &Copy コピー (&C) &Paste 貼り付け (&P) Paste &Unformatted 書式を無視して貼り付け Ctrl+Shift+V Ctrl+Shift+V Select &All すべて選択 (&A) Select &Scene シーンの選択 (&S) Ctrl+Shift+A Ctrl+Shift+A Fo&rmat 書式 (&R) &Bold 太字 (&B) &Italic 斜体 (&I) &Underline 下線 (&U) Stri&kethrough 取り消し線 (&K) Ctrl+K Ctrl+K Sup&erscript 下付き文字 (&E) Ctrl+^ Ctrl+^ &Subscript 上付き文字 (&S) Ctrl+_ Ctrl+_ Align &Left 左揃え (&L) Ctrl+{ Ctrl+{ Align &Center 中央揃え (&C) Ctrl+| Ctrl+| Align &Right 右揃え (&R) Ctrl+} Ctrl+} Align &Justify 均等割付 (&J) Ctrl+J Ctrl+J &Decrease Indent インデントを減らす (&D) Ctrl+< Ctrl+< I&ncrease Indent インデントを増やす (&N) Ctrl+> Ctrl+> Le&ft to Right Block 左から右へ (&F) Ri&ght to Left Block 右から左へ (&G) &Tools ツール (&T) &Find... 検索 (&F)... Find &Next 次を検索 (&N) Find Pre&vious 前を検索 (&V) &Replace... 置換 (&R)... Ctrl+R Ctrl+R Smart &Quotes スマート引用符 (&Q) Update &Document 文書全体に適用 (&D) Update &Selection 選択範囲に適用 (&S) &Spelling... スペルチェック (&S)... F7 F7 &Timers... タイマー (&T)... S&ymbols... シンボル (&Y)... &Settings 設定 (&S) Show &Toolbar ツール バーを表示 (&T) Show &Menu Icons メニュー項目のアイコンを表示 (&M) F&ocused Text フォーカスされた文字 (&O) &Fullscreen 全画面表示 (&F) F11 F11 Esc Esc M&inimize 最小化 (&I) Ctrl+M Ctrl+M &Themes... テーマ (&T)... &Preferences... 設定 (&P)... Focus Off フォーカスの無効 Focus One Line 一行フォーカス Focus Three Lines 三行フォーカス &Paragraph 段落 (&P) Focus Paragraph 段落フォーカス &Help ヘルプ (&H) Application &Language... Application &Language... Some files were unsupported and could not be opened. いくつかのファイルがサポートされていない形式のため開くことができませんでした。 &Off オフ (&O) One &Line 一行 (&L) &Three Lines 三行 (&T) &About FocusWriter について (&A) About &Qt Qt について (&Q) focuswriter-1.4.5/translations/focuswriter_ko.qm000066400000000000000000000642501231434177300222360ustar00rootroot00000000000000)B:BgK<D +0nVEOV 4*$@*y@*AA*%Ag*D*0A+C+Cy+D4+įE@H(;kJ+(J6E$uJ67KQ 3Mez/PPjS*Dc4G{ O'Ϩ%Of3]R<~V.f0n0n 2P21q9tW^Z#V~M"[S^ .zcS ~DaqXeefNPzX^7Y:J@X6@GfBf3EkN?.?vcP/"H'a:~TO(N, <4G9(,^7w2w2J0)';$$LWA|E>8ᑞ,\Qs>TN$ 9`~Wz( W5 E!M@9IZ"luz^Ԏ#C*iZ#- T^I*6Z/II\I~IIJJ=JjKKB+Ko,K-K(;,%m,;bVH%%/sM~g26HBȞnLhDXv7*:!*VLAQV}0v7- IC-s}az0,D+HE7QY'T?5tm5tF F3iF8nH5&G;3o!5N%KN%4-2F9<?ItZr:1M%dݲ ijcsEc6HU@/M2528NW:H II?JI<Z[#g1lBmpzC4C).3lF̊|+OIO ޷(!1o*YR+zP< uR.lC m Op.}xSMP2^)fO!UYw+ 2=9} >G9Nuf/Q|>B|w;p }Z4Y2PNSS%%' =4C%CP \~CG >T ," ")Q %^ Y v Y z zE .3E JD W&e WP . ' ·= .^ 4 j Ń( +I :Yv ;fU d8i eE * q^ t# M ʀs, ˔E ˼C, z_\ BX f V*5 c- ^"; B #{ L.$7 f( iq\s w9.H xj+ {"uU NR / : ʫ0 ʫ ʫu ʫ& ʫ8- ʫ< ʫ> ʫS 7 A) pU[% / EQ( c<= c=q >c> C 6X4 >D J3 Z$/ e< iN!Q tfU% u 'T sDZ 62 C33 @  t 1! \ sA DZ M 8j DYJ DY$ DY%& DZJ ^3 no; uu {N P\M I <d ޘ9 ZcEn iE1<NltrAcV "dO/A S<4XG(j#A vL9#:W0e2iTsFaI!-z C"  ~i\(%1) 0 Close (%1)Alert0CollapseAlertӼX0ExpandAlert Ctrl+DCtrl+D AlertLayer L t Dismiss Alert AlertLayer | (*) All Files (*)Document*ǥX J@   |ѲȲ.!All unsaved changes will be lost.Document&$ P<Ҹ M¤Ҹ (*.odt)OpenDocument Text (*.odt)Document| M¤Ҹ (*.txt)Plain Text (*.txt)Document<Ŵ t LjµȲ.QuestionDocument ȸ\ hReloadDocument | $0 Reload FileDocument,¤l %1 |D ,LƔ?Reload the file %1 from disk?Document | t 0 Rename FileDocument" Lj M¤Ҹ (*.rtf)Rich Text (*.rtf)Documentx t<\ ǥ Save File AsDocumentV| M¤Ҹ\ ǥXt D ǃŴ )Ȳ. D ܬµȮL?ESaving as plain text will discard all formatting. Discard formatting?Document iȲSorryDocument('%1' |D nŴ  µȲ.Unable to overwrite '%1'.Document.'%1' |X tD   µȲ.Unable to rename '%1'.Document('%1' |D ǥ`  µȲ.Unable to save '%1'.Document |D ,LƔ?Do you want to reload the file?DocumentWatcher |D ǥ`LƔ? DLƔ?&Do you want to save or close the file?DocumentWatcher | X D File ChangedDocumentWatcher |t LµȲ. File DeletedDocumentWatcher \ `IgnoreDocumentWatcher ȸ\ hReloadDocumentWatcher6%1 |t x \ Xt  µȲ.+The file %1 was changed by another program.DocumentWatcher6%1 |t x \ Xt LµȲ.+The file %1 was deleted by another program.DocumentWatcher&>0&Find FindDialog&0&Replace FindDialog>0Find FindDialog/8ǐ l Hh Ignore case FindDialog8ǥt µȲ.Phrase not found. FindDialog<Ŵ t LjµȲQuestion FindDialog|x \Regular expressions FindDialog0Replace FindDialog%n X @| LƔ?Replace %n instance(s)? FindDialog&P 0 Replace &All FindDialogL  :  Replace with: FindDialog D\  Search down FindDialog : Search for: FindDialog \  Search up FindDialog iȲSorry FindDialog Ŵ\ Whole words only FindDialog"(x HD > ՈµȲ)(No suggestions found) HighlighterTX0Add Highlighterͤ X0Check Spelling... Highlightert(%1) Images(%1) ImageButton t 0 Open Image ImageButton< ¤\ ŸŴ > LocaleDialogxҸNote LocaleDialog@ ŸŴ\ ƩX0 t \D Ǒ t8Ɣ.JPlease restart this application for the change in language to take effect. LocaleDialog\ ŸŴ :Select application language: LocaleDialog0ActionPreferencesDialog0ActionsPreferencesDialogTX0AddPreferencesDialogl TX0 Add SeparatorPreferencesDialogm 8\\ ƴp ͤAlways vertically centerPreferencesDialogǐ<\ ǥX0Automatically save changesPreferencesDialog Dž Block insertion cursorPreferencesDialogǐ Character countPreferencesDialogǐ: Characters:PreferencesDialogDž%X \ X0Check spelling as you typePreferencesDialog9ŴCommandPreferencesDialogƩContentsPreferencesDialog $X \ Daily GoalPreferencesDialogŴX | X0Detect word boundariesPreferencesDialog"ǐ | / Ȳ 0 Divide character count by sixPreferencesDialogl :Divider:PreferencesDialog p 04\DoublePreferencesDialog$X0EditingPreferencesDialog | $GeneralPreferencesDialogDtX Ʃ Icons OnlyPreferencesDialog8ǐ t0Ignore words in UPPERCASEPreferencesDialog+ǐ t0Ignore words with numbersPreferencesDialogŸŴLanguagePreferencesDialog:Minutes:PreferencesDialogD\ .00 Move DownPreferencesDialog \ .00Move UpPreferencesDialogLNonePreferencesDialog:X tX ͕Ф ͩt µȲ. `LƔ?7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialog Әt l0 Page SizePreferencesDialog Әt  Page countPreferencesDialog8 Paragraph countPreferencesDialog8: Paragraphs:PreferencesDialog x Personal DictionaryPreferencesDialog$ PreferencesPreferencesDialog<Ŵ t LjµȲQuestionPreferencesDialog X ǥX0Remember cursor positionPreferencesDialogpRemovePreferencesDialogǥX0SavingPreferencesDialogTtScenesPreferencesDialog  t0Select DictionaryPreferencesDialog͕ФShortcutPreferencesDialog͕Ф ShortcutsPreferencesDialog Ǒ@ 04\SinglePreferencesDialog 04\: Smart quotes:PreferencesDialogܷƴ 4 Smooth fontsPreferencesDialog iȲSorryPreferencesDialog ͤ Spell CheckingPreferencesDialogѵ StatisticsPreferencesDialog¤|StylePreferencesDialogDtX  ǐ \Text Alongside IconsPreferencesDialogM¤Ҹ Ʃ Text OnlyPreferencesDialogM¤Ҹ X:Text Position:PreferencesDialogDtX D ǐ \Text Under IconsPreferencesDialog"tƩ` \ t µȲ.1The archive does not contain a usable dictionary.PreferencesDialog6 "%1" @ t LjµȲ. ܬµȮL?>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialog4ToolbarPreferencesDialog ǐ0 Typewriter soundsPreferencesDialog&'%1' |D D  µȲ.Unable to close file '%1'.PreferencesDialogU͕ |D  µȲ.Unable to open archive.PreferencesDialog$'%1' |D  µȲ.Unable to open file '%1'.PreferencesDialog,U͕ |X Tpt0|  µȲ. Unable to read archive metadata.PreferencesDialogŴ  8 L๬ɘWord Count AlgorithmPreferencesDialogŴ  Word countPreferencesDialogŴ:Words:PreferencesDialog$X RTF |t DٲȲ.Not a supported RTF file.Reader&'%1' |D D  µȲ.Unable to close file '%1'.ReaderU͕ |D  µȲ.Unable to open archive.Reader$'%1' |D  µȲ.Unable to open file '%1'.ReaderCtrl+Shift+DownCtrl+Shift+Down SceneListCtrl+Shift+Up Ctrl+Shift+Up SceneListD0Filter SceneList(%1) Tt ] ͔0Hide scene list (%1) SceneListTtD D\ 0Move Scenes Down SceneListTtD \ ,0Move Scenes Up SceneListTt ] l0 pResize scene list SceneListShift+F4Shift+F4 SceneList(%1) Tt ] t0Show scene list (%1) SceneListTt ] /D0Toggle Scene List SceneList 0 8XDefaultSession&X0... &Manage...SessionManager&ȸ\ ̴0...&New...SessionManagerX0CloneSessionManager 8X  Clone SessionSessionManagerCtrl+Shift+M Ctrl+Shift+MSessionManagerCtrl+Shift+N Ctrl+Shift+NSessionManagerư0DeleteSessionManager \ 8XD ưܬµȮL?Delete selected session?SessionManager 8X Manage SessionsSessionManager ȸ\ ̴0NewSessionManager 8X New SessionSessionManager<Ŵ t LjµȲQuestionSessionManager t 0RenameSessionManager8X t 0Rename SessionSessionManager&8X S&essionsSessionManager 8X t Session name:SessionManager iȲ.SorrySessionManager \ 0 Switch ToSessionManager.Ɣ̭X 8X t@ t Ʃ DžȲ.-The requested session name is already in use.SessionManagerư0Clear ShortcutEdit0 $<\ ̹0Reset to Default ShortcutEdit͕Ф: Shortcut: ShortcutEdit0$ 8Ɣ Please Wait SmartQuote04\ 0...Replacing quotation marks... SmartQuote&TX0&Add SpellChecker&0&Change SpellChecker &\ `&Ignore SpellChecker &P  C&hange All SpellCheckerX0Cancel SpellCheckerL<\ 0: Change to: SpellChecker ͤ Check Spelling SpellCheckerͤ DžȲ...Checking spelling... SpellChecker&P \ ` I&gnore All SpellCheckert  µȲ :Not in dictionary: SpellChecker0$ 8Ɣ Please wait SpellCheckerͤ | µȲ.Spell check complete. SpellChecker 8 All symbols SymbolsDialog l 0Details SymbolsDialogƩInsert SymbolsDialogt:Name: SymbolsDialog\ Ʃ\ 8Recently used symbols SymbolsDialog8Symbols SymbolsDialog]Blocks SymbolsModel¤lҸScripts SymbolsModel L %1 Untitled %1Theme pixels pixels ThemeDialog 1.5  1.5 Lines ThemeDialogTt Background ThemeDialog ƴp ͤCentered ThemeDialogColor: ThemeDialog P Double ThemeDialog4:Font: ThemeDialog xҸ0  Foreground ThemeDialogtImage: ThemeDialog\  0Indent First Line: ThemeDialog|ʽLeft ThemeDialog  Dư0 Line Spacing ThemeDialogǥǐ@X :Margin: ThemeDialog $ǐ \: Misspelled: ThemeDialog L $ Modify Theme ThemeDialogt:Name: ThemeDialog t LNo Image ThemeDialog,Opacity ThemeDialog :Padding: ThemeDialog8 t D0Paragraph Spacing ThemeDialog\ DƸ pixels: Pixels Above: ThemeDialogD\ DƸ pixels: Pixels Below: ThemeDialogXPosition ThemeDialog D( ͤ Proportional ThemeDialogư0Remove ThemeDialog$xʽRight ThemeDialog e : Rounding: ThemeDialog D( ͤScaled ThemeDialog\ Single ThemeDialogl0:Size: ThemeDialogDư0Spacings ThemeDialogt0 Stretched ThemeDialogǐText ThemeDialogVt TtD ܺt Tt, xҸ 0, Ҹ, ǐ l0 D $X8Ɣ.+The quick brown fox jumps over the lazy dog ThemeDialog | DŽTiled ThemeDialogȅXType: ThemeDialog U ͤZoomed ThemeDialogD@ tX LȬ t LjµȲ. x tD 8Ɣ :?A theme already exists with that name. Please enter a new name: ThemeManagerTX0Add ThemeManager0Close ThemeManager0Export ThemeManagerL 0 Export Theme ThemeManager8$0Import ThemeManagerL 8$0 Import Theme ThemeManager$X0Modify ThemeManager<Ŵ t LjµȲ.Question ThemeManagerư0Remove ThemeManager X Lȹ| ƸLƔ?Remove selected theme? ThemeManager iȲSorry ThemeManagerLThemes ThemeManager&L (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManagerL (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer(<b>ǐ:</b> %L1 / %L2Characters: %L1 / %L2Timer<b>Әt:</b> %L1Pages: %L1Timer<b>8:</b> %L1Paragraphs: %L1Timer<b>Ŵ:</b> %L1Words: %L1TimerLAlarmTimer ܬ:Delay:Timerư0DeleteTimert8| ƸLƔ? Delete timer?TimerEditTimer ::HH:mm:ssTimerT:Memo:Timer<Ŵ t LjµȲ.QuestionTimer ܬ $ Set DelayTimer ܬ $Set TimeTimerܬ:Time:TimerȅX:Type:Timer ::HH:mm:ss TimerDisplayt8 Ǒ HhNo timers running TimerDisplay%1 - %2%1 - %2 TimerManager +:: +HH:mm:ss TimerManagert8 D `LƔ?Cancel editing timers? TimerManager ȸ\ ̴0New TimerManager<Ŵ t LjµȲ.Question TimerManager \ $Recent TimerManagert8Timers TimerManager$ 칬 |] XµȲ.!Unexpectedly reached end of file. Tokenizer%1 (}0 Ʃ)%1 (Read-Only)Window$ \X %1% %1% of daily goalWindow&FocusWriter &AboutWindow&&BoldWindow&0&CloseWindow&&CopyWindow & 0&Decrease IndentWindow&Ӹ&EditWindow& |&FileWindow&>0&Find...Window &̴ Tt &FullscreenWindow&&HelpWindow&t乭&ItalicWindow&ȸ\ ̴0&NewWindow &Ʃ Hh&OffWindow &0...&Open...Window&8 &ParagraphWindow �&PasteWindow&$&Preferences...Window&Ҹ... &Print...Window&]0&QuitWindow & Ʃ&RedoWindow&t 0... &Rename...Window&0 &Replace...Window&ǥ&SaveWindow&$ &SettingsWindow&ͤ &Spelling...Window &D ̨ǐ &SubscriptWindow&L &Themes...Window&8  &Three LinesWindow&t8 &Timers...Window&ĭl&ToolsWindow & 0 &UnderlineWindow&\ 4t0&UndoWindow2'%1' t ΐ  ȬDžȲ.#'%1' is newer than the cached copy.Window(L %1) (Untitled %1)Window Ӹ\ Ԁ¤l ̴ \8"A simple fullscreen word processorWindow &Qt  About &QtWindow¤ |t0 About FocusWriterWindow&ƴp ͤ Align &CenterWindow &ő] ͤAlign &JustifyWindow&|ʽ ] ͤ Align &LeftWindow&$xʽ ] ͤ Align &RightWindow&\ ŸŴ $Application &Language...Window8ǐ: %L1 / %L2Characters: %L1 / %L2WindowHCopyright &copy; 2008-%1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindow Ctrl+<Ctrl+<Window Ctrl+>Ctrl+>Window Ctrl+JCtrl+JWindow Ctrl+KCtrl+KWindow Ctrl+MCtrl+MWindow Ctrl+QCtrl+QWindow Ctrl+RCtrl+RWindowCtrl+Shift+A Ctrl+Shift+AWindowCtrl+Shift+V Ctrl+Shift+VWindow Ctrl+^Ctrl+^Window Ctrl+_Ctrl+_Window Ctrl+{Ctrl+{Window Ctrl+|Ctrl+|Window Ctrl+}Ctrl+}Window&ǐt0Cu&tWindow"D ΐܬ Ǒ1 JµȲ. Emergency cache is not writable.WindowEscEscWindow&¤ M¤Ҹ F&ocused TextWindowF11F11WindowF7F7Window&L >0 Find &NextWindow&t >0Find Pre&viousWindow&Fo&rmatWindow ¤ T Focus OffWindow\  ¤ Focus One LineWindow8 ¤ Focus ParagraphWindow8  ¤ Focus Three LinesWindow¤ |t0 FocusWriterWindow.¤ |t0 \ JXµȲ.&FocusWriter was not shut down cleanly.Window &Ŵ 0I&ncrease IndentWindow"&|ʽ $xʽ<\ 0 ǑLe&ft to Right BlockWindow$ $ Loading settingsWindow $ Loading soundsWindowL $ Loading themesWindow&\T M&inimizeWindow8X X0Manage SessionsWindow 8X New SessionWindow&\  One &LineWindow | 0 Open FileWindow %1 0 Opening %1Window |\ nŴLƔ?Overwrite newer file?WindowӘt: %L1 Pages: %L1Window8: % L1Paragraphs: %L1Window&D \ D #0Paste &UnformattedWindow4SDL_mixer t $XŴLj Uxt 8Ɣ-Please make sure that SDL_mixer is installed.Window<Ŵ t LjµȲQuestionWindowJ <a href=%1>GPL 3</a> |t ¤ 0| 0)Ȳ./Released under the GPL 3 licenseWindow &ȸ\ hReloa&dWindow$D ΐܹ| tƩt l`LƔ?!Restore from the emergency cache?Window"&$xʽ |ʽ<\ 0 ǑRi&ght to Left BlockWindow&8... S&ymbols...Window&x t<\ ǥ... Save &As...Window&P ǥX0 Save A&llWindow  ƩD ǥXܬµȮL? Save changes?Window &P  Select &AllWindow &Tt  Select &SceneWindow&Tt DtX t0Show &Menu IconsWindow&4 t0 Show &ToolbarWindow& 04\ Smart &QuotesWindow" |t JµȲ.Some files could not be opened.Window, |t |0 Ʃ<\ 8µȲ.!Some files were opened Read-Only.Window2д J |t LjŴ  µȲ.4Some files were unsupported and could not be opened.Window&ƴp  0Stri&kethroughWindow & ̨ǐ Sup&erscriptWindow%1 8\ tSwitch to Document %1Window̘L 8\ tSwitch to First DocumentWindow 8\ tSwitch to Last DocumentWindowL 8\ tSwitch to Next DocumentWindowt 8\ tSwitch to Previous DocumentWindow,M¤Ҹ | (%1);; | (*)Text Files (%1);;All Files (*)Window ǐ0 JµȲ.!Unable to load typewriter sounds.Window  LUntitledWindow&8 ƩUpdate &DocumentWindow& \ Ʃ ƩUpdate &SelectionWindowH<a href=%1>LGPL 3</a> X |t ¤| iȲ.,Used under the LGPL 3 licenseWindowJ<a href=%1>Oxygen</a>X DtX Lȹ| tƩiȲ.4Uses icons from the Oxygen icon themeWindowLWarningWindowŴ: %L1 Words: %L1Windowfocuswriter-1.4.5/translations/focuswriter_ko.ts000066400000000000000000002260041231434177300222440ustar00rootroot00000000000000 Alert Close (%1) (%1) 닫기 Collapse 접기 Expand 펼치기 AlertLayer Dismiss Alert 알림 해제 Ctrl+D Ctrl+D Document Sorry 죄송합니다 Unable to save '%1'. '%1' 파일을 저장할 수 없습니다. Save File As 다른 이름으로 저장 Unable to overwrite '%1'. '%1' 파일을 덮어쓸 수 없습니다. Rename File 파일 이름 바꾸기 Unable to rename '%1'. '%1' 파일의 이름을 바꿀 수 없습니다. Reload File 파일 다시 불러오기 Reload the file %1 from disk? 디스크에서 %1 파일을 다시 불러올까요? All unsaved changes will be lost. 저장하지 않은 바뀐 정보는 사라집니다. Reload 새로 고침 Plain Text (*.txt) 일반 텍스트 (*.txt) Question 물어볼 것이 있습니다. Saving as plain text will discard all formatting. Discard formatting? 일반 텍스트로 저장하면 모든 서식을 잃어버리게 됩니다. 서식을 버리시겠습니까? OpenDocument Text (*.odt) 오픈 다큐먼트 텍스트 (*.odt) Rich Text (*.rtf) 서식 있는 텍스트 (*.rtf) All Files (*) 모든 파일 (*) DocumentWatcher File Changed 파일 변환 완료 The file %1 was changed by another program. %1 파일이 다른 프로그램에 의해서 바뀌었습니다. Do you want to reload the file? 파일을 다시 불러올까요? Reload 새로 고침 Ignore 그대로 둠 File Deleted 파일이 지워졌습니다. The file %1 was deleted by another program. %1 파일이 다른 프로그램에 의해서 지워졌습니다. Do you want to save or close the file? 파일을 저장할까요? 닫을까요? FindDialog Search for: 검색 : Replace with: 다음과 바꿈 : Ignore case 대/소문자 구분 안함 Whole words only 단어로 검색 Regular expressions 일반적인 표현 Search up 위로 검색 Search down 아래로 검색 &Find &찾기 &Replace &바꾸기 Replace &All &모두 바꾸기 Find 찾기 Replace 바꾸기 Replace %n instance(s)? %n 의 사례를 바꿀까요? Question 물어볼 것이 있습니다 Sorry 죄송합니다 Phrase not found. 문장이 없습니다. Highlighter Add 더하기 Check Spelling... 맞춤법 검사 하기 (No suggestions found) (다른 대안을 찾지 못했습니다) ImageButton Open Image 이미지 열기 Images(%1) 이미지(%1) LocaleDialog Select application language: 프로그램 언어 선택: <System Language> < 시스템 언어 > Note 노트 Please restart this application for the change in language to take effect. 바뀐 언어로 적용하기 위해 프로그램을 다시 시작 해주세요. PreferencesDialog Preferences 설정 General 일반 설정 Statistics 통계 Toolbar 툴바 Spell Checking 맞춤법 검사 Select Dictionary 사전 고르기 Sorry 죄송합니다 Unable to open archive. 압축파일을 열 수 없습니다. Unable to read archive metadata. 압축파일의 메타데이터를 열 수 없습니다. The archive does not contain a usable dictionary. 이용할 만 한 사전이 없습니다. Unable to open file '%1'. '%1' 파일을 열 수 없습니다. Unable to close file '%1'. '%1' 파일을 닫을 수 없습니다. Question 물어볼 것이 있습니다 Shortcuts 단축키 One or more shortcuts conflict. Do you wish to proceed? 하나 이상의 단축키에서 충돌이 났습니다. 계속할까요? The dictionary "%1" already exists. Do you want to replace it? 사전 "%1" 은 이미 있습니다. 바꾸시겠습니까? Daily Goal 오늘의 목표 None 없음 Minutes: 분: Words: 단어: Editing 설정하기 Always vertically center 항상 세로로 가운데 맞춤 Block insertion cursor 블럭 삽입 커서 Smooth fonts 부드러운 글꼴 Typewriter sounds 타자기 소리 Smart quotes: 지능형 따옴표: Double 큰 따옴표 Single 작은 따옴표 Scenes 화면 Divider: 구분선: Saving 저장하기 Automatically save changes 자동으로 저장하기 Remember cursor position 커서 위치 저장하기 Contents 내용 Word count 단어 수 Page count 페이지 수 Paragraph count 문단 수 Character count 글자 수 Page Size 페이지 크기 Characters: 글자: Paragraphs: 문단: Word Count Algorithm 단어 수 세는 알고리즘 Detect word boundaries 단어의 범위를 감지하기 Divide character count by six 글자 수를 여섯 개마다 나누기 Style 스타일 Icons Only 아이콘만 사용 Text Only 텍스트만 사용 Text Alongside Icons 아이콘 옆에 글자 표시 Text Under Icons 아이콘 아래에 글자 표시 Text Position: 텍스트 위치: Actions 기능 Move Up 위로 옮기기 Move Down 아래로 옮기기 Add Separator 구분선 더하기 Command 명령어 Shortcut 단축키 Action 기능 Check spelling as you type 입력하는 대로 검사하기 Ignore words in UPPERCASE 대문자 건너뛰기 Ignore words with numbers 숫자 건너뛰기 Language 언어 Add 더하기 Remove 제거 Personal Dictionary 개인 사전 Reader Not a supported RTF file. 지원하는 RTF 파일이 아닙니다. Unable to open archive. 압축파일을 열 수 없습니다. Unable to open file '%1'. '%1' 파일을 열 수 없습니다. Unable to close file '%1'. '%1' 파일을 닫을 수 없습니다. SceneList Ctrl+Shift+Down Ctrl+Shift+Down Move Scenes Up 화면을 위로 올리기 Ctrl+Shift+Up Ctrl+Shift+Up Toggle Scene List 화면 목록 켜고/끄기 Shift+F4 Shift+F4 Show scene list (%1) (%1) 화면 목록 보이기 Hide scene list (%1) (%1) 화면 목록 감추기 Filter 필터 Move Scenes Down 화면을 아래로 내리기 Resize scene list 화면 목록 크기 조절 Session Default 기본 세션 SessionManager Manage Sessions 세션 관리 S&essions &세션 New 새로 만들기 Rename 이름 바꾸기 Clone 복제하기 Delete 지우기 Switch To 서로 바꾸기 New Session 새 세션 Clone Session 세션 복제 Rename Session 세션 이름 바꾸기 Question 물어볼 것이 있습니다 Delete selected session? 선택한 세션을 지우시겠습니까? Session name: 세션 이름 Sorry 죄송합니다. The requested session name is already in use. 요청하신 세션 이름은 이미 사용 중입니다. &New... &새로 만들기... Ctrl+Shift+N Ctrl+Shift+N &Manage... &관리하기... Ctrl+Shift+M Ctrl+Shift+M ShortcutEdit Clear 지우기 Reset to Default 기본 설정으로 되돌리기 Shortcut: 단축키: SmartQuote Replacing quotation marks... 따옴표 바꾸기... Please Wait 기다려 주세요 SpellChecker Check Spelling 맞춤법 검사 &Add &더하기 &Ignore &그대로 둠 I&gnore All &모두 그대로 둠 &Change &바꾸기 C&hange All &모두 바꿈 Not in dictionary: 이 사전엔 없습니다 : Change to: 다음으로 바꾸기: Checking spelling... 맞춤법 검사 중입니다... Cancel 취소하기 Please wait 기다려 주세요 Spell check complete. 맞춤법 검사를 마쳤습니다. SymbolsDialog Symbols 부호 Recently used symbols 최근에 사용한 부호들 All symbols 모든 부호들 Details 크게 보기 Name: 이름: Insert 적용 SymbolsModel Blocks 블록 Scripts 스크립트 Theme Untitled %1 제목 없음 %1 ThemeDialog Modify Theme 테마 설정 Name: 이름: Background 바탕화면 No Image 이미지 없음 Tiled 타일 붙임 Centered 가운데 맞춤 Stretched 늘이기 Scaled 비율 맞춤 Zoomed 확대 맞춤 Remove 지우기 Type: 종류 Color: 색상 Image: 이미지 Foreground 노트배경 Opacity 불투명도 pixels pixels Left 왼쪽 Right 오른쪽 Position 위치 Size: 크기: Rounding: 모서리 둥근 정도: Margin: 가장자리와의 폭: Padding: 들여쓰는 폭: Text 글자 Font: 글꼴: Misspelled: 오자 표시: Spacings 띄우기 Line Spacing 줄 띄우기 Single 한 줄 1.5 Lines 1.5 줄 Double 두 줄 Proportional 비율 맞춤 Paragraph Spacing 문단 사이 띄기 Indent First Line: 한 줄 들여쓰기 Pixels Above: 위로 띄울 pixels: Pixels Below: 아래로 띄울 pixels: The quick brown fox jumps over the lazy dog 이 화면을 보시면서 바탕화면, 노트 배경, 폰트, 글자 크기 등을 설정하세요. ThemeManager Themes 테마 Add 더하기 Modify 설정하기 Remove 지우기 Import 가져오기 Export 내보내기 Close 닫기 Question 물어볼 것이 있습니다. Remove selected theme? 선택하신 테마를 지울까요? Import Theme 테마 가져오기 Themes (*.fwtz *.theme) 테마 (*.fwtz *.theme) Themes (*.fwtz) 테마 (*.fwtz) Sorry 죄송합니다 A theme already exists with that name. Please enter a new name: 같은 이름의 테마가 이미 있습니다. 다른 이름을 붙여주세요 : Export Theme 테마 내보내기 Timer <b>%1</b> - %2 <b>%1</b> - %2 Question 물어볼 것이 있습니다. Delete timer? 타이머를 지울까요? <b>Words:</b> %L1 <b>단어:</b> %L1 <b>Pages:</b> %L1 <b>페이지:</b> %L1 <b>Paragraphs:</b> %L1 <b>문단:</b> %L1 <b>Characters:</b> %L1 / %L2 <b>글자:</b> %L1 / %L2 Set Delay 지연 시간 설정 Set Time 시간 설정 Delay: 지연 시간: Time: 시간: HH:mm:ss 시:분:초 Alarm 알람 Type: 종류: Memo: 메모: Edit 수정 Delete 지우기 TimerDisplay HH:mm:ss 시:분:초 No timers running 타이머 작동 안함 TimerManager Timers 타이머 New 새로 만들기 Recent 최근 설정 Question 물어볼 것이 있습니다. Cancel editing timers? 타이머 수정을 취소할까요? +HH:mm:ss +시:분:초 %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. 예상과 달리 파일끝에 닿았습니다. Window Loading themes 테마 불러오는 중 Loading sounds 소리 불러오는 중 Untitled 제목 없음 Open File 파일 열기 About FocusWriter 포커스 라이터 란 FocusWriter 포커스 라이터 A simple fullscreen word processor 간편한 풀스크린 워드 프로세서 Copyright &copy; 2008-%1 Graeme Gott Copyright &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license <a href=%1>GPL 3</a> 라이선스에 따라 배포됩니다. Uses icons from the <a href=%1>Oxygen</a> icon theme <a href=%1>Oxygen</a>의 아이콘 테마를 이용합니다. Used under the <a href=%1>LGPL 3</a> license <a href=%1>LGPL 3</a> 의 라이선스를 준수합니다. Characters: %L1 / %L2 문자: %L1 / %L2 Pages: %L1 페이지: %L1 Paragraphs: %L1 문단: % L1 Words: %L1 단어: %L1 %1% of daily goal 오늘 목표의 %1% Opening %1 %1 열기 Question 물어볼 것이 있습니다 Save changes? 바뀐 내용을 저장하시겠습니까? (Untitled %1) (제목없음 %1) Switch to Next Document 다음 문서로 이동 Switch to Previous Document 이전 문서로 이동 Switch to First Document 처음 문서로 이동 Switch to Last Document 마지막 문서로 이동 Switch to Document %1 %1 문서로 이동 Loading settings 설정 불러오는 중 Emergency cache is not writable. 비상 캐시가 작성되지 않습니다. Warning 알림 FocusWriter was not shut down cleanly. 포커스 라이터가 제대로 꺼지지 않았습니다. Restore from the emergency cache? 비상 캐시를 이용해서 복구할까요? Some files could not be opened. 몇몇 파일들이 열리지 않습니다. Some files were opened Read-Only. 몇몇 파일들이 일기 전용으로 열렸습니다. Text Files (%1);;All Files (*) 텍스트 파일 (%1);;모든 파일 (*) '%1' is newer than the cached copy. '%1' 이 캐시에 복사된 것보다 새것입니다. Overwrite newer file? 새 파일로 덮어쓸까요? Unable to load typewriter sounds. 타자기 소리가 나지 않습니다. Please make sure that SDL_mixer is installed. SDL_mixer 이 설치되어있나 확인해 주세요 %1 (Read-Only) %1 (읽기 전용) &File &파일 &New &새로 만들기 &Open... &열기... Reloa&d &새로 고침 &Save &저장 Save &As... &다른 이름으로 저장... &Rename... &이름 바꾸기... Save A&ll &모두 저장하기 Manage Sessions 세션 관리하기 New Session 새 세션 &Print... &프린트... &Close &닫기 &Quit &끝내기 Ctrl+Q Ctrl+Q &Edit &편집 &Undo &뒤로 무르기 &Redo &다시 적용 Cu&t &자르기 &Copy &복사 &Paste &붙여넣기 Paste &Unformatted &서식을 유지한 채 붙여넣기 Ctrl+Shift+V Ctrl+Shift+V Select &All &모두 선택 Select &Scene &화면 선택 Ctrl+Shift+A Ctrl+Shift+A Fo&rmat &형식 &Bold &볼드 &Italic &이탤릭 &Underline &밑줄 긋기 Stri&kethrough &가운데 줄긋기 Ctrl+K Ctrl+K Sup&erscript &위 첨자 Ctrl+^ Ctrl+^ &Subscript &아래 첨자 Ctrl+_ Ctrl+_ Align &Left &왼쪽 끝 맞춤 Ctrl+{ Ctrl+{ Align &Center &가운데 줄맞춤 Ctrl+| Ctrl+| Align &Right &오른쪽 끝 맞춤 Ctrl+} Ctrl+} Align &Justify &양끝 맞춤 Ctrl+J Ctrl+J &Decrease Indent &들여 쓰기 Ctrl+< Ctrl+< I&ncrease Indent &내어 쓰기 Ctrl+> Ctrl+> Le&ft to Right Block &왼쪽에서 오른쪽으로 쓰기 시작 Ri&ght to Left Block &오른쪽에서 왼쪽으로 쓰기 시작 &Tools &도구 &Find... &찾기 Find &Next &다음에서 찾기 Find Pre&vious &이전에서 찾기 &Replace... &바꾸기 Ctrl+R Ctrl+R Smart &Quotes &지능형 따옴표 Update &Document &문서에 적용 Update &Selection &선택한 내용 적용 &Spelling... &맞춤법 F7 F7 &Timers... &타이머 S&ymbols... &부호들... &Settings &설정 Show &Toolbar &툴바 보이기 Show &Menu Icons &메뉴 아이콘 보이기 F&ocused Text &포커스 텍스트 &Fullscreen &전체 화면 F11 F11 Esc Esc M&inimize &최소화 Ctrl+M Ctrl+M &Themes... &테마 &Preferences... &설정 Focus Off 포커스 끔 Focus One Line 한 줄 포커스 Focus Three Lines 세 줄 포커스 &Paragraph &문단 Focus Paragraph 문단 포커스 &Help &도움말 Application &Language... &프로그램 언어 설정 Some files were unsupported and could not be opened. 지원되지 않는 파일이 있어서 열 수 없습니다. &Off &사용 안함 One &Line &한 줄 &Three Lines &세 줄 &About &FocusWriter 소개 About &Qt &Qt 소개 focuswriter-1.4.5/translations/focuswriter_nl.qm000066400000000000000000000777361231434177300222530ustar00rootroot00000000000000iX@ZAZiZiZi!WZi2yZiGSZ%"*[CA[L*\Cx\LS\*D_ >Tc4Yb{ oO2Ϩ%va3]e~kG.0n%0n)EP2>qH tmX^plj_"rS^;@$ac#TS ~TIaqmef`zXeZE^:J O6PDXRf3V6`;?.Ncb"Z4'aI~hb(a, 4Y92^Ew??J=)'I$^}WQ|'UUFᑞ81sMN. Hp`~l{( WBE+M@GZ,luz^Ԏ.7T 5Z#: hSI66Z;[ [:[g[[[\\\+] ,]M-]z(JC,/,Jmbj%%;M'~g?QYȞn]hDnvE#:+F6UV Ady}<vE9 IC9|jaz<D6EF3QY1TNO5t5t FFF@FFH51iGAV>*N% fN%A2WG<NtqrHM0 dAݲ j(cxsUcCZUO/_25:8Nk:YIIOLJIKZ{[-g>lRm(SzCAC 44.@4|lXå|7NO&O*8޷3!=#*oe{+zd< u4R:lCm p:xg_=? ^4fbD!wijw62M9} |G9Nf/d|>R|w!p}q4o P`Sg%% ' B/C0lCc} \~Sj >h 7 "4x %^- Y v Y z za .3%` JUD W0 Wc :S 21 ·L .^' s Ń +I{ :ow ;fi d8> eE 5b q^# t. _ ʀs8 ˔Vu ˼C8 z_ Bn4 f  V5 c9 ^+ Q #! L..z f(%# iqs w9: xj7 {"uj Nf" T Im ʫ ʫ > ʫ" ʫ14 ʫFl ʫKw ʫN ʫf  A)p pUq cMG S 6m >U} JA Z$; eK iN!e< tfi* u 1 sT C C@j  &O ) t* 1m \ sQZ Dq; _ 8j\ DY\H DY/< DY/ DZ\ ^3H noJ uuA {N( Ps^ I < ޘ 3 Zc"_VnE>NltrAcjJ ,DdaPf4n)Xj-A <L9-GW=ie"iTsWI+z-z C!" isSluit (%1)  Close (%1)AlertInklappenCollapseAlertUitklappenExpandAlert Ctrl+DCtrl+D AlertLayer Wegklikken alarm Dismiss Alert AlertLayer$Alle bestanden (*) All Files (*)DocumentfAlle niet bewaarde wijzigingen zullen verloren gaan!All unsaved changes will be lost.Document4OpenDocument Tekst (*.odt)OpenDocument Text (*.odt)Document(Platte tekst (*.txt)Plain Text (*.txt)Document VraagQuestionDocumentHerladenReloadDocument Bestand herladen Reload FileDocument<Bestand %1 herladen van disk ?Reload the file %1 from disk?Document"Bestand hernoemen Rename FileDocument Rich Text(*.rtf)Rich Text (*.rtf)DocumentOpslaan als Save File AsDocumentOpslaan als kale tekst zal alle opmaak verwijderen. Opmaak verwijderen ?ESaving as plain text will discard all formatting. Discard formatting?Document SorrySorryDocumentD'%1' kan niet overschreven worden.Unable to overwrite '%1'.Document<'%1' kan niet hernoemd worden.Unable to rename '%1'.Document@'%1' kan niet opgeslagen worden.Unable to save '%1'.DocumentRMoet het bestand opnieuw geladen worden ?Do you want to reload the file?DocumentWatcher<Bestand opslaan of afsluiten ?&Do you want to save or close the file?DocumentWatcher(Bestand is gewijzigd File ChangedDocumentWatcher*Bestand is verwijderd File DeletedDocumentWatcherNegerenIgnoreDocumentWatcherHerladenReloadDocumentWatcherdBestand %1 is gewijzigd door een andere applicatie+The file %1 was changed by another program.DocumentWatcherfBestand %1 is verwijderd door een andere applicatie+The file %1 was deleted by another program.DocumentWatcher &Zoek&Find FindDialog&Vervang&Replace FindDialog ZoekenFind FindDialog:Hoofd-/kleine letters negeren Ignore case FindDialog.Zoekterm niet gevonden.Phrase not found. FindDialog VraagQuestion FindDialog*Regulieren expressiesRegular expressions FindDialogVervangenReplace FindDialog* %n vondst vervangen?. %n vondsten vervangen?Replace %n instance(s)? FindDialogVervang &Alles Replace &All FindDialogVervangen door: Replace with: FindDialog"Naar einde zoeken Search down FindDialogZoeken naar: Search for: FindDialog"Naar begin zoeken Search up FindDialog SorrySorry FindDialog&Alleen hele woordenWhole words only FindDialog2(geen suggestie gevonden)(No suggestions found) HighlighterToevoegenAdd Highlighter0Spelling controleren ...Check Spelling... HighlighterPlaatjes(%1) Images(%1) ImageButtonPlaatje openen Open Image ImageButton<Systeemtaal> LocaleDialog Let opNote LocaleDialogGraag de applicatie herstarten om de taalverandering door te voeren.JPlease restart this application for the change in language to take effect. LocaleDialog Taal selecteren:Select application language: LocaleDialog ActieActionPreferencesDialog ActiesActionsPreferencesDialogToevoegenAddPreferencesDialog2Scheidingsteken toevoegen Add SeparatorPreferencesDialog&Verticaal centrerenAlways vertically centerPreferencesDialogBAutomatisch veranderingen opslaanAutomatically save changesPreferencesDialog$Blok invoeg cursorBlock insertion cursorPreferencesDialogTekentellingCharacter countPreferencesDialogTekens: Characters:PreferencesDialogHSpelling controleren terwijl je typtCheck spelling as you typePreferencesDialogCommandoCommandPreferencesDialog InhoudContentsPreferencesDialogDagelijks doel Daily GoalPreferencesDialog(Woordgrenzen bepalenDetect word boundariesPreferencesDialog2Tekentelling door 6 delenDivide character count by sixPreferencesDialogDeelstreepDivider:PreferencesDialog DubbelDoublePreferencesDialogBewerkingEditingPreferencesDialogAlgemeenGeneralPreferencesDialogAlleen iconen Icons OnlyPreferencesDialog>Woorden in HOOFDLETTERS negerenIgnore words in UPPERCASEPreferencesDialog8Woorden met getallen negerenIgnore words with numbersPreferencesDialogTaalLanguagePreferencesDialogMinuten:Minutes:PreferencesDialog,Naar onder verschuiven Move DownPreferencesDialog,Naar boven verschuivenMove UpPreferencesDialog NietsNonePreferencesDialogzEen of meerdere snelkoppelingen conflicteren. Toch doorgaan ?7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialogPaginagrootte Page SizePreferencesDialogPaginatelling Page countPreferencesDialog ParagraaftellingParagraph countPreferencesDialogParagrafen: Paragraphs:PreferencesDialog0Persoonlijke woordenboekPersonal DictionaryPreferencesDialogInstellungen PreferencesPreferencesDialog VraagQuestionPreferencesDialog*Onthou cursor positieRemember cursor positionPreferencesDialogVerwijderenRemovePreferencesDialogOpslaanSavingPreferencesDialog ScenesScenesPreferencesDialog$Woordenboek kiezenSelect DictionaryPreferencesDialogSnelkoppelingShortcutPreferencesDialogSnelkoppelingen ShortcutsPreferencesDialog EnkelSinglePreferencesDialog2Slimme aanhalingstekens: Smart quotes:PreferencesDialog$Afgevlakte letters Smooth fontsPreferencesDialog SorrySorryPreferencesDialog"SpellingscontroleSpell CheckingPreferencesDialogStatistieken StatisticsPreferencesDialog StijlStylePreferencesDialog$Tekst naast iconenText Alongside IconsPreferencesDialogAlleen tekst Text OnlyPreferencesDialogTekst positie:Text Position:PreferencesDialog$Tekst onder IconenText Under IconsPreferencesDialog\Dit archief bevat geen bruikbare woordenlijst.1The archive does not contain a usable dictionary.PreferencesDialog^Het woordenboek %1 bestaat al. Deze vervangen ?>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialogWerkbalkToolbarPreferencesDialog(Typemachine geluidenTypewriter soundsPreferencesDialogPBestand '%1' kan niet afgesloten worden.Unable to close file '%1'.PreferencesDialog@Archief kan niet geopend worden.Unable to open archive.PreferencesDialogJBestand '%1' kan niet geopend worden.Unable to open file '%1'.PreferencesDialogHKan archief met metadata niet lezen. Unable to read archive metadata.PreferencesDialog6Algoritme voor woordtellingWord Count AlgorithmPreferencesDialogWoordtelling Word countPreferencesDialogWoorden:Words:PreferencesDialog:Geen odnersteund RTF bestand.Not a supported RTF file.ReaderLBestand '%1' kan niet gesloten worden.Unable to close file '%1'.Reader@Archief kon niet geopend worden.Unable to open archive.ReaderJBestand '%1' kan niet geopend worden.Unable to open file '%1'.ReaderCtrl-Shift-DownCtrl+Shift+Down SceneListCtrl-Shift-Up Ctrl+Shift+Up SceneListFilterenFilter SceneList0Verberg scene lijst (%1)Hide scene list (%1) SceneList:Verplaats Scenes naar benedenMove Scenes Down SceneList2Verplaats de scene omhoogMove Scenes Up SceneList@Vergroot of verklein scene lijstResize scene list SceneListShift-F4Shift+F4 SceneList4Laat scene lijst (%1) zienShow scene list (%1) SceneList&Schakel scene lijstToggle Scene List SceneListStandaardDefaultSession&Beheren... &Manage...SessionManager&Nieuw...&New...SessionManagerKopierenCloneSessionManagerSessie kopieren Clone SessionSessionManagerCtrl+Shift+B Ctrl+Shift+MSessionManagerCrtl+Shift+N Ctrl+Shift+NSessionManagerVerwijderenDeleteSessionManager(Sessie verwijderen ?Delete selected session?SessionManagerSessies beherenManage SessionsSessionManager NieuwNewSessionManagerNieuwe sessie New SessionSessionManager VraagQuestionSessionManagerHernoemenRenameSessionManager Sessie hernoemenRename SessionSessionManagerS&essies S&essionsSessionManagerSessie naam: Session name:SessionManager SorrySorrySessionManagerWissel naar Switch ToSessionManager@De sessie naam is al in gebruik.-The requested session name is already in use.SessionManagerLeegmakenClear ShortcutEditNTerugzetten naar standaard instellingenReset to Default ShortcutEditSnelkoppeling Shortcut: ShortcutEditEven geduld Please Wait SmartQuote6Vervang aanhalingstekens...Replacing quotation marks... SmartQuote&Toevoegen&Add SpellChecker&Verander&Change SpellChecker&Negeren&Ignore SpellCheckerV&erander Alles C&hange All SpellCheckerAfbrekenCancel SpellCheckerVervang door: Change to: SpellChecker SpellingcontroleCheck Spelling SpellChecker0Spelling controleren ...Checking spelling... SpellCheckerNegeer &Alles I&gnore All SpellChecker(Niet in woordenboek:Not in dictionary: SpellCheckerEven geduld Please wait SpellChecker.Spellingcontrole klaar.Spell check complete. SpellCheckerAlle symbolen All symbols SymbolsDialogDetailsDetails SymbolsDialogInvoegenInsert SymbolsDialog Naam:Name: SymbolsDialog2Recent gebruikte symbolenRecently used symbols SymbolsDialogSymbolenSymbols SymbolsDialogBlokkenBlocks SymbolsModelScriptsScripts SymbolsModelNaamloos %1 Untitled %1Theme Pixel pixels ThemeDialogAnderhalve lijn 1.5 Lines ThemeDialogAchtergrond Background ThemeDialogGecentreerdCentered ThemeDialog Kleur:Color: ThemeDialogDubbele lijnDouble ThemeDialogLettertype:Font: ThemeDialogVoorgrond Foreground ThemeDialogPlaatje:Image: ThemeDialog.Inspringing eerste lijnIndent First Line: ThemeDialog LinksLeft ThemeDialogLijn afstand Line Spacing ThemeDialog Marge:Margin: ThemeDialogSpelfout: Misspelled: ThemeDialog Thema veranderen Modify Theme ThemeDialog Naam:Name: ThemeDialogGeen plaatjeNo Image ThemeDialogTransparantieOpacity ThemeDialogVulling:Padding: ThemeDialog(Paragraaf uitlijningParagraph Spacing ThemeDialogPixels boven Pixels Above: ThemeDialogPixels onder Pixels Below: ThemeDialogPositiePosition ThemeDialogProportioneel Proportional ThemeDialogVerwijderRemove ThemeDialog RechtsRight ThemeDialogAfronding: Rounding: ThemeDialogGeschaaldScaled ThemeDialog EnkelSingle ThemeDialogGrootte:Size: ThemeDialogSpatieringSpacings ThemeDialogUitgerekt Stretched ThemeDialog TekstText ThemeDialog^Pa s wijze lynx bezag vroom het fikse aquaduct.+The quick brown fox jumps over the lazy dog ThemeDialogGetegeld.Tiled ThemeDialog Type:Type: ThemeDialogZoomZoomed ThemeDialogDeze naam wordt al voor een thema gebruikt. Kies een andere naam?A theme already exists with that name. Please enter a new name: ThemeManagerToevoegenAdd ThemeManagerAfsluitenClose ThemeManagerExporterenExport ThemeManager Thema exporteren Export Theme ThemeManagerImporterenImport ThemeManager Thema importeren Import Theme ThemeManagerAanpassenModify ThemeManager VraagQuestion ThemeManagerVerwijderenRemove ThemeManager@Geselecteerde thema verwijderen?Remove selected theme? ThemeManager SorrySorry ThemeManagerThema'sThemes ThemeManager0Thema's (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManager Thema's (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer0<b>tekens:</b> %L1 / %L2Characters: %L1 / %L2Timer(<b>pagina's:</b> %L1Pages: %L1Timer,<b>paragrafen:</b> %L1Paragraphs: %L1Timer&<b>woorden:</b> %L1Words: %L1Timer AlarmAlarmTimer Duur:Delay:TimerVerwijderenDeleteTimer$Timer verwijderen? Delete timer?TimerBewerkenEditTimerHH:mm:ssHH:mm:ssTimer Memo:Memo:Timer VraagQuestionTimer&Tijdsduur instellen Set DelayTimerTijd instellenSet TimeTimer Tijd:Time:Timer Type:Type:TimerHH:mm:ssHH:mm:ss TimerDisplay*Geen timers ingesteldNo timers running TimerDisplay%1 - %2%1 - %2 TimerManager+HH:mm:ss +HH:mm:ss TimerManager8Timer instelling beeindigen?Cancel editing timers? TimerManagerNeuNew TimerManager VraagQuestion TimerManager RecentRecent TimerManager TimerTimers TimerManagerZOnverwacht het einde van het bestand bereikt.!Unexpectedly reached end of file. Tokenizer*%1 (schrijfbeveiligd)%1 (Read-Only)Window&%1% van het dagdoel%1% of daily goalWindow &Over&AboutWindow&Dik&BoldWindowAfsl&uiten&CloseWindowK&opieren&CopyWindow"Minder inspringen&Decrease IndentWindow&Bewerken&EditWindow&Bestand&FileWindow&Vinden...&Find...Window&Schermvullend &FullscreenWindow &Help&HelpWindow&Schuin&ItalicWindow &Nieuw&NewWindow&Uit&OffWindow&Openen...&Open...Window&Paragraaf &ParagraphWindowPl&akken&PasteWindow &Instellingen...&Preferences...WindowA&fdrukken... &Print...WindowS&toppen&QuitWindow&Herhalen&RedoWindow&Hernoemen... &Rename...WindowVe&rvang... &Replace...WindowOp&slaan&SaveWindow&Instellingen &SettingsWindow*Spellings&controle... &Spelling...WindowSu&bscript &SubscriptWindow&Thema's... &Themes...Window&Drie lijnen &Three LinesWindow&Stopwatch... &Timers...Window&Gereedschappen&ToolsWindow&Onderlijnen &UnderlineWindow&Ongedaan maken&UndoWindowb'%1' is nieuwer dan de versie in de tussenopslag.#'%1' is newer than the cached copy.Window(naamloos %1) (Untitled %1)WindowREen simpele schermvullende tekstverwerker"A simple fullscreen word processorWindowOver &Qt About &QtWindow Over FocusWriterAbout FocusWriterWindow&Centreren Align &CenterWindowAlign &JustifyAlign &JustifyWindow &Links uitlijnen Align &LeftWindow"&Rechts uitlijnen Align &RightWindow&Taal...Application &Language...Window"Tekens: %L1 / %L2Characters: %L1 / %L2WindowHCopyright &copy; 2008-%1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindow Ctrl+<Ctrl+<Window Ctrl+>Ctrl+>Window Ctrl+JCtrl+JWindow Strg+GCtrl+KWindow Ctrl+MCtrl+MWindow Ctrl+QCtrl+QWindow Ctrl+RCtrl+RWindowCtrl-Shift-A Ctrl+Shift+AWindowCtrl-Shift-V Ctrl+Shift+VWindow Strg+^Ctrl+^Window Ctrl+_Ctrl+_Window Ctrl+{Ctrl+{Window Ctrl+|Ctrl+|Window Ctrl+}Ctrl+}WindowK&nippenCu&tWindowHDe noodopslag is niet beschrijfbaar. Emergency cache is not writable.WindowEscEscWindowTekst in focus F&ocused TextWindowF11F11WindowF7F7WindowVolge&nde Find &NextWindow"&Achteruit zoekenFind Pre&viousWindowO&pmakenFo&rmatWindowFocus uit Focus OffWindow"Focus op een lijnFocus One LineWindow$Focus op paragraafFocus ParagraphWindow"Focus op 3 lijnenFocus Three LinesWindowFocusWriter FocusWriterWindowLFocusWriter is niet netjes afgesloten.&FocusWriter was not shut down cleanly.Window &Meer inspringenI&ncrease IndentWindow*Blok &links uitlijnenLe&ft to Right BlockWindow(Instellingen inladenLoading settingsWindow.Geluiden worden geladenLoading soundsWindow&Thema wordt geladenLoading themesWindowMi&nimaliseren M&inimizeWindowBeheer sessiesManage SessionsWindowNieuwe sessie New SessionWindowEen &lijn One &LineWindowBestand openen Open FileWindow0Bestand %1 wordt geopend Opening %1Window>Nieuwer bestand overschrijven ?Overwrite newer file?WindowPagina's: %L1 Pages: %L1WindowParagrafen: %L1Paragraphs: %L1Window2Plak &zonder formatteringPaste &UnformattedWindowfGraag er voor zorgen dat SDL_mixer genstalleerd is-Please make sure that SDL_mixer is installed.Window VraagQuestionWindowdUitgegeven onder de <a href=%1>GPL 3</a> licentie/Released under the GPL 3 licenseWindowHer&ladenReloa&dWindow8Veiligheidskopie herstellen?!Restore from the emergency cache?Window,Blok &rechts uitlijnenRi&ght to Left BlockWindowS&ymbolen S&ymbols...WindowOpslaan &als... Save &As...Window&Alles opslaan Save A&llWindow(Wijzigingen opslaan? Save changes?Window"Alles &Selecteren Select &AllWindow Selecteer &scene Select &SceneWindow$&Menu Iconen tonenShow &Menu IconsWindow.&Gereedschapsbalk tonen Show &ToolbarWindow0&Slimme aanhalingstekens Smart &QuotesWindowXEnkele bestanden konden niet geopend worden.Some files could not be opened.WindowfEnkele bestanden zijn in alleen lezen mode geopend.!Some files were opened Read-Only.WindowSommige bestanden worden niet ondersteund en kunnen niet geopend worden4Some files were unsupported and could not be opened.Window&DoorhalenStri&kethroughWindowSup&erscript Sup&erscriptWindow0Schakel naar document %1Switch to Document %1Window8Schakel naar eerste documentSwitch to First DocumentWindow:Schakel naar laatste documentSwitch to Last DocumentWindow:Schakel naar volgend documentSwitch to Next DocumentWindow6Schakel naar vorig documentSwitch to Previous DocumentWindowPTekst-bestanden (%1);;Alle Bestanden (*)Text Files (%1);;All Files (*)Window^Typemachinegeluiden konden niet geladen worden.!Unable to load typewriter sounds.WindowUnbenanntUntitledWindow&&Dokument bijwerkenUpdate &DocumentWindow&Selecti&e bijwerkenUpdate &SelectionWindowbGebruikt onder de <a href=%1>LGPL 3</a> licentie,Used under the LGPL 3 licenseWindowMaakt gebruik van iconenn van het <a href=%1>Oxygen</a> iconen thema4Uses icons from the Oxygen icon themeWindowWaarschuwingWarningWindowWoorden: %L1 Words: %L1Windowfocuswriter-1.4.5/translations/focuswriter_nl.ts000066400000000000000000002236361231434177300222540ustar00rootroot00000000000000 Alert Close (%1) Sluit (%1) Collapse Inklappen Expand Uitklappen AlertLayer Dismiss Alert Wegklikken alarm Ctrl+D Ctrl+D Document Sorry Sorry Unable to save '%1'. '%1' kan niet opgeslagen worden. Save File As Opslaan als Unable to overwrite '%1'. '%1' kan niet overschreven worden. Rename File Bestand hernoemen Unable to rename '%1'. '%1' kan niet hernoemd worden. Reload File Bestand herladen Reload the file %1 from disk? Bestand %1 herladen van disk ? All unsaved changes will be lost. Alle niet bewaarde wijzigingen zullen verloren gaan Reload Herladen Plain Text (*.txt) Platte tekst (*.txt) Question Vraag Saving as plain text will discard all formatting. Discard formatting? Opslaan als kale tekst zal alle opmaak verwijderen. Opmaak verwijderen ? OpenDocument Text (*.odt) OpenDocument Tekst (*.odt) Rich Text (*.rtf) Rich Text(*.rtf) All Files (*) Alle bestanden (*) DocumentWatcher File Changed Bestand is gewijzigd The file %1 was changed by another program. Bestand %1 is gewijzigd door een andere applicatie Do you want to reload the file? Moet het bestand opnieuw geladen worden ? Reload Herladen Ignore Negeren File Deleted Bestand is verwijderd The file %1 was deleted by another program. Bestand %1 is verwijderd door een andere applicatie Do you want to save or close the file? Bestand opslaan of afsluiten ? FindDialog Search for: Zoeken naar: Replace with: Vervangen door: Ignore case Hoofd-/kleine letters negeren Whole words only Alleen hele woorden Regular expressions Regulieren expressies Search up Naar begin zoeken Search down Naar einde zoeken &Find &Zoek &Replace &Vervang Replace &All Vervang &Alles Find Zoeken Replace Vervangen Replace %n instance(s)? %n vondst vervangen? %n vondsten vervangen? Question Vraag Sorry Sorry Phrase not found. Zoekterm niet gevonden. Highlighter Add Toevoegen Check Spelling... Spelling controleren ... (No suggestions found) (geen suggestie gevonden) ImageButton Open Image Plaatje openen Images(%1) Plaatjes(%1) LocaleDialog Select application language: Taal selecteren: <System Language> <Systeemtaal> Note Let op Please restart this application for the change in language to take effect. Graag de applicatie herstarten om de taalverandering door te voeren. PreferencesDialog Preferences Instellungen General Algemeen Statistics Statistieken Toolbar Werkbalk Spell Checking Spellingscontrole Select Dictionary Woordenboek kiezen Sorry Sorry Unable to open archive. Archief kan niet geopend worden. Unable to read archive metadata. Kan archief met metadata niet lezen. The archive does not contain a usable dictionary. Dit archief bevat geen bruikbare woordenlijst. Unable to open file '%1'. Bestand '%1' kan niet geopend worden. Unable to close file '%1'. Bestand '%1' kan niet afgesloten worden. Question Vraag Shortcuts Snelkoppelingen One or more shortcuts conflict. Do you wish to proceed? Een of meerdere snelkoppelingen conflicteren. Toch doorgaan ? The dictionary "%1" already exists. Do you want to replace it? Het woordenboek %1 bestaat al. Deze vervangen ? Daily Goal Dagelijks doel None Niets Minutes: Minuten: Words: Woorden: Editing Bewerking Always vertically center Verticaal centreren Block insertion cursor Blok invoeg cursor Smooth fonts Afgevlakte letters Typewriter sounds Typemachine geluiden Smart quotes: Slimme aanhalingstekens: Double Dubbel Single Enkel Scenes Scenes Divider: Deelstreep Saving Opslaan Automatically save changes Automatisch veranderingen opslaan Remember cursor position Onthou cursor positie Contents Inhoud Word count Woordtelling Page count Paginatelling Paragraph count Paragraaftelling Character count Tekentelling Page Size Paginagrootte Characters: Tekens: Paragraphs: Paragrafen: Word Count Algorithm Algoritme voor woordtelling Detect word boundaries Woordgrenzen bepalen Divide character count by six Tekentelling door 6 delen Style Stijl Icons Only Alleen iconen Text Only Alleen tekst Text Alongside Icons Tekst naast iconen Text Under Icons Tekst onder Iconen Text Position: Tekst positie: Actions Acties Move Up Naar boven verschuiven Move Down Naar onder verschuiven Add Separator Scheidingsteken toevoegen Command Commando Shortcut Snelkoppeling Action Actie Check spelling as you type Spelling controleren terwijl je typt Ignore words in UPPERCASE Woorden in HOOFDLETTERS negeren Ignore words with numbers Woorden met getallen negeren Language Taal Add Toevoegen Remove Verwijderen Personal Dictionary Persoonlijke woordenboek Reader Not a supported RTF file. Geen odnersteund RTF bestand. Unable to open archive. Archief kon niet geopend worden. Unable to open file '%1'. Bestand '%1' kan niet geopend worden. Unable to close file '%1'. Bestand '%1' kan niet gesloten worden. SceneList Ctrl+Shift+Down Ctrl-Shift-Down Move Scenes Up Verplaats de scene omhoog Ctrl+Shift+Up Ctrl-Shift-Up Toggle Scene List Schakel scene lijst Shift+F4 Shift-F4 Show scene list (%1) Laat scene lijst (%1) zien Hide scene list (%1) Verberg scene lijst (%1) Filter Filteren Move Scenes Down Verplaats Scenes naar beneden Resize scene list Vergroot of verklein scene lijst Session Default Standaard SessionManager Manage Sessions Sessies beheren S&essions S&essies New Nieuw Rename Hernoemen Clone Kopieren Delete Verwijderen Switch To Wissel naar New Session Nieuwe sessie Clone Session Sessie kopieren Rename Session Sessie hernoemen Question Vraag Delete selected session? Sessie verwijderen ? Session name: Sessie naam: Sorry Sorry The requested session name is already in use. De sessie naam is al in gebruik. &New... &Nieuw... Ctrl+Shift+N Crtl+Shift+N &Manage... &Beheren... Ctrl+Shift+M Ctrl+Shift+B ShortcutEdit Clear Leegmaken Reset to Default Terugzetten naar standaard instellingen Shortcut: Snelkoppeling SmartQuote Replacing quotation marks... Vervang aanhalingstekens... Please Wait Even geduld SpellChecker Check Spelling Spellingcontrole &Add &Toevoegen &Ignore &Negeren I&gnore All Negeer &Alles &Change &Verander C&hange All V&erander Alles Not in dictionary: Niet in woordenboek: Change to: Vervang door: Checking spelling... Spelling controleren ... Cancel Afbreken Please wait Even geduld Spell check complete. Spellingcontrole klaar. SymbolsDialog Symbols Symbolen Recently used symbols Recent gebruikte symbolen All symbols Alle symbolen Details Details Name: Naam: Insert Invoegen SymbolsModel Blocks Blokken Scripts Scripts Theme Untitled %1 Naamloos %1 ThemeDialog Modify Theme Thema veranderen Name: Naam: Background Achtergrond No Image Geen plaatje Tiled Getegeld. Centered Gecentreerd Stretched Uitgerekt Scaled Geschaald Zoomed Zoom Remove Verwijder Type: Type: Color: Kleur: Image: Plaatje: Foreground Voorgrond Opacity Transparantie pixels Pixel Left Links Right Rechts Position Positie Size: Grootte: Rounding: Afronding: Margin: Marge: Padding: Vulling: Text Tekst Font: Lettertype: Misspelled: Spelfout: Spacings Spatiering Line Spacing Lijn afstand Single Enkel 1.5 Lines Anderhalve lijn Double Dubbele lijn Proportional Proportioneel Paragraph Spacing Paragraaf uitlijning Indent First Line: Inspringing eerste lijn Pixels Above: Pixels boven Pixels Below: Pixels onder The quick brown fox jumps over the lazy dog Pa’s wijze lynx bezag vroom het fikse aquaduct. ThemeManager Themes Thema's Add Toevoegen Modify Aanpassen Remove Verwijderen Import Importeren Export Exporteren Close Afsluiten Question Vraag Remove selected theme? Geselecteerde thema verwijderen? Import Theme Thema importeren Themes (*.fwtz *.theme) Thema's (*.fwtz *.theme) Themes (*.fwtz) Thema's (*.fwtz) Sorry Sorry A theme already exists with that name. Please enter a new name: Deze naam wordt al voor een thema gebruikt. Kies een andere naam Export Theme Thema exporteren Timer <b>%1</b> - %2 <b>%1</b> - %2 Question Vraag Delete timer? Timer verwijderen? <b>Words:</b> %L1 <b>woorden:</b> %L1 <b>Pages:</b> %L1 <b>pagina's:</b> %L1 <b>Paragraphs:</b> %L1 <b>paragrafen:</b> %L1 <b>Characters:</b> %L1 / %L2 <b>tekens:</b> %L1 / %L2 Set Delay Tijdsduur instellen Set Time Tijd instellen Delay: Duur: Time: Tijd: HH:mm:ss HH:mm:ss Alarm Alarm Type: Type: Memo: Memo: Edit Bewerken Delete Verwijderen TimerDisplay HH:mm:ss HH:mm:ss No timers running Geen timers ingesteld TimerManager Timers Timer New Neu Recent Recent Question Vraag Cancel editing timers? Timer instelling beeindigen? +HH:mm:ss +HH:mm:ss %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. Onverwacht het einde van het bestand bereikt. Window Loading themes Thema wordt geladen Loading sounds Geluiden worden geladen Untitled Unbenannt Open File Bestand openen About FocusWriter Over FocusWriter FocusWriter FocusWriter A simple fullscreen word processor Een simpele schermvullende tekstverwerker Copyright &copy; 2008-%1 Graeme Gott Copyright &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Uitgegeven onder de <a href=%1>GPL 3</a> licentie Uses icons from the <a href=%1>Oxygen</a> icon theme Maakt gebruik van iconenn van het <a href=%1>Oxygen</a> iconen thema Used under the <a href=%1>LGPL 3</a> license Gebruikt onder de <a href=%1>LGPL 3</a> licentie Characters: %L1 / %L2 Tekens: %L1 / %L2 Pages: %L1 Pagina's: %L1 Paragraphs: %L1 Paragrafen: %L1 Words: %L1 Woorden: %L1 %1% of daily goal %1% van het dagdoel Opening %1 Bestand %1 wordt geopend Question Vraag Save changes? Wijzigingen opslaan? (Untitled %1) (naamloos %1) Switch to Next Document Schakel naar volgend document Switch to Previous Document Schakel naar vorig document Switch to First Document Schakel naar eerste document Switch to Last Document Schakel naar laatste document Switch to Document %1 Schakel naar document %1 Loading settings Instellingen inladen Emergency cache is not writable. De noodopslag is niet beschrijfbaar. Warning Waarschuwing FocusWriter was not shut down cleanly. FocusWriter is niet netjes afgesloten. Restore from the emergency cache? Veiligheidskopie herstellen? Some files could not be opened. Enkele bestanden konden niet geopend worden. Some files were opened Read-Only. Enkele bestanden zijn in alleen lezen mode geopend. Text Files (%1);;All Files (*) Tekst-bestanden (%1);;Alle Bestanden (*) '%1' is newer than the cached copy. '%1' is nieuwer dan de versie in de tussenopslag. Overwrite newer file? Nieuwer bestand overschrijven ? Unable to load typewriter sounds. Typemachinegeluiden konden niet geladen worden. Please make sure that SDL_mixer is installed. Graag er voor zorgen dat SDL_mixer geïnstalleerd is %1 (Read-Only) %1 (schrijfbeveiligd) &File &Bestand &New &Nieuw &Open... &Openen... Reloa&d Her&laden &Save Op&slaan Save &As... Opslaan &als... &Rename... &Hernoemen... Save A&ll &Alles opslaan Manage Sessions Beheer sessies New Session Nieuwe sessie &Print... A&fdrukken... &Close Afsl&uiten &Quit S&toppen Ctrl+Q Ctrl+Q &Edit &Bewerken &Undo &Ongedaan maken &Redo &Herhalen Cu&t K&nippen &Copy K&opieren &Paste Pl&akken Paste &Unformatted Plak &zonder formattering Ctrl+Shift+V Ctrl-Shift-V Select &All Alles &Selecteren Select &Scene Selecteer &scene Ctrl+Shift+A Ctrl-Shift-A Fo&rmat O&pmaken &Bold &Dik &Italic &Schuin &Underline &Onderlijnen Stri&kethrough &Doorhalen Ctrl+K Strg+G Sup&erscript Sup&erscript Ctrl+^ Strg+^ &Subscript Su&bscript Ctrl+_ Ctrl+_ Align &Left &Links uitlijnen Ctrl+{ Ctrl+{ Align &Center &Centreren Ctrl+| Ctrl+| Align &Right &Rechts uitlijnen Ctrl+} Ctrl+} Align &Justify Align &Justify Ctrl+J Ctrl+J &Decrease Indent Minder inspringen Ctrl+< Ctrl+< I&ncrease Indent &Meer inspringen Ctrl+> Ctrl+> Le&ft to Right Block Blok &links uitlijnen Ri&ght to Left Block Blok &rechts uitlijnen &Tools &Gereedschappen &Find... &Vinden... Find &Next Volge&nde Find Pre&vious &Achteruit zoeken &Replace... Ve&rvang... Ctrl+R Ctrl+R Smart &Quotes &Slimme aanhalingstekens Update &Document &Dokument bijwerken Update &Selection Selecti&e bijwerken &Spelling... Spellings&controle... F7 F7 &Timers... &Stopwatch... S&ymbols... S&ymbolen &Settings &Instellingen Show &Toolbar &Gereedschapsbalk tonen Show &Menu Icons &Menu Iconen tonen F&ocused Text Tekst in focus &Fullscreen &Schermvullend F11 F11 Esc Esc M&inimize Mi&nimaliseren Ctrl+M Ctrl+M &Themes... &Thema's... &Preferences... &Instellingen... Focus Off Focus uit Focus One Line Focus op een lijn Focus Three Lines Focus op 3 lijnen &Paragraph &Paragraaf Focus Paragraph Focus op paragraaf &Help &Help Application &Language... &Taal... Some files were unsupported and could not be opened. Sommige bestanden worden niet ondersteund en kunnen niet geopend worden &Off &Uit One &Line Een &lijn &Three Lines &Drie lijnen &About &Over About &Qt Over &Qt focuswriter-1.4.5/translations/focuswriter_pl.qm000066400000000000000000001000151231434177300222260ustar00rootroot00000000000000Tc4Yc{ O28Ϩ%br3]f~k.0n%0n)&P2>)qGtm}^pkF`K"rS^:$Lc#GS ~T<aqnef`zXiEM:J O6P?XRf3V-`?.Nccu"Zc'aH~i5c$(a~, 4Y92z^Ew?e?J=)'I$^WQz|'4UFᑞ7~sM@N.y H;`~l( WBE*M@GZ,Cluz^ Ԏ-S5!Z#9 hI5o6Z; [:[g[[[\\H\] +]M,]z-](I,/Q,J4bj%c%;;M'~g?YȞn^hDfvE:+ 5V BAe};vE8| IC8az<"D60EFQY1'TN5t 5t zFF@FFH50G A?M*oN% KN%A2WGT<NKtqYrHM/dݲ j(xcsUcCZUOh/_?25<8Nl:YIIOJIK\Z[-4g>ilRm(0zCAC 3.?lX"̊|6O&O)޷3F!=g"*p4e+zd< uPR:ZlC*m p:#xh _>^^4fb!iw52L9} G9(NQf/eA|>R|w!p}q4oHPaBSg%% B' B&C/Cd \~S_ >h 78 "3 %^r Y v Y z z .3%_ JU3 W0m WdP 9 1 ·Ld .^p  Ń +I :o ;fj d8m eEW 4 q^# t- _ ʀs8A ˔Vb ˼C7 z_ Bnc f  V4 c9H ^+ Q #! L.. f(% iqs w99 xj6 {"ujK Nfs  I2 ʫ ʫ ^ ʫ- ʫ0 ʫFQ ʫK, ʫM ʫg  A) pUr= ; Ed cJ cL+ >cM S 6m >Ur J@ Z$: eK iN!e tfiy u 1z sT C C@9  &D ) t[ 1i \ sQC Dq _ 8j DY\u DY. DY/ DZ\ ^3 noJ\ uub {N( Ps I < ޘ k Zc"TVn9E=NltrAcj +db'PgF4nLXfj,A ^L9,W<e"iTsWWI+;-z6C "\ isZamknij (%1) Close (%1)AlertZwiDCollapseAlert RozwiDExpandAlert Ctrl+DCtrl+D AlertLayer*Zamknij powiadomienie Dismiss Alert AlertLayer&Wszystkie pliki (*) All Files (*)DocumentZWszystkie niezapisane zmiany zostan utracone!All unsaved changes will be lost.DocumentLDokument tekstowy OpenDocument (*.odt)OpenDocument Text (*.odt)Document(ZwykBy tekst (*.txt)Plain Text (*.txt)DocumentPytanieQuestionDocument Wczytaj ponownieReloadDocument Wczytaj ponownie Reload FileDocumentBWczytaj ponownie plik %1 z dysku?Reload the file %1 from disk?Document"ZmieD nazw pliku Rename FileDocument:Tekst z formatowaniem (*.rtf)Rich Text (*.rtf)Document Zapisz plik jako Save File AsDocumentZapisanie jako zwykBy tekst usunie caBe formatowanie. Usun formatowanie?ESaving as plain text will discard all formatting. Discard formatting?DocumentPrzepraszamSorryDocument<Nie mo|na nadpisa pliku '%1'.Unable to overwrite '%1'.DocumentFNie mo|na zmieni nazwy pliku '%1'.Unable to rename '%1'.Document:Nie mo|na zapisa pliku '%1'.Unable to save '%1'.DocumentBCzy chcesz wczyta plik ponownie?Do you want to reload the file?DocumentWatcherJCzy chcesz zapisa, czy zamkn plik?&Do you want to save or close the file?DocumentWatcherPlik zmieniony File ChangedDocumentWatcherPlik usunity File DeletedDocumentWatcherIgnorujIgnoreDocumentWatcher Wczytaj ponownieReloadDocumentWatcherXPlik %1 zostaB zmieniony przez inny program.+The file %1 was changed by another program.DocumentWatcherVPlik %1 zostaB usunity przez inny program.+The file %1 was deleted by another program.DocumentWatcher&Znajdz&Find FindDialog&Zastp&Replace FindDialog ZnajdzFind FindDialog,Ignoruj wielko[ liter Ignore case FindDialog2Nie znaleziono wyra|enia.Phrase not found. FindDialogPytanieQuestion FindDialog&Wyra|enia regularneRegular expressions FindDialog ZastpReplace FindDialog0Zastpi %n wystpienie?0Zastpi %n wystpienia?,Zastpi %n wystpieD?Replace %n instance(s)? FindDialog"Zastp &wszystkie Replace &All FindDialogZastp: Replace with: FindDialogZnajdz nastpny Search down FindDialogZnajdz: Search for: FindDialog Znajdz poprzedni Search up FindDialogPrzepraszamSorry FindDialog"Tylko caBe wyrazyWhole words only FindDialog6(Nie znaleziono propozycji)(No suggestions found) Highlighter DodajAdd Highlighter&Sprawdz pisowni...Check Spelling... HighlighterObrazki(%1) Images(%1) ImageButtonOtwrz obrazek Open Image ImageButton"<Jzyk systemowy> LocaleDialogInformacjaNote LocaleDialogZmiany zostan uwzgldnione przy nastpnym uruchomieniu programu.JPlease restart this application for the change in language to take effect. LocaleDialog0Wybierz jzyk aplikacji:Select application language: LocaleDialogDziaBanieActionPreferencesDialogDziaBaniaActionsPreferencesDialog DodajAddPreferencesDialogDodaj odstp Add SeparatorPreferencesDialog2Zawsze wy[rodkuj w pionieAlways vertically centerPreferencesDialog8Automatycznie zapisuj zmianyAutomatically save changesPreferencesDialogKursor blokowyBlock insertion cursorPreferencesDialogLicznik znakwCharacter countPreferencesDialog Znaki: Characters:PreferencesDialogDSprawdzaj pisowni podczas pisaniaCheck spelling as you typePreferencesDialogPolecenieCommandPreferencesDialog Tre[ContentsPreferencesDialogDzienny cel Daily GoalPreferencesDialog*Wykrywaj granice sBwDetect word boundariesPreferencesDialog>Dziel liczb znakw przez sze[Divide character count by sixPreferencesDialog$Sekwencja podziaBuDivider:PreferencesDialogPodwjneDoublePreferencesDialog EdycjaEditingPreferencesDialog OglneGeneralPreferencesDialogTylko ikony Icons OnlyPreferencesDialogLIgnoruj sBowa pisane WIELKIMI LITERAMIIgnore words in UPPERCASEPreferencesDialog0Ignoruj sBowa z liczbamiIgnore words with numbersPreferencesDialog JzykLanguagePreferencesDialogMinuty:Minutes:PreferencesDialogPrzesuD w dB Move DownPreferencesDialogPrzesuD w grMove UpPreferencesDialogBrakNonePreferencesDialog|Jeden lub wicej skrtw si powtarza. Czy chcesz kontynuowa?7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialogRozmiar strony Page SizePreferencesDialogLicznik stron Page countPreferencesDialog Licznik akapitwParagraph countPreferencesDialogAkapity: Paragraphs:PreferencesDialog Osobisty sBownikPersonal DictionaryPreferencesDialogPreferencje PreferencesPreferencesDialogPytanieQuestionPreferencesDialog0Pamitaj pozycj kursoraRemember cursor positionPreferencesDialogUsuDRemovePreferencesDialogZapisywanieSavingPreferencesDialog ScenyScenesPreferencesDialogWybierz sBownikSelect DictionaryPreferencesDialog SkrtShortcutPreferencesDialog Skrty ShortcutsPreferencesDialogPojedynczeSinglePreferencesDialog,Eleganckie cudzysBowy: Smart quotes:PreferencesDialog&WygBadzone czcionki Smooth fontsPreferencesDialogPrzepraszamSorryPreferencesDialog&Sprawdzanie pisowniSpell CheckingPreferencesDialogStatystyki StatisticsPreferencesDialogStylStylePreferencesDialogTekst obok ikonText Alongside IconsPreferencesDialogTylko tekst Text OnlyPreferencesDialog"PoBo|enie tekstu:Text Position:PreferencesDialog"Tekst pod ikonamiText Under IconsPreferencesDialogVArchiwum nie zawiera prawidBowego sBownika.1The archive does not contain a usable dictionary.PreferencesDialogfSBowniki "%1" ju| istnieje. Czy chcesz go zastpi?>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialogPasek narzdziToolbarPreferencesDialog4OdgBosy maszyny do pisaniaTypewriter soundsPreferencesDialog:Nie mo|na zamkn pliku '%1'.Unable to close file '%1'.PreferencesDialog8Nie mo|na otworzy archiwum.Unable to open archive.PreferencesDialog<Nie mo|na otworzy pliku '%1'.Unable to open file '%1'.PreferencesDialogNNie mo|na odczyta metadanych archiwum. Unable to read archive metadata.PreferencesDialog.Algorytm zliczania sBwWord Count AlgorithmPreferencesDialogLicznik sBw Word countPreferencesDialog SBowa:Words:PreferencesDialogBTo nie jest obsBugiwany plik RTF.Not a supported RTF file.Reader:Nie mo|na zamkn pliku '%1'.Unable to close file '%1'.Reader8Nie mo|na otworzy archiwum.Unable to open archive.Reader<Nie mo|na otworzy pliku '%1'.Unable to open file '%1'.Reader Ctrl+Shift+W dBCtrl+Shift+Down SceneList"Ctrl+Shift+W gr Ctrl+Shift+Up SceneListFiltrujFilter SceneList*Ukryj list scen (%1)Hide scene list (%1) SceneList(Przenie[ sceny w dBMove Scenes Down SceneList*Przenie[ sceny w grMove Scenes Up SceneList0ZmieD rozmiar listy scenResize scene list SceneListShift+F4Shift+F4 SceneList*Poka| list scen (%1)Show scene list (%1) SceneList,Poka|/Ukryj list scenToggle Scene List SceneListDomy[lnaDefaultSessionZa&rzdzaj... &Manage...SessionManager&Nowa...&New...SessionManagerSklonujCloneSessionManagerSklonuj sesj Clone SessionSessionManagerCtrl+Shift+M Ctrl+Shift+MSessionManagerCtrl+Shift+N Ctrl+Shift+NSessionManagerUsuDDeleteSessionManager*Usun wybran sesj?Delete selected session?SessionManager&Zarzdzanie sesjamiManage SessionsSessionManagerNowaNewSessionManagerNowa sesja New SessionSessionManagerPytanieQuestionSessionManagerZmieD nazwRenameSessionManager"ZmieD nazw sesjiRename SessionSessionManager S&esje S&essionsSessionManagerNazwa sesji: Session name:SessionManagerPrzepraszamSorrySessionManagerPrzeBcz na Switch ToSessionManagerHPodana nazwa sesji ju| jest u|ywana.-The requested session name is already in use.SessionManagerWyczy[Clear ShortcutEdit"Przywr domy[lnyReset to Default ShortcutEdit Skrt: Shortcut: ShortcutEditProsz czeka Please Wait SmartQuote4Zamienianie cudzysBoww...Replacing quotation marks... SmartQuote &Dodaj&Add SpellChecker&ZamieD&Change SpellChecker&Ignoruj&Ignore SpellChecker"ZamieD w&szystkie C&hange All SpellChecker AnulujCancel SpellCheckerZamieD na: Change to: SpellChecker Sprawdz pisowniCheck Spelling SpellChecker,Sprawdzanie pisowni...Checking spelling... SpellChecker$Ignoruj &wszystkie I&gnore All SpellChecker$Nie ma w sBowniku:Not in dictionary: SpellCheckerProsz czeka Please wait SpellChecker>ZakoDczono sprawdzanie pisowni.Spell check complete. SpellChecker"Wszystkie symbole All symbols SymbolsDialogSzczegByDetails SymbolsDialog WstawInsert SymbolsDialog Nazwa:Name: SymbolsDialog0Ostatnio u|ywane symboleRecently used symbols SymbolsDialogSymboleSymbols SymbolsDialog BlokiBlocks SymbolsModelSkryptyScripts SymbolsModelBez nazwy %1 Untitled %1Theme pikseli pixels ThemeDialog1,5 wiersza 1.5 Lines ThemeDialogTBo Background ThemeDialogWy[rodkowaneCentered ThemeDialog Kolor:Color: ThemeDialogPodwjnyDouble ThemeDialogCzcionka:Font: ThemeDialogPierwszy plan Foreground ThemeDialogObrazek:Image: ThemeDialog6Wcicie pierwszego wiersza:Indent First Line: ThemeDialogPo lewejLeft ThemeDialog.Odstp midzy wierszami Line Spacing ThemeDialog(Margines zewntrzny:Margin: ThemeDialogBBdne wyrazy: Misspelled: ThemeDialogModyfikuj motyw Modify Theme ThemeDialog Nazwa:Name: ThemeDialogBrak obrazkaNo Image ThemeDialog$Nieprzezroczysto[Opacity ThemeDialog(Margines wewntrzny:Padding: ThemeDialog0Odstpy midzy akapitamiParagraph Spacing ThemeDialog Pikseli powy|ej: Pixels Above: ThemeDialog Pikseli poni|ej: Pixels Below: ThemeDialogPoBo|eniePosition ThemeDialogProporcjonalny Proportional ThemeDialogUsuDRemove ThemeDialogPo prawejRight ThemeDialog0Zaokrglenie naro|nikw: Rounding: ThemeDialogPrzeskalowaneScaled ThemeDialogPojedynczySingle ThemeDialogWielko[:Size: ThemeDialogOdstpySpacings ThemeDialogRozcignite Stretched ThemeDialog TekstText ThemeDialogPPchn w t Bdz je|a lub o[m skrzyD fig+The quick brown fox jumps over the lazy dog ThemeDialogSsiadujcoTiled ThemeDialogRodzaj:Type: ThemeDialogPowikszoneZoomed ThemeDialogxMotyw z podan nazw ju| istnieje. Prosz wybra inn nazw:?A theme already exists with that name. Please enter a new name: ThemeManager DodajAdd ThemeManagerZamknijClose ThemeManagerEksportujExport ThemeManagerEksportuj motyw Export Theme ThemeManagerImportujImport ThemeManagerImportuj motyw Import Theme ThemeManagerModyfikujModify ThemeManagerPytanieQuestion ThemeManagerUsuDRemove ThemeManager*Usun wybrany motyw?Remove selected theme? ThemeManagerPrzepraszamSorry ThemeManager MotywyThemes ThemeManager.Motywy (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManagerMotywy (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer.<b>Znaki:</b> %L1 / %L2Characters: %L1 / %L2Timer$<b>Strony:</b> %L1Pages: %L1Timer&<b>Akapity:</b> %L1Paragraphs: %L1Timer"<b>SBowa:</b> %L1Words: %L1Timer AlarmAlarmTimerOpznienie:Delay:TimerUsuDDeleteTimer$Usun odliczanie? Delete timer?Timer EdytujEditTimerHH:mm:ssHH:mm:ssTimer Memo:Memo:TimerPytanieQuestionTimer Ustaw opznienie Set DelayTimerUstaw czasSet TimeTimer Czas:Time:TimerRodzaj:Type:TimerHH:mm:ssHH:mm:ss TimerDisplay8Nie ma wBczonego odliczaniaNo timers running TimerDisplay%1 - %2%1 - %2 TimerManager+HH:mm:ss +HH:mm:ss TimerManager6Anulowa edycj odliczania?Cancel editing timers? TimerManagerNoweNew TimerManagerPytanieQuestion TimerManagerPoprzednieRecent TimerManagerOdliczanieTimers TimerManagerPNiespodziewanie osignito koniec pliku.!Unexpectedly reached end of file. Tokenizer*%1 (Tylko-do-odczytu)%1 (Read-Only)Window$%1% dziennego celu%1% of daily goalWindow.&Informacje o programie&AboutWindowPogru&bienie&BoldWindowZ&amknij&CloseWindow&Kopiuj&CopyWindow"Z&mniejsz wcicie&Decrease IndentWindow&Edycja&EditWindow &Plik&FileWindow&Znajdz...&Find...Window&Tryb peBno&ekranowy &FullscreenWindow P&omoc&HelpWindow&Kursywa&ItalicWindow &Nowy&NewWindow&WyBczone&OffWindow&Otwrz...&Open...Window&Akapit &ParagraphWindow &Wklej&PasteWindow&Preferencje...&Preferences...Window&Drukuj... &Print...WindowZa&koDcz&QuitWindowPrzyw&r&RedoWindowZ&mieD nazw... &Rename...WindowZa&stp... &Replace...Window&Zapisz&SaveWindow&Ustawienia &SettingsWindow.Sp&rawdzanie pisowni... &Spelling...WindowIndeks &dolny &SubscriptWindow&Motywy... &Themes...Window&Trzy wiersze &Three LinesWindow&Odliczanie... &Timers...Window&Narzdzia&ToolsWindowP&odkre[lenie &UnderlineWindow&Cofnij&UndoWindowJ'%1' jest nowszy ni| zachowana kopia.#'%1' is newer than the cached copy.Window(Bez tytuBu %1) (Untitled %1)WindowHProsty peBnoekranowy procesor tekstu"A simple fullscreen word processorWindow Informacje o &Qt About &QtWindow.O programie FocusWriterAbout FocusWriterWindow&Wyrwnaj do [rodk&a Align &CenterWindow,Wyrwnaj do ob&u stronAlign &JustifyWindow$Wyrwnaj do &lewej Align &LeftWindow&Wyrwnaj do &prawej Align &RightWindow6&Zmiana jzyka aplikacji...Application &Language...Window Znaki: %L1 / %L2Characters: %L1 / %L2WindowHCopyright &copy; 2008-%1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindow Ctrl+<Ctrl+<Window Ctrl+>Ctrl+>Window Ctrl+JCtrl+JWindow Ctrl+KCtrl+KWindow Ctrl+MCtrl+MWindow Ctrl+QCtrl+QWindow Ctrl+RCtrl+RWindowCtrl+Shift+A Ctrl+Shift+AWindowCtrl+Shift+V Ctrl+Shift+VWindow Ctrl+^Ctrl+^Window Ctrl+_Ctrl+_Window Ctrl+{Ctrl+{Window Ctrl+|Ctrl+|Window Ctrl+}Ctrl+}WindowWy&tnijCu&tWindowHBufor awaryjny nie jest zapisywalny. Emergency cache is not writable.WindowEscEscWindow*P&od[wietlanie tekstu F&ocused TextWindowF11F11WindowF7F7Window Znajdz &nastpny Find &NextWindow"Znajdz &poprzedniFind Pre&viousWindow&FormatFo&rmatWindow(WyBcz pod[wietlanie Focus OffWindow,Pod[wietl jeden wierszFocus One LineWindow Pod[wietl akapitFocus ParagraphWindow,Pod[wietl trzy wierszeFocus Three LinesWindowFocusWriter FocusWriterWindowhProgram FocusWriter nie zostaB zamknity prawidBowo.&FocusWriter was not shut down cleanly.Window Z&wiksz wcicieI&ncrease IndentWindow0Blok od l&ewej do prawejLe&ft to Right BlockWindow(Wczytywanie ustawieDLoading settingsWindow(Wczytywanie dzwikwLoading soundsWindow&Wczytywanie motywwLoading themesWindowMinimalizu&j M&inimizeWindow&Zarzdzanie sesjamiManage SessionsWindowNowa sesja New SessionWindow&Jeden wiersz One &LineWindowOtwrz plik Open FileWindowOtwieranie %1 Opening %1Window*Nadpisa nowszy plik?Overwrite newer file?WindowStrony: %L1 Pages: %L1WindowAkapity: %L1Paragraphs: %L1Window.Wklej &bez formatowaniaPaste &UnformattedWindowZUpewnij si, |e SDL_mixer jest zainstalowany.-Please make sure that SDL_mixer is installed.WindowPytanieQuestionWindowZUdostpniony na licencji <a href=%1>GPL 3</a>/Released under the GPL 3 licenseWindow&PrzeBadujReloa&dWindow>Przywrci z bufora awaryjnego?!Restore from the emergency cache?Window0Blok od prawe&j do lewejRi&ght to Left BlockWindowS&ymbole... S&ymbols...WindowZapisz &jako... Save &As...Window Zapisz &wszystko Save A&llWindowZapisa zmiany? Save changes?Window"&Zaznacz wszystko Select &AllWindowZaznacz &scen Select &SceneWindow0Wy[wietlaj &ikony w menuShow &Menu IconsWindow4Wy[wietlaj pasek &narzdzi Show &ToolbarWindow,Eleganckie &cudzysBowy Smart &QuotesWindowJNiektrych plikw nie mo|na otworzy.Some files could not be opened.Window`Niektre pliki zostaBy otwarte tylko do odczytu.!Some files were opened Read-Only.WindowtNiektre pliki nie s obsBugiwane i nie mogBy by otwarte.4Some files were unsupported and could not be opened.WindowPrzek&re[lenieStri&kethroughWindowIndeks &grny Sup&erscriptWindow0PrzeBcz do dokumentu %1Switch to Document %1Window@PrzeBcz do pierwszego dokumentuSwitch to First DocumentWindow@PrzeBcz do ostatniego dokumentuSwitch to Last DocumentWindow@PrzeBcz do nastpnego dokumentuSwitch to Next DocumentWindowDPrzeBcz do poprzedniego dokumentuSwitch to Previous DocumentWindowPPliki tekstowe (%1);;Wszystkie pliki (*)Text Files (%1);;All Files (*)Window`Nie mo|na zaBadowa odgBosw maszyny do pisania.!Unable to load typewriter sounds.WindowBez tytuBuUntitledWindow(Aktualizuj &dokumentUpdate &DocumentWindow.Aktualizuj z&aznaczenieUpdate &SelectionWindow`Udostpnionych na licencji <a href=%1>LGPL 3</a>,Used under the LGPL 3 licenseWindowXKorzysta z ikon motywu <a href=%1>Oxygen</a>4Uses icons from the Oxygen icon themeWindowOstrze|enieWarningWindowSBowa: %L1 Words: %L1Window , focuswriter-1.4.5/translations/focuswriter_pl.ts000066400000000000000000002244331231434177300222520ustar00rootroot00000000000000 Alert Close (%1) Zamknij (%1) Collapse Zwiń Expand Rozwiń AlertLayer Dismiss Alert Zamknij powiadomienie Ctrl+D Ctrl+D Document Sorry Przepraszam Unable to save '%1'. Nie można zapisać pliku '%1'. Save File As Zapisz plik jako Unable to overwrite '%1'. Nie można nadpisać pliku '%1'. Rename File Zmień nazwę pliku Unable to rename '%1'. Nie można zmienić nazwy pliku '%1'. Reload File Wczytaj ponownie Reload the file %1 from disk? Wczytaj ponownie plik %1 z dysku? All unsaved changes will be lost. Wszystkie niezapisane zmiany zostaną utracone Reload Wczytaj ponownie Plain Text (*.txt) Zwykły tekst (*.txt) Question Pytanie Saving as plain text will discard all formatting. Discard formatting? Zapisanie jako zwykły tekst usunie całe formatowanie. Usunąć formatowanie? OpenDocument Text (*.odt) Dokument tekstowy OpenDocument (*.odt) Rich Text (*.rtf) Tekst z formatowaniem (*.rtf) All Files (*) Wszystkie pliki (*) DocumentWatcher File Changed Plik zmieniony The file %1 was changed by another program. Plik %1 został zmieniony przez inny program. Do you want to reload the file? Czy chcesz wczytać plik ponownie? Reload Wczytaj ponownie Ignore Ignoruj File Deleted Plik usunięty The file %1 was deleted by another program. Plik %1 został usunięty przez inny program. Do you want to save or close the file? Czy chcesz zapisać, czy zamknąć plik? FindDialog Search for: Znajdź: Replace with: Zastąp: Ignore case Ignoruj wielkość liter Whole words only Tylko całe wyrazy Regular expressions Wyrażenia regularne Search up Znajdź poprzedni Search down Znajdź następny &Find &Znajdź &Replace &Zastąp Replace &All Zastąp &wszystkie Find Znajdź Replace Zastąp Replace %n instance(s)? Zastąpić %n wystąpienie? Zastąpić %n wystąpienia? Zastąpić %n wystąpień? Question Pytanie Sorry Przepraszam Phrase not found. Nie znaleziono wyrażenia. Highlighter Add Dodaj Check Spelling... Sprawdź pisownię... (No suggestions found) (Nie znaleziono propozycji) ImageButton Open Image Otwórz obrazek Images(%1) Obrazki(%1) LocaleDialog Select application language: Wybierz język aplikacji: <System Language> <Język systemowy> Note Informacja Please restart this application for the change in language to take effect. Zmiany zostaną uwzględnione przy następnym uruchomieniu programu. PreferencesDialog Preferences Preferencje General Ogólne Statistics Statystyki Toolbar Pasek narzędzi Spell Checking Sprawdzanie pisowni Select Dictionary Wybierz słownik Sorry Przepraszam Unable to open archive. Nie można otworzyć archiwum. Unable to read archive metadata. Nie można odczytać metadanych archiwum. The archive does not contain a usable dictionary. Archiwum nie zawiera prawidłowego słownika. Unable to open file '%1'. Nie można otworzyć pliku '%1'. Unable to close file '%1'. Nie można zamknąć pliku '%1'. Question Pytanie Shortcuts Skróty One or more shortcuts conflict. Do you wish to proceed? Jeden lub więcej skrótów się powtarza. Czy chcesz kontynuować? The dictionary "%1" already exists. Do you want to replace it? Słowniki "%1" już istnieje. Czy chcesz go zastąpić? Daily Goal Dzienny cel None Brak Minutes: Minuty: Words: Słowa: Editing Edycja Always vertically center Zawsze wyśrodkuj w pionie Block insertion cursor Kursor blokowy Smooth fonts Wygładzone czcionki Typewriter sounds Odgłosy maszyny do pisania Smart quotes: Eleganckie cudzysłowy: Double Podwójne Single Pojedyncze Scenes Sceny Divider: Sekwencja podziału Saving Zapisywanie Automatically save changes Automatycznie zapisuj zmiany Remember cursor position Pamiętaj pozycję kursora Contents Treść Word count Licznik słów Page count Licznik stron Paragraph count Licznik akapitów Character count Licznik znaków Page Size Rozmiar strony Characters: Znaki: Paragraphs: Akapity: Word Count Algorithm Algorytm zliczania słów Detect word boundaries Wykrywaj granice słów Divide character count by six Dziel liczbę znaków przez sześć Style Styl Icons Only Tylko ikony Text Only Tylko tekst Text Alongside Icons Tekst obok ikon Text Under Icons Tekst pod ikonami Text Position: Położenie tekstu: Actions Działania Move Up Przesuń w górę Move Down Przesuń w dół Add Separator Dodaj odstęp Command Polecenie Shortcut Skrót Action Działanie Check spelling as you type Sprawdzaj pisownię podczas pisania Ignore words in UPPERCASE Ignoruj słowa pisane WIELKIMI LITERAMI Ignore words with numbers Ignoruj słowa z liczbami Language Język Add Dodaj Remove Usuń Personal Dictionary Osobisty słownik Reader Not a supported RTF file. To nie jest obsługiwany plik RTF. Unable to open archive. Nie można otworzyć archiwum. Unable to open file '%1'. Nie można otworzyć pliku '%1'. Unable to close file '%1'. Nie można zamknąć pliku '%1'. SceneList Ctrl+Shift+Down Ctrl+Shift+W dół Move Scenes Up Przenieś sceny w górę Ctrl+Shift+Up Ctrl+Shift+W górę Toggle Scene List Pokaż/Ukryj listę scen Shift+F4 Shift+F4 Show scene list (%1) Pokaż listę scen (%1) Hide scene list (%1) Ukryj listę scen (%1) Filter Filtruj Move Scenes Down Przenieś sceny w dół Resize scene list Zmień rozmiar listy scen Session Default Domyślna SessionManager Manage Sessions Zarządzanie sesjami S&essions S&esje New Nowa Rename Zmień nazwę Clone Sklonuj Delete Usuń Switch To Przełącz na New Session Nowa sesja Clone Session Sklonuj sesję Rename Session Zmień nazwę sesji Question Pytanie Delete selected session? Usunąć wybraną sesję? Session name: Nazwa sesji: Sorry Przepraszam The requested session name is already in use. Podana nazwa sesji już jest używana. &New... &Nowa... Ctrl+Shift+N Ctrl+Shift+N &Manage... Za&rządzaj... Ctrl+Shift+M Ctrl+Shift+M ShortcutEdit Clear Wyczyść Reset to Default Przywróć domyślny Shortcut: Skrót: SmartQuote Replacing quotation marks... Zamienianie cudzysłowów... Please Wait Proszę czekać SpellChecker Check Spelling Sprawdź pisownię &Add &Dodaj &Ignore &Ignoruj I&gnore All Ignoruj &wszystkie &Change &Zamień C&hange All Zamień w&szystkie Not in dictionary: Nie ma w słowniku: Change to: Zamień na: Checking spelling... Sprawdzanie pisowni... Cancel Anuluj Please wait Proszę czekać Spell check complete. Zakończono sprawdzanie pisowni. SymbolsDialog Symbols Symbole Recently used symbols Ostatnio używane symbole All symbols Wszystkie symbole Details Szczegóły Name: Nazwa: Insert Wstaw SymbolsModel Blocks Bloki Scripts Skrypty Theme Untitled %1 Bez nazwy %1 ThemeDialog Modify Theme Modyfikuj motyw Name: Nazwa: Background Tło No Image Brak obrazka Tiled Sąsiadująco Centered Wyśrodkowane Stretched Rozciągnięte Scaled Przeskalowane Zoomed Powiększone Remove Usuń Type: Rodzaj: Color: Kolor: Image: Obrazek: Foreground Pierwszy plan Opacity Nieprzezroczystość pixels pikseli Left Po lewej Right Po prawej Position Położenie Size: Wielkość: Rounding: Zaokrąglenie narożników: Margin: Margines zewnętrzny: Padding: Margines wewnętrzny: Text Tekst Font: Czcionka: Misspelled: Błędne wyrazy: Spacings Odstępy Line Spacing Odstęp między wierszami Single Pojedynczy 1.5 Lines 1,5 wiersza Double Podwójny Proportional Proporcjonalny Paragraph Spacing Odstępy między akapitami Indent First Line: Wcięcie pierwszego wiersza: Pixels Above: Pikseli powyżej: Pixels Below: Pikseli poniżej: The quick brown fox jumps over the lazy dog Pchnąć w tę łódź jeża lub ośm skrzyń fig ThemeManager Themes Motywy Add Dodaj Modify Modyfikuj Remove Usuń Import Importuj Export Eksportuj Close Zamknij Question Pytanie Remove selected theme? Usunąć wybrany motyw? Import Theme Importuj motyw Themes (*.fwtz *.theme) Motywy (*.fwtz *.theme) Themes (*.fwtz) Motywy (*.fwtz) Sorry Przepraszam A theme already exists with that name. Please enter a new name: Motyw z podaną nazwą już istnieje. Proszę wybrać inną nazwę: Export Theme Eksportuj motyw Timer <b>%1</b> - %2 <b>%1</b> - %2 Question Pytanie Delete timer? Usunąć odliczanie? <b>Words:</b> %L1 <b>Słowa:</b> %L1 <b>Pages:</b> %L1 <b>Strony:</b> %L1 <b>Paragraphs:</b> %L1 <b>Akapity:</b> %L1 <b>Characters:</b> %L1 / %L2 <b>Znaki:</b> %L1 / %L2 Set Delay Ustaw opóźnienie Set Time Ustaw czas Delay: Opóźnienie: Time: Czas: HH:mm:ss HH:mm:ss Alarm Alarm Type: Rodzaj: Memo: Memo: Edit Edytuj Delete Usuń TimerDisplay HH:mm:ss HH:mm:ss No timers running Nie ma włączonego odliczania TimerManager Timers Odliczanie New Nowe Recent Poprzednie Question Pytanie Cancel editing timers? Anulować edycję odliczania? +HH:mm:ss +HH:mm:ss %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. Niespodziewanie osiągnięto koniec pliku. Window Loading themes Wczytywanie motywów Loading sounds Wczytywanie dźwięków Untitled Bez tytułu Open File Otwórz plik About FocusWriter O programie FocusWriter FocusWriter FocusWriter A simple fullscreen word processor Prosty pełnoekranowy procesor tekstu Copyright &copy; 2008-%1 Graeme Gott Copyright &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Udostępniony na licencji <a href=%1>GPL 3</a> Uses icons from the <a href=%1>Oxygen</a> icon theme Korzysta z ikon motywu <a href=%1>Oxygen</a> Used under the <a href=%1>LGPL 3</a> license Udostępnionych na licencji <a href=%1>LGPL 3</a> Characters: %L1 / %L2 Znaki: %L1 / %L2 Pages: %L1 Strony: %L1 Paragraphs: %L1 Akapity: %L1 Words: %L1 Słowa: %L1 %1% of daily goal %1% dziennego celu Opening %1 Otwieranie %1 Question Pytanie Save changes? Zapisać zmiany? (Untitled %1) (Bez tytułu %1) Switch to Next Document Przełącz do następnego dokumentu Switch to Previous Document Przełącz do poprzedniego dokumentu Switch to First Document Przełącz do pierwszego dokumentu Switch to Last Document Przełącz do ostatniego dokumentu Switch to Document %1 Przełącz do dokumentu %1 Loading settings Wczytywanie ustawień Emergency cache is not writable. Bufor awaryjny nie jest zapisywalny. Warning Ostrzeżenie FocusWriter was not shut down cleanly. Program FocusWriter nie został zamknięty prawidłowo. Restore from the emergency cache? Przywrócić z bufora awaryjnego? Some files could not be opened. Niektórych plików nie można otworzyć. Some files were opened Read-Only. Niektóre pliki zostały otwarte tylko do odczytu. Text Files (%1);;All Files (*) Pliki tekstowe (%1);;Wszystkie pliki (*) '%1' is newer than the cached copy. '%1' jest nowszy niż zachowana kopia. Overwrite newer file? Nadpisać nowszy plik? Unable to load typewriter sounds. Nie można załadować odgłosów maszyny do pisania. Please make sure that SDL_mixer is installed. Upewnij się, że SDL_mixer jest zainstalowany. %1 (Read-Only) %1 (Tylko-do-odczytu) &File &Plik &New &Nowy &Open... &Otwórz... Reloa&d &Przeładuj &Save &Zapisz Save &As... Zapisz &jako... &Rename... Z&mień nazwę... Save A&ll Zapisz &wszystko Manage Sessions Zarządzanie sesjami New Session Nowa sesja &Print... &Drukuj... &Close Z&amknij &Quit Za&kończ Ctrl+Q Ctrl+Q &Edit &Edycja &Undo &Cofnij &Redo Przyw&róć Cu&t Wy&tnij &Copy &Kopiuj &Paste &Wklej Paste &Unformatted Wklej &bez formatowania Ctrl+Shift+V Ctrl+Shift+V Select &All &Zaznacz wszystko Select &Scene Zaznacz &scenę Ctrl+Shift+A Ctrl+Shift+A Fo&rmat &Format &Bold Pogru&bienie &Italic &Kursywa &Underline P&odkreślenie Stri&kethrough Przek&reślenie Ctrl+K Ctrl+K Sup&erscript Indeks &górny Ctrl+^ Ctrl+^ &Subscript Indeks &dolny Ctrl+_ Ctrl+_ Align &Left Wyrównaj do &lewej Ctrl+{ Ctrl+{ Align &Center Wyrównaj do środk&a Ctrl+| Ctrl+| Align &Right Wyrównaj do &prawej Ctrl+} Ctrl+} Align &Justify Wyrównaj do ob&u stron Ctrl+J Ctrl+J &Decrease Indent Z&mniejsz wcięcie Ctrl+< Ctrl+< I&ncrease Indent Z&większ wcięcie Ctrl+> Ctrl+> Le&ft to Right Block Blok od l&ewej do prawej Ri&ght to Left Block Blok od prawe&j do lewej &Tools &Narzędzia &Find... &Znajdź... Find &Next Znajdź &następny Find Pre&vious Znajdź &poprzedni &Replace... Za&stąp... Ctrl+R Ctrl+R Smart &Quotes Eleganckie &cudzysłowy Update &Document Aktualizuj &dokument Update &Selection Aktualizuj z&aznaczenie &Spelling... Sp&rawdzanie pisowni... F7 F7 &Timers... &Odliczanie... S&ymbols... S&ymbole... &Settings &Ustawienia Show &Toolbar Wyświetlaj pasek &narzędzi Show &Menu Icons Wyświetlaj &ikony w menu F&ocused Text P&odświetlanie tekstu &Fullscreen Tryb pełno&ekranowy F11 F11 Esc Esc M&inimize Minimalizu&j Ctrl+M Ctrl+M &Themes... &Motywy... &Preferences... &Preferencje... Focus Off Wyłącz podświetlanie Focus One Line Podświetl jeden wiersz Focus Three Lines Podświetl trzy wiersze &Paragraph &Akapit Focus Paragraph Podświetl akapit &Help P&omoc Application &Language... &Zmiana języka aplikacji... Some files were unsupported and could not be opened. Niektóre pliki nie są obsługiwane i nie mogły być otwarte. &Off &Wyłączone One &Line &Jeden wiersz &Three Lines &Trzy wiersze &About &Informacje o programie About &Qt Informacje o &Qt focuswriter-1.4.5/translations/focuswriter_pt.qm000066400000000000000000001016261231434177300222470ustar00rootroot00000000000000`MD +?VEVD*$R*ySW*S*%T*D X*0T+V+V+Ws+įY@kH(LJ+5J6E0J6GKQ^Mez>fPfS*NT;T@XCfZDJZi9ZiZi"kZi4ZiIZ%#P[E[N\F\O\*d_ >Wc4\\{ O4Ϩ% e13?]iA~oG.e0n';0n+P2@qJtqJ^tXncJ"vS^1=%c$S ~W1aqqefczXwdH :J!R6S([Uf3Yc?.Qcfx"]R'aK~lf (di, P4\95#^HwBBUJ@ )'Lm$aWTu|(XIᑞ:msPMN0 K`~p( WEE,M@JXZ.luz^Ԏ07V7Z#< lI826Z>^3^`^^^__A_`+`F,`s-`(L,1,M-bn%D%>6M)~gA\Ȟn`hDnvG:-08eV Ah}>vHW;w IC;Jaz?!D9 EHQY3TQ/5t5t FFCFIIH53qG C T,N%!fN%D2ZJ'<QdturKLM1dݲ j*Uc<sXcF1]URo/b@25:8No:\IIRJINeZw[/gA,lUqm*zCDC!)6R.Bl[;̊|9vO(JO,޷5!@B$8*sh+zg< uVR=_lCm lp=*xkwbAe^6fe!umHw82O9} G9dN*f/hJ|>U|w"pG}u4rPd-Sk3%% ' MDC2jCg \~VR >l :! "6 %^ Y  v Y z z .3& JX$ W2 WgW < 4S ·Ou .^  Ń +I :sS ;fm d8< eE8 7| q^$ t/ c ʀs;: ˔YI ˼C: z_V Br f  V7 c Eg cM cO< >cP V 6q >XW JC Z$= eN iN!h tfm u 4 sW F{ CB  ' + t 1u \, sT: Du= b 8j DY_n DY12 DY1y DZ_ ^36 noMY uu {N* Pw I < ޘ Zc#YnE@yNltr 2Acn( .0ddSj4r[yj.A L9/%W?e#iT sZXI-b-zuC"" ViwFechar (%1) Close (%1)AlertMinimizarCollapseAlertExpandirExpandAlert Ctrl+DCtrl+D AlertLayer$Descartar o alerta Dismiss Alert AlertLayer,Todos os ficheiros (*) All Files (*)DocumenthAs alteraes que no forem gravadas sero perdidas.!All unsaved changes will be lost.Document4Texto OpenDocument (*.odt)OpenDocument Text (*.odt)Document*Texto simples (*.txt)Plain Text (*.txt)DocumentPerguntaQuestionDocument Carregar de novoReloadDocument6Carregar de novo o ficheiro Reload FileDocumentbCarregar de novo o ficheiro %1 a partir do disco?Reload the file %1 from disk?Document4Alterar o nome do ficheiro Rename FileDocument$Texto rico (*.rtf)Rich Text (*.rtf)DocumentGuardar como Save File AsDocumentGravar como texto descartar toda a formatao. Quer descartar a formatao?ESaving as plain text will discard all formatting. Discard formatting?DocumentDesculpeSorryDocumentBNo foi possvel substituir %1.Unable to overwrite '%1'.DocumentNNo foi possvel alterar o nome %1 .Unable to rename '%1'.Document<No foi possvel guardar %1.Unable to save '%1'.DocumentBQuer carregar de novo o ficheiro?Do you want to reload the file?DocumentWatcherBQuer gravar ou fechar o ficheiro?&Do you want to save or close the file?DocumentWatcher O ficheiro mudou File ChangedDocumentWatcher Ficheiro apagado File DeletedDocumentWatcherIgnorarIgnoreDocumentWatcher Carregar de novoReloadDocumentWatcher\O ficheiro %1 foi alterado por outro programa.+The file %1 was changed by another program.DocumentWatcherZO ficheiro %1 foi apagado por outro programa.+The file %1 was deleted by another program.DocumentWatcher&Procurar&Find FindDialog&Substituir&Replace FindDialogProcurarFind FindDialog.Ignorar a capitalizao Ignore case FindDialog6A frase no foi encontrada.Phrase not found. FindDialogPerguntaQuestion FindDialog(Expresses regularesRegular expressions FindDialogSubstituirReplace FindDialog4Substituir %n ocorrncia ?6Substituir %n ocorrncias ?Replace %n instance(s)? FindDialogS&ubtituir tudo Replace &All FindDialog Substituir por : Replace with: FindDialogPara frente Search down FindDialogProcurar por : Search for: FindDialogPara trs Search up FindDialogDesculpeSorry FindDialog0Apenas palavras inteirasWhole words only FindDialog:(Nenhuma sugesto encontrada)(No suggestions found) HighlighterAdicionarAdd Highlighter4Verificao ortogrfica...Check Spelling... HighlighterImagens(%1) Images(%1) ImageButton$Seleccionar imagem Open Image ImageButton&<Idioma do sistema> LocaleDialogNotaNote LocaleDialogPor favor reinicie o programa para a mudana da lngua do programa ser aplicada.JPlease restart this application for the change in language to take effect. LocaleDialogBSeleccionar a lngua do programa:Select application language: LocaleDialog AcoActionPreferencesDialog AcesActionsPreferencesDialogAdicionarAddPreferencesDialog,Adicionar um separador Add SeparatorPreferencesDialog4Sempre centrar na verticalAlways vertically centerPreferencesDialogHGravar automaticamente as alteraesAutomatically save changesPreferencesDialogCursor de blocoBlock insertion cursorPreferencesDialog(Nmero de caracteresCharacter countPreferencesDialogCaracteres: Characters:PreferencesDialog@Verificar ortografia ao escreverCheck spelling as you typePreferencesDialogComandoCommandPreferencesDialogContedoContentsPreferencesDialog Objectivo do dia Daily GoalPreferencesDialog6Detectar o fim das palavrasDetect word boundariesPreferencesDialogNDividir o nmero de caracteres por seisDivide character count by sixPreferencesDialogDividirDivider:PreferencesDialog DuplasDoublePreferencesDialog EdioEditingPreferencesDialog GeralGeneralPreferencesDialogApenas o cone Icons OnlyPreferencesDialog<Ignorar palavras em MAISCULASIgnore words in UPPERCASEPreferencesDialog8Ignorar palavras com nmerosIgnore words with numbersPreferencesDialog IdiomaLanguagePreferencesDialogMinutos:Minutes:PreferencesDialog Descer Move DownPreferencesDialog SubirMove UpPreferencesDialog NenhumNonePreferencesDialogtPelo menos um dos atalho est em conflito. Quer continuar?7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialog"Tamanho da pgina Page SizePreferencesDialog"Nmero de pginas Page countPreferencesDialog(Nmero de pargrafosParagraph countPreferencesDialogPargrafos: Paragraphs:PreferencesDialogFDicionrio definido pelo utilizadorPersonal DictionaryPreferencesDialogDefinies PreferencesPreferencesDialogPerguntaQuestionPreferencesDialog:Memorizar a posio do cursorRemember cursor positionPreferencesDialogEliminarRemovePreferencesDialogGravaoSavingPreferencesDialog CenasScenesPreferencesDialog.Selecionar o dicionrioSelect DictionaryPreferencesDialog AtalhoShortcutPreferencesDialogAtalhos ShortcutsPreferencesDialogSimplesSinglePreferencesDialog4Aspas curvas e angulares : Smart quotes:PreferencesDialog2Tipos de letra suavizados Smooth fontsPreferencesDialogDesculpeSorryPreferencesDialog.Verificao ortogrficaSpell CheckingPreferencesDialogEstatsticas StatisticsPreferencesDialog EstiloStylePreferencesDialog,Texto ao lado do coneText Alongside IconsPreferencesDialogApenas o texto Text OnlyPreferencesDialog"Posio do texto:Text Position:PreferencesDialog0Texto por baixo do coneText Under IconsPreferencesDialogdO arquivo no contem nenhum dicionrio utilizvel.1The archive does not contain a usable dictionary.PreferencesDialogbO dicionrio "%1" j existe. Deseja substitu-lo?>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialog(Barra de ferramentasToolbarPreferencesDialog:Ruidos de mquina de escreverTypewriter soundsPreferencesDialogPNo foi possvel fechar o ficheiro '%1'.Unable to close file '%1'.PreferencesDialogBNo foi possvel abrir o arquivo.Unable to open archive.PreferencesDialogNNo foi possvel abrir o ficheiro '%1'.Unable to open file '%1'.PreferencesDialogfNo foi possvel ler as metainformaes do arquivo. Unable to read archive metadata.PreferencesDialogDAlgoritmo de contagem das palavrasWord Count AlgorithmPreferencesDialog$Nmero de palavras Word countPreferencesDialogPalavras:Words:PreferencesDialogTFormato de texto rico RTF no reconhecido.Not a supported RTF file.ReaderPNo foi possvel fechar o ficheiro '%1'.Unable to close file '%1'.ReaderBNo foi possvel abrir o arquivo.Unable to open archive.ReaderNNo foi possvel abrir o ficheiro '%1'.Unable to open file '%1'.Reader"Ctrl+Shift+AbaixoCtrl+Shift+Down SceneList Ctrl+Shift+Acima Ctrl+Shift+Up SceneListFiltrarFilter SceneList<Esconder a lista de cenas (%1)Hide scene list (%1) SceneList2Deslocar cenas para baixoMove Scenes Down SceneList0Deslocar cenas para cimaMove Scenes Up SceneList4Alterar o tamanho da listaResize scene list SceneListShift+F4Shift+F4 SceneList:Mostrar a lista de cenas (%1)Show scene list (%1) SceneList0Comutar a lista de cenasToggle Scene List SceneList$Sesso predefinidaDefaultSession&Gerir... &Manage...SessionManager&Nova...&New...SessionManager ClonarCloneSessionManagerClonar a sesso Clone SessionSessionManagerCtrl+Shift+M Ctrl+Shift+MSessionManagerCtrl+Shift+N Ctrl+Shift+NSessionManager ApagarDeleteSessionManager:Apagar a sesso selecionada ?Delete selected session?SessionManager(Organizar as sessesManage SessionsSessionManagerNovoNewSessionManagerNova sesso New SessionSessionManagerPerguntaQuestionSessionManagerAlterar o nomeRenameSessionManager0Alterar o nome da dessoRename SessionSessionManagerS&esses S&essionsSessionManager Nome da sesso : Session name:SessionManagerDesculpeSorrySessionManagerAbrir a sesso Switch ToSessionManagerNO nome entrado j est a ser utilizado.-The requested session name is already in use.SessionManager LimparClear ShortcutEdit.Repor os valores padroReset to Default ShortcutEditAtalho: Shortcut: ShortcutEdit Espere por favor Please Wait SmartQuote0A substituir as aspas...Replacing quotation marks... SmartQuote&Acrescentar&Add SpellCheckerA&lterar&Change SpellChecker&Ignorar&Ignore SpellCheckerAl&terar tudo C&hange All SpellChecker AnularCancel SpellCheckerAlterar por: Change to: SpellChecker2Verificao da ortografiaCheck Spelling SpellChecker8Verificao da ortografia...Checking spelling... SpellCheckerIg&norar tudo I&gnore All SpellChecker2No consta do dicionrio:Not in dictionary: SpellChecker Espere por favor Please wait SpellCheckerHVerificao da ortografia concluda.Spell check complete. SpellChecker"Todos os smbolos All symbols SymbolsDialogPormenoresDetails SymbolsDialogInserirInsert SymbolsDialog Nome:Name: SymbolsDialog8Smbolos recentemente usadosRecently used symbols SymbolsDialogSmboloSymbols SymbolsDialog BlocosBlocks SymbolsModel GuiesScripts SymbolsModelSem ttulo %1 Untitled %1Theme pxeis pixels ThemeDialog1,5 Linhas 1.5 Lines ThemeDialog Fundo Background ThemeDialogCentradoCentered ThemeDialogCor:Color: ThemeDialog DuploDouble ThemeDialogTipo de letra:Font: ThemeDialogPrimeiro plano Foreground ThemeDialogImagem:Image: ThemeDialog2Avano da primeira linha:Indent First Line: ThemeDialogEsquerdaLeft ThemeDialog&Espao entre linhas Line Spacing ThemeDialogMargem :Margin: ThemeDialog Erros: Misspelled: ThemeDialogAlterar o tema Modify Theme ThemeDialog Nome:Name: ThemeDialogSem imagemNo Image ThemeDialogOpacidadeOpacity ThemeDialogEspaamento :Padding: ThemeDialog0Espaamento do pargrafoParagraph Spacing ThemeDialog Pxeis por cima: Pixels Above: ThemeDialog"Pxeis por baixo: Pixels Below: ThemeDialogPosioPosition ThemeDialogProporcional Proportional ThemeDialog"Eliminar a imagemRemove ThemeDialogDireitaRight ThemeDialogArredondamento: Rounding: ThemeDialogAmpliadaScaled ThemeDialogSimplesSingle ThemeDialogTamanho:Size: ThemeDialogEspaosSpacings ThemeDialogEsticada Stretched ThemeDialog TextoText ThemeDialogbUm pequeno jabuti xereta viu dez cegonhas felizes+The quick brown fox jumps over the lazy dog ThemeDialogEm mosaicoTiled ThemeDialog Tipo:Type: ThemeDialog$Ampliada e cortadaZoomed ThemeDialogUm outro tema com o mesmo nome j existe. Entre por favor um outro nome :?A theme already exists with that name. Please enter a new name: ThemeManagerAdicionarAdd ThemeManager FecharClose ThemeManagerExportarExport ThemeManagerExportar o tema Export Theme ThemeManagerImportarImport ThemeManager Importar um tema Import Theme ThemeManagerAlterarModify ThemeManagerPerguntaQuestion ThemeManagerEliminarRemove ThemeManager:Eliminar o tema seleccionado?Remove selected theme? ThemeManagerDesculpeSorry ThemeManager TemasThemes ThemeManager,Temas (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManagerTemas (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer:<b>Caracteres :</b> %L1 / %L2Characters: %L1 / %L2Timer(<b>Pginas :</b> %L1Pages: %L1Timer.<b>Pargrafos :</b> %L1Paragraphs: %L1Timer*<b>Palavras :</b> %L1Words: %L1Timer AlertaAlarmTimer Tempo de espera:Delay:Timer ApagarDeleteTimer*Apagar o cronmetro ? Delete timer?TimerAlterarEditTimerHH:mm:ssHH:mm:ssTimer Nota :Memo:TimerPerguntaQuestionTimer"Ajustar a durao Set DelayTimerAcertar a horaSet TimeTimer Hora :Time:Timer Tipo:Type:TimerHH:mm:ssHH:mm:ss TimerDisplay4Nenhum cronmetro acionadoNo timers running TimerDisplay%1 - %2%1 - %2 TimerManager+HH:mm:ss +HH:mm:ss TimerManagerFCancelar a edio dos cronmetros ?Cancel editing timers? TimerManagerNovoNew TimerManagerPerguntaQuestion TimerManagerRecenteRecent TimerManagerCronmetrosTimers TimerManager6Fim do ficheiro inesperada.!Unexpectedly reached end of file. Tokenizer0%1 (apenas para leitura)%1 (Read-Only)Window.%1% do objectivo do dia%1% of daily goalWindow&Acerca&AboutWindowNe&grito&BoldWindowFec&har&CloseWindow&Copiar&CopyWindow*Rem&over a indentao&Decrease IndentWindow&Editar&EditWindow&Ficheiro&FileWindow&Procurar...&Find...Window&Ecr completo &FullscreenWindow A&juda&HelpWindow&Itlico&ItalicWindow &Novo&NewWindow&Desligado&OffWindow&Abrir...&Open...Window&Pargrafo &ParagraphWindow Co&lar&PasteWindow&Definies...&Preferences...WindowIm&primir... &Print...Window &Sair&QuitWindow&Restaurar&RedoWindow &Mudar o nome... &Rename...Window&Substituir... &Replace...Window&Guardar&SaveWindow&Configurao &SettingsWindow&Ortografia... &Spelling...Window&ndice &SubscriptWindow&Temas... &Themes...Window&Trs linhas &Three LinesWindowC&ronmetros... &Timers...WindowFerra&mentas&ToolsWindow&Sublinhar &UnderlineWindowA&nular&UndoWindowj'%1' mais recente do que a cpia presente no cache.#'%1' is newer than the cached copy.Window(Sem ttulo %1) (Untitled %1)Window`Um processador de texto simples em ecr completo"A simple fullscreen word processorWindowAcerca de &Qt About &QtWindow*Acerca de FocusWriterAbout FocusWriterWindow$Alinhar ao &centro Align &CenterWindow&JustificadoAlign &JustifyWindow&&Alinhar esquerda Align &LeftWindow$Alinhar &direita Align &RightWindow,&Lngua do programa...Application &Language...Window*Caracteres: %L1 / %L2Characters: %L1 / %L2WindowHCopyright &copy; 2008-%1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindow Ctrl+<Ctrl+<Window Ctrl+>Ctrl+>Window Ctrl+JCtrl+JWindow Ctrl+KCtrl+KWindow Ctrl+MCtrl+MWindow Ctrl+QCtrl+QWindow Ctrl+SCtrl+RWindowCtrl+Shift+A Ctrl+Shift+AWindowCtrl+Shift+V Ctrl+Shift+VWindow Ctrl+^Ctrl+^Window Ctrl+_Ctrl+_Window Ctrl+{Ctrl+{Window Ctrl+|Ctrl+|Window Ctrl+}Ctrl+}WindowC&ortarCu&tWindow`No foi possvel escrever o cache de emergncia. Emergency cache is not writable.WindowEscEscWindowTexto f&ocado F&ocused TextWindowF11F11WindowF7F7Window$Procurar se&guinte Find &NextWindow$Procurar &anteriorFind Pre&viousWindowFo&rmatoFo&rmatWindowDesligar o foco Focus OffWindowFocar uma linhaFocus One LineWindow$Focar um pargrafoFocus ParagraphWindow"Focar trs linhasFocus Three LinesWindowFocusWriter FocusWriterWindowJFocusWriter no fechou correctamente.&FocusWriter was not shut down cleanly.WindowInden&tarI&ncrease IndentWindowX&Bloco de escrita da esquerda para a direitaLe&ft to Right BlockWindow*A carregar definiesLoading settingsWindowBCarregamentos dos efeitos sonorosLoading soundsWindow,Carregamento dos temasLoading themesWindowM&inimizar M&inimizeWindow(Organizar as sessesManage SessionsWindowNova sesso New SessionWindowUma l&inha One &LineWindow"Abrir um ficheiro Open FileWindowA abrir %1 Opening %1WindowBSobrepor o ficheiro mais recente?Overwrite newer file?WindowPginas: %L1 Pages: %L1WindowPargrafos: %L1Paragraphs: %L1Window"Colar co&mo textoPaste &UnformattedWindow~Por favor verifique que SDL_mixer est instalado no computador.-Please make sure that SDL_mixer is installed.WindowPerguntaQuestionWindow`Disponibilizado sob licena <a href=%1>GPL 3</a>/Released under the GPL 3 licenseWindow"Carre&gar de novoReloa&dWindowNRecuperar dados do cache de emergncia?!Restore from the emergency cache?WindowXB&loco de escrita da direita para a esquerdaRi&ght to Left BlockWindowS&mbolos... S&ymbols...Window Guardar &como... Save &As...WindowGravar tud&o Save A&llWindow&Guardar alteraes? Save changes?Window"Seleccionar &tudo Select &AllWindow"Seleccionar &Cena Select &SceneWindow4&Mostrar os cones no menuShow &Menu IconsWindow>Mostrar a &barra de ferramentas Show &ToolbarWindow2&Aspas curvas e angulares Smart &QuotesWindowRAlguns ficheiros no puderam ser abertos.Some files could not be opened.WindowrAlguns ficheiros foram abertos em modo de apenas leitura.!Some files were opened Read-Only.WindowzAlguns ficheiros no so suportados e no puderam ser abertos4Some files were unsupported and could not be opened.Window&RasurarStri&kethroughWindow&Expoente Sup&erscriptWindow,Passar ao dicumento %1Switch to Document %1Window8Passar ao primeiro documentoSwitch to First DocumentWindow4Passar ao ltimo documentoSwitch to Last DocumentWindow8Passar ao documento seguinteSwitch to Next DocumentWindow8Passar ao documento anteriorSwitch to Previous DocumentWindow^Ficheiros de texto (%1);;Todos os ficheiros (*)Text Files (%1);;All Files (*)WindowrNo foi possvel carregar os sons de mquina de escrever.!Unable to load typewriter sounds.WindowSem ttuloUntitledWindow*Actualizar &documentoUpdate &DocumentWindow,Actualizar a &selecoUpdate &SelectionWindowNUsado sob licena <a href=%1>LGPL 3</a>,Used under the LGPL 3 licenseWindowPUsa cones do tema <a href=%1>Oxygen</a>4Uses icons from the Oxygen icon themeWindowAtenoWarningWindowPalvras: %L1 Words: %L1Windowfocuswriter-1.4.5/translations/focuswriter_pt.ts000066400000000000000000002250241231434177300222570ustar00rootroot00000000000000 Alert Close (%1) Fechar (%1) Collapse Minimizar Expand Expandir AlertLayer Dismiss Alert Descartar o alerta Ctrl+D Ctrl+D Document Sorry Desculpe Unable to save '%1'. Não foi possível guardar «%1». Save File As Guardar como Unable to overwrite '%1'. Não foi possível substituir «%1». Rename File Alterar o nome do ficheiro Unable to rename '%1'. Não foi possível alterar o nome « %1 ». Reload File Carregar de novo o ficheiro Reload the file %1 from disk? Carregar de novo o ficheiro %1 a partir do disco? All unsaved changes will be lost. As alterações que não forem gravadas serão perdidas. Reload Carregar de novo Plain Text (*.txt) Texto simples (*.txt) Question Pergunta Saving as plain text will discard all formatting. Discard formatting? Gravar como texto descartará toda a formatação. Quer descartar a formatação? OpenDocument Text (*.odt) Texto OpenDocument (*.odt) Rich Text (*.rtf) Texto rico (*.rtf) All Files (*) Todos os ficheiros (*) DocumentWatcher File Changed O ficheiro mudou The file %1 was changed by another program. O ficheiro %1 foi alterado por outro programa. Do you want to reload the file? Quer carregar de novo o ficheiro? Reload Carregar de novo Ignore Ignorar File Deleted Ficheiro apagado The file %1 was deleted by another program. O ficheiro %1 foi apagado por outro programa. Do you want to save or close the file? Quer gravar ou fechar o ficheiro? FindDialog Search for: Procurar por : Replace with: Substituir por : Ignore case Ignorar a capitalização Whole words only Apenas palavras inteiras Regular expressions Expressões regulares Search up Para trás Search down Para frente &Find &Procurar &Replace &Substituir Replace &All S&ubtituir tudo Find Procurar Replace Substituir Replace %n instance(s)? Substituir %n ocorrência ? Substituir %n ocorrências ? Question Pergunta Sorry Desculpe Phrase not found. A frase não foi encontrada. Highlighter Add Adicionar Check Spelling... Verificação ortográfica... (No suggestions found) (Nenhuma sugestão encontrada) ImageButton Open Image Seleccionar imagem Images(%1) Imagens(%1) LocaleDialog Select application language: Seleccionar a língua do programa: <System Language> <Idioma do sistema> Note Nota Please restart this application for the change in language to take effect. Por favor reinicie o programa para a mudança da língua do programa ser aplicada. PreferencesDialog Preferences Definições General Geral Statistics Estatísticas Toolbar Barra de ferramentas Spell Checking Verificação ortográfica Select Dictionary Selecionar o dicionário Sorry Desculpe Unable to open archive. Não foi possível abrir o arquivo. Unable to read archive metadata. Não foi possível ler as metainformações do arquivo. The archive does not contain a usable dictionary. O arquivo não contem nenhum dicionário utilizável. Unable to open file '%1'. Não foi possível abrir o ficheiro '%1'. Unable to close file '%1'. Não foi possível fechar o ficheiro '%1'. Question Pergunta Shortcuts Atalhos One or more shortcuts conflict. Do you wish to proceed? Pelo menos um dos atalho está em conflito. Quer continuar? The dictionary "%1" already exists. Do you want to replace it? O dicionário "%1" já existe. Deseja substituí-lo? Daily Goal Objectivo do dia None Nenhum Minutes: Minutos: Words: Palavras: Editing Edição Always vertically center Sempre centrar na vertical Block insertion cursor Cursor de bloco Smooth fonts Tipos de letra suavizados Typewriter sounds Ruidos de máquina de escrever Smart quotes: Aspas curvas e angulares : Double Duplas Single Simples Scenes Cenas Divider: Dividir Saving Gravação Automatically save changes Gravar automaticamente as alterações Remember cursor position Memorizar a posição do cursor Contents Conteúdo Word count Número de palavras Page count Número de páginas Paragraph count Número de parágrafos Character count Número de caracteres Page Size Tamanho da página Characters: Caracteres: Paragraphs: Parágrafos: Word Count Algorithm Algoritmo de contagem das palavras Detect word boundaries Detectar o fim das palavras Divide character count by six Dividir o número de caracteres por seis Style Estilo Icons Only Apenas o ícone Text Only Apenas o texto Text Alongside Icons Texto ao lado do ícone Text Under Icons Texto por baixo do ícone Text Position: Posição do texto: Actions Acções Move Up Subir Move Down Descer Add Separator Adicionar um separador Command Comando Shortcut Atalho Action Acção Check spelling as you type Verificar ortografia ao escrever Ignore words in UPPERCASE Ignorar palavras em MAIÚSCULAS Ignore words with numbers Ignorar palavras com números Language Idioma Add Adicionar Remove Eliminar Personal Dictionary Dicionário definido pelo utilizador Reader Not a supported RTF file. Formato de texto rico RTF não reconhecido. Unable to open archive. Não foi possível abrir o arquivo. Unable to open file '%1'. Não foi possível abrir o ficheiro '%1'. Unable to close file '%1'. Não foi possível fechar o ficheiro '%1'. SceneList Ctrl+Shift+Down Ctrl+Shift+Abaixo Move Scenes Up Deslocar cenas para cima Ctrl+Shift+Up Ctrl+Shift+Acima Toggle Scene List Comutar a lista de cenas Shift+F4 Shift+F4 Show scene list (%1) Mostrar a lista de cenas (%1) Hide scene list (%1) Esconder a lista de cenas (%1) Filter Filtrar Move Scenes Down Deslocar cenas para baixo Resize scene list Alterar o tamanho da lista Session Default Sessão predefinida SessionManager Manage Sessions Organizar as sessões S&essions S&essões New Novo Rename Alterar o nome Clone Clonar Delete Apagar Switch To Abrir a sessão New Session Nova sessão Clone Session Clonar a sessão Rename Session Alterar o nome da dessão Question Pergunta Delete selected session? Apagar a sessão selecionada ? Session name: Nome da sessão : Sorry Desculpe The requested session name is already in use. O nome entrado já está a ser utilizado. &New... &Nova... Ctrl+Shift+N Ctrl+Shift+N &Manage... &Gerir... Ctrl+Shift+M Ctrl+Shift+M ShortcutEdit Clear Limpar Reset to Default Repor os valores padrão Shortcut: Atalho: SmartQuote Replacing quotation marks... A substituir as aspas... Please Wait Espere por favor SpellChecker Check Spelling Verificação da ortografia &Add &Acrescentar &Ignore &Ignorar I&gnore All Ig&norar tudo &Change A&lterar C&hange All Al&terar tudo Not in dictionary: Não consta do dicionário: Change to: Alterar por: Checking spelling... Verificação da ortografia... Cancel Anular Please wait Espere por favor Spell check complete. Verificação da ortografia concluída. SymbolsDialog Symbols Símbolo Recently used symbols Símbolos recentemente usados All symbols Todos os símbolos Details Pormenores Name: Nome: Insert Inserir SymbolsModel Blocks Blocos Scripts Guiões Theme Untitled %1 Sem título %1 ThemeDialog Modify Theme Alterar o tema Name: Nome: Background Fundo No Image Sem imagem Tiled Em mosaico Centered Centrado Stretched Esticada Scaled Ampliada Zoomed Ampliada e cortada Remove Eliminar a imagem Type: Tipo: Color: Cor: Image: Imagem: Foreground Primeiro plano Opacity Opacidade pixels píxeis Left Esquerda Right Direita Position Posição Size: Tamanho: Rounding: Arredondamento: Margin: Margem : Padding: Espaçamento : Text Texto Font: Tipo de letra: Misspelled: Erros: Spacings Espaços Line Spacing Espaço entre linhas Single Simples 1.5 Lines 1,5 Linhas Double Duplo Proportional Proporcional Paragraph Spacing Espaçamento do parágrafo Indent First Line: Avanço da primeira linha: Pixels Above: Píxeis por cima: Pixels Below: Píxeis por baixo: The quick brown fox jumps over the lazy dog Um pequeno jabuti xereta viu dez cegonhas felizes ThemeManager Themes Temas Add Adicionar Modify Alterar Remove Eliminar Import Importar Export Exportar Close Fechar Question Pergunta Remove selected theme? Eliminar o tema seleccionado? Import Theme Importar um tema Themes (*.fwtz *.theme) Temas (*.fwtz *.theme) Themes (*.fwtz) Temas (*.fwtz) Sorry Desculpe A theme already exists with that name. Please enter a new name: Um outro tema com o mesmo nome já existe. Entre por favor um outro nome : Export Theme Exportar o tema Timer <b>%1</b> - %2 <b>%1</b> - %2 Question Pergunta Delete timer? Apagar o cronómetro ? <b>Words:</b> %L1 <b>Palavras :</b> %L1 <b>Pages:</b> %L1 <b>Páginas :</b> %L1 <b>Paragraphs:</b> %L1 <b>Parágrafos :</b> %L1 <b>Characters:</b> %L1 / %L2 <b>Caracteres :</b> %L1 / %L2 Set Delay Ajustar a duração Set Time Acertar a hora Delay: Tempo de espera: Time: Hora : HH:mm:ss HH:mm:ss Alarm Alerta Type: Tipo: Memo: Nota : Edit Alterar Delete Apagar TimerDisplay HH:mm:ss HH:mm:ss No timers running Nenhum cronómetro acionado TimerManager Timers Cronómetros New Novo Recent Recente Question Pergunta Cancel editing timers? Cancelar a edição dos cronómetros ? +HH:mm:ss +HH:mm:ss %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. Fim do ficheiro inesperada. Window Loading themes Carregamento dos temas Loading sounds Carregamentos dos efeitos sonoros Untitled Sem título Open File Abrir um ficheiro About FocusWriter Acerca de FocusWriter FocusWriter FocusWriter A simple fullscreen word processor Um processador de texto simples em ecrã completo Copyright &copy; 2008-%1 Graeme Gott Copyright &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Disponibilizado sob licença <a href=%1>GPL 3</a> Uses icons from the <a href=%1>Oxygen</a> icon theme Usa ícones do tema <a href=%1>Oxygen</a> Used under the <a href=%1>LGPL 3</a> license Usado sob licença <a href=%1>LGPL 3</a> Characters: %L1 / %L2 Caracteres: %L1 / %L2 Pages: %L1 Páginas: %L1 Paragraphs: %L1 Parágrafos: %L1 Words: %L1 Palávras: %L1 %1% of daily goal %1% do objectivo do dia Opening %1 A abrir %1 Question Pergunta Save changes? Guardar alterações? (Untitled %1) (Sem título %1) Switch to Next Document Passar ao documento seguinte Switch to Previous Document Passar ao documento anterior Switch to First Document Passar ao primeiro documento Switch to Last Document Passar ao último documento Switch to Document %1 Passar ao dicumento %1 Loading settings A carregar definições Emergency cache is not writable. Não foi possível escrever o cache de emergência. Warning Atenção FocusWriter was not shut down cleanly. FocusWriter não fechou correctamente. Restore from the emergency cache? Recuperar dados do cache de emergência? Some files could not be opened. Alguns ficheiros não puderam ser abertos. Some files were opened Read-Only. Alguns ficheiros foram abertos em modo de apenas leitura. Text Files (%1);;All Files (*) Ficheiros de texto (%1);;Todos os ficheiros (*) '%1' is newer than the cached copy. '%1' é mais recente do que a cópia presente no cache. Overwrite newer file? Sobrepor o ficheiro mais recente? Unable to load typewriter sounds. Não foi possível carregar os sons de máquina de escrever. Please make sure that SDL_mixer is installed. Por favor verifique que SDL_mixer está instalado no computador. %1 (Read-Only) %1 (apenas para leitura) &File &Ficheiro &New &Novo &Open... &Abrir... Reloa&d Carre&gar de novo &Save &Guardar Save &As... Guardar &como... &Rename... &Mudar o nome... Save A&ll Gravar tud&o Manage Sessions Organizar as sessões New Session Nova sessão &Print... Im&primir... &Close Fec&har &Quit &Sair Ctrl+Q Ctrl+Q &Edit &Editar &Undo A&nular &Redo &Restaurar Cu&t C&ortar &Copy &Copiar &Paste Co&lar Paste &Unformatted Colar co&mo texto Ctrl+Shift+V Ctrl+Shift+V Select &All Seleccionar &tudo Select &Scene Seleccionar &Cena Ctrl+Shift+A Ctrl+Shift+A Fo&rmat Fo&rmato &Bold Ne&grito &Italic &Itálico &Underline &Sublinhar Stri&kethrough &Rasurar Ctrl+K Ctrl+K Sup&erscript &Expoente Ctrl+^ Ctrl+^ &Subscript Í&ndice Ctrl+_ Ctrl+_ Align &Left &Alinhar à esquerda Ctrl+{ Ctrl+{ Align &Center Alinhar ao &centro Ctrl+| Ctrl+| Align &Right Alinhar à &direita Ctrl+} Ctrl+} Align &Justify &Justificado Ctrl+J Ctrl+J &Decrease Indent Rem&over a indentação Ctrl+< Ctrl+< I&ncrease Indent Inden&tar Ctrl+> Ctrl+> Le&ft to Right Block &Bloco de escrita da esquerda para a direita Ri&ght to Left Block B&loco de escrita da direita para a esquerda &Tools Ferra&mentas &Find... &Procurar... Find &Next Procurar se&guinte Find Pre&vious Procurar &anterior &Replace... &Substituir... Ctrl+R Ctrl+S Smart &Quotes &Aspas curvas e angulares Update &Document Actualizar &documento Update &Selection Actualizar a &selecção &Spelling... &Ortografia... F7 F7 &Timers... C&ronómetros... S&ymbols... Sí&mbolos... &Settings &Configuração Show &Toolbar Mostrar a &barra de ferramentas Show &Menu Icons &Mostrar os ícones no menu F&ocused Text Texto f&ocado &Fullscreen &Ecrã completo F11 F11 Esc Esc M&inimize M&inimizar Ctrl+M Ctrl+M &Themes... &Temas... &Preferences... &Definições... Focus Off Desligar o foco Focus One Line Focar uma linha Focus Three Lines Focar três linhas &Paragraph &Parágrafo Focus Paragraph Focar um parágrafo &Help A&juda Application &Language... &Língua do programa... Some files were unsupported and could not be opened. Alguns ficheiros não são suportados e não puderam ser abertos &Off &Desligado One &Line Uma l&inha &Three Lines &Três linhas &About &Acerca About &Qt Acerca de &Qt focuswriter-1.4.5/translations/focuswriter_pt_BR.qm000066400000000000000000001010461231434177300226260ustar00rootroot00000000000000VEVD*$Q*yR-*R*%R*D *0S+U+U^+V7+įXh@7H(KJ+5J6E0*J6FKQ Mez=PeS*LT:T?XB|ZC\ZiZiGZi"-Zi3ZiHZ%#[D[M\E\M\*&_ >Vc4[X{ O4)Ϩ% ndG3]h~m.0n&0n*P2@(qIto^rmbB"uS^<%mc$TS ~UaqpHefbzX/RG:J!Q6QZTf3Wb?.Pgcel"\N'aJ~kze%(c],  4[94i^GwA>AJ?I) 'KI$`WSI|m(WHjᑞ9ZsON0^ I`~o ( WD6E,M@I:Z.luz^YԎ/U7(Z#; jI7p6Z=T]/]\]]]^^=^_+_B,_o-_(K,16,Kbm+% %=M)3~g@[Ȟn_hDpvF:,7V 6Af}>)vGI: IC; 4az>]D8CEGQY3TO5t 5t nFFBHFH5H52GB 8,2N%!FN%C(2YpI <P*tsrJ.M1mdݲ )j* csWrcEM\UQI/a825<8Nnc:[IIPJIM'Z/[/g@dlT=m)zCCC! 5.AlZ-̊|8O(O+޷5C!?~#*trCg+zfu< u@R<lCm Tp<^xj)a@^6fd!-kw72N9} G9$Nf/g$|>Tr|w"hp}t4quPc!Si%% 2' CC1CeX \~U" >k< 9U "5 %^{ Y v Y z z .3& JW W2` Wf9 ; 3 ·N7 .^a  Ńu +I} :q ;flH d8 eE 6 q^$ t/z b ʀs:l ˔X- ˼C: z_ Bp f  V6 c;{ ^-` S #" L./ f(&5 iqu w9< xj8 {"ul Nhh @ J ʫ ʫ ^ ʫ ʫ2 ʫG ʫL ʫO ʫi  A)R pUtb = Ef cL cM >cN T 6p >W; JB Z$= eMl iN!g tfk ud 3g sVe E CB  ' +> t 1o \ sS Ds a 8j DY^j DY0 DY0 DZ^ ^3 noL# uu {N*I Pu I <y ޘ U Zc#IXnLE?NltrAcl -dcR[iC4q Zgj.A TL9.W>e#iT sY*I,-zC!"e ivPrximo (%1) Close (%1)AlertMinimizarCollapseAlertMaximizarExpandAlert Ctrl+DCtrl+D AlertLayerIgnorar alerta Dismiss Alert AlertLayer*Todos os arquivos (*) All Files (*)Document`Todas as modificaes no salvas sero perdidas.!All unsaved changes will be lost.Document:Texto do OpenDocument (*.odt)OpenDocument Text (*.odt)Document*Texto simples (*.txt)Plain Text (*.txt)DocumentQuestoQuestionDocumentRecarregarReloadDocument(Recarregar o arquivo Reload FileDocumentBRecarregar o arquivo %1 do disco?Reload the file %1 from disk?Document Renomear arquivo Rename FileDocument.Texto formatado (*.rtf)Rich Text (*.rtf)DocumentSalvar como Save File AsDocumentSalvar como texto plano far com que toda a formatao seja perdida. Descartar formatao?ESaving as plain text will discard all formatting. Discard formatting?DocumentDesculpeSorryDocumentFNo foi possvel sobrescrever '%1'.Unable to overwrite '%1'.Document>No foi possvel renomear '%1'.Unable to rename '%1'.Document:No foi possvel salvar '%1'.Unable to save '%1'.Document8Deseja recarregar o arquivo?Do you want to reload the file?DocumentWatcherDDeseja salvar ou fechar o arquivo?&Do you want to save or close the file?DocumentWatcher Arquivo alterado File ChangedDocumentWatcherArquivo apagado File DeletedDocumentWatcherIgnorarIgnoreDocumentWatcherRecarregarReloadDocumentWatcherZO arquivo %1 foi alterado por outro programa.+The file %1 was changed by another program.DocumentWatcherVO arquivo %1 foi apagado por outro programa+The file %1 was deleted by another program.DocumentWatcher&Localizar&Find FindDialog&Substituir&Replace FindDialogLocalizarFind FindDialog*Ignorar capitalizao Ignore case FindDialog6A frase no foi encontrada.Phrase not found. FindDialogPerguntaQuestion FindDialog(Expresses regularesRegular expressions FindDialogSubstituirReplace FindDialog2Substituir %n ocorrncia?4Substituir %n ocorrncias?Replace %n instance(s)? FindDialog"Substituir &todos Replace &All FindDialogSubstituir por: Replace with: FindDialog*Pesquisar para frente Search down FindDialogProcurar por: Search for: FindDialog&Pesquisar para trs Search up FindDialogDesculpeSorry FindDialog2Somente palavras inteirasWhole words only FindDialog(Sem sugestes)(No suggestions found) HighlighterAdicionarAdd Highlighter4Verificao ortogrfica...Check Spelling... HighlighterImagens(%1) Images(%1) ImageButtonAbrir imagem Open Image ImageButton,<Linguagem do sistema> LocaleDialogNotaNote LocaleDialogPor favor, reinicie o programa para que as alteraes no idioma tenham efeito.JPlease restart this application for the change in language to take effect. LocaleDialog>Selecione o idioma do programa:Select application language: LocaleDialogAoActionPreferencesDialog AesActionsPreferencesDialogAdicionarAddPreferencesDialog&Adicionar separador Add SeparatorPreferencesDialogBSempre centralizado verticalmenteAlways vertically centerPreferencesDialogBSalvar alteraes automaticamenteAutomatically save changesPreferencesDialog6Cursor de insero de blocoBlock insertion cursorPreferencesDialog,Contagem de caracteresCharacter countPreferencesDialogCaracteres: Characters:PreferencesDialog@Verificar ortografia ao escreverCheck spelling as you typePreferencesDialogComandoCommandPreferencesDialogContedoContentsPreferencesDialogObjetivo dirio Daily GoalPreferencesDialog8Detectar limites de palavrasDetect word boundariesPreferencesDialogZDividir contagem total de caracteres por seisDivide character count by sixPreferencesDialogDivisor:Divider:PreferencesDialog DuplaDoublePreferencesDialog EdioEditingPreferencesDialog GeralGeneralPreferencesDialogApenas cones Icons OnlyPreferencesDialog<Ignorar palavras em MAISCULASIgnore words in UPPERCASEPreferencesDialog8Ignorar palavras com nmerosIgnore words with numbersPreferencesDialog IdiomaLanguagePreferencesDialogMinutos:Minutes:PreferencesDialog Mover para baixo Move DownPreferencesDialogMover para cimaMove UpPreferencesDialog NenhumNonePreferencesDialogrUm ou mais atalhos esto conflitantes. Deseja prosseguir?7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialog"Tamanho da pgina Page SizePreferencesDialog&Contagem de pginas Page countPreferencesDialog,Contagem de pargrafosParagraph countPreferencesDialogPargrafos: Paragraphs:PreferencesDialog@Dicionrio definido pelo usurioPersonal DictionaryPreferencesDialogPreferncias PreferencesPreferencesDialogPerguntaQuestionPreferencesDialog2Lembrar posio do cursorRemember cursor positionPreferencesDialogRemoverRemovePreferencesDialogSalvandoSavingPreferencesDialog CenasScenesPreferencesDialog*Selecionar dicionrioSelect DictionaryPreferencesDialog AtalhoShortcutPreferencesDialogAtalhos ShortcutsPreferencesDialogSimplesSinglePreferencesDialog&Aspas inteligentes: Smart quotes:PreferencesDialog"Fontes suavizadas Smooth fontsPreferencesDialogDesculpeSorryPreferencesDialog.Verificao ortogrficaSpell CheckingPreferencesDialogEstatsticas StatisticsPreferencesDialog EstiloStylePreferencesDialog2Textos ao lado dos conesText Alongside IconsPreferencesDialogApenas textos Text OnlyPreferencesDialog"Posio do texto:Text Position:PreferencesDialog0Textos abaixo dos conesText Under IconsPreferencesDialog\O arquivo no contm um dicionrio utilizvel.1The archive does not contain a usable dictionary.PreferencesDialogdO dicionrio "%1" j existe. Deseja subistitu-lo?>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialog(Barra de ferramentasToolbarPreferencesDialog:Sons de mquina datilogrficaTypewriter soundsPreferencesDialogNNo foi possvel fechar o arquivo '%1'.Unable to close file '%1'.PreferencesDialogBNo foi possvel abrir o arquivo.Unable to open archive.PreferencesDialogLNo foi possvel abrir o arquivo '%1'.Unable to open file '%1'.PreferencesDialogZNo foi possvel ler os metadados do arquivo. Unable to read archive metadata.PreferencesDialogFAlgoritmo para contagem de palavrasWord Count AlgorithmPreferencesDialog(Contagem de palavras Word countPreferencesDialogPalavras:Words:PreferencesDialog>No um arquivo RTF suportado.Not a supported RTF file.ReaderNNo foi possvel fechar o arquivo '%1'.Unable to close file '%1'.ReaderBNo foi possvel abrir o arquivo.Unable to open archive.ReaderLNo foi possvel abrir o arquivo '%1'.Unable to open file '%1'.Reader Ctrl+Shift+BaixoCtrl+Shift+Down SceneListCtrl+Shift+Cima Ctrl+Shift+Up SceneList FiltroFilter SceneList6Ocultar lista de cenas (%1)Hide scene list (%1) SceneList,Mover cenas para baixoMove Scenes Down SceneList*Mover cenas para cimaMove Scenes Up SceneListBAlterar tamanho da lista de cenasResize scene list SceneListShift+F4Shift+F4 SceneList4Exibir lista de cenas (%1)Show scene list (%1) SceneList.Alternar Lista de cenasToggle Scene List SceneList PadroDefaultSession&Gerenciar... &Manage...SessionManager&Nova...&New...SessionManager ClonarCloneSessionManagerClonar sesso Clone SessionSessionManagerCtrl+Shift+M Ctrl+Shift+MSessionManagerCtrl+Shift+N Ctrl+Shift+NSessionManagerExcluirDeleteSessionManager6Excluir sesso selecionada?Delete selected session?SessionManager"Gerenciar SessesManage SessionsSessionManagerNovaNewSessionManagerNova sesso New SessionSessionManagerPerguntaQuestionSessionManagerRenomearRenameSessionManagerRenomear sessoRename SessionSessionManagerS&esses S&essionsSessionManagerNome da sesso: Session name:SessionManagerDesculpeSorrySessionManagerMudar para Switch ToSessionManagerXEste nome de sesso j est sendo utilizado.-The requested session name is already in use.SessionManager LimparClear ShortcutEdit Restaurar padroReset to Default ShortcutEditAtalho: Shortcut: ShortcutEdit$Por favor, aguarde Please Wait SmartQuote*Substituindo aspas...Replacing quotation marks... SmartQuote&Adicionar&Add SpellChecker&Alterar&Change SpellChecker&Ignorar&Ignore SpellCheckerA&lterar todos C&hange All SpellCheckerCancelarCancel SpellCheckerAlterar para: Change to: SpellChecker(Verificar ortografiaCheck Spelling SpellChecker4Verificao ortogrfica...Checking spelling... SpellChecker&Ignorar todos I&gnore All SpellChecker.No est no dicionrio:Not in dictionary: SpellChecker$Por favor, aguarde Please wait SpellCheckerBVerificao ortogrfica completa.Spell check complete. SpellChecker"Todos os smbolos All symbols SymbolsDialogDetalhesDetails SymbolsDialogInserirInsert SymbolsDialog Nome:Name: SymbolsDialog8Smbolos usados recentementeRecently used symbols SymbolsDialogSmbolosSymbols SymbolsDialog BlocosBlocks SymbolsModelRoteirosScripts SymbolsModelSem ttulo %1 Untitled %1Theme pixels pixels ThemeDialog1.5 linhas 1.5 Lines ThemeDialogSegundo plano Background ThemeDialogCentralizadoCentered ThemeDialogCor:Color: ThemeDialog DuploDouble ThemeDialog Fonte:Font: ThemeDialogPrimeiro plano Foreground ThemeDialogImagem:Image: ThemeDialog2Indentar a primeira linhaIndent First Line: ThemeDialogEsquerdaLeft ThemeDialog(Espaamento da linha Line Spacing ThemeDialogMargem:Margin: ThemeDialog Erros: Misspelled: ThemeDialogAlterar Tema Modify Theme ThemeDialog Nome:Name: ThemeDialogSem imagemNo Image ThemeDialogOpacidadeOpacity ThemeDialogEspaamento:Padding: ThemeDialog0Espaamento do pargrafoParagraph Spacing ThemeDialogPixels acima: Pixels Above: ThemeDialogPixels abaixo: Pixels Below: ThemeDialogPosioPosition ThemeDialogProporcional Proportional ThemeDialogRemoverRemove ThemeDialogDireitaRight ThemeDialogAproximao: Rounding: ThemeDialogEm escalaScaled ThemeDialogSimplesSingle ThemeDialogTamanho:Size: ThemeDialogEspaamentoSpacings ThemeDialogEsticado Stretched ThemeDialog TextoText ThemeDialogbUm pequeno jabuti xereta viu dez cegonhas felizes+The quick brown fox jumps over the lazy dog ThemeDialogLado a ladoTiled ThemeDialog Tipo:Type: ThemeDialogAmpliadaZoomed ThemeDialogJ existe um tema com este nome. Por favor, digite um novo nome:?A theme already exists with that name. Please enter a new name: ThemeManagerAdicionarAdd ThemeManager FecharClose ThemeManagerExportarExport ThemeManagerExportar tema Export Theme ThemeManagerImportarImport ThemeManagerImportar tema Import Theme ThemeManagerAlterarModify ThemeManagerPerguntaQuestion ThemeManagerRemoverRemove ThemeManager2Remover tema selecionado?Remove selected theme? ThemeManagerDesculpeSorry ThemeManager TemasThemes ThemeManager,Temas (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManagerTemas (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer8<b>Caracteres:</b> %L1 / %L2Characters: %L1 / %L2Timer&<b>Pginas:</b> %L1Pages: %L1Timer,<b>Pargrafos:</b> %L1Paragraphs: %L1Timer(<b>Palavras:</b> %L1Words: %L1Timer AlarmeAlarmTimerEspera:Delay:TimerExcluirDeleteTimer&Excluir cronmetro? Delete timer?Timer EditarEditTimerHH:mm:ssHH:mm:ssTimer Nota:Memo:TimerPerguntaQuestionTimer"Configurar espera Set DelayTimerConfigurar HoraSet TimeTimer Hora:Time:Timer Tipo:Type:TimerHH:mm:ssHH:mm:ss TimerDisplay:Nenhum cronmetro funcionandoNo timers running TimerDisplay%1 - %2%1 - %2 TimerManager+HH:mm:ss +HH:mm:ss TimerManagerDCancelar a edio dos cronmetros?Cancel editing timers? TimerManagerNovoNew TimerManagerPerguntaQuestion TimerManagerRecenteRecent TimerManagerCronmetrosTimers TimerManagerRFim do arquivo alcanado inesperadamente.!Unexpectedly reached end of file. Tokenizer(%1 (Somente leitura)%1 (Read-Only)Window,%1% do objetivo dirio%1% of daily goalWindow &Sobre&AboutWindow&Negrito&BoldWindowFec&har&CloseWindow&Copiar&CopyWindow(Di&minuir indentao&Decrease IndentWindow&Editar&EditWindow&Arquivo&FileWindow&Localizar...&Find...WindowTela &cheia &FullscreenWindow A&juda&HelpWindow&Itlico&ItalicWindow &Novo&NewWindow&Desligar&OffWindow&Abrir...&Open...Window&Pargrafo &ParagraphWindow C&olar&PasteWindow &Preferncias...&Preferences...WindowIm&primir... &Print...Window Sai&r&QuitWindow&Refazer&RedoWindow&Renomear... &Rename...Window&Substituir... &Replace...Window&Salvar&SaveWindow&Configuraes &SettingsWindow6&Verificao ortogrfica... &Spelling...WindowS&ubscrito &SubscriptWindow&Temas... &Themes...Window&Trs linhas &Three LinesWindow&Cronmetros... &Timers...WindowFerra&mentas&ToolsWindow&Sublinhado &UnderlineWindowDesfa&zer&UndoWindowR'%1' mais recente que a cpia em cache.#'%1' is newer than the cached copy.Window(Sem ttulo %1) (Untitled %1)WindowUm processador de textos simples para escrita em modo Tela cheia"A simple fullscreen word processorWindowSobre o &Qt About &QtWindow&Sobre o FocusWriterAbout FocusWriterWindow$Alinhar ao &centro Align &CenterWindow*Alinhar e &justificarAlign &JustifyWindow$Alinhar &direita Align &LeftWindow&Alinhar &esquerda Align &RightWindow,&Idioma do programa...Application &Language...Window*Caracteres: %L1 / %L2Characters: %L1 / %L2WindowHCopyright &copy; 2008-%1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindow Ctrl+<Ctrl+<Window Ctrl+>Ctrl+>Window Ctrl+JCtrl+JWindow Ctrl+KCtrl+KWindow Ctrl+MCtrl+MWindow Ctrl+QCtrl+QWindow Ctrl+RCtrl+RWindowCtrl+Shift+A Ctrl+Shift+AWindowCtrl+Shift+V Ctrl+Shift+VWindow Ctrl+^Ctrl+^Window Ctrl+_Ctrl+_Window Ctrl+{Ctrl+{Window Ctrl+|Ctrl+|Window Ctrl+}Ctrl+}WindowCor&tarCu&tWindow^No possvel escrever no cache de emergncia. Emergency cache is not writable.WindowEscEscWindowTexto focado F&ocused TextWindowF11F11WindowF7F7Window$Localizar &prximo Find &NextWindow&Localizar &anteriorFind Pre&viousWindow&FormatarFo&rmatWindowDesligar foco Focus OffWindow Focar uma linha&Focus One LineWindowFocar pargrafoFocus ParagraphWindow"Focar trs linhasFocus Three LinesWindowFocusWriter FocusWriterWindowVO FocusWriter no foi fechado corretamente.&FocusWriter was not shut down cleanly.Window(&Aumentar indentaoI&ncrease IndentWindowTBloco de texto da es&querda para a direitaLe&ft to Right BlockWindow0Carregando configuraesLoading settingsWindowCarregando sonsLoading soundsWindow Carregando temasLoading themesWindowM&inimizar M&inimizeWindow"Gerenciar SessesManage SessionsWindowNova sesso New SessionWindowUma &Linha One &LineWindowAbrir arquivo Open FileWindowAbrindo %1 Opening %1Window8Sobrescrever o novo arquivo?Overwrite newer file?WindowPginas: %L1 Pages: %L1WindowPargrafos: %L1Paragraphs: %L1Window*Colar sem &FormataoPaste &UnformattedWindow`Certifique-se de que o SDL_mixer est instalado.-Please make sure that SDL_mixer is installed.WindowPerguntaQuestionWindowdDisponibilizado sob a licena <a href=%1>GPL 3</a>/Released under the GPL 3 licenseWindowRecarrega&rReloa&dWindowTRestaurar a partir do cache de emergncia?!Restore from the emergency cache?WindowTBloco de texto da di&reita para a esquerdaRi&ght to Left BlockWindowS&mbolos... S&ymbols...WindowSalvar &como... Save &As...WindowSalvar Tod&os Save A&llWindow$Salvar alteraes? Save changes?Window Selecionar t&udo Select &AllWindowSelecionar cena Select &SceneWindow,Exibir &cones do menuShow &Menu IconsWindow8Exibir &barra de ferramentas Show &ToolbarWindow&Aspas &Inteligentes Smart &QuotesWindowPAlguns arquivos no puderam ser abertos.Some files could not be opened.WindowlAlguns arquivos foram abertos em modo somente leitura.!Some files were opened Read-Only.WindowvAlguns arquivos no so suportados e no podem ser abertos.4Some files were unsupported and could not be opened.Window&TachadoStri&kethroughWindowS&obrescrito Sup&erscriptWindow,Ir para o documento %1Switch to Document %1Window8Ir para o primeiro documentoSwitch to First DocumentWindow4Ir para o ltimo documentoSwitch to Last DocumentWindow2Ir para prximo documentoSwitch to Next DocumentWindow4Ir para documento anteriorSwitch to Previous DocumentWindowZArquivos de texto (%1);;Todos os arquivos (*)Text Files (%1);;All Files (*)WindowvNo possvel carregar os sons de mquina de datilografia.!Unable to load typewriter sounds.WindowSem ttuloUntitledWindow(Atualizar &documentoUpdate &DocumentWindow$Atualizar &seleoUpdate &SelectionWindowZUtilizado sob a licena <a href=%1>LGPL 3</a>,Used under the LGPL 3 licenseWindow`Utiliza cones do conjunto <a href=%1>Oxygen</a>4Uses icons from the Oxygen icon themeWindow AvisoWarningWindowPalavras: %L1 Words: %L1Windowfocuswriter-1.4.5/translations/focuswriter_pt_BR.ts000066400000000000000000002245611231434177300226470ustar00rootroot00000000000000 Alert Close (%1) Próximo (%1) Collapse Minimizar Expand Maximizar AlertLayer Dismiss Alert Ignorar alerta Ctrl+D Ctrl+D Document Sorry Desculpe Unable to save '%1'. Não foi possível salvar '%1'. Save File As Salvar como Unable to overwrite '%1'. Não foi possível sobrescrever '%1'. Rename File Renomear arquivo Unable to rename '%1'. Não foi possível renomear '%1'. Reload File Recarregar o arquivo Reload the file %1 from disk? Recarregar o arquivo %1 do disco? All unsaved changes will be lost. Todas as modificações não salvas serão perdidas. Reload Recarregar Plain Text (*.txt) Texto simples (*.txt) Question Questão Saving as plain text will discard all formatting. Discard formatting? Salvar como texto plano fará com que toda a formatação seja perdida. Descartar formatação? OpenDocument Text (*.odt) Texto do OpenDocument (*.odt) Rich Text (*.rtf) Texto formatado (*.rtf) All Files (*) Todos os arquivos (*) DocumentWatcher File Changed Arquivo alterado The file %1 was changed by another program. O arquivo %1 foi alterado por outro programa. Do you want to reload the file? Deseja recarregar o arquivo? Reload Recarregar Ignore Ignorar File Deleted Arquivo apagado The file %1 was deleted by another program. O arquivo %1 foi apagado por outro programa Do you want to save or close the file? Deseja salvar ou fechar o arquivo? FindDialog Search for: Procurar por: Replace with: Substituir por: Ignore case Ignorar capitalização Whole words only Somente palavras inteiras Regular expressions Expressões regulares Search up Pesquisar para trás Search down Pesquisar para frente &Find &Localizar &Replace &Substituir Replace &All Substituir &todos Find Localizar Replace Substituir Replace %n instance(s)? Substituir %n ocorrência? Substituir %n ocorrências? Question Pergunta Sorry Desculpe Phrase not found. A frase não foi encontrada. Highlighter Add Adicionar Check Spelling... Verificação ortográfica... (No suggestions found) (Sem sugestões) ImageButton Open Image Abrir imagem Images(%1) Imagens(%1) LocaleDialog Select application language: Selecione o idioma do programa: <System Language> <Linguagem do sistema> Note Nota Please restart this application for the change in language to take effect. Por favor, reinicie o programa para que as alterações no idioma tenham efeito. PreferencesDialog Preferences Preferências General Geral Statistics Estatísticas Toolbar Barra de ferramentas Spell Checking Verificação ortográfica Select Dictionary Selecionar dicionário Sorry Desculpe Unable to open archive. Não foi possível abrir o arquivo. Unable to read archive metadata. Não foi possível ler os metadados do arquivo. The archive does not contain a usable dictionary. O arquivo não contém um dicionário utilizável. Unable to open file '%1'. Não foi possível abrir o arquivo '%1'. Unable to close file '%1'. Não foi possível fechar o arquivo '%1'. Question Pergunta Shortcuts Atalhos One or more shortcuts conflict. Do you wish to proceed? Um ou mais atalhos estão conflitantes. Deseja prosseguir? The dictionary "%1" already exists. Do you want to replace it? O dicionário "%1" já existe. Deseja subistituí-lo? Daily Goal Objetivo diário None Nenhum Minutes: Minutos: Words: Palavras: Editing Edição Always vertically center Sempre centralizado verticalmente Block insertion cursor Cursor de inserção de bloco Smooth fonts Fontes suavizadas Typewriter sounds Sons de máquina datilográfica Smart quotes: Aspas inteligentes: Double Dupla Single Simples Scenes Cenas Divider: Divisor: Saving Salvando Automatically save changes Salvar alterações automaticamente Remember cursor position Lembrar posição do cursor Contents Conteúdo Word count Contagem de palavras Page count Contagem de páginas Paragraph count Contagem de parágrafos Character count Contagem de caracteres Page Size Tamanho da página Characters: Caracteres: Paragraphs: Parágrafos: Word Count Algorithm Algoritmo para contagem de palavras Detect word boundaries Detectar limites de palavras Divide character count by six Dividir contagem total de caracteres por seis Style Estilo Icons Only Apenas ícones Text Only Apenas textos Text Alongside Icons Textos ao lado dos ícones Text Under Icons Textos abaixo dos ícones Text Position: Posição do texto: Actions Ações Move Up Mover para cima Move Down Mover para baixo Add Separator Adicionar separador Command Comando Shortcut Atalho Action Ação Check spelling as you type Verificar ortografia ao escrever Ignore words in UPPERCASE Ignorar palavras em MAIÚSCULAS Ignore words with numbers Ignorar palavras com números Language Idioma Add Adicionar Remove Remover Personal Dictionary Dicionário definido pelo usuário Reader Not a supported RTF file. Não é um arquivo RTF suportado. Unable to open archive. Não foi possível abrir o arquivo. Unable to open file '%1'. Não foi possível abrir o arquivo '%1'. Unable to close file '%1'. Não foi possível fechar o arquivo '%1'. SceneList Ctrl+Shift+Down Ctrl+Shift+Baixo Move Scenes Up Mover cenas para cima Ctrl+Shift+Up Ctrl+Shift+Cima Toggle Scene List Alternar Lista de cenas Shift+F4 Shift+F4 Show scene list (%1) Exibir lista de cenas (%1) Hide scene list (%1) Ocultar lista de cenas (%1) Filter Filtro Move Scenes Down Mover cenas para baixo Resize scene list Alterar tamanho da lista de cenas Session Default Padrão SessionManager Manage Sessions Gerenciar Sessões S&essions S&essões New Nova Rename Renomear Clone Clonar Delete Excluir Switch To Mudar para New Session Nova sessão Clone Session Clonar sessão Rename Session Renomear sessão Question Pergunta Delete selected session? Excluir sessão selecionada? Session name: Nome da sessão: Sorry Desculpe The requested session name is already in use. Este nome de sessão já está sendo utilizado. &New... &Nova... Ctrl+Shift+N Ctrl+Shift+N &Manage... &Gerenciar... Ctrl+Shift+M Ctrl+Shift+M ShortcutEdit Clear Limpar Reset to Default Restaurar padrão Shortcut: Atalho: SmartQuote Replacing quotation marks... Substituindo aspas... Please Wait Por favor, aguarde SpellChecker Check Spelling Verificar ortografia &Add &Adicionar &Ignore &Ignorar I&gnore All &Ignorar todos &Change &Alterar C&hange All A&lterar todos Not in dictionary: Não está no dicionário: Change to: Alterar para: Checking spelling... Verificação ortográfica... Cancel Cancelar Please wait Por favor, aguarde Spell check complete. Verificação ortográfica completa. SymbolsDialog Symbols Símbolos Recently used symbols Símbolos usados recentemente All symbols Todos os símbolos Details Detalhes Name: Nome: Insert Inserir SymbolsModel Blocks Blocos Scripts Roteiros Theme Untitled %1 Sem título %1 ThemeDialog Modify Theme Alterar Tema Name: Nome: Background Segundo plano No Image Sem imagem Tiled Lado a lado Centered Centralizado Stretched Esticado Scaled Em escala Zoomed Ampliada Remove Remover Type: Tipo: Color: Cor: Image: Imagem: Foreground Primeiro plano Opacity Opacidade pixels pixels Left Esquerda Right Direita Position Posição Size: Tamanho: Rounding: Aproximação: Margin: Margem: Padding: Espaçamento: Text Texto Font: Fonte: Misspelled: Erros: Spacings Espaçamento Line Spacing Espaçamento da linha Single Simples 1.5 Lines 1.5 linhas Double Duplo Proportional Proporcional Paragraph Spacing Espaçamento do parágrafo Indent First Line: Indentar a primeira linha Pixels Above: Pixels acima: Pixels Below: Pixels abaixo: The quick brown fox jumps over the lazy dog Um pequeno jabuti xereta viu dez cegonhas felizes ThemeManager Themes Temas Add Adicionar Modify Alterar Remove Remover Import Importar Export Exportar Close Fechar Question Pergunta Remove selected theme? Remover tema selecionado? Import Theme Importar tema Themes (*.fwtz *.theme) Temas (*.fwtz *.theme) Themes (*.fwtz) Temas (*.fwtz) Sorry Desculpe A theme already exists with that name. Please enter a new name: Já existe um tema com este nome. Por favor, digite um novo nome: Export Theme Exportar tema Timer <b>%1</b> - %2 <b>%1</b> - %2 Question Pergunta Delete timer? Excluir cronômetro? <b>Words:</b> %L1 <b>Palavras:</b> %L1 <b>Pages:</b> %L1 <b>Páginas:</b> %L1 <b>Paragraphs:</b> %L1 <b>Parágrafos:</b> %L1 <b>Characters:</b> %L1 / %L2 <b>Caracteres:</b> %L1 / %L2 Set Delay Configurar espera Set Time Configurar Hora Delay: Espera: Time: Hora: HH:mm:ss HH:mm:ss Alarm Alarme Type: Tipo: Memo: Nota: Edit Editar Delete Excluir TimerDisplay HH:mm:ss HH:mm:ss No timers running Nenhum cronômetro funcionando TimerManager Timers Cronômetros New Novo Recent Recente Question Pergunta Cancel editing timers? Cancelar a edição dos cronômetros? +HH:mm:ss +HH:mm:ss %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. Fim do arquivo alcançado inesperadamente. Window Loading themes Carregando temas Loading sounds Carregando sons Untitled Sem título Open File Abrir arquivo About FocusWriter Sobre o FocusWriter FocusWriter FocusWriter A simple fullscreen word processor Um processador de textos simples para escrita em modo Tela cheia Copyright &copy; 2008-%1 Graeme Gott Copyright &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Disponibilizado sob a licença <a href=%1>GPL 3</a> Uses icons from the <a href=%1>Oxygen</a> icon theme Utiliza ícones do conjunto <a href=%1>Oxygen</a> Used under the <a href=%1>LGPL 3</a> license Utilizado sob a licença <a href=%1>LGPL 3</a> Characters: %L1 / %L2 Caracteres: %L1 / %L2 Pages: %L1 Páginas: %L1 Paragraphs: %L1 Parágrafos: %L1 Words: %L1 Palavras: %L1 %1% of daily goal %1% do objetivo diário Opening %1 Abrindo %1 Question Pergunta Save changes? Salvar alterações? (Untitled %1) (Sem título %1) Switch to Next Document Ir para próximo documento Switch to Previous Document Ir para documento anterior Switch to First Document Ir para o primeiro documento Switch to Last Document Ir para o último documento Switch to Document %1 Ir para o documento %1 Loading settings Carregando configurações Emergency cache is not writable. Não é possível escrever no cache de emergência. Warning Aviso FocusWriter was not shut down cleanly. O FocusWriter não foi fechado corretamente. Restore from the emergency cache? Restaurar a partir do cache de emergência? Some files could not be opened. Alguns arquivos não puderam ser abertos. Some files were opened Read-Only. Alguns arquivos foram abertos em modo somente leitura. Text Files (%1);;All Files (*) Arquivos de texto (%1);;Todos os arquivos (*) '%1' is newer than the cached copy. '%1' é mais recente que a cópia em cache. Overwrite newer file? Sobrescrever o novo arquivo? Unable to load typewriter sounds. Não é possível carregar os sons de máquina de datilografia. Please make sure that SDL_mixer is installed. Certifique-se de que o SDL_mixer está instalado. %1 (Read-Only) %1 (Somente leitura) &File &Arquivo &New &Novo &Open... &Abrir... Reloa&d Recarrega&r &Save &Salvar Save &As... Salvar &como... &Rename... &Renomear... Save A&ll Salvar Tod&os Manage Sessions Gerenciar Sessões New Session Nova sessão &Print... Im&primir... &Close Fec&har &Quit Sai&r Ctrl+Q Ctrl+Q &Edit &Editar &Undo Desfa&zer &Redo &Refazer Cu&t Cor&tar &Copy &Copiar &Paste C&olar Paste &Unformatted Colar sem &Formatação Ctrl+Shift+V Ctrl+Shift+V Select &All Selecionar t&udo Select &Scene Selecionar cena Ctrl+Shift+A Ctrl+Shift+A Fo&rmat &Formatar &Bold &Negrito &Italic &Itálico &Underline &Sublinhado Stri&kethrough &Tachado Ctrl+K Ctrl+K Sup&erscript S&obrescrito Ctrl+^ Ctrl+^ &Subscript S&ubscrito Ctrl+_ Ctrl+_ Align &Left Alinhar à &direita Ctrl+{ Ctrl+{ Align &Center Alinhar ao &centro Ctrl+| Ctrl+| Align &Right Alinhar à &esquerda Ctrl+} Ctrl+} Align &Justify Alinhar e &justificar Ctrl+J Ctrl+J &Decrease Indent Di&minuir indentação Ctrl+< Ctrl+< I&ncrease Indent &Aumentar indentação Ctrl+> Ctrl+> Le&ft to Right Block Bloco de texto da es&querda para a direita Ri&ght to Left Block Bloco de texto da di&reita para a esquerda &Tools Ferra&mentas &Find... &Localizar... Find &Next Localizar &próximo Find Pre&vious Localizar &anterior &Replace... &Substituir... Ctrl+R Ctrl+R Smart &Quotes Aspas &Inteligentes Update &Document Atualizar &documento Update &Selection Atualizar &seleção &Spelling... &Verificação ortográfica... F7 F7 &Timers... &Cronômetros... S&ymbols... S&ímbolos... &Settings &Configurações Show &Toolbar Exibir &barra de ferramentas Show &Menu Icons Exibir &ícones do menu F&ocused Text Texto focado &Fullscreen Tela &cheia F11 F11 Esc Esc M&inimize M&inimizar Ctrl+M Ctrl+M &Themes... &Temas... &Preferences... &Preferências... Focus Off Desligar foco Focus One Line Focar uma linha& Focus Three Lines Focar três linhas &Paragraph &Parágrafo Focus Paragraph Focar parágrafo &Help A&juda Application &Language... &Idioma do programa... Some files were unsupported and could not be opened. Alguns arquivos não são suportados e não podem ser abertos. &Off &Desligar One &Line Uma &Linha &Three Lines &Três linhas &About &Sobre About &Qt Sobre o &Qt focuswriter-1.4.5/translations/focuswriter_ro.qm000066400000000000000000000774521231434177300222550ustar00rootroot00000000000000T0TM5RR)]JD !+=,VEEV'B[*$O*yP\*P*%Q*D *0Q+S+Sy+TR+įVA@H(IJ+3tJ6E.J6DKQMez<+Pc*S*JT9VT>\X@ZAZiZiZi!`Zi2ZZiGZ%"9[C([K\CY\L\*_ >Tc4Y{ GO2Ϩ%a3]e~j.~0n%0n)8P2>qGtl^oj_"qS^T;K$Xc#WS ~TaqmQef`zXsE1:J O6P-X\Rf3U`F?.Ncb"Y'aH~hb(a(, 4X92^Ew??J=)'Ir$^bWQf|'TUFᑞ8 sMJN. H`~l( WBE*M@GmZ,luz^Ԏ.S5Z#:/ hI56Z;Z[![N[{[[\\\+],]4-]a(I,/,J&bjT%Y%;M'~g?<YȞn]hDpvD:+Q6*VAdf}<vEz9 IC9az<D6EEQY1TN5t5t (FF@FFlH51BGAIY*N% uN%A2WEG><NOtp}rH]M/d)ݲ j(c]sU]cCZKUOt/^25<8Nk|:YMIIO+JIK\Z[-xg>lRTm(PzCAC 24.@)plW̊|7-O&O*޷3!=# *ofe>+zc< u(R;lC$m p:xg_2? ^4fbQ!i#w6m2L9} RG9NIf/d|>R|w!p}q4nP`SgP%% ' B&C0=Ccd \~S= >he 7 "4S %^ Y d v Y zz zc .3%u JT W0 Wc :d 2 ·Ld .^ X Ń +Ig :n ;fiu d8] eEM 5; q^# t- _ ʀs8 ˔V ˼C8 z_ Bm f  V5u c9 ^+ Q #! L..G f(%$ iqr w9: xj7s {"ui Ne  I ʫ ʫ  ʫ3 ʫ1 ʫF1 ʫK( ʫM ʫf S A) pUq] cM R 6m >U( JA Z$; eK iN!e tfh u 1 sT C C@_  &\ ) t1 1i \  sQ1 Dp _{ 8jH DY\/ DY/ DY/N DZ\n ^3K noJV uud {N( Pr IK < ޘ  Zc"lVqnE>NltrAcj ,3daPf4nLX j,A  L9-W=\e"iTsVI+-z C! " isnchide (%1) Close (%1)AlertRestrngeCollapseAlertExtindeExpandAlert Ctrl+DCtrl+D AlertLayerRevocare alert Dismiss Alert AlertLayer&Toate fi_ierele (*) All Files (*)DocumentXToate modificrile nesalvate vor fi pierdute!All unsaved changes will be lost.Document2Text OpenDocument (*.odt)OpenDocument Text (*.odt)Document&Text simplu (*.txt)Plain Text (*.txt)DocumentntrebareQuestionDocumentRencarcReloadDocument Rencarc fi_ier Reload FileDocument,Rencarc fi_ierul %1?Reload the file %1 from disk?Document"Redenumire fi_ier Rename FileDocument,Text mbogcit (*.rtf)Rich Text (*.rtf)Document(Salveaz fi_ierul ca Save File AsDocumentSalvnd ca text simplu se vor pierde toate formatrile. Renuncaci la formatare?ESaving as plain text will discard all formatting. Discard formatting?Document ScuzeSorryDocument6Nu se poate suprascrie'%1'.Unable to overwrite '%1'.Document4Nu se poate redenumi '%1'.Unable to rename '%1'.Document.Nu se poate salva '%1'.Unable to save '%1'.Document>Dorici s rencrcaci fi_ierul?Do you want to reload the file?DocumentWatcherTDorici s salvaci sau nchideci fi_ierul?&Do you want to save or close the file?DocumentWatcher2Fi_ierul a fost modificat File ChangedDocumentWatcherFi_ier _ters File DeletedDocumentWatcher IgnorIgnoreDocumentWatcherRencarcReloadDocumentWatcher^Fi_ierul %1 a fost modificat de un alt program.+The file %1 was changed by another program.DocumentWatcherVFi_ierul %1 a fost _ters de un alt program.+The file %1 was deleted by another program.DocumentWatcher Caut&Find FindDialognlocuie_te&Replace FindDialogCutareFind FindDialog4Ignor minuscule/majuscule Ignore case FindDialog.Fraza nu a fost gsit.Phrase not found. FindDialogntrebareQuestion FindDialog"Expresii regulateRegular expressions FindDialognlocuireReplace FindDialog(nlocuire %n o dat?"nlocuire %n ori?"nlocuire %n ori?Replace %n instance(s)? FindDialog"nlocuie_te toate Replace &All FindDialognlocuie_te cu: Replace with: FindDialogCaut n jos Search down FindDialog Caut: Search for: FindDialogCaut n sus Search up FindDialog ScuzeSorry FindDialog(Doar cuvinte ntregiWhole words only FindDialog0(Nu s-au gsit sugestii)(No suggestions found) Highlighter AdaugAdd Highlighter2Verificare ortografic...Check Spelling... HighlighterImagini (%1) Images(%1) ImageButton Deschide imagine Open Image ImageButton<Limbaj Sistem> LocaleDialogNotNote LocaleDialogV rugm repornici aceast aplicacie pentru ca schimbarea limbii s aib efect.JPlease restart this application for the change in language to take effect. LocaleDialog6Selectaci limba aplicaciei:Select application language: LocaleDialogAcciuneActionPreferencesDialogAcciuniActionsPreferencesDialogAdugareAddPreferencesDialog Adaug separator Add SeparatorPreferencesDialog<Centreaz vertical ntotdeaunaAlways vertically centerPreferencesDialog:Salveaz automat modificrileAutomatically save changesPreferencesDialog0Cursor block de inserareBlock insertion cursorPreferencesDialog Contor caractereCharacter countPreferencesDialogCaractere: Characters:PreferencesDialogRVerificare ortografic n timpul tastriiCheck spelling as you typePreferencesDialogComandCommandPreferencesDialogConcinutContentsPreferencesDialogObiectiv zilnic Daily GoalPreferencesDialog0Detectare limite cuvinteDetect word boundariesPreferencesDialogHmparte numrul de caractere cu _aseDivide character count by sixPreferencesDialogDivizor:Divider:PreferencesDialog DubleDoublePreferencesDialogEditareEditingPreferencesDialogGeneralGeneralPreferencesDialogDoar iconuri Icons OnlyPreferencesDialog:Ignorare cuvinte cu MAJUSCULEIgnore words in UPPERCASEPreferencesDialogDIgnorare cuvinte care concin cifreIgnore words with numbersPreferencesDialog LimbLanguagePreferencesDialogMinute:Minutes:PreferencesDialogMut n jos Move DownPreferencesDialogMut n susMove UpPreferencesDialogNiciunulNonePreferencesDialogUna sau mai multe scurtturi snt n conflict. Dorici s continuaci?7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialogMrime pagin Page SizePreferencesDialogContor pagini Page countPreferencesDialog Contor paragrafeParagraph countPreferencesDialogParagrafe: Paragraphs:PreferencesDialog$Diccionar personalPersonal DictionaryPreferencesDialogPreferince PreferencesPreferencesDialogntrebareQuestionPreferencesDialog.Amintire pozicie cursorRemember cursor positionPreferencesDialognlturareRemovePreferencesDialogSalvareSavingPreferencesDialog SceneScenesPreferencesDialog*Selectaci diccionarulSelect DictionaryPreferencesDialogScurtturShortcutPreferencesDialogScurtturi ShortcutsPreferencesDialog SimpleSinglePreferencesDialog,Ghilimele inteligente: Smart quotes:PreferencesDialog"Netezire font-uri Smooth fontsPreferencesDialog ScuzeSorryPreferencesDialog,Verificare ortograficSpell CheckingPreferencesDialogStatistici StatisticsPreferencesDialogStilStylePreferencesDialog$Text lng iconuriText Alongside IconsPreferencesDialogDoar text Text OnlyPreferencesDialogPozicie textText Position:PreferencesDialog Text sub iconuriText Under IconsPreferencesDialogTArhiva nu concine un diccionar utilizabil.1The archive does not contain a usable dictionary.PreferencesDialoghDiccionarul "%1" deja exist. Dorici s-l nlocuici?>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialog$Bar de intrumenteToolbarPreferencesDialog,Sunete ma_in de scrisTypewriter soundsPreferencesDialogDNu se poate nchide fi_ierul '%1'.Unable to close file '%1'.PreferencesDialog6Nu se poate deschide arhivaUnable to open archive.PreferencesDialogFNu se poate deschide fi_ierul '%1'.Unable to open file '%1'.PreferencesDialogDNu se pot citi metadatele arhivei. Unable to read archive metadata.PreferencesDialog8Algoritm contorizare cuvinteWord Count AlgorithmPreferencesDialogContor cuvinte Word countPreferencesDialogCuvinte:Words:PreferencesDialog,Fi_ier RTF nesuportat.Not a supported RTF file.ReaderDNu se poate nchide fi_ierul '%1'.Unable to close file '%1'.Reader8Nu se poate deschide arhiva.Unable to open archive.ReaderFNu se poate deschide fi_ierul '%1'.Unable to open file '%1'.Reader2Ctrl+Shift+Sgeat n josCtrl+Shift+Down SceneList2Ctrl+Shift+Sgeat n sus Ctrl+Shift+Up SceneList FiltruFilter SceneList0Ascunde list scene (%1)Hide scene list (%1) SceneList"Mut scene n josMove Scenes Down SceneList"Mut scene n susMove Scenes Up SceneList4Redimensionare list sceneResize scene list SceneListShift+F4Shift+F4 SceneList,Arat list scene (%1)Show scene list (%1) SceneList(Comutare list sceneToggle Scene List SceneListInicialDefaultSessionGestionare... &Manage...SessionManager&Nou...&New...SessionManagerCloneazCloneSessionManager Cloneaz sesiune Clone SessionSessionManagerCtrl+Shift+M Ctrl+Shift+MSessionManagerCtrl+Shift+N Ctrl+Shift+NSessionManager^tergereDeleteSessionManager4^terge sesiunea selectat?Delete selected session?SessionManager$Gestionare sesiuniManage SessionsSessionManagerNouNewSessionManagerSesiune nou New SessionSessionManagerntrebareQuestionSessionManagerRedenumireRenameSessionManager$Redenumire sesiuneRename SessionSessionManagerS&esiuni S&essionsSessionManagerNume sesiune: Session name:SessionManager ScuzeSorrySessionManagerComut la Switch ToSessionManagerZNumele solicitat al sesiunii este deja n uz.-The requested session name is already in use.SessionManager CurcClear ShortcutEdit<Reseteaz la valorile implicteReset to Default ShortcutEditScurttur: Shortcut: ShortcutEdit$V rugm a_teptaci Please Wait SmartQuote,nlocuire ghilimele...Replacing quotation marks... SmartQuote&Adaug&Add SpellChecker&Modific&Change SpellChecker&Ignor&Ignore SpellCheckerModific &toate C&hange All SpellCheckerAnulareCancel SpellCheckerModific n: Change to: SpellChecker,Verificare ortograficCheck Spelling SpellChecker0Verificare ortografie...Checking spelling... SpellCheckerI&gnor toate I&gnore All SpellChecker*Nu este n diccionar:Not in dictionary: SpellChecker$V rugm a_teptaci Please wait SpellChecker@Verificare ortografic complet.Spell check complete. SpellChecker"Toate simbolurile All symbols SymbolsDialogDetaliiDetails SymbolsDialogInsereazInsert SymbolsDialog Nume:Name: SymbolsDialog6Simbolurile folosite recentRecently used symbols SymbolsDialogSimboluriSymbols SymbolsDialogBlocuriBlocks SymbolsModelScript-uriScripts SymbolsModelFrTitlu %1 Untitled %1Theme pixeli pixels ThemeDialog1.5 linii 1.5 Lines ThemeDialog Fundal Background ThemeDialogCentratCentered ThemeDialogCuloare:Color: ThemeDialogDou rnduriDouble ThemeDialog Font:Font: ThemeDialogPrim plan Foreground ThemeDialogImagine:Image: ThemeDialog.Indentacie prima linie:Indent First Line: ThemeDialog StngaLeft ThemeDialogSpaciere rnd Line Spacing ThemeDialogMargine:Margin: ThemeDialogGre_it: Misspelled: ThemeDialogModificare tem Modify Theme ThemeDialog Nume:Name: ThemeDialogFr imagineNo Image ThemeDialogOpacitateOpacity ThemeDialogUmplere:Padding: ThemeDialog"Spaciere paragrafParagraph Spacing ThemeDialog Pixeli deasupra: Pixels Above: ThemeDialog Pixeli dedesubt: Pixels Below: ThemeDialogPoziciePosition ThemeDialogProporcional Proportional ThemeDialognlturRemove ThemeDialogDreaptaRight ThemeDialogRotunjire: Rounding: ThemeDialogRedimensionatScaled ThemeDialog SimplSingle ThemeDialogMrime:Size: ThemeDialogSpaciereSpacings ThemeDialog ntins Stretched ThemeDialogTextText ThemeDialogVThe quick brown fox jumps over the lazy dog+The quick brown fox jumps over the lazy dog ThemeDialog PlacatTiled ThemeDialogTip:Type: ThemeDialog MritZoomed ThemeDialogExist deja o tem cu acest nume. V rugm tastaci un alt nume:?A theme already exists with that name. Please enter a new name: ThemeManagerAdugareAdd ThemeManagernchideClose ThemeManager ExportExport ThemeManagerExportare tem Export Theme ThemeManager ImportImport ThemeManagerImportare tem Import Theme ThemeManagerModificareModify ThemeManagerntrebareQuestion ThemeManagernlturareRemove ThemeManager0nltur tema selectat?Remove selected theme? ThemeManager ScuzeSorry ThemeManagerTemeThemes ThemeManager*Teme (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManagerTeme (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer6<b>Caractere:</b> %L1 / %L2Characters: %L1 / %L2Timer$<b>Pagini:</b> %L1Pages: %L1Timer*<b>Paragrafe:</b> %L1Paragraphs: %L1Timer&<b>Cuvinte:</b> %L1Words: %L1Timer AlarmAlarmTimerntrziere:Delay:Timer^tergereDeleteTimer$^terge cronometru? Delete timer?TimerEditareEditTimerHH:mm:ssHH:mm:ssTimer Not:Memo:TimerntrebareQuestionTimer$Setare ntrziere Set DelayTimerSetare timpSet TimeTimer Timp:Time:TimerTip:Type:TimerHH:mm:ssHH:mm:ss TimerDisplayBNu exist cronometre care ruleazNo timers running TimerDisplay%1 - %2%1 - %2 TimerManager+HH:mm:ss +HH:mm:ss TimerManager6Anulare cronometru editare?Cancel editing timers? TimerManagerNouNew TimerManagerntrebareQuestion TimerManager RecentRecent TimerManagerCronometreTimers TimerManagerbS-a ajuns pe nea_teptate la sfr_itul fi_ierului.!Unexpectedly reached end of file. Tokenizer %1 (Doar-citire)%1 (Read-Only)Window.%1% din obiectiv zilnic%1% of daily goalWindow&Despre&AboutWindowngro_at&BoldWindownchide&CloseWindow&Copiaz&CopyWindowMrire alineat&Decrease IndentWindow&Editare&EditWindow&Fi_ier&FileWindow&Caut...&Find...Window&Tot ecranul &FullscreenWindow&Ajutor&HelpWindow&Italic&ItalicWindow&Nou&NewWindow &Oprit&OffWindow&Deschide...&Open...Window&Paragraf &ParagraphWindow&Lipe_te&PasteWindow&Preferince...&Preferences...WindowImprimare... &Print...Window&Ie_ire&QuitWindow Reface&RedoWindow&Redenumire... &Rename...Windownlocuire... &Replace...Window&Salvare&SaveWindow&Setri &SettingsWindow&Ortografie... &Spelling...Window Indice &SubscriptWindow&Teme... &Themes...Window&Trei linii &Three LinesWindowCronometre... &Timers...Window&Unelte&ToolsWindowS&ubliniat &UnderlineWindowAnuleaz&UndoWindowP'%1' este mai nou dect copia din cache.#'%1' is newer than the cached copy.Window(Fr titlu %1) (Untitled %1)WindowRUn procesor simplu de text pe tot ecranul"A simple fullscreen word processorWindowDespre &Qt About &QtWindow$Despre FocusWriterAbout FocusWriterWindow&Aliniere la &centru Align &CenterWindow.Aliniere stnga-dreaptaAlign &JustifyWindow&Aliniere la &stnga Align &LeftWindow(Aliniere la &dreapta Align &RightWindow$Limb aplicacie...Application &Language...Window(Caractere: %L1 / %L2Characters: %L1 / %L2WindowjToate drepturile rezervate &copy; 2008-%1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindow Ctrl+<Ctrl+<Window Ctrl+>Ctrl+>Window Ctrl+JCtrl+JWindow Ctrl+KCtrl+KWindow Ctrl+MCtrl+MWindow Ctrl+QCtrl+QWindow Ctrl+RCtrl+RWindowCtrl+Shift+A Ctrl+Shift+AWindowCtrl+Shift+V Ctrl+Shift+VWindow Ctrl+^Ctrl+^Window Ctrl+_Ctrl+_Window Ctrl+{Ctrl+{Window Ctrl+|Ctrl+|Window Ctrl+}Ctrl+}Window &TaieCu&tWindowLCache-ul de urgenc nu poate fi scris. Emergency cache is not writable.WindowEscEscWindowText f&ocalizat F&ocused TextWindowF11F11WindowF7F7Window Caut &urmtorul Find &NextWindow Caut &precedentFind Pre&viousWindowFo&rmatareFo&rmatWindow$Focaliuzare oprit Focus OffWindow$Focalizare o linieFocus One LineWindow&Focalizare paragrafFocus ParagraphWindow*Focalizare trei liniiFocus Three LinesWindowFocusWriter FocusWriterWindowFFocusWriter nu a fost oprit corect.&FocusWriter was not shut down cleanly.Window"Mic_orare alineatI&ncrease IndentWindow&Bloc stnga-dreaptaLe&ft to Right BlockWindow ncrcare setriLoading settingsWindow ncrcare suneteLoading soundsWindowncrcare temeLoading themesWindowM&inimizare M&inimizeWindow$Gestionare sesiuniManage SessionsWindowSesiune nou New SessionWindowO &linie One &LineWindowDeschide fi_ier Open FileWindowDeschidere %1 Opening %1Window.Suprascrie noul fi_ier?Overwrite newer file?WindowPagini: %L1 Pages: %L1WindowParagrafe: %L1Paragraphs: %L1Window"Lipire neformatatPaste &UnformattedWindowhV rugm s v asiguraci c SDL_mixer este instalat.-Please make sure that SDL_mixer is installed.WindowntrebareQuestionWindowNLansat sub licenc <a href=%1>GPL 3</a>/Released under the GPL 3 licenseWindowRencarcReloa&dWindowPRestaurare din memoria cache de urgenc?!Restore from the emergency cache?Window&Bloc dreapta-stngaRi&ght to Left BlockWindowS&imboluri... S&ymbols...WindowSalvare c&a... Save &As...WindowSalveaz tot Save A&llWindow*Salvaci modificrile? Save changes?WindowSelecteaz &tot Select &AllWindow Selectare &scen Select &SceneWindow(Arat iconuri &meniuShow &Menu IconsWindow(Arat bar de unelte Show &ToolbarWindow*Ghilimele inteligente Smart &QuotesWindowLUnele fi_iere nu au putut fi deschise.Some files could not be opened.WindowdUnele fi_iere au fost deschise n mod doar-citire.!Some files were opened Read-Only.WindowzUnele fi_iere au fost nesuportate _i nu au putut fi deschide.4Some files were unsupported and could not be opened.Window &TiatStri&kethroughWindowExponent Sup&erscriptWindow.Comutare la document %1Switch to Document %1Window6Comutare la primul documentSwitch to First DocumentWindow8Comutare la ultimul documentSwitch to Last DocumentWindow<Comutare la urmtorul documentSwitch to Next DocumentWindow@Comutare la documentul precedentSwitch to Previous DocumentWindowLFi_iere text (%1);;Toate fi_ierele (*)Text Files (%1);;All Files (*)WindowVNu se pot ncrca sunetele ma_in de scris.!Unable to load typewriter sounds.WindowFrTitluUntitledWindow*Actualizare &documentUpdate &DocumentWindow*Actualizare &seleccieUpdate &SelectionWindowRFolosit sub licenc <a href=%1>LGPL 3</a>,Used under the LGPL 3 licenseWindow`Folose_te iconuri din tema <a href=%1>Oxygen</a>4Uses icons from the Oxygen icon themeWindowAvertismentWarningWindowCuvinte: %L1 Words: %L1Window $focuswriter-1.4.5/translations/focuswriter_ro.ts000066400000000000000000002241041231434177300222520ustar00rootroot00000000000000 Alert Close (%1) Închide (%1) Collapse Restrînge Expand Extinde AlertLayer Dismiss Alert Revocare alertă Ctrl+D Ctrl+D Document Sorry Scuze Unable to save '%1'. Nu se poate salva '%1'. Save File As Salvează fişierul ca Unable to overwrite '%1'. Nu se poate suprascrie'%1'. Rename File Redenumire fişier Unable to rename '%1'. Nu se poate redenumi '%1'. Reload File Reîncarcă fişier Reload the file %1 from disk? Reîncarcă fişierul %1? All unsaved changes will be lost. Toate modificările nesalvate vor fi pierdute Reload Reîncarcă Plain Text (*.txt) Text simplu (*.txt) Question Întrebare Saving as plain text will discard all formatting. Discard formatting? Salvînd ca text simplu se vor pierde toate formatările. Renunţaţi la formatare? OpenDocument Text (*.odt) Text OpenDocument (*.odt) Rich Text (*.rtf) Text îmbogăţit (*.rtf) All Files (*) Toate fişierele (*) DocumentWatcher File Changed Fişierul a fost modificat The file %1 was changed by another program. Fişierul %1 a fost modificat de un alt program. Do you want to reload the file? Doriţi să reîncărcaţi fişierul? Reload Reîncarcă Ignore Ignoră File Deleted Fişier şters The file %1 was deleted by another program. Fişierul %1 a fost şters de un alt program. Do you want to save or close the file? Doriţi să salvaţi sau închideţi fişierul? FindDialog Search for: Caută: Replace with: Înlocuieşte cu: Ignore case Ignoră minuscule/majuscule Whole words only Doar cuvinte întregi Regular expressions Expresii regulate Search up Caută în sus Search down Caută în jos &Find Caută &Replace Înlocuieşte Replace &All Înlocuieşte toate Find Căutare Replace Înlocuire Replace %n instance(s)? Înlocuire %n o dată? Înlocuire %n ori? Înlocuire %n ori? Question Întrebare Sorry Scuze Phrase not found. Fraza nu a fost găsită. Highlighter Add Adaugă Check Spelling... Verificare ortografică... (No suggestions found) (Nu s-au găsit sugestii) ImageButton Open Image Deschide imagine Images(%1) Imagini (%1) LocaleDialog Select application language: Selectaţi limba aplicaţiei: <System Language> <Limbaj Sistem> Note Notă Please restart this application for the change in language to take effect. Vă rugăm reporniţi această aplicaţie pentru ca schimbarea limbii să aibă efect. PreferencesDialog Preferences Preferinţe General General Statistics Statistici Toolbar Bară de intrumente Spell Checking Verificare ortografică Select Dictionary Selectaţi dicţionarul Sorry Scuze Unable to open archive. Nu se poate deschide arhiva Unable to read archive metadata. Nu se pot citi metadatele arhivei. The archive does not contain a usable dictionary. Arhiva nu conţine un dicţionar utilizabil. Unable to open file '%1'. Nu se poate deschide fişierul '%1'. Unable to close file '%1'. Nu se poate închide fişierul '%1'. Question Întrebare Shortcuts Scurtături One or more shortcuts conflict. Do you wish to proceed? Una sau mai multe scurtături sînt în conflict. Doriţi să continuaţi? The dictionary "%1" already exists. Do you want to replace it? Dicţionarul "%1" deja există. Doriţi să-l înlocuiţi? Daily Goal Obiectiv zilnic None Niciunul Minutes: Minute: Words: Cuvinte: Editing Editare Always vertically center Centrează vertical întotdeauna Block insertion cursor Cursor block de inserare Smooth fonts Netezire font-uri Typewriter sounds Sunete maşină de scris Smart quotes: Ghilimele inteligente: Double Duble Single Simple Scenes Scene Divider: Divizor: Saving Salvare Automatically save changes Salvează automat modificările Remember cursor position Amintire poziţie cursor Contents Conţinut Word count Contor cuvinte Page count Contor pagini Paragraph count Contor paragrafe Character count Contor caractere Page Size Mărime pagină Characters: Caractere: Paragraphs: Paragrafe: Word Count Algorithm Algoritm contorizare cuvinte Detect word boundaries Detectare limite cuvinte Divide character count by six Împarte numărul de caractere cu şase Style Stil Icons Only Doar iconuri Text Only Doar text Text Alongside Icons Text lîngă iconuri Text Under Icons Text sub iconuri Text Position: Poziţie text Actions Acţiuni Move Up Mută în sus Move Down Mută în jos Add Separator Adaugă separator Command Comandă Shortcut Scurtătură Action Acţiune Check spelling as you type Verificare ortografică în timpul tastării Ignore words in UPPERCASE Ignorare cuvinte cu MAJUSCULE Ignore words with numbers Ignorare cuvinte care conţin cifre Language Limbă Add Adăugare Remove Înlăturare Personal Dictionary Dicţionar personal Reader Not a supported RTF file. Fişier RTF nesuportat. Unable to open archive. Nu se poate deschide arhiva. Unable to open file '%1'. Nu se poate deschide fişierul '%1'. Unable to close file '%1'. Nu se poate închide fişierul '%1'. SceneList Ctrl+Shift+Down Ctrl+Shift+Săgeată în jos Move Scenes Up Mută scene în sus Ctrl+Shift+Up Ctrl+Shift+Săgeată în sus Toggle Scene List Comutare listă scene Shift+F4 Shift+F4 Show scene list (%1) Arată listă scene (%1) Hide scene list (%1) Ascunde listă scene (%1) Filter Filtru Move Scenes Down Mută scene în jos Resize scene list Redimensionare listă scene Session Default Iniţial SessionManager Manage Sessions Gestionare sesiuni S&essions S&esiuni New Nou Rename Redenumire Clone Clonează Delete Ştergere Switch To Comută la New Session Sesiune nouă Clone Session Clonează sesiune Rename Session Redenumire sesiune Question Întrebare Delete selected session? Şterge sesiunea selectată? Session name: Nume sesiune: Sorry Scuze The requested session name is already in use. Numele solicitat al sesiunii este deja în uz. &New... &Nou... Ctrl+Shift+N Ctrl+Shift+N &Manage... Gestionare... Ctrl+Shift+M Ctrl+Shift+M ShortcutEdit Clear Curăţă Reset to Default Resetează la valorile implicte Shortcut: Scurtătură: SmartQuote Replacing quotation marks... Înlocuire ghilimele... Please Wait Vă rugăm aşteptaţi SpellChecker Check Spelling Verificare ortografică &Add &Adaugă &Ignore &Ignoră I&gnore All I&gnoră toate &Change &Modifică C&hange All Modifică &toate Not in dictionary: Nu este în dicţionar: Change to: Modifică în: Checking spelling... Verificare ortografie... Cancel Anulare Please wait Vă rugăm aşteptaţi Spell check complete. Verificare ortografică completă. SymbolsDialog Symbols Simboluri Recently used symbols Simbolurile folosite recent All symbols Toate simbolurile Details Detalii Name: Nume: Insert Inserează SymbolsModel Blocks Blocuri Scripts Script-uri Theme Untitled %1 FărăTitlu %1 ThemeDialog Modify Theme Modificare temă Name: Nume: Background Fundal No Image Fără imagine Tiled Placat Centered Centrat Stretched Întins Scaled Redimensionat Zoomed Mărit Remove Înlătură Type: Tip: Color: Culoare: Image: Imagine: Foreground Prim plan Opacity Opacitate pixels pixeli Left Stînga Right Dreapta Position Poziţie Size: Mărime: Rounding: Rotunjire: Margin: Margine: Padding: Umplere: Text Text Font: Font: Misspelled: Greşit: Spacings Spaţiere Line Spacing Spaţiere rînd Single Simplă 1.5 Lines 1.5 linii Double Două rînduri Proportional Proporţional Paragraph Spacing Spaţiere paragraf Indent First Line: Indentaţie prima linie: Pixels Above: Pixeli deasupra: Pixels Below: Pixeli dedesubt: The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog ThemeManager Themes Teme Add Adăugare Modify Modificare Remove Înlăturare Import Import Export Export Close Închide Question Întrebare Remove selected theme? Înlătură tema selectată? Import Theme Importare temă Themes (*.fwtz *.theme) Teme (*.fwtz *.theme) Themes (*.fwtz) Teme (*.fwtz) Sorry Scuze A theme already exists with that name. Please enter a new name: Există deja o temă cu acest nume. Vă rugăm tastaţi un alt nume: Export Theme Exportare temă Timer <b>%1</b> - %2 <b>%1</b> - %2 Question Întrebare Delete timer? Şterge cronometru? <b>Words:</b> %L1 <b>Cuvinte:</b> %L1 <b>Pages:</b> %L1 <b>Pagini:</b> %L1 <b>Paragraphs:</b> %L1 <b>Paragrafe:</b> %L1 <b>Characters:</b> %L1 / %L2 <b>Caractere:</b> %L1 / %L2 Set Delay Setare întîrzîiere Set Time Setare timp Delay: Întîrzîiere: Time: Timp: HH:mm:ss HH:mm:ss Alarm Alarmă Type: Tip: Memo: Notă: Edit Editare Delete Ştergere TimerDisplay HH:mm:ss HH:mm:ss No timers running Nu există cronometre care rulează TimerManager Timers Cronometre New Nou Recent Recent Question Întrebare Cancel editing timers? Anulare cronometru editare? +HH:mm:ss +HH:mm:ss %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. S-a ajuns pe neaşteptate la sfîrşitul fişierului. Window Loading themes Încărcare teme Loading sounds Încărcare sunete Untitled FărăTitlu Open File Deschide fişier About FocusWriter Despre FocusWriter FocusWriter FocusWriter A simple fullscreen word processor Un procesor simplu de text pe tot ecranul Copyright &copy; 2008-%1 Graeme Gott Toate drepturile rezervate &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Lansat sub licenţă <a href=%1>GPL 3</a> Uses icons from the <a href=%1>Oxygen</a> icon theme Foloseşte iconuri din tema <a href=%1>Oxygen</a> Used under the <a href=%1>LGPL 3</a> license Folosit sub licenţă <a href=%1>LGPL 3</a> Characters: %L1 / %L2 Caractere: %L1 / %L2 Pages: %L1 Pagini: %L1 Paragraphs: %L1 Paragrafe: %L1 Words: %L1 Cuvinte: %L1 %1% of daily goal %1% din obiectiv zilnic Opening %1 Deschidere %1 Question Întrebare Save changes? Salvaţi modificările? (Untitled %1) (Fără titlu %1) Switch to Next Document Comutare la următorul document Switch to Previous Document Comutare la documentul precedent Switch to First Document Comutare la primul document Switch to Last Document Comutare la ultimul document Switch to Document %1 Comutare la document %1 Loading settings Încărcare setări Emergency cache is not writable. Cache-ul de urgenţă nu poate fi scris. Warning Avertisment FocusWriter was not shut down cleanly. FocusWriter nu a fost oprit corect. Restore from the emergency cache? Restaurare din memoria cache de urgenţă? Some files could not be opened. Unele fişiere nu au putut fi deschise. Some files were opened Read-Only. Unele fişiere au fost deschise în mod doar-citire. Text Files (%1);;All Files (*) Fişiere text (%1);;Toate fişierele (*) '%1' is newer than the cached copy. '%1' este mai nou decît copia din cache. Overwrite newer file? Suprascrie noul fişier? Unable to load typewriter sounds. Nu se pot încărca sunetele maşină de scris. Please make sure that SDL_mixer is installed. Vă rugăm să vă asiguraţi că SDL_mixer este instalat. %1 (Read-Only) %1 (Doar-citire) &File &Fişier &New &Nou &Open... &Deschide... Reloa&d Reîncarcă &Save &Salvare Save &As... Salvare c&a... &Rename... &Redenumire... Save A&ll Salvează tot Manage Sessions Gestionare sesiuni New Session Sesiune nouă &Print... Imprimare... &Close Închide &Quit &Ieşire Ctrl+Q Ctrl+Q &Edit &Editare &Undo Anulează &Redo Reface Cu&t &Taie &Copy &Copiază &Paste &Lipeşte Paste &Unformatted Lipire neformatat Ctrl+Shift+V Ctrl+Shift+V Select &All Selectează &tot Select &Scene Selectare &scenă Ctrl+Shift+A Ctrl+Shift+A Fo&rmat Fo&rmatare &Bold Îngroşat &Italic &Italic &Underline S&ubliniat Stri&kethrough &Tăiat Ctrl+K Ctrl+K Sup&erscript Exponent Ctrl+^ Ctrl+^ &Subscript Indice Ctrl+_ Ctrl+_ Align &Left Aliniere la &stînga Ctrl+{ Ctrl+{ Align &Center Aliniere la &centru Ctrl+| Ctrl+| Align &Right Aliniere la &dreapta Ctrl+} Ctrl+} Align &Justify Aliniere stînga-dreapta Ctrl+J Ctrl+J &Decrease Indent Mărire alineat Ctrl+< Ctrl+< I&ncrease Indent Micşorare alineat Ctrl+> Ctrl+> Le&ft to Right Block Bloc stînga-dreapta Ri&ght to Left Block Bloc dreapta-stînga &Tools &Unelte &Find... &Caută... Find &Next Caută &următorul Find Pre&vious Caută &precedent &Replace... Înlocuire... Ctrl+R Ctrl+R Smart &Quotes Ghilimele inteligente Update &Document Actualizare &document Update &Selection Actualizare &selecţie &Spelling... &Ortografie... F7 F7 &Timers... Cronometre... S&ymbols... S&imboluri... &Settings &Setări Show &Toolbar Arată bară de unelte Show &Menu Icons Arată iconuri &meniu F&ocused Text Text f&ocalizat &Fullscreen &Tot ecranul F11 F11 Esc Esc M&inimize M&inimizare Ctrl+M Ctrl+M &Themes... &Teme... &Preferences... &Preferinţe... Focus Off Focaliuzare oprită Focus One Line Focalizare o linie Focus Three Lines Focalizare trei linii &Paragraph &Paragraf Focus Paragraph Focalizare paragraf &Help &Ajutor Application &Language... Limbă aplicaţie... Some files were unsupported and could not be opened. Unele fişiere au fost nesuportate şi nu au putut fi deschide. &Off &Oprit One &Line O &linie &Three Lines &Trei linii &About &Despre About &Qt Despre &Qt focuswriter-1.4.5/translations/focuswriter_ru.qm000066400000000000000000001001541231434177300222450ustar00rootroot00000000000000XAoZB[ZiZiZi!Zi2ZiGZ%"o[C[L\D!\L\*_ >Uc4Y{ cO2Ϩ%b3]fH~k.0n&0n)^P2?qHtm^qk`"sS^;$c#S ~Taqn{efazXF:J Pj6PYbSf3V`?.O>cc"Z'aI~ic<(a, 4Y93*^Fw@@jJ>)'JH$_WR|'zVG}ᑞ8sMN/ H`~l( WC1E*M@HGZ,lu0z^Ԏ.@T6Z#: hI6a6Z<[[[\#\P\}\]U]+],]-^ (J,/,Jbk8%u%Ae }<vFX9x IC9az=6D7.EFQY/1TN5t5t |FFA;FGHH51G=A}*N% N%B#2X7H<O tqrI7M0dݲ j(cgsV[cDN[UP/_25<8Nld:ZIIOJIL4Z[-g?GlS&m(rzCBC Z4m.@lX̊|7O'O*1޷3!>I#S*pf+zd< u6R;rlC*m p;9xhT_?^5fb!jw62M9} G9,Nqf/eK|>S_|w!p}r%4oPafSh%% &' BC0Cd \~T >iM 8. "4 %^* Y v Y z z .3% JU W1 WdV : 2\ ·M0 .^F  Ń +Im :p ;fja d8a eEy 5 q^$ t. `c ʀs99 ˔W ˼C8 z_ Bn f ) V5 c:\ ^+ R #"+ L.. f(%f iqt! w9: xj7 {"uj Nf  I ʫ ʫ 0 ʫW ʫ1Q ʫG ʫL ʫN ʫgG  A) pUrk < Ed cK cL >cM S 6n. >V& JA Z$; eLg iN!e tfi u 2" sU` D C@  & ) tG 1m \ sQ Dq `3 8j DY\ DY/U DY/ DZ] ^3a noK$ uup {N( Ps Ik < ޘ ] Zc"W}nE>NltrAcj ,Idb=Q@gv4o@jYj-A TL9-<W=e# iT sWI+-zC!>" itX0:@KBL (%1) Close (%1)Alert!25@=CBLCollapseAlert 0725@=CBLExpandAlert Ctrl+DCtrl+D AlertLayer*#1@0BL ?@54C?@5645=85 Dismiss Alert AlertLayerA5 D09;K (*) All Files (*)DocumentdA5 =5A>E@0=Q==K5 87<5=5=8O 2 D09;5 1C4CB CB5@O=K.!All unsaved changes will be lost.Document(OpenDocument (*.odt)OpenDocument Text (*.odt)Document*@>AB>9 B5:AB (*.txt)Plain Text (*.txt)Document >?@>AQuestionDocumentB:@KBL 70=>2>ReloadDocument&B:@KBL D09; 70=>2> Reload FileDocumentJ59AB28B5;L=> 70=>2> >B:@KBL D09; %1?Reload the file %1 from disk?Document$5@58<5=>20BL D09; Rename FileDocument>"5:AB A D>@<0B8@>20=85< (*.rtf)Rich Text (*.rtf)Document!>E@0=8BL :0: Save File AsDocument!>E@0=5=85 D09;0 :0: ?@>AB>9 B5:AB ?@8254QB : ?>B5@5 D>@<0B8@>20=8O. #1@0BL D>@<0B8@>20=85?ESaving as plain text will discard all formatting. Discard formatting?Document728=8B5SorryDocument:52>7<>6=> ?5@570?8A0BL '%1'.Unable to overwrite '%1'.Document<52>7<>6=> ?5@58<5=>20BL '%1'.Unable to rename '%1'.Document452>7<>6=> A>E@0=8BL '%1'.Unable to save '%1'.Document2B:@KBL 70=>2> MB>B D09;?Do you want to reload the file?DocumentWatcher`%>B8B5 ;8 2K A>E@0=8BL D09;, 8;8 65 70:@KBL 53>?&Do you want to save or close the file?DocumentWatcher$09; 87<5=Q= File ChangedDocumentWatcher$09; C40;Q= File DeletedDocumentWatcher@>?CAB8BLIgnoreDocumentWatcherB:@KBL 70=>2>ReloadDocumentWatcherL$09; %1 1K; 87<5=Q= 4@C3>9 ?@>3@0<<>9.+The file %1 was changed by another program.DocumentWatcherJ$09; %1 1K; C40;Q= 4@C3>9 ?@>3@0<<>9.+The file %1 was deleted by another program.DocumentWatcher &09B8&Find FindDialog&0<5=8BL&Replace FindDialog 09B8Find FindDialog(5 CG8BK20BL @538AB@ Ignore case FindDialog"$@070 =5 =0945=0.Phrase not found. FindDialog >?@>AQuestion FindDialog( 53C;O@=K5 2K@065=8ORegular expressions FindDialog0<5=8BLReplace FindDialog.0<5=8BL %n A>2?045=85?.0<5=8BL %n A>2?045=8O?.0<5=8BL %n A>2?045=89?Replace %n instance(s)? FindDialog0<5=8BL &2A5 Replace &All FindDialog0<5=8BL =0: Replace with: FindDialog09B8 =865 Search down FindDialog 09B8: Search for: FindDialog09B8 2KH5 Search up FindDialog728=8B5Sorry FindDialog(">;L:> A;>20 F5;8:><Whole words only FindDialog(5B 20@80=B>2)(No suggestions found) Highlighter>1028BLAdd Highlighter2@>25@8BL ?@02>?8A0=85...Check Spelling... Highlighter7>1@065=8O(%1) Images(%1) ImageButton&B:@KBL 87>1@065=85 Open Image ImageButton</7K: A8AB5<K> LocaleDialog=D>@<0F8ONote LocaleDialogr5@570?CAB8B5 ?@>3@0<<C, GB>1K ?@8<5=8BL 87<5=5=85 O7K:0.JPlease restart this application for the change in language to take effect. LocaleDialog2K15@8B5 O7K: ?@8;>65=8O:Select application language: LocaleDialog59AB285ActionPreferencesDialog59AB28OActionsPreferencesDialog>1028BLAddPreferencesDialog(>1028BL @0745;8B5;L Add SeparatorPreferencesDialog@A5340 F5=B@8@>20BL ?> 25@B8:0;8Always vertically centerPreferencesDialogB2B><0B8G5A:8 A>E@0=OBL 87<5=5=8OAutomatically save changesPreferencesDialog(@O<>C3>;L=K9 :C@A>@Block insertion cursorPreferencesDialog&>;8G5AB2> A8<2>;>2Character countPreferencesDialog!8<2>;>2: Characters:PreferencesDialog<@>25@OBL >@D>3@0D8N ?@8 22>45Check spelling as you typePreferencesDialog><0=40CommandPreferencesDialog!>45@60=85ContentsPreferencesDialog=52=0O 7040G0 Daily GoalPreferencesDialog.?@545;OBL 3@0=8FK A;>2Detect word boundariesPreferencesDialogF5;8BL :>;8G5AB2> A8<2>;>2 =0 H5ABLDivide character count by sixPreferencesDialog* 0745;8B5;L=0O ;8=8O:Divider:PreferencesDialog2>9=K5DoublePreferencesDialog 540:B8@>20=85EditingPreferencesDialog 1I85GeneralPreferencesDialog">;L:> 7=0G:8 Icons OnlyPreferencesDialogF@>?CA:0BL A;>20 2  %  !" Ignore words in UPPERCASEPreferencesDialog4@>?CA:0BL A;>20 A F8D@0<8Ignore words with numbersPreferencesDialog/7K:LanguagePreferencesDialog 8=CB:Minutes:PreferencesDialog 5@5<5AB8BL 2=87 Move DownPreferencesDialog"5@5<5AB8BL 225@EMove UpPreferencesDialog5BNonePreferencesDialogd5:>B>@K5 :><18=0F88 :;028H A>2?040NB. @>4>;68BL?7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialog 07<5@ AB@0=8FK Page SizePreferencesDialog$>;8G5AB2> AB@0=8F Page countPreferencesDialog$>;8G5AB2> 0170F52Paragraph countPreferencesDialog170F52: Paragraphs:PreferencesDialog0>;L7>20B5;LA:89 A;>20@LPersonal DictionaryPreferencesDialog0@0<5B@K PreferencesPreferencesDialog >?@>AQuestionPreferencesDialog40?><8=0BL ?>78F8N :C@A>@0Remember cursor positionPreferencesDialog#40;8BLRemovePreferencesDialog!>E@0=5=85SavingPreferencesDialog !F5=KScenesPreferencesDialog K15@8B5 A;>20@LSelect DictionaryPreferencesDialog"><18=0F8O :;028HShortcutPreferencesDialog"><18=0F8O :;028H ShortcutsPreferencesDialog48=0@=K5SinglePreferencesDialog"0<5=OBL :02KG:8: Smart quotes:PreferencesDialog"!3;06820BL H@8DBK Smooth fontsPreferencesDialog728=8B5SorryPreferencesDialog*@>25@:0 ?@02>?8A0=8OSpell CheckingPreferencesDialog!B0B8AB8:0 StatisticsPreferencesDialog !B8;LStylePreferencesDialog."5:AB @O4>< A> 7=0G:0<8Text Alongside IconsPreferencesDialog">;L:> B5:AB Text OnlyPreferencesDialog">;>65=85 B5:AB0:Text Position:PreferencesDialog$"5:AB ?>4 7=0G:0<8Text Under IconsPreferencesDialogL@E82 =5 A>45@68B ?@028;L=>3> A;>20@O.1The archive does not contain a usable dictionary.PreferencesDialog\!;>20@L "%1" C65 ACI5AB2C5B. 5@570?8A0BL 53>?>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialog&0=5;L 8=AB@C<5=B>2ToolbarPreferencesDialog(2C: ?8HCI59 <0H8=:8Typewriter soundsPreferencesDialog:52>7<>6=> 70:@KBL D09; '%1'.Unable to close file '%1'.PreferencesDialog252>7<>6=> >B:@KBL 0@E82.Unable to open archive.PreferencesDialog:52>7<>6=> >B:@KBL D09; '%1'.Unable to open file '%1'.PreferencesDialogL52>7<>6=> ?@>G5ABL <5B040==K5 0@E820. Unable to read archive metadata.PreferencesDialog,;3>@8B< ?>4AGQB0 A;>2Word Count AlgorithmPreferencesDialog>;8G5AB2> A;>2 Word countPreferencesDialog !;>2:Words:PreferencesDialog45?>445@68205<K9 D09; RTF.Not a supported RTF file.Reader:52>7<>6=> 70:@KBL D09; '%1'.Unable to close file '%1'.Reader252>7<>6=> >B:@KBL 0@E82.Unable to open archive.Reader:52>7<>6=> >B:@KBL D09; '%1'.Unable to open file '%1'.Reader.Ctrl+Shift+!B@5;:0 2=87Ctrl+Shift+Down SceneList0Ctrl+Shift+!B@5;:0 225@E Ctrl+Shift+Up SceneList$8;LB@>20BLFilter SceneList.!:@KBL A?8A>: AF5= (%1)Hide scene list (%1) SceneList,5@5428=CBL AF5=K =865Move Scenes Down SceneList,5@5428=CBL AF5=K 2KH5Move Scenes Up SceneList67<5=8BL @07<5@ A?8A:0 AF5=Resize scene list SceneListShift+F4Shift+F4 SceneList2>:070BL A?8A>: AF5= (%1)Show scene list (%1) SceneList6B:@KBL/70:@KBL A?8A>: AF5=Toggle Scene List SceneList> C<>;G0=8NDefaultSession&#?@02;5=85... &Manage...SessionManager&>2K9...&New...SessionManager;>=8@>20BLCloneSessionManager";>=8@>20BL A50=A Clone SessionSessionManagerCtrl+Shift+M Ctrl+Shift+MSessionManagerCtrl+Shift+N Ctrl+Shift+NSessionManager#40;8BLDeleteSessionManager0#40;8BL 2K1@0==K9 A50=A?Delete selected session?SessionManager&#?@02;5=85 A50=A0<8Manage SessionsSessionManager >2K9NewSessionManager>2K9 A50=A New SessionSessionManager >?@>AQuestionSessionManager5@58<5=>20BLRenameSessionManager&5@58<5=>20BL A50=ARename SessionSessionManager!&50=AK S&essionsSessionManager 0720=85 A50=A0: Session name:SessionManager728=8B5SorrySessionManager5@5:;NG8BLAO Switch ToSessionManagerJ040==>5 8<O A50=A0 C65 8A?>;L7C5BAO.-The requested session name is already in use.SessionManagerG8AB8BLClear ShortcutEditB!1@>A8BL : 7=0G5=8O< ?> C<>;G0=8NReset to Default ShortcutEdit$><18=0F8O :;028H: Shortcut: ShortcutEdit*>60;C9AB0, ?>4>648B5 Please Wait SmartQuote"0<5=0 :02KG5:...Replacing quotation marks... SmartQuote&>1028BL&Add SpellChecker&0<5=8BL&Change SpellChecker&@>?CAB8BL&Ignore SpellChecker0<5&=8BL 2A5 C&hange All SpellChecker B<5=0Cancel SpellChecker0<5=8BL =0: Change to: SpellChecker(@>25@8BL >@D>3@0D8NCheck Spelling SpellChecker2@>25@O5BAO >@D>3@0D8O...Checking spelling... SpellChecker&@>?CAB8BL 2A5 I&gnore All SpellChecker5B 2 A;>20@5:Not in dictionary: SpellChecker*>60;C9AB0, ?>4>648B5 Please wait SpellChecker<@>25@:0 >@D>3@0D88 7025@H5=0.Spell check complete. SpellCheckerA5 A8<2>;K All symbols SymbolsDialog>4@>1=>AB8Details SymbolsDialogAB028BLInsert SymbolsDialog0720=85:Name: SymbolsDialog<5402=> 8A?>;L7>20==K5 A8<2>;KRecently used symbols SymbolsDialog!8<2>;KSymbols SymbolsDialog ;>:8Blocks SymbolsModel!:@8?BKScripts SymbolsModel57K<O==0O %1 Untitled %1Theme ?8:A5;59 pixels ThemeDialog>;CB>@=K9 1.5 Lines ThemeDialog$>= Background ThemeDialog&5=B@8@>20BLCentered ThemeDialog &25B:Color: ThemeDialog2>9=>9Double ThemeDialog (@8DB:Font: ThemeDialog5@54=89 ?;0= Foreground ThemeDialog7>1@065=85:Image: ThemeDialog@0A=0O AB@>:0:Indent First Line: ThemeDialog !;520Left ThemeDialog(56AB@>G=K9 8=B5@20; Line Spacing ThemeDialog>;O A=0@C68:Margin: ThemeDialogH81:8: Misspelled: ThemeDialog7<5=5=85 B5<K Modify Theme ThemeDialog0720=85:Name: ThemeDialog5B 87>1@065=8ONo Image ThemeDialog5?@>7@0G=>ABLOpacity ThemeDialog>;O 2=CB@8:Padding: ThemeDialog"BABC?K ?0@03@0D0Paragraph Spacing ThemeDialog 8:A5;59 A25@EC: Pixels Above: ThemeDialog8:A5;59 A=87C: Pixels Below: ThemeDialog>;>65=85Position ThemeDialog @>?>@F8>=0;L=K9 Proportional ThemeDialog#40;8BLRemove ThemeDialog !?@020Right ThemeDialog0:@C3;5=85: Rounding: ThemeDialog0AHB018@>20BLScaled ThemeDialog48=0@=K9Single ThemeDialog 07<5@:Size: ThemeDialog=B5@20;KSpacings ThemeDialog> H8@8=5 Stretched ThemeDialog "5:ABText ThemeDialogn!J5HL 65 5IQ MB8E <O3:8E D@0=FC7A:8E 1C;>: 40 2K?59 G0N+The quick brown fox jumps over the lazy dog ThemeDialog0<>AB8BLTiled ThemeDialog"8?:Type: ThemeDialog@81;878BLZoomed ThemeDialog"5<0 A B0:8< =0720=85< C65 ACI5AB2C5B. K15@8B5 4@C3>5 =0720=85:?A theme already exists with that name. Please enter a new name: ThemeManager>1028BLAdd ThemeManager0:@KBLClose ThemeManager-:A?>@BExport ThemeManager&-:A?>@B8@>20BL B5<C Export Theme ThemeManager <?>@BImport ThemeManager$<?>@B8@>20BL B5<C Import Theme ThemeManager7<5=8BLModify ThemeManager >?@>AQuestion ThemeManager#40;8BLRemove ThemeManager.#40;8BL 2K1@0==CN B5<C?Remove selected theme? ThemeManager728=8B5Sorry ThemeManager"5<KThemes ThemeManager*"5<K (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManager"5<K (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer4<b>!8<2>;>2:</b> %L1 / %L2Characters: %L1 / %L2Timer&<b>!B@0=8F:</b> %L1Pages: %L1Timer&<b>170F52:</b> %L1Paragraphs: %L1Timer <b>!;>2:</b> %L1Words: %L1TimerC48;L=8:AlarmTimer=B5@20;:Delay:Timer#40;8BLDeleteTimer#40;8BL B09<5@? Delete timer?Timer 540:B8@>20BLEditTimerHH:mm:ssHH:mm:ssTimer!>>1I5=85:Memo:Timer >?@>AQuestionTimer=B5@20; Set DelayTimer040==>5 2@5<OSet TimeTimer @5<O:Time:Timer"8?:Type:Timer'':<<:AAHH:mm:ss TimerDisplay""09<5@ =5 2:;NGQ=No timers running TimerDisplay%1 - %2%1 - %2 TimerManager+'':<<:AA +HH:mm:ss TimerManagerBB<5=8BL @540:B8@>20=85 B09<5@>2?Cancel editing timers? TimerManager >2K9New TimerManager >?@>AQuestion TimerManager5402=89Recent TimerManager"09<5@KTimers TimerManagerB5>6840==> 4>AB83=CB :>=5F D09;0.!Unexpectedly reached end of file. Tokenizer,%1 (">;L:> 4;O GB5=8O)%1 (Read-Only)Window*%1% >B 4=52=>9 7040G8%1% of daily goalWindow& ?@>3@0<<5&AboutWindow>;C&68@=K9&BoldWindow&0:@KBL&CloseWindow&>?8@>20BL&CopyWindow"#&<5=LH8BL >BABC?&Decrease IndentWindow&@02:0&EditWindow &$09;&FileWindow&09B8...&Find...Window(>;=>&M:@0==K9 @568< &FullscreenWindow!?@&02:0&HelpWindow&C@A82&ItalicWindow &>2K9&NewWindow&K:;NG5=>&OffWindow&B:@KBL...&Open...Window&0 0170F5 &ParagraphWindowA&B028BL&PasteWindow0@0&<5B@K...&Preferences...Window&5G0BL... &Print...Window &KE>4&QuitWindow>2&B>@8BL&RedoWindow"&5@58<5=>20BL... &Rename...Window0&<5=8BL... &Replace...Window&!>E@0=8BL&SaveWindow&0@0<5B@K &SettingsWindow@&D>3@0D8O... &Spelling...Window&&>4AB@>G=K9 8=45:A &SubscriptWindow&"5<K... &Themes...Window&"@8 AB@>:8 &Three LinesWindow&"09<5@K... &Timers...Window&=AB@C<5=BK&ToolsWindow>4&GQ@:=CBK9 &UnderlineWindow&B<5=8BL&UndoWindow6'%1' =>255 @575@2=>9 :>?88.#'%1' is newer than the cached copy.Window(57K<O==K9 %1) (Untitled %1)WindowP@>AB>9 ?>;=>M:@0==K9 B5:AB>2K9 @540:B>@"A simple fullscreen word processorWindow =D>@<0F8O > &Qt About &QtWindow. ?@>3@0<<5 FocusWriterAbout FocusWriterWindow> &F5=B@C Align &CenterWindow> &H8@8=5Align &JustifyWindow> &;52><C :@0N Align &LeftWindow > &?@02><C :@0N Align &RightWindow&&/7K: ?@8;>65=8O...Application &Language...Window&!8<2>;>2: %L1 / %L2Characters: %L1 / %L2WindowHCopyright &copy; 2008-%1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindow Ctrl+<Ctrl+<Window Ctrl+>Ctrl+>Window Ctrl+JCtrl+JWindow Ctrl+KCtrl+KWindow Ctrl+MCtrl+MWindow Ctrl+QCtrl+QWindow Ctrl+RCtrl+RWindowCtrl+Shift+A Ctrl+Shift+AWindowCtrl+Shift+V Ctrl+Shift+VWindow Ctrl+^Ctrl+^Window Ctrl+_Ctrl+_Window Ctrl+{Ctrl+{Window Ctrl+|Ctrl+|Window Ctrl+}Ctrl+}WindowK&@570BLCu&tWindowN 575@2=0O ?0<OBL =54>ABC?=0 4;O 70?8A8. Emergency cache is not writable.WindowEscEscWindow">4A25&B:0 B5:AB0 F&ocused TextWindowF11F11WindowF7F7Window 09B8 A;54CNI&89 Find &NextWindow"09B8 ?@54&K4CI89Find Pre&viousWindow$&>@<0BFo&rmatWindowB:;NG5=0 Focus OffWindow0 >4=>9 AB@>:5Focus One LineWindow0 0170F5Focus ParagraphWindow0 B@QE AB@>:0EFocus Three LinesWindowFocusWriter FocusWriterWindowZ 01>B0 ?@8;>65=8O 1K;0 7025@H5=0 =5?@028;L=>.&FocusWriter was not shut down cleanly.Window"#&25;8G8BL >BABC?I&ncrease IndentWindow.$@03<5=B A;520 =0?@&02>Le&ft to Right BlockWindow*03@C60NBAO =0AB@>9:8Loading settingsWindow"03@C60NBAO 72C:8Loading soundsWindow 03@C60NBAO B5<KLoading themesWindow!25@=&CBL M&inimizeWindow&#?@02;5=85 A50=A0<8Manage SessionsWindow>2K9 A50=A New SessionWindow4=0 AB&@>:0 One &LineWindowB:@KBL D09; Open FileWindowB:@K205BAO %1 Opening %1WindowN0<5=8BL =>2CN 25@A8N @575@2=>9 :>?859?Overwrite newer file?Window!B@0=8F: %L1 Pages: %L1Window170F52: %L1Paragraphs: %L1Window8AB028BL 157 &D>@<0B8@>20=8OPaste &UnformattedWindowR@>25@LB5, CAB0=>2;5= ;8 ?0:5B SDL_mixer.-Please make sure that SDL_mixer is installed.Window >?@>AQuestionWindowTK?CI5= ?>4 ;8F5=7859 <a href=%1>GPL 3</a>/Released under the GPL 3 licenseWindowB:@&KBL 70=>2>Reloa&dWindow`>AAB0=>28BL >B:@KBK5 D09;K 87 @575@2=>9 ?0<OB8?!Restore from the emergency cache?Window.$@03<5=B A?@020 =0;&52>Ri&ght to Left BlockWindow!8<&2>;K... S&ymbols...Window"!>E@0=8BL &:0:... Save &As...Window!>E@0=8BL 2A&5 Save A&llWindow(!>E@0=8BL 87<5=5=8O? Save changes?Window&K1@0BL 2AQ Select &AllWindowK1@0BL &AF5=C Select &SceneWindow*>:070BL 7=0G:8 <5=&NShow &Menu IconsWindow:>:070BL ?0=5;L &8=AB@C<5=B>2 Show &ToolbarWindow"0<5=8BL :02K&G:8 Smart &QuotesWindowF5 C40;>AL >B:@KBL =5:>B>@K5 D09;K.Some files could not be opened.Window^5:>B>@K5 D09;K 1K;8 >B:@KBK B>;L:> 4;O GB5=8O.!Some files were opened Read-Only.Window$>@<0B =5:>B>@KE D09;>2 =5 ?>445@68205BAO ?@>3@0<<>9. -B8 D09;K =5 1K;8 >B:@KBK.4Some files were unsupported and could not be opened.Window&0GQ@:=CBK9Stri&kethroughWindow&&04AB@>G=K9 8=45:A Sup&erscriptWindow,5@59B8 : 4>:C<5=BC %1Switch to Document %1Window65@59B8 : ?5@2><C 4>:C<5=BCSwitch to First DocumentWindow<5@59B8 : ?>A;54=5<C 4>:C<5=BCSwitch to Last DocumentWindow<5@59B8 : A;54CNI5<C 4>:C<5=BCSwitch to Next DocumentWindow>5@59B8 : ?@54K4CI5<C 4>:C<5=BCSwitch to Previous DocumentWindowF"5:AB>2K5 D09;K (%1);;A5 D09;K (*)Text Files (%1);;All Files (*)WindowT5 C40QBAO 703@C78BL 72C: ?8HCI59 <0H8=:8.!Unable to load typewriter sounds.Window57K<O==K9UntitledWindow$> 2AQ< &4>:C<5=B5Update &DocumentWindow &2K45;5==><Update &SelectionWindowhA?>;L7CNBAO A>3;0A=> ;8F5=788 <a href=%1>LGPL 3</a>,Used under the LGPL 3 licenseWindowz ?@>3@0<<5 8A?>;L7CNBAO 8:>=:8 87 B5<K <a href=%1>Oxygen</a>4Uses icons from the Oxygen icon themeWindow@54C?@5645=85WarningWindow!;>2: %L1 Words: %L1Window ) , focuswriter-1.4.5/translations/focuswriter_ru.ts000066400000000000000000002357751231434177300223000ustar00rootroot00000000000000 Alert Close (%1) Закрыть (%1) Collapse Свернуть Expand Развернуть AlertLayer Dismiss Alert Убрать предупреждение Ctrl+D Ctrl+D Document Sorry Извините Unable to save '%1'. Невозможно сохранить '%1'. Save File As Сохранить как Unable to overwrite '%1'. Невозможно перезаписать '%1'. Rename File Переименовать файл Unable to rename '%1'. Невозможно переименовать '%1'. Reload File Открыть файл заново Reload the file %1 from disk? Действительно заново открыть файл %1? All unsaved changes will be lost. Все несохранённые изменения в файле будут утеряны. Reload Открыть заново Plain Text (*.txt) Простой текст (*.txt) Question Вопрос Saving as plain text will discard all formatting. Discard formatting? Сохранение файла как простой текст приведёт к потере форматирования. Убрать форматирование? OpenDocument Text (*.odt) OpenDocument (*.odt) Rich Text (*.rtf) Текст с форматированием (*.rtf) All Files (*) Все файлы (*) DocumentWatcher File Changed Файл изменён The file %1 was changed by another program. Файл %1 был изменён другой программой. Do you want to reload the file? Открыть заново этот файл? Reload Открыть заново Ignore Пропустить File Deleted Файл удалён The file %1 was deleted by another program. Файл %1 был удалён другой программой. Do you want to save or close the file? Хотите ли вы сохранить файл, или же закрыть его? FindDialog Search for: Найти: Replace with: Заменить на: Ignore case Не учитывать регистр Whole words only Только слова целиком Regular expressions Регулярные выражения Search up Найти выше Search down Найти ниже &Find &Найти &Replace &Заменить Replace &All Заменить &все Find Найти Replace Заменить Replace %n instance(s)? Заменить %n совпадение? Заменить %n совпадения? Заменить %n совпадений? Question Вопрос Sorry Извините Phrase not found. Фраза не найдена. Highlighter Add Добавить Check Spelling... Проверить правописание... (No suggestions found) (Нет вариантов) ImageButton Open Image Открыть изображение Images(%1) Изображения(%1) LocaleDialog Select application language: Выберите язык приложения: <System Language> <Язык системы> Note Информация Please restart this application for the change in language to take effect. Перезапустите программу, чтобы применить изменение языка. PreferencesDialog Preferences Параметры General Общие Statistics Статистика Toolbar Панель инструментов Spell Checking Проверка правописания Select Dictionary Выберите словарь Sorry Извините Unable to open archive. Невозможно открыть архив. Unable to read archive metadata. Невозможно прочесть метаданные архива. The archive does not contain a usable dictionary. Архив не содержит правильного словаря. Unable to open file '%1'. Невозможно открыть файл '%1'. Unable to close file '%1'. Невозможно закрыть файл '%1'. Question Вопрос Shortcuts Комбинация клавиш One or more shortcuts conflict. Do you wish to proceed? Некоторые комбинации клавиш совпадают. Продолжить? The dictionary "%1" already exists. Do you want to replace it? Словарь "%1" уже существует. Перезаписать его? Daily Goal Дневная задача None Нет Minutes: Минут: Words: Слов: Editing Редактирование Always vertically center Всегда центрировать по вертикали Block insertion cursor Прямоугольный курсор Smooth fonts Сглаживать шрифты Typewriter sounds Звук пишущей машинки Smart quotes: Заменять кавычки: Double Двойные Single Одинарные Scenes Сцены Divider: Разделительная линия: Saving Сохранение Automatically save changes Автоматически сохранять изменения Remember cursor position Запоминать позицию курсора Contents Содержание Word count Количество слов Page count Количество страниц Paragraph count Количество абзацев Character count Количество символов Page Size Размер страницы Characters: Символов: Paragraphs: Абзацев: Word Count Algorithm Алгоритм подсчёта слов Detect word boundaries Определять границы слов Divide character count by six Делить количество символов на шесть Style Стиль Icons Only Только значки Text Only Только текст Text Alongside Icons Текст рядом со значками Text Under Icons Текст под значками Text Position: Положение текста: Actions Действия Move Up Переместить вверх Move Down Переместить вниз Add Separator Добавить разделитель Command Команда Shortcut Комбинация клавиш Action Действие Check spelling as you type Проверять орфографию при вводе Ignore words in UPPERCASE Пропускать слова в ВЕРХНЕМ РЕГИСТРЕ Ignore words with numbers Пропускать слова с цифрами Language Язык Add Добавить Remove Удалить Personal Dictionary Пользовательский словарь Reader Not a supported RTF file. Неподдерживаемый файл RTF. Unable to open archive. Невозможно открыть архив. Unable to open file '%1'. Невозможно открыть файл '%1'. Unable to close file '%1'. Невозможно закрыть файл '%1'. SceneList Ctrl+Shift+Down Ctrl+Shift+Стрелка вниз Move Scenes Up Передвинуть сцены выше Ctrl+Shift+Up Ctrl+Shift+Стрелка вверх Toggle Scene List Открыть/закрыть список сцен Shift+F4 Shift+F4 Show scene list (%1) Показать список сцен (%1) Hide scene list (%1) Скрыть список сцен (%1) Filter Фильтровать Move Scenes Down Передвинуть сцены ниже Resize scene list Изменить размер списка сцен Session Default По умолчанию SessionManager Manage Sessions Управление сеансами S&essions С&еансы New Новый Rename Переименовать Clone Клонировать Delete Удалить Switch To Переключиться New Session Новый сеанс Clone Session Клонировать сеанс Rename Session Переименовать сеанс Question Вопрос Delete selected session? Удалить выбранный сеанс? Session name: Название сеанса: Sorry Извините The requested session name is already in use. Заданное имя сеанса уже используется. &New... &Новый... Ctrl+Shift+N Ctrl+Shift+N &Manage... &Управление... Ctrl+Shift+M Ctrl+Shift+M ShortcutEdit Clear Очистить Reset to Default Сбросить к значениям по умолчанию Shortcut: Комбинация клавиш: SmartQuote Replacing quotation marks... Замена кавычек... Please Wait Пожалуйста, подождите SpellChecker Check Spelling Проверить орфографию &Add &Добавить &Ignore &Пропустить I&gnore All П&ропустить все &Change &Заменить C&hange All Заме&нить все Not in dictionary: Нет в словаре: Change to: Заменить на: Checking spelling... Проверяется орфография... Cancel Отмена Please wait Пожалуйста, подождите Spell check complete. Проверка орфографии завершена. SymbolsDialog Symbols Символы Recently used symbols Недавно использованные символы All symbols Все символы Details Подробности Name: Название: Insert Вставить SymbolsModel Blocks Блоки Scripts Скрипты Theme Untitled %1 Безымянная %1 ThemeDialog Modify Theme Изменение темы Name: Название: Background Фон No Image Нет изображения Tiled Замостить Centered Центрировать Stretched По ширине Scaled Масштабировать Zoomed Приблизить Remove Удалить Type: Тип: Color: Цвет: Image: Изображение: Foreground Передний план Opacity Непрозрачность pixels пикселей Left Слева Right Справа Position Положение Size: Размер: Rounding: Закругление: Margin: Поля снаружи: Padding: Поля внутри: Text Текст Font: Шрифт: Misspelled: Ошибки: Spacings Интервалы Line Spacing Межстрочный интервал Single Одинарный 1.5 Lines Полуторный Double Двойной Proportional Пропорциональный Paragraph Spacing Отступы параграфа Indent First Line: Красная строка: Pixels Above: Пикселей сверху: Pixels Below: Пикселей снизу: The quick brown fox jumps over the lazy dog Съешь же ещё этих мягких французских булок да выпей чаю ThemeManager Themes Темы Add Добавить Modify Изменить Remove Удалить Import Импорт Export Экспорт Close Закрыть Question Вопрос Remove selected theme? Удалить выбранную тему? Import Theme Импортировать тему Themes (*.fwtz *.theme) Темы (*.fwtz *.theme) Themes (*.fwtz) Темы (*.fwtz) Sorry Извините A theme already exists with that name. Please enter a new name: Тема с таким названием уже существует. Выберите другое название: Export Theme Экспортировать тему Timer <b>%1</b> - %2 <b>%1</b> - %2 Question Вопрос Delete timer? Удалить таймер? <b>Words:</b> %L1 <b>Слов:</b> %L1 <b>Pages:</b> %L1 <b>Страниц:</b> %L1 <b>Paragraphs:</b> %L1 <b>Абзацев:</b> %L1 <b>Characters:</b> %L1 / %L2 <b>Символов:</b> %L1 / %L2 Set Delay Интервал Set Time Заданное время Delay: Интервал: Time: Время: HH:mm:ss HH:mm:ss Alarm Будильник Type: Тип: Memo: Сообщение: Edit Редактировать Delete Удалить TimerDisplay HH:mm:ss ЧЧ:мм:сс No timers running Таймер не включён TimerManager Timers Таймеры New Новый Recent Недавний Question Вопрос Cancel editing timers? Отменить редактирование таймеров? +HH:mm:ss +ЧЧ:мм:сс %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. Неожиданно достигнут конец файла. Window Loading themes Загружаются темы Loading sounds Загружаются звуки Untitled Безымянный Open File Открыть файл About FocusWriter О программе FocusWriter FocusWriter FocusWriter A simple fullscreen word processor Простой полноэкранный текстовый редактор Copyright &copy; 2008-%1 Graeme Gott Copyright &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Выпущен под лицензией <a href=%1>GPL 3</a> Uses icons from the <a href=%1>Oxygen</a> icon theme В программе используются иконки из темы <a href=%1>Oxygen</a> Used under the <a href=%1>LGPL 3</a> license Используются согласно лицензии <a href=%1>LGPL 3</a> Characters: %L1 / %L2 Символов: %L1 / %L2 Pages: %L1 Страниц: %L1 Paragraphs: %L1 Абзацев: %L1 Words: %L1 Слов: %L1 %1% of daily goal %1% от дневной задачи Opening %1 Открывается %1 Question Вопрос Save changes? Сохранить изменения? (Untitled %1) (Безымянный %1) Switch to Next Document Перейти к следующему документу Switch to Previous Document Перейти к предыдущему документу Switch to First Document Перейти к первому документу Switch to Last Document Перейти к последнему документу Switch to Document %1 Перейти к документу %1 Loading settings Загружаются настройки Emergency cache is not writable. Резервная память недоступна для записи. Warning Предупреждение FocusWriter was not shut down cleanly. Работа приложения была завершена неправильно. Restore from the emergency cache? Восстановить открытые файлы из резервной памяти? Some files could not be opened. Не удалось открыть некоторые файлы. Some files were opened Read-Only. Некоторые файлы были открыты только для чтения. Text Files (%1);;All Files (*) Текстовые файлы (%1);;Все файлы (*) '%1' is newer than the cached copy. '%1' новее резервной копии. Overwrite newer file? Заменить новую версию резервной копией? Unable to load typewriter sounds. Не удаётся загрузить звук пишущей машинки. Please make sure that SDL_mixer is installed. Проверьте, установлен ли пакет SDL_mixer. %1 (Read-Only) %1 (Только для чтения) &File &Файл &New &Новый &Open... &Открыть... Reloa&d Откр&ыть заново &Save &Сохранить Save &As... Сохранить &как... &Rename... П&ереименовать... Save A&ll Сохранить вс&е Manage Sessions Управление сеансами New Session Новый сеанс &Print... &Печать... &Close З&акрыть &Quit В&ыход Ctrl+Q Ctrl+Q &Edit &Правка &Undo &Отменить &Redo Пов&торить Cu&t Вы&резать &Copy &Копировать &Paste Вс&тавить Paste &Unformatted Вставить без &форматирования Ctrl+Shift+V Ctrl+Shift+V Select &All &Выбрать всё Select &Scene Выбрать &сцену Ctrl+Shift+A Ctrl+Shift+A Fo&rmat Ф&ормат &Bold Полу&жирный &Italic &Курсив &Underline Под&чёркнутый Stri&kethrough &Зачёркнутый Ctrl+K Ctrl+K Sup&erscript &Надстрочный индекс Ctrl+^ Ctrl+^ &Subscript П&одстрочный индекс Ctrl+_ Ctrl+_ Align &Left По &левому краю Ctrl+{ Ctrl+{ Align &Center По &центру Ctrl+| Ctrl+| Align &Right По &правому краю Ctrl+} Ctrl+} Align &Justify По &ширине Ctrl+J Ctrl+J &Decrease Indent У&меньшить отступ Ctrl+< Ctrl+< I&ncrease Indent У&величить отступ Ctrl+> Ctrl+> Le&ft to Right Block Фрагмент слева напр&аво Ri&ght to Left Block Фрагмент справа нал&ево &Tools &Инструменты &Find... &Найти... Find &Next Найти следующ&ий Find Pre&vious Найти пред&ыдущий &Replace... За&менить... Ctrl+R Ctrl+R Smart &Quotes Заменить кавы&чки Update &Document Во всём &документе Update &Selection В &выделенном &Spelling... Ор&фография... F7 F7 &Timers... &Таймеры... S&ymbols... Сим&волы... &Settings &Параметры Show &Toolbar Показать панель &инструментов Show &Menu Icons Показать значки мен&ю F&ocused Text Подсве&тка текста &Fullscreen Полно&экранный режим F11 F11 Esc Esc M&inimize Сверн&уть Ctrl+M Ctrl+M &Themes... &Темы... &Preferences... Пара&метры... Focus Off Отключена Focus One Line На одной строке Focus Three Lines На трёх строках &Paragraph &На абзаце Focus Paragraph На абзаце &Help Спр&авка Application &Language... &Язык приложения... Some files were unsupported and could not be opened. Формат некоторых файлов не поддерживается программой. Эти файлы не были открыты. &Off &Выключено One &Line Одна ст&рока &Three Lines &Три строки &About &О программе About &Qt Информация о &Qt focuswriter-1.4.5/translations/focuswriter_sk.qm000066400000000000000000000774111231434177300222450ustar00rootroot00000000000000TXc4X{ %O1Ϩ%a3]ed~j.80n%"0n(tP2=mqGtl^oj_"qS^b:'#c"S ~SaqmAef`ZzXD:J %OL6OX"Rdf3U`?.N:cb"Y'aH~hbt(`, 4Xn91^E}w>>J0YFȞn]OhDjvD:*W5(VAdN};hvEB8  IC8saz;D5EEQY0TM5t5t FgF?FF2H50ZG@Q)N%N%@2W G<NtparH%M.d%ݲ j'c#sU cCHYUN/^25<8Nkd:XIINJIKZ*[,g=lQm'zC@C3.?xlW̊|6O&O)S޷2!<"o*qoHe +zc< u$R9lCm ?p9xg^=^3fb!2iw5g2L9} &G9Nf/d|>R-|w! px}p4njP`SgB%% ' wA*C/[CcH \~R >hU 6 "3U %^ Y ^ v Y z zg .3$ JT W/ Wc 9B 1( ·L" .^ < ŃP +IW :n ;fiU d8 eE 4; q^# t, _{ ʀs7 ˔U ˼C7 z_ Bm f  V4q c8 ^* Qj #!a L.-c f($v iqr w99x xj6g {"ui Ne  H ʫ ʫ ʫ ʫ0# ʫE ʫJ ʫM ʫfw C A) pUq? ;. Ed cJ cK >cL R 6m >T J@ Z$:_ eKa iN!d tfh uA 0 sT C C?Q r % ( t 1g \ e sP Dp _? 8j2 DY[ DY.- DY.t DZ[ ^3 noJ uu {N( Pr I? <@ ޘ Zc!VnE<NltrAci +9da{Pf4nWj+A >L9,&W<8e"0iTlsVI*-z C " irZavriee (%1) Close (%1)Alert ZbalieCollapseAlertRozbalieExpandAlert Ctrl+DCtrl+D AlertLayer$Zruaie upozornenie Dismiss Alert AlertLayer"Vaetky sbory (*) All Files (*)DocumentJVaetky neulo~en zmeny bud straten.!All unsaved changes will be lost.Document2OpenDocument Text (*.odt)OpenDocument Text (*.odt)Document*Oby ajn text (*.txt)Plain Text (*.txt)Document OtzkaQuestionDocument Optovne na taeReloadDocument,Optovne na tae sbor Reload FileDocumentDOptovne na tae sbor %1 z disku?Reload the file %1 from disk?Document Premenovae sbor Rename FileDocument"Rich Text (*.rtf)Rich Text (*.rtf)Document Ulo~ie sbor ako Save File AsDocumentUlo~enie ako oby ajn text odstrni formtovanie. Chcete zruaie formtovanie?ESaving as plain text will discard all formatting. Discard formatting?DocumentPrep teSorryDocument,Ned sa prepsae '%1'.Unable to overwrite '%1'.Document2Ned sa premenovae '%1'.Unable to rename '%1'.Document(Ned sa ulo~ie '%1'.Unable to save '%1'.Document<Chcete sbor optovne na tae?Do you want to reload the file?DocumentWatcherDChcete sbor ulo~ie alebo zavriee?&Do you want to save or close the file?DocumentWatcher"Sbor bol zmenen File ChangedDocumentWatcher$Sbor bol vymazan File DeletedDocumentWatcherIgnorovaeIgnoreDocumentWatcher Optovne na taeReloadDocumentWatcherJSbor %1 bol zmenen v inom programe.+The file %1 was changed by another program.DocumentWatcherJSbor %1 bol vymazan inm programom.+The file %1 was deleted by another program.DocumentWatcher &Njse&Find FindDialogNa&hradie&Replace FindDialog NjseFind FindDialogJIgnorovae ve>kose za iato nch psmen Ignore case FindDialog(Vraz nebol njden.Phrase not found. FindDialog OtzkaQuestion FindDialog Regulrne vrazyRegular expressions FindDialogNahradieReplace FindDialog&Nahradie %n vskyt?(Nahradie %n vskyty?*Nahradie %n vskytov?Replace %n instance(s)? FindDialog Nahradie &vaetko Replace &All FindDialogNahradie: Replace with: FindDialog$H>adae smerom dole Search down FindDialogVyh>adae: Search for: FindDialog$H>adae smerom hore Search up FindDialogPrep teSorry FindDialogIba cel slovWhole words only FindDialog<(}iadne nvrhy neboli njden)(No suggestions found) Highlighter PridaeAdd Highlighter*Kontrola pravopisu...Check Spelling... HighlighterObrzky(%1) Images(%1) ImageButtonOtvorie obrzok Open Image ImageButton4<Predvolen jazyk systmu> LocaleDialogPoznmkaNote LocaleDialogVK zmene jazyka djde po reatarte programu. JPlease restart this application for the change in language to take effect. LocaleDialog,Vber jazyka programu:Select application language: LocaleDialog innoseActionPreferencesDialog innostiActionsPreferencesDialog PridaeAddPreferencesDialog Pridae odde>ova  Add SeparatorPreferencesDialogBV~dy zarovnae vertiklne na stredAlways vertically centerPreferencesDialog2Automaticky ukladae zmenyAutomatically save changesPreferencesDialog,Kurzor vkladania blokuBlock insertion cursorPreferencesDialogPo et znakovCharacter countPreferencesDialogZnakov: Characters:PreferencesDialog@Kontrola pravopisu po as psaniaCheck spelling as you typePreferencesDialog PrkazCommandPreferencesDialog ObsahContentsPreferencesDialogDenn cie> Daily GoalPreferencesDialog0Rozoznvanie hranc slovDetect word boundariesPreferencesDialog6Delie po et znakov aiestimiDivide character count by sixPreferencesDialogOdde>ova :Divider:PreferencesDialogDvojitDoublePreferencesDialog pravyEditingPreferencesDialogVaeobecnGeneralPreferencesDialogIba ikony Icons OnlyPreferencesDialogPIgnorovae slov psan VE=KMI PSMENAMIIgnore words in UPPERCASEPreferencesDialog@Ignorovae slov obsahujce  slaIgnore words with numbersPreferencesDialog JazykLanguagePreferencesDialog Mint:Minutes:PreferencesDialogPosune nadol Move DownPreferencesDialogPosune nahorMove UpPreferencesDialog }iadnyNonePreferencesDialogBol zisten konflikt jednej alebo viacerch skratiek. Chcete pokra ovae?7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialogVe>kose strany Page SizePreferencesDialogPo et strn Page countPreferencesDialogPo et odstavcovParagraph countPreferencesDialogOdstavcov: Paragraphs:PreferencesDialogOsobn slovnkPersonal DictionaryPreferencesDialogNastavenia PreferencesPreferencesDialog OtzkaQuestionPreferencesDialog8Zapamtae si pozciu kurzoraRemember cursor positionPreferencesDialogOdstrnieRemovePreferencesDialogUkladanieSavingPreferencesDialog ScnyScenesPreferencesDialogVber slovnkaSelect DictionaryPreferencesDialogSkratkaShortcutPreferencesDialogSkratky ShortcutsPreferencesDialogJednoduchSinglePreferencesDialog.Inteligentn vodzovky: Smart quotes:PreferencesDialogJemn psma Smooth fontsPreferencesDialogPrep teSorryPreferencesDialog$Kontrola pravopisuSpell CheckingPreferencesDialog`tatistika StatisticsPreferencesDialog`tlStylePreferencesDialogText ved>a ikonText Alongside IconsPreferencesDialogIba text Text OnlyPreferencesDialogPozcia textu:Text Position:PreferencesDialog Text pod ikonamiText Under IconsPreferencesDialogLArchv neobsahuje pou~ite>n slovnk. 1The archive does not contain a usable dictionary.PreferencesDialogZSlovnk "%1" u~ existuje. Chcete ho nahradie?>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialogPanel nstrojovToolbarPreferencesDialog*Zvuk psacieho strojaTypewriter soundsPreferencesDialog@Nie je mo~n zavriee sbor '%1'.Unable to close file '%1'.PreferencesDialog:Archv nie je mo~n otvorie. Unable to open archive.PreferencesDialog@Nie je mo~n otvorie sbor '%1'.Unable to open file '%1'.PreferencesDialogJNie je mo~n  tae metadta archvu.  Unable to read archive metadata.PreferencesDialog2Algoritmus po tania slovWord Count AlgorithmPreferencesDialogPo et slov Word countPreferencesDialog Slov:Words:PreferencesDialog2Nepodporovan sbor RTF. Not a supported RTF file.Reader@Nie je mo~n zavriee sbor '%1'.Unable to close file '%1'.Reader8Nie je mo~n otvorie archv.Unable to open archive.Reader@Nie je mo~n otvorie sbor '%1'.Unable to open file '%1'.ReaderCtrl+Shift+DownCtrl+Shift+Down SceneListCtrl+Shift+Up Ctrl+Shift+Up SceneList FilterFilter SceneList,Skrye zoznam scn (%1)Hide scene list (%1) SceneList&Posune scny nadolMove Scenes Down SceneList&Posune scny nahorMove Scenes Up SceneList6Zmenie ve>kose zoznamu scnResize scene list SceneListShift+F4Shift+F4 SceneList2Zobrazie zoznam scn (%1)Show scene list (%1) SceneList&Prepne zoznam scnToggle Scene List SceneListPrednastavenDefaultSession&Spravovae... &Manage...SessionManager&Nov...&New...SessionManagerDuplikovaeCloneSessionManager$Duplikovae relciu Clone SessionSessionManagerCtrl+Shift+M Ctrl+Shift+MSessionManagerCtrl+Shift+N Ctrl+Shift+NSessionManager ZmazaeDeleteSessionManager0Vymazae vybran relciu?Delete selected session?SessionManager"Spravovae relcieManage SessionsSessionManagerNovNewSessionManagerNov relcia New SessionSessionManager OtzkaQuestionSessionManagerPremenovaeRenameSessionManager$Premenovae relciuRename SessionSessionManagerR&elcie S&essionsSessionManagerNzov relcie: Session name:SessionManagerPrep teSorrySessionManagerPrepne na Switch ToSessionManagerNPo~adovan nzov relcie sa u~ pou~va.-The requested session name is already in use.SessionManagerVy istieClear ShortcutEdit*Obnovie prednastavenReset to Default ShortcutEditSkratky: Shortcut: ShortcutEdit akajte prosm Please Wait SmartQuote2Nahrdzanie vodzoviek...Replacing quotation marks... SmartQuote&Pridae&Add SpellChecker&Zmenie&Change SpellChecker&Ignorovae&Ignore SpellCheckerZ&menie vaetko C&hange All SpellChecker ZruaieCancel SpellCheckerZmenie na: Change to: SpellChecker$Kontrola pravopisuCheck Spelling SpellChecker*Kontrola pravopisu...Checking spelling... SpellChecker"I&gnorovae vaetko I&gnore All SpellChecker2Nenachdza sa v slovnku:Not in dictionary: SpellChecker akajte prosm Please wait SpellChecker:Kontrola pravopisu ukon en. Spell check complete. SpellCheckerVaetky symboly All symbols SymbolsDialogPodrobnostiDetails SymbolsDialog Vlo~ieInsert SymbolsDialog Nzov:Name: SymbolsDialog0Posledn pou~it symbolyRecently used symbols SymbolsDialogSymbolySymbols SymbolsDialog BlokyBlocks SymbolsModelSkriptyScripts SymbolsModelBez nzvu %1 Untitled %1Themepixelov pixels ThemeDialog1,5 riadka 1.5 Lines ThemeDialogPozadie Background ThemeDialogNa stredCentered ThemeDialog Farba:Color: ThemeDialogDvojitDouble ThemeDialog Psmo:Font: ThemeDialogPopredie Foreground ThemeDialogObrzok:Image: ThemeDialog(Odsadie prv riadok:Indent First Line: ThemeDialogZarovnae v>avoLeft ThemeDialogRiadkovanie Line Spacing ThemeDialog Okraj:Margin: ThemeDialog Chybne napsan: Misspelled: ThemeDialogUpravie tmu Modify Theme ThemeDialog Nzov:Name: ThemeDialog}iadny obrzokNo Image ThemeDialogNeprieh>adnoseOpacity ThemeDialogOdsadenie:Padding: ThemeDialog0Odstupy medzi odstavcamiParagraph Spacing ThemeDialogPixelov nad: Pixels Above: ThemeDialogPixelov pod: Pixels Below: ThemeDialogPozciaPosition ThemeDialogProporcionlne Proportional ThemeDialogOdstrnieRemove ThemeDialogZarovnae vpravoRight ThemeDialogZaoblenie: Rounding: ThemeDialogZmenaieScaled ThemeDialogJednoduchSingle ThemeDialogVe>kose:Size: ThemeDialogOdstupySpacings ThemeDialogRoztiahnue Stretched ThemeDialogTextText ThemeDialogNezvy ajn kUdle aeastnch figliarskych at>ov u ia pri ktovanom st Vhu m:kveho koHa ob~ierae v aie kusy kry. QWX nie je BMX. +The quick brown fox jumps over the lazy dog ThemeDialogDla~diceTiled ThemeDialogTyp:Type: ThemeDialogPribl~ieZoomed ThemeDialogxTma s tmto nzvom u~ existuje. Prosm, zadajte nov nzov:?A theme already exists with that name. Please enter a new name: ThemeManager PridaeAdd ThemeManagerZavrieeClose ThemeManagerExportovaeExport ThemeManagerExportovae tmu Export Theme ThemeManagerImportovaeImport ThemeManagerImportovae tmu Import Theme ThemeManagerUpravieModify ThemeManager OtzkaQuestion ThemeManagerOdstrnieRemove ThemeManager.Odstrnie vybran tmu?Remove selected theme? ThemeManagerPrep teSorry ThemeManagerTmyThemes ThemeManager*Tmy (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManagerTmy (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer.<b>Znaky:</b> %L1 / %L2Characters: %L1 / %L2Timer$<b>Strany:</b> %L1Pages: %L1Timer(<b>Odstavce:</b> %L1Paragraphs: %L1Timer"<b>Slov:</b> %L1Words: %L1TimerUpozornenie:AlarmTimerOneskorenie:Delay:Timer ZmazaeDeleteTimerZmazae  asova ? Delete timer?TimerUpravieEditTimerHH:mm:ssHH:mm:ssTimerSprva:Memo:Timer OtzkaQuestionTimer(Nastavie oneskorenie Set DelayTimerNastavie  asSet TimeTimer as:Time:TimerTyp:Type:TimerHH:mm:ssHH:mm:ss TimerDisplay.Nebe~ia ~iadne  asova eNo timers running TimerDisplay%1 - %2%1 - %2 TimerManager+HH:mm:ss +HH:mm:ss TimerManager0Zruaie pravu  asova ov?Cancel editing timers? TimerManagerNovNew TimerManager OtzkaQuestion TimerManager Posledn pou~itRecent TimerManager asova eTimers TimerManager6Neo akvan koniec sboru. !Unexpectedly reached end of file. Tokenizer&%1 (Iba na  tanie)%1 (Read-Only)Window"%1% dennho cie>a%1% of daily goalWindow&O programe&AboutWindow Tu& n&BoldWindow&Zavriee&CloseWindow&Koprovae&CopyWindow$Z&menaie odsadenie&Decrease IndentWindowUpra&vie&EditWindow &Sbor&FileWindowN&jse...&Find...Window&Cel obrazovka &FullscreenWindow&Npoveda&HelpWindowK&urziv&ItalicWindow &Nov&NewWindow&Vypnut&OffWindow&Otvorie...&Open...WindowO&dstavec &ParagraphWindow&Prilepie&PasteWindow&Predvo>by...&Preferences...Window&Tla ... &Print...WindowS&kon ie&QuitWindow&Opakovae&RedoWindow&Premenovae... &Rename...WindowNa&hradie... &Replace...Window&Ulo~ie&SaveWindow&Nastavenia &SettingsWindow&Pravopis... &Spelling...WindowDoln i&ndex &SubscriptWindow&Tmy... &Themes...Window&Tri riadky &Three LinesWindow as&ova e... &Timers...Window&Nstroje&ToolsWindowPo&d iarknut &UnderlineWindow &Spe&UndoWindowjSbor '%1' je nova ako kpia vo vyrovnvacej pamti.#'%1' is newer than the cached copy.Window(Bez nzvu %1) (Untitled %1)WindowTJednoduch celoobrazovkov textov editor."A simple fullscreen word processorWindow O &Qt About &QtWindow,O programe FocusWriterAbout FocusWriterWindow$Zarovnae na st&red Align &CenterWindow$Zarovnae do bl&okuAlign &JustifyWindowZarovnae &v>avo Align &LeftWindow Zarovnae v&pravo Align &RightWindow$Jazyk p&rogramu...Application &Language...Window Znaky: %L1 / %L2Characters: %L1 / %L2WindowTPrva vyhraden &copy; 2008-%1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindow Ctrl+<Ctrl+<Window Ctrl+>Ctrl+>Window Ctrl+JCtrl+JWindow Ctrl+KCtrl+KWindow Ctrl+MCtrl+MWindow Ctrl+QCtrl+QWindow Ctrl+RCtrl+RWindowCtrl+Shift+A Ctrl+Shift+AWindowCtrl+Shift+V Ctrl+Shift+VWindow Ctrl+^Ctrl+^Window Ctrl+_Ctrl+_Window Ctrl+{Ctrl+{Window Ctrl+|Ctrl+|Window Ctrl+}Ctrl+}WindowVys&trihneCu&tWindowxNie je mo~n zapisovae do pohotovostnej vyrovnvacej pamti. Emergency cache is not writable.WindowEscEscWindowZa&meran text F&ocused TextWindowF11F11WindowF7F7WindowNjse &ala Find &NextWindow*Njse &predchdzajciFind Pre&viousWindowFo&rmtovanieFo&rmatWindow Vypne zameranie Focus OffWindow(Zamerae jeden riadokFocus One LineWindow Zamerae odstavecFocus ParagraphWindow$Zamerae tri riadkyFocus Three LinesWindowFocusWriter FocusWriterWindowTProgram FocusWriter nebol riadne ukon en.&FocusWriter was not shut down cleanly.Window$Z&v aie odsadenieI&ncrease IndentWindow&Bl&ok z>ava dopravaLe&ft to Right BlockWindow*Na tavanie nastavenLoading settingsWindow$Na tavanie zvukovLoading soundsWindowNa tavanie tmLoading themesWindowM&inimalizovae M&inimizeWindow"Spravovae relcieManage SessionsWindowNov relcia New SessionWindowJeden &riadok One &LineWindowOtvorie sbor Open FileWindowOtvranie %1 Opening %1Window*Prepsae nova sbor?Overwrite newer file?WindowStrany: %L1 Pages: %L1WindowOdstavce: %L1Paragraphs: %L1Window4Prilepie &bez formtovaniaPaste &UnformattedWindowjUistite sa, ~e komponent SDL_mixer je nainatalovan. -Please make sure that SDL_mixer is installed.Window OtzkaQuestionWindowRVydan pod licenciou <a href=%1>GPL 3</a>/Released under the GPL 3 licenseWindow"Optovne &na taeReloa&dWindow>Obnovie z vyrovnvacej pamti. !Restore from the emergency cache?Window&B&lok sprava do>avaRi&ght to Left BlockWindowS&ymboly... S&ymbols...WindowUlo~ie &ako... Save &As...WindowU&lo~ie vaetko Save A&llWindowUlo~ie zmeny? Save changes?WindowVybrae &vaetko Select &AllWindowVybrae &scnu Select &SceneWindow,Zobrazie &ikony ponukyShow &Menu IconsWindow2Zobrazie p&anel nstrojov Show &ToolbarWindow.Inteligentn &vodzovky Smart &QuotesWindowJNiektor sbory nemohli bye otvoren.Some files could not be opened.Window\Niektor sbory boli otvoren iba na  tanie. !Some files were opened Read-Only.WindowtNiektor sbory neboli podporovan a nemohli bye otvoren.4Some files were unsupported and could not be opened.WindowPr&e iarknutStri&kethroughWindowHorn inde&x Sup&erscriptWindow,Prepne na dokument %1Switch to Document %1Window0Prepne na prv dokumentSwitch to First DocumentWindow8Prepne na posledn dokumentSwitch to Last DocumentWindow2Prepne na ala dokumentSwitch to Next DocumentWindowDPrepne na predchdzajci dokumentSwitch to Previous DocumentWindowLTextov sbory (%1);;Vaetky sbory (*)Text Files (%1);;All Files (*)WindowXNie je mo~n na tae zvuky psacieho stroja.!Unable to load typewriter sounds.WindowBez nzvuUntitledWindow,Aktualizovae &dokumentUpdate &DocumentWindow&Aktualizovae &vberUpdate &SelectionWindowVPou~it pod licenciou <a href=%1>LGPL 3</a>,Used under the LGPL 3 licenseWindow`Pou~va ikony zo sady ikon <a href=%1>Oxygen</a>4Uses icons from the Oxygen icon themeWindowUpozornenieWarningWindowSlov: %L1 Words: %L1Windowfocuswriter-1.4.5/translations/focuswriter_sk.ts000066400000000000000000002247051231434177300222560ustar00rootroot00000000000000 Alert Close (%1) Zavrieť (%1) Collapse Zbaliť Expand Rozbaliť AlertLayer Dismiss Alert Zrušiť upozornenie Ctrl+D Ctrl+D Document Sorry Prepáčte Unable to save '%1'. Nedá sa uložiť '%1'. Save File As Uložiť súbor ako Unable to overwrite '%1'. Nedá sa prepísať '%1'. Rename File Premenovať súbor Unable to rename '%1'. Nedá sa premenovať '%1'. Reload File Opätovne načítať súbor Reload the file %1 from disk? Opätovne načítať súbor %1 z disku? All unsaved changes will be lost. Všetky neuložené zmeny budú stratené. Reload Opätovne načítať Plain Text (*.txt) Obyčajný text (*.txt) Question Otázka Saving as plain text will discard all formatting. Discard formatting? Uloženie ako obyčajný text odstráni formátovanie. Chcete zrušiť formátovanie? OpenDocument Text (*.odt) OpenDocument Text (*.odt) Rich Text (*.rtf) Rich Text (*.rtf) All Files (*) Všetky súbory (*) DocumentWatcher File Changed Súbor bol zmenený The file %1 was changed by another program. Súbor %1 bol zmenený v inom programe. Do you want to reload the file? Chcete súbor opätovne načítať? Reload Opätovne načítať Ignore Ignorovať File Deleted Súbor bol vymazaný The file %1 was deleted by another program. Súbor %1 bol vymazaný iným programom. Do you want to save or close the file? Chcete súbor uložiť alebo zavrieť? FindDialog Search for: Vyhľadať: Replace with: Nahradiť: Ignore case Ignorovať veľkosť začiatočných písmen Whole words only Iba celé slová Regular expressions Regulárne výrazy Search up Hľadať smerom hore Search down Hľadať smerom dole &Find &Nájsť &Replace Na&hradiť Replace &All Nahradiť &všetko Find Nájsť Replace Nahradiť Replace %n instance(s)? Nahradiť %n výskyt? Nahradiť %n výskyty? Nahradiť %n výskytov? Question Otázka Sorry Prepáčte Phrase not found. Výraz nebol nájdený. Highlighter Add Pridať Check Spelling... Kontrola pravopisu... (No suggestions found) (Žiadne návrhy neboli nájdené) ImageButton Open Image Otvoriť obrázok Images(%1) Obrázky(%1) LocaleDialog Select application language: Výber jazyka programu: <System Language> <Predvolený jazyk systému> Note Poznámka Please restart this application for the change in language to take effect. K zmene jazyka dôjde po reštarte programu. PreferencesDialog Preferences Nastavenia General Všeobecné Statistics Štatistika Toolbar Panel nástrojov Spell Checking Kontrola pravopisu Select Dictionary Výber slovníka Sorry Prepáčte Unable to open archive. Archív nie je možné otvoriť. Unable to read archive metadata. Nie je možné čítať metadáta archívu. The archive does not contain a usable dictionary. Archív neobsahuje použiteľný slovník. Unable to open file '%1'. Nie je možné otvoriť súbor '%1'. Unable to close file '%1'. Nie je možné zavrieť súbor '%1'. Question Otázka Shortcuts Skratky One or more shortcuts conflict. Do you wish to proceed? Bol zistený konflikt jednej alebo viacerých skratiek. Chcete pokračovať? The dictionary "%1" already exists. Do you want to replace it? Slovník "%1" už existuje. Chcete ho nahradiť? Daily Goal Denný cieľ None Žiadny Minutes: Minút: Words: Slov: Editing Úpravy Always vertically center Vždy zarovnať vertikálne na stred Block insertion cursor Kurzor vkladania bloku Smooth fonts Jemné písma Typewriter sounds Zvuk písacieho stroja Smart quotes: Inteligentné úvodzovky: Double Dvojité Single Jednoduché Scenes Scény Divider: Oddeľovač: Saving Ukladanie Automatically save changes Automaticky ukladať zmeny Remember cursor position Zapamätať si pozíciu kurzora Contents Obsah Word count Počet slov Page count Počet strán Paragraph count Počet odstavcov Character count Počet znakov Page Size Veľkosť strany Characters: Znakov: Paragraphs: Odstavcov: Word Count Algorithm Algoritmus počítania slov Detect word boundaries Rozoznávanie hraníc slov Divide character count by six Deliť počet znakov šiestimi Style Štýl Icons Only Iba ikony Text Only Iba text Text Alongside Icons Text vedľa ikon Text Under Icons Text pod ikonami Text Position: Pozícia textu: Actions Činnosti Move Up Posunúť nahor Move Down Posunúť nadol Add Separator Pridať oddeľovač Command Príkaz Shortcut Skratka Action Činnosť Check spelling as you type Kontrola pravopisu počas písania Ignore words in UPPERCASE Ignorovať slová písané VEĽKÝMI PÍSMENAMI Ignore words with numbers Ignorovať slová obsahujúce čísla Language Jazyk Add Pridať Remove Odstrániť Personal Dictionary Osobný slovník Reader Not a supported RTF file. Nepodporovaný súbor RTF. Unable to open archive. Nie je možné otvoriť archív. Unable to open file '%1'. Nie je možné otvoriť súbor '%1'. Unable to close file '%1'. Nie je možné zavrieť súbor '%1'. SceneList Ctrl+Shift+Down Ctrl+Shift+Down Move Scenes Up Posunúť scény nahor Ctrl+Shift+Up Ctrl+Shift+Up Toggle Scene List Prepnúť zoznam scén Shift+F4 Shift+F4 Show scene list (%1) Zobraziť zoznam scén (%1) Hide scene list (%1) Skryť zoznam scén (%1) Filter Filter Move Scenes Down Posunúť scény nadol Resize scene list Zmeniť veľkosť zoznamu scén Session Default Prednastavený SessionManager Manage Sessions Spravovať relácie S&essions R&elácie New Nová Rename Premenovať Clone Duplikovať Delete Zmazať Switch To Prepnúť na New Session Nová relácia Clone Session Duplikovať reláciu Rename Session Premenovať reláciu Question Otázka Delete selected session? Vymazať vybranú reláciu? Session name: Názov relácie: Sorry Prepáčte The requested session name is already in use. Požadovaný názov relácie sa už používa. &New... &Nová... Ctrl+Shift+N Ctrl+Shift+N &Manage... &Spravovať... Ctrl+Shift+M Ctrl+Shift+M ShortcutEdit Clear Vyčistiť Reset to Default Obnoviť prednastavené Shortcut: Skratky: SmartQuote Replacing quotation marks... Nahrádzanie úvodzoviek... Please Wait Čakajte prosím SpellChecker Check Spelling Kontrola pravopisu &Add &Pridať &Ignore &Ignorovať I&gnore All I&gnorovať všetko &Change &Zmeniť C&hange All Z&meniť všetko Not in dictionary: Nenachádza sa v slovníku: Change to: Zmeniť na: Checking spelling... Kontrola pravopisu... Cancel Zrušiť Please wait Čakajte prosím Spell check complete. Kontrola pravopisu ukončená. SymbolsDialog Symbols Symboly Recently used symbols Posledné použité symboly All symbols Všetky symboly Details Podrobnosti Name: Názov: Insert Vložiť SymbolsModel Blocks Bloky Scripts Skripty Theme Untitled %1 Bez názvu %1 ThemeDialog Modify Theme Upraviť tému Name: Názov: Background Pozadie No Image Žiadny obrázok Tiled Dlaždice Centered Na stred Stretched Roztiahnuť Scaled Zmenšiť Zoomed Priblížiť Remove Odstrániť Type: Typ: Color: Farba: Image: Obrázok: Foreground Popredie Opacity Nepriehľadnosť pixels pixelov Left Zarovnať vľavo Right Zarovnať vpravo Position Pozícia Size: Veľkosť: Rounding: Zaoblenie: Margin: Okraj: Padding: Odsadenie: Text Text Font: Písmo: Misspelled: Chybne napísané: Spacings Odstupy Line Spacing Riadkovanie Single Jednoduché 1.5 Lines 1,5 riadka Double Dvojité Proportional Proporcionálne Paragraph Spacing Odstupy medzi odstavcami Indent First Line: Odsadiť prvý riadok: Pixels Above: Pixelov nad: Pixels Below: Pixelov pod: The quick brown fox jumps over the lazy dog Nezvyčajné kŕdle šťastných figliarskych ďatľov učia pri kótovanom ústí Váhu mĺkveho koňa obžierať väčšie kusy kôry. QWX nie je BMX. ThemeManager Themes Témy Add Pridať Modify Upraviť Remove Odstrániť Import Importovať Export Exportovať Close Zavrieť Question Otázka Remove selected theme? Odstrániť vybranú tému? Import Theme Importovať tému Themes (*.fwtz *.theme) Témy (*.fwtz *.theme) Themes (*.fwtz) Témy (*.fwtz) Sorry Prepáčte A theme already exists with that name. Please enter a new name: Téma s týmto názvom už existuje. Prosím, zadajte nový názov: Export Theme Exportovať tému Timer <b>%1</b> - %2 <b>%1</b> - %2 Question Otázka Delete timer? Zmazať časovač? <b>Words:</b> %L1 <b>Slová:</b> %L1 <b>Pages:</b> %L1 <b>Strany:</b> %L1 <b>Paragraphs:</b> %L1 <b>Odstavce:</b> %L1 <b>Characters:</b> %L1 / %L2 <b>Znaky:</b> %L1 / %L2 Set Delay Nastaviť oneskorenie Set Time Nastaviť čas Delay: Oneskorenie: Time: Čas: HH:mm:ss HH:mm:ss Alarm Upozornenie: Type: Typ: Memo: Správa: Edit Upraviť Delete Zmazať TimerDisplay HH:mm:ss HH:mm:ss No timers running Nebežia žiadne časovače TimerManager Timers Časovače New Nový Recent Posledný použitý Question Otázka Cancel editing timers? Zrušiť úpravu časovačov? +HH:mm:ss +HH:mm:ss %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. Neočakávaný koniec súboru. Window Loading themes Načítavanie tém Loading sounds Načítavanie zvukov Untitled Bez názvu Open File Otvoriť súbor About FocusWriter O programe FocusWriter FocusWriter FocusWriter A simple fullscreen word processor Jednoduchý celoobrazovkový textový editor. Copyright &copy; 2008-%1 Graeme Gott Práva vyhradené &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Vydané pod licenciou <a href=%1>GPL 3</a> Uses icons from the <a href=%1>Oxygen</a> icon theme Používa ikony zo sady ikon <a href=%1>Oxygen</a> Used under the <a href=%1>LGPL 3</a> license Použité pod licenciou <a href=%1>LGPL 3</a> Characters: %L1 / %L2 Znaky: %L1 / %L2 Pages: %L1 Strany: %L1 Paragraphs: %L1 Odstavce: %L1 Words: %L1 Slová: %L1 %1% of daily goal %1% denného cieľa Opening %1 Otváranie %1 Question Otázka Save changes? Uložiť zmeny? (Untitled %1) (Bez názvu %1) Switch to Next Document Prepnúť na ďalší dokument Switch to Previous Document Prepnúť na predchádzajúci dokument Switch to First Document Prepnúť na prvý dokument Switch to Last Document Prepnúť na posledný dokument Switch to Document %1 Prepnúť na dokument %1 Loading settings Načítavanie nastavení Emergency cache is not writable. Nie je možné zapisovať do pohotovostnej vyrovnávacej pamäti. Warning Upozornenie FocusWriter was not shut down cleanly. Program FocusWriter nebol riadne ukončený. Restore from the emergency cache? Obnoviť z vyrovnávacej pamäti. Some files could not be opened. Niektoré súbory nemohli byť otvorené. Some files were opened Read-Only. Niektoré súbory boli otvorené iba na čítanie. Text Files (%1);;All Files (*) Textové súbory (%1);;Všetky súbory (*) '%1' is newer than the cached copy. Súbor '%1' je novší ako kópia vo vyrovnávacej pamäti. Overwrite newer file? Prepísať novší súbor? Unable to load typewriter sounds. Nie je možné načítať zvuky písacieho stroja. Please make sure that SDL_mixer is installed. Uistite sa, že komponent SDL_mixer je nainštalovaný. %1 (Read-Only) %1 (Iba na čítanie) &File &Súbor &New &Nový &Open... &Otvoriť... Reloa&d Opätovne &načítať &Save &Uložiť Save &As... Uložiť &ako... &Rename... &Premenovať... Save A&ll U&ložiť všetko Manage Sessions Spravovať relácie New Session Nová relácia &Print... &Tlač... &Close &Zavrieť &Quit S&končiť Ctrl+Q Ctrl+Q &Edit Upra&viť &Undo &Späť &Redo &Opakovať Cu&t Vys&trihnúť &Copy &Kopírovať &Paste &Prilepiť Paste &Unformatted Prilepiť &bez formátovania Ctrl+Shift+V Ctrl+Shift+V Select &All Vybrať &všetko Select &Scene Vybrať &scénu Ctrl+Shift+A Ctrl+Shift+A Fo&rmat Fo&rmátovanie &Bold Tu&čné &Italic K&urzivá &Underline Po&dčiarknuté Stri&kethrough Pr&ečiarknuté Ctrl+K Ctrl+K Sup&erscript Horný inde&x Ctrl+^ Ctrl+^ &Subscript Dolný i&ndex Ctrl+_ Ctrl+_ Align &Left Zarovnať &vľavo Ctrl+{ Ctrl+{ Align &Center Zarovnať na st&red Ctrl+| Ctrl+| Align &Right Zarovnať v&pravo Ctrl+} Ctrl+} Align &Justify Zarovnať do bl&oku Ctrl+J Ctrl+J &Decrease Indent Z&menšiť odsadenie Ctrl+< Ctrl+< I&ncrease Indent Z&väčšiť odsadenie Ctrl+> Ctrl+> Le&ft to Right Block Bl&ok zľava doprava Ri&ght to Left Block B&lok sprava doľava &Tools &Nástroje &Find... Ná&jsť... Find &Next Nájsť &ďalší Find Pre&vious Nájsť &predchádzajúci &Replace... Na&hradiť... Ctrl+R Ctrl+R Smart &Quotes Inteligentné ú&vodzovky Update &Document Aktualizovať &dokument Update &Selection Aktualizovať &výber &Spelling... &Pravopis... F7 F7 &Timers... Čas&ovače... S&ymbols... S&ymboly... &Settings &Nastavenia Show &Toolbar Zobraziť p&anel nástrojov Show &Menu Icons Zobraziť &ikony ponuky F&ocused Text Za&meraný text &Fullscreen &Celá obrazovka F11 F11 Esc Esc M&inimize M&inimalizovať Ctrl+M Ctrl+M &Themes... &Témy... &Preferences... &Predvoľby... Focus Off Vypnúť zameranie Focus One Line Zamerať jeden riadok Focus Three Lines Zamerať tri riadky &Paragraph O&dstavec Focus Paragraph Zamerať odstavec &Help &Nápoveda Application &Language... Jazyk p&rogramu... Some files were unsupported and could not be opened. Niektoré súbory neboli podporované a nemohli byť otvorené. &Off &Vypnuté One &Line Jeden &riadok &Three Lines &Tri riadky &About &O programe About &Qt O &Qt focuswriter-1.4.5/translations/focuswriter_sr.qm000066400000000000000000000755401231434177300222550ustar00rootroot00000000000000gZ?AZiZiZi Zi0ZiDdZ% [@[I\@\IF\*_ >Qc4V{ O0Ϩ+%[^3]b8~gz.0n$^0n'P2<5qE+tiA^l/g4\"n0S^9 "c!S ~Q(aqief]XzXGB:J_L6M1UfOf3R] ?.Kc_"V'aF%~eI_`(], 4U91^C'w=#=lJ;D)'F$[WNl|%RDᑞ6 sJzN- Eu`~h( W@E)>M@DZ*luz^<Ԏ,NP3Z#7 dI46Z9WWXXGXtXXYyY+Y,Z-Z-(GB,-,Grbf%m%9M&l~g<VȞnZhDjvB:)44VAa$}:RvB6 IC7O}az:D4EChQY/TK>5t5t FF>5FCH5/G>%(N%'N%?2TKD<KutlrEM.d%ݲ j'csRscAW9ULt/[25<8Nh:VEIIL%JIHZ[+gO|w ;p>}mG4jP]Sd %% ' O?C.C`$1 \~PE >e 5 "2o %^ Y b v Y z| zU .3$ JR W/ W`p 8$ 0F ·I .^ Ń +IW :k: ;ff d8 eEW 3K q^"W t, \g ʀs6 ˔S ˼C6t z_ Bj f  V3 c7 ^* N # L., f(# iqo w98Z xj5e {"ufO Nb  Ft ʫ ʫ ʫ ʫ/I ʫC ʫHt ʫK ʫc7  A)w pUm : E` cH cIq >cJ> O 6i~ >R> J> Z$9G eH iN!a tfe u 0 sQ AL C=  $ ( tw 1] \ 7 sN3 Dl \7 8jR DYX DY-S DY- DZY: ^3 noG uuN {N'< Pn I < ޘ Zc! SniE;NltrAcf *cd^kMcf4jp2Uj+A  L9+NW; e!hiTsTI)-z xC" pioL0B2>@8 (%1) Close (%1)Alert >;0?ACollapseAlert@>H8@8ExpandAlert Ctrl+DCtrl+D AlertLayer 410F8 C?>7>@5Z5 Dismiss Alert AlertLayer!28 D0X;>28 (*) All Files (*)DocumentR!25 =5A0GC20=5 ?@><5=5 [5 18B8 873C1Y5=5.!All unsaved changes will be lost.Document4OpenDocument B5:AB (*.odt)OpenDocument Text (*.odt)Document$'8AB B5:AB (*.txt)Plain Text (*.txt)Document 8B0Z5QuestionDocument>=>2> CG8B0XReloadDocument$>=>2> CG8B0X D0X; Reload FileDocument>>=>2> CG8B0X D0X; %1 A0 48A:0?Reload the file %1 from disk?Document@58<5=CX D0X; Rename FileDocument.1>30[5=8 B5:AB (*.rtf)Rich Text (*.rtf)Document !0GC20X D0X; :0> Save File AsDocument'C20Z5 :0> >18G0= B5:AB [5 >410F8B8 A20 >1;8:>20Z0. 410F8 >1;8:>20Z5?ESaving as plain text will discard all formatting. Discard formatting?Document728=8B5SorryDocument:=5<>3C[5=> 40 ?@51@8H5 '%1'.Unable to overwrite '%1'.Document<=5<>3C[5=> ?@58<5=>20Z5 '%1'.Unable to rename '%1'.Document0=5<>3C[5=> GC20Z5 '%1'.Unable to save '%1'.DocumentH0 ;8 65;8B5 40 ?>=>2> CG8B0B5 D0X;?Do you want to reload the file?DocumentWatcherX0 ;8 65;8B5 40 A0GC20B5 8;8 70B2>@8B5 D0X;?&Do you want to save or close the file?DocumentWatcher@><5Z5= D0X; File ChangedDocumentWatcher1@8A0= D0X; File DeletedDocumentWatcher0=5<0@8IgnoreDocumentWatcher>=>2> CG8B0XReloadDocumentWatcherL$0X; %1 X5 ?@><5Z5= C 4@C3>< ?@>3@0<C.+The file %1 was changed by another program.DocumentWatcherB$0X; %1 X5 >1@8A0> 4@C38 ?@>3@0<.+The file %1 was deleted by another program.DocumentWatcher&@>=0R8&Find FindDialog&0<5=8&Replace FindDialog@>=0R8Find FindDialog3=>@8H8 A;CG0X Ignore case FindDialog*$@070 =8X5 ?@>=0R5=0.Phrase not found. FindDialog 8B0Z5Question FindDialog  53C;0@=8 87@078Regular expressions FindDialog 0<5=8Replace FindDialog&0<5=8B5 %n ?@8<5@?(0<5=8B5 %n ?@8<5@0?(0<5=8B5 %n ?@8<5@0?Replace %n instance(s)? FindDialog0<5=8 &A25 Replace &All FindDialog0<5=8 A0: Replace with: FindDialog@5B@068 4>;5 Search down FindDialog@5B@030 70: Search for: FindDialog@5B@068 3>@5 Search up FindDialog728=8B5Sorry FindDialog!0<> F5;5 @5G8Whole words only FindDialog2(57 ?@>=0R5=5 AC35AB8X5)(No suggestions found) Highlighter >40XAdd Highlighter&@>25@8 ?@02>?8A...Check Spelling... Highlighter!;8:5(%1) Images(%1) ImageButtonB2>@8 A;8:C Open Image ImageButton"<!8AB5<A:8 X578:> LocaleDialog0?><5=0Note LocaleDialogt>;8<> @5AB0@BCXB5 ?@>3@0< 40 18 A5 2845;0 ?@><5=0 X578:0.JPlease restart this application for the change in language to take effect. LocaleDialog.4015@8 X578: ?@>3@0<0:Select application language: LocaleDialog :F8X0ActionPreferencesDialog :F8X5ActionsPreferencesDialog >40XAddPreferencesDialog>40X @07420X0G Add SeparatorPreferencesDialog,#25: 25@B8:0;=8 F5=B0@Always vertically centerPreferencesDialog0CB><0BA:8 GC20X ?@><5=5Automatically save changesPreferencesDialog0;>:8@0X C<5B0Z5 :C@A>@0Block insertion cursorPreferencesDialog@>X :0@0:B5@0Character countPreferencesDialog0@0:B5@8: Characters:PreferencesDialog:@>25@8B5 ?@02>?8A 4>: :CF0B5Check spelling as you typePreferencesDialog><0=40CommandPreferencesDialog!04@60XContentsPreferencesDialog=52=8 F8Y Daily GoalPreferencesDialog05B5:B>20Z5 3@0=8F5 @5G8Detect word boundariesPreferencesDialog:>45;8 1@>X :0@0:B5@0 A0 H5ABDivide character count by sixPreferencesDialog 0745;=8::Divider:PreferencesDialog C?;8DoublePreferencesDialog 7<5=5EditingPreferencesDialog ?HB5GeneralPreferencesDialog!0<> 8:>=5 Icons OnlyPreferencesDialog@0=5<0@8 @5G8 A0  !Ignore words in UPPERCASEPreferencesDialog40=5<0@8 @5G8 A0 1@>X528<0Ignore words with numbersPreferencesDialog 578:LanguagePreferencesDialog8=CB8:Minutes:PreferencesDialog><5@8 4>;5 Move DownPreferencesDialog><5@8 3>@5Move UpPreferencesDialog8X540=NonePreferencesDialogt540= 8;8 28H5 :>D;8:B ?@5G8F0. 0 ;8 65;8B5 40 =0AB028B5?7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialog5;8G8=0 AB@0=5 Page SizePreferencesDialog@>X AB@0=0 Page countPreferencesDialog@>X ?0@03@0D0Paragraph countPreferencesDialog0@03@0D8: Paragraphs:PreferencesDialog8G=8 @5G=8:Personal DictionaryPreferencesDialog>45H020Z0 PreferencesPreferencesDialog 8B0Z5QuestionPreferencesDialog00?0<B8 ?>78F8XC :C@A>@0Remember cursor positionPreferencesDialog #:;>=8RemovePreferencesDialog 'C20Z5SavingPreferencesDialog !F5=5ScenesPreferencesDialog4015@8 @5G=8:Select DictionaryPreferencesDialog@5G8F0ShortcutPreferencesDialog@5G8F5 ShortcutsPreferencesDialog 548=8SinglePreferencesDialog0<5B=8 F8B0B8: Smart quotes:PreferencesDialog#<5:H0X D>=B>25 Smooth fontsPreferencesDialog728=8B5SorryPreferencesDialog"@>25@0 ?@02>?8A0Spell CheckingPreferencesDialog!B0B8AB8:0 StatisticsPreferencesDialog 73;54StylePreferencesDialog""5:AB ?>@54 8:>=0Text Alongside IconsPreferencesDialog!0<> B5:AB Text OnlyPreferencesDialog >78F8X0 B5:AB0:Text Position:PreferencesDialog""5:AB 8A?>4 8:>=0Text Under IconsPreferencesDialogD@E820 =5 A04@68 C>18G0X5= @5G=8:.1The archive does not contain a usable dictionary.PreferencesDialogj 5G=8: "%1" 25[ ?>AB>X8. 0 ;8 65;8B5 40 30 70<5=8B5?>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialog"@0:0 0;0B0ToolbarPreferencesDialog$2C: ?8A0[5 <0H8=5Typewriter soundsPreferencesDialogB=5<>3C[5=> 70B20@0Z5 D0X;0 '%1'.Unable to close file '%1'.PreferencesDialog8=5<>3C[5=> >B20@0Z5 0@E825.Unable to open archive.PreferencesDialog@=5<>3C[5=> >B20@0Z5 D0X;0 '%1'.Unable to open file '%1'.PreferencesDialogR=5<>3C[5=> G8B0Z5 <5B0?>40B0:0 C 0@E828. Unable to read archive metadata.PreferencesDialog@>X 0;B>@8B0<0Word Count AlgorithmPreferencesDialog@>X @5G8 Word countPreferencesDialog  5G8:Words:PreferencesDialog,8X5 ?>4@60= RTF D0X;.Not a supported RTF file.ReaderB=5<>3C[5=> 70B20@0Z5 D0X;0 '%1'.Unable to close file '%1'.Reader8=5<>3C[5=> >B20@0Z5 0@E825.Unable to open archive.ReaderB=5<>3C[5=> >B20@0Z5 D0X;0 '%1'.Unable to open file '%1'.ReaderCtrl+Shift+DownCtrl+Shift+Down SceneListCtrl+Shift+Up Ctrl+Shift+Up SceneList $8;B5@Filter SceneList.!0:@8X ;8ABC AF5=0 (%1)Hide scene list (%1) SceneList"><5@8 AF5=5 4>;5Move Scenes Down SceneList"><5@8 AF5=5 3>@5Move Scenes Up SceneList8@><5=8 25;8G8=C ;8AB5 AF5=0Resize scene list SceneListShift+F4Shift+F4 SceneList.>:068 ;8ABC AF5=0 (%1)Show scene list (%1) SceneList4#:YCG8/8A:YCG8 ;8ABC AF5=0Toggle Scene List SceneList>4@07C<520=>DefaultSession&#?@02Y0X... &Manage...SessionManager&>20...&New...SessionManager;>=8@0XCloneSessionManager;>=8@0X A5A8XC Clone SessionSessionManagerCtrl+Shift+M Ctrl+Shift+MSessionManagerCtrl+Shift+N Ctrl+Shift+NSessionManager71@8H8DeleteSessionManager071@8H8 >401@0=C A5A8XC?Delete selected session?SessionManager"#?@02Y0X A5A8X0<0Manage SessionsSessionManager>28NewSessionManager>20 A5A8X0 New SessionSessionManager 8B0Z5QuestionSessionManager@58<5=CXRenameSessionManager @58<5=CX A5A8XCRename SessionSessionManager!&5A8X5 S&essionsSessionManager<5 A5A8X5: Session name:SessionManager728=8B5SorrySessionManager@510F8 =0 Switch ToSessionManagerN0EB520=> 8<5 A5A8X5 X5 25[ C C?>B@518.-The requested session name is already in use.SessionManager G8AB8Clear ShortcutEdit0 5A5BCX =0 ?>4@07C<520=>Reset to Default ShortcutEdit@5G8F0: Shortcut: ShortcutEdit >;8<> A0G5:0XB5 Please Wait SmartQuote&0<5=0 =02>4=8:0...Replacing quotation marks... SmartQuote &>40X&Add SpellChecker&@><5=8&Change SpellChecker&0=5<0@8&Ignore SpellChecker&@><5=8 A25 C&hange All SpellChecker B:068Cancel SpellChecker@><5=8 =0: Change to: SpellChecker @>25@8 ?@02>?8ACheck Spelling SpellChecker&@>25@8 ?@02>?8A...Checking spelling... SpellChecker&0=5<0@8 A25 I&gnore All SpellChecker8X5 C @5G=8:C:Not in dictionary: SpellChecker >;8<> A0G5:0XB5 Please wait SpellChecker<@>25@0 ?@02>?8A0 X5 702@H5=0.Spell check complete. SpellChecker!28 A8<1>;8 All symbols SymbolsDialog 5B0Y8Details SymbolsDialog =A5@BInsert SymbolsDialog<5:Name: SymbolsDialog25402=> :>@8H[5=8 A8<1>;8Recently used symbols SymbolsDialog!8<1>;8Symbols SymbolsDialog;>:>28Blocks SymbolsModel!:@8?B5Scripts SymbolsModel57 =0A;>20 %1 Untitled %1Theme?8:A5;0 pixels ThemeDialog1.5 ;8=8X0 1.5 Lines ThemeDialog>7048=0 Background ThemeDialog&5=B@8@0=>Centered ThemeDialog >X0:Color: ThemeDialog C?;8Double ThemeDialog $>=B:Font: ThemeDialog@54Z8 ?;0= Foreground ThemeDialog !;8:0:Image: ThemeDialog*#2;0G5Z5 ?@25 ;8=8X5:Indent First Line: ThemeDialog52>Left ThemeDialog @>@54 Line Spacing ThemeDialog 28F0:Margin: ThemeDialog$>3@5H=> =0?8A0=>: Misspelled: ThemeDialog7<5=8 B5<C Modify Theme ThemeDialog<5:Name: ThemeDialog57 A;8:5No Image ThemeDialog5?@>78@=>ABOpacity ThemeDialog1;030Z5:Padding: ThemeDialog 0ACAParagraph Spacing ThemeDialog8:A5;0 87=04: Pixels Above: ThemeDialog8:A5;0 8A?>4: Pixels Below: ThemeDialog>78F8X0Position ThemeDialog@>?>@F8>=0;0= Proportional ThemeDialog #:;>=8Remove ThemeDialog 5A=>Right ThemeDialog0>:@C6820Z5: Rounding: ThemeDialog!:0;8@0=>Scaled ThemeDialog 540=Single ThemeDialog5;8G8=0:Size: ThemeDialog 07<0F8Spacings ThemeDialog 0H8@5=> Stretched ThemeDialog "5:ABText ThemeDialogN@70 A<5R0 ;8A8F0 A:0G5 ?@5:> ;5Z>3 ?A0+The quick brown fox jumps over the lazy dog ThemeDialog>?;>G0=>Tiled ThemeDialog @AB0:Type: ThemeDialogC<8@0=>Zoomed ThemeDialogr"5<0 25[ ?>AB>X8 A0 >28< 8<5=><. >;8<> C=5A8B5 =>2> 8<5:?A theme already exists with that name. Please enter a new name: ThemeManager >40XAdd ThemeManager0B2>@8Close ThemeManager 72578Export ThemeManager72578 B5<C Export Theme ThemeManager #2578Import ThemeManager#2578 B5<C Import Theme ThemeManager 7<5=8Modify ThemeManager 8B0Z5Question ThemeManager #:;>=8Remove ThemeManager*#:;>=8 >401@0=C B5<C?Remove selected theme? ThemeManager728=8B5Sorry ThemeManager"5<5Themes ThemeManager*"5<5 (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManager"5<5 (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer6<b>0@0:B5@8:</b> %L1 / %L2Characters: %L1 / %L2Timer$<b>!B@0=5:</b> %L1Pages: %L1Timer*<b>0@03@0D8:</b> %L1Paragraphs: %L1Timer <b> 5G8:</b> %L1Words: %L1Timer ;0@<AlarmTimer0HZ5Z5:Delay:Timer71@8H8DeleteTimer1@8H8 B0X<5@? Delete timer?Timer 7<5=8EditTimerHH:mm:ssHH:mm:ssTimer5<>@0=4C<:Memo:Timer 8B0Z5QuestionTimer>45A8 :0HZ5Z5 Set DelayTimer>45A8 2@5<5Set TimeTimer @5<5:Time:Timer @AB0:Type:TimerHH:mm:ssHH:mm:ss TimerDisplay,57 ?>:@5=CB>3 B0X<5@0No timers running TimerDisplay%1 - %2%1 - %2 TimerManager+HH:mm:ss +HH:mm:ss TimerManager,B:068 87<5=5 B0X<5@0?Cancel editing timers? TimerManager>28New TimerManager 8B0Z5Question TimerManager!:>@0HZ5Recent TimerManager"0X<5@8Timers TimerManager<5>G5:820=> AB830> :@0X D0X;0.!Unexpectedly reached end of file. Tokenizer&%1 (!0<> 70 G8B0Z5)%1 (Read-Only)Window&%1% >4 4=52=>3 F8Y0%1% of daily goalWindow& ?@>3@0<C&AboutWindow&>451Y0=>&BoldWindow&0B2>@8&CloseWindow&>?8@0X&CopyWindow&!<0Z8 C2;0G5Z5&Decrease IndentWindow&7<5=8&EditWindow &$0X;&FileWindow&@>=0R8...&Find...Window&C= 5:@0= &FullscreenWindow &><>[&HelpWindow&A:>H5=>&ItalicWindow &>28&NewWindow&A:YCG5=>&OffWindow&B2>@8...&Open...Window&0@03@0D &ParagraphWindow&0;5?8&PasteWindow&>45H020Z0...&Preferences...Window&(B0<?0X... &Print...Window&0?CAB8&QuitWindow&>=>2> C@048&RedoWindow&@58<5=CX... &Rename...Window&0<5=8... &Replace...Window&!0GC20X&SaveWindow&>45H020Z5 &SettingsWindow&@02>?8A... &Spelling...Window&=45:A &SubscriptWindow&T5<5... &Themes...Window&"@8 ;8=8X5 &Three LinesWindow&T0X<5@8... &Timers...Window &;0B8&ToolsWindow&>42CG5=> &UnderlineWindow&?>7>28&UndoWindowD'%1' X5 =>28X5 >4 :5H8@0=5 :>?8X5.#'%1' is newer than the cached copy.Window (57 =0A;>20 %1) (Untitled %1)WindowX54=>AB020= >1@0R820G B5:AB0 =0 ?C=>< 5:@0=C"A simple fullscreen word processorWindow  &Qt About &QtWindow, ?@>3@0<C FocusWriterAbout FocusWriterWindow&>@02=0X &=0 F5=B0@ Align &CenterWindow&>@02=0X &>1>AB@0=>Align &JustifyWindow>@02=0X &;52> Align &LeftWindow>@02=0X &45A=> Align &RightWindow$578: &?@>3@0<0...Application &Language...Window(0@0:B5@8: %L1 / %L2Characters: %L1 / %L2WindowHCopyright &copy; 2008-%1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindow Ctrl+<Ctrl+<Window Ctrl+>Ctrl+>Window Ctrl+JCtrl+JWindow Ctrl+KCtrl+KWindow Ctrl+MCtrl+MWindow Ctrl+QCtrl+QWindow Ctrl+RCtrl+RWindowCtrl+Shift+A Ctrl+Shift+AWindowCtrl+Shift+V Ctrl+Shift+VWindow Ctrl+^Ctrl+^Window Ctrl+_Ctrl+_Window Ctrl+{Ctrl+{Window Ctrl+|Ctrl+|Window Ctrl+}Ctrl+}Window A5&F8Cu&tWindow2#@35=B=8 :5H =8X5 C?8A82. Emergency cache is not writable.WindowEscEscWindow"$&>:CA8@0=8 B5:AB F&ocused TextWindowF11F11WindowF7F7Window @>=0R8 &A;545[5 Find &NextWindow$@>=0R8 ?@5&BE>4=>Find Pre&viousWindow$>&@<0BFo&rmatWindow($>:CA8@0Z5 8A:YCG5=> Focus OffWindow.$>:CA8@0Z5 X54=5 ;8=8X5Focus One LineWindow$$>:CA8@0X ?0@03@0DFocus ParagraphWindow*$>:CA8@0Z5 B@8 ;8=8X5Focus Three LinesWindowFocusWriter FocusWriterWindow@FocusWriter =8X5 70B2>@5= G8AB>.&FocusWriter was not shut down cleanly.Window"&>25[0X C2;0G5Z5I&ncrease IndentWindow&5&2> =0 45A=> 1;>:Le&ft to Right BlockWindow(#G8B020Z5 ?>45H020Z0Loading settingsWindow#G8B020Z5 72C:0Loading soundsWindow#G8B020Z5 B5<0Loading themesWindowM&8=8<87CX M&inimizeWindow"#?@02Y0X A5A8X0<0Manage SessionsWindow>20 A5A8X0 New SessionWindow54=0 &;8=8X0 One &LineWindowB2>@8 D0X; Open FileWindowOB20@0Z5 %1 Opening %1Window(@518H8 =>28X8 D0X;?Overwrite newer file?Window!B@0=5: %L1 Pages: %L1Window0@03@0D8: %L1Paragraphs: %L1Window*0;5?8 &=5D>@<0B8@0=>Paste &UnformattedWindow`>;8<> ?@>25@8B5 40 ;8 X5 SDL_<8:A5@ 8=AB0;8@0=.-Please make sure that SDL_mixer is installed.Window 8B0Z5QuestionWindowZ 50;87>20=> ?>4 <a href=%1>GPL 3</a> ;8F5=F></Released under the GPL 3 licenseWindow>=>&2> CG8B0XReloa&dWindow4@0[0Z5 87 C@35=B=>3 :5H0?!Restore from the emergency cache?Window&5&A=> =0 ;52> 1;>:Ri&ght to Left BlockWindow!&8<1>;8... S&ymbols...Window!0GC20X &:0>... Save &As...Window!0GC20X A&25 Save A&llWindow !0GC20X ?@><5=5? Save changes?Window4015@8 &A25 Select &AllWindow4015@8 &AF5=C Select &SceneWindow(>:068 &8:>=5 <5=8X0Show &Menu IconsWindow&>:068 &B@0:C 0;0B0 Show &ToolbarWindow0<5B=8 &F8B0B8 Smart &QuotesWindowL5:8 D0X;>28 =8AC <>3;8 18B8 >B2>@5=8.Some files could not be opened.WindowP5:8 D0X;>28 AC >B2>@5=8 A0<> 70 G8B0Z5.!Some files were opened Read-Only.Windowf5:8 D0X;>28 =8AC ?>4@60=8 8 =5 <>3C 18B8 >B2>@5=8.4Some files were unsupported and could not be opened.Window@5&F@B0=>Stri&kethroughWindow:A&?>=5=B Sup&erscriptWindow(@5R8 =0 4>:C<5=B %1Switch to Document %1Window,@5R8 =0 ?@28 4>:C<5=BSwitch to First DocumentWindow4@5R8 =0 ?>A;54Z8 4>:C<5=BSwitch to Last DocumentWindow2@5R8 =0 A;545[8 4>:C<5=BSwitch to Next DocumentWindow6@5R8 =0 ?@5BE>4=8 4>:C<5=BSwitch to Previous DocumentWindowP"5:ABC0;=8 D0X;>28 (%1);;!28 D0X;>28 (*)Text Files (%1);;All Files (*)WindowT=5<>3C[5=> CG8B020Z5 72C:0 ?8A0[5 <0H8=5.!Unable to load typewriter sounds.Window57 =0A;>20UntitledWindow$6C@8@0X &4>:C<5=BUpdate &DocumentWindow 6C@8@0X &>4018@Update &SelectionWindowV>@8H[5= ?>4 <a href=%1>LGPL 3</a> ;8F5=F><,Used under the LGPL 3 licenseWindowb>@8AB8 8:>=5 87 <a href=%1>Oxygen</a> B5<5 8:>=04Uses icons from the Oxygen icon themeWindow#?>7>@5Z5WarningWindow 5G8: %L1 Words: %L1Window ) , focuswriter-1.4.5/translations/focuswriter_sr.ts000066400000000000000000002333221231434177300222600ustar00rootroot00000000000000 Alert Close (%1) Затвори (%1) Collapse Колапс Expand Прошири AlertLayer Dismiss Alert Одбаци упозорење Ctrl+D Ctrl+D Document Sorry Извините Unable to save '%1'. Онемогућено чување '%1'. Save File As Сачувај фајл као Unable to overwrite '%1'. Онемогућено да пребрише '%1'. Rename File Преименуј фајл Unable to rename '%1'. Онемогућено преименовање '%1'. Reload File Поново учитај фајл Reload the file %1 from disk? Поново учитај фајл %1 са диска? All unsaved changes will be lost. Све несачуване промене ће бити изгубљене. Reload Поново учитај Plain Text (*.txt) Чист текст (*.txt) Question Питање Saving as plain text will discard all formatting. Discard formatting? Чување као обичан текст ће одбацити сва обликовања. Одбаци обликовање? OpenDocument Text (*.odt) OpenDocument текст (*.odt) Rich Text (*.rtf) Обогаћени текст (*.rtf) All Files (*) Сви фајлови (*) DocumentWatcher File Changed Промењен фајл The file %1 was changed by another program. Фајл %1 је промењен у другом програму. Do you want to reload the file? Да ли желите да поново учитате фајл? Reload Поново учитај Ignore Занемари File Deleted Обрисан фајл The file %1 was deleted by another program. Фајл %1 је обрисао други програм. Do you want to save or close the file? Да ли желите да сачувате или затворите фајл? FindDialog Search for: Претрага за: Replace with: Замени са: Ignore case Игнориши случај Whole words only Само целе речи Regular expressions Регуларни изрази Search up Претражи горе Search down Претражи доле &Find &Пронађи &Replace &Замени Replace &All Замени &све Find Пронађи Replace Замени Replace %n instance(s)? Замените %n пример? Замените %n примера? Замените %n примера? Question Питање Sorry Извините Phrase not found. Фраза није пронађена. Highlighter Add Додај Check Spelling... Провери правопис... (No suggestions found) (Без пронађене сугестије) ImageButton Open Image Отвори слику Images(%1) Слике(%1) LocaleDialog Select application language: Одабери језик програма: <System Language> <Системски језик> Note Напомена Please restart this application for the change in language to take effect. Молимо рестартујте програм да би се видела промена језика. PreferencesDialog Preferences Подешавања General Опште Statistics Статистика Toolbar Трака алата Spell Checking Провера правописа Select Dictionary Одабери речник Sorry Извините Unable to open archive. Онемогућено отварање архиве. Unable to read archive metadata. Онемогућено читање метаподатака у архиви. The archive does not contain a usable dictionary. Архива не садржи уобичајен речник. Unable to open file '%1'. Онемогућено отварање фајла '%1'. Unable to close file '%1'. Онемогућено затварање фајла '%1'. Question Питање Shortcuts Пречице One or more shortcuts conflict. Do you wish to proceed? Један или више кофликт пречица. Да ли желите да наставите? The dictionary "%1" already exists. Do you want to replace it? Речник "%1" већ постоји. Да ли желите да га замените? Daily Goal Дневни циљ None Ниједан Minutes: Минути: Words: Речи: Editing Измене Always vertically center Увек вертикални центар Block insertion cursor Блокирај уметање курсора Smooth fonts Умекшај фонтове Typewriter sounds Звук писаће машине Smart quotes: Паметни цитати: Double Дупли Single Једини Scenes Сцене Divider: Разделник: Saving Чување Automatically save changes Аутоматски чувај промене Remember cursor position Запамти позицију курсора Contents Садржај Word count Број речи Page count Број страна Paragraph count Број параграфа Character count Број карактера Page Size Величина стране Characters: Карактери: Paragraphs: Параграфи: Word Count Algorithm Број алторитама Detect word boundaries Детектовање границе речи Divide character count by six Подели број карактера са шест Style Изглед Icons Only Само иконе Text Only Само текст Text Alongside Icons Текст поред икона Text Under Icons Текст испод икона Text Position: Позиција текста: Actions Акције Move Up Помери горе Move Down Помери доле Add Separator Додај раздвајач Command Команда Shortcut Пречица Action Акција Check spelling as you type Проверите правопис док куцате Ignore words in UPPERCASE Занемари речи са ВЕЛИКИМ СЛОВИМА Ignore words with numbers Занемари речи са бројевима Language Језик Add Додај Remove Уклони Personal Dictionary Лични речник Reader Not a supported RTF file. Није подржан RTF фајл. Unable to open archive. Онемогућено отварање архиве. Unable to open file '%1'. Онемогућено отварање фајла '%1'. Unable to close file '%1'. Онемогућено затварање фајла '%1'. SceneList Ctrl+Shift+Down Ctrl+Shift+Down Move Scenes Up Помери сцене горе Ctrl+Shift+Up Ctrl+Shift+Up Toggle Scene List Укључи/искључи листу сцена Shift+F4 Shift+F4 Show scene list (%1) Покажи листу сцена (%1) Hide scene list (%1) Сакриј листу сцена (%1) Filter Филтер Move Scenes Down Помери сцене доле Resize scene list Промени величину листе сцена Session Default Подразумевано SessionManager Manage Sessions Управљај сесијама S&essions С&есије New Нови Rename Преименуј Clone Клонирај Delete Избриши Switch To Пребаци на New Session Нова сесија Clone Session Клонирај сесију Rename Session Преименуј сесију Question Питање Delete selected session? Избриши одабрану сесију? Session name: Име сесије: Sorry Извините The requested session name is already in use. Захтевано име сесије је већ у употреби. &New... &Нова... Ctrl+Shift+N Ctrl+Shift+N &Manage... &Управљај... Ctrl+Shift+M Ctrl+Shift+M ShortcutEdit Clear Очисти Reset to Default Ресетуј на подразумевано Shortcut: Пречица: SmartQuote Replacing quotation marks... Замена наводника... Please Wait Молимо сачекајте SpellChecker Check Spelling Провери правопис &Add &Додај &Ignore &Занемари I&gnore All З&анемари све &Change &Промени C&hange All П&ромени све Not in dictionary: Није у речнику: Change to: Промени на: Checking spelling... Провери правопис... Cancel Откажи Please wait Молимо сачекајте Spell check complete. Провера правописа је завршена. SymbolsDialog Symbols Симболи Recently used symbols Недавно коришћени симболи All symbols Сви симболи Details Детаљи Name: Име: Insert Инсерт SymbolsModel Blocks Блокови Scripts Скрипте Theme Untitled %1 Без наслова %1 ThemeDialog Modify Theme Измени тему Name: Име: Background Позадина No Image Без слике Tiled Поплочано Centered Центрирано Stretched Раширено Scaled Скалирано Zoomed Зумирано Remove Уклони Type: Врста: Color: Боја: Image: Слика: Foreground Предњи план Opacity Непрозирност pixels пиксела Left Лево Right Десно Position Позиција Size: Величина: Rounding: Заокруживање: Margin: Ивица: Padding: Облагање: Text Текст Font: Фонт: Misspelled: Погрешно написано: Spacings Размаци Line Spacing Проред Single Један 1.5 Lines 1.5 линија Double Дупли Proportional Пропорционалан Paragraph Spacing Пасус Indent First Line: Увлачење прве линије: Pixels Above: Пиксела изнад: Pixels Below: Пиксела испод: The quick brown fox jumps over the lazy dog Брза смеђа лисица скаче преко лењог пса ThemeManager Themes Теме Add Додај Modify Измени Remove Уклони Import Увези Export Извези Close Затвори Question Питање Remove selected theme? Уклони одабрану тему? Import Theme Увези тему Themes (*.fwtz *.theme) Теме (*.fwtz *.theme) Themes (*.fwtz) Теме (*.fwtz) Sorry Извините A theme already exists with that name. Please enter a new name: Тема већ постоји са овим именом. Молимо унесите ново име: Export Theme Извези тему Timer <b>%1</b> - %2 <b>%1</b> - %2 Question Питање Delete timer? Обриши тајмер? <b>Words:</b> %L1 <b>Речи:</b> %L1 <b>Pages:</b> %L1 <b>Стране:</b> %L1 <b>Paragraphs:</b> %L1 <b>Параграфи:</b> %L1 <b>Characters:</b> %L1 / %L2 <b>Карактери:</b> %L1 / %L2 Set Delay Подеси кашњење Set Time Подеси време Delay: Кашњење: Time: Време: HH:mm:ss HH:mm:ss Alarm Аларм Type: Врста: Memo: Меморандум: Edit Измени Delete Избриши TimerDisplay HH:mm:ss HH:mm:ss No timers running Без покренутог тајмера TimerManager Timers Тајмери New Нови Recent Скорашње Question Питање Cancel editing timers? Откажи измене тајмера? +HH:mm:ss +HH:mm:ss %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. Неочекивано стигао крај фајла. Window Loading themes Учитавање тема Loading sounds Учитавање звука Untitled Без наслова Open File Отвори фајл About FocusWriter О програму FocusWriter FocusWriter FocusWriter A simple fullscreen word processor Једноставан обрађивач текста на пуном екрану Copyright &copy; 2008-%1 Graeme Gott Copyright &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Реализовано под <a href=%1>GPL 3</a> лиценцом Uses icons from the <a href=%1>Oxygen</a> icon theme Користи иконе из <a href=%1>Oxygen</a> теме икона Used under the <a href=%1>LGPL 3</a> license Коришћен под <a href=%1>LGPL 3</a> лиценцом Characters: %L1 / %L2 Карактери: %L1 / %L2 Pages: %L1 Стране: %L1 Paragraphs: %L1 Параграфи: %L1 Words: %L1 Речи: %L1 %1% of daily goal %1% од дневног циља Opening %1 Oтварање %1 Question Питање Save changes? Сачувај промене? (Untitled %1) (Без наслова %1) Switch to Next Document Пређи на следећи документ Switch to Previous Document Пређи на претходни документ Switch to First Document Пређи на први документ Switch to Last Document Пређи на последњи документ Switch to Document %1 Пређи на документ %1 Loading settings Учитавање подешавања Emergency cache is not writable. Ургентни кеш није уписив. Warning Упозорење FocusWriter was not shut down cleanly. FocusWriter није затворен чисто. Restore from the emergency cache? Враћање из ургентног кеша? Some files could not be opened. Неки фајлови нису могли бити отворени. Some files were opened Read-Only. Неки фајлови су отворени само за читање. Text Files (%1);;All Files (*) Текстуални фајлови (%1);;Сви фајлови (*) '%1' is newer than the cached copy. '%1' је новије од кеширане копије. Overwrite newer file? Пребиши новији фајл? Unable to load typewriter sounds. Онемогућено учитавање звука писаће машине. Please make sure that SDL_mixer is installed. Молимо проверите да ли је SDL_миксер инсталиран. %1 (Read-Only) %1 (Само за читање) &File &Фајл &New &Нови &Open... &Отвори... Reloa&d Поно&во учитај &Save &Сачувај Save &As... Сачувај &као... &Rename... &Преименуј... Save A&ll Сачувај с&ве Manage Sessions Управљај сесијама New Session Нова сесија &Print... &Штампај... &Close &Затвори &Quit &Напусти Ctrl+Q Ctrl+Q &Edit &Измени &Undo &Опозови &Redo &Поново уради Cu&t Исе&ци &Copy &Копирај &Paste &Налепи Paste &Unformatted Налепи &неформатирано Ctrl+Shift+V Ctrl+Shift+V Select &All Одабери &све Select &Scene Одабери &сцену Ctrl+Shift+A Ctrl+Shift+A Fo&rmat Фо&рмат &Bold &Подебљано &Italic &Искошено &Underline &Подвучено Stri&kethrough Пре&цртано Ctrl+K Ctrl+K Sup&erscript Екс&понент Ctrl+^ Ctrl+^ &Subscript &Индекс Ctrl+_ Ctrl+_ Align &Left Поравнај &лево Ctrl+{ Ctrl+{ Align &Center Поравнај &на центар Ctrl+| Ctrl+| Align &Right Поравнај &десно Ctrl+} Ctrl+} Align &Justify Поравнај &обострано Ctrl+J Ctrl+J &Decrease Indent &Смањи увлачење Ctrl+< Ctrl+< I&ncrease Indent П&овећај увлачење Ctrl+> Ctrl+> Le&ft to Right Block Ле&во на десно блок Ri&ght to Left Block Де&сно на лево блок &Tools &Алати &Find... &Пронађи... Find &Next Пронађи &следеће Find Pre&vious Пронађи пре&тходно &Replace... &Замени... Ctrl+R Ctrl+R Smart &Quotes Паметни &цитати Update &Document Ажурирај &документ Update &Selection Ажурирај &одабир &Spelling... &Правопис... F7 F7 &Timers... &Tајмери... S&ymbols... С&имболи... &Settings &Подешавање Show &Toolbar Покажи &траку алата Show &Menu Icons Покажи &иконе менија F&ocused Text Ф&окусирани текст &Fullscreen &Пун екран F11 F11 Esc Esc M&inimize M&инимизуј Ctrl+M Ctrl+M &Themes... &Tеме... &Preferences... &Подешавања... Focus Off Фокусирање искључено Focus One Line Фокусирање једне линије Focus Three Lines Фокусирање три линије &Paragraph &Параграф Focus Paragraph Фокусирај параграф &Help &Помоћ Application &Language... Језик &програма... Some files were unsupported and could not be opened. Неки фајлови нису подржани и не могу бити отворени. &Off &Искључено One &Line Једна &линија &Three Lines &Три линије &About &О програму About &Qt О &Qt focuswriter-1.4.5/translations/focuswriter_sv.qm000066400000000000000000000746201231434177300222570ustar00rootroot00000000000000*$L*yLi*L*%M*D (*0M+O+Ox+PM+įRP@H(F$J+0oJ6E+J6AKKQMez8P^S*G^T5T:X=dZ>0ZiZi ZiMZi/YZiC{Z% [?[H8\?\H_\*_ >Pc4T{ O/Ϩ%]C3]`~e.=0n#0n&P2;qDBtg^jte[\"lkS^M7"Ec!B"S ~Paqgef[zX'A:JK6L<TSNf3Q[?.Jc^<"U'aE8~c](\w, 4T9/^B6w<eC)0.<HlS̊|3O$O'޷0!:l *xi`o+z_=< u R7lCm p7jxbZ;^1bf]!9d(w302I#9} G9Nf/_|>N|wp }kz4i)P\;Sbi%% T' >C-JC^ \~O< >cp 4 "1. %^ Y v Y zL z .3#J JP W- W_ 6 / ·H .^ % a ŃI +IY :i ;fdp d8 eE 2 q^! t* [( ʀs5 ˔R ˼C5; z_b BhV f  V2@ c6 ^) M # L.+f f(# iqmR w971 xj44 {"ud Na  E ʫ ʫ Z ʫV ʫ. ʫB ʫG ʫJ2 ʫa V A) pUk 8 E_o cG, cH >cIY N 6g >Q/ J= Z$8( eG iN!`6 tfc u. . sPy @E C<  $ '2 t 1S \ sM> Dk) Z 8j DYW DY, DY,_ DZX ^3 noF uu {N&e Pm" IN <S ޘ Zc OR|nE:Nltr6Acd )jd]La4hqT j*A L9*KW9e iTsSI(-z C" imStng (%1) Close (%1)AlertFll inCollapseAlertFll utExpandAlert Ctrl+DCtrl+D AlertLayerStng varning Dismiss Alert AlertLayerAlla filer (*) All Files (*)Document`Alla osparade ndringar kommer att g frlorade.!All unsaved changes will be lost.Document2OpenDocument-text (*.odt)OpenDocument Text (*.odt)Document&Vanlig text (*.txt)Plain Text (*.txt)Document FrgaQuestionDocument Ls omReloadDocumentLs om fil Reload FileDocument4Ls om filen %1 frn disk?Reload the file %1 from disk?DocumentByt namn p fil Rename FileDocument"Rich Text (*.rtf)Rich Text (*.rtf)DocumentSpara fil som Save File AsDocumentAtt spara som vanlig text tar bort all formatering. Ta bort formatering?ESaving as plain text will discard all formatting. Discard formatting?Document TyvrrSorryDocument8Kunde inte skriva ver "%1".Unable to overwrite '%1'.DocumentFKunde inte byta namn p filen "%1".Unable to rename '%1'.Document,Kunde inte spara "%1".Unable to save '%1'.Document,Vill du lsa om filen?Do you want to reload the file?DocumentWatcherBVill du spara eller stnga filen?&Do you want to save or close the file?DocumentWatcherFilen ndrad File ChangedDocumentWatcherFil raderad File DeletedDocumentWatcherIgnoreraIgnoreDocumentWatcher Ls omReloadDocumentWatcherNFilen %1 ndrades av ett annat program.+The file %1 was changed by another program.DocumentWatcherPFilen %1 togs bort av ett annat program.+The file %1 was deleted by another program.DocumentWatcher&Sk&Find FindDialog&Erstt&Replace FindDialogSkFind FindDialog$Ignorera skiftlge Ignore case FindDialog*Frasen hittades inte.Phrase not found. FindDialog FrgaQuestion FindDialog"Reguljra uttryckRegular expressions FindDialog ErsttReplace FindDialog(Erstt %n frekomst?,Erstt %n frekomster?Replace %n instance(s)? FindDialogErstt &alla Replace &All FindDialogErstt med: Replace with: FindDialogSk nedt Search down FindDialogSk efter: Search for: FindDialogSk uppt Search up FindDialog TyvrrSorry FindDialogEndast hela ordWhole words only FindDialog.(Inga frslag hittades)(No suggestions found) HighlighterLgg tillAdd Highlighter.Kontrollera stavning...Check Spelling... HighlighterBilder(%1) Images(%1) ImageButtonppna bild Open Image ImageButton<Systemsprk> LocaleDialogObserveraNote LocaleDialogtStarta om programmet fr att sprkndringen ska aktiveras.JPlease restart this application for the change in language to take effect. LocaleDialog$Vlj programsprk:Select application language: LocaleDialog tgrdActionPreferencesDialogtgrderActionsPreferencesDialogLgg tillAddPreferencesDialog(Lgg till avgrnsare Add SeparatorPreferencesDialog2Centrera alltid vertikaltAlways vertically centerPreferencesDialog6Spara automatiskt ndringarAutomatically save changesPreferencesDialog2Blockmarkr fr infogningBlock insertion cursorPreferencesDialogAntal teckenCharacter countPreferencesDialogTecken: Characters:PreferencesDialogFKontrollera stavning nr du skriverCheck spelling as you typePreferencesDialogKommandoCommandPreferencesDialogInnehllContentsPreferencesDialogDagligt ml Daily GoalPreferencesDialog,Identifiera ordgrnserDetect word boundariesPreferencesDialog0Dela teckenantal med sexDivide character count by sixPreferencesDialogAvdelare:Divider:PreferencesDialog DubbelDoublePreferencesDialogRedigeringEditingPreferencesDialogAllmntGeneralPreferencesDialogEndast ikoner Icons OnlyPreferencesDialog2Ignorera ord med VERSALERIgnore words in UPPERCASEPreferencesDialog0Ignorera ord med siffrorIgnore words with numbersPreferencesDialog SprkLanguagePreferencesDialogMinuter:Minutes:PreferencesDialogFlytta nedt Move DownPreferencesDialogFlytta upptMove UpPreferencesDialog IngetNonePreferencesDialogNGenvgar i konflikt. Vill du fortstta?7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialogSidstorlek Page SizePreferencesDialogAntal sidor Page countPreferencesDialogAntal styckenParagraph countPreferencesDialogStycken: Paragraphs:PreferencesDialog Personlig ordbokPersonal DictionaryPreferencesDialogInstllningar PreferencesPreferencesDialog FrgaQuestionPreferencesDialog.Kom ihg markrpositionRemember cursor positionPreferencesDialogTa bortRemovePreferencesDialog SparaSavingPreferencesDialog ScenerScenesPreferencesDialogVlj ordbokSelect DictionaryPreferencesDialog GenvgShortcutPreferencesDialogGenvgar ShortcutsPreferencesDialog EnkelSinglePreferencesDialog.Smarta citationstecken: Smart quotes:PreferencesDialogMjuka typsnitt Smooth fontsPreferencesDialog TyvrrSorryPreferencesDialog"StavningskontrollSpell CheckingPreferencesDialogStatistik StatisticsPreferencesDialogStilStylePreferencesDialog&Text bredvid ikonerText Alongside IconsPreferencesDialogEndast text Text OnlyPreferencesDialogTextposition:Text Position:PreferencesDialog"Text under ikonerText Under IconsPreferencesDialogTArkivet innehller ingen anvndbar ordbok.1The archive does not contain a usable dictionary.PreferencesDialog^Ordboken "%1" finns redan. Vill du erstta den?>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialogVerktygsradToolbarPreferencesDialog SkrivmaskinsljudTypewriter soundsPreferencesDialog:Kunde inte stnga filen "%1".Unable to close file '%1'.PreferencesDialog2Kunde inte ppna arkivet.Unable to open archive.PreferencesDialog8Kunde inte ppna filen "%1".Unable to open file '%1'.PreferencesDialogDKunde inte lsa arkivets metadata. Unable to read archive metadata.PreferencesDialog*Algoritm fr ordantalWord Count AlgorithmPreferencesDialogAntal ord Word countPreferencesDialogOrd:Words:PreferencesDialog*RTF-filen stds inte.Not a supported RTF file.Reader:Kunde inte stnga filen "%1".Unable to close file '%1'.Reader2Kunde inte ppna arkivet.Unable to open archive.Reader8Kunde inte ppna filen "%1".Unable to open file '%1'.ReaderCtrl+Skift+NedCtrl+Shift+Down SceneListCtrl+Skift+Upp Ctrl+Shift+Up SceneList FilterFilter SceneList&Dlj scenlista (%1)Hide scene list (%1) SceneList"Flytta ner scenerMove Scenes Down SceneList"Flytta upp scenerMove Scenes Up SceneList.Storleksndra scenlistaResize scene list SceneListSkift+F4Shift+F4 SceneList&Visa scenlista (%1)Show scene list (%1) SceneListVxla scenlistaToggle Scene List SceneListStandardDefaultSession&Hantera... &Manage...SessionManager &Ny...&New...SessionManager KlonaCloneSessionManagerKlona session Clone SessionSessionManagerCtrl+Shift+M Ctrl+Shift+MSessionManagerCtrl+Shift+N Ctrl+Shift+NSessionManagerTa bortDeleteSessionManager2Ta bort markerad session?Delete selected session?SessionManager"Hantera sessionerManage SessionsSessionManagerNyNewSessionManagerNy session New SessionSessionManager FrgaQuestionSessionManagerByt namnRenameSessionManager&Byt namn p sessionRename SessionSessionManagerS&essioner S&essionsSessionManagerSessionsnamn: Session name:SessionManager TyvrrSorrySessionManagerVxla till Switch ToSessionManagerRDet begrda sessionsnamnet anvnds redan.-The requested session name is already in use.SessionManagerTmClear ShortcutEdit*terstll till frvalReset to Default ShortcutEditGenvg: Shortcut: ShortcutEdit Vnta Please Wait SmartQuote6Erstter citationstecken...Replacing quotation marks... SmartQuote&Lgg till&Add SpellChecker &ndra&Change SpellChecker&Ignorera&Ignore SpellChecker&ndra alla C&hange All SpellChecker AvbrytCancel SpellCheckerndra till: Change to: SpellChecker(Kontrollera stavningCheck Spelling SpellChecker0Kontrollerar stavning...Checking spelling... SpellCheckerI&gnorera alla I&gnore All SpellChecker,Finns inte i ordboken:Not in dictionary: SpellChecker Vnta Please wait SpellChecker<Stavningskontrollen r frdig.Spell check complete. SpellCheckerAlla symboler All symbols SymbolsDialogDetaljerDetails SymbolsDialog InfogaInsert SymbolsDialog Namn:Name: SymbolsDialog0Nyligen anvnda symbolerRecently used symbols SymbolsDialogSymbolerSymbols SymbolsDialog TeckenBlocks SymbolsModelSkriftsprkScripts SymbolsModelNamnls %1 Untitled %1Theme bildpunkter pixels ThemeDialog1,5 radavstnd 1.5 Lines ThemeDialogBakgrund Background ThemeDialogCentreradCentered ThemeDialog Frg:Color: ThemeDialogDubbeltDouble ThemeDialogTypsnitt:Font: ThemeDialogFrgrund Foreground ThemeDialog Bild:Image: ThemeDialog(Indrag frsta raden:Indent First Line: ThemeDialogVnsterLeft ThemeDialogRadavstnd Line Spacing ThemeDialogMarginal:Margin: ThemeDialogFelstavning: Misspelled: ThemeDialogndra tema Modify Theme ThemeDialog Namn:Name: ThemeDialogIngen bildNo Image ThemeDialogOpacitetOpacity ThemeDialogUtfyllnad:Padding: ThemeDialogStyckeavstndParagraph Spacing ThemeDialogPixlar ovanfr: Pixels Above: ThemeDialog Pixlar nedanfr: Pixels Below: ThemeDialogPositionPosition ThemeDialogProportionellt Proportional ThemeDialogTa bortRemove ThemeDialog HgerRight ThemeDialogRundhet: Rounding: ThemeDialog SkaladScaled ThemeDialog EnkeltSingle ThemeDialogStorlek:Size: ThemeDialogAvstndSpacings ThemeDialogUtstrckt Stretched ThemeDialogTextText ThemeDialogZFlygande bckasiner ska hwila p mjuka tuvor+The quick brown fox jumps over the lazy dog ThemeDialogSida vid sidaTiled ThemeDialogTyp:Type: ThemeDialog ZoomadZoomed ThemeDialogpEtt tema finns redan med det namnet. Ange ett nytt namn:?A theme already exists with that name. Please enter a new name: ThemeManagerLgg tillAdd ThemeManager StngClose ThemeManagerExporteraExport ThemeManagerExportera tema Export Theme ThemeManagerImporteraImport ThemeManagerImportera tema Import Theme ThemeManager ndraModify ThemeManager FrgaQuestion ThemeManagerTa bortRemove ThemeManager,Ta bort markerat tema?Remove selected theme? ThemeManager TyvrrSorry ThemeManager TemanThemes ThemeManager,Teman (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManagerTeman (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer0<b>Tecken:</b> %L1 / %L2Characters: %L1 / %L2Timer"<b>Sidor:</b> %L1Pages: %L1Timer&<b>Stycken:</b> %L1Paragraphs: %L1Timer<b>Ord:</b> %L1Words: %L1Timer AlarmAlarmTimerFrdrjning:Delay:TimerTa bortDeleteTimer$Ta bort tidtagare? Delete timer?TimerRedigeraEditTimerHH:mm:ssHH:mm:ssTimer Memo:Memo:Timer FrgaQuestionTimer(Stll in frdrjning Set DelayTimerStll in tidSet TimeTimerTid:Time:TimerTyp:Type:TimerHH: mm: ssHH:mm:ss TimerDisplay.Inga tidtagare r igngNo timers running TimerDisplay%1 - %2%1 - %2 TimerManager+HH:mm:ss +HH:mm:ss TimerManager>Avbryt redigering av tidtagare?Cancel editing timers? TimerManagerNyNew TimerManager FrgaQuestion TimerManagerTidigareRecent TimerManagerTidtagareTimers TimerManager<Ndde ovntat slutet p filen.!Unexpectedly reached end of file. Tokenizer"%1 (skrivskyddad)%1 (Read-Only)Window&%1 % av dagligt ml%1% of daily goalWindow&Om&AboutWindow&Fet&BoldWindow S&tng&CloseWindow&Kopiera&CopyWindow&Minska indrag&Decrease IndentWindowR&edigera&EditWindow &Arkiv&FileWindow&Sk...&Find...Window&Helskrm &FullscreenWindow &Hjlp&HelpWindow&Kursiv&ItalicWindow &Nytt&NewWindow&Av&OffWindow&ppna...&Open...Window&Stycke &ParagraphWindowKlistra &in&PasteWindow"&Instllningar...&Preferences...WindowSkriv &ut... &Print...WindowA&vsluta&QuitWindow&Gr om&RedoWindow&Byt namn... &Rename...Window&Erstt... &Replace...Window &Spara&SaveWindow&Instllningar &SettingsWindowSta&vning... &Spelling...WindowNedsn&kt &SubscriptWindow&Teman... &Themes...Window&Tre rader &Three LinesWindow&Tidtagare... &Timers...WindowVer&ktyg&ToolsWindow&Understruken &UnderlineWindow &ngra&UndoWindowT"%1" r nyare n den mellanlagrade kopian.#'%1' is newer than the cached copy.Window(Namnls %1) (Untitled %1)WindowPEn enkel ordbehandlare med helskrmslge"A simple fullscreen word processorWindow Om &Qt About &QtWindowOm FocusWriterAbout FocusWriterWindowJustera &mitten Align &CenterWindow&JusteraAlign &JustifyWindow Justera &vnster Align &LeftWindowJustera &hger Align &RightWindow Programs&prk...Application &Language...Window"Tecken: %L1 / %L2Characters: %L1 / %L2WindowHCopyright &copy; 2008-%1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindow Ctrl+<Ctrl+<Window Ctrl+>Ctrl+>Window Ctrl+JCtrl+JWindow Ctrl+KCtrl+KWindow Ctrl+MCtrl+MWindow Ctrl+QCtrl+QWindow Ctrl+RCtrl+RWindowCtrl+Skift+A Ctrl+Shift+AWindowCtrl+Skift+V Ctrl+Shift+VWindow Ctrl+^Ctrl+^Window Ctrl+_Ctrl+_Window Ctrl+{Ctrl+{Window Ctrl+|Ctrl+|Window Ctrl+}Ctrl+}WindowKlipp &utCu&tWindow6Ndcachen r inte skrivbar. Emergency cache is not writable.WindowEscEscWindowF&okuserad text F&ocused TextWindowF11F11WindowF7F7WindowSk &nsta Find &NextWindowSk &fregendeFind Pre&viousWindowFo&rmateraFo&rmatWindowFokus av Focus OffWindowFokusera en radFocus One LineWindowFokusera styckeFocus ParagraphWindow$Fokusera tre raderFocus Three LinesWindowFocusWriter FocusWriterWindowJFocusWriter stngdes inte av korrekt.&FocusWriter was not shut down cleanly.Windowka in&dragI&ncrease IndentWindow0Vnster till &hgerblockLe&ft to Right BlockWindow,Lser in instllningarLoading settingsWindowLser in ljudLoading soundsWindowLser in temanLoading themesWindowMi&nimera M&inimizeWindow"Hantera sessionerManage SessionsWindowNy session New SessionWindowEn &rad One &LineWindowppna fil Open FileWindowppnar %1 Opening %1Window*Skriv ver nyare fil?Overwrite newer file?WindowSidor: %L1 Pages: %L1WindowStycken: %L1Paragraphs: %L1Window.Klistra in &oformateratPaste &UnformattedWindowJSe till att SDL_mixer r installerat.-Please make sure that SDL_mixer is installed.Window FrgaQuestionWindowTSlppt under licensen <a href=%1>GPL 3</a>/Released under the GPL 3 licenseWindowLs in &igenReloa&dWindow2terstll frn ndcachen?!Restore from the emergency cache?Window0Hger till &vnsterblockRi&ght to Left BlockWindowS&ymboler... S&ymbols...WindowSpara so&m... Save &As...WindowSpara a&lla Save A&llWindow Spara ndringar? Save changes?WindowMarkera &allt Select &AllWindowVlj &scen Select &SceneWindow Visa &menyikonerShow &Menu IconsWindow"Visa &verktygsrad Show &ToolbarWindow.Smarta &citationstecken Smart &QuotesWindow<Ngra filer kunde inte ppnas.Some files could not be opened.WindowNNgra filer ppnades som skrivskyddade.!Some files were opened Read-Only.WindowZNgra filer stds inte och kunde inte ppnas.4Some files were unsupported and could not be opened.WindowG&enomstrukenStri&kethroughWindowUpph&jd Sup&erscriptWindow,Vxla till dokument %1Switch to Document %1Window8Vxla till frsta dokumentetSwitch to First DocumentWindow6Vxla till sista dokumentetSwitch to Last DocumentWindow2Vxla till nsta dokumentSwitch to Next DocumentWindow<Vxla till fregende dokumentSwitch to Previous DocumentWindow<Textfiler (%1);;Alla filer (*)Text Files (%1);;All Files (*)WindowHKunde inte lsa in skrivmaskinsljud.!Unable to load typewriter sounds.WindowNamnlsUntitledWindow&Uppdatera &dokumentUpdate &DocumentWindow(Uppdatera &markeringUpdate &SelectionWindowVAnvnda under licensen <a href=%1>GPL 3</a>,Used under the LGPL 3 licenseWindowhAnvnder ikoner frn ikontemat <a href=%1>Oxygen</a>4Uses icons from the Oxygen icon themeWindowVarningWarningWindowOrd: %L1 Words: %L1Windowfocuswriter-1.4.5/translations/focuswriter_sv.ts000066400000000000000000002225051231434177300222650ustar00rootroot00000000000000 Alert Close (%1) Stäng (%1) Collapse Fäll in Expand Fäll ut AlertLayer Dismiss Alert Stäng varning Ctrl+D Ctrl+D Document Sorry Tyvärr Unable to save '%1'. Kunde inte spara "%1". Save File As Spara fil som Unable to overwrite '%1'. Kunde inte skriva över "%1". Rename File Byt namn på fil Unable to rename '%1'. Kunde inte byta namn på filen "%1". Reload File Läs om fil Reload the file %1 from disk? Läs om filen %1 från disk? All unsaved changes will be lost. Alla osparade ändringar kommer att gå förlorade. Reload Läs om Plain Text (*.txt) Vanlig text (*.txt) Question Fråga Saving as plain text will discard all formatting. Discard formatting? Att spara som vanlig text tar bort all formatering. Ta bort formatering? OpenDocument Text (*.odt) OpenDocument-text (*.odt) Rich Text (*.rtf) Rich Text (*.rtf) All Files (*) Alla filer (*) DocumentWatcher File Changed Filen ändrad The file %1 was changed by another program. Filen %1 ändrades av ett annat program. Do you want to reload the file? Vill du läsa om filen? Reload Läs om Ignore Ignorera File Deleted Fil raderad The file %1 was deleted by another program. Filen %1 togs bort av ett annat program. Do you want to save or close the file? Vill du spara eller stänga filen? FindDialog Search for: Sök efter: Replace with: Ersätt med: Ignore case Ignorera skiftläge Whole words only Endast hela ord Regular expressions Reguljära uttryck Search up Sök uppåt Search down Sök nedåt &Find &Sök &Replace &Ersätt Replace &All Ersätt &alla Find Sök Replace Ersätt Replace %n instance(s)? Ersätt %n förekomst? Ersätt %n förekomster? Question Fråga Sorry Tyvärr Phrase not found. Frasen hittades inte. Highlighter Add Lägg till Check Spelling... Kontrollera stavning... (No suggestions found) (Inga förslag hittades) ImageButton Open Image Öppna bild Images(%1) Bilder(%1) LocaleDialog Select application language: Välj programspråk: <System Language> <Systemspråk> Note Observera Please restart this application for the change in language to take effect. Starta om programmet för att språkändringen ska aktiveras. PreferencesDialog Preferences Inställningar General Allmänt Statistics Statistik Toolbar Verktygsrad Spell Checking Stavningskontroll Select Dictionary Välj ordbok Sorry Tyvärr Unable to open archive. Kunde inte öppna arkivet. Unable to read archive metadata. Kunde inte läsa arkivets metadata. The archive does not contain a usable dictionary. Arkivet innehåller ingen användbar ordbok. Unable to open file '%1'. Kunde inte öppna filen "%1". Unable to close file '%1'. Kunde inte stänga filen "%1". Question Fråga Shortcuts Genvägar One or more shortcuts conflict. Do you wish to proceed? Genvägar i konflikt. Vill du fortsätta? The dictionary "%1" already exists. Do you want to replace it? Ordboken "%1" finns redan. Vill du ersätta den? Daily Goal Dagligt mål None Inget Minutes: Minuter: Words: Ord: Editing Redigering Always vertically center Centrera alltid vertikalt Block insertion cursor Blockmarkör för infogning Smooth fonts Mjuka typsnitt Typewriter sounds Skrivmaskinsljud Smart quotes: Smarta citationstecken: Double Dubbel Single Enkel Scenes Scener Divider: Avdelare: Saving Spara Automatically save changes Spara automatiskt ändringar Remember cursor position Kom ihåg markörposition Contents Innehåll Word count Antal ord Page count Antal sidor Paragraph count Antal stycken Character count Antal tecken Page Size Sidstorlek Characters: Tecken: Paragraphs: Stycken: Word Count Algorithm Algoritm för ordantal Detect word boundaries Identifiera ordgränser Divide character count by six Dela teckenantal med sex Style Stil Icons Only Endast ikoner Text Only Endast text Text Alongside Icons Text bredvid ikoner Text Under Icons Text under ikoner Text Position: Textposition: Actions Åtgärder Move Up Flytta uppåt Move Down Flytta nedåt Add Separator Lägg till avgränsare Command Kommando Shortcut Genväg Action Åtgärd Check spelling as you type Kontrollera stavning när du skriver Ignore words in UPPERCASE Ignorera ord med VERSALER Ignore words with numbers Ignorera ord med siffror Language Språk Add Lägg till Remove Ta bort Personal Dictionary Personlig ordbok Reader Not a supported RTF file. RTF-filen stöds inte. Unable to open archive. Kunde inte öppna arkivet. Unable to open file '%1'. Kunde inte öppna filen "%1". Unable to close file '%1'. Kunde inte stänga filen "%1". SceneList Ctrl+Shift+Down Ctrl+Skift+Ned Move Scenes Up Flytta upp scener Ctrl+Shift+Up Ctrl+Skift+Upp Toggle Scene List Växla scenlista Shift+F4 Skift+F4 Show scene list (%1) Visa scenlista (%1) Hide scene list (%1) Dölj scenlista (%1) Filter Filter Move Scenes Down Flytta ner scener Resize scene list Storleksändra scenlista Session Default Standard SessionManager Manage Sessions Hantera sessioner S&essions S&essioner New Ny Rename Byt namn Clone Klona Delete Ta bort Switch To Växla till New Session Ny session Clone Session Klona session Rename Session Byt namn på session Question Fråga Delete selected session? Ta bort markerad session? Session name: Sessionsnamn: Sorry Tyvärr The requested session name is already in use. Det begärda sessionsnamnet används redan. &New... &Ny... Ctrl+Shift+N Ctrl+Shift+N &Manage... &Hantera... Ctrl+Shift+M Ctrl+Shift+M ShortcutEdit Clear Töm Reset to Default Återställ till förval Shortcut: Genväg: SmartQuote Replacing quotation marks... Ersätter citationstecken... Please Wait Vänta SpellChecker Check Spelling Kontrollera stavning &Add &Lägg till &Ignore &Ignorera I&gnore All I&gnorera alla &Change &Ändra C&hange All Ä&ndra alla Not in dictionary: Finns inte i ordboken: Change to: Ändra till: Checking spelling... Kontrollerar stavning... Cancel Avbryt Please wait Vänta Spell check complete. Stavningskontrollen är färdig. SymbolsDialog Symbols Symboler Recently used symbols Nyligen använda symboler All symbols Alla symboler Details Detaljer Name: Namn: Insert Infoga SymbolsModel Blocks Tecken Scripts Skriftspråk Theme Untitled %1 Namnlös %1 ThemeDialog Modify Theme Ändra tema Name: Namn: Background Bakgrund No Image Ingen bild Tiled Sida vid sida Centered Centrerad Stretched Utsträckt Scaled Skalad Zoomed Zoomad Remove Ta bort Type: Typ: Color: Färg: Image: Bild: Foreground Förgrund Opacity Opacitet pixels bildpunkter Left Vänster Right Höger Position Position Size: Storlek: Rounding: Rundhet: Margin: Marginal: Padding: Utfyllnad: Text Text Font: Typsnitt: Misspelled: Felstavning: Spacings Avstånd Line Spacing Radavstånd Single Enkelt 1.5 Lines 1,5 radavstånd Double Dubbelt Proportional Proportionellt Paragraph Spacing Styckeavstånd Indent First Line: Indrag första raden: Pixels Above: Pixlar ovanför: Pixels Below: Pixlar nedanför: The quick brown fox jumps over the lazy dog Flygande bäckasiner söka hwila på mjuka tuvor ThemeManager Themes Teman Add Lägg till Modify Ändra Remove Ta bort Import Importera Export Exportera Close Stäng Question Fråga Remove selected theme? Ta bort markerat tema? Import Theme Importera tema Themes (*.fwtz *.theme) Teman (*.fwtz *.theme) Themes (*.fwtz) Teman (*.fwtz) Sorry Tyvärr A theme already exists with that name. Please enter a new name: Ett tema finns redan med det namnet. Ange ett nytt namn: Export Theme Exportera tema Timer <b>%1</b> - %2 <b>%1</b> - %2 Question Fråga Delete timer? Ta bort tidtagare? <b>Words:</b> %L1 <b>Ord:</b> %L1 <b>Pages:</b> %L1 <b>Sidor:</b> %L1 <b>Paragraphs:</b> %L1 <b>Stycken:</b> %L1 <b>Characters:</b> %L1 / %L2 <b>Tecken:</b> %L1 / %L2 Set Delay Ställ in fördröjning Set Time Ställ in tid Delay: Fördröjning: Time: Tid: HH:mm:ss HH:mm:ss Alarm Alarm Type: Typ: Memo: Memo: Edit Redigera Delete Ta bort TimerDisplay HH:mm:ss HH: mm: ss No timers running Inga tidtagare är igång TimerManager Timers Tidtagare New Ny Recent Tidigare Question Fråga Cancel editing timers? Avbryt redigering av tidtagare? +HH:mm:ss +HH:mm:ss %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. Nådde oväntat slutet på filen. Window Loading themes Läser in teman Loading sounds Läser in ljud Untitled Namnlös Open File Öppna fil About FocusWriter Om FocusWriter FocusWriter FocusWriter A simple fullscreen word processor En enkel ordbehandlare med helskärmsläge Copyright &copy; 2008-%1 Graeme Gott Copyright &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Släppt under licensen <a href=%1>GPL 3</a> Uses icons from the <a href=%1>Oxygen</a> icon theme Använder ikoner från ikontemat <a href=%1>Oxygen</a> Used under the <a href=%1>LGPL 3</a> license Använda under licensen <a href=%1>GPL 3</a> Characters: %L1 / %L2 Tecken: %L1 / %L2 Pages: %L1 Sidor: %L1 Paragraphs: %L1 Stycken: %L1 Words: %L1 Ord: %L1 %1% of daily goal %1 % av dagligt mål Opening %1 Öppnar %1 Question Fråga Save changes? Spara ändringar? (Untitled %1) (Namnlös %1) Switch to Next Document Växla till nästa dokument Switch to Previous Document Växla till föregående dokument Switch to First Document Växla till första dokumentet Switch to Last Document Växla till sista dokumentet Switch to Document %1 Växla till dokument %1 Loading settings Läser in inställningar Emergency cache is not writable. Nödcachen är inte skrivbar. Warning Varning FocusWriter was not shut down cleanly. FocusWriter stängdes inte av korrekt. Restore from the emergency cache? Återställ från nödcachen? Some files could not be opened. Några filer kunde inte öppnas. Some files were opened Read-Only. Några filer öppnades som skrivskyddade. Text Files (%1);;All Files (*) Textfiler (%1);;Alla filer (*) '%1' is newer than the cached copy. "%1" är nyare än den mellanlagrade kopian. Overwrite newer file? Skriv över nyare fil? Unable to load typewriter sounds. Kunde inte läsa in skrivmaskinsljud. Please make sure that SDL_mixer is installed. Se till att SDL_mixer är installerat. %1 (Read-Only) %1 (skrivskyddad) &File &Arkiv &New &Nytt &Open... &Öppna... Reloa&d Läs in &igen &Save &Spara Save &As... Spara so&m... &Rename... &Byt namn... Save A&ll Spara a&lla Manage Sessions Hantera sessioner New Session Ny session &Print... Skriv &ut... &Close S&täng &Quit A&vsluta Ctrl+Q Ctrl+Q &Edit R&edigera &Undo &Ångra &Redo &Gör om Cu&t Klipp &ut &Copy &Kopiera &Paste Klistra &in Paste &Unformatted Klistra in &oformaterat Ctrl+Shift+V Ctrl+Skift+V Select &All Markera &allt Select &Scene Välj &scen Ctrl+Shift+A Ctrl+Skift+A Fo&rmat Fo&rmatera &Bold &Fet &Italic &Kursiv &Underline &Understruken Stri&kethrough G&enomstruken Ctrl+K Ctrl+K Sup&erscript Upphö&jd Ctrl+^ Ctrl+^ &Subscript Nedsän&kt Ctrl+_ Ctrl+_ Align &Left Justera &vänster Ctrl+{ Ctrl+{ Align &Center Justera &mitten Ctrl+| Ctrl+| Align &Right Justera &höger Ctrl+} Ctrl+} Align &Justify &Justera Ctrl+J Ctrl+J &Decrease Indent &Minska indrag Ctrl+< Ctrl+< I&ncrease Indent Öka in&drag Ctrl+> Ctrl+> Le&ft to Right Block Vänster till &högerblock Ri&ght to Left Block Höger till &vänsterblock &Tools Ver&ktyg &Find... &Sök... Find &Next Sök &nästa Find Pre&vious Sök &föregående &Replace... &Ersätt... Ctrl+R Ctrl+R Smart &Quotes Smarta &citationstecken Update &Document Uppdatera &dokument Update &Selection Uppdatera &markering &Spelling... Sta&vning... F7 F7 &Timers... &Tidtagare... S&ymbols... S&ymboler... &Settings &Inställningar Show &Toolbar Visa &verktygsrad Show &Menu Icons Visa &menyikoner F&ocused Text F&okuserad text &Fullscreen &Helskärm F11 F11 Esc Esc M&inimize Mi&nimera Ctrl+M Ctrl+M &Themes... &Teman... &Preferences... &Inställningar... Focus Off Fokus av Focus One Line Fokusera en rad Focus Three Lines Fokusera tre rader &Paragraph &Stycke Focus Paragraph Fokusera stycke &Help &Hjälp Application &Language... Programs&pråk... Some files were unsupported and could not be opened. Några filer stöds inte och kunde inte öppnas. &Off &Av One &Line En &rad &Three Lines &Tre rader &About &Om About &Qt Om &Qt focuswriter-1.4.5/translations/focuswriter_tr.qm000066400000000000000000000757521231434177300222630ustar00rootroot00000000000000R~c4V{ O1jϨ%_x3]c~h.Z0n%0n(0P2=qEtj%^lhB]s"nS^L9#c"uS ~Qaqjef^ zX.C]:JM6N VDPf3S]?.Llc`c"W'aF~f5`(^, 4Vz91^Cw>>JJ<)'G$[WO>||&FSvDᑞ6sKN- F-`~i( W@E)M@EuZ+9luz^Ԏ,Q4mZ#8 eI46Z:AXXXYY>YkYZCZp+Z,Z-Z(G,.o,H"bg%%:qM&~g=W<Ȟn[KhDfvC0:)4V RAa};vC7 IC8az;BD5EDQY0MTK5t5t F?F?FDnH50Gw?)MN%N%?2U3E@<L)tm=rFqM.dݲ #j'~cMsS=cAWUMP/\{2588Nh:VIIMJIINZB[,Lg=IlP,m'4zC@2Cz2.>llŮ|5O%O(޷2t!P[|w p}m4kP^ZSd%% `' @lC/ C` \~Q >e 6 "3 %^ Y v Y z z .3$ JR W/ Wa, 8 0 ·JH .^" n ŃZ +I_ :k ;fg d8 eE 3 q^" t, ]- ʀs7{ ˔S ˼C76 z_ Bj f  V47 c8~ ^* O #!% L.-' f($p iqo w99$ xj65 {"ugU Ncy  G( ʫ ʫ l ʫ ʫ/ ʫD= ʫI$ ʫK ʫd y A) pUn : Ea cH cJ >cJ P 6jf >S J?d Z$: eI iN!b tff} uC 0 sRJ B C> ` %| ( t 1W \ sO Dmr \ 8j DYY DY- DY.( DZZ ^3 noHH uu {N' Po IY <V ޘ Zc!T]nE<Nltr Acg *d_+Njd<4k@Uj+A NL9+W;e"iT>sTI*'-z C D" ioKapat (%1) Close (%1)Alert DaraltCollapseAlertGeni_letExpandAlert Ctrl+DCtrl+D AlertLayerUyar1y1 Kapat Dismiss Alert AlertLayer Tm Dosyalar (*) All Files (*)Document`Tm kaydedilmemi_ dei_iklikler kaybedilecektir.!All unsaved changes will be lost.Document4OpenDocument Metni (*.odt)OpenDocument Text (*.odt)Document"Dz Metin (*.txt)Plain Text (*.txt)DocumentSoruQuestionDocumentYeniden YkleReloadDocument*Dosyay1 Yeniden Ykle Reload FileDocumentP%1 dosyas1 diskten yeniden yklensin mi?Reload the file %1 from disk?Document0Dosyay1 Yeniden Adland1r Rename FileDocument(Zengin Metin (*.rtf)Rich Text (*.rtf)Document*Dosyay1 Farkl1 Kaydet Save File AsDocumentDz metin olarak kaydetmek tm biimlendirleri geersiz k1lacakt1r. Biimlendirmeler geersiz k1l1ns1n m1?ESaving as plain text will discard all formatting. Discard formatting?DocumentzgnmSorryDocument0'%1' zerine yaz1lamad1.Unable to overwrite '%1'.Document:'%1' yeniden adland1r1lamad1.Unable to rename '%1'.Document&'%1' kaydedilemedi.Unable to save '%1'.DocumentNDosyay1 yeniden yklemek ister misiniz?Do you want to reload the file?DocumentWatcher\Dosyay1 kaydetmek mi kapatmak m1 istiyorsunuz?&Do you want to save or close the file?DocumentWatcherDosya Dei_ti File ChangedDocumentWatcherDosya Silindi File DeletedDocumentWatcher YoksayIgnoreDocumentWatcherYeniden YkleReloadDocumentWatcherj%1 dosyas1 ba_ka bir program taraf1ndan dei_tirildi.+The file %1 was changed by another program.DocumentWatcher`%1 dosyas1 ba_ka bir program taraf1ndan silindi.+The file %1 was deleted by another program.DocumentWatcher&Bul&Find FindDialog&Dei_tir&Replace FindDialogBulFind FindDialog.Byk/kk harf yoksay Ignore case FindDialog"0fade bulunamad1.Phrase not found. FindDialogSoruQuestion FindDialog Kurall1 ifadelerRegular expressions FindDialogDei_tirReplace FindDialog0%n e dei_tirilsin mi?Replace %n instance(s)? FindDialog &Tmn Dei_tir Replace &All FindDialog"^ununla dei_tir: Replace with: FindDialog"A_a1ya doru ara Search down FindDialogAra: Search for: FindDialog$Yukar1ya doru ara Search up FindDialogzgnmSorry FindDialog,Yaln1zca tam szcklerWhole words only FindDialog$(neri bulunamad1)(No suggestions found) HighlighterEkleAdd Highlighter*Yaz1m Denetimi Yap...Check Spelling... HighlighterResimler(%1) Images(%1) ImageButtonResim A Open Image ImageButton<Sistem Dili> LocaleDialogNotNote LocaleDialogDil dei_ikliinin etkin olmas1 iin ltfen bu uygulamay1 yeniden ba_lat1n.JPlease restart this application for the change in language to take effect. LocaleDialog,Uygulama dilini sein:Select application language: LocaleDialog EylemActionPreferencesDialogEylemlerActionsPreferencesDialogEkleAddPreferencesDialogAyra Ekle Add SeparatorPreferencesDialog,Her zaman dikey ortalaAlways vertically centerPreferencesDialogJDei_iklikleri otomatik olarak kaydetAutomatically save changesPreferencesDialog.Ekleme imlecini engelleBlock insertion cursorPreferencesDialogKarakter say1s1Character countPreferencesDialogKarakter: Characters:PreferencesDialog6Yazarken yaz1m denetimi yapCheck spelling as you typePreferencesDialog KomutCommandPreferencesDialog 0erikContentsPreferencesDialogGnlk Hedef Daily GoalPreferencesDialog.Szck s1n1rlar1 alg1laDetect word boundariesPreferencesDialog8Karakter say1s1n1 alt1ya blDivide character count by sixPreferencesDialog Blen:Divider:PreferencesDialogiftDoublePreferencesDialogDzenlemeEditingPreferencesDialog GenelGeneralPreferencesDialog"Yaln1zca Simgeler Icons OnlyPreferencesDialog<BYK HARFL0 szckleri yoksayIgnore words in UPPERCASEPreferencesDialog:Say1 ieren szckleri yoksayIgnore words with numbersPreferencesDialogDilLanguagePreferencesDialogDakika:Minutes:PreferencesDialogA_a1 Ta_1 Move DownPreferencesDialogYukar1 Ta_1Move UpPreferencesDialogHibiriNonePreferencesDialogBir ya da daha fazla k1sayol ak1_1yor. Devam etmek istiyor musunuz?7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialogSayfa Boyutu Page SizePreferencesDialogSayfa say1s1 Page countPreferencesDialogParagraf say1s1Paragraph countPreferencesDialogParagraf: Paragraphs:PreferencesDialogKi_isel SzlkPersonal DictionaryPreferencesDialogTercihler PreferencesPreferencesDialogSoruQuestionPreferencesDialog(0mle konumu hat1rlaRemember cursor positionPreferencesDialog Kald1rRemovePreferencesDialogKaydetmeSavingPreferencesDialogSahnelerScenesPreferencesDialogSzlk SeinSelect DictionaryPreferencesDialogK1sayolShortcutPreferencesDialogK1sayollar ShortcutsPreferencesDialogTekSinglePreferencesDialog"Ak1ll1 t1rnaklar: Smart quotes:PreferencesDialog&Dzgn yaz1 tipleri Smooth fontsPreferencesDialogzgnmSorryPreferencesDialogYaz1m DenetimiSpell CheckingPreferencesDialog0statistikler StatisticsPreferencesDialogStilStylePreferencesDialog&Simge Yan1nda MetinText Alongside IconsPreferencesDialogYaln1zca Metin Text OnlyPreferencesDialog Metin Pozisyonu:Text Position:PreferencesDialog&Simge Alt1nda MetinText Under IconsPreferencesDialogTAr_iv kullan1labilir bir szlk iermiyor.1The archive does not contain a usable dictionary.PreferencesDialogd"%1" szl zaten var. Dei_tirmek ister misiniz?>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialogAra ubuuToolbarPreferencesDialogDaktilo sesleriTypewriter soundsPreferencesDialog4'%1' dosyas1 kapat1lamad1.Unable to close file '%1'.PreferencesDialog Ar_iv a1lamad1.Unable to open archive.PreferencesDialog.'%1' dosyas1 a1lamad1.Unable to open file '%1'.PreferencesDialog>Ar_iv meta verileri okunam1yor. Unable to read archive metadata.PreferencesDialog0Szck Say1m Algoritmas1Word Count AlgorithmPreferencesDialogKelime say1s1 Word countPreferencesDialogKelime:Words:PreferencesDialogDDesteklenen bir RTF dosyas1 deil.Not a supported RTF file.Reader4'%1' dosyas1 kapat1lamad1.Unable to close file '%1'.Reader Ar_iv a1lamad1.Unable to open archive.Reader.'%1' dosyas1 a1lamad1.Unable to open file '%1'.Reader&Ctrl+Shift+A_a1 OkCtrl+Shift+Down SceneList(Ctrl+Shift+Yukar1 Ok Ctrl+Shift+Up SceneListFiltreleFilter SceneList4Sahne listesini gizle (%1)Hide scene list (%1) SceneList(Sahneleri A_a1 Ta_1Move Scenes Down SceneList*Sahneleri Yukar1 Ta_1Move Scenes Up SceneListFSahne listesini yeniden boyutland1rResize scene list SceneListShift+F4Shift+F4 SceneList6Sahne listesini gster (%1)Show scene list (%1) SceneList6Sahneler Aras1nda Gei_ YapToggle Scene List SceneListVarsay1lanDefaultSessionY&net... &Manage...SessionManager&Yeni...&New...SessionManager KlonlaCloneSessionManagerOturumu Klonla Clone SessionSessionManagerCtrl+Shift+M Ctrl+Shift+MSessionManagerCtrl+Shift+N Ctrl+Shift+NSessionManagerSilDeleteSessionManager4Seili oturum silinsin mi?Delete selected session?SessionManager Oturumlar1 YnetManage SessionsSessionManagerYeniNewSessionManagerYeni Oturum New SessionSessionManagerSoruQuestionSessionManager Yeniden adland1rRenameSessionManager0Oturumu Yeniden Adland1rRename SessionSessionManager&Oturumlar S&essionsSessionManagerOturum ad1: Session name:SessionManagerzgnmSorrySessionManagerGei_ Yap Switch ToSessionManagerH0stenen oturum ad1 zaten kullan1mda.-The requested session name is already in use.SessionManagerTemizleClear ShortcutEdit&Varsay1lana S1f1rlaReset to Default ShortcutEditK1sayol: Shortcut: ShortcutEditLtfen Bekleyin Please Wait SmartQuoteFT1rnak i_aretleri dei_tiriliyor...Replacing quotation marks... SmartQuote &Ekle&Add SpellChecker&Dei_tir&Change SpellChecker&Yoksay&Ignore SpellChecker &Tmn Dei_tir C&hange All SpellChecker0ptal EtCancel SpellCheckerDei_tir: Change to: SpellChecker$Yaz1m Denetimi YapCheck Spelling SpellChecker:Yaz1m denetimi yap1l1l1yor...Checking spelling... SpellChecker&Tmn Gizle I&gnore All SpellCheckerSzlkte yok:Not in dictionary: SpellCheckerLtfen bekleyin Please wait SpellChecker4Yaz1m denetimi tamamland1.Spell check complete. SpellCheckerTm simgeler All symbols SymbolsDialogAyr1nt1larDetails SymbolsDialogEkleInsert SymbolsDialog 0sim:Name: SymbolsDialog.Son kullan1lan simgelerRecently used symbols SymbolsDialogSimgelerSymbols SymbolsDialogBloklarBlocks SymbolsModelBetiklerScripts SymbolsModelBa_l1ks1z %1 Untitled %1Theme piksel pixels ThemeDialog1.5 Sat1r 1.5 Lines ThemeDialogArka Plan Background ThemeDialog OrtalaCentered ThemeDialog Renk:Color: ThemeDialogiftDouble ThemeDialogYaz1 Tipi:Font: ThemeDialogn Plan Foreground ThemeDialog Resim:Image: ThemeDialog*Sat1r Ba_1 Girintisi:Indent First Line: ThemeDialogSolLeft ThemeDialogSat1r Aral11 Line Spacing ThemeDialogKenar Bo_luu:Margin: ThemeDialog0mla Hatalar1: Misspelled: ThemeDialogTemay1 Dzenle Modify Theme ThemeDialog 0sim:Name: ThemeDialogResim YokNo Image ThemeDialogOpakl1kOpacity ThemeDialog Dolgu:Padding: ThemeDialog Paragraf Bo_luuParagraph Spacing ThemeDialogstte Piksel: Pixels Above: ThemeDialogAltta Piksel: Pixels Below: ThemeDialogPozisyonPosition ThemeDialogOrant1sal Proportional ThemeDialog Kald1rRemove ThemeDialogSaRight ThemeDialogYuvarlama: Rounding: ThemeDialoglekleScaled ThemeDialogTekSingle ThemeDialog Boyut:Size: ThemeDialogBo_luklarSpacings ThemeDialogUzat Stretched ThemeDialog MetinText ThemeDialogVPijamal1 hasta ya1z _ofre abucak gvendi+The quick brown fox jumps over the lazy dog ThemeDialogD_eTiled ThemeDialogTr:Type: ThemeDialogYak1nla_t1rZoomed ThemeDialogrZaten bu isimde bir tema var. Ltfen yeni bir isim girin:?A theme already exists with that name. Please enter a new name: ThemeManagerEkleAdd ThemeManager KapatClose ThemeManagerVerExport ThemeManagerTemay1 Ver Export Theme ThemeManagerAlImport ThemeManagerTemay1 Al Import Theme ThemeManagerDzenleModify ThemeManagerSoruQuestion ThemeManager Kald1rRemove ThemeManager4Seili temay1 silinsin mi?Remove selected theme? ThemeManagerzgnmSorry ThemeManagerTemalarThemes ThemeManager0Temalar (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManager Temalar (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer4<b>Karakter:</b> %L1 / %L2Characters: %L1 / %L2Timer"<b>Sayfa:</b> %L1Pages: %L1Timer(<b>Paragraf:</b> %L1Paragraphs: %L1Timer$<b>Kelime:</b> %L1Words: %L1Timer AlarmAlarmTimer Sre:Delay:TimerSilDeleteTimer0Zamanlay1c1 silinsin mi? Delete timer?TimerDzenleEditTimerHH:mm:ssHH:mm:ssTimerNot:Memo:TimerSoruQuestionTimerSre Ayarla Set DelayTimerSaat AyarlaSet TimeTimer Saat:Time:TimerTr:Type:TimerHH:mm:ssHH:mm:ss TimerDisplay.al1_an zamanlay1c1 yokNo timers running TimerDisplay%1 - %2%1 - %2 TimerManager+HH:mm:ss +HH:mm:ss TimerManagerNZamanlay1c1 dzenleme iptal edilsin mi?Cancel editing timers? TimerManagerYeniNew TimerManagerSoruQuestion TimerManagerSonRecent TimerManagerZamanlay1c1larTimers TimerManager\Beklenmedik bir biimde dosya sonuna ula_1ld1.!Unexpectedly reached end of file. Tokenizer %1 (Salt Okunur)%1 (Read-Only)Window2Gnlk hedefin %1% blm%1% of daily goalWindow&Hakk1nda&AboutWindow &Kal1n&BoldWindow Ka&pat&CloseWindowK&opyala&CopyWindow &Girintiyi Azalt&Decrease IndentWindow D&zen&EditWindow &Dosya&FileWindow&Bul...&Find...WindowTam &Ekran &FullscreenWindow&Yard1m&HelpWindow&0talik&ItalicWindow &Yeni&NewWindow&Kapal1&OffWindow &A...&Open...Window&Paragraf &ParagraphWindowY&ap1_t1r&PasteWindow&Tercihler...&Preferences...WindowYa&zd1r... &Print...Window&1k&QuitWindow&Yinele&RedoWindow"Yeni &0sim Ver... &Rename...Window&Dei_tir... &Replace...Window&Kaydet&SaveWindow&Ayarlar &SettingsWindow$&Yaz1m Denetimi... &Spelling...WindowA&lt Simge &SubscriptWindow&Temalar... &Themes...Window& Sat1r &Three LinesWindow$&Zamanlay1c1lar... &Timers...Window&Aralar&ToolsWindow&Alt1 izili &UnderlineWindow&Geri Al&UndoWindowT'%1' nbellee al1nm1_ kopyadan daha yeni.#'%1' is newer than the cached copy.Window(Ba_l1ks1z %1) (Untitled %1)WindowDBasit bir tam ekran kelime i_lemci"A simple fullscreen word processorWindow&Qt Hakk1nda About &QtWindow(FocusWriter Hakk1ndaAbout FocusWriterWindow&Ortala Align &CenterWindow0ki &Yana YaslaAlign &JustifyWindowSo&la Yasla Align &LeftWindowSa&a Yasla Align &RightWindow$&Uygulama Dili ...Application &Language...Window&Karakter: %L1 / %L2Characters: %L1 / %L2WindowbTelif haklar1 sakl1d1r &copy; 2008-%1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindow Ctrl+<Ctrl+<Window Ctrl+>Ctrl+>Window Ctrl+JCtrl+JWindow Ctrl+KCtrl+KWindow Ctrl+MCtrl+MWindow Ctrl+QCtrl+QWindow Ctrl+RCtrl+RWindowCtrl+Shift+A Ctrl+Shift+AWindowCtrl+Shift+V Ctrl+Shift+VWindow Ctrl+^Ctrl+^Window Ctrl+_Ctrl+_Window Ctrl+{Ctrl+{Window Ctrl+|Ctrl+|Window Ctrl+}Ctrl+}Window&KesCu&tWindow@Acil nbellek yaz1labilir deil. Emergency cache is not writable.WindowEscEscWindow$&Odaklan1lan Metin F&ocused TextWindowF11F11WindowF7F7Window&Sonrakini Bul Find &NextWindow&ncekini BulFind Pre&viousWindow &BiimFo&rmatWindow"Odaklanmay1 Kapat Focus OffWindow$Bir Sat1ra OdaklanFocus One LineWindow"Paragrafa OdaklanFocus ParagraphWindow" Sat1ra OdaklanFocus Three LinesWindowFocusWriter FocusWriterWindowTFocusWriter temiz bir _ekilde kapat1lmad1.&FocusWriter was not shut down cleanly.Window"Gi&rintiyi Artt1rI&ncrease IndentWindow"S&oldan Saa BlokLe&ft to Right BlockWindow$Ayarlar ykleniyorLoading settingsWindow"Sesler ykleniyorLoading soundsWindow$Temalar ykleniyorLoading themesWindow&Klt M&inimizeWindow Oturumlar1 YnetManage SessionsWindowYeni Oturum New SessionWindow&Bir Sat1r One &LineWindowDosyay1 A Open FileWindow%1 a1l1yor Opening %1WindowNDaha yeni dosyan1n zerine yaz1ls1n m1?Overwrite newer file?WindowSayfa: %L1 Pages: %L1WindowParagraf: %L1Paragraphs: %L1Window>&Biimlendirme Olmadan Yap1_t1rPaste &UnformattedWindowPSDL_mixer'1n ykl olduundan emin olun.-Please make sure that SDL_mixer is installed.WindowSoruQuestionWindowf<a href=%1>GPL 3</a> lisans1 alt1nda yay1nlanm1_t1r/Released under the GPL 3 licenseWindow&Yeniden YkleReloa&dWindow@Acil nbellekten kurtar1ls1n m1?!Restore from the emergency cache?Window"Sa&dan Sola BlokRi&ght to Left BlockWindow&Simgeler... S&ymbols...Window"&Farkl1 Kaydet... Save &As...Window&Tmn Kaydet Save A&llWindow4Dei_ikler kaydedilsin mi? Save changes?Window&Tmn Se Select &AllWindow&Sahneyi Se Select &SceneWindow0&Men Simgelerini GsterShow &Menu IconsWindow*&Ara ubuunu Gster Show &ToolbarWindow"&Ak1ll1 T1rnaklar Smart &QuotesWindow0Baz1 dosyalar a1lamad1.Some files could not be opened.WindowPBaz1 dosyalar salt okunur olarak a1ld1.!Some files were opened Read-Only.WindowTBaz1 dosyalar desteklenmiyor ve a1lamad1.4Some files were unsupported and could not be opened.Window&st iziliStri&kethroughWindow&st Simge Sup&erscriptWindow%1. Belgeye GeSwitch to Document %1Window0lk Belgeye GeSwitch to First DocumentWindowSon Belgeye GeSwitch to Last DocumentWindow&Sonraki Belgeye GeSwitch to Next DocumentWindow$nceki Belgeye GeSwitch to Previous DocumentWindowLMetin Dosyalar1 (%1);;Tm Dosyalar (*)Text Files (%1);;All Files (*)Window:Daktilo sesleri yklenemiyor.!Unable to load typewriter sounds.WindowBa_l1ks1zUntitledWindow$&Dkman1 GncelleUpdate &DocumentWindow$&Seilimi GncelleUpdate &SelectionWindowb<a href=%1>GPL 3</a> lisans1 alt1nda kullan1l1yor,Used under the LGPL 3 licenseWindowx<a href=%1>Oxygen</a> simge temas1ndan simgeler kullan1l1yor4Uses icons from the Oxygen icon themeWindow Uyar1WarningWindowKelime: %L1 Words: %L1Windowfocuswriter-1.4.5/translations/focuswriter_tr.ts000066400000000000000000002236201231434177300222610ustar00rootroot00000000000000 Alert Close (%1) Kapat (%1) Collapse Daralt Expand Genişlet AlertLayer Dismiss Alert Uyarıyı Kapat Ctrl+D Ctrl+D Document Sorry Üzgünüm Unable to save '%1'. '%1' kaydedilemedi. Save File As Dosyayı Farklı Kaydet Unable to overwrite '%1'. '%1' üzerine yazılamadı. Rename File Dosyayı Yeniden Adlandır Unable to rename '%1'. '%1' yeniden adlandırılamadı. Reload File Dosyayı Yeniden Yükle Reload the file %1 from disk? %1 dosyası diskten yeniden yüklensin mi? All unsaved changes will be lost. Tüm kaydedilmemiş değişiklikler kaybedilecektir. Reload Yeniden Yükle Plain Text (*.txt) Düz Metin (*.txt) Question Soru Saving as plain text will discard all formatting. Discard formatting? Düz metin olarak kaydetmek tüm biçimlendirleri geçersiz kılacaktır. Biçimlendirmeler geçersiz kılınsın mı? OpenDocument Text (*.odt) OpenDocument Metni (*.odt) Rich Text (*.rtf) Zengin Metin (*.rtf) All Files (*) Tüm Dosyalar (*) DocumentWatcher File Changed Dosya Değişti The file %1 was changed by another program. %1 dosyası başka bir program tarafından değiştirildi. Do you want to reload the file? Dosyayı yeniden yüklemek ister misiniz? Reload Yeniden Yükle Ignore Yoksay File Deleted Dosya Silindi The file %1 was deleted by another program. %1 dosyası başka bir program tarafından silindi. Do you want to save or close the file? Dosyayı kaydetmek mi kapatmak mı istiyorsunuz? FindDialog Search for: Ara: Replace with: Şununla değiştir: Ignore case Büyük/küçük harf yoksay Whole words only Yalnızca tam sözcükler Regular expressions Kurallı ifadeler Search up Yukarıya doğru ara Search down Aşağıya doğru ara &Find &Bul &Replace &Değiştir Replace &All &Tümünü Değiştir Find Bul Replace Değiştir Replace %n instance(s)? %n öğe değiştirilsin mi? Question Soru Sorry Üzgünüm Phrase not found. İfade bulunamadı. Highlighter Add Ekle Check Spelling... Yazım Denetimi Yap... (No suggestions found) (Öneri bulunamadı) ImageButton Open Image Resim Aç Images(%1) Resimler(%1) LocaleDialog Select application language: Uygulama dilini seçin: <System Language> <Sistem Dili> Note Not Please restart this application for the change in language to take effect. Dil değişikliğinin etkin olması için lütfen bu uygulamayı yeniden başlatın. PreferencesDialog Preferences Tercihler General Genel Statistics İstatistikler Toolbar Araç Çubuğu Spell Checking Yazım Denetimi Select Dictionary Sözlük Seçin Sorry Üzgünüm Unable to open archive. Arşiv açılamadı. Unable to read archive metadata. Arşiv meta verileri okunamıyor. The archive does not contain a usable dictionary. Arşiv kullanılabilir bir sözlük içermiyor. Unable to open file '%1'. '%1' dosyası açılamadı. Unable to close file '%1'. '%1' dosyası kapatılamadı. Question Soru Shortcuts Kısayollar One or more shortcuts conflict. Do you wish to proceed? Bir ya da daha fazla kısayol çakışıyor. Devam etmek istiyor musunuz? The dictionary "%1" already exists. Do you want to replace it? "%1" sözlüğü zaten var. Değiştirmek ister misiniz? Daily Goal Günlük Hedef None Hiçbiri Minutes: Dakika: Words: Kelime: Editing Düzenleme Always vertically center Her zaman dikey ortala Block insertion cursor Ekleme imlecini engelle Smooth fonts Düzgün yazı tipleri Typewriter sounds Daktilo sesleri Smart quotes: Akıllı tırnaklar: Double Çift Single Tek Scenes Sahneler Divider: Bölen: Saving Kaydetme Automatically save changes Değişiklikleri otomatik olarak kaydet Remember cursor position İmleç konumu hatırla Contents İçerik Word count Kelime sayısı Page count Sayfa sayısı Paragraph count Paragraf sayısı Character count Karakter sayısı Page Size Sayfa Boyutu Characters: Karakter: Paragraphs: Paragraf: Word Count Algorithm Sözcük Sayım Algoritması Detect word boundaries Sözcük sınırları algıla Divide character count by six Karakter sayısını altıya böl Style Stil Icons Only Yalnızca Simgeler Text Only Yalnızca Metin Text Alongside Icons Simge Yanında Metin Text Under Icons Simge Altında Metin Text Position: Metin Pozisyonu: Actions Eylemler Move Up Yukarı Taşı Move Down Aşağı Taşı Add Separator Ayraç Ekle Command Komut Shortcut Kısayol Action Eylem Check spelling as you type Yazarken yazım denetimi yap Ignore words in UPPERCASE BÜYÜK HARFLİ sözcükleri yoksay Ignore words with numbers Sayı içeren sözcükleri yoksay Language Dil Add Ekle Remove Kaldır Personal Dictionary Kişisel Sözlük Reader Not a supported RTF file. Desteklenen bir RTF dosyası değil. Unable to open archive. Arşiv açılamadı. Unable to open file '%1'. '%1' dosyası açılamadı. Unable to close file '%1'. '%1' dosyası kapatılamadı. SceneList Ctrl+Shift+Down Ctrl+Shift+Aşağı Ok Move Scenes Up Sahneleri Yukarı Taşı Ctrl+Shift+Up Ctrl+Shift+Yukarı Ok Toggle Scene List Sahneler Arasında Geçiş Yap Shift+F4 Shift+F4 Show scene list (%1) Sahne listesini göster (%1) Hide scene list (%1) Sahne listesini gizle (%1) Filter Filtrele Move Scenes Down Sahneleri Aşağı Taşı Resize scene list Sahne listesini yeniden boyutlandır Session Default Varsayılan SessionManager Manage Sessions Oturumları Yönet S&essions &Oturumlar New Yeni Rename Yeniden adlandır Clone Klonla Delete Sil Switch To Geçiş Yap New Session Yeni Oturum Clone Session Oturumu Klonla Rename Session Oturumu Yeniden Adlandır Question Soru Delete selected session? Seçili oturum silinsin mi? Session name: Oturum adı: Sorry Üzgünüm The requested session name is already in use. İstenen oturum adı zaten kullanımda. &New... &Yeni... Ctrl+Shift+N Ctrl+Shift+N &Manage... Y&önet... Ctrl+Shift+M Ctrl+Shift+M ShortcutEdit Clear Temizle Reset to Default Varsayılana Sıfırla Shortcut: Kısayol: SmartQuote Replacing quotation marks... Tırnak işaretleri değiştiriliyor... Please Wait Lütfen Bekleyin SpellChecker Check Spelling Yazım Denetimi Yap &Add &Ekle &Ignore &Yoksay I&gnore All &Tümünü Gizle &Change &Değiştir C&hange All &Tümünü Değiştir Not in dictionary: Sözlükte yok: Change to: Değiştir: Checking spelling... Yazım denetimi yapılılıyor... Cancel İptal Et Please wait Lütfen bekleyin Spell check complete. Yazım denetimi tamamlandı. SymbolsDialog Symbols Simgeler Recently used symbols Son kullanılan simgeler All symbols Tüm simgeler Details Ayrıntılar Name: İsim: Insert Ekle SymbolsModel Blocks Bloklar Scripts Betikler Theme Untitled %1 Başlıksız %1 ThemeDialog Modify Theme Temayı Düzenle Name: İsim: Background Arka Plan No Image Resim Yok Tiled Döşe Centered Ortala Stretched Uzat Scaled Ölçekle Zoomed Yakınlaştır Remove Kaldır Type: Tür: Color: Renk: Image: Resim: Foreground Ön Plan Opacity Opaklık pixels piksel Left Sol Right Sağ Position Pozisyon Size: Boyut: Rounding: Yuvarlama: Margin: Kenar Boşluğu: Padding: Dolgu: Text Metin Font: Yazı Tipi: Misspelled: İmla Hataları: Spacings Boşluklar Line Spacing Satır Aralığı Single Tek 1.5 Lines 1.5 Satır Double Çift Proportional Orantısal Paragraph Spacing Paragraf Boşluğu Indent First Line: Satır Başı Girintisi: Pixels Above: Üstte Piksel: Pixels Below: Altta Piksel: The quick brown fox jumps over the lazy dog Pijamalı hasta yağız şoföre çabucak güvendi ThemeManager Themes Temalar Add Ekle Modify Düzenle Remove Kaldır Import Al Export Ver Close Kapat Question Soru Remove selected theme? Seçili temayı silinsin mi? Import Theme Temayı Al Themes (*.fwtz *.theme) Temalar (*.fwtz *.theme) Themes (*.fwtz) Temalar (*.fwtz) Sorry Üzgünüm A theme already exists with that name. Please enter a new name: Zaten bu isimde bir tema var. Lütfen yeni bir isim girin: Export Theme Temayı Ver Timer <b>%1</b> - %2 <b>%1</b> - %2 Question Soru Delete timer? Zamanlayıcı silinsin mi? <b>Words:</b> %L1 <b>Kelime:</b> %L1 <b>Pages:</b> %L1 <b>Sayfa:</b> %L1 <b>Paragraphs:</b> %L1 <b>Paragraf:</b> %L1 <b>Characters:</b> %L1 / %L2 <b>Karakter:</b> %L1 / %L2 Set Delay Süre Ayarla Set Time Saat Ayarla Delay: Süre: Time: Saat: HH:mm:ss HH:mm:ss Alarm Alarm Type: Tür: Memo: Not: Edit Düzenle Delete Sil TimerDisplay HH:mm:ss HH:mm:ss No timers running Çalışan zamanlayıcı yok TimerManager Timers Zamanlayıcılar New Yeni Recent Son Question Soru Cancel editing timers? Zamanlayıcı düzenleme iptal edilsin mi? +HH:mm:ss +HH:mm:ss %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. Beklenmedik bir biçimde dosya sonuna ulaşıldı. Window Loading themes Temalar yükleniyor Loading sounds Sesler yükleniyor Untitled Başlıksız Open File Dosyayı Aç About FocusWriter FocusWriter Hakkında FocusWriter FocusWriter A simple fullscreen word processor Basit bir tam ekran kelime işlemci Copyright &copy; 2008-%1 Graeme Gott Telif hakları saklıdır &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license <a href=%1>GPL 3</a> lisansı altında yayınlanmıştır Uses icons from the <a href=%1>Oxygen</a> icon theme <a href=%1>Oxygen</a> simge temasından simgeler kullanılıyor Used under the <a href=%1>LGPL 3</a> license <a href=%1>GPL 3</a> lisansı altında kullanılıyor Characters: %L1 / %L2 Karakter: %L1 / %L2 Pages: %L1 Sayfa: %L1 Paragraphs: %L1 Paragraf: %L1 Words: %L1 Kelime: %L1 %1% of daily goal Günlük hedefin %1% bölümü Opening %1 %1 açılıyor Question Soru Save changes? Değişikler kaydedilsin mi? (Untitled %1) (Başlıksız %1) Switch to Next Document Sonraki Belgeye Geç Switch to Previous Document Önceki Belgeye Geç Switch to First Document İlk Belgeye Geç Switch to Last Document Son Belgeye Geç Switch to Document %1 %1. Belgeye Geç Loading settings Ayarlar yükleniyor Emergency cache is not writable. Acil önbellek yazılabilir değil. Warning Uyarı FocusWriter was not shut down cleanly. FocusWriter temiz bir şekilde kapatılmadı. Restore from the emergency cache? Acil önbellekten kurtarılsın mı? Some files could not be opened. Bazı dosyalar açılamadı. Some files were opened Read-Only. Bazı dosyalar salt okunur olarak açıldı. Text Files (%1);;All Files (*) Metin Dosyaları (%1);;Tüm Dosyalar (*) '%1' is newer than the cached copy. '%1' önbelleğe alınmış kopyadan daha yeni. Overwrite newer file? Daha yeni dosyanın üzerine yazılsın mı? Unable to load typewriter sounds. Daktilo sesleri yüklenemiyor. Please make sure that SDL_mixer is installed. SDL_mixer'ın yüklü olduğundan emin olun. %1 (Read-Only) %1 (Salt Okunur) &File &Dosya &New &Yeni &Open... &Aç... Reloa&d &Yeniden Yükle &Save &Kaydet Save &As... &Farklı Kaydet... &Rename... Yeni &İsim Ver... Save A&ll &Tümünü Kaydet Manage Sessions Oturumları Yönet New Session Yeni Oturum &Print... Ya&zdır... &Close Ka&pat &Quit &Çık Ctrl+Q Ctrl+Q &Edit D&üzen &Undo &Geri Al &Redo &Yinele Cu&t &Kes &Copy K&opyala &Paste Y&apıştır Paste &Unformatted &Biçimlendirme Olmadan Yapıştır Ctrl+Shift+V Ctrl+Shift+V Select &All &Tümünü Seç Select &Scene &Sahneyi Seç Ctrl+Shift+A Ctrl+Shift+A Fo&rmat &Biçim &Bold &Kalın &Italic &İtalik &Underline &Altı Çizili Stri&kethrough &Üstü Çizili Ctrl+K Ctrl+K Sup&erscript Ü&st Simge Ctrl+^ Ctrl+^ &Subscript A&lt Simge Ctrl+_ Ctrl+_ Align &Left So&la Yasla Ctrl+{ Ctrl+{ Align &Center &Ortala Ctrl+| Ctrl+| Align &Right Sa&ğa Yasla Ctrl+} Ctrl+} Align &Justify İki &Yana Yasla Ctrl+J Ctrl+J &Decrease Indent &Girintiyi Azalt Ctrl+< Ctrl+< I&ncrease Indent Gi&rintiyi Arttır Ctrl+> Ctrl+> Le&ft to Right Block S&oldan Sağa Blok Ri&ght to Left Block Sa&ğdan Sola Blok &Tools &Araçlar &Find... &Bul... Find &Next &Sonrakini Bul Find Pre&vious &Öncekini Bul &Replace... &Değiştir... Ctrl+R Ctrl+R Smart &Quotes &Akıllı Tırnaklar Update &Document &Dökümanı Güncelle Update &Selection &Seçilimi Güncelle &Spelling... &Yazım Denetimi... F7 F7 &Timers... &Zamanlayıcılar... S&ymbols... &Simgeler... &Settings &Ayarlar Show &Toolbar &Araç Çubuğunu Göster Show &Menu Icons &Menü Simgelerini Göster F&ocused Text &Odaklanılan Metin &Fullscreen Tam &Ekran F11 F11 Esc Esc M&inimize &Küçült Ctrl+M Ctrl+M &Themes... &Temalar... &Preferences... &Tercihler... Focus Off Odaklanmayı Kapat Focus One Line Bir Satıra Odaklan Focus Three Lines Üç Satıra Odaklan &Paragraph &Paragraf Focus Paragraph Paragrafa Odaklan &Help &Yardım Application &Language... &Uygulama Dili ... Some files were unsupported and could not be opened. Bazı dosyalar desteklenmiyor ve açılamadı. &Off &Kapalı One &Line &Bir Satır &Three Lines &Üç Satır &About &Hakkında About &Qt &Qt Hakkında focuswriter-1.4.5/translations/focuswriter_uk.qm000066400000000000000000000533511231434177300222440ustar00rootroot00000000000000!+=+>+į@@H(4J6EJ6/KQMez(PH)S*6T'[T*X+Z,ZiZi>ZiZi#oZi2.Z%[.P[6\.\6\*_ >?Jc4B5O#%G4. (0nW0nP2*q2tLxL8S^z(cQS ~>zX 0K:JD:6:A=Jf3@P?.9fcG"C'a3~J{G, 4A9#^0J)'4W<>| 3@1ᑞ& ks8(N 3=( W-oM@2lu-Ԏ>U JI% 6Z(nCkCfCCDDLDyDD+E,E--EZ(5 , ,5<bK%n%(MMBhD2v0 %EAI'})Kv0D%E1$QY*"T8F7F+F1H5"SGs,]N%N%,2b<91tLr3M ݲ|jc Uc.U:0/F!25:ByII9JI6|Z g*l=m.+wlA@OBOv!)* sIlC m p'Fh+9 ^$! 0Jw%279}sG9Nl|wp}M'F-C!TCH_ } \~= & "$_ %^p z zr .3 J? W! WH #% ·7^ .^  Ń ;fKC eEp q^D t ˔@ f < #t L.\ f( iqM w9' xj&>  4> ʫ ʫ ʫ" ʫ1Y ʫ6H ʫ8 ʫI  A) ) EH c5 c7% >c7 =} 6L >? J, Z$(4 e6 iN!Ih tfJ u " s? . D   t s< DM3 F DY " DY i ^3 no5l uu {N9 I < ZcE*=AcKdF;`ArA 'eKs@-zFC"TiN3>@=CB8CollapseAlert >73>@=CB8ExpandAlert Ctrl+DCtrl+D AlertLayerAV D09;8 (*) All Files (*)Document$5@59<5=C20B8 D09; Rename FileDocument4$>@<0B>20=89 B5:AB (*.rtf)Rich Text (*.rtf)Document 15@53B8 D09; O: Save File AsDocument0 60;LSorryDocument:5 240;>AL ?5@570?8A0B8 '%1'.Unable to overwrite '%1'.Document<5 240;>AL ?5@59<5=C20B8 '%1'.Unable to rename '%1'.Document25 240;>AL 715@53B8 '%1'.Unable to save '%1'.Document =09B8Find FindDialog$3=>@C20B8 @53VAB@ Ignore case FindDialog$$@070 =5 7=0945=0.Phrase not found. FindDialog 0?8BQuestion FindDialog0<V=8B8Replace FindDialog,0<V=8B8 %n ?@8<V@=8:?.0<V=8B8 %n ?@8<V@=8:8?00<V=8B8 %n ?@8<V@=8:V2?Replace %n instance(s)? FindDialog0<V=8B8 =0: Replace with: FindDialog>HC: 2=87 Search down FindDialog=09B8: Search for: FindDialog>HC: C25@E Search up FindDialog0 60;LSorry FindDialog 8H5 ?>2=V A;>20Whole words only FindDialog0(@>?>78FV9 =5 7=0945=>)(No suggestions found) Highlighter >40B8Add Highlighter,5@52V@:0 ?@02>?8AC...Check Spelling... Highlighter>1@065=L(%1) Images(%1) ImageButton&V4:@8B8 7>1@065==O Open Image ImageButton@8<VB:0Note LocaleDialogp5@570?CABVBL ?@>3@0<C, I>1 7<V=0 <>28 =01@0;0 G8==>ABV.JPlease restart this application for the change in language to take effect. LocaleDialog.815@VBL <>2C ?@>3@0<8:Select application language: LocaleDialogVWActionsPreferencesDialog >40B8AddPreferencesDialog">40B8 @>74V;N20G Add SeparatorPreferencesDialog:02648 F5=B@C20B8 25@B8:0;L=>Always vertically centerPreferencesDialog6<V=8 715@V30B8 02B><0B8G=>Automatically save changesPreferencesDialog0;>:C20B8 :C@A>@ 2AB02:8Block insertion cursorPreferencesDialog$V;L:VABL A8<2>;V2Character countPreferencesDialog!8<2>;V2: Characters:PreferencesDialogH5@52V@OB8 ?@02>?8A ?V4 G0A 22545==OCheck spelling as you typePreferencesDialog <VABContentsPreferencesDialog )>45==V 70240==O Daily GoalPreferencesDialog(87=0G0B8 <56V A;>20Detect word boundariesPreferencesDialogDV;8B8 :V;L:VABL A8<2>;V2 =0 HVABLDivide character count by sixPreferencesDialog>42V9=VDoublePreferencesDialog 5403C20==OEditingPreferencesDialog030;L=5GeneralPreferencesDialog8H5 7=0G:8 Icons OnlyPreferencesDialogJ3=>@C20B8 A;>20 C  %,# @53VAB@VIgnore words in UPPERCASEPreferencesDialog43=>@C20B8 A;>20 7 F8D@0<8Ignore words with numbersPreferencesDialog>20LanguagePreferencesDialog%28;8=:Minutes:PreferencesDialog 5@5<VAB8B8 2=87 Move DownPreferencesDialog"5@5<VAB8B8 C25@EMove UpPreferencesDialog 5<0TNonePreferencesDialog >7<V@ AB>@V=:8 Page SizePreferencesDialog$V;L:VABL AB>@V=>: Page countPreferencesDialog"V;L:VABL 0170FV2Paragraph countPreferencesDialog170FV2: Paragraphs:PreferencesDialog"A>18AB89 A;>2=8:Personal DictionaryPreferencesDialog0@0<5B@8 PreferencesPreferencesDialog0?8B0==OQuestionPreferencesDialog20<'OB0B8 ?>78FVN :C@A>@CRemember cursor positionPreferencesDialog8;CG8B8RemovePreferencesDialog15@565==OSavingPreferencesDialog81@0B8 A;>2=8:Select DictionaryPreferencesDialog48=0@=VSinglePreferencesDialog@O<V ;0?:8: Smart quotes:PreferencesDialog 3;0465=V H@8DB8 Smooth fontsPreferencesDialog0 60;LSorryPreferencesDialog&5@52V@:0 ?@02>?8ACSpell CheckingPreferencesDialog!B0B8AB8:0 StatisticsPreferencesDialog !B8;LStylePreferencesDialog$"5:AB 1V;O 7=0G:V2Text Alongside IconsPreferencesDialog8H5 B5:AB Text OnlyPreferencesDialog( >7B0HC20==O B5:ABC:Text Position:PreferencesDialog$"5:AB ?V4 7=0G:0<8Text Under IconsPreferencesDialogJ@EV2 =5 <VAB8BL ?@840B=>3> A;>2=8:0.1The archive does not contain a usable dictionary.PreferencesDialogR!;>2=8: "%1" 265 T. %>G5B5 70<V=8B8 9>3>?>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialog&0=5;L V=AB@C<5=BV2ToolbarPreferencesDialog22C:8 4@C:0@AL:>W <0H8=:8Typewriter soundsPreferencesDialog:5 240;>AL 70:@8B8 D09; '%1'.Unable to close file '%1'.PreferencesDialog45 240;>AL 2V4:@8B8 0@EV2.Unable to open archive.PreferencesDialog<5 240;>AL 2V4:@8B8 D09; '%1'.Unable to open file '%1'.PreferencesDialogJ5 240;>AL ?@>G8B0B8 <5B040=V 0@EV2C. Unable to read archive metadata.PreferencesDialog0;3>@8B< ?V4@0EC=:C A;V2Word Count AlgorithmPreferencesDialogV;L:VABL A;V2 Word countPreferencesDialog !;V2:Words:PreferencesDialog45 ?V4B@8<C20=89 D09; RTF.Not a supported RTF file.Reader:5 240;>AL 70:@8B8 D09; '%1'.Unable to close file '%1'.Reader45 240;>AL 2V4:@8B8 0@EV2.Unable to open archive.Reader<5 240;>AL 2V4:@8B8 D09; '%1'.Unable to open file '%1'.Reader "8?>2>DefaultSession&5@C20==O... &Manage...SessionManager&>289 ...&New...SessionManager;>=C20B8CloneSessionManager;>=C20B8 A50=A Clone SessionSessionManagerCtrl+Shift+M Ctrl+Shift+MSessionManagerCtrl+Shift+N Ctrl+Shift+NSessionManager8;CG8B8DeleteSessionManager08;CG8B8 281@0=89 A50=A?Delete selected session?SessionManager$5@C20==O A50=A0<8Manage SessionsSessionManager >289NewSessionManager>289 A50=A New SessionSessionManager 0?8BQuestionSessionManager5@59<5=C20B8RenameSessionManager&5@59<5=C20B8 A50=ARename SessionSessionManager !&0=A8 S&essionsSessionManager0720 A50=AC: Session name:SessionManager0 60;LSorrySessionManager5@59B8 Switch ToSessionManager0"0:0 =0720 A50=AC 265 T.-The requested session name is already in use.SessionManager*C4L ;0A:0, 70G5:09B5 Please Wait SmartQuote0<V=0 ;0?>:...Replacing quotation marks... SmartQuote!:0AC20B8Cancel SpellChecker<V=8B8 =0: Change to: SpellChecker&5@52V@:0 ?@02>?8ACCheck Spelling SpellChecker.5@52V@:0 ?@02>?8AC ...Checking spelling... SpellChecker"5<0T 2 A;>2=8:C:Not in dictionary: SpellChecker*C4L ;0A:0, 70G5:09B5 Please wait SpellChecker<5@52V@:C ?@02>?8AC 7025@H5=>.Spell check complete. SpellChecker 0720:Name: SymbolsDialog57 =0728 %1 Untitled %1Theme ?V:A5;V2 pixels ThemeDialog$>= Background ThemeDialog> F5=B@CCentered ThemeDialog >;V@:Color: ThemeDialog>42V9=VDouble ThemeDialog (@8DB:Font: ThemeDialog5@54=V9 ?;0= Foreground ThemeDialog>1@065==O:Image: ThemeDialogV2>@CGLeft ThemeDialog>2=VH=V :@0W:Margin: ThemeDialog ?><8;:>N: Misspelled: ThemeDialog<V=8B8 B5<C Modify Theme ThemeDialog 0720:Name: ThemeDialog 5<0T 7>1@065==ONo Image ThemeDialog5?@>7>@VABLOpacity ThemeDialog0?>2=5==O:Padding: ThemeDialog>78FVOPosition ThemeDialogV440;8B8Remove ThemeDialog@02>@CGRight ThemeDialog0>:@C3;5==O: Rounding: ThemeDialog0AHB01C20B8Scaled ThemeDialog48=0@=VSingle ThemeDialog >7<V@:Size: ThemeDialog >7BO3=CB8 Stretched ThemeDialog "5:ABText ThemeDialog51@0:CNBL DV;>A>D8 ?@8 0=:C F5@:28 2 04OGV, I5 9 H0B@> WE=T ? O=5 7=0T<>+The quick brown fox jumps over the lazy dog ThemeDialog0<>AB8B8Tiled ThemeDialog"8?:Type: ThemeDialog01;878B8Zoomed ThemeDialog\"5<0 7 B0:>N =072>N 265 T. 254VBL =>2C =072C:?A theme already exists with that name. Please enter a new name: ThemeManager >40B8Add ThemeManager0:@8B8Close ThemeManager:A?>@BC20B8Export ThemeManager":A?>@BC20B8 B5<C Export Theme ThemeManager<?>@BC20B8Import ThemeManager <?>@BC20B8 B5<C Import Theme ThemeManager<V=8B8Modify ThemeManager0?8B0==OQuestion ThemeManager8;CG8B8Remove ThemeManager,8;CG8B8 281@0=C B5<C?Remove selected theme? ThemeManager0 60;LSorry ThemeManager"5<8Themes ThemeManager*"5<8 (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManager"5<8 (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer4<b>!8<2>;V2:</b> %L1 / %L2Characters: %L1 / %L2Timer(<b>!B>@V=>::</b> %L1Pages: %L1Timer&<b>170FV2:</b> %L1Paragraphs: %L1Timer <b>!;V2:</b> %L1Words: %L1Timer !83=0;AlarmTimer0B@8<:0:Delay:Timer8;CG8B8DeleteTimer 8;CG8B8 B09<5@? Delete timer?Timer<V=8B8EditTimerHH:mm:ssHH:mm:ssTimer;O 4>2V4:8:Memo:Timer0?8B0==OQuestionTimer0B@8<:0 Set DelayTimer'0ASet TimeTimer'0A:Time:Timer"8?:Type:TimerHH:mm:ssHH:mm:ss TimerDisplay&"09<5@8 =5 ?@0FNNBLNo timers running TimerDisplay%1 - %2%1 - %2 TimerManager+HH:mm:ss +HH:mm:ss TimerManager4!:0AC20B8 7<V=5=V B09<5@8?Cancel editing timers? TimerManager >289New TimerManager0?8B0==OQuestion TimerManagerAB0==VRecent TimerManager"09<5@8Timers TimerManager85A?>4V20=> 7025@H82AO D09;.!Unexpectedly reached end of file. Tokenizer*%1 (8H5 4;O G8B0==O)%1 (Read-Only)Window,%1% I>45==>3> 70240==O%1% of daily goalWindow&@> ?@>3@0<C&AboutWindow&0?V268@=89&BoldWindow0&:@8B8&CloseWindow>?V&N20B8&CopyWindow"&<5=H8B8 2V4ABC?&Decrease IndentWindow&<V=8B8&EditWindow &$09;&FileWindow&=09B8...&Find...Window &0 ?>2=89 5:@0= &FullscreenWindow&>2V4:0&HelpWindow&C@A82&ItalicWindow &>289&NewWindow&V4:@8B8...&Open...Window&AB028B8&PasteWindow0@0&<5B@8...&Preferences...Window&@C:... &Print...Window &89B8&QuitWindow>2&B>@8B8&RedoWindow"&5@59<5=C20B8... &Rename...Window0&<V=8B8... &Replace...Window&15@53B8&SaveWindow&0;0HBC20==O &SettingsWindow.&5@52V@:0 ?@02>?8AC... &Spelling...Window8&6=V9 V=45:A &SubscriptWindow&"5<8... &Themes...Window&"09<5@8... &Timers...Window&=AB@C<5=B8&ToolsWindow&V4:@5A;5=89 &UnderlineWindow&>25@=CB8&UndoWindow(57 =0728 %1) (Untitled %1)Window@> &Qt About &QtWindow@> FocusWriterAbout FocusWriterWindow> &F5=B@C Align &CenterWindow> &H8@8=VAlign &JustifyWindow> &;V2><C :@0N Align &LeftWindow > ?@&02><C :@0N Align &RightWindow">20 &?@>3@0<8...Application &Language...Window&!8<2>;V2: %L1 / %L2Characters: %L1 / %L2Window Ctrl+<Ctrl+<Window Ctrl+>Ctrl+>Window Ctrl+JCtrl+JWindow Ctrl+KCtrl+KWindow Ctrl+MCtrl+MWindow Ctrl+QCtrl+QWindow Ctrl+RCtrl+RWindow Ctrl+^Ctrl+^Window Ctrl+_Ctrl+_Window Ctrl+{Ctrl+{Window Ctrl+|Ctrl+|Window Ctrl+}Ctrl+}Window8@V70&B8Cu&tWindowEscEscWindowF11F11WindowF7F7Window"=09B8 =0A&BC?=89 Find &NextWindow$=09B8 ?&>?5@54=V9Find Pre&viousWindow&$>@<0BFo&rmatWindow$&1V;LH8B8 2V4ABC?I&ncrease IndentWindow.$@03<5=B 7;V20 =0?@&02>Le&ft to Right BlockWindow&020=B065==O 72C:V2Loading soundsWindow 020=B065==O B5<Loading themesWindow&3>@=CB8 M&inimizeWindow$5@C20==O A50=A0<8Manage SessionsWindow>289 A50=A New SessionWindowV4:@8B8 D09; Open FileWindowV4:@820==O %1 Opening %1Window!B>@V=>:: %L1 Pages: %L1Window170FV2: %L1Paragraphs: %L1Window0?8B0==OQuestionWindow.$@03<5=B A?@020 =0;&V2>Ri&ght to Left BlockWindow15@53B8 &O:... Save &As...Window15@53B8 2A&5 Save A&llWindow15@53B8 7<V=8? Save changes?Window81@0B8 &2A5 Select &AllWindow*>:070B8 7=0G:8 <5=&NShow &Menu IconsWindow:>:070B8 ?0=5;L &V=AB@C<5=BV2 Show &ToolbarWindow@O<V &;0?:8 Smart &QuotesWindow&0:@5A;5=89Stri&kethroughWindow5@E=V9 &V=45:A Sup&erscriptWindow57 =0728UntitledWindow"=>28B8 &4>:C<5=BUpdate &DocumentWindow"=>28B8 &284V;5=5Update &SelectionWindow!;V2: %L1 Words: %L1Window ) , focuswriter-1.4.5/translations/focuswriter_uk.ts000066400000000000000000002307741231434177300222630ustar00rootroot00000000000000 Alert Close (%1) Collapse Згорнути Expand Розгорнути AlertLayer Dismiss Alert Ctrl+D Ctrl+D Document Sorry На жаль Unable to save '%1'. Не вдалось зберегти '%1'. Save File As Зберегти файл як Unable to overwrite '%1'. Не вдалось перезаписати '%1'. Rename File Перейменувати файл Unable to rename '%1'. Не вдалось перейменувати '%1'. Reload File Reload the file %1 from disk? All unsaved changes will be lost. Reload Plain Text (*.txt) Question Saving as plain text will discard all formatting. Discard formatting? OpenDocument Text (*.odt) Rich Text (*.rtf) Форматований текст (*.rtf) All Files (*) Всі файли (*) DocumentWatcher File Changed The file %1 was changed by another program. Do you want to reload the file? Reload Ignore File Deleted The file %1 was deleted by another program. Do you want to save or close the file? FindDialog Search for: Знайти: Replace with: Замінити на: Ignore case Ігнорувати регістр Whole words only Лише повні слова Regular expressions Search up Пошук уверх Search down Пошук вниз &Find &Replace Replace &All Find Знайти Replace Замінити Replace %n instance(s)? Замінити %n примірник? Замінити %n примірники? Замінити %n примірників? Question Запит Sorry На жаль Phrase not found. Фраза не знайдена. Highlighter Add Додати Check Spelling... Перевірка правопису... (No suggestions found) (Пропозицій не знайдено) ImageButton Open Image Відкрити зображення Images(%1) Зображень(%1) LocaleDialog Select application language: Виберіть мову програми: <System Language> Note Примітка Please restart this application for the change in language to take effect. Перезапустіть програму, щоб зміна мови набрала чинності. PreferencesDialog Preferences Параметри General Загальне Statistics Статистика Toolbar Панель інструментів Spell Checking Перевірка правопису Select Dictionary Вибрати словник Sorry На жаль Unable to open archive. Не вдалось відкрити архів. Unable to read archive metadata. Не вдалось прочитати метадані архіву. The archive does not contain a usable dictionary. Архів не містить придатного словника. Unable to open file '%1'. Не вдалось відкрити файл '%1'. Unable to close file '%1'. Не вдалось закрити файл '%1'. Question Запитання Shortcuts One or more shortcuts conflict. Do you wish to proceed? The dictionary "%1" already exists. Do you want to replace it? Словник "%1" вже є. Хочете замінити його? Daily Goal Щоденні завдання None Немає Minutes: Хвилин: Words: Слів: Editing Редагування Always vertically center Завжди центрувати вертикально Block insertion cursor Блокувати курсор вставки Smooth fonts Згладжені шрифти Typewriter sounds Звуки друкарської машинки Smart quotes: Прямі лапки: Double Подвійні Single Одинарні Scenes Divider: Saving Збереження Automatically save changes Зміни зберігати автоматично Remember cursor position Пам'ятати позицію курсору Contents Вміст Word count Кількість слів Page count Кількість сторінок Paragraph count Кількість абзаців Character count Кількість символів Page Size Розмір сторінки Characters: Символів: Paragraphs: Абзаців: Word Count Algorithm Алгоритм підрахунку слів Detect word boundaries Визначати межі слова Divide character count by six Ділити кількість символів на шість Style Стиль Icons Only Лише значки Text Only Лише текст Text Alongside Icons Текст біля значків Text Under Icons Текст під значками Text Position: Розташування тексту: Actions Дії Move Up Перемістити уверх Move Down Перемістити вниз Add Separator Додати розділювач Command Shortcut Action Check spelling as you type Перевіряти правопис під час введення Ignore words in UPPERCASE Ігнорувати слова у ВЕРХНЬОМУ регістрі Ignore words with numbers Ігнорувати слова з цифрами Language Мова Add Додати Remove Вилучити Personal Dictionary Особистий словник Reader Not a supported RTF file. Не підтримуваний файл RTF. Unable to open archive. Не вдалось відкрити архів. Unable to open file '%1'. Не вдалось відкрити файл '%1'. Unable to close file '%1'. Не вдалось закрити файл '%1'. SceneList Ctrl+Shift+Down Move Scenes Up Ctrl+Shift+Up Toggle Scene List Shift+F4 Show scene list (%1) Hide scene list (%1) Filter Move Scenes Down Resize scene list Session Default Типово SessionManager Manage Sessions Керування сеансами S&essions С&анси New Новий Rename Перейменувати Clone Клонувати Delete Вилучити Switch To Перейти New Session Новий сеанс Clone Session Клонувати сеанс Rename Session Перейменувати сеанс Question Запит Delete selected session? Вилучити вибраний сеанс? Session name: Назва сеансу: Sorry На жаль The requested session name is already in use. Така назва сеансу вже є. &New... &Новий ... Ctrl+Shift+N Ctrl+Shift+N &Manage... &Керування... Ctrl+Shift+M Ctrl+Shift+M ShortcutEdit Clear Reset to Default Shortcut: SmartQuote Replacing quotation marks... Заміна лапок... Please Wait Будь ласка, зачекайте SpellChecker Check Spelling Перевірка правопису &Add &Ignore I&gnore All &Change C&hange All Not in dictionary: Немає в словнику: Change to: Змінити на: Checking spelling... Перевірка правопису ... Cancel Скасувати Please wait Будь ласка, зачекайте Spell check complete. Перевірку правопису завершено. SymbolsDialog Symbols Recently used symbols All symbols Details Name: Назва: Insert SymbolsModel Blocks Scripts Theme Untitled %1 Без назви %1 ThemeDialog Modify Theme Змінити тему Name: Назва: Background Фон No Image Немає зображення Tiled Замостити Centered По центру Stretched Розтягнути Scaled Масштабувати Zoomed Наблизити Remove Віддалити Type: Тип: Color: Колір: Image: Зображення: Foreground Передній план Opacity Непрозорість pixels пікселів Left Ліворуч Right Праворуч Position Позиція Size: Розмір: Rounding: Заокруглення: Margin: Зовнішні краї: Padding: Заповнення: Text Текст Font: Шрифт: Misspelled: З помилкою: Spacings Line Spacing Single Одинарні 1.5 Lines Double Подвійні Proportional Paragraph Spacing Indent First Line: Pixels Above: Pixels Below: The quick brown fox jumps over the lazy dog Жебракують філософи при ґанку церкви в Гадячі, ще й шатро їхнє п’яне знаємо ThemeManager Themes Теми Add Додати Modify Змінити Remove Вилучити Import Імпортувати Export Експортувати Close Закрити Question Запитання Remove selected theme? Вилучити вибрану тему? Import Theme Імпортувати тему Themes (*.fwtz *.theme) Теми (*.fwtz *.theme) Themes (*.fwtz) Теми (*.fwtz) Sorry На жаль A theme already exists with that name. Please enter a new name: Тема з такою назвою вже є. Введіть нову назву: Export Theme Експортувати тему Timer <b>%1</b> - %2 <b>%1</b> - %2 Question Запитання Delete timer? Вилучити таймер? <b>Words:</b> %L1 <b>Слів:</b> %L1 <b>Pages:</b> %L1 <b>Сторінок:</b> %L1 <b>Paragraphs:</b> %L1 <b>Абзаців:</b> %L1 <b>Characters:</b> %L1 / %L2 <b>Символів:</b> %L1 / %L2 Set Delay Затримка Set Time Час Delay: Затримка: Time: Час: HH:mm:ss HH:mm:ss Alarm Сигнал Type: Тип: Memo: Для довідки: Edit Змінити Delete Вилучити TimerDisplay HH:mm:ss HH:mm:ss No timers running Таймери не працюють TimerManager Timers Таймери New Новий Recent Останні Question Запитання Cancel editing timers? Скасувати змінені таймери? +HH:mm:ss +HH:mm:ss %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. Несподівано завершився файл. Window Loading themes Завантаження тем Loading sounds Завантаження звуків Untitled Без назви Open File Відкрити файл About FocusWriter Про FocusWriter FocusWriter A simple fullscreen word processor Copyright &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Uses icons from the <a href=%1>Oxygen</a> icon theme Used under the <a href=%1>LGPL 3</a> license Characters: %L1 / %L2 Символів: %L1 / %L2 Pages: %L1 Сторінок: %L1 Paragraphs: %L1 Абзаців: %L1 Words: %L1 Слів: %L1 %1% of daily goal %1% щоденного завдання Opening %1 Відкривання %1 Question Запитання Save changes? Зберегти зміни? (Untitled %1) (Без назви %1) Switch to Next Document Switch to Previous Document Switch to First Document Switch to Last Document Switch to Document %1 Loading settings Emergency cache is not writable. Warning FocusWriter was not shut down cleanly. Restore from the emergency cache? Some files could not be opened. Some files were opened Read-Only. Text Files (%1);;All Files (*) '%1' is newer than the cached copy. Overwrite newer file? Unable to load typewriter sounds. Please make sure that SDL_mixer is installed. %1 (Read-Only) %1 (Лише для читання) &File &Файл &New &Новий &Open... &Відкрити... Reloa&d &Save &Зберегти Save &As... Зберегти &як... &Rename... &Перейменувати... Save A&ll Зберегти вс&е Manage Sessions Керування сеансами New Session Новий сеанс &Print... &Друк... &Close За&крити &Quit В&ийти Ctrl+Q Ctrl+Q &Edit &Змінити &Undo &Повернути &Redo Пов&торити Cu&t Виріза&ти &Copy Копі&ювати &Paste В&ставити Paste &Unformatted Ctrl+Shift+V Select &All Вибрати &все Select &Scene Ctrl+Shift+A Fo&rmat &Формат &Bold &Напівжирний &Italic &Курсив &Underline &Підкреслений Stri&kethrough &Закреслений Ctrl+K Ctrl+K Sup&erscript Верхній &індекс Ctrl+^ Ctrl+^ &Subscript Ни&жній індекс Ctrl+_ Ctrl+_ Align &Left По &лівому краю Ctrl+{ Ctrl+{ Align &Center По &центру Ctrl+| Ctrl+| Align &Right По пр&авому краю Ctrl+} Ctrl+} Align &Justify По &ширині Ctrl+J Ctrl+J &Decrease Indent &Зменшити відступ Ctrl+< Ctrl+< I&ncrease Indent З&більшити відступ Ctrl+> Ctrl+> Le&ft to Right Block Фрагмент зліва напр&аво Ri&ght to Left Block Фрагмент справа нал&іво &Tools &Інструменти &Find... &Знайти... Find &Next Знайти нас&тупний Find Pre&vious Знайти п&опередній &Replace... За&мінити... Ctrl+R Ctrl+R Smart &Quotes Прямі &лапки Update &Document Оновити &документ Update &Selection Оновити &виділене &Spelling... &Перевірка правопису... F7 F7 &Timers... &Таймери... S&ymbols... &Settings &Налаштування Show &Toolbar Показати панель &інструментів Show &Menu Icons Показати значки мен&ю F&ocused Text &Fullscreen Н&а повний екран F11 F11 Esc Esc M&inimize &Згорнути Ctrl+M Ctrl+M &Themes... &Теми... &Preferences... Пара&метри... Focus Off Focus One Line Focus Three Lines &Paragraph Focus Paragraph &Help &Довідка Application &Language... Мова &програми... Some files were unsupported and could not be opened. &Off One &Line &Three Lines &About &Про програму About &Qt Про &Qt focuswriter-1.4.5/translations/focuswriter_vi.qm000066400000000000000000001015241231434177300222370ustar00rootroot00000000000000W.c4\ { YO3Ϩ%mej3]iZ~o.0n%0n)`P2?uqItp^tnc#"v<S^^< $dc#AS ~VaqqsefczXbQF:J qR 6Ro[lU<f3Xc?.Pcf"\'aJ~lf&(d, 4[93B^G[w@@J>z)'K$aWS|'PX>H_ᑞ8sOdN. I`~p(( WCE+ M@ICZ,luz^Ԏ.2VU65Z#: l I66Z8No:\SIIQWJIMpZZ[-g?lTm(rzCC4C4.AejlZ̊|7O&O*M޷4<!>"*si+zg< u$R;lCm p;xkbb?^5fe!xmQw62N9} fG9N7f/hY|>U|w![pt}u;4rPdDSkV%% ' CtC0wCg \~U >l 8z "4 %^ Y x v Y zx z .3% JW W1 Wgh ; 2r ·Nx .^ 0 Ń +I[ :s ;fm d8% eE_ 5 q^# t- b ʀs9 ˔X ˼C9N z_ Bq f  V5 c: ^+ TH #! L..u f(%F iqw w9;P xj8 {"um Ni y K ʫ ʫ $ ʫ ʫ1[ ʫG ʫM@ ʫP ʫjy O A) pUu = Eg cL cN? >cO( Ue 6q2 >W JBR Z$<; eM iN!h tfm u 2( sV E CA  &l ) t) 1k \ Q sS Dt b 8jh DY_ DY/? DY/ DZ_P ^3Q noLZ uuN {N( Pv IQ < ޘ ) Zc"@Y)nE>NltrAcn ,7deRj4r><[j,A L9-,W>e"iTsYI+-z C " iwRng li (%1) Close (%1)AlertX xungCollapseAlertM rngExpandAlert Ctrl+DCtrl+D AlertLayerB qua cnh bo Dismiss Alert AlertLayer(Mi loi tp tin (*) All Files (*)DocumentNTt c cc thay i cha lu s b mt.!All unsaved changes will be lost.Document.Dng vn bn m (*.odt)OpenDocument Text (*.odt)Document6Dng vn bn thng (*.txt)Plain Text (*.txt)DocumentCu hiQuestionDocumentTi liReloadDocumentTi li tp tin Reload FileDocument4Ti li tp tin %1 t )a?Reload the file %1 from disk?Documenti tn tp tin Rename FileDocument,Dng Rich Text (*.rtf)Rich Text (*.rtf)Document"Lu tp tin thnh Save File AsDocumentLu di dng vn bn thng thng s b qua tt c cc chnh sa v hin th. B qua ton b cc hin th?ESaving as plain text will discard all formatting. Discard formatting?DocumentRt ticSorryDocument4Khng th ghi  ln '%1'.Unable to overwrite '%1'.Document.Khng th i tn '%1'.Unable to rename '%1'.Document&Khng th lu '%1'.Unable to save '%1'.Document8Bn c mun ti li tp tin?Do you want to reload the file?DocumentWatcherTBn c mun lu hoc ng li tp tin ny?&Do you want to save or close the file?DocumentWatcher& thay i tp tin File ChangedDocumentWatcher xa tp tin File DeletedDocumentWatcher B quaIgnoreDocumentWatcherTi liReloadDocumentWatcherbTp tin %1 b thay i bi mt chng trnh khc.+The file %1 was changed by another program.DocumentWatcherVTp tin %1  b xa bi mt ng dng khc.+The file %1 was deleted by another program.DocumentWatcher&Tm kim&Find FindDialogTh&ay th&Replace FindDialogTmFind FindDialog8B qua trng hp ch in hoa Ignore case FindDialog,Khng tm thy cm t.Phrase not found. FindDialogCu hiQuestion FindDialog,Php ton thng thngRegular expressions FindDialogThay thReplace FindDialog.Thay th %n tin trnh?Replace %n instance(s)? FindDialog Tha&y th tt c Replace &All FindDialogThay th vi: Replace with: FindDialog$Tm kim pha di Search down FindDialogTm kim cho: Search for: FindDialog$Tm kim pha trn Search up FindDialogRt ticSorry FindDialog,Ch ton b cc t nyWhole words only FindDialog@(Khng tm thy li  ngh no)(No suggestions found) HighlighterThmAdd Highlighter0Kim tra li chnh t...Check Spelling... HighlighterHnh nh(%1) Images(%1) ImageButtonM hnh nh Open Image ImageButton&<Ngn ng H thng> LocaleDialogGhi chNote LocaleDialogXin vui lng khi ng li ng dng ny  p dng thao tc thay i ngn ng.JPlease restart this application for the change in language to take effect. LocaleDialog6Chn ngn ng ca ng dng:Select application language: LocaleDialogThao tcActionPreferencesDialogThao tcActionsPreferencesDialogThmAddPreferencesDialog$Thm du phn cch Add SeparatorPreferencesDialog:V tr lun thng ng  giaAlways vertically centerPreferencesDialog0T ng lu cc thay iAutomatically save changesPreferencesDialog,Kha vic chn con trBlock insertion cursorPreferencesDialogTng s k tCharacter countPreferencesDialog K t: Characters:PreferencesDialog0Kim tra ng php khi gCheck spelling as you typePreferencesDialogLnhCommandPreferencesDialogNi dungContentsPreferencesDialog"Mc tiu mi ngy Daily GoalPreferencesDialog<Pht hin vic bo trn cc chDetect word boundariesPreferencesDialogNChia cc k t bi nhm c s lng suDivide character count by sixPreferencesDialogNgi chia ct:Divider:PreferencesDialogGp iDoublePreferencesDialogang chnh saEditingPreferencesDialogTng quanGeneralPreferencesDialog.Ch hin th biu tng Icons OnlyPreferencesDialog(B qua cc t IN HOAIgnore words in UPPERCASEPreferencesDialog2B qua cc t km theo sIgnore words with numbersPreferencesDialogNgn ngLanguagePreferencesDialog Pht:Minutes:PreferencesDialogDi chuyn xung Move DownPreferencesDialogDi chuyn lnMove UpPreferencesDialog KhngNonePreferencesDialog|Mt hoc nhiu phm tt hn b xung t. Bn c mun tip tc?7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialog Kch thc trang Page SizePreferencesDialogTng s trang Page countPreferencesDialog Tng s on vnParagraph countPreferencesDialogon vn: Paragraphs:PreferencesDialogT in t toPersonal DictionaryPreferencesDialogTy bin PreferencesPreferencesDialogCu hiQuestionPreferencesDialog(Nh v tr tr chutRemember cursor positionPreferencesDialogLoi bRemovePreferencesDialogang luSavingPreferencesDialogKhung cnhScenesPreferencesDialogChn T inSelect DictionaryPreferencesDialogPhm ttShortcutPreferencesDialogPhm tt ShortcutsPreferencesDialog n lSinglePreferencesDialog*Trch dn thng minh: Smart quotes:PreferencesDialog Kiu ch d nhn Smooth fontsPreferencesDialogRt ticSorryPreferencesDialog4ang kim tra li chnh tSpell CheckingPreferencesDialogThng k StatisticsPreferencesDialogGiao dinStylePreferencesDialog.Ch km theo biu tngText Alongside IconsPreferencesDialog Ch hin th ch Text OnlyPreferencesDialogV tr ch:Text Position:PreferencesDialog&Ch di biu tngText Under IconsPreferencesDialogpPhn lu tr khng cha t in no c th s dng c.1The archive does not contain a usable dictionary.PreferencesDialog~T in "%1"  c sn. Bn c mun thay th t in ny khng?>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialogThanh cng cToolbarPreferencesDialog0m thanh nh my khi gTypewriter soundsPreferencesDialog8Khng th ng tp tin '%1'.Unable to close file '%1'.PreferencesDialog4Khng th m phn lu tr.Unable to open archive.PreferencesDialog4Khng th m tp tin '%1'.Unable to open file '%1'.PreferencesDialogbKhng th c thng tin chi tit v phn lu tr. Unable to read archive metadata.PreferencesDialog@Thut ton tnh ton tng s chWord Count AlgorithmPreferencesDialogTng s t Word countPreferencesDialogT:Words:PreferencesDialogDTp tin RTF ny khng c h tr.Not a supported RTF file.Reader@Khng th ng li tp tin '%1'.Unable to close file '%1'.ReaderFKhng th m c phn d liu nn.Unable to open archive.Reader>Khng th m c tp tin '%1'.Unable to open file '%1'.ReaderCtrl+Shift+DownCtrl+Shift+Down SceneListCtrl+Shift+Up Ctrl+Shift+Up SceneListLc d liuFilter SceneList,n danh sch cnh (%1)Hide scene list (%1) SceneList"Chuyn cnh xungMove Scenes Down SceneListChuyn cnh lnMove Scenes Up SceneListFChnh li kch thc danh sch cnhResize scene list SceneListShift+F4Shift+F4 SceneList8Hin th danh sch cnh (%1)Show scene list (%1) SceneList:Chuyn i danh sch cc cnhToggle Scene List SceneListMc nhDefaultSession&Qun l... &Manage...SessionManager&To mi...&New...SessionManager Sao YCloneSessionManager(Sao y phin lm vic Clone SessionSessionManagerCtrl+Shift+M Ctrl+Shift+MSessionManagerCtrl+Shift+N Ctrl+Shift+NSessionManagerXaDeleteSessionManager@Xa phin lm vic  c chn?Delete selected session?SessionManager,Qun l phin lm vicManage SessionsSessionManagerTo miNewSessionManager$Phin lm vic mi New SessionSessionManagerCu hiQuestionSessionManageri tnRenameSessionManager,i tn phin lm vicRename SessionSessionManagerP&hin lm vic S&essionsSessionManager&Tn phin lm vic: Session name:SessionManagerRt ticSorrySessionManagerChuyn sang Switch ToSessionManagervTn ca phin lm vic c yu cu hin ang c s dng.-The requested session name is already in use.SessionManagerDn dpClear ShortcutEdit$Chuyn v mc nhReset to Default ShortcutEditPhm tt: Shortcut: ShortcutEditVui lng i Please Wait SmartQuoteLThay i cc phn nh du trch dn..Replacing quotation marks... SmartQuote &Thm&Add SpellCheckerTh&ay i&Change SpellChecker&B qua&Ignore SpellChecker Tha&y i tt c C&hange All SpellChecker Hy bCancel SpellCheckerThay i sang: Change to: SpellChecker"Kim tra ng phpCheck Spelling SpellCheckerPang thc hin vic kim tra ng php...Checking spelling... SpellCheckerB q&ua tt c I&gnore All SpellChecker.Khng c trong t in:Not in dictionary: SpellCheckerVui lng i Please wait SpellCheckerZ thc hin xong thao tc kim tra ng php.Spell check complete. SpellChecker"Tt c biu tng All symbols SymbolsDialogChi titDetails SymbolsDialogChnInsert SymbolsDialogTn:Name: SymbolsDialog@Cc biu tng c dng gn yRecently used symbols SymbolsDialogBiu tngSymbols SymbolsDialogKhiBlocks SymbolsModelKch bnScripts SymbolsModel&Cha t tiu  %1 Untitled %1Themeim nh pixels ThemeDialog1.5 dng 1.5 Lines ThemeDialogNn Background ThemeDialog  giaCentered ThemeDialogMu:Color: ThemeDialogGp iDouble ThemeDialogKiu ch:Font: ThemeDialogLp ph nn Foreground ThemeDialogHnh nh:Image: ThemeDialog,Li vo dng u tin:Indent First Line: ThemeDialogBn tay triLeft ThemeDialog4Khong trng gia cc dng Line Spacing ThemeDialogCanh l:Margin: ThemeDialogSai ng php: Misspelled: ThemeDialog&Chnh sa giao din Modify Theme ThemeDialogTn:Name: ThemeDialog"Khng c hnh nhNo Image ThemeDialog  mOpacity ThemeDialogPadding:Padding: ThemeDialog:Khong cch gia cc on vnParagraph Spacing ThemeDialog<Khong cch im nh bn trn: Pixels Above: ThemeDialog<Khong cch im nh bn di: Pixels Below: ThemeDialog V trPosition ThemeDialogT l cn xng Proportional ThemeDialogLoi bRemove ThemeDialogBn tay phiRight ThemeDialogRounding: Rounding: ThemeDialogTheo t lScaled ThemeDialog n lSingle ThemeDialogKch thc:Size: ThemeDialogKhong trngSpacings ThemeDialogTri rng ra Stretched ThemeDialogVn bnText ThemeDialogPTi Yu Ting Nc Ti T Khi Mi Ra i+The quick brown fox jumps over the lazy dog ThemeDialogXp theo Tiled ThemeDialog Loi:Type: ThemeDialogPhng toZoomed ThemeDialogMt giao din vi cng tn nh th  tn ti. Vui lng in vo mt tn khc:?A theme already exists with that name. Please enter a new name: ThemeManagerThmAdd ThemeManagerng liClose ThemeManagerXut d liuExport ThemeManager2Xut d liu v giao din Export Theme ThemeManagerNhp d liuImport ThemeManager2Nhp d liu v giao din Import Theme ThemeManagerChnh saModify ThemeManagerCu hiQuestion ThemeManagerLoi bRemove ThemeManager>Loi b giao din  c chn?Remove selected theme? ThemeManagerRt ticSorry ThemeManagerGiao dinThemes ThemeManager4Giao din (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManagerThemes (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer@<b>S lng k t:</b> %L1 / %L2Characters: %L1 / %L2Timer4<b>S lng trang:</b> %L1Pages: %L1Timer:<b>S lng on vn:</b> %L1Paragraphs: %L1Timer.<b>S lng t:</b> %L1Words: %L1TimerHn giAlarmTimer tr:Delay:TimerXaDeleteTimer.Xa phn m thi gian? Delete timer?TimerChnh saEditTimerHH:mm:ssHH:mm:ssTimerGhi ch:Memo:TimerCu hiQuestionTimert  tr Set DelayTimert thi gianSet TimeTimerThi gian:Time:Timer Loi:Type:TimerHH:mm:ssHH:mm:ss TimerDisplayHHin khng c phn m thi gian noNo timers running TimerDisplay%1 - %2%1 - %2 TimerManager+HH:mm:ss +HH:mm:ss TimerManagerBHy b vic chnh sa b m gi?Cancel editing timers? TimerManagerTo miNew TimerManagerCu hiQuestion TimerManagerGn yRecent TimerManager B m thi gianTimers TimerManagerVLi phn truy cp n phn cui ca tp tin!Unexpectedly reached end of file. Tokenizer"%1 (Ch c-c)%1 (Read-Only)Window>t  %1% mc tiu trong ngy%1% of daily goalWindowTh&ng tin&AboutWindow&In m&BoldWindow&ng li&CloseWindowS&ao chp&CopyWindow$Gi&m mc li dng&Decrease IndentWindowC&hnh sa&EditWindow&Tp tin&FileWindowT&m kim...&Find...WindowTon m&n hnh &FullscreenWindow$Dch bi P&han Anh&HelpWindowI&n nghing&ItalicWindow&To mi&NewWindowT&t&OffWindow &M...&Open...Window&on vn &ParagraphWindowD&n&PasteWindowTy bi&n...&Preferences...Window&In d liu... &Print...Window Th&ot&QuitWindow"L&p li thao tc&RedoWindow&i tn... &Rename...WindowTh&ay th... &Replace...Window&Lu&SaveWindowThi&t lp &SettingsWindow2Kim tr&a li chnh t... &Spelling...WindowCh s&p xung &SubscriptWindowG&iao din... &Themes...WindowB&a Dng &Three LinesWindow"B& m thi gian &Timers...WindowC&ng c&ToolsWindow&Gch di &UnderlineWindowH&y thao tc&UndoWindowp'%1' mi hn bn d liu c sao chp trong b nh m.#'%1' is newer than the cached copy.Window*(Cha t tiu  %1) (Untitled %1)WindowtMt phn mm son tho vn bn ton mn hnh dng n gin"A simple fullscreen word processorWindow Th&ng tin v Qt About &QtWindow"Dch bi Phan AnhAbout FocusWriterWindow&Canh l c&hnh gia Align &CenterWindow(Canh l &u hai bnAlign &JustifyWindow"Canh l b&n tri Align &LeftWindow"Canh l bn p&hi Align &RightWindow*Ngn ng hin th&...Application &Language...Window&S k t: %L1 / %L2Characters: %L1 / %L2WindowHBn quyn &copy; 2008-%1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindow Ctrl+<Ctrl+<Window Ctrl+>Ctrl+>Window Ctrl+JCtrl+JWindow Ctrl+KCtrl+KWindow Ctrl+MCtrl+MWindow Ctrl+QCtrl+QWindow Ctrl+RCtrl+RWindowCtrl+Shift+A Ctrl+Shift+AWindowCtrl+Shift+V Ctrl+Shift+VWindow Ctrl+^Ctrl+^Window Ctrl+_Ctrl+_Window Ctrl+{Ctrl+{Window Ctrl+|Ctrl+|Window Ctrl+}Ctrl+}WindowC&tCu&tWindowPhn b nh m trong trng hp khn cp hin khng th ghi d liu vo. Emergency cache is not writable.WindowEscEscWindow,Tp tr&ung vo vn bn F&ocused TextWindowF11F11WindowF7F7WindowTm ti&p theo Find &NextWindowTm tr&c Find Pre&viousWindow&nh dngFo&rmatWindow$Tt phn tp trung Focus OffWindow<Tp trung vo mt dng vn bnFocus One LineWindow,Tp trung vo on vnFocus ParagraphWindow:Tp trung vo ba dng vn bnFocus Three LinesWindowFocusWriter FocusWriterWindowZFocusWriter  khng c tt theo ng cch.&FocusWriter was not shut down cleanly.Window$T&ng mc li dngI&ncrease IndentWindow>Khi vn bn t tr&i sang phiLe&ft to Right BlockWindow$ang ti thit lpLoading settingsWindow2ang ti d liu m thanhLoading soundsWindow4ang ti d liu giao dinLoading themesWindowT&hu nh M&inimizeWindow,Qun l phin lm vicManage SessionsWindow$Phin lm vic mi New SessionWindowMt D&ng One &LineWindowM tp tin Open FileWindowang m %1 Opening %1WindowHVit  d liu ln tp tin mi hn?Overwrite newer file?WindowS trang: %L1 Pages: %L1Window S on vn: %L1Paragraphs: %L1Window>Dn vo d liu ch&a chnh saPaste &UnformattedWindowlXin vui lng chc chn rng SDL_mixer  c ci t.-Please make sure that SDL_mixer is installed.WindowCu hiQuestionWindowbPht hnh da theo giy php <a href=%1>GPL 3</a>/Released under the GPL 3 licenseWindowTi l&iReloa&dWindow\Khi phc d liu t phn b nh m khn cp?!Restore from the emergency cache?Window>Khi vn bn t ph&i sang triRi&ght to Left BlockWindowBi&u tng... S&ymbols...Window"Lu &Di Dng... Save &As...WindowLu T&t C Save A&llWindow Lu cc thay i Save changes?WindowChn t&t c Select &AllWindowChn c&nh Select &SceneWindow2Hin th biu tng men&uShow &Menu IconsWindow.Hin th th&anh cng c Show &ToolbarWindow,Trch dn th&ng minh: Smart &QuotesWindow8Khng th m mt s tp tin.Some files could not be opened.Window`Mt vi tp tin c m di ch  Ch c-c!Some files were opened Read-Only.WindowtMt s tp tin khng c h tr nn s khng th m c.4Some files were unsupported and could not be opened.WindowG&ch xuyn quaStri&kethroughWindowCh t&ri ln Sup&erscriptWindow.Chuyn sang ti liu %1Switch to Document %1Window:Chuyn sang ti liu u tinSwitch to First DocumentWindow<Chuyn sang ti liu cui cngSwitch to Last DocumentWindow8Chuyn sang mt ti liu miSwitch to Next DocumentWindow:Chuyn sang ti liu trc Switch to Previous DocumentWindowXTp tin vn bn (%1);;Tt c cc tp tin (*)Text Files (%1);;All Files (*)WindowVKhng th ti m thanh to hiu ng g ch.!Unable to load typewriter sounds.Window Cha t tiu UntitledWindow$Cp nht t&i liuUpdate &DocumentWindow.Cp nht v&ng la chnUpdate &SelectionWindow`S dng da trn giy php <a href=%1>LGPL 3</a>,Used under the LGPL 3 licenseWindow\S dng b biu tng t <a href=%1>Oxygen</a>4Uses icons from the Oxygen icon themeWindowCnh boWarningWindowS t: %L1 Words: %L1Windowfocuswriter-1.4.5/translations/focuswriter_vi.ts000066400000000000000000002307451231434177300222600ustar00rootroot00000000000000 Alert Close (%1) Đóng lại (%1) Collapse Xổ xuống Expand Mở rộng AlertLayer Dismiss Alert Bỏ qua cảnh báo Ctrl+D Ctrl+D Document Sorry Rất tiếc Unable to save '%1'. Không thể lưu '%1'. Save File As Lưu tập tin thành Unable to overwrite '%1'. Không thể ghi đè lên '%1'. Rename File Đổi tên tập tin Unable to rename '%1'. Không thể đổi tên '%1'. Reload File Tải lại tập tin Reload the file %1 from disk? Tải lại tập tin %1 từ đĩa? All unsaved changes will be lost. Tất cả các thay đổi chưa lưu sẽ bị mất. Reload Tải lại Plain Text (*.txt) Dạng văn bản thường (*.txt) Question Câu hỏi Saving as plain text will discard all formatting. Discard formatting? Lưu dưới dạng văn bản thông thường sẽ bỏ qua tất cả các chỉnh sửa về hiển thị. Bỏ qua toàn bộ các hiển thị? OpenDocument Text (*.odt) Dạng văn bản mở (*.odt) Rich Text (*.rtf) Dạng Rich Text (*.rtf) All Files (*) Mọi loại tập tin (*) DocumentWatcher File Changed Đã thay đổi tập tin The file %1 was changed by another program. Tập tin %1 bị thay đổi bởi một chương trình khác. Do you want to reload the file? Bạn có muốn tải lại tập tin? Reload Tải lại Ignore Bỏ qua File Deleted Đã xóa tập tin The file %1 was deleted by another program. Tập tin %1 đã bị xóa bởi một ứng dụng khác. Do you want to save or close the file? Bạn có muốn lưu hoặc đóng lại tập tin này? FindDialog Search for: Tìm kiếm cho: Replace with: Thay thế với: Ignore case Bỏ qua trường hợp chữ in hoa Whole words only Chỉ toàn bộ các từ này Regular expressions Phép toán thông thường Search up Tìm kiếm phía trên Search down Tìm kiếm phía dưới &Find &Tìm kiếm &Replace Th&ay thế Replace &All Tha&y thế tất cả Find Tìm Replace Thay thế Replace %n instance(s)? Thay thế %n tiến trình? Question Câu hỏi Sorry Rất tiếc Phrase not found. Không tìm thấy cụm từ. Highlighter Add Thêm Check Spelling... Kiểm tra lỗi chính tả... (No suggestions found) (Không tìm thấy lời đề nghị nào) ImageButton Open Image Mở hình ảnh Images(%1) Hình ảnh(%1) LocaleDialog Select application language: Chọn ngôn ngữ của ứng dụng: <System Language> <Ngôn ngữ Hệ thống> Note Ghi chú Please restart this application for the change in language to take effect. Xin vui lòng khởi động lại ứng dụng này để áp dụng thao tác thay đổi ngôn ngữ. PreferencesDialog Preferences Tùy biến General Tổng quan Statistics Thống kê Toolbar Thanh công cụ Spell Checking Đang kiểm tra lỗi chính tả Select Dictionary Chọn Từ Điển Sorry Rất tiếc Unable to open archive. Không thể mở phần lưu trữ. Unable to read archive metadata. Không thể đọc thông tin chi tiết về phần lưu trữ. The archive does not contain a usable dictionary. Phần lưu trữ không chứa từ điển nào có thể sử dụng được. Unable to open file '%1'. Không thể mở tập tin '%1'. Unable to close file '%1'. Không thể đóng tập tin '%1'. Question Câu hỏi Shortcuts Phím tắt One or more shortcuts conflict. Do you wish to proceed? Một hoặc nhiều phím tắt hơn bị xung đột. Bạn có muốn tiếp tục? The dictionary "%1" already exists. Do you want to replace it? Từ điển "%1" đã có sẵn. Bạn có muốn thay thế từ điển này không? Daily Goal Mục tiêu mỗi ngày None Không Minutes: Phút: Words: Từ: Editing Đang chỉnh sửa Always vertically center Vị trí luôn thẳng đứng ở giữa Block insertion cursor Khóa việc chèn con trỏ Smooth fonts Kiểu chữ dễ nhìn Typewriter sounds Âm thanh đánh máy khi gõ Smart quotes: Trích dẫn thông minh: Double Gấp đôi Single Đơn lẻ Scenes Khung cảnh Divider: Người chia cắt: Saving Đang lưu Automatically save changes Tự động lưu các thay đổi Remember cursor position Nhớ vị trí trỏ chuột Contents Nội dung Word count Tổng số từ Page count Tổng số trang Paragraph count Tổng số đoạn văn Character count Tổng số ký tự Page Size Kích thước trang Characters: Ký tự: Paragraphs: Đoạn văn: Word Count Algorithm Thuật toán tính toán tổng số chữ Detect word boundaries Phát hiện việc bo tròn các chữ Divide character count by six Chia các ký tự bởi nhóm có số lượng sáu Style Giao diện Icons Only Chỉ hiển thị biểu tượng Text Only Chỉ hiển thị chữ Text Alongside Icons Chữ kèm theo biểu tượng Text Under Icons Chữ dưới biểu tượng Text Position: Vị trí chữ: Actions Thao tác Move Up Di chuyển lên Move Down Di chuyển xuống Add Separator Thêm dấu phân cách Command Lệnh Shortcut Phím tắt Action Thao tác Check spelling as you type Kiểm tra ngữ pháp khi gõ Ignore words in UPPERCASE Bỏ qua các từ IN HOA Ignore words with numbers Bỏ qua các từ kèm theo số Language Ngôn ngữ Add Thêm Remove Loại bỏ Personal Dictionary Từ điển tự tạo Reader Not a supported RTF file. Tập tin RTF này không được hỗ trợ. Unable to open archive. Không thể mở được phần dữ liệu nén. Unable to open file '%1'. Không thể mở được tập tin '%1'. Unable to close file '%1'. Không thể đóng lại tập tin '%1'. SceneList Ctrl+Shift+Down Ctrl+Shift+Down Move Scenes Up Chuyển cảnh lên Ctrl+Shift+Up Ctrl+Shift+Up Toggle Scene List Chuyển đổi danh sách các cảnh Shift+F4 Shift+F4 Show scene list (%1) Hiển thị danh sách cảnh (%1) Hide scene list (%1) Ẩn danh sách cảnh (%1) Filter Lọc dữ liệu Move Scenes Down Chuyển cảnh xuống Resize scene list Chỉnh lại kích thước danh sách cảnh Session Default Mặc định SessionManager Manage Sessions Quản lý phiên làm việc S&essions P&hiên làm việc New Tạo mới Rename Đổi tên Clone Sao Y Delete Xóa Switch To Chuyển sang New Session Phiên làm việc mới Clone Session Sao y phiên làm việc Rename Session Đổi tên phiên làm việc Question Câu hỏi Delete selected session? Xóa phiên làm việc đã được chọn? Session name: Tên phiên làm việc: Sorry Rất tiếc The requested session name is already in use. Tên của phiên làm việc được yêu cầu hiện đang được sử dụng. &New... &Tạo mới... Ctrl+Shift+N Ctrl+Shift+N &Manage... &Quản lý... Ctrl+Shift+M Ctrl+Shift+M ShortcutEdit Clear Dọn dẹp Reset to Default Chuyển về mặc định Shortcut: Phím tắt: SmartQuote Replacing quotation marks... Thay đổi các phần đánh dấu trích dẫn.. Please Wait Vui lòng đợi SpellChecker Check Spelling Kiểm tra ngữ pháp &Add &Thêm &Ignore &Bỏ qua I&gnore All Bỏ q&ua tất cả &Change Th&ay đổi C&hange All Tha&y đổi tất cả Not in dictionary: Không có trong từ điển: Change to: Thay đổi sang: Checking spelling... Đang thực hiện việc kiểm tra ngữ pháp... Cancel Hủy bỏ Please wait Vui lòng đợi Spell check complete. Đã thực hiện xong thao tác kiểm tra ngữ pháp. SymbolsDialog Symbols Biểu tượng Recently used symbols Các biểu tượng được dùng gần đây All symbols Tất cả biểu tượng Details Chi tiết Name: Tên: Insert Chèn SymbolsModel Blocks Khối Scripts Kịch bản Theme Untitled %1 Chưa đặt tiêu đề %1 ThemeDialog Modify Theme Chỉnh sửa giao diện Name: Tên: Background Nền No Image Không có hình ảnh Tiled Xếp theo ô Centered Ở giữa Stretched Trải rộng ra Scaled Theo tỉ lệ Zoomed Phóng to Remove Loại bỏ Type: Loại: Color: Màu: Image: Hình ảnh: Foreground Lớp phủ nền Opacity Độ mờ pixels điểm ảnh Left Bên tay trái Right Bên tay phải Position Vị trí Size: Kích thước: Rounding: Rounding: Margin: Canh lề: Padding: Padding: Text Văn bản Font: Kiểu chữ: Misspelled: Sai ngữ pháp: Spacings Khoảng trống Line Spacing Khoảng trống giữa các dòng Single Đơn lẻ 1.5 Lines 1.5 dòng Double Gấp đôi Proportional Tỉ lệ cân xứng Paragraph Spacing Khoảng cách giữa các đoạn văn Indent First Line: Lùi vào dòng đầu tiên: Pixels Above: Khoảng cách điểm ảnh bên trên: Pixels Below: Khoảng cách điểm ảnh bên dưới: The quick brown fox jumps over the lazy dog Tôi Yêu Tiếng Nước Tôi Từ Khi Mới Ra Đời ThemeManager Themes Giao diện Add Thêm Modify Chỉnh sửa Remove Loại bỏ Import Nhập dữ liệu Export Xuất dữ liệu Close Đóng lại Question Câu hỏi Remove selected theme? Loại bỏ giao diện đã được chọn? Import Theme Nhập dữ liệu về giao diện Themes (*.fwtz *.theme) Giao diện (*.fwtz *.theme) Themes (*.fwtz) Themes (*.fwtz) Sorry Rất tiếc A theme already exists with that name. Please enter a new name: Một giao diện với cùng tên như thế đã tồn tại. Vui lòng điền vào một tên khác: Export Theme Xuất dữ liệu về giao diện Timer <b>%1</b> - %2 <b>%1</b> - %2 Question Câu hỏi Delete timer? Xóa phần đếm thời gian? <b>Words:</b> %L1 <b>Số lượng từ:</b> %L1 <b>Pages:</b> %L1 <b>Số lượng trang:</b> %L1 <b>Paragraphs:</b> %L1 <b>Số lượng đoạn văn:</b> %L1 <b>Characters:</b> %L1 / %L2 <b>Số lượng ký tự:</b> %L1 / %L2 Set Delay Đặt độ trễ Set Time Đặt thời gian Delay: Độ trễ: Time: Thời gian: HH:mm:ss HH:mm:ss Alarm Hẹn giờ Type: Loại: Memo: Ghi chú: Edit Chỉnh sửa Delete Xóa TimerDisplay HH:mm:ss HH:mm:ss No timers running Hiện không có phần đếm thời gian nào TimerManager Timers Bộ đếm thời gian New Tạo mới Recent Gần đây Question Câu hỏi Cancel editing timers? Hủy bỏ việc chỉnh sửa bộ đếm giờ? +HH:mm:ss +HH:mm:ss %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. Lỗi phần truy cập đến phần cuối của tập tin Window Loading themes Đang tải dữ liệu giao diện Loading sounds Đang tải dữ liệu âm thanh Untitled Chưa đặt tiêu đề Open File Mở tập tin About FocusWriter Dịch bởi Phan Anh FocusWriter FocusWriter A simple fullscreen word processor Một phần mềm soạn thảo văn bản toàn màn hình dạng đơn giản Copyright &copy; 2008-%1 Graeme Gott Bản quyền &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Phát hành dựa theo giấy phép <a href=%1>GPL 3</a> Uses icons from the <a href=%1>Oxygen</a> icon theme Sử dụng bộ biểu tượng từ <a href=%1>Oxygen</a> Used under the <a href=%1>LGPL 3</a> license Sử dụng dựa trên giấy phép <a href=%1>LGPL 3</a> Characters: %L1 / %L2 Số ký tự: %L1 / %L2 Pages: %L1 Số trang: %L1 Paragraphs: %L1 Số đoạn văn: %L1 Words: %L1 Số từ: %L1 %1% of daily goal Đạt đượ %1% mục tiêu trong ngày Opening %1 Đang mở %1 Question Câu hỏi Save changes? Lưu các thay đổi (Untitled %1) (Chưa đặt tiêu đề %1) Switch to Next Document Chuyển sang một tài liệu mới Switch to Previous Document Chuyển sang tài liệu trước đó Switch to First Document Chuyển sang tài liệu đầu tiên Switch to Last Document Chuyển sang tài liệu cuối cùng Switch to Document %1 Chuyển sang tài liệu %1 Loading settings Đang tải thiết lập Emergency cache is not writable. Phần bộ nhớ đệm trong trường hợp khẩn cấp hiện không thể ghi dữ liệu vào. Warning Cảnh báo FocusWriter was not shut down cleanly. FocusWriter đã không được tắt theo đúng cách. Restore from the emergency cache? Khôi phục dữ liệu từ phần bộ nhớ đệm khẩn cấp? Some files could not be opened. Không thể mở một số tập tin. Some files were opened Read-Only. Một vài tập tin được mở dưới chế độ Chỉ Được-Đọc Text Files (%1);;All Files (*) Tập tin văn bản (%1);;Tất cả các tập tin (*) '%1' is newer than the cached copy. '%1' mới hơn bản dữ liệu được sao chép trong bộ nhớ đệm. Overwrite newer file? Viết đè dữ liệu lên tập tin mới hơn? Unable to load typewriter sounds. Không thể tải âm thanh tạo hiệu ứng gõ chữ. Please make sure that SDL_mixer is installed. Xin vui lòng chắc chắn rằng SDL_mixer đã được cài đặt. %1 (Read-Only) %1 (Chỉ được-đọc) &File &Tập tin &New &Tạo mới &Open... &Mở... Reloa&d Tải l&ại &Save &Lưu Save &As... Lưu &Dưới Dạng... &Rename... &Đổi tên... Save A&ll Lưu T&ất Cả Manage Sessions Quản lý phiên làm việc New Session Phiên làm việc mới &Print... &In dữ liệu... &Close Đ&óng lại &Quit Th&oát Ctrl+Q Ctrl+Q &Edit C&hỉnh sửa &Undo Hủ&y thao tác &Redo Lặ&p lại thao tác Cu&t Cắ&t &Copy S&ao chép &Paste D&án Paste &Unformatted Dán vào dữ liệu ch&ưa chỉnh sửa Ctrl+Shift+V Ctrl+Shift+V Select &All Chọn tấ&t cả Select &Scene Chọn c&ảnh Ctrl+Shift+A Ctrl+Shift+A Fo&rmat Đị&nh dạng &Bold &In đậm &Italic I&n nghiêng &Underline &Gạch dưới Stri&kethrough G&ạch xuyên qua Ctrl+K Ctrl+K Sup&erscript Chữ t&rồi lên Ctrl+^ Ctrl+^ &Subscript Chữ s&ụp xuống Ctrl+_ Ctrl+_ Align &Left Canh lề b&ên trái Ctrl+{ Ctrl+{ Align &Center Canh lề c&hính giữa Ctrl+| Ctrl+| Align &Right Canh lề bên p&hải Ctrl+} Ctrl+} Align &Justify Canh lề đ&ều hai bên Ctrl+J Ctrl+J &Decrease Indent Giả&m mức lùi dòng Ctrl+< Ctrl+< I&ncrease Indent Tă&ng mức lùi dòng Ctrl+> Ctrl+> Le&ft to Right Block Khối văn bản từ tr&ái sang phải Ri&ght to Left Block Khối văn bản từ ph&ải sang trái &Tools Cô&ng cụ &Find... Tì&m kiếm... Find &Next Tìm tiế&p theo Find Pre&vious Tìm tr&ước đó &Replace... Th&ay thế... Ctrl+R Ctrl+R Smart &Quotes Trích dẫn thô&ng minh: Update &Document Cập nhật tà&i liệu Update &Selection Cập nhật v&ùng lựa chọn &Spelling... Kiểm tr&a lỗi chính tả... F7 F7 &Timers... B&ộ đếm thời gian S&ymbols... Biể&u tượng... &Settings Thiế&t lập Show &Toolbar Hiển thị th&anh công cụ Show &Menu Icons Hiển thị biểu tượng men&u F&ocused Text Tập tr&ung vào văn bản &Fullscreen Toàn mà&n hình F11 F11 Esc Esc M&inimize T&hu nhỏ Ctrl+M Ctrl+M &Themes... G&iao diện... &Preferences... Tùy biế&n... Focus Off Tắt phần tập trung Focus One Line Tập trung vào một dòng văn bản Focus Three Lines Tập trung vào ba dòng văn bản &Paragraph &Đoạn văn Focus Paragraph Tập trung vào đoạn văn &Help Dịch bởi P&han Anh Application &Language... Ngôn ngữ hiển th&ị... Some files were unsupported and could not be opened. Một số tập tin không được hỗ trợ nên sẽ không thể mở được. &Off T&ắt One &Line Một D&òng &Three Lines B&a Dòng &About Thô&ng tin About &Qt Thô&ng tin về Qt focuswriter-1.4.5/translations/focuswriter_zh_CN.qm000066400000000000000000000610401231434177300226200ustar00rootroot000000000000009+> +>+į@@[H(6J+$J6E J61KQ Mez+5PJS*7T(T,X.Z/uZi5Zi pZiZi#Zi3Z%[0[7\0\7\*_ >?2c4B{O$"Ϩ%1J3]L~P. 0n0nP2-q4UtQ^SPtH"U<S^ H*c;S ~>aqR!efHzXpW2E:J :6;B*=jf3@?H?.9cJ"CI'a5?~NJv(I`, 4B^9$T^2w-. J,L)m'5$GDW<"|@3]ᑞ(&s8N! 4`~QL( W0!E"M@3ZMluz^ (Ԏ p>e&eZ#) NxI&6Z*D D9|DfDDDEEE+F,FL-Fy(6@,!,6fbP:%%+M ~g-CȞnFhDXv2:k&V^AK}+v2z( IC)%Qaz+D'6E2QY#IT95tC5tFF.F32H5#G/!N%N%/K2A[3<9tTr4M" d3ݲ %jc s?c1CU:j/G2528NP:BII:3JI7^Z[ g-=l=mPzC/C%!..ClÅ|'yOYO޷$!,{*?SlLh+zKh< unR*JlC(m p*xN*G-l X^%fJA!O_w&28t9}$G9N[f/K|>=9|wp @}T4RPI$SM%%'/C"SCK  \~= >N ' "%S %^ Y v Y zx z .3u J?k W" WK< ) # ·86 .^  Ń +I :S( ;fO d8 eE % q^I t I Ha ʀs( ˔@l ˼C(j z_ BRa f V&1 c)l ^ < # L. f(B iqU w9) xj' {"uO NL ) 5 ʫ ʫ ʫ% ʫ" ʫ3 ʫ78 ʫ9W ʫMM A) pUT +` EK c6 c7 >c8 = 6Q >? J. Z$* e7 iN!L7 tfO+ u # s? 1@ C.o   K t 1 \ o s; DTD H3 8j DYEG DY!O DY! DZE ^3= no6 uu {N PU I y <Z ޘ+ ZcN@n E,Nltr$AcO dI;ZMt4RvAjA ,L9W,eiTpsA#I-z CF" :XiVQs (%1) Close (%1)AlertbSCollapseAlert\U_ExpandAlert Ctrl+DCtrl+D AlertLayer_uefTJ Dismiss Alert AlertLayerb@g eN (*) All Files (*)Documentg*O[Xvfe9\N"Y10!All unsaved changes will be lost.Document2OpenDocument Text (*.odt)OpenDocument Text (*.odt)Document~eg, (*.txt)Plain Text (*.txt)DocumentQuestionDocumenteR}ReloadDocument eR}eN Reload FileDocumenteNxvN-R}eN %1 Reload the file %1 from disk?Document T}T eN Rename FileDocumentYO`oeg,h<_ (*.rtf)Rich Text (*.rtf)Document O[XeNN: Save File AsDocument(O[XN:~eg,\N"_Qhh<_0N"_h<_TESaving as plain text will discard all formatting. Discard formatting?DocumentbkISorryDocumentN v '%1'0Unable to overwrite '%1'.DocumentN T}T '%1'0Unable to rename '%1'.DocumentN O[X '%1'0Unable to save '%1'.Document`eR}eNTDo you want to reload the file?DocumentWatcher`O[XbQseN&Do you want to save or close the file?DocumentWatcher eN]fe9 File ChangedDocumentWatcher eN]R d File DeletedDocumentWatcher_ueIgnoreDocumentWatchereR}ReloadDocumentWatchereN %1 ]u1QvNz ^fe90+The file %1 was changed by another program.DocumentWatcher eN %1 ]~u1QvNz ^R d0+The file %1 was deleted by another program.DocumentWatcher gb~(&F)&Find FindDialog fcb(&R)&Replace FindDialoggb~Find FindDialog _ueY'\Q Ignore case FindDialog lb~R0~0Phrase not found. FindDialogQuestion FindDialog kcRh_Regular expressions FindDialogfcbReplace FindDialogfcb %n N*[OReplace %n instance(s)? FindDialogfcbQh(&A) Replace &All FindDialogfcbN: Replace with: FindDialogTN d}" Search down FindDialogd}" Search for: FindDialogTN d}" Search up FindDialogbkISorry FindDialogQh[WS9MWhole words only FindDialogb~N R0^ (No suggestions found) HighlightermRAdd HighlighterhgbQ...Check Spelling... Highlighter VP(%1) Images(%1) ImageButtonbS_VP Open Image ImageButton <|~ߋ> LocaleDialoglaNote LocaleDialog*OvSSueH eT/R^u(z ^0JPlease restart this application for the change in language to take effect. LocaleDialog bz ^Select application language: LocaleDialogRO\ActionPreferencesDialogRO\ActionsPreferencesDialogmRAddPreferencesDialog mRR{& Add SeparatorPreferencesDialog Y~Wv\EN-Always vertically centerPreferencesDialog RO[Xfe9Automatically save changesPreferencesDialogWWrQIhBlock insertion cursorPreferencesDialog[W{&epCharacter countPreferencesDialog[W{& Characters:PreferencesDialogQeehgbQCheck spelling as you typePreferencesDialogT}NCommandPreferencesDialogQ[ContentsPreferencesDialogkevh Daily GoalPreferencesDialog cmKSU͏uLDetect word boundariesPreferencesDialog [W{&epdN6Divide character count by sixPreferencesDialogR{&:Divider:PreferencesDialogSP LDoublePreferencesDialogEditingPreferencesDialog^8GeneralPreferencesDialogNVh Icons OnlyPreferencesDialog _ueY'QSUIgnore words in UPPERCASEPreferencesDialog_ue^&ep[WvSUIgnore words with numbersPreferencesDialogLanguagePreferencesDialogRMinutes:PreferencesDialogN y Move DownPreferencesDialogN yMove UpPreferencesDialogeNonePreferencesDialog"NN*bYN*_cw.Qz0`~~T7One or more shortcuts conflict. Do you wish to proceed?PreferencesDialogubY'\ Page SizePreferencesDialoguep Page countPreferencesDialogk=epParagraph countPreferencesDialogk= Paragraphs:PreferencesDialogN*NQxPersonal DictionaryPreferencesDialog y PreferencesPreferencesDialogQuestionPreferencesDialog OOQIhOMnRemember cursor positionPreferencesDialogydRemovePreferencesDialogO[XSavingPreferencesDialogW:foScenesPreferencesDialog bQxSelect DictionaryPreferencesDialog_cw.ShortcutPreferencesDialog_cw. ShortcutsPreferencesDialogSU~SinglePreferencesDialog fz_S Smart quotes:PreferencesDialog^sn[WOS Smooth fontsPreferencesDialogbkISorryPreferencesDialogbQhgSpell CheckingPreferencesDialog~ߋ StatisticsPreferencesDialogh7_StylePreferencesDialog eg,W(VheText Alongside IconsPreferencesDialogNeg, Text OnlyPreferencesDialog eg,OMnText Position:PreferencesDialog eg,W(VhN Text Under IconsPreferencesDialog[XhcN ST+Su(vQx01The archive does not contain a usable dictionary.PreferencesDialog(Qx "%1" ]~[XW(0`fcb[T>The dictionary "%1" already exists. Do you want to replace it?PreferencesDialog]QwhToolbarPreferencesDialog bS[Wg:XTypewriter soundsPreferencesDialogN QseN '%1'0Unable to close file '%1'.PreferencesDialogN bS_[Xhc0Unable to open archive.PreferencesDialogN bS_eN '%1'0Unable to open file '%1'.PreferencesDialogelՋS[XhcQCepcn0 Unable to read archive metadata.PreferencesDialog [Wep~ߋRWord Count AlgorithmPreferencesDialog[Wep Word countPreferencesDialog[WepWords:PreferencesDialogN e/cvRTFeN0Not a supported RTF file.ReaderN QseN '%1'0Unable to close file '%1'.ReaderN bS_[Xhc0Unable to open archive.ReaderN bS_eN '%1'0Unable to open file '%1'.ReaderCtrl+Shift+DownCtrl+Shift+Down SceneListCtrl+Shift+Down Ctrl+Shift+Up SceneListnVhFilter SceneListW:foRh(%1)Hide scene list (%1) SceneList TN yRW:foMove Scenes Down SceneList TN yRW:foMove Scenes Up SceneListetW:foRhY'\Resize scene list SceneListShift+F4Shift+F4 SceneListf>y:W:foRh(%1)Show scene list (%1) SceneListbS_/QsW:foRhToggle Scene List SceneList؋DefaultSession{t(&M)... &Manage...SessionManagere^(&N)...&New...SessionManagerQKCloneSessionManagerQKO Clone SessionSessionManagerCtrl+Shift+M Ctrl+Shift+MSessionManagerCtrl+Shift+N Ctrl+Shift+NSessionManagerR dDeleteSessionManagerR db@ ODelete selected session?SessionManager{tOManage SessionsSessionManagere^NewSessionManagereO New SessionSessionManagerQuestionSessionManagerT}T RenameSessionManager T}T ORename SessionSessionManager O(&E) S&essionsSessionManager OT y Session name:SessionManagerbkISorrySessionManagerRcbR0 Switch ToSessionManagerlBvOT y]W(Ou(N-0-The requested session name is already in use.SessionManagerndClear ShortcutEdit`bY ؋Reset to Default ShortcutEdit_cw. Shortcut: ShortcutEdit{I_ Please Wait SmartQuotefcb_S...Replacing quotation marks... SmartQuote mR(&A)&Add SpellChecker fe9(&C)&Change SpellChecker _ue(&I)&Ignore SpellCheckerfe9Qh(&h) C&hange All SpellCheckerSmCancel SpellCheckerfe9N: Change to: SpellCheckerhgbQCheck Spelling SpellCheckerhgbQ...Checking spelling... SpellChecker_ueQh(&g) I&gnore All SpellChecker N W(QxN-Not in dictionary: SpellChecker{I_ Please wait SpellCheckerbQhg[b0Spell check complete. SpellCheckerQh{&S All symbols SymbolsDialog`Details SymbolsDialogcQeInsert SymbolsDialogT yName: SymbolsDialoggOu(v{&SRecently used symbols SymbolsDialog{&SSymbols SymbolsDialogWWBlocks SymbolsModele[WScripts SymbolsModel eh %1 Untitled %1ThemeP}  pixels ThemeDialog1.5 P L 1.5 Lines ThemeDialogfo Background ThemeDialog\EN-Centered ThemeDialogrColor: ThemeDialogSP LDouble ThemeDialog[WOSFont: ThemeDialogRMfo Foreground ThemeDialogVPImage: ThemeDialog L):Indent First Line: ThemeDialog]Left ThemeDialogL Line Spacing ThemeDialoguMargin: ThemeDialog bQ Misspelled: ThemeDialogOe9N; Modify Theme ThemeDialogT yName: ThemeDialogeVPNo Image ThemeDialogN f^Opacity ThemeDialogXkQEPadding: ThemeDialogkParagraph Spacing ThemeDialog kRMP} ep: Pixels Above: ThemeDialog kTP} ep: Pixels Below: ThemeDialogOMnPosition ThemeDialogbkO Proportional ThemeDialogydRemove ThemeDialogSRight ThemeDialogWS Rounding: ThemeDialogkOScaled ThemeDialogSU~Single ThemeDialogY'\Size: ThemeDialogSpacings ThemeDialogbO8 Stretched ThemeDialogeg,Text ThemeDialogVThe quick brown fox jumps over the lazy dog+The quick brown fox jumps over the lazy dog ThemeDialog^sTiled ThemeDialog|{WType: ThemeDialog)e>Zoomed ThemeDialog(]~[XW(T T vNN*N;0QeevT y?A theme already exists with that name. Please enter a new name: ThemeManagermRAdd ThemeManagerQsClose ThemeManager[QExport ThemeManager[QN; Export Theme ThemeManager[QeImport ThemeManager[QeN; Import Theme ThemeManagerOe9Modify ThemeManagerQuestion ThemeManagerydRemove ThemeManagerydb@ N;Remove selected theme? ThemeManagerbkISorry ThemeManagerN;Themes ThemeManager&N; (*.fwtz *.theme)Themes (*.fwtz *.theme) ThemeManagerN; (*.fwtz)Themes (*.fwtz) ThemeManager<b>%1</b> - %2%1 - %2Timer*<b>[W{&ep</b> %L1 / %L2Characters: %L1 / %L2Timer<b>uep</b> %L1Pages: %L1Timer<b>k=ep</b> %L1Paragraphs: %L1Timer<b>SUep</b> %L1Words: %L1TimerAlarmTimer^Delay:TimerR dDeleteTimer R d[eVh Delete timer?TimerEditTimerHH:mm:ssHH:mm:ssTimerY__UMemo:TimerQuestionTimer[^ Set DelayTimer[eSet TimeTimereTime:Timer|{WType:TimerHH:mm:ssHH:mm:ss TimerDisplay e[eVhЈLNo timers running TimerDisplay%1 - %2%1 - %2 TimerManager+HH:mm:ss +HH:mm:ss TimerManagerSm[eVhTCancel editing timers? TimerManagere^New TimerManagerQuestion TimerManagergvRecent TimerManager[eVhTimers TimerManageraYW0R0NeNg+\>.!Unexpectedly reached end of file. Tokenizer%1 (S)%1 (Read-Only)Windowkevhv %1%%1% of daily goalWindow QsN(&A)&AboutWindow |OS(&B)&BoldWindow Qs(&C)&CloseWindow Y R6(&C)&CopyWindowQ\)(&D)&Decrease IndentWindow (&E)&EditWindow eN(&F)&FileWindowgb~(&F)...&Find...Window Qh\O(&F) &FullscreenWindow ^.R(&H)&HelpWindow eOS(&I)&ItalicWindow e^(&N)&NewWindow Qs(&O)&OffWindowbS_(&O)...&Open...Window k=(&P) &ParagraphWindow |4(&P)&PasteWindowPOY}n(&P)...&Preferences...WindowbSSp(&P)... &Print...Window Q(&Q)&QuitWindow PZ(&R)&RedoWindowT}T (&R)... &Rename...Windowfcb(&R)... &Replace...Window O[X(&S)&SaveWindow n(&S) &SettingsWindowbQ(&S)... &Spelling...Window N h(&S) &SubscriptWindowN;(&T)... &Themes...Window N L(&T) &Three LinesWindow[eVh(&T)... &Timers...Window ]Qw(&T)&ToolsWindowN R~(&U) &UnderlineWindow d(&U)&UndoWindow'%1' k[XvRog,e0#'%1' is newer than the cached copy.Window(eh %1) (Untitled %1)WindowNN*{mvQh\Oe[WYtoN"A simple fullscreen word processorWindow QsN &Qt About &QtWindowQsN FocusWriterAbout FocusWriterWindow \EN-(&C) Align &CenterWindowN$z[P(&J)Align &JustifyWindow][P(&L) Align &LeftWindowS[P(&R) Align &RightWindowz ^(&L)...Application &Language...Window[W{&ep%L1 / %L2Characters: %L1 / %L2Window:rHgC &copy; 2008-%1 Graeme Gott$Copyright © 2008-%1 Graeme GottWindow Ctrl+<Ctrl+<Window Ctrl+>Ctrl+>Window Ctrl+JCtrl+JWindow Ctrl+KCtrl+KWindow Ctrl+MCtrl+MWindow Ctrl+QCtrl+QWindow Ctrl+RCtrl+RWindowCtrl+Shift+A Ctrl+Shift+AWindowCtrl+Shift+V Ctrl+Shift+VWindow Ctrl+^Ctrl+^Window Ctrl+_Ctrl+_Window Ctrl+{Ctrl+{Window Ctrl+|Ctrl+|Window Ctrl+}Ctrl+}Window RjR(&T)Cu&tWindow}'`%[Xf/N SQv0 Emergency cache is not writable.WindowEscEscWindowZq&eg,(&F) F&ocused TextWindowF11F11WindowF7F7Windowgb~N NN*(&N) Find &NextWindowgb~N NN*(&V)Find Pre&viousWindow h<_(&R)Fo&rmatWindowQsZq& Focus OffWindowZq&NLFocus One LineWindowZq&k=Focus ParagraphWindowZq&N LFocus Three LinesWindowFocusWriter FocusWriterWindow&FocusWriter lg [QhQs0&FocusWriter was not shut down cleanly.WindowXR)(&N)I&ncrease IndentWindowN]R0S(&F)Le&ft to Right BlockWindow R}nN-Loading settingsWindow}QeXLoading soundsWindow}QeN;Loading themesWindowg\S(&I) M&inimizeWindow{tOManage SessionsWindoweO New SessionWindow SUL(&L) One &LineWindowbS_eN Open FileWindowkcW(bS_ %1 Opening %1Windowv֏eveNOverwrite newer file?Window uep%L1 Pages: %L1Windowk=ep%L1Paragraphs: %L1Windoweh<_|4(&U)Paste &UnformattedWindow&xn SDL_mixer ][.-Please make sure that SDL_mixer is installed.WindowQuestionWindow:N <a href=%1>GPL 3</a> SSOS^/Released under the GPL 3 licenseWindowe}Qe(&d)Reloa&dWindowN}'`%[XN-S!Restore from the emergency cache?WindowNSR0] (&G)Ri&ght to Left BlockWindow{&S...(&y) S&ymbols...WindowS[XN:(&A)... Save &As...WindowQhO[X(&L) Save A&llWindow O[Xfe9 Save changes?Window Qh (&A) Select &AllWindow bW:fo(&S) Select &SceneWindowf>y:SUVh(&M)Show &Menu IconsWindowf>y:]Qwh(&T) Show &ToolbarWindowfz_S(&Q) Smart &QuotesWindowg NeNelbS_0Some files could not be opened.WindowNNeNNSe_bS_0!Some files were opened Read-Only.WindowgNeNN Se/c N bS_04Some files were unsupported and could not be opened.WindowR d~(&K)Stri&kethroughWindow N h(&E) Sup&erscriptWindowlR0ehc %1Switch to Document %1WindowlR0{,NN*ehcSwitch to First DocumentWindowlR0gTNN*ehcSwitch to Last DocumentWindowlR0N NehcSwitch to Next DocumentWindowlR0N NehcSwitch to Previous DocumentWindow&eg,eN (%1);;b@g eN (*)Text Files (%1);;All Files (*)WindowelR}bS[Wg:X0!Unable to load typewriter sounds.WindowehUntitledWindowfeehc(&D)Update &DocumentWindowfeb@ (&S)Update &SelectionWindow:uqg <a href=%1>LGPL 3</a> SOu(,Used under the LGPL 3 licenseWindow:Ou( <a href=%1>Oxygen</a> VhN;4Uses icons from the Oxygen icon themeWindowfTJWarningWindowSUep%L1 Words: %L1Windowfocuswriter-1.4.5/translations/focuswriter_zh_CN.ts000066400000000000000000002217351231434177300226420ustar00rootroot00000000000000 Alert Close (%1) 关闭 (%1) Collapse 折叠 Expand 展开 AlertLayer Dismiss Alert 忽略警告 Ctrl+D Ctrl+D Document Sorry 抱歉 Unable to save '%1'. 不能保存 '%1'。 Save File As 保存文件为 Unable to overwrite '%1'. 不能覆盖 '%1'。 Rename File 重命名文件 Unable to rename '%1'. 不能重命名 '%1'。 Reload File 重新加载文件 Reload the file %1 from disk? 重新从磁盘中加载文件 %1 ? All unsaved changes will be lost. 未保存的更改将丢失。 Reload 重新加载 Plain Text (*.txt) 纯文本 (*.txt) Question 问题 Saving as plain text will discard all formatting. Discard formatting? 保存为纯文本将丢弃全部格式。丢弃格式吗? OpenDocument Text (*.odt) OpenDocument Text (*.odt) Rich Text (*.rtf) 多信息文本格式 (*.rtf) All Files (*) 所有文件 (*) DocumentWatcher File Changed 文件已更改 The file %1 was changed by another program. 文件 %1 已由其他程序更改。 Do you want to reload the file? 您要重新加载文件吗? Reload 重新加载 Ignore 忽略 File Deleted 文件已删除 The file %1 was deleted by another program. 文件 %1 已经由其他程序删除。 Do you want to save or close the file? 您要保存或关闭该文件? FindDialog Search for: 搜索: Replace with: 替换为: Ignore case 忽略大小写 Whole words only 全字匹配 Regular expressions 正则表达式 Search up 向上搜索 Search down 向下搜索 &Find 查找(&F) &Replace 替换(&R) Replace &All 替换全部(&A) Find 查找 Replace 替换 Replace %n instance(s)? 替换 %n 个实例? Question 询问 Sorry 抱歉 Phrase not found. 没找到词组。 Highlighter Add 添加 Check Spelling... 检查拼写... (No suggestions found) (找不到建议) ImageButton Open Image 打开图像 Images(%1) 图像(%1) LocaleDialog Select application language: 选择程序语言: <System Language> <系统语言> Note 注意 Please restart this application for the change in language to take effect. 要使语言的变化生效,请重新启动该应用程序。 PreferencesDialog Preferences 首选项 General 常规 Statistics 统计 Toolbar 工具栏 Spell Checking 拼写检查 Select Dictionary 选择词典 Sorry 抱歉 Unable to open archive. 不能打开存档。 Unable to read archive metadata. 无法读取存档元数据。 The archive does not contain a usable dictionary. 存档不包含可用的词典。 Unable to open file '%1'. 不能打开文件 '%1'。 Unable to close file '%1'. 不能关闭文件 '%1'。 Question 询问 Shortcuts 快捷键 One or more shortcuts conflict. Do you wish to proceed? 一个或多个快捷键冲突。您要继续吗? The dictionary "%1" already exists. Do you want to replace it? 词典 "%1" 已经存在。您要替换它吗? Daily Goal 每日目标 None Minutes: 分钟: Words: 字数: Editing 编辑 Always vertically center 始终垂直居中 Block insertion cursor 块状光标 Smooth fonts 平滑字体 Typewriter sounds 打字机声音 Smart quotes: 智能引号: Double 双倍行距 Single 单线 Scenes 场景 Divider: 分隔符: Saving 保存 Automatically save changes 自动保存更改 Remember cursor position 记住光标位置 Contents 内容 Word count 字数 Page count 页数 Paragraph count 段落数 Character count 字符数 Page Size 页面大小 Characters: 字符: Paragraphs: 段落: Word Count Algorithm 字数统计规则 Detect word boundaries 探测单词边界 Divide character count by six 字符数除以6 Style 样式 Icons Only 仅图标 Text Only 仅文本 Text Alongside Icons 文本在图标旁 Text Under Icons 文本在图标下 Text Position: 文本位置: Actions 动作 Move Up 上移 Move Down 下移 Add Separator 添加分隔符 Command 命令 Shortcut 快捷键 Action 动作 Check spelling as you type 输入时检查拼写 Ignore words in UPPERCASE 忽略大写单词 Ignore words with numbers 忽略带数字的单词 Language 语言 Add 添加 Remove 移除 Personal Dictionary 个人词典 Reader Not a supported RTF file. 不支持的RTF文件。 Unable to open archive. 不能打开存档。 Unable to open file '%1'. 不能打开文件 '%1'。 Unable to close file '%1'. 不能关闭文件 '%1'。 SceneList Ctrl+Shift+Down Ctrl+Shift+Down Move Scenes Up 向上移动场景 Ctrl+Shift+Up Ctrl+Shift+Down Toggle Scene List 打开/关闭场景列表 Shift+F4 Shift+F4 Show scene list (%1) 显示场景列表(%1) Hide scene list (%1) 隐藏场景列表(%1) Filter 过滤器 Move Scenes Down 向下移动场景 Resize scene list 调整场景列表大小 Session Default 默认 SessionManager Manage Sessions 管理会话 S&essions 会话(&E) New 新建 Rename 重命名 Clone 克隆 Delete 删除 Switch To 切换到 New Session 新会话 Clone Session 克隆会话 Rename Session 重命名会话 Question 询问 Delete selected session? 删除所选会话? Session name: 会话名称: Sorry 抱歉 The requested session name is already in use. 请求的会话名称已在使用中。 &New... 新建(&N)... Ctrl+Shift+N Ctrl+Shift+N &Manage... 管理(&M)... Ctrl+Shift+M Ctrl+Shift+M ShortcutEdit Clear 清除 Reset to Default 恢复默认 Shortcut: 快捷键: SmartQuote Replacing quotation marks... 更换引号... Please Wait 请等待 SpellChecker Check Spelling 检查拼写 &Add 添加(&A) &Ignore 忽略(&I) I&gnore All 忽略全部(&g) &Change 更改(&C) C&hange All 更改全部(&h) Not in dictionary: 不在词典中: Change to: 更改为: Checking spelling... 检查拼写... Cancel 取消 Please wait 请等待 Spell check complete. 拼写检查完成。 SymbolsDialog Symbols 符号 Recently used symbols 最近使用过的符号 All symbols 全部符号 Details 详情 Name: 名称: Insert 插入 SymbolsModel Blocks Scripts 文字 Theme Untitled %1 无标题 %1 ThemeDialog Modify Theme 修改主题 Name: 名称: Background 背景 No Image 无图像 Tiled 平铺 Centered 居中 Stretched 拉伸 Scaled 比例 Zoomed 缩放 Remove 移除 Type: 类型: Color: 颜色: Image: 图像: Foreground 前景 Opacity 不透明度 pixels 像素 Left Right Position 位置 Size: 大小: Rounding: 圆化: Margin: 页边距: Padding: 填充: Text 文本 Font: 字体: Misspelled: 拼写错误: Spacings 间隔 Line Spacing 行距 Single 单线 1.5 Lines 1.5 倍行距 Double 双倍行距 Proportional 成比例 Paragraph Spacing 段间距 Indent First Line: 首行缩进: Pixels Above: 段前像素数: Pixels Below: 段后像素数: The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog ThemeManager Themes 主题 Add 添加 Modify 修改 Remove 移除 Import 导入 Export 导出 Close 关闭 Question 询问 Remove selected theme? 移除所选主题? Import Theme 导入主题 Themes (*.fwtz *.theme) 主题 (*.fwtz *.theme) Themes (*.fwtz) 主题 (*.fwtz) Sorry 抱歉 A theme already exists with that name. Please enter a new name: 已经存在同名的一个主题。请输入新的名称: Export Theme 导出主题 Timer <b>%1</b> - %2 <b>%1</b> - %2 Question 询问 Delete timer? 删除定时器? <b>Words:</b> %L1 <b>单词数:</b> %L1 <b>Pages:</b> %L1 <b>页数:</b> %L1 <b>Paragraphs:</b> %L1 <b>段落数:</b> %L1 <b>Characters:</b> %L1 / %L2 <b>字符数:</b> %L1 / %L2 Set Delay 设定延迟 Set Time 设定时间 Delay: 延迟: Time: 时间: HH:mm:ss HH:mm:ss Alarm 闹铃 Type: 类型: Memo: 备忘录: Edit 编辑 Delete 删除 TimerDisplay HH:mm:ss HH:mm:ss No timers running 无定时器运行 TimerManager Timers 定时器 New 新建 Recent 最近的 Question 询问 Cancel editing timers? 取消编辑定时器吗? +HH:mm:ss +HH:mm:ss %1 - %2 %1 - %2 Tokenizer Unexpectedly reached end of file. 意外地跳到了文件末尾. Window Loading themes 载入主题 Loading sounds 载入声音 Untitled 无标题 Open File 打开文件 About FocusWriter 关于 FocusWriter FocusWriter FocusWriter A simple fullscreen word processor 一个简洁的全屏文字处理软件 Copyright &copy; 2008-%1 Graeme Gott 版权 &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license 以 <a href=%1>GPL 3</a> 许可协议发布 Uses icons from the <a href=%1>Oxygen</a> icon theme 使用 <a href=%1>Oxygen</a> 图标主题 Used under the <a href=%1>LGPL 3</a> license 遵照 <a href=%1>LGPL 3</a> 许可使用 Characters: %L1 / %L2 字符数:%L1 / %L2 Pages: %L1 页数:%L1 Paragraphs: %L1 段落数:%L1 Words: %L1 单词数:%L1 %1% of daily goal 每日目标的 %1% Opening %1 正在打开 %1 Question 询问 Save changes? 保存更改? (Untitled %1) (无标题 %1) Switch to Next Document 跳转到下一文档 Switch to Previous Document 跳转到上一文档 Switch to First Document 跳转到第一个文档 Switch to Last Document 跳转到最后一个文档 Switch to Document %1 跳转到文档 %1 Loading settings 加载设置中 Emergency cache is not writable. 紧急缓存是不可写的。 Warning 警告 FocusWriter was not shut down cleanly. FocusWriter 没有完全关闭。 Restore from the emergency cache? 从紧急缓存中还原? Some files could not be opened. 有些文件无法打开。 Some files were opened Read-Only. 一些文件以只读方式打开。 Text Files (%1);;All Files (*) 文本文件 (%1);;所有文件 (*) '%1' is newer than the cached copy. '%1' 比缓存的副本新。 Overwrite newer file? 覆盖较新的文件? Unable to load typewriter sounds. 无法加载打字机声音。 Please make sure that SDL_mixer is installed. 请确认 SDL_mixer 已被安装. %1 (Read-Only) %1 (只读) &File 文件(&F) &New 新建(&N) &Open... 打开(&O)... Reloa&d 重新载入(&d) &Save 保存(&S) Save &As... 另存为(&A)... &Rename... 重命名(&R)... Save A&ll 全部保存(&L) Manage Sessions 管理会话 New Session 新会话 &Print... 打印(&P)... &Close 关闭(&C) &Quit 退出(&Q) Ctrl+Q Ctrl+Q &Edit 编辑(&E) &Undo 撤销(&U) &Redo 重做(&R) Cu&t 剪切(&T) &Copy 复制(&C) &Paste 粘贴(&P) Paste &Unformatted 无格式粘贴(&U) Ctrl+Shift+V Ctrl+Shift+V Select &All 全选(&A) Select &Scene 选择场景(&S) Ctrl+Shift+A Ctrl+Shift+A Fo&rmat 格式(&R) &Bold 粗体(&B) &Italic 斜体(&I) &Underline 下划线(&U) Stri&kethrough 删除线(&K) Ctrl+K Ctrl+K Sup&erscript 上标(&E) Ctrl+^ Ctrl+^ &Subscript 下标(&S) Ctrl+_ Ctrl+_ Align &Left 左对齐(&L) Ctrl+{ Ctrl+{ Align &Center 居中(&C) Ctrl+| Ctrl+| Align &Right 右对齐(&R) Ctrl+} Ctrl+} Align &Justify 两端对齐(&J) Ctrl+J Ctrl+J &Decrease Indent 减少缩进(&D) Ctrl+< Ctrl+< I&ncrease Indent 增加缩进(&N) Ctrl+> Ctrl+> Le&ft to Right Block 从左到右(&F) Ri&ght to Left Block 从右到左 (&G) &Tools 工具(&T) &Find... 查找(&F)... Find &Next 查找下一个(&N) Find Pre&vious 查找上一个(&V) &Replace... 替换(&R)... Ctrl+R Ctrl+R Smart &Quotes 智能引号(&Q) Update &Document 更新文档(&D) Update &Selection 更新所选(&S) &Spelling... 拼写(&S)... F7 F7 &Timers... 定时器(&T)... S&ymbols... 符号...(&y) &Settings 设置(&S) Show &Toolbar 显示工具栏(&T) Show &Menu Icons 显示菜单图标(&M) F&ocused Text 聚焦文本(&F) &Fullscreen 全屏(&F) F11 F11 Esc Esc M&inimize 最小化(&I) Ctrl+M Ctrl+M &Themes... 主题(&T)... &Preferences... 偏好设置(&P)... Focus Off 关闭聚焦 Focus One Line 聚焦一行 Focus Three Lines 聚焦三行 &Paragraph 段落(&P) Focus Paragraph 聚焦段落 &Help 帮助(&H) Application &Language... 程序语言(&L)... Some files were unsupported and could not be opened. 某些文件不受支持,不能打开。 &Off 关闭(&O) One &Line 单行(&L) &Three Lines 三行(&T) &About 关于(&A) About &Qt 关于 &Qt focuswriter-1.4.5/translations/focuswriter_zh_TW.qm000066400000000000000000000000201231434177300226410ustar00rootroot00000000000000 Alert Close (%1) Collapse Expand AlertLayer Dismiss Alert Ctrl+D Document Sorry Unable to save '%1'. Save File As Unable to overwrite '%1'. Rename File Unable to rename '%1'. Reload File Reload the file %1 from disk? All unsaved changes will be lost. Reload Plain Text (*.txt) Question Saving as plain text will discard all formatting. Discard formatting? OpenDocument Text (*.odt) Rich Text (*.rtf) All Files (*) DocumentWatcher File Changed The file %1 was changed by another program. Do you want to reload the file? Reload Ignore File Deleted The file %1 was deleted by another program. Do you want to save or close the file? FindDialog Search for: Replace with: Ignore case Whole words only Regular expressions Search up Search down &Find &Replace Replace &All Find Replace Replace %n instance(s)? Question Sorry Phrase not found. Highlighter Add Check Spelling... (No suggestions found) ImageButton Open Image Images(%1) LocaleDialog Select application language: <System Language> Note Please restart this application for the change in language to take effect. PreferencesDialog Preferences General Statistics Toolbar Spell Checking Select Dictionary Sorry Unable to open archive. Unable to read archive metadata. The archive does not contain a usable dictionary. Unable to open file '%1'. Unable to close file '%1'. Question Shortcuts One or more shortcuts conflict. Do you wish to proceed? The dictionary "%1" already exists. Do you want to replace it? Daily Goal None Minutes: Words: Editing Always vertically center Block insertion cursor Smooth fonts Typewriter sounds Smart quotes: Double Single Scenes Divider: Saving Automatically save changes Remember cursor position Contents Word count Page count Paragraph count Character count Page Size Characters: Paragraphs: Word Count Algorithm Detect word boundaries Divide character count by six Style Icons Only Text Only Text Alongside Icons Text Under Icons Text Position: Actions Move Up Move Down Add Separator Command Shortcut Action Check spelling as you type Ignore words in UPPERCASE Ignore words with numbers Language Add Remove Personal Dictionary Reader Not a supported RTF file. Unable to open archive. Unable to open file '%1'. Unable to close file '%1'. SceneList Ctrl+Shift+Down Move Scenes Up Ctrl+Shift+Up Toggle Scene List Shift+F4 Show scene list (%1) Hide scene list (%1) Filter Move Scenes Down Resize scene list Session Default SessionManager Manage Sessions S&essions New Rename Clone Delete Switch To New Session Clone Session Rename Session Question Delete selected session? Session name: Sorry The requested session name is already in use. &New... Ctrl+Shift+N &Manage... Ctrl+Shift+M ShortcutEdit Clear Reset to Default Shortcut: SmartQuote Replacing quotation marks... Please Wait SpellChecker Check Spelling &Add &Ignore I&gnore All &Change C&hange All Not in dictionary: Change to: Checking spelling... Cancel Please wait Spell check complete. SymbolsDialog Symbols Recently used symbols All symbols Details Name: Insert SymbolsModel Blocks Scripts Theme Untitled %1 ThemeDialog Modify Theme Name: Background No Image Tiled Centered Stretched Scaled Zoomed Remove Type: Color: Image: Foreground Opacity pixels Left Right Position Size: Rounding: Margin: Padding: Text Font: Misspelled: Spacings Line Spacing Single 1.5 Lines Double Proportional Paragraph Spacing Indent First Line: Pixels Above: Pixels Below: The quick brown fox jumps over the lazy dog ThemeManager Themes Add Modify Remove Import Export Close Question Remove selected theme? Import Theme Themes (*.fwtz *.theme) Themes (*.fwtz) Sorry A theme already exists with that name. Please enter a new name: Export Theme Timer <b>%1</b> - %2 Question Delete timer? <b>Words:</b> %L1 <b>Pages:</b> %L1 <b>Paragraphs:</b> %L1 <b>Characters:</b> %L1 / %L2 Set Delay Set Time Delay: Time: HH:mm:ss Alarm Type: Memo: Edit Delete TimerDisplay HH:mm:ss No timers running TimerManager Timers New Recent Question Cancel editing timers? +HH:mm:ss %1 - %2 Tokenizer Unexpectedly reached end of file. Window Loading themes Loading sounds Untitled Open File About FocusWriter FocusWriter A simple fullscreen word processor Copyright &copy; 2008-%1 Graeme Gott Released under the <a href=%1>GPL 3</a> license Uses icons from the <a href=%1>Oxygen</a> icon theme Used under the <a href=%1>LGPL 3</a> license Characters: %L1 / %L2 Pages: %L1 Paragraphs: %L1 Words: %L1 %1% of daily goal Opening %1 Question Save changes? (Untitled %1) Switch to Next Document Switch to Previous Document Switch to First Document Switch to Last Document Switch to Document %1 Loading settings Emergency cache is not writable. Warning FocusWriter was not shut down cleanly. Restore from the emergency cache? Some files could not be opened. Some files were opened Read-Only. Text Files (%1);;All Files (*) '%1' is newer than the cached copy. Overwrite newer file? Unable to load typewriter sounds. Please make sure that SDL_mixer is installed. %1 (Read-Only) &File &New &Open... Reloa&d &Save Save &As... &Rename... Save A&ll Manage Sessions New Session &Print... &Close &Quit Ctrl+Q &Edit &Undo &Redo Cu&t &Copy &Paste Paste &Unformatted Ctrl+Shift+V Select &All Select &Scene Ctrl+Shift+A Fo&rmat &Bold &Italic &Underline Stri&kethrough Ctrl+K Sup&erscript Ctrl+^ &Subscript Ctrl+_ Align &Left Ctrl+{ Align &Center Ctrl+| Align &Right Ctrl+} Align &Justify Ctrl+J &Decrease Indent Ctrl+< I&ncrease Indent Ctrl+> Le&ft to Right Block Ri&ght to Left Block &Tools &Find... Find &Next Find Pre&vious &Replace... Ctrl+R Smart &Quotes Update &Document Update &Selection &Spelling... F7 &Timers... S&ymbols... &Settings Show &Toolbar Show &Menu Icons F&ocused Text &Fullscreen F11 Esc M&inimize Ctrl+M &Themes... &Preferences... Focus Off Focus One Line Focus Three Lines &Paragraph Focus Paragraph &Help Application &Language... Some files were unsupported and could not be opened. &Off One &Line &Three Lines &About About &Qt focuswriter-1.4.5/windows_deploy.bat000066400000000000000000000040221231434177300176360ustar00rootroot00000000000000@ECHO OFF SET APP=FocusWriter SET VERSION=1.4.5 ECHO Copying executable MKDIR %APP% TYPE COPYING | FIND "" /V > %APP%\COPYING.txt TYPE CREDITS | FIND "" /V > %APP%\CREDITS.txt TYPE README | FIND "" /V > %APP%\README.txt COPY release\%APP%.exe %APP% >nul strip %APP%\%APP%.exe ECHO Copying translations SET TRANSLATIONS=%APP%\translations MKDIR %TRANSLATIONS% COPY translations\*.qm %TRANSLATIONS% >nul COPY %QTDIR%\translations\qt_*.qm %TRANSLATIONS% >nul ECHO Copying icons SET ICONS=%APP%\icons\hicolor MKDIR %ICONS% XCOPY /Q /S /Y resources\images\icons\oxygen\hicolor %ICONS% >nul ECHO Copying sounds SET SOUNDS=%APP%\sounds MKDIR %SOUNDS% COPY resources\sounds\* %SOUNDS% >nul ECHO Copying symbols COPY resources\symbols\symbols510.dat %APP% >nul ECHO Copying enchant library XCOPY /Q /S /Y enchant %APP% >nul DEL %APP%\enchant.h >nul ECHO Copying voikko library COPY voikko\libvoikko-1.dll %APP% >nul ECHO Copying libzip library COPY libzip\libzip0.dll %APP% >nul ECHO Copying SDL libraries COPY SDL\SDL.dll %APP% >nul COPY SDL\SDL_mixer.dll %APP% >nul ECHO Copying Qt libraries COPY %QTDIR%\bin\libgcc_s_dw2-1.dll %APP% >nul COPY %QTDIR%\bin\mingwm10.dll %APP% >nul COPY %QTDIR%\bin\QtCore4.dll %APP% >nul COPY %QTDIR%\bin\QtGui4.dll %APP% >nul COPY %QTDIR%\bin\QtNetwork4.dll %APP% >nul ECHO Copying Qt plugins MKDIR %APP%\accessible XCOPY /Q /S /Y %QTDIR%\plugins\accessible %APP%\accessible >nul DEL %APP%\accessible\*.a >nul DEL %APP%\accessible\*d4.dll >nul MKDIR %APP%\bearer XCOPY /Q /S /Y %QTDIR%\plugins\bearer %APP%\bearer >nul DEL %APP%\bearer\*.a >nul DEL %APP%\bearer\*d4.dll >nul MKDIR %APP%\codecs XCOPY /Q /S /Y %QTDIR%\plugins\codecs %APP%\codecs >nul DEL %APP%\codecs\*.a >nul DEL %APP%\codecs\*d4.dll >nul MKDIR %APP%\imageformats XCOPY /Q /S /Y %QTDIR%\plugins\imageformats %APP%\imageformats >nul DEL %APP%\imageformats\*.a >nul DEL %APP%\imageformats\*d4.dll >nul ECHO Creating compressed file CD %APP% 7z a -mx=9 %APP%_%VERSION%.zip * >nul CD .. MOVE %APP%\%APP%_%VERSION%.zip . >nul ECHO Cleaning up RMDIR /S /Q %APP%

      k/4𫑶6a9 2$3\ ڡ]r|}`MxY&Ù)ZC_ؔ& PVtAtRA/Dډ!Z q3&^4`\pi[ !^j% oҚcuM9lV))9lJ'^~oRŨUN]>/avh [ab=|3=LX_lэT.#Eu*ak\EE6vc{GHПJڀX^,&wX^ tt]T%: oն{>K't'4x([vh_[_y$|*rb&+LRia$d1@C~cZIkNwhs?VGX4$mAxvZQ' J' 1a`q``k|j@Մհ!OfyR JOqD#؏Ur4Շc)sJc8·<OAS*УQ#~ Ku4>5|yNtȃy Dxg&_z3H0{b>/aAnU:R'9w~&ܫSU8:`b{ tq#G>lRX7Y hBވ1\\FۋԀ ڷͩd*@e d1h~+|m`V}R]h>خRPsK#(VT]|Œ^#Ǡ@e=_>U5e bG!$A Ԑ%3v1P]2bp, #tY)wJФD;dm-2{MFhJRz6,֢$#DouC!2B S%!Vf@_#AAZP#CmLeyN %_pp`'T p,"?YFTe $N9pD) ^,3}d%s^(#LR=@F&z`?Wc g9zj;϶?bV* Z t^O%JT>N82/ Sz*KƉ+w, 8(yLto`%<8oSBy#Oyp^cz5EJgt̓C!DXCr16(|Z9xL޷Kk1؇w-IYToh< ,ſvJJMIE<;$aĥVW&=^]Xf<|zsʼnOE߃$!2o)0ײ]ٿʳ K{c";sW"+.Oe &+p ҄u|wqYb0?<-~_X[ Ty6)N~$CHRwcq0ㅪV8Xv_M7@)t 탱U}%wp,ǟFPO1rRN_5s}17ӷq gI-jmS|^a.Gߚgsq?ӝk|zWƸ>rWFQ12;{*\ciI<뉼?a}&ݢaa݃:K];=k}F5OMala+*y!9kOK.KGe9tJk]w Xv=% |.=$`^<`vqFo[5֪DuUbA»j"wyl6S1wن#K|;s ӦFmܾƽ]o5BfzﶼO<q@ 5~kxع暭@f[\Whx?<wsn 0hǑ*>@w쮓A<ѓG2">cwc'[LP;LpžT)P8vM;\>2|`_u2Fծc `ߵyM;`5#~C}WFd@bU02B•42ؕufg.ߵZUe,2I*egJ. P{f..rA* >>g +6b]ХPa\0/%]R63l`rRfGSeL56K&q[NSqUG*;<(f߅y }fhJwc~rF@@rFw~^x]حwuJ鋅)WVRxH8Yď50k^ФϫQiε#4w3WΦUF- p!8 .`J0鳘mϤ1Ϣ+U־3 2E;}˳Q3祺qiyT ٌɊtJqHb,E[ޞLb ҷL WRr?6 ={k\ %gywWjf < u_;gZ$WFt'33~f7UѾ( aS$|9jk vim ja/QgwomA N^9+oTkB-f 0g5dtDaMtM}ΛE ٕW{$x j#FWįg4w Y 2wH*<rxml,NLFNKy cNC95wgjL4ȮOs+fYRb g;)ogruj/Ә:FS9w:/H Lu{q6þ(oGb8(bHV >#)șDsRI??/HOdz6YqM^hϕ۔Ω; }^A=G8-ɋNl91n_n=K.}E#x[H1a^\#ϧ ӅAC}\ξ9"<3|.cv9D<+!?[vksaкٖL3hC)=W X/P(ז=&hRhKd9FAfD uRTF`=&ZZ!zi-m\h0˞P-`4UwM3X7#7slRm&K/b"Ho!r(gB T!ˋ!:Ӡeok}Mc$OQCݬ哻O BV: 5ɕj}E\ TG9)PLhRFѩrXrdSvpB=EyL@B,rl=X.9LǣL}WH?33}\|$HϐiQ|GwˑI/2ljGeXt!$#jP$tzH&d"!O9}=hAl5"SOHQI?X b堼Y&?2@ =Ld@24Q?kYzH(= l qS6Y!]yZ)]Br_8[8 #x̾yQ4؅ 2}aȦRtFg9lܐ9_My\(?_Ӟy /hc"Z!4H/1=9,(\ǂ ;I 1Ʀ \[4=X =G<6W@Ʊ!RܳuL{̛RyC犼u9,t <@ͳ ܃: Yc8]e"A <ᡓ=J3yAf8OJJV衳xPj:]JLMM' )4]8`GLOVEyIEf.vPi^b0Gwc<)MJ-|ys4GsSϳD}x9o_':Su,CeR=$NuU T!7*^`W$v+K!fΤ8كJFFj0њNO^f˵\S_ЙgMYw/|u$7MAU߽8#L3B7{q`x]FɂnLP8=agAK 㪔u!8oCV}45ӿlq*iIrl[}ǡޕsQw]Ag7 ,' 4iG1mKzqS`xZ ҳ<z +o )ޅ9kL+CKɚlMsI3Y㧙/;M''8 z7ۂy 䇙C.8Ģ`Ϝ9V8ir 6hNӢ|Yu9gBwאI e?(PW+E\0OGe]ԇ+^3Xj%ì=*ѽ^Vn2&z W# Y}Mb8|_7TmWFT;:$ыө{3z;yVfMD;":Y ǻHtt dS0S]jTK}{?-NA\\tZ-[OI‰\߳9(O Q(u㱳U] iAvT_> |1))S*P51!sEq]~ tU] ;{?"T<-  zqvЈYJR1A(ElE1[>*T&(KTGm5<%D>,C; Z +$<)>$ @I5?(vR1 3=  * ,URG{>Bw>\QݘU$LfP{56<=BorC,^[H6Y.8Ћś%?r4N<#Fzo8c)Ǥ3'.*&K%һY6~6׃"'[Eɺ㽓%݆"9%?t 姽7*,ΒMYn V%ьI[ S3|(x'R@u"%u׷yHItɥkĊK:XZT"maB᫲')*ai4# $JQ^!:u`=R`E Lt{#5/˔tϰb^"&U9!{'8aer@WtWpқpL]Y42^>䢬93c pud/ӽkKX]UQM/eqlU )0*)y.}CR6Z3)|^X5wm]0k>gϿUK9 uƇD~c?4>N=aLM06~J&huۖ*7a5Vj4X>ip[/D! )^V*TDz>:FF*'lkn)BdƯ*i_5WUd;-)܊bi'QV:E:R^,"Fr eE)Nju#0SvAI4F=N>uy.W ZˏJ0ɳJ>mT*ͪ6{;liv:wn@TomF5E{l1@␶ÈT>m dtpC1vմ e3(`-0% h}s Z}WFB>8, U2MS&SBf14V{QNV;-]U?-mY>N @^@5)8.A>d(p]:be)g:-ʃe=\|"}'aNIM~`s!Y)D©rP{R >YԡFxmY;It{ڢmرjesTԜT+9фɡŠزZ[}RD+.(-v\eR~7v> AV[ ʢ ^RAYнo*,FXp dGo閗73vf%U"mjI6؉JzXX&:NֵQqֹMv Sv4P.PYit4MQ}Mnp٘lqm-80n&ZL*1J AޱҦ=eHeuɢY, i ,((%#dalzn~MŦ{:ٝ&K\O't F*8һ•}]x\YI^3w8{w)g[J>/rèJhGS˒#BvkJF X )(X^_Rt/lb37 T!~A?IW!O~Pڦc \$debH/-+GfЦf[1&QqWS Nx/evAv*jA6mw)yxP<[|˭BY;}ꪢE(@t #@~~a]1,f9iaqKn .oIQk2,i2M0Y UpC+U]]ٍuSṇLl=UFҢoт=  +sSN>}-rМBEIimw `Jfahfʧq6/Օ>ռ% 83Gl*6l_\C]擢u'uR3pw"MT|}>%wX Ɣ` *nlr|*ġ/8/k<6%M|u!\~Bg w}gKme }r A&i HUT$*iY%Đ _< Oy`Pቯ;}>ߔ(\(*N.y&i`^, eNPFE'̱"~mDzjlZЃ!{z"HJ}++T΂W',Fb&"T 1dXA~V` eB1@킞Hϛp ƖfU(la$0٭>=/d] WxJk5ڄ|Lvɟ'xc) N74Llj!9 /kLKgK,$Ty6 B S"gB^DǢeAOG2=< 6JMiC>g`o"@ wZVsmfUt*"GsFBRK۲Ž.(HmkeQ_$޴ 3ow%H. z=Q/O':KAlD`$7[A+mi -8 R.JvlV4b%[#M8zhS"f`-toAQ$ᤁt9BIm+.`,ScotRCYO;&&1K`>AB@rٸ|ct&d9ϞVm)]m'd}qK&>ߤ{gʟQ;M׸Xx8%36f9kN7$q;Žem=hY/dN&ЕNZah0Wdz=ktma4ŘSzVeK3|WJSH 7\H;=޳L)b0{+%><AbQbwA&"Q]f\_#ͰD1$& 6E' 6=EA?`Y 7?S0i2<-K˙_B2ۊjbOBoW3XPwsMfj2f5԰ ZSفJ~_Q>_ a;` k d~ vBc:je5ǬOpf/B TW } {A7i) vYi]Őw*;c)̴@aT*s˟xlPb'9kv]`st@rO!q3/P s%A 8ְ%/pU5A;R]UQѷ,Z[(^_TlN ]+UeQ'7֫XP`fQQau-)N mU:bttn3vv8ױIaz_2˰Ym Q §Eᧄ8oʹp] OY+)oC %[xTvu:x6N0XLԞ;>mG^,|HhK2( >AyGEq1?(T̙k!5Ao@Vƒ uN'J>vAunQw0ce%wf1- aU[p p35Гi mf; ԰ ~h i-R6o4[.pwC{^"^:qMX֑qX?VX 断X\#,Ud޻0N<i֋q=)8LJPJ&m.lU\dw"Ciea9NS<2;Tƃ[D2ItQr8Gl;ZTӼV"ӣKD[cFV:_T'ǴToĺm(blWdEމj]&4Ə}BEh=wVȝǦX$&rFzؓYnk@)v([#'mђR"G[PJǓ;tlSR?^ :KEX$ǽE,Zym:Eh9r@GT*?y6y#= M|WdtV^Ԋv*ټ+?UjP|ج'5m3Zʙ+O:~v^G97Yɠ&R%JA9۞Tιtz.VdXLCbVJ6ٷ<_٣CoV|DO6ï|ф.y{:]z6Ѹ&7gG_٣սUؿ7n+{/z/r8"&ʌӳ'v!'gU%Q Z"L~g&&J*ዢ7uD;  2 @;~h9gYy{>m}^a{w,&Iy[X•{Di:sBAvxvW- ; AgX4Gs Ȟ! ҮD&ה"4-'ߡFuȇZh%U"k/˒Q|C<:[TK)Qe]ֺHlDZӖ6Q~ 򵷊dVYQ--(}*;-)͒(ڄXUa_Ivg]3s7 6='m#QƞB_r{|HzTEQŮؗuUXl&[-+KBd$%$ƶlI#k@DX-I\hCYZe RpBZ(ү+_Z=@ @lmIX?رνo;3N{νs{zQĖTb4[Õii;+g %pŇ؎ +-h7:?;Z>t3ҡRe Ҷʹ2R/QIl+uGQ/.*КhI2fU]YI,5$Rؤ]>,m$#Z\ܥΪdh3//r*(qҌJ梭ûLJBFUB4k[ EAmT"*!VP*urʂ wh(6‡fbT"Jvb}uswSDLth'Ւ=D-ҙTHTgVI43vd6ג!J:??4* Zo2VT*t˨Q+[|Moue+g b2%R@ I].~Tb.2d߫(UoQSjK!R9Ը]=JY+FO+k=^ENutqO+j=RX v2V@a ZUdρZ` # ˊ>|ecT@ݷ1BL}q02ʋ9+<,OI%Y Υ5 q_~=4pt+&Gᾔ۾P=35 {YFߘ cڿN<k_ BzHj1 |P4woDZ  ƧmĿWa68 ^ զ"D#G!ܺr釵>Q\RcAͪ4h4ҹA-R qjrw!Y9ȓkѣNGQV[.'WDFZ\9)ډ]) 7jT*Ca_Z120?7ߗ5 nDy VfY4}[CsFZ\JVj-£Lm٩YzM{FkhR yȏ71Hv-Wk?3:Zm j#=aJCMmJ<-?ҡURCU*\~G5B{[5B/Jq* j`r[h5Isi  4C2(QP03=_UGDܢѡ^#*!eFZ|u^GR~PڬQl-J$}YU?JNW_z9p6ii >Tl$/ri5OON2~^6mħT}Aݔ!OȥG?ҡتѡDfNݻtAiB tź:$!5$W>~ &Gh*EիOPJm(V#47яFE*}U{ӓ=2:8Xa'JM I;ёthFl,'Ulqp{v_cɡ/>+ɏ{"(Ҹ]& ;mߏy<9ƻ|Jz4᝟Ոӈ٘M;г>~o{CyX%(aq!nrb=(/*&zza ՘Dp&4dTOBݽ?5j討3}KvE(QVkȨz|\%"6 /:?jSbVi^|;ewN sP&' 'r3L?F5T">4?697tIqJ\L}R]I7[V.ʿS;IaӰQ=I{-n~v{ ($Mé}|MV :aHOÏIߨ( L Yj?"PjoPsVۓ|#LgZm)F#!:oiDFRIoj 60p3(|bx/pnx(L BE496<L-R\}@/Kca?_hL^ SDC[kIJ'JDMtQeI`g88o)1;d:T o r`/_E@x<8LS6]{4->ؘLNC۽B%L Ol#Fˠh$0:MAL=wXR09›MvꝓQwDi~+k @hMH KpbpdoԼko/{!ysAlL:6Mlwӌx3G ԉ>[AySS^o(5R7rPY9kwRwה˞vp%ǘ7kG dCJoјܽؖWA2*K'!Zhfb+UWyš&&vc=NW[hg]9ڼIk=:!k:vwqUO1ג74z/ 5^guݸ&Ee}>~p@>'rJ\40e^c!H/ r^QCW-[**nӎ^!]n<ڿ\hcZSZSVʘ|RFS)cRTEѲ+eK2f)e̢+e4ƳJ91tZ)91/9+RFwR)cnJ!JRFݘPʘ0xZ)c~_F){) wA@IVO xcm1[x|WK.x4z+X H=hqK1u (WKYrJ-ePZYP~X'.'Ֆ'JKz'Ԗ'V%1Zޢ6o)#jKnOڒI%y\my-O!ZʹڒNҒ{A%P[rmo)~e?Zo)AcjKnЇdU[O-e%Kxq.a=wZy <8߇m~NgUpLWm-@5"O}hO=j?I} P>> J`ߚHӔlg$I2K:Z~իJKi~DCvIkIQ]h0y9 2_QȓD~ҵIФ09ƷJh%f{ 2q$5ЗL˾f2Lwkߤ֎; PoQsy18 rhbٿǑbsy0(mӵ߹gҦKbW_Pz(i¸gP;JbWݰux{bWM8abGd„Li-tF)P74٫5fg* 3|ЙAxbn6ZV)qD1Hձc$.#vhL6!Mw8# 1S {Jh\H; o't2? s\ [at9f*^Cj{<[kGxgzҰIPrkҡN%FN%6;*Xm٢ݎY08@w :Lu9SLk/#r˷?QQPجRveC)gI~ eUAě)×yih.cD>U9w[W7Q;);屢;Y7=6u 9Bf+UsQngʌrb9UPsMoUUn3\ژ3UPssAsԶ5cNA' og <2m9*v BnשFɎEFLc1fK&x:'9Ck$Yghܑ>&hϹ!ct2"}u#AU}ssÌ7bds=qUF72.%$Eҹ_wKhPf</}N䀜A^Y ʤ`ssdFyĭ ʜ}QVi(A>\&K-xFS&J SU1I ~s_I\&~*v*.P'q =uw*V:U L0}-Z8@xǪeyjy#`YS{$e@L¨:j O:q{^NrМiiBn, `O/ۨLvvS5RIݽ==ә(a5yEN4_!_AB.?`JPc jG2Ig &w{.;g 6ͺ,KO~tn{sbn"3 d.c|{>=df8ڤ A:\<7fp)hdw%ZܲR^M5*MGI.3[]=3sH|bсz"oHgN{rdd3SVɺkvg*ѩLf6c,dbVs౼% &3,SnUOvv23-o)O CSvGf)osbS9#= KFKKjޱl[6jLgf4Qi7BQ[ z%!&u"gߝI.NMR4p.3;|A/'Kf aҴs43/bV؞ZDvlg#6זʈczPONeg"Po!cC z$NsYȹi mMGi^zrJxmm@ V?4+gIm ud ]VnVK,Mx Эr t3wel [oq͜^*jxiL~mvQw9RnȵtT>ΜO/;=nX]˸GCʠ̎C^G\ѥ3[hU|*m7g&2ŁpYvSP6flvԂ[QjgӎΎ*vܿ%lU%k8s͢p缅c5UgyZX\UVN^rC"s ,,A3~I\NL[|E2ЪOSβ@Nf=2\UӐC"'7g>g܊i+o,Neg2GiU≖x䶣X;:ŗrԦٮ:mM= c|7:m5ywP>4's׳W'3sScoF.BQ(^oy;]܌>> Pu,fΖA/fIgSù.9APYEsff#". ,B?a"/]wQ7Cp]&au].Gxٽ, hY2b%f+Yu P sڬݒu]DK:TNg'̢1̭bDv,}.]~/wH ,L^x dwmz)\Vf/c/s(-#3iCёn=1#)FS.Å,eʝY;thiz3.?-Dh2,?{<#_"sё g\,xj NfLh+x|+p}bv"!:fP8d+ ir+`;Q(sna1~a}#g0;N 6!QD=y(= k=XEGL1cdg H-LCg :#UXɳ"VAq [ Ӵ]Y9Jza&3+V?sŒTWNT>}D h}aݙ LJ@6^^,77f9f օewPN;bej?q XZ𺼅EJU= t I5yqSK룴 E:u~}2ĞN:3"7E}~Wܻ*bw(;Lݑܴdz BP8#lP>g!<fI_q)BW1% 3!!>,)->76wcA0O))_:6QЦF…fCff(~c XK][}= ѦOX[{^m  Q4D,laf K; 7fs"?,6~6LsӹF]wv0lc6MV쮷bϺ۾p@&rՏlDb 45a H P`NXN Z;,N8;OX8x6r[o>vSy-OL̊a(^;Ld;&.CK,c@1>p- ( ]hw!|W`x-uf%<bB 㹌-s|ւ=&PYu|׽X:Hz,9/0sz#6BJ1Fq[M T^ 4B1Fho[`51nh#܏F,F0/ xHnJ#F eik pl ABpC`S@CXzB`RKE n5pC-@XCfYBKe#/!%K_BK| /!$7+!%>_B//e !#@P}t s0% ᗄ0S`JL )a0% 0< a0! 0,OZKG̬_@* C2x> XX00 c- A 3G,tyËM`tbQbQ?G1(}w(x0(xo\eRŐbQ7F >E1(v'"1F?o^fUq p40Q__y4N'ِaan-&k$L"l CWb&%f>a@ p/Mz܆8k+aV~tN^gO>]Jj/u઒&Ohmc,/(I1M6`oL6h8lsp_68ly)` 9㒁Nr^x5ീj{ T͎ZvڜAFfXۨX5@3SgصRo`.)V jZ_6&Q emDpĮA۝6efAc00g)O-U߆ݓc uB%C<-8fmƮ8B Py!`vf7](s瞺܆.vuKo]2\ڲ+v d[T#{* pBݭ!\JrMvVjعAW߬M"x#Y[P}NCM.O6&5+VL̄͠B&3V-u9:y:B sA(=+&$XCp@ C^XUCzԞOCrp60ֳЖsG& `;AHZ@.xXTo WkQ$+7y 4#I EkcjC+=ϊ iv\Wu*iM}ӱT2+KorïB`` H T LFZTcjrNj=헥&S6⛠P8#%C=pLjidCPXo^qcv57D?k5r %w,MiUHTI u Û>ѳJЫhOc_1Y<  Ms20ҜbFpٜg0EQ_u:4[e@{'cLi:]v+|b*#cx&DŽ=@2d\bJ?;\Ef-7ʔjqm$vlưaL7n+ҏU+07ryPV (՛(]_h#48[%j9EiW/,X3T;D_MJ#fB4҅jXDJOC"S„DPJb^e P /GVf#d?-T8%E6"_ ҍvk\``]\ZU f2 ^ڐ..Ez+K _`UR u@v5l,I2=PִG,$%ܡPb@(gSdyxΣ%gN.EmP oq>L݁/Hŀ c Q;7xeOU4cµcݺ-NH;\-g&b\L=BorH@LJyA7\$Dk=4QK=!C3 W1%=b7AK8<.t cj et Yb$Um];߫Lxֶ )*tG*dvp g[q] - M۸`LӐaڥ! BWRhVN`iN~s"[ۨ )UX5_'i;^GShtf +laʭ5 3#ME35օEZOB9:=?h?{zjOc=Tn*i5 J >S{I/=D=jӓ h9 N{(\OߙN@cxz:P,M@9ynSb92 *58S{ZLD[^’%-.ra<@Uqx!ge<}l .KmJ}{MWZm*;[xij[Xk{6{Q#9C@̣w#>g(-0[=xyEbBTj,Ohs;(K %45z&H"Uު챷FU5{g1vGOq^w "LMw.r[e+rsr 0 b-nKċmX A@ekk8v0#{9ʋ8V Vf7F<Ώ6vJ+s"HktR!4 3㶋oas&mSј.ٕObb~&r >ݥ%fgh ȏ&;n5Y:K=}?Epjp>%wdz$ٺ֏v! '-YǺdhpXT?ly#]Zb9D/?tV)bYT d 9 #xKh!<yW7 Qr zeyZb?AFVhMي[{hm ^b ްKc-+߮p:943<](y0OexU0sdGs@`.Q;Bp3\ 1/N p6@!?O xw%@Y‹;%G63gI(ݧ@`dsmiftu ~ PEi{Peo3oWiQT;E6!]+Fesf&7'L]Aj cΒ AJm$ŸAI=wQ&XQ[Қ;7ެX<2EQz+yYy^/2+|J9Ή[ҵjͪlSV'LeJ' DjkpwP> rf̞fC|ز2]3! Zn4eY` 6l[

    \nƭI4"HO]8}|,/|epںi>z3J*%LjK 9+3{L%9PO,B6%[?aGթY0$ލ mflsq _(`dGD4 T?; MAUQgw ¢VHOmW ܈x8yLLͩbܻ+=z?gSimG+9Q -r=y5$|͘:~?ߓ"W"U/3EZXDH~LiN%$);R$ӎY@Ÿ* EY&%; J (0PBIDvXuU*4!:\4#ҁ{&o1pBKsu[Gۃ^;şx۷պvֽ, e}] ]#pb"8H $ҷ"A:`f|&s / ζ\#/@qfoY %vH:$ E3SD`^bЪ-4gn8i쉍sc;5rbRsfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/22/go-up.svgz000066400000000000000000000114671231434177300257510ustar00rootroot00000000000000][o#Ǖ~__<utnu)N ]l5D# _UMR͒&К&-թWW]~}J'|v}ӿwgqzrΦ7oo_7nf'ﯗOp]wpaxuԼNNNJ˯Owo7ts:?/ry{ŖbvU^rgErᬭZƸ*#y)$pS۽ʿ oUm<>!̖f676+r;}M/ ^7P³r__^׳O˄͐.B6liլ{ݴug22WwPmavyvò]5U4LpU{w[tz;-\Wyq3}yӝO/7ӛsݾ]YJ#O;>n H|[Ng崜 ؋U}yy?ӗe:kEѠ7oL_uUUU4^~ 4Vzok?-onP;9=9zk&_Oקp^ L**_uMVhhq=]2r|1=ѣ|:MUrz=ڶJ<.Pd . J#ť@af.͟L?vArQWb≠`ul%a%><.ؗr) ZWlM_Lge>jKD5T^ ]D|xӭJ=֙*IL~|g3ZwV9l'c9rLJm嫫p9v6gp?G}4L?;s{}9뺣q6ٌfG^MosT=C{թ!0ma sn?|Wj_n% ~{-TS}D%d2×3OSND #ػz{4yF2;aQIK<3^ ^qHFY+B\K95^}>So[c#VNEo.^/ݶ7+̹B"/ 7{Y`$@ɏd#0mj$i]٘9LM{XPJ bIuYeb!#LFire=./3NVּ観?v~Mh*wn="icxx9ӠpDM00*)nJi+e~?}{=ϴe"fvow湄ZJ7Cio]7eeӛӏ[g5UHid*'G&ѕf\Κ£Y@F ifMrJ))+|ه I d7LDUvHJxl?J.(lD5؈pL)~!g@ iAaCCY94F51NAƑ&nO,zᑃ'F6I2f=(V1 ;qcIC)Ȝ D5Ac&Bո Ķ}yrf}_  C7,b1{;6m6[\_gs~lzhH5+b0mh8c,fl n*<r4fdw:['RiU6X;Y(c@ '~z785S!= Α#NMt*GU߉f 3$7!RLB?lB[Z&976YQB*hu,)OM?gR,IY~N?)e -"Zs$3`i>i9pr*u G`Mm`n8䝏28v@ !l=QjȽeϿ $[$B;AJF!i?J2Xfpkvueí)xg>tco)7UϑƳm7Mm7ˑQ8^^Y9RϑK;]#}ͮ^>Z+> GBGiSx2C6^4s?sݿ$/D Ƒ?4?WG:<>Yh_)}f!s}Ñןp91b8G)'mϥ-#l}oeXsV VFcnl& [POD C\XPkY& #%,|+ʂ1Q0ML) ݬ0$Hːڶ^rXBxH!HyVZ$'Hr1 DftBҒBDc߬1V+(׾-BZ% T\D LeګMۀ텀U5$4.zw+q_l[XRk mu nب' _6VkeQ "H݇ǪrD{e_mO_ l(/9{AtBh _ƙb!'lsTrU4^BpJ&0Nue oi 2`HiP3kG rwEm ,Hd{qC3Rf=6)-^nVHGyHѳ\YL`'%"PFX1 NOjÌ&`a)U7Yтi(Cu6s*1Zא~ߵchG8糮ϒ^cwG<1I+c"c_Z>!*)ob_Z>u~z>D9dádq|!dJ;@ӤҪIP!((=QUM\q Qϛ0!֫n-h艫 uԌk]>A9[`Ξ\m C L(f?KĤ !k#ekKh6\,csХWF1Qgу}%%4q 񾲢LT=܅!=7MbOY,U4Z-eYkz*lV,#UlUp@5a0Α˜˙2peFbOZ< =`*SN n R%K-WRQ1Icm d2Bt{'OtWoxWe'hfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/22/help-about.svgz000066400000000000000000000160421231434177300267540ustar00rootroot00000000000000=ko97BImv, 0]\qj;ڑ%C{~U߭f[T䉳7 KbEVop;|Nb~|v0HWt~s|_`'byFyˣd14ݯ4 n\64$ϬϣNOgR׃hի7>|u4_|ZdL%Wb!>Au䪼~9K˛a:KozyUj)]`ot|Crr]KEF9w`-Fz0jފcxj]tkaz;_P~y^i2Oׇ?//X2YOjhj|6-Ʒn| !jN~FbfCL'O)|ZW?O/6`(fgzr|y~e1~}_z\ϱyeоunG僳D@ꗤM`fͻ'+dt3Αҷ(eypq_H<Ì$_% ֏3 Q%kz:KG:M'&_w`}:xM'W4k߽׫B;pFM5]-f b<2~\C6aB\.kR@#DZL׏GAqzb_PGћNxWwpcijǨg&1Hi$F zTy6Ϡ=53ĎQKeLïW=#?rTO7w!$s7j`=xBqaqaJ^]m+@7_CEAtq=)4oFVb H@aE)F3BaYߗlȇ#>dÑpxUC.GŮ-9cy̛ K ~m䕳thsiKP-=m,}@N؁qVN?ĹFNɯ-cM_/)i~+ Ǐ:]nYs j:eXh`4)%9Mء͞?{[3#wv\~|w;.?e:Q)*wem'*Dώ?@r?QZz5=/i}'IK#!#?Q{17SdldWA3> C}pi1Ę כ[?Ҍxy `!B6IOO^I&}#\-GVr#;@48fw  VX!] ;.Q^y3y%"rr".@q8L4- IGHY :I  /0J }=((ُ@H+2k$M"qF H$=-G'ivg&e-$އq So7rԚtǒ'*QK(X-8`qVYQȑOщH) e6Ry)r'y0~xPFPM)mT\/jqj&TEN'mӴdɶ5"30GV9 xxӭ%TbtʹT5i0kJ[!Q 2DoNa7`RUffgnӊHx4e.c.PM 2$kLٰ_|yXZS0*Z4͜(+r%Bs'YuG%]"50$5G`4pkxc,c4C&Tt^.Z?QJT>QES-VHh̐ѝI3˚]w# T=b[7 5 c} +㉒tOҎ6n8m{xM9G4޽-'J.cBu.Oe:,z.Cɯ3FM4P l^shYxxs?,E^^Xbu8~#nXNeoL2*g3#-?W[/0F;cs-@>%@M::RjB7K3 ySa_.QFcl5 ]ByG%-ӛ霊'-@uP!"ZX%Y;w`Bմ4 lS޽z{Ǔz\HT[{T$w}M~KNiR՗-x37o5sG-9^1gao9|_对w@SQVnzJCŁp;CR^6"euHNntt6zrz؋ý$acj#'?}xl:-j-xV'ت'"z[=qhwUtghBG |ӽ. F&&[YWYYj, :u'Wں![j[o#2W ٍ0Q[JәMp\g4eo'dV qC?-^ܶ@"@edUeItT|~y+#"dݡgAn#=!s*UX'/<Un)ZI"{V1C9vFT"%$HhY5<fYbB$R{ $KM7W@ 8f&6Ji5ԒVMT Ҋ6 wVGwT1ÄVy`y7(RaCXg%>E0j|FJ%DjhਙC hzp gDAqtRAWpśPNߙZ]HtA^:deH!wTXZ m"@J\3ucP#  ,՗\ݤKp֛;<3e#X^7Cn1pir+7XY30ac]1j)%Q}eg@v%ief0iU:"s AW9SIU)f·+`xE㵖jK!Qá~+:DS8|R65%EPGJA[}g1OmʧoD3lAnA/?0fwe:^|m(ew~kPEZ"?#~5c!sCΡ) &"C'm3vJJ&9MI$5f0;q=2S֟K0Ie #е{V`UàFgF!svĘNwb߱jZ2:[}SjG ިvM06uo\S2ΕКā9DcC9+\5_tTQ? ٴH5R?R' CjLZç ]1k&13t&AZ9fW*kZ2l, jKywcQC8+skknDNۚ4l} wv@;0=z?a}V1Bώan-=Qb_zLK#)/My#!XmyRLݞ~šKl 5hRQ- ROINw\3t $:7t&D DXWhYyń\Ή[W4[|Y5? YY ˮ +󜰋-d}F](j^%]tI5KQT׻e΀4yS^2CMQM`P-^ ~&He< ن" ]D V(9_iM8֑L Zpǚo,<Q1S-)tAmw i8g*fyvvp((}v;Q!i4~dj,C\Xb Q5eıC&1y߃${bc{[ytLTj XԂTYT(w& o6/y lvd`Qk$d&5Œd˥=PA`zRLw˽J "Sh/v[,*1nѵMxٴD^ z/gUj_ ثB S&{vӉro(hCVhcFWvkHZ-V; H~pe܎ %J<.Cozo4UztiLftK;8K;z caN;S(yT"P\N|PrkxI%[pl_j@:_ ! .nN 租mPum !EY6)vK-Vq//ZB5^o;K&,zmZjP+_u1AmBKbE2N/dMx_.e\NP)Yo)E`y\֞B Gh6=۠Qv7¥.zJ\u?-T"!MODtlIiF2\ z rOlUDP>iK Xg_vH(hv̯'jߑ8anh(X|FŕPmzLzh邼Rڼ'u*hBH+zr;F`Q꘰Ȅ^F`p"0mΐUh'aٹa|80߿ }:ѫe:?-&$N8-^E%8ң ٭ MM#n[<;2qeO!6ьl? z#ݱFMFըm^uE?R UIf0MfD`M˲j'8 L"+gêU:/%JZ~̈́kmNrS#ӓܜ]1r70p]I.vlY8ĵqso!;sSӃ9aۨ¤ )[K)qBCC\QI *zN:\7(T6|#k߸ z: !Ńv*-/j[zM.!YO`/@n9hb$qPl[>ޯefg9:{=y?x.מb]_Y&*4@`!#bmõlu4{ 399+|]othi;%zu.Lj=Zjا ;-0i֠t ZB$+І=h@*':zݘltV FHtmt# YZuV;d>pg٫DMC@=a(h+Ƈ,%H9 r(k.PVdIGFաpK hCNG7N-v/% ,aG*9;Uߐ(Wb;2_i1_#*^LWoѭGfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/22/tools-check-spelling.svgz000066400000000000000000000133011231434177300307350ustar00rootroot00000000000000]ksƕ>+Vyj hRxuJ6 EpIh$ %B(Qg2{}u_p}1>gu^,NxŽl1)_h]i:/Ѣ8Ç7%?̦U^G?->'2?/x|uu¤XFq͛go(¼q~riX'8͒Iq1w|~.WiYƜ%l|Nj`~W aeۂQD#f.@\^wGmb6[gusA{6ΦX3qۇ'#f=GƁ #/FF{14B /HF #c\Ǣsɽ84ۃɈ CSh\qh=h_zØO@0&[=,jhLs{_wq?ݖ=zblȵ/#5dyC.r(ۍQYtF݀lTB~;9ށ6 U~×4o(2 _Vb8"-W,qr%?/p%d|1|oE݈#lH7e(3*1ն`#m+>Ԫ^ޯDluV䯋_Y%xt:ƝnAs]-z2_eAyLWo?갰)hkz-o٬o|W?>ya  n*B*L I|oѣ讱?tn+lNDKoKAksm`z8tur)6O$V(;҉S .؍bHQ~ަRbnϴv5J+is7:ge2q2SmIu{*Nul祓>d"2R1oZV^iyH""^rL>CWKH^؞D{(AݾD˄CDOMc^u>XY2R ra<-3FBI%7~[>5* C Z$ñV9{Dn;l ˄^խ0#I:DhP)4 ,?a$ ;7  hGKH&2I0xM»ؙG[_Vvw?1=D aybLXSLj|(U[uV3籩2ez0}B` fٟ:O?/0 yZo& .Uj5uy.# zV%IW!lX\Y gwC*P=R-;54ϣ ۡ4wiw4?-ipļqDg!Ę3&$S#x.ot"3{l?+~4ʽmCH.~g^ȹ(i³2[t!~"=˶]Pz:Z8HZ8PcnL8e 8L['v[fvSB3ULgiWxi&lDlh4oi&-i&vN)4_73LgN0` tbnO! 5:OOF~o\|/i HY]\-ֺ&,Ģ H<"/B7yM"#R00:m"E%QY7 5!SH$N(3R032SybvD xk` =rCyRIf6Ay3ZD:VXNo`=wfS`XCOD/c01Wo*Wp̏:P7L !C+ )}KEsZ*eȽFDFbL [pPCWj,pk,(0ST洲Œu(Պ# k5Ö pP9fO H  NJR'¡<(PmYx0!XiY3vX JZfjR@Jd.#FXe X{KS~*daJ}j5) M$H@TAy(H( i ;@zBGuV봏: 3ȅ-"EHN">$~G#Kb!06=,HgbQR ֬@#Lfq-4t x=]97Elå t-ȥe-6P+4>|[ `p)Y *XJ0,B4^iT *L ٶ<1wu-C-4_"my'sQa菑kEND$dN#O3pvxah?V@#)jkd^+&~RL&"(e"mۆk&l8Y`6f;4$نQ_ +[,Ǫ.muieJo67$V}8yVe^f[܂Q_zw<>Yt@:N:mhh?^h% VrsM$@w7rJܷ 6 ah n |Vx,EY`_g 8=`0j{֣qÐa闬VDTä nQRSoV¨F&`2t}<;:?>9{z_ώOϖ,{_.{O/WG˽xupG87{E9׷+՞]:>z+;>:X./Ϯ`%~?<:?k—oJ aD$: ZOТءR:(e+/z01L_^{a{W.oʑK8[^  NsG~So#gWG˫;_:}׻w?O_ֱjuoD G|xU/W~>tp|~zlrדǫYJcYjUƼ[?\_|izyv#RxY#/Ot'X~8^Tn8xw~ypqrVh)>fPWGwUܞ#KSbM~_uq8+?U_?<Kk;q tq ق훕zbRs EJzaILh%\`V'St4Ȓ)&n,]@1䤚Rn,2K*O'45_0Oj*\YΆM,돺*WJ"EFW7WBwZî?.o?/_go{vr~k6}7gpU [d1J3<;ZͿЗ_,(sueo)ԗoF`6Fw/h$7ҾΞcB4w1!מx#|YzD}WLPTZ2|v>k?.]x8 Rasū4PfD7^$+a">ejBd=A&z%G6\#Pق'D)^^ !c,~~9a㇎Xzrx} [htAXHMOa8%j^A51aŽ`پ*Dqa&?eŇ^|wx[HOSt9o3mui2~2hV2(>TQ(<(,pyY98=,z"Tsj<9+.n'mB~"OEE{t˪:xyu?eNk5VSc͙K캭gBc.2cy}]V&s=ɼlQ?`]V*+2D?}W%kVMk~k_^^ a|iY7|۽3>:z/Y9*pҹ1rGu'ો}w*hk9fplݴtOnsvw }`yejyz:hph.ޟa6w\e/ Pr%+)~sGە޹\ʊհiOS"zϏ~^7Mjȷ,~s:OWDϫ 7f S߳pwSZ\/+#E-C"*iY"AfnA :hB#r0oSպ*ùSkcNk10NvoֽtESuRv,A 8Ļ8wH Jjb J$뻘yd̒O(e+ 7%Pvx{h9#dU!QrVkC塊R${La) Q :2\!IJ,\ ]L+:$>o$>R964x$7' x9`& 籋_VTPI> sPDǤ|f|ejEs- 3󪵭O It cjL9tZD*cEӊn5@&N"Qxx޴]E$\#b`0DE!sn5C=th2 9G'@9=@!f^"H!ғ{M#mˡKJϫ|/ I=h8uAc+igWcB+- \+<d^7]U6S+Ɂԓm$g$3nrLE9uC01{M0IADŽ< f! WťA3v2F~y^O5*AJ!]L;B/Yb@E@sZ pǤgn5=:w 36kbPv]<p $O;b"BqfDc“?qlU1+(1m9\͇ˁeF#'NuOFw.{@d13S}D {Ǥ'4``0`F0,Go -vKɡJG!e2%oad * C@ 0H1kֶf <:KtT k8m^.`-[@TS-L9$ <&=>:Yw;fw@tYR5la^1Iw'K@ڙKx02%'YQ$_h I/r<~2&9yѠ. OY,* $fKQ8n`M&cғoiLDޓM!$"7VmZn8G`99 =/,r`]q2oPTwnWf_ 0yYATyV?veRf. BN4MlnG $=h! gjObcW31p~Ef:HN%maLlXD4IvgGW0v9CZXn`m'S_,bFa$-T @eOa@4wzRr6W,LU2^FD+!eVb'Pv~m0 IO$zKY 'CIO[`rA nj]"A"/R0nT Kd2X!H cn&6K`ǯM{x9?Uk@Jr%ҨylkʹiFbIԭmk3c׮24k{ 1Mue(8_i˷Gt_xxU]#O0!iV&6VuM|w- zJZ!dr8Ew+B<ԛW^e%o_ eP\^T ȤCѩׂn*3(98/$4*7h٭CIwJ͢0wPK4DX¨ g, Fډ@vJQѡ$p`!\rϫ|e/fHك %$-wg7;(%VP`),R1)cW$&oqĴynιX#Ddw|a닄5vL Voj5 1>ܒ<+7C&rI󪵭O cj n9?> RƎr\Ut(;18#n8$@d,=L/6hXѡ$Y)'vS>\gЂ $gexG|8Y \ܢ`09W(90p_0VrfP%e'Mwg tā=k j+:$>6}8G c6bsH.H^#A <LF^ dC)By8Ⱦ.5BNyVǓbj;E(JǓF5t ϐk}ĖMV3(y/!C 9Շ0 mSEWT`RRJ@/ C0^*Pt'mU=+eVЏCW9 A#k_5j$ tA26xa羅ܣ7h XUS^͕:+{W#d6_.\@j[歪ca`mgFvg3$7nA궘WPFT)YpĀI%RR,!m (J\1)qw [8BoqM$o6;2Q1f%̎ JD맟dX0 d Sl;U)J',/}sYLH c+u劐='(Օ0CpXeT|Mw-< $,d$uDIDw[^؜%XNXffp 3N ċfd*;Qď\[SH1`wD 3cۨxw0ET@1))(ma# OQe4柲BA 0W70SǤ,KcK$\dh%HZ䞟> Ct[%o[' ^$#N40IIOZ{zoN :D'ma傎 OQ7& "$+.&D[n:霁! t;6ʼxZ*yrɹϠRQIGc9.RUfD]О5׬mBs erVS[x[拞yG}T ,4Pb5tNJe' ݁=%Cb-0pLvwyĚ!eLQF l9$ ShM5M?o]' -p;H@FqX츁-P*<@XsOrM^40+tLxMw (懱'`­rCӮB3#>d]0vX]!DĎmФ|L|ϸn?ej9Qs:󪵭GD!iA*$S-T{ Rb0GCnBfz(=Da3ܫ%`"SM06(9hDN;g7Gli@= C))0w8жCS14%yv3!"8%)1tBJu9t -[ѣғAA(>4%f3(8BqQWl `=Ga;ܫ(9k2(qpsQrSMP.riLdI` z|z-a`UWт$*Z^oM 9{pP9dR5:<ފc9nF"mʸv@YvxfɽߨJЩ9!NTwIwBR$= OēQ%ZO'lPYoe[UV{ īwmkM@eRfcxąOGe!4L:<(lOq(e;"&nw "kOPD0 QYv֛Kh F€B~<'Ў<0Y:JP4OԽ|9gx#P; rFg֛:r rC&fH\ v y WeB#jݝEz>pf@Q7~+ު)T@03D6޵>6@5wZ'o0Id&íuϬ7DBn_A;$3KL\+TAWy73d\~sbԾuy$9:<>CB8r6%t>>׾ hno BefPg[q\g nFes]Ha z{UD $]9MÞsBD_hBM4i(AwlfEII\7Tv5SM'v uSLi+e6t7jPBc, ,z3콛@ȪKr.ʠnx|`X]Hk)T:DZwH7bz D^ٚW(` eFyoΈGnʀ" Je3]:c7Vf3?I=t~-tZ À 1v{һij"(gDE>p$yg֛ܟc=S}iU9v§ϔȍE!%p\|O"FL( ߄Z[utb箜ز f. IH&7o| xn6nAVuIz)x!1i~@!미 (B[G7fE8u"@@/]:A7K8 #7~rVe`s5v B;sl<2ρ?_W~| /,~?_|)j5_-o|/G~?X6bUf~|TZ1AuEFƯ;`0L;?xWKO|w(Mݟ_nV.Di!L2&"@$D$ο6ȦQe=Z+]|\XMٛ"BՠJ )vS* H֌;v Oo3!Ȼ_{a;D*@֘9AL&-޾{1'-jPDNֶ^?5:`x6iQ1<ַI zEw?So,J_Cӊ%{%sB LkҘis_x~WȬK ovr>qrJߘ%"$;Ƶ_^+ yÅZ(2.h-HGZ#rNG51z^>URid~Vh|| dlgWIH_ȏkj9&m`|TF`p#ܐ~RGΙ3|=x^ӏ4w*~,5Zfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/22/view-fullscreen.svgz000066400000000000000000001223111231434177300300230ustar00rootroot00000000000000_s)tK7uRu=\%)"mUd%k> (2H. AYYK74~ǷG̯oί._c?q|ts{zyvzqu9y|yu?Nz~z;?;p~.y3;}7?Ûw/NN>|O'?M/o~y!˛g__,f' &<9~=JgWo^],yy|ONi7dAMNjįۯs'|1r.'_|9tv{e>ïͻၞݾyyf~헏g/ұY^~/JN_%Vjfɓ R'ge~۫w'7⽺xrvub~U W)M/.n_NV*^wo1x;/ns+ 7?Pʹϒ7_?d88p7ã++gX1?Z,nÏs7.wW/~o+n-~a-S(L'SbKᆵ@; .S,e+뢅mGE6[j5FH(d)p%O%CsKF CQ'| EF(s0[h}k $K5Pؽ3~:J{S;E~,FSr؏ٜa<%~v0_qM%쩍C#v? Pt_ɯS><,7yl/+,u#t¸Dޭ#tl>J?WðY~m˿V0*JmAA?JD{P{I+m|J#wܞu`gbhLۚ;$Pc*W\c5JYC6&1%ۖO]}krC7'&pp2!h)?g qH직.jrpvQd%>-<K#dy;-: |6 ޛUp8O"Jݿܫ ;z0(_CN쟫]wCg{ycNJ.N~{`l"?TRۥ cp,T6e҈&Ud҈&Q#FW3Z ctwTag~¥*LOP.i9dfؘb? 4Ó'23HVi"I"9zI 5`Ndpn80|2#Yy`IrV=)ՃuY%'1Cy,s,4!I)%3chxUx^Ȏ+x%ry]vVɶU3jL_ 9=L̖ýf&]xy&$XgM+벳JxiH$c%v€]RYɶlu͞0$7FEjʼ"p+9"$StST|z6~"%Z ;HzA,4PUژŃ r9ʘZ# ²yX)yt7XP!I 3r;.'8j07jz@&'.dt7L'ӓ4;xި|.e%5e7x*;iIc\!%ί[aJ5o'Y+e̲Y92-DR OTY8̬P dߑ9r*SXasN $!O]Sx19a <%saKNXMnU-CYᓩ؈:A-ʭ}Zؒ.[8kh1Kb[ ?b%`@9c Jc2KoH ФGʉ%hc9|vT,99Np]UA{A4uɉ+QA#I5jØ,J :"!@x ^j[ZUĹkgiC IsU%$۪f\ hD);f`\U܌b{R?~XF)@=hk QihH#dQˮ*${,rA]7ڈw ^nDN+벳Jv7qKDˮ? ZR(!yC\L`.2>Z.`"`aJz쬒mQr%@I,KBu#&j"SԶ6PÖ;[I3*"(h(UegkOޚX5yn3wh3|goCha }(e*꒲%Wv:xyvQh0~⮡&D|g 4{ҜR9{kXz:1<]A55Դ bZ1QvȨy~i5l4X ht|A@$3r/reB杘[I1;58"d1/˘8[s9jrmV4C iI{u;h7GdcB[?J .ÁԹK:.eƨT5;C*3P Sl3d[K!in\HpY(5Byl.e謤KFWi}VJaǧBh#(+~wWu#tWK%F.4Ȗ XghOHVm0aM. +5j"joC=dCrE |]&I,;; 2 T17gc^{^_Aţ/M!McǨy8LB:AI*|x~KԠFJK9S_N(q Pc2 O|BVbMI]y5aeEy6//}SfV1'IAnU1R>:r ߁\!̔ncILaIY,k9F>)xyp2,X:%9rT؅j=;$baCr笲{Ǝ\ٔ=tT$d~`VuBfh0dvbJ& Mh%R%Pz, (\/,(GplCZU !=#Vm!']a,eJ?rhfԅ2fBKRFsu53oEhύQu:(|3F>7 ߌQ؇s?7 ߌQflem hhb۠ցG=Nn^ފgbe5p+{3}=Ӓ~;n@`a2"KI#RژK:rpc+.icShy,g 93-Val/ƨ ,ba9p߷qA^;:j뽺.[P+eRyWIX%ݎ;hd-U2`|J!\70C|f5j 9cY'k2ՔȌ,Y(YCeiTݞÚ;#q9cB w{D/s'Ecw0"mJER!4ZQbxXkjDfJR =%}Ѻ$֑RԔ"ߎnp[ۜ!pTγuꭡ(]ϤۙØ?2s;(sҼy1-ZMf{l>e48r7RY}=6Zv}/{GVM}92y ~Wòe:3U!֎ݳַZߖ|vUM !T߽- ooan{Yo}czϭ~{8#n'.u5ٵ=pD};sͼų=6W^l]Բ;_ ѬI&/6.*֤o?b]!0'?x ;(}[vWQ#㻆3t.V؎s?}?Adf$s;L(4i23epZ#4Lsg93veE+k]vQV iS'#MbITkg$)dIry"Pc8кaZqKs.5G34+;zxD9+ M00` (}6x o] ^I\A^U-VY5/$3#D'L՘@&'}Or2<% N!QI9bsj$ rDķ 6~G+iRHޓd'L;ݸ[*}jZHduݸzsv;ꑝ\ +N.|K7٣% / łOR22ټ4{(}2Li@RF\ ĶjHvX_G+C1-$Ci ˾G LL˴3 "(RllGmMCZ㶁'SLJ|t%m:FvV X}y8}Ft}x=ZEoö1'@-+_܅;=Kg MظxۿΜ2|iI,T_*+#YR@ZBpG7zwmXxy{\6z,XkX#8F%8H^Va=F(5*삼[կlv7)[wvEY5!)2MܤBf62-^v!.߻ki!I*OWep)]H+v9rA$jN@؝McLyٟt;J輙Zf;E<:Tpn Zm(O43kxI[f^BV*Ӄ-L*+q) ߦqTXg;x @w ns6 ^')q!FpjOU'(:.AqONTF꨿}eȨE)3+H2RE D_EX>T@aDwE&*aR ZTQ"B g3 =;"QSxI#(xI5VI/*0-$ N4ʠlJ&hY:5σM,YP)aȒ ܃M[Sٔ!Z3ZA.bfI$X3r+P TQo/p9Vעu,I ;( Bxa1pBF*ftBNo$N)tcK (ʝ5 5sU+PL9J V%MCDz%56AΙVd;5nGHQʂ EH|!Px-T9!$2 )ʆJ`a&! X(djRWviB@~6H!^4i: s:NQg{,\i2B:i WA2 ߾)ӗ?sK9[(ӂ@h)Z4D& GB >EmtՔwJ#Up݊2xUVXJLK[4ȓ-:迨׋T.“\LobHAtբ d,!ռf0{\3`$>ϔg&Ĉ!-ߴJ*!. Mv[GXэDO:,@ Ik F@DTHcgiBdB;8&-DS4?f*k+z`a!Fg ^E 6vڅNl1+WPiXH0Nv[ FSѨOV8L'WDhSbLtɎl5%b1H~iNNp1 #܊D_IN?O~U$> VۊGo+RPbY= ̱|zSWkQ,:! 5 [oE"o%3(v$kVI.SRtqX6^{2p>PuES(ϥѮRi[5տ|n3)ڀ#mG0ޛiZ|ԊVWl:<}wo:zΊEy܎N1KnZ7ߚ}v$YGm\.ڽ#:ח:C:~MTTu(53[37y,N_ADcQ (- ,ٵHʰ0w8fnsw .u1~Lcqϐ`խطG3>F]ωNt̺--&4CMEt0)77S![DPH\{B /ha„^1q0hucs/$WL _1eL~k'i^=֊ӚABWQQ((k5k& Ы nַ@3L}Tu*$? X"ABlp0PC(AsrM Ic)U,wP$#F+#DpqbJ!CTk:al[QorU6Qw'>x;~߲g>1[2 DF?92 %nubbw_xeLFv5`Wsf|WiFp?NxCqу)s|Ќb43dfJY M{D`$4CfD:F]N"5`ZXRЧԱ2riv<ČLPg&W@&%ejn2%&b?_,e2؁":AvxeQ0U5'{v@51Tc`xIȲC'\u; kQ @-".j;9&RJc#U}uzͣHrT)ـEqWnp$y8ٮG6Tz8%*=ݭMa&klw89=XxP⏋̬xۡ;¾*.p?vhcG;=6vWg mEisFt~v︾VO}M-÷9Z:Άɮ4L|_p6n^k_c bhu>^οln=u;{vߓ{w]P[-{tB冽v 6n}q|O؜O؞ %w) ϟ28eL=Ŧx>l-~8xR?i{VS?iu;[铼~G?C;uwH;\I?2VAs ,͹֛sl3tE}]|۷"fn쎖3;?Ϛ~D7&XîߗBLe.ۦ[ctOx=Y3ꚇG7M+Ĭ avbvpˎPڍcDQmGhUmHۆ wLjA#0Zz:8߫S_1{u9_Jm+ME ՎG9X8E)Zҿ155Nz4+$i!U@\ Bg좍\3p2R%&ɎlZl8QO߉V,O 8Jq}LK4EX@"ѫ)8"9u4(B$ϰ#A$. YO0Y, E!ONd4%;h% wklOd5h b.]N&kB.͜#J<5SB N1C0q |Wom଄w?Y10i!.Hx \Uf ZWD  %I4X b.Ө[!T#"~}YL W=g>ݪ(U-ϧm1qg5\[.f M3braj%LMHr5B4?_w],?Z=w>R]MϷ9QVǕj[9F+RhvS(qk7%ÔM+(eJ;Nٴ2Èa1baˎ\qF0Z2~6s9dͳIVPU]޷CpǾ$+V JI}=pSJzO,T_*N&k3הy汃VIv+RvʟSKKqSJjQ-e G 9ˌ#T< ;UtW!M:ȯe;ّ0Yܝp2VV!##`!$5̯)F а,:ԯe;癚j\(I.N'`*H3r Imv+ Ro dg%+;#8*0jMe]CZGi~s-$2U$]pڵ;}yn׭N5.j")mkxXd1.J[*9<%r]M_HzH3"1̠;m&C$y jK":`Z[ [1Q>smx10M565uVT 8k0&}Q~vʎ:tLeSQu> Vd;ّ?0BY\[+i<0U&<!hY%!_9BUNߍ#Gz qyMTggD6.l52TDJ{@]lJ6Mv1l~NYҴ0v #2^yUhT \+BUpu}Su%lLдSH'ð hL(MKySjh$sQ3*bbQ: "[Dty eN@yM)B#gMB  P7 IAčYɈ% A4AX 9hPA2c f=!ѓw7E vVHN _گw`gH*i,oL(];w0Gf*K+ZQYb^m0NbD1{SPjC`!akWRW.Q+D 2b͔hMbLtgɎ9 &kJd1}8&wB [y{648B`RY~D-w.M[b'5c-p;' y%ʎ)xה]qrk̨b#P m.*=biՀ?cUf4@t VQ*TZ2RՂih޸Qr% fYGɪz;CAY zbׅG]~oįocϘ/mm:>ywŜ֙K'09$ ? AW1tFn.ٚ'JUـdA?=ꍤ7Bvqi ~Z~ǹ$VUNTry 2pw:sNAyNlZX@ǾDc*Wc5}%֕YVhcS :R]FF2D4X5'A&lIA;Zz(u'i 2w69BJ(O48G<8-z "*Iu}SG+An 9?(xM"C w1 ~".pvscT@8fR*_T6ڤ`ef=,JLZIu%#* Pnψu{u/E1c:fJ,T*|FWF ǣ[ JI`"6aB;Lo6[GvA,ǔ˒%2?)Kh:ՈԶ)5Pg}=R6LzKZ=vρwd#(wp= T>sELZ?kۭgkoݿ&/L.]]79. u8\h6lwc(oDq` ֶ5Vwtk*\r <2O^mWY`]e ɝ@0EcdUKG ?c.G;z"8)(j]oh12l3񇛲T>뇟 7h l-Rx6ZVbȵ.΍1j|H5.n\\z F=3Ƹ\6u4ns6&5Kϒ?S7#ehxNŁI6,rV l Vs/I2u-#n(Alqdȉ >X7Ƕ J$-v &=/&M]?kV2q;m<i*;޻?W~k/Z?=n؇7Vz&}~O/~2{r_z:ӿ/\ OOUZi/Xio_>??%l5h- XA2_~Q 1H "yU`c ֜HC1} "B@ր*28D |T B!Xl4-@'ў' ZvTP[h*A &x6QPfd(#R{iN!wn$4Az{IG`!Dpdj0JiYKRZ O .:DW\Y3;E7,JԇzO]"6бwܶܵ?덭_olK;,߷beTt-[I(S~?̓S1ppNOs ӼqwPuw&ܱGm|}بYq.[Hs/ޑ:"v:=txdW_%[n*/nX~ݗHmώnre2T!/"@d.;gm-r/Xe}Y$*fvĐJloi ɦ (J 0e&Ӆ&a>Jb4a9;k"(7l_MG6lgG#o6v*Bi60;;RX{.5i.e2 B4G3O⃈# CzϜx'L ޓIg"g3i %.cbO[xpϔ-<8uFЭY# (.6`%/ A3"sƤPV1`X88R(w/90dׇh}iYE~CG sNIcZ+RCux> PQ Ɏ!^d6))h%4Ի=dfJj+ə M[M"0VZ+H;a3Xm2 В܆;B!Ch fC0ɾs`:<]ttSMjĪ)nʏnʇ\(a"=Rn*1tts%}tS=,0T L7 L7g`tS{ L7nj_!0d4 ""4*(*j`r`7^Ix޾+g;ܑsc3sw*{˰,H|[QBo)udM Ro?%%^;Lz*Gɣjʙ ;̾wOX].uGM`&_m2=R_2a,PDV(IqZJE:1jEm?}$Üe&==:N38$Ÿr\H`:vUiф֎+[_X},ʧ|1}jܶvöFj9*u!9}CqH>1rYWF=Ѱ^ZJ5â]yw9Ph?VnjyҊmEQ8lniqesKk`<ה MEBkn8\˵j8Jm^։-׉m6BE<+V6+ QPJ6B;0tDS"`$T2XKʧF|kVU{vqfԴ'>y>7Z x(O@1͢>}0l^oVAV^46i o{j͊,;w,1Uf!*+`2@òhPo{jT{X" iv>c'SAB6ꠓNFKYKc^ y׃bc5HIPEחUa_hǓwOM-Ď :!`L!EҏKW .uvQItHl*>KHZj`^7LIWo˵5*;~\+a\W"ֶÀ>,ƥ#It+uq|%l6f'$͖uxRYͺɌv!_D=m_14J tD`PDH"C-o1&h9a@eD޿Ԑ3^df}"/h]CvC1HfZ~ܢw*PREqT( T*K!$h (4A˄)+SwLK:OU4_KNPa#G| bIލ,PSjo{j^'t $ / rNt6LCGs!rEJya'ZSӶGHaSBJǙ=BD9GL3dx@'Ö[+"wTYm{j~ kB9f3{“Y Re&;lYL! UeŬw\v.kh6 b-=K׀#r#oҜyCWka)Xz:twd IU:G-2Z'z4iVn;4S.^pK`̔c"&3Ia,d `Ai&s]9(J~OSH4H?$r-t[XSb;ǞmuBq8OnD\}4+)UHA!9.n 8\aűӊR0cǫ:p(\&}qU\\r;.}Y۝^zNjqŘR43̠Y(]nrn+k7GI`@y!UP;2\22wMV0 h&Y$̉_q1bLVs ;HM䵶1@FKtyNv̘XS"&TXME&*V8Lbͣ_4 #F@DT2yYL(9<kabQ& EXmK[3m-ɧ2zd sVHN _c0DO:f\AÐ+meN&e=dƴI *J(*f Tu;J=Kns9qpXM "n\Ɉ% , _~__\[7I *Da0!\pYs9fj:n8yseځ$8;PN) X(.rjQ0 JJShkX MP/55?M*ʺ+e[2 ZrX!k2pFoEk&­hJ ZmI9Jw\m0 E6N: %,_߰UpR/pFXm~ TQJWt\';~.10=N)4 2.l ʉ@UAT4[ZIZK Lf75,^Øo]> ݥKcu7%}|cIAĻDI`֖ iy-jݩ@j͛*(+ cfPT8ݗ_iE!*[M)ZԴLL`9D 6 Ο+<1#q!Z/c߂4s Bf 5f619Td * PC۵LrUziL7d`M(&'˒!^G z"(8aF_  v&Z&ۡ-.ChY-!lR>C9(|!>#| z [t‡>"z Fn<#| Eh7ЊE۠c,Zg.-qU]^-ڃ$h#e&f*+OE"M3+Pk7(d(s3P\;RRҎ<\:H|{z(匲Ի=ru$Lz]K {Ir8MgL^Dm{VNo|!Ǥmq#㺤/1RjR` -q2ȴF"y̛}>o_-Yt&:fW3?t4|~dŋ-0~UeXv\Hlx'<>4N\(C [c/D~=A5~'D;A1:L4/cc Wje%if4fV\w%6YM(ksӶvR)IF2DE=;(z-ߓ , {:ވ;hUyC`fk8mشVUwrfQe0P^DDy$ i@N_uc { "*ImǦmW6~Ǎp$ a.2rIR|u?8yM33pF|k:N Y-`Oj+3HOk[+ i% iNWG^\p~k"FS,}e^iشݴL"# 6:Ed jǦ*}Lm3L>nפOr>nWfMr>ò&JȪ¬ZO+Tt+=Yb\)W|C5Qb℄#^lU +e6d%GʺU`m<֭2#SiޕxuJDu9˵Qgm%*]iUry U$/-_dE|FK.K‹&r}+nU>2%=~MO X)#g{b[N옱z x`Tsc%$) hW_mI'F6;ըu9@NEPRl lGmMCZ9rr)G͡J|4%mGvTt&2VgD;FףMD1ls1ٱ;@1͢ 򥽎ݴ_55L꓀R/h[xvX@A)I@Zh!Tޅ{j <=8N1 =f%a˪X1 iIh™vcf(q"J`&uӃ7L:^7-2S5!θ)юܤBf42-dWuM7#-'6v=JU٦;jN\ӌ@9!T`M(SD N$ݦl?o:%t_6PI*O6/Ԇdam&d7{ T t RT&&KIt gqTXgRDBc;ǽݾz{ /{X/OUPu\lPmFF-Jc|a Ŋg TrR/7:.3sFJ4|WZ? wA~X+2_+ԤPV, ,ٵu AvS4)m(%Q_4jQ6ef vUG&iLy9n} „0q0`LZ$OyrY 5x'RsR! D{0LϘ'r|B񥉷^&U6HP[ yPU6ޝٹCQCyIrpv a&W_R8 <1M$ FP>!Jt|V<ߖ\2mKTD6mIăMɦYٔiif%+0'1Im L,#JN jx{kE9o/4}l^gl'IR=t3]Ӛj;RJrqM DZ-ZHcMtrE)\.2HJ*eDZ#56AmN}l04/wF)!F4}$&HiM6NGUȰz_\d!)kV_∊+5  Ux=<E\P!v'ňvr,.:(aߥ#8)],ngk|5%ݞXvXhCO=ڦ#PJL:?vV N&ioNlt~`hEq-WzUuY3Bq6!rM<>v}mb=6!Gr ]˵HJi,!#QI^68ĂPDt&DS`u6C fL m*1d#׭9zB(\h҂ҁ+ 3 603PRo,c(KRYMaj%A1YR B[,wn@m_9G@AmR\ "`9=9-`r&'bM<ďd7L䞔 {> 1 7L3&~}ZmjmjGȫM쒭މ'ގI?L ޒx&;-r ?FMՀ8='z7Z:e$ƫ1O2eNjAE}>G7L>BaB#gq_MZyZyDIw_x,qN_{Q!9J|b|Rn;J6;xwr3#G=~>>Yεh,'RCڟq:<3F#YengR6A6ѦX۔SFRRGordz7%QԗNZofORhKQ:,Gϙzz$+y~GЦ8zS)@GRڭ ǒ$v S[5X]-:c|MUf˺aPa6~U~١6؆NP[EkeAjXֶ4W+-ժϯk̶,9qܴ]ѣXpnrtbc9H*>r<\MQ}p n;d[MyVIc'%!zo)o醅l ǎbܴ]ӈ)8K#Ռ F*}̎-,5,K.`%w)m"E<EBڂ"G%|8MMc%f6ۥpڲ9%v>x@x|/?ٖ,kV9Wʦ9[___7+Xo;*bZ8xco)߶fඖҵ> ?OIcӷ׋hyo\= [q "fg!fHn= n#ڤ#FD@ji]UvQ@$v![ň+(m zHif&b&i$ ;ID Bd F{G8QL]kشADL@Qi Qk 2Y4kt;*Hhfm yN Z63H%ԁ7 ӬSBV*lʤJ\|"`c \hL^95'5iR F)u!gb,^1.iҝ#'JJǦv]}D={Z x(O@1͢2b}baCz "*ImǦm$߬rCpwf>uVVfqȈ! 3I Q0"eeѠ~iTSSk% iv>a'SABֺjzSjTUOjRE_(t4A1%}uF]G.~ߟmٓMl\3{g}OHv{r>y׃bcHIPEחa_v,EVU":-.Nuoj:&<_uM=C\5혁3BRoT 8k0ysS/{U!c:<$f`rRz||ck׿TL9h=EEdCQ I ۛ&R0˳Ud^joڮ Br9JQyu֑ 8='`21q2y`|ooW@:M,*#\#T \}fk5Cg@MA HUf9@%ex`u*i3x`d^ 9%\loOUY6Md6DزՐ,)K; q@Po/ VUesYiNcT:Q3,Nf ɣ#65VmW"UdW`L;ujJ'B8XId-4>+Tz\pO-45䈗0Y>b_oG3g!C?VZAk姒[$H.C nzD?v?a00RP Ӡ $h%4@3-b~&XY)`ZTEL$.!:QB%\#>lsꊧoBĻjjV mM3@ Z)gQDGhӎ0i )W|~V)O0SX^jo1RؔRqd*b4@dNfӎ82~)l{6+2|v`hMIŶWMW#kWl"#[6ڀ.e`Eav*>G\u"E{@gn^΀>)Rz$_O-,fmqUO-<]1HLۓ 2 #f1$u"IfNi p1%z-qQ$1)=1Ci-HlIҾ]~}o$n!*D6U%)%\-CLS2MiK\O4^X1 *;XPnXZکvInPkKtsQ| ]<\qq]gx]%B]"c"h͊ 8JԡI6Ȯ6mv%]:ؾɂAm(}Xsz- W>"HC m=F892X='r3ɲxQ YSs=r = Y9okNe_\GNYGNaG/0G '=ux5z]ۂ6mA65'`v]:rN6dEY|UY2]e}HlZu t:zܧK#/ /](бptbEK/ +t(\0(}Qx1pab:BjuBT8F/SpJ#kv4ZA؄:!UI]g]h.kÎ0DegW70 ՟[)I7Dr<$ *(􋔁Yw q}Ghnϊ2&5=oڮncMyƮ;8F7R0v@;sK*_@d$>sg2MeJ$'yX]~ntr_P٤~jKҕ7ؔl 2v1lZˉ@,iQDUM;K!);B^ZrʜϛI'ceMN@)CZ]o.C KD)4u)T]L2LO(kג:ݢ%Vj0V!e*K j|i#BHnd2!H?O;aP%)PEtd)Z2VxbiQB@PHW7$Ӯ2A@<60uԈ eb'!]C2 5̄΢(0q#L!(/?|x_,S%lLдSH' hL(MKy[jh$sQ3*bbQ:I![Dty eN@qM)BCK.t "1t1చDܸXLv5?~.P Blc9E C E3zÞI" ;+$'/;3i$MDD4v $iFicHLcyE+"K+|P>!fo{ Tm"/,$l{M۞1LSѨ m"Sf%& *1&#dǜ5%b2HiN|H;!ƄC$~ktw 5є}%H5.%0 )@8X/)Arc@~n1'q>-Q|yfȣԑ@fdDSn)!GCfA[&!n,njF5W"T~DJRGZB1c h %!%`+n%ZJo7S5ޛ+$C5܃;SPWS[YZ]֙Әߘ_9[2|h}AjUDhgvq$E'iPbkiȺZ+>.T6#_g4.[u4TmAY륶ڲ\jߤXhćlK7lK!.M<1X-^-Z zUBN\Z3Eej ۶5pɜb9mf>|񾿸r[yhs[5ac V|yڤ8~[H~M^sۀX2 =chfowҿƬg}{f ᄷw ssxwil6W*VHp/$5mU H%W w8ڨ3 ?eGC֒9iƈI`ḽ+Fl\Y m7mTN*ed$kNhOQ:fEy< 2fkO 7iV7vzM9NA#eljcޖ2Q( Hiq  Kjc"UtW!M=Z٬rOPN!E@̞%3uYOD\5혁3McT@8fR*T6`ef< imq{T{$$:Ցg\oCFxDK"aYkEVˇD 6}Ed b}խ֙H?h\lnVEMl>60 0raE5,ƥ/B qu^6 /zo" Gtlぎ*C^a6nz0EzClY*0JQ(,YIgJ(A LIˌ/SgV7mǚMBm&]GloKގ7:F#yeql >3{R$<.+Vș*+Wk$;f,soo Z~g^]gs+$}bIhk;P6iz(qfrcXcډ: 7W*Z=fWg+<#|LX> (Uկ'5 Dm' wԙ޶m#x W@f O ?n9   3DU!Uz?=CTϵDgyV!t~6Q)q(E^ Bg_)*R3R7;jJ88X*h׵O9nBT@00u~'op Ha/-qs`" <:ws2HO*]w,(Lnߦ_Z\ ~n@{ny6Rn@E@"E׸Z槧`dQ^p2q2zL}| /?>"axհ8*g>l1l"O,,1(0pw-~MvX)%ktw|ޞZo# uȤml^R((D91$OxrI B=)!ro .ˌk:vUd%6 I[Ig!i{a>)K'+iU@z呥}w(@E88I4w"Y i68I-,m2̢PUDc`jE+h-Lfe1R/:LeIKRZ O .fJ(Ͽɇ*XÇ>6o?OC-!b-M~aq!q^匳gslZqv+'gF(e(puL0E^C.j|bب^r g)Roؽ\{` Î$ ˜lR v?osxq[1#~aFD`5poZW%ɪbItKMR_ݷn.91FA$u9Nr[Hۯ~?ghxܮ"ߩ"7+ÿ~?~#PDֱ/fYsS;^k7SΏwsʒwum$=ؼDH~8H` l Džڱ-Cw ) fPh qZ[+˫?}Uh={/W?]˛ޮ"t_.įp~9˫C46of_?~Uk/77+{xFI=f@aI;v?_+x!?]zV _^uഹKWk<o~zuvO/>7ᇛ/g~'<Ӫly/_<[rv5~˫͊'UCs۫7nǏ=}}?zo/aDZA>ov?\~MOh|zx<>>V2t.Y2.}k dvC._tckRT  REcND6DAeΦWxDjG{?JNoywiy7W룿euy{}_UVѻۍ^1TۺYBt7ᘔe}ϟ;6B͹轸ΤFjDżSB?ʱK?ͤg`*ZPnP^YA 铱*x̏s!&KHUgКL4Jwk.03?(IDq<:c 7Kʀ"Q /e@,ߢl(h4'g`PI k$ 1ay4re}͹<مl~l#y&3Lr5Dx^p:vcPL5&Hӓ7"Vyڞ79bŶS&(1r$ %ӂ,@h[3,Ө'u *yrbbSVyVdj#t69 ڌpPZjJVSZKDqSO~$XB U o.ۃi.z`ZJdwߘ&ƍiT)~h$TPӖiw|PA6mZ DjˌmrGȶ)߮ۘD"S,z[mGa{ ރ)ѩjx%φr)`9]r@V^p7ڽ%x/r#pm'HQZ9qdhp&"@o`T XWI@kw LAbTz3^bCm19Q@l"JPr-Ov쐔I7Iq*P(79GR[؁_sʊ*29Z \dmir =Nc,+Ob “o r9h{Y~@ #>ֻeuIJ$]ԉf +޹/`! :D!Of{L9? 엃E&sdr0ơ6JE)NϴCz<vAbrPN s[50#{X &D |~S1ٯx4^I``CmijUBc"d($? ⑾-20Tbwڈhg)GD\j D F#JgVbLdCb~HcJzhP%<;e<$B0зEZRs-m̴٢J5+W4'uO}R뚣l+ċz@Ph%P%"pƝkEDd |ׁw Thtx?m6?>@FE Suo4 Uܝ*ʶ@@ Ԋ[ՖBӴAINB.ɤj8: :pVi2*`JQD@ + GLha@C;Ԍwʬq` v KL\Zgs@fTD/ 6I&(3a6uS!)&) 0ʥ6 vNm0"P/I 8R)CtBW)|e@T-_11.7 -PV, ybYRAL,P(F업:Ձ]X&S8QarVQҵ]p#{4ֽe߆JrkKG4YYqbmpN䪐K>z$9ye"D%X($\#.1| ʗ0k`IK40͖HٻD9%lP܌ $+$1/KH 5Q@Ūʍ]" P,c%t(9|i W0Dfo'%hQTY ndMCDli"K63OH2(gD@>1TXan RSE2b#q#7Óp򮬯₴YQ Tz`@LN*!X+51I !,E9Lvqa e@obC~GD'`Q7.D)ƺoXNfY c Le W@ oh˺DHRİ.1ǔ "-Ҁ"'{4L}_WDu⵱wѵ|S Ԯ#Mv׉ ?"-pia5@rR[?!T5)9N=bxD*%4#&{k{K0W]5Zkk *P0FjQ:` _ ʋB"I>NKߎC_@\/9WMX8_2 Dh6H[NGO7.ɰbA8K `eW40jDgdp'1|CؽK(V}M ;>`v5f1tkLjP)W:c@s ^}g)XY&{bw?BryBIˊ%;Ba~4Wr<ď ( F:rf={_p?^:8Z{__y}!T}?x>G+eP=GSILPus$Ze8e`5^>只iY?!Q~{O hzCedѴ$ca+þ&a M@\!BbL_?4T5&n\fBFF+.1t|Kt5+A$,QL|g)6C*pA@w[D0@ƠExHİa#a)#4@2R \۟%_ Ic905:Njo6"P߷k&Hb`fF!+{l68k=x!}$W#o[@41OqUꑕGDOھy?^'2h*~ X>Fة[ Jgc-̻ ȔVc Ȓw ]PR>rr+3e ƨ-蜩RL~uO=R,DŽ"%tl%o~uo_|.% = C1RGv)͇Q}jbS,gIPee9cYɀxޢ̇JsJ7t[nϠc>&F<}v((!TӲS^z>TXankNX᠈b9q_{ދWʠx pH u=ݳl,Gs,WnoTI SsYUIʚu"Ԙ)-A%lvcoT\IBχ֋WըxU JdAOY.ASg9B ms`wl 苕΅5ЦER!7Kuye&nĐR֘AM :,vD*π8;f9$V X+|s**k !U AAbtxDR|ADV"܀=&ךC9v S" ze P\X;!"965JV ==u!FX "U[U@#5t q"Ah=TGjFgó[b¤~vX,ܱ\,fr n_BpjX :f#ZLNcCLD7V;bP;XeE9z{)G0{meO0YN.a#2 32+5-G qxajPb]7VGxE3VxY!g5ZG-.h ;OY|0Whϲ p!` \ѤyQ]"GFٜkIv8T7V[$0+j+X={Ӝp?{\jt~ V}%RϩU !s;p ($cq4tA=wJ62B!jlS(%~EWk!ӛ 3ŝ\eX2|꥗ts07 )ƒ@>X~VNhP%@T/Wehk:: VvXlc~|9r#32x"֢ $ɖB~y8S :.B(`MJd#QW[9hIQG3O:*+>{.ղ&'ڵ!3{nmD!O*vA%/giAE]MTyKQMW]e`!̑+VThLU^xjQ `69?"Au߼Wk bk%7ЦV JyZq]w|-ewHȦ൉cYZafy<%&22F,hU/yڈD|%gbu7ЗbAYh$K27"cf^qАf H~^4neǯ`liǿ{ԸRR%ZPYhn]ncfPgڼba \\+iA+WTi3kDZ,_IlfHb $k%1G׌zݩu̍mGD^AֺɠBS\>+踮'^@),8bqq,K /jC]@t|Pr]O/uu]@c_Lf7dٕu/+p/EVExZqYBJ 8%~n:Yh3z_% k!/%r&f`HKHK䴠㺞xE#ʲ3dVlXJc+]'.Hv ,Yq0b3٩keG$ըP}3FO]In[xb-o.#~n6#1n! :.|RYPVfTcM%ǟ/ 48 6PvME~M Dv"%\@ƺ?쥧9GiR*ŶT^ y6 )j)GL< :l=&l E-aq:iHU83LƷ{ɒaɢ He?3$ fa-, 3Pp6qBǥ(M : Wp'b5 P0 RӺ̂-AyCV|&ۓEdd+y)@b?Gi.pEI)vf=4H/tpLj LTaAY3 0,A8֬!r& gâu`13s 2HW<8Ϟ`a-R( +iiAݡj)VdpȦ8k, !4#_C!oo|m3me⛧jql\\oc8nݢ ?هi n*E-#mV&rXŕhRq 6 $0qdsdO͙]f7hjDQ+&vgU *W +sLPZb=ϥPȼ j0b$ ]\_7U& 6mq固ս2ڻ6 xϷj0$r 䐯&k {!.fTW U˱9f*&.;L8"{ƹ*Aȥ|X%%).snnw R$a0r`RwQxCw70?]c%s0w~ׁ4df;=.C^3̶fc40MH3a-GKۢ۝; 91̙zҼSB3h9A21n@]*v6 YzdI;?qm7(fS4ʭ >L&14V0vcg0L)HbRw[??xA! k7Q B_Nv -#I*Ҩh SKF- P2sšC!$ZAVHξ_imkg\q.7Nj#)"νŜ@Z(MvPFh a̔thI >X011(:_/W|v8wa{lEʹHs*cȪ2fO,eg<*R/ 2˔Ц 7޵KZv,*&٢R@R~BZT̶ uR)s\wwㇻ?_L_focuswriter-1.4.5/resources/images/icons/oxygen/scalable/22/view-refresh.svgz000066400000000000000000000172551231434177300273310ustar00rootroot00000000000000}moɑrc|Y%Qqtͯ֊vTJ)/g=4W.:ڙt]u%p9}ӟ{xTt}<~7y|2yOop߼=?ᰓX_N 0GJևVtzu7GnB߇^}}OEeXǭ^tM|{nӗ'W7Æ_]_k׆N|U"Ѝ?=-wd%ڳi0>>=lֻ^uY tPJ7zqWyG& S&5aOk"'xVЫt?;o볳g;&46{o#lw=yff/Mhbhb.h @}FROP`ިz] /Z~78yxކdz0<)'ҮJ)Pړ/pFQNvͧ;RL_Ҍ`rǣ *ӽ9>^j2B߁IdIE %tQؽd_$swZSj~um=EӢMN~Bi%yp܄Li0')ML Mķoڳ)0l6^ϻm_*%/Lk3P( T&ju=7%h`fO`\6G@N (zx0봮6SҾ` h7tbdlR4Q߫pT 2 ,]r:J2`fDs|LS'}C֎!mkGXpJbLa)I}͆Lضd"U&8\d.2NLA$> !+ tD􃲑dC=ď{y>r:{0Ú0lރ S^f+,{e넗M!7oNR(oߋFIuڋӻ/NioHF;|U"LEqtMۺ&62E$J"+0Nvl&g~a8\@Q`BE{^Kr#}cIi J(4G1,!Sp VL@p:}xDb, ?܎j/MHCJ` ̡J aW(ebJU ,}2gB@*Do7ڗQ}w|KŁo~tkW/~=?0_G=..=:t#:__λJV㛷mW%337~q'pf^?\ SD#;ЬYqL&@8r)wc?F`/:=tHo?wvR?kAS.cD0M2\^& ]b7AYCPH‚NjzIUq$%0,PmP'=u$F31Vmeq-`Et4 (>q/!jbںLG}2:*(,0@w;oOȆΣ LMa4F1UwVie$:#K;IK8괓LX'Da.<; I;A:/6p>3RsE`(H4\\(0ůz_:`iTK۬'wOiProZXn7! (h3.8LDMIE}̦qRQ}2 C@QIq>A{rGX(FNdB^T3@%Eՙ3dKK233R:μ@ 2VWjA-cY^;d`J* f`ȵBGwΙ:!ZozZ-IŠ,6(JlƄl5"0Gkڶ'#fh3,aRI p)K.* H.3 (h 1f@JTj%J ʌܭhԡ0sTE%."k+.{j T!J,׉TCl@)%u5 T,J;'X,YXlvDEKXUDdQtt q6O$!P⢽$'R2yT!B,YR"fmORVlOܜt?5{ӧ|NpBxj^rq{bjtK| :l/:^lr3Ѕ7Uf*w:S]c/e> L8fbE\G d}eHVIiXo>%Ւo6N6.{9=mL_Kc.{E$oHIyaښ Ie-AF8.Tžp /N-q(+EknUo.??:ͼAx>O׫G>GKR7e3Zӫݮ߯: 2dIyûܣ1xr+y'h?ъ{Rӛ*ڱMc^.V=vs|q3>:z9*z]=yP=;z/Q8Z)_aXIL_(_yT` Y w^KW2Uw[x*]WCӓWնowӽ7?]tz0dKGT{=p}ooo߿z}7w?FҲ+ݬmwoF^_pWb\}x{е`=\OpLJ2LӚc\5^I䋍x庛Ϙ,^ -^ .IK2kE`UKRY$EhU͐}H}࠰uF XdA}3'P pPVWH1y$("CE!Q%Hfm Xo}pV`8q]Fh@xłvZDfBPU p)X(35 ia%P] HjH@*Y0g Ω(^qf쵏d3g0GYꓮ0RDۖά%òQH3lb"`bIkH0hiGc"bVb2*^W\0Sխ8Zm,QZ;jvJrl05\؊|swd/+,?U9䳃|v ąKVIݗJ㞘ڳ'xϞQJ,9liӯ'Kg p"DJ. ='x(O{E_!$l[4"rN:M`\^|Ճ ؃Vڳ}+te4+ږv7gcV\FXT@ZCxqBˆ),͓8VZձV'rXmDB}w#8q'MAHaĎ1:Nj cvJ5j6z0uui/1la3AisM'G{ݽ?wOZX h6ɾ+m$qA%IfP(3Hr((33 G)t@Ȍ0*ͅ#h5H]2 +~@F́PЬZHK4+ \(2Xp1 (N\ƃ$-rJV̙Y;Hej( rYR4o{lIAUtf0KQOHKϖ#vӧx2kF~ƕ7x-!Vf=UbɈ 3bF3^2.-=+UhK"4+c0XŲ]y=ojLΙ b- -M^(:,ZxFE<*eiZY+|GեU ; ĵCl]p[QXW"2$DRdalHUv4LV~ u(Ϫt:ZWSYU?c%S.d*ӈ H~_JAZZi>Uxzڝ˂wTv1zݦF-t 4J!͈тJlTFqn4հFCOhFzNLQk4FcUJ+H0k+M l\4+Q4xVI%f)f-#ĬU$Miulr' ڌHHGa9".T0}j5\=ά,NhU;1<+e/Ƣq4NbZը˶h*f6m;BƴŨ1?[ K߶'yю3(,kaŰJlm*SaM/_f :^Sѵ/j+RR5E eDY@lH_8(ᤃG잖$IP@rFd=2ѣ&#CBGuLDq0b_t-ZdqhףE\FFbO>%s@|d K2\2Y ח aɌ_,dp\g>־9fЂ{uﰳ{9x9- g֚# Bͪ :98gVBIX%j!Y`%Y:.U8uK Θjqiف אuZlTcFQo‹U/%E8- Fjx+hbs5nIRO Zx%u&(R)MB*h^a\inJN3VGUv"$bJFcR*+UH,)UשLm[ԤhmZ\ j!/ÞDo_nDg "SoHf㨍J҂O oZq--X$36Ӫ uN$ A=ms=)F+QH%FJJBk^a%WJ#noscɛ NjB 1Y]v'1BmI,TuA'uz$=!ةN ɨuL1iH!t(VGB:LRvF "Kv4C(\̽NOJku*%6M5ZdP@!D۪]Ю^o_ focuswriter-1.4.5/resources/images/icons/oxygen/scalable/22/window-new.svgz000066400000000000000000000220571231434177300270150ustar00rootroot00000000000000}ms9Z͗ql1|O۳q}q3q'du-K n^*,HMǰd@맋ߦw`zyruz~_o8<__\]N^^˟?M&?ͦǃzzۣ/_WGo&opppPy{zNb!wzr4~^o?iſLlzsyvrɲ|朏MK^QIk%O׋BZe˥/p[׳.C$t){K6kdzstKk?;X<}8x9.Jj)t>-/UT&?rmAChˤf377Ǘz! kO.>߷,yk=<8SV2dzñs7\RMieu]ƫ`m?$)`9{~XfZꖺ/21*JIPP~pv]k񞱰o?Φņqim;b?12<{R_~(s۟(A*fiM'j=<m:gSL!Vfi^J 6lR3 96(UOo:EM8v!%[al+R3Od4숇#c^|;^>? *P|QhLگ!(Rc jAoVzmnOCFȌH~) )ԑ.4o8s9E4?:}9c^7}\_ٽq[^ni4p(뺔Np5B9S%mYi*xي"U0 a]=}gz-R=O\\e3qEfpzNibfZ܂vz6)I$6%D9{"k ]KTd󷸧NtM.LS^/ڻݻ nI پ96gBgPk_U֬1ֻ5ۨ-nFc]O[6]=6mmg1@JڳRδ ՀՕp:a'ɋ.69Gw.]P1?)Zr2QF[cI ,->dI{bԡ A2J2gh9]g68Džhl^xZ6WfDa8i9$\QwCv|I2Y%S[WjKcĽ0M?޴r6rC|Csߪفja7.?eF-8t}'_jӰL/*T|~u1-#dZmC_ y~$̿]*0_;*բߺ0jΏOmG\ﵟ??[{3>Xs'wzZ?aRprʏGmBGRN ]iS鼾tr?j!˛֣HrͰPrh6K/-Z RLKh0 rZU]m+ٖr1G*AK]NWu>>_Lke+gWN{o.J~[25e\MgOo>.vͷXWv2{n3E$tk@X[[ TCHUJ?jÀnQѾ+ôGv8:_93 1-("K$'q'*`g̉ ˰xRI~zFL؊ )ܙ >('Z Oh1ω7Jk[Mmc_Fϯv|}=> ,J$Ieɵ F^ѾpͲ+x7D!b::0g2, O 5)R>_k(2 x HX2Xc|dǖX)-`||wQ'9*`Y6'$赑m C6h&I ^JO ǖ)߭ D\<7 `I7: 3sWqmڶJpj`Sp&o&c_ hv+S(Yp.4j [/:<4-_f `H .dTY\G[\Y->F*I+ڗ]ǻ"ؠ$-,SޡzNrU_:*+`vhe0eȈQ닮7#3bKF`,\"AC*ڗ]ǻnf\R"UΛ{jyw8O LJ$;~]OABFĒYYzt`L9xHz5,?8(nD١k'w8G̱9,g_Y\ jTKfgQ6ܡ^}]_iwvuѧ_ /?(?8- c38"Y!%v _=qϙI JI >(ѨdRpfFQ. FD_vea,L :dLy!JA+9Cx Ⱥ8$Z\ d_ӗioG!h(I3aE 3d^_'&;ݾ̋ x?a!1U% oQW`lB^آ*⁐ݩ ͆y,s+fr i#vpUkkUUUTW"9{׶mDXxNyC^FA ׇ1== ԚNW7"j5f#1.QF=؁30>RֿC,j.X ;:3^cĠNvABvQqy|_fy`! dȊcL|Kt(;>5ks+ir3+tʵօΘQsd#|P{/,Iʁ z[ϻh1۠AY iaq@9<]=7x$H fՉ?5  39ճ!g4[=3 |^=3ꝇA7"dԮ ;<^ #sofnI 3Fŝs8 Q>Oרϫs@9_9/İ]6A#{^`V·z$PMJ$&6zdHL**%<jZ H 5Ogf|y./[E&hE]I %cT.zL6WQseP "fkM\Ҙ 0ɸs< By?gC@V]? 𝇱I75AFX Usyˑ772Xi5Pes̲35J`%H95V2EItw($Kҳ-w!]wH *z6`DzdϪM4R r|kcʪ:pE%4"":* QYvkn|wlywώwJ,ApAUYg #oo_ވ#S<ztG"z6C$]T!Hׄ Kғ!=|WI&@0G(;[O' (&L9 9`ZZ s&4r:yu˴3'-jCϵX Ե:o!9 y> wͭYU-V zumf$N6ׅ6 Ϭרk@Hڥ:v/39%I{ݹ-x<ߙ|%oYL!+"SyvYP_QT9#@>_X[l>qUsઘϷy"$k+)>;GS .\kK;11cV(eVqx@;:]%2BM43 ;6x%CR)5OTJ;^R|艁]e!G!7 qHfcHwF %ܸ2 ²,NHݛ[ jT!wQ Ev{ BbuSiM|,dn Q&+>pP2 eFkiƯ]LjW>-˛E@ 1rmu nEREg~󭓺C:v-tZ 蓀 1v;MYʳQ"I8p$ygk-qpiU)v{mȍE!%sw\|wuo#&Hjo9! ;<^'Eb*_(8vBC)OnH7 $eҏ' SKY!3yQ+N:H V (+]k7P&l-iCGWjy`$y^~ 8[cWp1N,('iwʝ^Adg_~PSXS+xy/z nxey>j/?~|ϿQ~38e]?7CXr'ٛ; %]<}b@(*z,f(hZZwKOniAb&۳ziO>"xQCpͨlǑ0C$7v^|QrŒo/쭕HǾNJ/ޞUYuy_c?lLq~՗?œE{˜V =y/z+yޤlvmH=ATM;zCcЭJʛcjEʶeU5[:K`s7|K-C،$v8$eߢa||BOQ[aWɜ^z*^vv49ٗ>G H-bn=]aN+DTD2YUÿs>-Ϗ/NN_=_ oO.Η/:8jyt<{wzz~}|t뛛˧޽W ?Aӓgoq'LJ˳!mqU~͛QW'/͘w2R!!0^tq(#pQOߟ L|Ԙ\F` ۫Ar ˛ÿ/'7'iwzY^_/xzrzH7ɳ???LsYХ]?o'G??Y>>;zq<<:f30Qr|z?]|{oA;$ //n^-}xu} 篶rH[~Xp:jOА_ˣ::9Ϊ 2M2Ur{lpgWOO#t1͇&srHJvڶ*&42?Q\![gv% =~_lӿ]-F}w.wȓy2zIghXK&K׆KP,ҋ_Qswd׮,5mp,,m繝],6"ז'p,tƹ}q.K'/_|5mp,.]>P+8]~ۖ_̒|YkK0ٻHK /ZY4>XmKYR\t5|8Pw9%knM>Sm`MZ޿kyw gl5n.<}}6C9ݽl=~?X΀aJ &A_6tثg`V4}ZYӛa6zu}9l``::vL<stsuQhÿ頀8o<huo ^SRFۧ"%Y'!eD13,qІvCC`+}] 4l_ RJ$`RX(% :~ƝLEK944VSD:91lؖAe`\ o%GgYwi8Z6roGoO:ݧ'l]/˟NnV{JDˎɤo)cD^ 81'W){f@,回~TRjio)8u+3JeԀB!!;ʽnkv muo:%{^3%FE[(Qx~ p#'.O-]mz\Cu>s `2q[^J;d М!PЗo0,eAO>Y"LthoJ%\BEoVRӤ_~8Z$:&I ]M2"1qz0`~'I&,q/k*WPبs M;Z.ĸZ+,eB83- ;[jY" :#(2%SImck20Bqf҇Py8E)Lwh\ ޳I.`A,bGKZ .)&:d %Oo݆y[u;Ivk܀C-s H-{ZȈE?[(q'%B})~c^kXl]گƳí3`y}suZj1u}aO.ޞ8=7gßGWWGV:TTl7 g\4c.ޏN.X20؂,*HPHl 0LdBJ/5lC9Y8) Z˂:8,|VA|Pv)ѕkP16V|H- V A &Di sCdqV%Z  ]!|)xmQ_b!91HY H:q( Ĵ(\-vw@ 芆mx$KD%> M \@"L1 k7h+C 4C6ݞ?WZb誁dUFRO%ZpdR(,R-F6|Wp'U0$-B`0p !R+&@Z5[ڂ 6I0/8 W,I):,Kf?`]Xct. H27HB=wX&,f)>MTU/$0= X2Wt'5d[vJ2z4 x!p6 E,R D1g5{@H+B)kQm7I Jesl Qq0FlV1eکi1괴h6}.r)wg&,fq-@bNjREX-:̠0HZ me!B4;!KR.}TB8/ lL 9T۠vv:)v76|oq԰Fg ` UEMܢ߰'.Rp `9V+$µvjZ:-- lqo]l>u˖BKB }ItߝU|/Pgl}nۓNg_m̼pxcge5qsɲ;:p⿇Hm9ҢYmhCz|(t'?_\6j0S5U5A!&ےosNYp۫:r q3XI=y5Fo.`v9܁y9)m01[ $ܰ>4[7)Ͱsc7F~edq-EJ eeI@A/.EbXL^`XTj!=$ Dcchɂ I쑁sēU-"jCa;nA*roķG᝖*ܳR°,APgF m`}qߊ%KS?Ӛ?,kcZߖL,$Lwe͝kVO"^Xg zY<[AF݁_- ٦uhabӪcVjձ3n&)YuVl:$1MWÞ7cyfyu5;,cxv`ujt^f.Ef(9fexsPW yz +k=%PQrPȂ3V Y>N/[}r&ӡ? 'mrᦛrorLdbQ57lV̛ z^Ʊ7kVAPT7} jaLe:=Zwwڃ^u;]K=$w $( 6$H0Fu o ұnJtRҌiДް1f :1mk6VXs)h 4;vϽ˜!kM<;G LQCXEuD1؉ BՑ ,61Šh) qD]Yf h.R1W-$#Fք!ǾCL{IV Ә+*@n8Ω̂EQˀ:g)GN;,D]  p*_KS jH, (&V:S0*%;A^`BM] iB NM0Үm`w&]ܜBn K k6NWkſa-U:ecݺC;jtUt'^ß`cfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/applications-graphics.svgz000066400000000000000000000711051231434177300307560ustar00rootroot00000000000000]o\+z;X2NIf2 cn%iȐbbXd|?moa۾/fZo_?^p\nWn;.~_|_wv/ş6;/nq?mZ^~f` _/i׿X,ɿz{xqx2Onv?]evn+p7nۿZ\ a{<0~s?n3^ܯ^}ν AcxxF\>l/'%ͽ~F]߬xԙ)*peқǫoKVL2zYgki8.oU2`zq'n:IN?֯~~Ņ_pC`l޽x>_nʄv|n뺮iI)my<=>"ՐsjwM'/\x{w8lؖǧ*=~ؤjk ~G7 ߭ݻfz1f#?M :Yr}Kk^?[n6>>دWs|q~5?gf_\RN_ٟ_>a8wOkScOoR^. >x!=rF3*$~:fa?_nOvL%~^J( #an\8Ax3g 7i!qwU &^: _I<1)91𛼄&f |:ktʟekJ/2Wq?9,ex`pX/eOvx^kjg^LZ/<[Z=i//JMEilUc\R[m j5ˀb>$fbQ7=;\ǝXtDd)~ܮ"u?c~H!{R?o7KN."Ce#ᝏ>(X]ʼnǠ 1Igw`^8iwIovdOW@/ gt;GFY>1y"M#y~HVHM"  ɮGC$D1|^+At9J+=k z-bAFI!<(@3H3ĂjxxDx<^<;f' OⳏgróV91ȣ72`>@7i%te s&xR d P0%>>xmR$~z`vL(byz'iR.$s&xr Ϛՠᑬ{QA jxлn6?/o=$٪;ُ@5q[^{qCԯ.QP^|x$xCa,,{ɐ\@9SrȋVU&LɀeȎTT3jC80J^.x$(cA+JjXtJ  ɩ ,q6'W*&gp1FJPV*##qL 9kP58 ^!MNq Y\'I),! uM0A'&/ΫNEyv$ơH2.TRf悅<dzG+C)c#8sƩ9sE0 yR Ҍc,sNJEԗY12C2 Iӊ1\o6 |@+u Gp Y{Jf7?l6 Snÿ?wn3\onCcun~/<ԥ_Sz{:5JO?lkl`֒#L ]#!m,d邢hɚZfL\ʃ46j'(d VfH6}|T-'L[(u .JM (J%W G7,'^*LlT4zT6ԓ̅CGP\򣆃KbZ:ijrQ ҎGA⦩sJ5Rs)-r+T v23#z]dmZs0#@)F d^~LLedQ[7utRNk,+K]d) ѐ 6 H[\㔭X B@xG5:I|%7k/2^@232^Ǡ&|QW3ڠ6ga>d .D,g+-473L1-dE I&v30\C鰘`` dEK^ $SyH3E_U3M=^ Cui\b-Ykzgpͅ@m_S+3TUCpAѲ<8z34$Rr K"Q-Ӝ>P4NwgL՗4xK4FD#C)Vp8#rI"V[w;~~{jh7+E0k,t9 =!*HIuL@ηPt7`5iSH9+k?QYan/(*Uz?[߿x9lpHC-|Z5.vq]hG8.vq]hG8.vq]hG8.vq8jtqԨ?qT8.vq]hG8.vq]hG8.vq]hG8.6=]? q4bG8.vq]hG8.vq]hG8.vq]hG8чhG?qԺ8.vq]hG8.vq]hG8.vq]hG8.>G'汋?q]C.vq]?7rZͯh8@\H Բg3q/-ΰEQak({SmOd9X\U]U]U]U]U]U]U]U]U]U]U]ё8QUGWqtGWqtGWqtGWqtGWqtGWqtGWqtGWqtGWqtGWqtGWqtGWqtGWqtGWq8z88!**************G狣«8و--Nw軿޴x^_};ۿGp_"`H`M7ߗ/HC.ݛom/ E/B͛w}W xt yon\@D9T췿9&NJ#q(弹fז ] .i`m&.\\+_+CU.p |q <>M}vCs>v zgq| d 'A?k>C!*Oxd]b'Gy@`%|sS>l%z(]6aqa@?-VW{C6#ڽqN.UY6XȄwQu{'PtYwޝ Ն09CML d /`T1%0CIE]|n{'\?A6%+@&(iCDݯ'rC@XKڣS"*ݸɀMH&آ=Xĸ AH95Valw$.ۗ6IݹɾaA#Eˍ:V# Vuo{`l6*cx;F6w16aHv;c?2!kU>^ͷg_oBAPrcow_Z&e\Ԑ& Ad>%uOvQJeE=9:>zF\wSh1*H/SZA<M ,FITq:۲_'TulDp,_C~5Xhd`H f!7(uD{zn9%"̬vskU`/8G ڷ c_ 9]v$iiwr_#** 2"L6l S(V:SK04v3MT]AQ*>+!Pf劢Q1.-PI.SAX/C0X(5x6xY~"*<ϠYZ c1jg Ĭ0tl'TV?>qpNNGU9S$e.)A”f*X2)ǎ})jp-Bfrw ).CZP4!FAZS[k|=![h*7t˜Md27E=M4͞VqF1y/x8Qvbr-0F PA%S1FM6a1s C\)P?uA|ӧTl-i81lC:2T9MV]c o4*@j}j^`xj1P*MxM4lg 8OZH1,3#w2]oE=a. sQOKy<N-Uۚ0E{gVaxJ 2WHlѤo|rk&:idIPQO#c6h~2ŭ:]*e>38שA3gSQF=ed?e|_@xX1Mv; iNt[G6Xu4R͐S6! 6^GfU V'6#0̷+$D.Ht+1E .p]4c^2/i yZya_6K>Sxfd&- T6*CI&8ǀh@}@f>JO2Iw(9>Q&z}N#6HiX}>93ޒ !Gh,ah&VXA)|ެ$JwO $K)ΛYqX(@PrZB!sy ƧA|3XȌfӣ9 ahH5lmI6.P..z#% hm) BK\%}>Wx!+ols`6# vbiw%6d(R#Dq$٤@6 P3'9}NcLrȪH\v)34b>nU-9tHY,س}KbCQ jzjA%`4Oc 2_J⿄OyƱEskq[Ft&c?Zf{}*.ЗCb?9S:pnp$&֜& e)jԂɽ"bjmqke, g]N ţS*g7Yԥ.uK\s`_ 1rn*bo2o8J7dC0ΓP:yX=eI4:]FʘOW$tTD'2ieg)z4 " ޣ(sI$zf{} !w@''Q8uO!.iQF?|K2)+="zɰ,JxH|v`9&&jR}ߥ&ꆒ ɠXN]:߶JElk;6ٚVscsp7E?%~VqI?U<ϞpPnFcsc>^?\\|PF02%XCeȤ!qK8= 0Ν=P=,`8~ng{~b҂؎Û63h j`Zb)4*Sap1NjݼtS| 4fK5sH`pn8 (R6 b }9S'PDq(4-H{|<%INR";Jjh # p4-xi@>G@W4C0^c`~qtXӸ2PbHCXU )uPk)ZLd,xъ'K";^gg-4^hqU5mC[Lkhm%a6~.5[irpͲfE 2\WV ?$gZ:^tHxi%/<.6i͖5=s\$>`[b %hap6LY2ob xiŌ[04Q@ sm[zw>|f!L/=^R{\I4e7;&c!PU6D2 tdrOgb$o9R>+(OKwL hK!Ax]Is:hOyiʣ[f{fYj߇MSR{㜌{xkl"e q wg7=mMA[wLS[k\]ջ߿ߵyߜ?WO8-~~g0۫͛owriK" 4IOa*':VV!aP6ڨ@%HܥF@;JC`m u'!r=D]% C R̓iye(M$qZ 2ee !m!Րm#$yw`!.t(vg#Z=68x]YXLߺE|xdJC讑"%k!MgO.SV{?S{ʟ}|$p s$ٲ-B?50l$!0s냛7gQ"n~*l٤Bƾ7ފBipjUmbBsw,ARH G;.fL!ieO%+ R9GqCZl& 6Me$"L Q{Ŗ2=2" }܏J뷿OK|y/89^{a׶E_wmmo!+>˸W՛w{v6}+z?͒,N6;EL.71-zLIO.JMBL))aJU(hcBj hM1PPiu!$2htVP!Agr21IUX&xrg,]֝ IIBv/6P6)Z9rF#PY{胕GY/?J!%(d8TjtV9bO} 4^ 41aj.D*/' u4-ف0Ubw7tDw]7߼y}WdǘRe?nR^_o/:W--ڿ}7/n~۶cް;zwUu}~/o"=7 _}=@yWvCѾql{볯un|gltK{h{v/r~20m\y.&V_gLr1T_}?DNH2YF&kv%ٍSV@N J;0f7{ӝUVE  TqSvpeN: .$rM\ ꄰ́SsdM1gPYڈdt]LmnT?KI3ց6$s 5I*%LStq Ʈa0$NqCm6g/84MEa]g٪'Μ%r˝@}yOvM.&kr)>;Ȥe$eNj5%xIH'VśtLR7ڮi+9j'0r0a4wR6_di[=Q(UvWDZXe#j"ݙ0Uq@ 'rQZ%jLQ,j5A4e+\ \*Iw%[z|HZ )g Y&-MHBV]%т]m'Q 5]QGi8W o-$wtlyYZ"_UR7~Z&*p-v.a^.y`ޞ̓ħ/Z,##|zDh1cJS8Tb'lzhHڙMÍu|)'@ÚDq2Β#YEMg0!`zdD_9m4s{Bagu#jbZx\R`ՎvAjU}_킢a3BB˝P599]nz66b$G;&Kϴ~mnߡDnbd\>OSr&BLu,) ST쨦SgIIfIN3Ұ2Ӗn v8 %p[QTK D+VKx)mgת* ajҁ^'y@l2M+x*3RM+ͩ˵WWL u rs~Df7#k@:y #y`RG4)T s99 Sznf2tkzcy(&=tbNi~&hBR, CLfJ]͟=Pc2H%NJBZzd픚ֶm˯Dl!%"x:%>Z6]A ~l/@u"QG YLSOijj!bkQ2y Wdb'jpUq/KVҾNbY8> Q;O27zÇ1΢M#ߏn5Tv AT;_Qq>yjh/35G2 #_dl{N"'QɄӜ"˘#G3X`LjkArƬև*EDz #/q8Y #>5N+J8(s/GM(W7?e_6e%5~&_|ˈx~7/T=Rt?ᗊKWiTGZ%dH?ogSe3)JZ~NYz5/ⴠNHq38$ wܻMl1ƺ)G0%JN UqxiM{Dg&I?K-U45 3&q7d0m04W/N_ߦ8kZ^}Mlx#[}Zn@YOU>L}^#ӞcuHRϽ̮A:Τ:NSRCkbQڴ/Ϙ[^䡧1ԤIЯm_wmU߷e lط c!kqȫ-F ʜ5Y|h:B(熝)-r=Βvz1w!~/<_R;7voLߓ 1wmQؾӂ1RUyRW)1˿Վ9"(ʩLӓ>;KҸn=;H߁-7=^D {)-},J,nD^,Dޓ==ygVJo͏AuB[/>4h6Y7fq'uĶR*ӳV&RXTRVX1fGB3Xق*u9Bq(ؔfw*A"vٮS}IܞS&YLߜG9()^BE Tx'P[#~S{ rg5AWWN~JNċv%ӛq%qSo9z"*Ӆf3ӄrWTXfȑ@(%8?$jEB"$ǃ"?1l6EⷧVԉN'mQƨq{c2O B\$<_ =s*4/zl<L\oIPw6/*N6 Fio\HS O oԇ*SLlG493pILPwP9gTsvرFiEӄ)I8M_*I\EkNU*[L4#t>-"_ 8.þoH*m;=3&ʋDe-o7F={YJ,3YEr]v6]2yCM-uozvļ.rPs)Wu%vRF}gpQL*`=ZUq,X9_UR/+,rĢ\+[FEWbQ_X;V&+=[oh%)*$V-)ZdG)%kM;y2ݮ\4@ܸEy UapXNc3Y%0쇲uķfJ YQRQ ABPSd A7"/M%Uyw!H{q4gOS8;~o?FRO<+&8嵞zfQV+BUrfZ <ƹ3gKB.:܇) 'Ef2nN<qj M)"!kd#7ʴrLW+cE"N$sy]#8{Y,pls<Ү#t G>}&s×$w Z߽h{>w٧^?~w:gKjփU3Foϟ տM:uBRn9eN]T)Q#\Ǹ{BAJEf{چ%D0Zz.>WL1Wۃ9k:jfw ʔ:{A"Ņ,XGJ Dd@]0=[$baf_h-maAP,д 5 pUp0[;QP=sRi[Y H4 E% VJF[M.4<><qFPGB=*ZU0E€vIKd1ح.вņ<6ȋOWS д4YTHRl:eDiҖg$)l Y7Eu,ܑ- f0aӺ!f ĈSN$zE ڌ"\ 19#(;n$A zs*rF1hW^VN`89{/AeS@lUfCDoWx¸5A1=B表` r^T&RS5VF"X)%l3RXvff2:+7j\1h3y(B<6w.UKꬼgU,Ɔb[7S/u`a#QZmT2l/殜6w O2A[M-ӏ@H65&UPޅ1S՘d9M=$YjP<6h€udFa- TX=KP֫vF?V7-k5}ɡ TZCUKJBC ,AJj>ZQUI. ӈ'{ҹe;*eĩyQ3P ~YHQZ25ui@. U=Kn%ai0+mF/wI$-T& $x nabn{Lnwl*sSB=. V(hRW].I`.QߨҧoeӷM\FqZmϒ!/ 3/Ϻ%y ZOȠ,憅v8n df3t *r *{6e,t OlРF$xEEaX/ˢ"%$m=hrjm[\NyMku`U &YIa8e pFiwElԡb:DIĝp(eԊmƅf6aX,,rvL׀lTY3iĠS 2\hŲȪި@o/LLLhH͉uT%533R` €PvV3Y0 (]@5sՒұ0.ZXj0`!<&V3CvԳ=hvi. :PJ^Jg@VAQ;[\V,(ê|3Yh>[dpjW,e |0`궔8|iȆŠzg%XkI\^aZPYꊣZ5y*Y9th,36od[!hTW*' MQ3C.jn!)+f0T c `Mk<_{OZvm%rb&z塾'37h5+VCYNe*9Jxn@. vUn+.KClC9ĂlvE/)v~f  lWi%Rj[B] Øe["KDLbb6.b; %=xbj꽡 pQ[XR^ Omvgócut0\,彐BePfw N\.N,V4l`lbW JKml"Qf37u؁ 4CbmCB 6#ʁCQy%vn}`q8:X2kd8UWP1RWwBDE`F ӎaZ2%}: v-Z2և5*^E0Baq> ٭Ӑ~mFƒ9H/:H_*bT\tQ$ ao[u]˃3v>Pbfj`I5́Rҽ^Zjp6gt/n 9g# T b9STUxԉ)y-&m6uԧ hUGB)h_.:4:pil$}(}YW{VfI  &9M^Cγb1%%6k 9%"Bq5w *nc>3Kwdg#4BmV0M.: n{GFZ@s#2SKm\P.Y,9Յxaq5kCՀ;'w 2b2m; q\b.928:!f1:xTڭyK#*=\tPMI6.JC/(Po\iuL%AHPrgeWef;{. lOW@M?f-7ő~vuZ&~`t%¯=PfWlȋkeׁSZr&E^1C"C#WWl jKlrv[8g&WPObV X=S_$kkn؁"AsyΓ@3˭>[8/6?IO{s}3'j&$Gz;>] {Ia>mιעʂuc37Ia򹐓oz}]Rr7]lF͖1T,zs%>L_㫾I-9L_笞h&y3Y$ fxl.f*ȴ)_ۍn7Jp P&v hBL+#SՍraUίӍDIw#QVPC1I-ǵe<(&N ?XGu{'qʃIEДWnJ7>__bO?vRqү5ynK~NorqVF-'5W}9?~WI(đ1j͓'.6?v}I>qJ}P5q(#TpAc5W kD+؇vwa!ͰS-ٻِ:0j̓Mdybo./miE)͢/:1х?_o/>|Gǡ/~Og_ qevwk'/1oܥC@<.;d?/|*[l\ijdd= zǏ:ZKh+<F&N;5L.PJ蒦tK4Yug,C ̠p7_A]uP@: A?u$jg!g`2)KEmpr$1/5D9#v*K+@G ʪXPZ_f1#u"ugW[ݕu4Ɍ% +K:ItW쫥ERSF"G% 5WX(s_Cł5+ai=_ bn#)$в)e,5\d`W>ZT+0/4tXzUTm۲HzP.ϲ$+3HXLRfq7vKbkpb~@>vDɰ<_Rܱfnm}:tt?"/F##ȣ8Że=M܋2㱥$'YKQ n[pʰd_TI<^sҸ)t+!9_DDj^ۢEUp{FDǦRԋ_aBHuGg>ł{0Y 5bu?6r/b>nՈGcQ!@=`XrbEo2Ws'tɣY!ssqTo6.2n=>ӳdkTzyhQ\*d}0Dg̽Yh|m)X)a ꒈS iHwlp*8]E,$ԝ Bdǩ-d`9jha<~n&E0-j DG+E@z|(Hx`A6WZ#TǺG%g:):,c7n].LߘNz$0B湡2/;=%*~n)gEJ8՛W7z,#TnqPeMh_/G1'5)`HOBw8c}x3&ǹ3or/=Ѕa/.8"K!ay2!c9ʼ]rHsrk2-sƺ|`mtR$ER֢E59m0|*]u%?ϩ)dTsw SׁͽN/@#8]6IMk) %'<10$o6rp)gEjwKDKTs*۴ T!pd^F@v3ϊ]2~KLد_4cjͧ7&śoefzRt-T]Rk}Rt-?RRT%m]K,ϯ>[07(rgtVJ(0YKRzM)ݦe@SBĶi(E EuX;L*X Ͱܤ\-A^uj~ބ/G.MD|nW^[s7f֓_HJ 5΄V3JzVdy$߄:}(2$ZonF-(}㛬?,_Y*FX%V/fwpc=L)vo|y3kƹ_r%h*EѾ_]7mJ=,J}8%doO]u\% w'nwa%d^U{Ȃ{;E—?eJT20i}\&dO/ܪɱO1J 9oq+gx9m~+vIºP:Ӯ[-%JtAf#hym|:tiBzG:Ⱥ4[7p-LmXѷԽZoĈ79[$z"eeDO42x#=fw (}C^PC ex"[0›> 0󜫳&P+)M]{l|zDKM4{R&;|Έdл鱓8<fvgEæ!YC]nu !(nyI`ݯXLq_Q.+R! cy KuO6MTj{W`&~ˢY RXIuZԦ;ۖ>!QT~e)U0XߋA? q|p@GC%(-Q2ɖ AVO_3E4A'x҂j?g3a?)%5_dȬ_& |y{MJB9SkB|o/&3HWFX?ɖT7oڋ]+Sb>_Q}hUX^g\S/F>Ou'A9NU[#eucépQn 1%T S)LqSP'Ħ+8Tzѩ5i$;듑-Is&I%4.robUTAq-YI&)4 ,"aZ%ԡ jZqܪXy2JzTjsCSeRF,r uW#k>>l .>K705,{ޕ;3B1)wu JΓTږRg>H=fa)5̹ z|C.PeH#@nFh@{:YP VI-=h,!"V՗/nfÆiUX5,,rtFŵN I Ͷl4E+x۸/.^?zF<7V-y8:w.b/,fjVyW̞rPla)pDְkw`_]3Z1T.}“mTF-TW8xuxgOTNQ.YgR_C[YY1\9 W$"എ8nZ[˻S=gNaѝXUu'6쇛IU\>,[֪]}`57ߏ@{:sfFŵo(o;1>S$*\Vf&E*UV@K!@*i T2(|>ƌNƊ!qJ/(9n`&uśkTL]6;+f=Ҋ=< *~IN/{rr[YW: |>Kbo$6rG3u让EBs;S(V^nIzR|J_ښ:tE73 痧[h+c~~vd,(+b旑MZ ]LfW؂9v>1R ;d!JU3o}g>a/$;e*Z&OuҷfE| CWC-pQ(A qqkŔؐ/n ?v$b_/D>\6Fd&l|]>}SB\w9'z2dOqDXS>Ҏ3d [[6L!z;; {ayT[pW C9TJ bXH +!bX|5͉eqH^ՙ+V2@o]yѱ|.56|J8Cm(T"B1̝ݛ95pgXLLxo 4tf!9Mݞ JutLpg˦[SV9GlK7hiTlR%GRi1L-eHoavaZӂ:bH@hU,J;SU-<|rIV,eڦLzv#*3_ Ik=;Rsl|Y2-'+Y\SqKa:-* CD1V;|KޒB"u|/0ϩ'+%bc>VvI3mJe5tw,W@i:fnz\N)ޱ*({uW@(k{kw)_8+e8^`~f/K{4n3s OQbӞ{~q}1o_s}4zO\ܗMܼhD৏=%umzkzuZ|x~t,^XSi$6.Hƪ@%X~ɢQKt=VQ+,vTRrT ݣbeKQQ˧t7ղ~(|dve^誌[(==7=b{RyV>?luf{[9JG3 cvq+Sw13څ9̀αkU*s4{6ԳPggoSZݠ﬇3yr};gK:,?tTGJR:;%"p-=k4.:Un_.ii>uf<Sފ2rH=`jn摽u a.-{O ;m :58sfXoJ }jj:#Ia*@6bdyVϽgK{ZC<(uX-Ek A5b;+Y>u#etsw1W8/NYǰX)H`+a6Lܨa]u{kNl4TfѴm%q!4ZmC9AڪUHVejy@T FMaI.8%1w 26lwʾ5*_5՝Q2n3Myt5jV@%([R&F֡dV~a.ƒ9ap>b4ailv fe!G53WrKOzN ?O[v}ݣKً#u+/C.|t`e7דE'ݣ}1I v\V>'ⲨyV ވc!Al&ee}Bڥӕ.=ƢaL)o7VJߺXM]svw*5 SZ;u] 1nmP͉Y(uu-S/lj2 =[=maw*3M֫Kt4pp`ŸC;CK4vX`z%e)j<:an%hBNom;"dѼ-vIsZ"`!\mGSl -*ڇQy S@sImԵ䠺r&GmRbV؜Jv=UY+42 хZ`cu5- qg 0,K猱*"w^>WN<0s*`N=E+맶s^1wê̇Z>-.uƥ*ZdfM)/Wu=IY\t`mi~R~ymvS+BeY/6' UXZӺdkY ˬ9°+W:)\z*dLza UJжrs{CX`;udICҞ\bR7WNAYh]ý|P}?}!/ӟ>em9'_~[;8G2 x\Vûyg~1xw|;7ŒΜ/:* _kOXew^y{櫘V<`/XĜo^nCTvM 0'W)9s&QXLCUQ߳s' jq1vW4H2%Dז1ֿ&O_&,<>>V$vhO `"u23}B׷~΍,J~F5[(_-^7<piZS34ޠ/T"Vʘ (aϓj||9Uk/Ϡi$ 4^a]<Ƅt`/@˧QhDjj$WT#>]k6},iܶ<b*_J~|6G $/3HّHtHħh-6^*"'XE-*k F0^Dj[ {ŭ[!6?  Xn:c}0բџ'Ѵ?\?;+Pv'0ne4;"bUiu 兆Y}f(hua]Ԑw*iB vԖ˜ª=lCJ &2[Xu[˦Tb9OɵևTSOCՔ'@!kȃ̒0Ewp cdpEdHn&]LА^s25g9l1λqgqF$Xw0B,{O4䱙%SKB{֐T sb y. Ё8ܳ0 y=!2dA ^{`<,Di̦̓Ʈ9,)EO' y+%А(wâא`JX6 V(,4Af)kאKY_Nl5fɉg8E|!6ffEkȂ 9Ac F;`%05~js R-&3o?e*7f 9Ր`1 X֐KY$ !6dwCא 2}jȂ<9E(jȃ͓셝I*RckȃЀ)r{8kȃY2Q! Yd` RC˂c)<~I!b&`FQD1;ݐ?n8AA݈ѠqΣyUcUٛs_]uw6m D 6 NX#)q>2>p>?d?P?tϯFf?mL;~Y1mRq 83qt+0Pמ26YIMNaa{;js/> @4Rk_qy^ByQ&cʜ1/1vAM;ja4 ~h |(ƈ^GY"}'v=]mmlw`\lڝ\ K;?0F?s^j\4B94IT\ Р6(q,H6v' V0;%:_% wkccXqZYR&4-p;U ج**%dTi 9-eZQ"V%7`eAJ[ :#l|] sk" d<'o+2 ^=^ (FINTO?x;jOwZ:M@ zhR.`:t;WC|0HX_Lm/r"mz2.$f#m#hH@Wc(`CA0!!`ao X;Sٰ?.?|`~ +u!RcnB:<?^2Q}Ub;*z!#vyFF0٦n~#yD(QT&wT8?nܬMpiH)#=?e==ҌzT>&#=["ͮ/ϕ,O_Ks6軁#n$F5yH@}Q=9򟫝#6Qα삯(ٹH M׳s峾 YNc l}dؚ蘉t1FMA#3;ΪK΢HǥKg#qyb#NwDtg F,(2›t$4;2]:DdLWܱnWwӏ>"P<oШJсJNY)mCaAHɓpXO"ԅFpgݙ2Py$MAq7ݫ(x_ITY|ղ_2ЛEe2ˬAXϫ2J(>%5[]g>i #@688[w@R{[\7n'-0> Pײ'i;Qs[;UFW[ӋEVDWg'Dj"~"Kgu1JU TK2~yyo@b|SY]Zξ\'%o2^xpSZmz~ ÿ*--: ]C#(#݋bo*7B4ҩ <:b4闻MƿUEtsjQzڿƃynԫR S&1tGQQ:*'|3jW"נּ&ok} .3,h"Jl0Z^HI $v*[ZH6%ivƁZ+^:Ñ筱Mρk4UԆmQR :B.\dj!,{Zo$#`4@.q B1D"E 6Z6@mmxKIJlaRT#cI*DxF3㵙 T(u*s.iU`u WVH*fyͩPr޵ypӌ۶#3FPb\|R=aDyDtlݒu1Pb+AP$Kj 9!Wy*AG`Q0a+k)ArJɭU59;[!' Y!$2ܛ}zO\{/1FpseJ PyU1I:[ dFсeݳ:3|f>?=0d-lp9I؋NB1oz4QKkL iԁP65knc⣚hq,j4k~VD l>?~g,݉16̂X]ò2V asAݲ т`xA o. `X6{F|]1bu".< ',P,fTÀ{Ƣ^>hmoٹعӗ b@TRg`1FK [H4WCYE#Ǣ*Y#Y DLBؓ [#Oܽ}>+*OzF`k)  ʤŷ5JIEqa5i9I.lbˑ aTܢ mJ oJ\Ji%nje3Su_(>?E稒کȩ_%,iN9zM`vn^sCm|ۻW-Zcfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/arrow-right.svgz000066400000000000000000000103561231434177300267400ustar00rootroot00000000000000]msb7>uĵ HGr3LRS5SIf?`pn\+1.^ѣ L0U.ǽ/? ';uQd4>zNIѝ`oMlvs~vvwwgD3\:TsOV+'⣩_^9(_gH7=#cN{7wyV b4wŅrѻ͒^_rGBcAI#%J"ls3ͬȵPo|yѝn}_gAoDz*ѝLwvϤ^nng*VJ6Pߌ'N0,6EfnFW; nt;6M4/y3RVEѝ8i)6[,ukx}*ܪjU"Et6Y^+a&vRWy8c0{8oNuHV6PƓ.4؉FB{wVv428/Ұ.KcB iT4~5m|552+F5*2,փru5@X~ ώDMO'^>Dz:b "1>*$fo\Z\0n0z$ WZnlA d}Yй`9^^BGx]Į=F:Ѩpג`p(N}xp:s7i]jϓhOߟr؝_w8pO2-i1Io+c˴9wBÞ,tC3"Ykq?, yPŞ,4iJ dc! y! 6bpkFKQC<4J(r0C Ic^s/vH>Cݨ;q蝡HPV!G7Бd]꓏!:qg}Mw1_^G?hSv4ߠqlkuǯ`8+&M*NbD`L^=DlY2}1cN"c)2?voAw[pnAwzd"#TWlڠnѡPw("ǔa@\ N!cAt< (=vRˣ`A(Zo-x@Y`n2e^/Y˴3.F[dњ@mzN6dmԆş!u 2< M%SAU]$ڨukA6E c)R<#/ZĈ e 6:oA&8q.xLIJlވVL)H|GAhNHtB3{ Tz+dUBGl7>S uZR;1G H~O3nfP4q9^fN1l^3ұ/Db RZzbkAn)hC'N,chz͆1 3Myȝ[ݞjwqNohkZb/q!n{A?^[ Bp{A?/`t ة]\nqӳK/Jc+< kɺÀV0%eϯ:MפT_ٻ䏹%wrg)m ]%e QZhb^a^Dz*[=ZDH"c [#Oܽ3>%JKOz`H*)qC 2uĵ HGr3;jvk~Lasq3ܶW.1.^ѣ L30Uǽ?} g;uQl4>zoN/;+zCo_ݻ f<8ou:͟ZVM/GS퍯 s=?cP<>ΊozA^'w}Q b4^׫ŕz޻^_.@e!1^X@h}쌦_UMU)oU20)sݥ UjfT.efǚެL5q5l{]L/tЛ}HBPF?U|{Ƈe\gUmg35ꍯ8mH]O%sgRw~cgw_ (x5yvYoXoxOf`Xlݍnv}ݥ9C4ng*۔W}AƸHYIEwä5P7x=Y4Ue;D(Fl|V:gO4,MǓ˯2i1=]7g:~Z$`ikZY.4؉FD{wQv428 Ұ^Jc|+Ҩhj4jjdWT#=}k!4Z1/%e0KTn#ѹHt| $ّȱ $ZH'Z[lU$gXE-+k ƽ0 _Dj["-hX>`Al  :̾=7k9^htϲص@ih4:phXwkIs08^B\??sQX>? XrLhIw4'fz9Ί;[ f^{9wJÞt9fE~X `X!6KFCl̦G`05rlt0,<\/d?,9 y! Vl,hȁfF yYra5rl$8,'`$2"Ґ`5dB16v`$R 7~j,z yfOͭY,H6cs`1 |Ȁ y1c5,Xo~Hq C@] Y'q% yyraby`<4`C,a?YC,,X Á֐Y[/,Ӑِ=lY*[ Q}|'1?+;v8JX;[> xC#֨wS(cѻ]EK&e#F1z1A<c`;)&(G a4^2&!#qkDG)"}'=]mm2`hڝѳڝ@2BA\{"C:֜&򾾔l5!:;B &C"Xx㣍'钐yF!Rol+n;KKDGJW@ͪ7U!!@P5BM;εjC GUݯJiL8+1X:`dD<;&puB*,D8ZO,UTeX<&}l^0Cm1Q(&Plڱ!}b]XgݑdQ6H0ֹ`cv')58L΂_٣|rnG8#!4Hňb}}ճ q?I͚G"]4!FOXc(`=C>a,!q?C %#CP]JwZ~D2#X-՗!Ww3c|cz_?7xp@U bFJ퍯g:s=nջLT$7Bzk̮M?G}FTn7ӟ6ӋۻEVDWg'; ^?wt*an;DXY+ח7K t?eEmRڿ?],3gOwEJ5[2ܮ_KnZ`8Ţ84Rl4^gW`śv+B{*n֍ EZ٭ٖ `weM֮j:d'@ne.z e#[_/{Gv'ޖNU,>qOm2/s^BUch9.s^& 풫^7ɤt9*֩T2VW]d6`/zmm()j,H-ăM"Zj4FR/gxbm{4zd- kKW8ȼ51FSEm ?C"d2 M%SAU]gڨukA6E c)R<#Lj E 6Z6 mm8<$%6lyoD+j$>գ T*ALemf~km|b]{ʜK`xx-cX]U4j5aY^KjW"hd޵yAim̻f1.s)0 kOm cwY樴@ '1qȸyaE!l| _MY-WO^n"0N(ͯ'o˪I~w7WEB"k;"ф]Ťϓd6I^iI#r3edX-{IYW˹M q6_{M*_jr9VAt'{snN$fhYQ?"sR: qR<+=LώnWƺ'o/~~(Y5ہq"z.}=?.dyEd[p>m]ߔP$Dk"%Xrruu|wS~x[v> / 2P?.IDuC~z$a`Z*{1=IT/iRo?Liylk.(OBR, R;7#= u iO܄f6Ȭ5O`OjG_ z9h2), >,JN*p+DQS< O3'{8SmNwTpV`Hg+A} O%hW>*Vbt>+V~]s}2{@L*tzPjJ8+" A*R r\ PT SKGrEF Tm!. D; F$ED8M둡N 3)O(˵Ǩ#ph=)Be-5y(\:PiP e\SĨ3[VQQpJ 17T⡘E# H)ATXCn,E#EVf0t Ee A89X8(D|Г%iiJPR@4wRgMPևI>w]=*$bĈbv Srbhe K$w}+2J|*-C3T߅Kh n,qR!S8JCʣTOQFKM 6*"Z#Т!zv:*Z!VL 3'`8 2æʅi<0lСOx}oF3s(-a.Υc"v=V:} 0Ӱ1pS0JJލNzt$o 8 Z_*uS",N 尌Nocv]EYUU.vC,h E#̊c1_V)Uc4 $7Z䈙;0trʼn5y ]J&Fҫ$4aaZ~'><фY7T:gj*Cikikfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/chronometer.svgz000066400000000000000000000505171231434177300270230ustar00rootroot00000000000000uuFchronometer.svgz}koɕw ō-^Cv{1;Z^]xߏˋ..q||WGywˣ߽yÇz˓x!ۋg?[ٿ{۝,,./nOd~6XWWgcggw-_ SI>H7:A>a>,9wd,wz㛁}6-c]_ 1p9_|>F89:VKfss\]^;=[^fy~jPg}|gCH0o5 ܃ RiA3͓9Fv= iFcsd4n볮볾MV{ >jlp4f\mFfhY1G:!; 7RLt@5"iD=臤so'bO{i+WPBͶle;#238}vvENEQ,'dvVĆq8[|2KDb]>v"vobɤ}KdrGQ(6C7*Dk}s!W_.+ ͵]j9e+C^}Wە;Ϗ}w9bvCg쌇[3hg;a;M6; "[ssh`V]mg>"#ް蓮:inNyttaڞa68DƣjOVFP:`)DjHT|*_N/KgoEA |AB$݃tvf1zyr{defNI[!g, Dw=O (BFlg.eL>6=c)Vۇ)XA+raa]jEԀ*k@(.U}h&bw]tήJ[F~[ wg YAﮖyu9xU|`$7R*̕Q5tFd}H >/ZҗaΙ|qa1'!DX<}" IP%sEH}"{j2w`LEFmitүwmMo S O ^D1oQ-8oQb1 hcϵ.oNOoN'Ŭg{yb8+Mҧ7|v?^߾n9SWWgwTy7pyrHd-߼~?[&wdUש˺D@ߜ|#z(^/WĽ;yкZlLeݘI/Z=>Bz 7W!Z1ux>..__с՛;?zO\ڿ%d :ˍ!!gh=S/옂~uSpP6翎 "6utm# |=P*ZMloe8~)X."=ZsY(UTS-H P 5@IHJeFȪL @^c]!9^[(@.@".66#̥+ $oQ=j(u0cu##\r5ʚg,40 ),"auJk,i@Auk8$ A8^DZ{N $+]U! R`-9rt0(CIt>*ߥSw$,1Ai@a@^:XQ+:J-4 Sb!h=XBU6)R9Z|%2whUP"'jޓTLdA\46C$9Vi `@EPKdos^FΉA6%a_ Zof r%*T1¡ ُjǀZ eZDR@Q!B=y$E J)My:Nex8r sH5Exp Q2`m8/aV\\34I"!+h9b.I1`4RJw9klK9y'0d(LCjԫ. fk4Κ815P /|ZU5 "UV թ,`X'!xLB:hˋ*S0;aS;w.Ml5R3caL @X6)mn3b\]qNsEewn A$bKA0 B$oojI[bF, f|+aJ6~aL$1G *AD&W I4#'"j,}[M%` YZ{aVp&pUϔ Ջ \|#Ȼv==#/<ˡ[*w]*^qUH(ϰ̋R.632̾ޠBCZ2IACe#} cBUZ5W\! PTzZ$uBVHpfF3*[,.JˠGE`j'ȵGUd*2h܃_rbQĞ@Tu>6UU}sƦ'Qօ&cLmll?0-jjLkIJRzl/wS0OaXKLи-UN]>ZCsukyz2dFU N敳vqOn'ia*D=@0@C<{aY{I(ĬûM+;zoi9%ֲxDܘ)lXR{j{_1hUl$Q Bvg+8:T#IgFA<Ixeʳ-`ݎj8{pTS 6zQ"0# RxĴBcLlhY䘚8+e u*4 BG.}, VjP د(T!* ղJAl2 @:[!17g=7+6tr,Q\U&0XK1#%6?2H {n K0U}L66Xd^S}fQ^=)-Jڃxj1 J?$㏍xfi3TWfߢקLskۑHҠԄ=ֆO0w6`/lޝY$ؽ3aKU ]i$SÖ6K&*q_CU${ǹ֌Z/4jYz%A"gڱZjI]Y5˲a8mgH9AVV3SG$IP]C/X1;Ƶ@ԩGa+99JK8!NՑQqOl ue |RbHrfO\qLdceCFӠ2dl9pR -F ] .8e{A03 :T>L"J}51 Lvu`a*$LBCI4dک 9iǠvw:MUK!++ ,!u:Zr(H+1+ROF4F1[70FabC: ¹w54`=8xSKX>j/!&203&`{,o%$7v4g,L"if ,-fWϣŪ)W1-/&/L׭e"}p+ X%Sh(tLҹn/#x\~8mRrs~/'LƠCaQ[QOru9C1JJ־mc^6Mrq2OWw1}z..3eRl.y(#ʼ?)W֠*j9Xc$-=P[ηLnz؜5ēYyc^?f_Uf7SؓQFYm7OO”ܜ>%mo^oՃA/''뷽Yd߭+[Wy*?m0D']ƃw3I\;d\? 0vϿ9C1ǯ8 ry<ۯh61rag!Z?A{DZqk5㟏rIlꃍj[JnT+2o~h_MQ=r?rF_75_ 67y?Co~> ~tLlY0 eI^8o3ǙD^]ð] q~\1a|'3/0O+_wm_d?g_SҎ_P˱8, eك*WdMOx{d+fE{7&~S&FE i9IWUX<;|byOgc?o_{Zdhz{Wܳٯ~֝UWn1' ;&)kx Wľ*7SXMߛv:SW)f=}PDaS~%f%8"X^2 Uz'9j)#t9˜J/ar$ /])%14X;`˖ *gfF/-!xbeV:i)XNZViK:)[loM xJOQK8kLjz+no=Md!Y*&N[uS]26x[ҝ+o5{UD\Cun G ފ[STΉ\U.PŖxvbTFkիbaqbӔ*lVvh{=B[F,?v*ivjl2j_$0CWnE_W4Oľ(w9U*1ڄԾW3[U ѸR*JJl~E)*0:茸6zD~/g+]ɮRC^RW1}G=<]W1ﻹWp}=cuy~/UPECfLrT]5zՃ^o?om5l{d{>;.oߗt:mI#qޖ bmgμ?دv~=ּ5۬"VMOD2e6ThJ;;Rmd &A9ˏĈ}xV/;jS6'qw|\Uz'+8_ v&yfq\4 ?#WE%ܬϯ<%OGhL7_nz~ݰu¹% C9_= *M:nqF.ky!g\'aRJ+q&7-`"r¥Tn 8ɺC/Ja,2V#)PjUԡȌ+ti4F<)Ow=)]^+ӋYK\W,U#* mVŚ"#pYIG  *d5KFb@nݔ#]4^V8x"PG),dj͝ZV|Z޷Xv>KSKTFrzV 9z[zASK R* XIGu(n`ilYKZfwnK Xz|w"nܥFO UL iDy8SH|,-whnbV6Z_ԣtv0f))FQ.*Qkhfտch4qa<]A[èMruZFAI͓1=ZҷN䐽7h;?=ߏ2nEijuVJcQ&JĴ HEgtG-R=X4jy)bsd!GȺl1%+ ((GȩJ`2e"ch0f kMLʼ! h,ڤuwEAV=;{ogʖגߞ؛ck"E >QI ;7d.FmenGqnmu"Gī6/7պrJR_ԻM Mf݋܎QjHmk"C28uuXBv: E+3Zi}__/d[A>"K1>^[5(#kӫQ=x0MfOaB/[JnntZ, |~܏܏ :70#s.}CF T9lf?i_k:gDm=(^(}Eϗ58]G(5v-_?-%pCVn |o/zm?n?V˯W7E.BzR> IMS28b-|4M w򧏼p50J0#|W`ҠEHM#iG(TUK(g~%~~,pT!!LR˟OJ:]uf+;|zxB\Z Nb&:]PZԉK(B&bbR}RƸfݗ/ICX ]]6-V;>r3'CН@w?/[3?}}"ZIɶIP{1J`ŕ# QmY¨#KՒI9dW,ti%5tP'pGyZ *hOX6,d9cɨԮE((kG܁Q&v¸;HMM>C\,8@Q9 Lz!EBC+q:#QJ>!eK*B L(,1 lik R-YƔZRL|\}7mX ̑*.C>k/V$?@TScHkQw-$u+b PhGX&kM \P)FudXՐ3&C I‘ hLuI_o4gWR1wؼfdA/>ޓŴ(Vdӝ51jʾX9+9bBDCHmm')%%2a&5!#Fe?b Ex%K)k.e]+ H#|%GZ$ٓbJ&lYXF$Sb#(EYSD$Yn;#].U \J+Q\"kf , ˲+ѬiNR2 n E@* 皰[ }q^Ӏ``fX/bgzȺ v&ٕM⨉͎ ʂEp]ƅJOc֗M/ʥKn6ĩ ⹩F<+XGUjugxֽ= ^g$ 効qPXu^ol|w^/^XSp&z`c\qTg9/\ëL.BĄ~8!2$ "N@kpiBb,:BEV_%, aޅA( % x"`u zD%'bJOȳDI4Dj)hJ_!Z k PٕWQQX!:uhRlH9yCKO}'0itꙭ5vN p'bϕjW,%T eF@UJ4*c+l>!GM)²4IjԬ |aYTaݤo45Wch> NGNWK&~^~_'tJ FJdp:eJ0pܥg=ݠ>S'EW^!‘˻X'kLFeTh|F& *3f Km=* y=IQ frE,<(^Yq /NPqVɠLh{uy&ڹ1,7Бi,(RXTP͹q5 1XHTCѱd>.Tog+c%1,j!ĎQ NV'mgw|imzgT%/Z 텉.kxZQ6.\ױZ4z;z]-h_Eo\28ˈc1T\+Kӹ++QFWԕ‚˾lnڲiԪ 6:۝`uu:Y-bV?EIGHbu `LeG,ٳGȜ$瞇T9evzP X e$\ ˦OEA&&5ɺ!]SRPKׄBEdpMjg0avJ^3EeBƹdQr2A,JMHQ kYCkjN$ ھWA{H-ϕL42e,[-~i~e6{+w,ZSV倷¡ձH䉙f;,+57+ 9F=?~:=)S- lmg2.tFH%&$TlqBw 6T|urDa )I3rlDy(:zKh #AhITܨ| !2J%,M鮵9zH\RQ##Qv-9`mJg#j$5jvDHTc9lYYQsEDIRG,"}~|n2 ,bݨ4s`.I6zyt=L@4?џ;o\O\o\>߁_} ?1|#q("T|U唤ȂZ5MX"ee'Ql=)%gasŨa$MQ115C yr +es喬^IXjTbZ~R0fn6ox^U3$Bd"RA5*.鏐эhKvےy|)݁}@S0Db5tTF R1! 8|UhNߍǁ" v$: sP'sF6ֳLlr^uixj Ti|j!ՎJO*-,U5i:jb*9]]}Ղ;=xI>[UT;Qec"(%*Pv yˠ1 Cªץ! 2[YZϲL"0ZcƌvLH:Z>0C׻e5°& *~)NKۍQ7o7 *PD#ydDv_O1idRuXU vSH2Du@sXE*Xo|M\l0Ue.vQ,Z:03[t+SޥUF)xNBKlȉ*b5%usǿGu&S#A'R^m/M9~>w21 #b\%w#TF :,4Vw(Gnq?ot~ΛԞtL>?HGv>>S>Nl0VԀ; 6}1\"?1";bܚ!q516 "r,lsߣ,$<&lX[}}>ӏՒֈRbӄQv/GY_HDUvZȜuٓެ>-Jh9}+!%Fڙ;|[o%z{MKu5߾ּ͟jH!B*.z:x rYHۜ7w{QM:)2T&׬5z`i6ԺQ%bXJaI//F'*+ Qǃ^.C5{Rr*>$n\ ]}J ˵j>J>GҬBL\}:Wg<+9X _2n0C$dS'Yxᨦ`hbk.;ZLrjf飕:4e`E2 eV6eIZŇViG:-z>o;whD['`ĪWb[9_RxʬnM&\pප;OnՑ=-ch_5 uM[5vˁvbFb-eO{]VwL*fҕI/vG!34ыDE۴JvߧUHL&wR?A?[ϴZTAl~/Wϯ\~zPR;JRSR)ǭEe_& ݄ZFh5yE7.?8X.XȻwRe(},>G9;^w !$*mo %=DSy&,-2_ B*}/$s޺{KBBmp{ۃ7^ޗy'0Ǟ]L+AoeRWUQ _Oko.Knr܈oO(/ ضfa55J!O1^@@*a10쉉THګO ,pRZ Z;cbjTqRBMn *-T"UzsPH[¿~vYA&krY7o"Ujin{M6&KͬsqJ6g06),w[t@=$󯟲̆=a+?MMsCIvG5S?*´tV6iݨgbw<7Tt}-"^~+BjO4r@$АN4324!͏~y}t'Z|\zj^.Aec, iD?"q'qhpڔqRSRcO䆒ߢGUNSyB Z13eaΜ0r̸3AOQ5?qu6XIv:a}:Ie/Z<=;IaMOFzd^s)_ xr2 j`Z/XKĀ\fƚ?6$XM9Bw|Ȼ{"9t䮕Qgnf1t6O-Sij-A@C z(ScʨQ:3d`\("$qC: hevG`9OMe]+:И]3yFXƵgzWozu.jߟ=Ga f-9F\9/*QM1,7AwP>'cأ5}Epﳢ'9cxCM%Aې2x{=i6> nCԳ1&hP&uf>GHZGBVO2$UEu\Y d]vJX./SxDa5`451-^a0E&S[!=o#nf]6G Y̲[&ҷ~& m>>y!sA@iYooA.]Cv~fw1m|3o͞4h.yKA!5 6nm*cx}bȐw4IC}ANWæԑa15A+%& w$*StȻTE0Lkq2dP:iN~m}GHZCmzwrw 6e\u3Nvk9"UScpL7Ơjn$`gI[# d5%l9Y `1}ہkכ~^_5{:dMJn?JͭP3/;F)G 1D:`ΪO?mÜ .< 8F'{.v?2R>Av Ʉ 0w!2[ߵ^6"٦pYZA#s)4V4(3sM@u@2/ LrbZ@NeJy{ ̃M&d ԋk`^Ah@a V ):I*\e!X1RC|rRr).aY9[ <{S XaMl即<5'uvB$'V90M˘5"b|)rrγ$R}`Hp$Үqx6$j@E]絎Ĥ &4V @3Eҡq[Am^`S'`}b6?*l~8Fq]6Qs-S-)mG->QVjۗݢ(J,i,ˣ,iM;V-YJcWZK{Sk"ݿ;﷕SoC{~3X%ի{}b7M%nب.PǺ76C?8,~37|}霛])S\|9r^9߃7 Y5x=^b IzTi*ʱV*CʘD%~Sy^;5Рh}hR 9fW(@"1nh{VY2KuP% (#.6Q i/]~ y{eFJC~挓!*섀  mWCsTCʝ%Wm\ag5'u13묣3ukuq0`G]21f,Ýs#wSnX{pz2QlvTabN"%U$ܞҨ8#hR|j#U`VIPvE8ד U.+VD1 !W>&`ن9Sfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/document-new.svgz000066400000000000000000000075551231434177300271070ustar00rootroot00000000000000\]s8} ]˸Fcg+T2wnfv[([YTIW~v@R<*U[+%6F@rY>[ v(OngUq:yww<[E<WYlv*C"__gwN+<脱λlQ =t}bu{S`JR.巃}v/] pnh1mZ,$_^ƣA6nyP> d(Fzx><$W܀}_=͋?_Xk*jc, 5Xt5:_Zgu7 *AR:Y2ϊo>KŸQVB~J207X̭d"û:NU#d?w匿լ._nͳN1iuJE8l^p6KEV"~g٬v ^,~۪wbtPRQ袎J]nglPv Y.?, Ckʵ BNCO3D}:c^{QF9-Npd>@2; 6N#űt]:Ȓ&uO~7 ;":ONTki.WgrBimWAoϻ%giY#T4&)}R׹'ʁx sZ%Np+5Ӧ#:۴XNb=z}ꁤqwR/Rjcs(f"[I^n"\nE6mGE_ E 7n3,1ZжI!HZ+"JiOP[ @uے*aN++j"/ s'2eoԟkntkZܔmsK@.LY+tw[[>S})8ײ|"rvAO-Sk* lvǢ%ctw1ͦ"ωށ+,E;dAFE(VmaKq ?ÐK&'Ne5K|} 8v=i Y1|dj F܇5(^Q",a:~@C^h¤Q*l(8F;zQ|*bf0XcLxgBɦ@œ KR:( 3ܴxy%Nj@3)G^ԟ(c5y}R&QPEVk\5~ᇵe2_Mz2Fz#9%t_>}¿Dys&+` ̗Nxpf8l5Iɢ5&Hg1"ij\[(tp'Qi7;Z%K5T-mVMmHrLm`6ژijQ$8.|.P]tCYׅ+W}7*DۃU_A-'H cŜ$BaRa p6x<2*_h}Vx*6d6-oTn%7,$"J;[EOK`'ؖ,ܴK:ёsyu?g# +c~c[Ԕfu@iV6Ɨl,mVH+.N'*)S.dS+#2k:h-?^6RpO;:U_˫S6)^O灃u7NE9+ 5ZxUĄה.0t}`C?pYf5VMk.R440mSyc"x<%81KGŏXn$ DND"H,V^9KIӫɠIݲ B)6%] >x^pe=Lm6VWZEBtԈVڱJ+Ry?d͘Q 1$ZXDq$T&E÷YiCP4x 21wb8hIƑ"]k"̹%TM$GBŐ.˦G2GT2~6h.=lac %R)9= haOB{6>m! -O&;+")I(2NmT V4AL԰ςUw7;i:`4?!Z.J4A䚡:3 T_'/#ALx#G˴}(-‰w6AhѢ)^o_n6_mF[;- " {H*Mԑ}vdAĐjgP ~AI0qN&Rq {._D3qQ 6bk̹8[MUZr0K|_ ̂[>3ae*;LK>GYeJRg `[PMPCbR\n|;֩+9LF&iLl-ˋl=≇*_6뗤L(R.q !0)A K60g~dl]a޳H@!7CK8%D|%&IћIrRzRoEU,Mݘ<65|a`ʖ'DpR:ʂ() ^ 0/J3P{8F'ց̀t .SNLYa2\s\G,Y&wuFi&7Ô" `558mO纒]3")K^.rZVd@NB!O@R{ %e|JS)  5CpU]BH2r-E[K#Wgpf%j㵔/2>}j]_}Tm--{~. uR^KEޥ~RƧ/#-K*X=fZa[Xz~UvUA:`po֮Q귕4\SVВW9Z* :$՘V'{ {{z1bm쑛Fﰇ/Yb81d($}P(cRҏ|[,%ҁ6mqzϯ=@%naqk K$ؾa{bkzE uCV.T Yc%{݇-5SژF,ʧnz;YU+)jR zfJ@9tp=@8L1B&a t @o*q y&Lnh@y_M38Nm:Fi;G6>/;@OƎ>G\kXjwlUΧT@M~k#ĥqiARh Ĥq0Q˻Yvg=㭴魂Ctqㄺts)B/ o )X_=,eYZAVwyQw|fYwzsǷuqq|y/EW+ijlf{fvlWT_7p){yCY_\v ]n/,Nz}]}zz)yw$O=|ya>>O^}^]ru߻Wjuë旛?wrO|u~r8zfΟv//7Pڿ{uw^wuw~y ݶ8UL~~U3'dEgg9'R'MOYQ I\xT%eU|H*~$$ gDI"YI[c4O-/C _sd ɳ3Mn*ϰ$Q79H ⶓlU8rS@vί+O=x.%[r^r_~U\a>f3~9u8ZIvL<icoGpxrc{!ICЗ7LJ Ah17_Q24FI#v86D'm+C B~խs"2tu''*W%.m?x<r{*6J ,?OsGary1nj"giS?{RS+IF!:Ɉ@x//n9v~_8HruyQ=0JXëArx ^=DWxt %W@5?Raë[迻z "z؂''_VUX};'X=WzxY=vxbOxLE/RRXNak"R_B‡ЗBOs$LС zIRXХ!*\@bqЁ#C]f%tR \ Bgq;EW:aqvAT@%tcndydVJ©)DBW.]1:-{CU R<z]?)A# Б1:FB/<˺OEaR ,]$8tnKUTolaz%ck"¹)HLС:x;ҫpnGBqCJ] ɑ2]z.sz8jHǡ[tN qv!DdZx¹ /9ԏf^cBMkTsQq='i.WB8tAU85GQrGœpV^St2n:["ɹ^pnzQ stM\©]98t^RfrWN]‘˸E97QM/ǡ[tJ1/g8^K B8t킎DM*M#b2tAɴHtμ+MT"3NZ) tPy:wADUTC )8.Cʞ鍪pnPCu:vA˱H-ЫpDΣ`az]njrP; 4$UT=ҍ]%eUl%*48tNIp-i4е :&ejFz΍tH*K5VYKD^ly%O b-U8x(<k2-*\# C.%W\,YǡctI*{]^B8U87)GB']96Ҩf~1ԌBNI Py΅Chq ERSW]22q VԿE K27Wtn-E8>/ 25oFWܒCq]V=) a$tq hr EDBWeEi+Ut L/B8./jzC_u enn!N<:+kG™_0BP3:;#W\B84 s+TChqG9^HB(QƐ[p=#H;л,F!93ͻU7Q$rq佽tQ4F%8fUR<zMHkM jHǡSgc"D 6*\@M/"EǡcocW#@,-9#ϝȑ@qΏlQ.+́s$tqtYQz.(8đi܋w6vefF¹C(8tZ,3FEW\g ǡktIL/U87P;ezo;]b/P ֈC.]1" FzqǡsggbTZezNӋG<:gSiMU8u"-&MǡefXSKƢ ơ(Ыp^HJ{"[kf‘˸EBJ{ HлfkU7D/qvue*ѫpn ez4꥝ЫpnF ltB'/¹=zΝ]cs  5Щ+* =ѬбkV#1@%t L/`aznnMU8w"P7 4:[R6nY*j#jԔZ֨fZ#1Dn>:{^c2eFB8tyiRUW*]"C/}/ *Z0J)ЋC.萬" Fx(<;SܚGpD* ]x:ux%jY*j%:8tl%7szdaz^*QNeN@9:8t񊈺n@z})i1ԏʊZ¹9ԑfn=^X[ : qvxͥ9Qq䥳+̫p=4{eqlY^©"Bйh)^reU-h{5GxA},vDάIg7ѝDA]zOdl-t{9zWۙ4G cu$[D5 msѽNpp᷊sn.QyӇ(&9ɜ[jP ޮsMt9zVi[tUtw{u1fG '&9%Ecܬ.V(et+n+ɻX ޮsMt9:6љ+\}͡[RF4 aiӁNIN:&hHASrMr97۹1>? "[E95۹ɉ x@ stmӟW̝l6Bg-4D*:ѹmXv[dd'9CɩέzAlͱYD827_%srhVs#WG 6͍enV Msձ9F;Ъ'hNG&Ĝܛ܁N1;Ey8Gf-S˾?Mt96kݠ].&:]\D7ɑԬ6rgvlѱY EW_ ~/y*C=;gt6_?{"!܁f_tA}mcNMrxr}?"[E95I?b?p1D7k[T%sEu\}.nheG*:ѹlϪђ".jdt&b*y"?S,lѱ[m 3U7Gf']/ Jsm%w.&I.:%׈&9a5\2x;\69ޭBW)3xVqnMADD'D'k ]X]nѥYmy4QUtsۥ>fvnѩYmN:?D6Gf5D5^2x:^4|ѡŮ,k5#B}zO꼉:FhAm[ѽnA7~3EEjssks+sMsTi]e-ty4sQ$K[̴ziӗFʱstns >E7љB?._fvlѱ-JR ޮtU7GfC?-ו)&:5=l4sߍ*&9ܢY\T|7F&97^@?VqNnͮhGI4'Q ZD9T_ZWLLDfÃjdv0o5ơ+ ޢmSѽN^G3xxz8'1V.:]%u}ߜ4) ;k1j`^as479_A}1eӶ1T>Z3'#ѣzֵGua(:{XQWDw4w7f dntލ$>6пȤjo袃蚣踏. PB_4-t_WE'ɩE=cI<[9Fa[r~}qyZ|i;Cܛ9c̙LmCJѲ ]E'1ѣNxS]^W :>rC.+xv<n-t2|9o*2i萱Mt!'ON7s.p[:b|厒NS(9j%,Fa[r!]^W =qx] # ݡ$.f6 TOV.DGfQ2.[(:{(R5WLgDgGz\J\[[FIt}tmw1f 阣踏.j FIt}tnw -/5 V<93cͱjT{7{]2[-xPt_Z~9&ʽ ͉ kkhQpхSrɥY4of{>GN"+Xԕ;ZWXũT4)qN#lPy4{X&HT|rIr'&9yA\CAn}nkqHY}C'Ar}rm M,n;Wm'8KS@ʕs@ qG"r8&s➾/NͦH/W^#&a-+' ;99CapV,w$w&l$~ݼ'l^Ma9r$}roeF.+x?Wʃ""_bTwA_W\9'q\}*3+yt=j ސ9L>7ZB97 U7+xTɩ T9"_ONhUaYEp\xBc,l-rШ\>W,'$'ve}'x%_wr9r$}n[Bj\' 9>5qu'r'o!pա~ټ'h$9Kjr | Is䚲O-rL+xwzbUWVdY}nsDj98HOMr-aYD5$7&lueAr}hF6hrIr'f?a>hO >ym:R5W,g$'ﶸMѨW(9$9w[ܪ}6F/+N>GN$$r_G娃*YmW&bɱpՅڱ 9>942a|SR%mrՂZ'kGGWf }n[AתѲ97RkqOWu} )^C+x[LCE~"}X?\)/4ilv_?oO/Jv> ?%Nb}~UkOFPL*FЏnG'#v2SG8t{%]S^%Rnr]cwjF[h%n U7)V_)aV.ePOeqBlu/.v|T谘?}%̠w??Av}4jwq#q;³ӜZ`kUgwLZw;BY}+\%L?0Np냳hɣ vGKW{( N)ע~<ؘeμyB(VZv Xi _(/HpH\fyͽVߝ 6_ɹY ; +Y{^ /+rͱem,P7JK zrXB~ۘn`Zhɉ69ѭ&'$6ܤ&7eMhrY5s6]MnK,&w{l*+XEGr gͶ|YQA^_DOx, C?Ko'Ujpn?CSc&Xu 'Xu2 Rw60]ـm%gfY|Vly"^]d~ɓ3wxijp19Xjk. ӯe[{W~ycJCcg3&O>[5I˜q~{)C5nEpgjxl_!sĮ)xW׀~o|x2NX֮rYQqQtQZׯݛOw~ӏѻ'ɗI?,3Jxۧ5c1E .DzSoS:_?ϯg7~ݳo>~wO8?~xzÛo/߼O?>~/x_9^/Wݟ~ë~1%~7f=ޟ߿WgcWKsK&g4^5&{pЋrN+/*=p^7NotƋp,֠z@6_p^+2z%\D/M ]W6\7pj>r L/r@BmpۃK_=pㅮ݃+W.݃;5{pjE}VezuZ )spgd`Na• .ÃD¶H .c)\ܧmtp&wS6 #ܨX,`dT0eAc¾dTzh0"ܒQr nɨ0c+G%`¾Ih\ChH \AƄvRض-7 .CisNB^]JF7}7*r!JaUM^yLC)ÝdUz"\BYF ҌidU~y XMi#ܒU1|Œ9m\wQ w tn¶sbUk3mVj 7(-SضWB^CrMW2 .kըܠ ADh&m[7:nɪp9mI*-YDn p ᖬ_xc.mi:-Y:LEn pAVdUq GV> +f)n /k fi&WK{p zYj_qIR]ۃ7R̆F7}+,E4nNhSw5fZ{h'Zs 7W\ބWk1fu~M5wZ_igQ:N{pFY2ϰ)<uTj'ϓJ/,Kͥ| \c1Z#[ Ե2Z9MD>\B0_w'^qmWj}afBhJa4pKFO5N-rC^9M]#bϟPNa_(/;=|9}WjmpwreiϺ3l]j ئml!\1TN)&\FQ]pq¶Tkq\cR6 h-e'ܿ N{p[4KaS-9XN]_,;-:ɭm.Bh5*Kn}^=I#BZorQϚ¶}WkΡȤRfRAJ -Rض Ff?a(Spok DRSЪR7p6 Ma!ܒULA0)Ma. lwz =;@Rk cL4)]j%i4#]i B^k #"A%r)*7j=RhO.]{r6zkꚦ!j@.}p=4w d;æ׺ɤ z 5͸)qm8ZxuzAv!3}3n \TX6pK춦kՈךWZ3n {pF9ym H.ʏ C.[`+4Ha:>R[`7}pE" T){rF5Ǵ+:na-S3v2Kg, 7:X} 7mj w+n:;y.!Y&M]2-mh L룝VjwnX|Mu"YcG7]ƆptMeT7j`j3GwIVi2ќ¾97Tp!BN6p&rbYz-F0Zmu pW)]J7eQu"VuB6WEZkHaM7Z+qqSxm#ܨ sP]֨FztS•Zd y^pe-s \ҏθ)Y =p „9m<F9PF6pdUmRv"ZuGQBn fݩWkQf0_N]Z )lۣp1 n p]TkKJ7}Wj aM]D~0P4)%Ã(#ܨN@T~# Fr eW@)U R*Uv0E)UbW[d(m7j׿  pxb¶s0 +޷`k [0kڔKaۦ­8n7Nfg^hh.#ܨU\{6)KTp vyv]d6J\&|6n:X4ᦰn")leg"H%a4馰muB"H ) pVi5'"\UA*g7}Ϯ!܊UT)ʩn c И(JaSN`k~sV"gֳJ`5+߈NXBŊ5 ͤ#R8DQ¶c bɧ4㦰m]K>m,>otK>q>¾5[,Sͨ*sBM)Z jKte)MhRS1p#.9Sxa{p zu!,m`X鮁*mNpX ȥmG.&-V|.%hU)*EŒO!\/^0)lKnԪ`Na_0/Lͻ)wJ 1)1p:܀Lw,!X'7]OFQpuB9},7XRصc"6pN¾`V[aœ*]9C$L/]?p;L ¾`9&8 K]I@R˂i TdA2vL*1'|jS#ܨ.SFr reKTyD4Ha_(+-^`s**]NaW鲓!:=kznov X¾@^7; Xy> +5`w)l edRX̂L*m&ńpxŐ@5)lۮaFQ]zi it 8{RxA{p'•Z碛٧RweVk=cЕ MY`;6]W:;ڥ. >){nTX ^|g^yn \u;J]Mo#qwQn 8r' Hgg 醾 I_b7% Z'b[c*DK{F3~-ZFs4\Dk;bSD.X"+{әP*Xh ZϻA?ҍl"-VC T+pܤmRtS Zӷɋl` z6c+>e=禪 jK88ZmnVW[|Bc[¹n=tCTb6{.UI"[1A= \¹DN+= oKxl-k=JʥJe#CILPlK8wah͠#~-5VlRϡs"\9TIn ǖfzUhYP©emD=*ڇ+>9͞A-LA@7%zTZթD=HΤ^zn0K7ʛ$.RSfDM+.vcK*ܫ)X&++ tS6kMg2#=zϘ&M@pgLu7Er KeOA%MD+=[G*ɾ`7Җ6-=piJ<{MVnvm*X3pzTIh-Ԕhg4!F-\p ZϬin rFށ7_F(K8ɎhtS[5V W±<l;Ner,Dk=g"U"`gJ87{TO)K&fъc+P+|su8pN1RU.؜6O58)˞/%<2=p[#]*n.0o-Wv܃y'n Ǣ ZϜ'*\p zϜ6n 7{%G\+/w߃+שwjJ86"\S7\±ʜpgP%-ܳ,n p6OZ`% EEYPlK8Dc*-mrp_hKwm.,0K8ʱfɸbmTJ8Ub ͦoZpjyKpXy4n{St Z(=z% Kx5mG{_V~@CiPG+Nb%•(%.-۴1c#m%QY±fJ#Z±YLo\p$E4"Ap$CÍ́:ung[¹gnvO܊[¹o(J8UQ"\ZtSL(%k!`j[.ރ7{^0r dp`B=7/plbEҳdE%5k=;ޕ+جz7*U%+UpR׍sWwNaR&tcMF"}EPQ±&Cm-s+`iGů%4%dl~}6#7&>_$`{\#ĕl;qnd6Ku'%%+z!{Ǣ2X=>?VqߥU_ž!.elKD!Aݨx\C!,qpr!xѥ!u>\bwKNݝ+x.L[P-dYC7zO?ѿD_noL|w}cһӾ1y]ߘz{}}{}qUƲ>5K[mmDգ?;޾xǑw۫Mb׺/-%+34~R;]y*o\wȕ.=ɒO?+L7 x7h_H·ؗHc0s3|K= LNuiM·KC\|Kpq/ u>D\Bc]Nui>_Y·t+·mQ}·mn &nϛ>k b<~ Q8o_{9"/%CtvuqS30} P9p) ̧ Wv]sh"9&ӫƩ9mSznl*myX:Dl6Brcl>TG)ְPɳPłjYUѼs='M/Ѻd=;m6\- UF@sAPP tbA=6 $o/l%R+" U(D@&)UB ZA-0װ@7t40ld `\IC[iDI5 U\3G.Ʊ d>+H"H2@- )lxIVIHD:DE)߲~ы=E@I<|rԅl͉P=lB6wǝB6wHQIkr؞ə9{Ps'ԼIk$I9 }qH Ӄ ~G$Ha$Or}S@ 蝝N)zu  'a>):\Vtr}IϺsB %|#/kYaA\w4Y6k*r&ӻ/ȹ׻ l|Dn6|(LJ:yx}>w?ߧ W_WzmH]SI޻wi}lZt%COćm9V-S3jU?2 ҟWۆӒ69 gn>$!&F_=\]_=\=})~͛%%F(;]7s^=Fo^~ۦQ懯Wk@ޯ>}O˗?ߚ 7饗ps{߉CM@Jj=Rhz!۫׫ˤN w׫ϯU?~}{SnIb$eYY5q O.⼑ҟ4=O62Jf >^=SKroMkqn E Z"ֽhA|:p6Zw4 7ms޴̇!FcQMϹƨ_}y( sIBT1Vx@h؁0B/^-B_[4.2f)*k[OfX ᠙ۙ,9 .MF04#֧;F}+fÞ{:g1,eR`#ف_ިie0( #DUh@EtFB"/LjZK t/$^7HSܦxVǴM:H2*!ZV.ҵJڿmsR4~J6VzAWabB .][8j"~mUBqJ6V*d$<t\ԑe[GkvI`"nRJpߠGz~0@F?Re416İ{!ц68CLGb{!& 1!>c 1bě(Zkq1bdݘЏ"N! .7Z@˅w&jx4yB>ѩ. ]Lge]q-_ll`à55Q[Cm 5^6B%D(k H ɇ #DbX6btɁM*~ V9$ȆP=IAT6"Bailofv`@ mtQ|=t<;u%(CLI 3CsEY+ph 29pZw1*(پd]{z5)&\!ԛ-dE,`'b 7q&>@ pa u̓렾I xZdZ_$< pSxI9 \Tc~ִ+k!(1$@CGY.PjN7֡$;׽N^Bռ v[֍T uh`zP$ZizSrCYvTh,L 6O^EfljԨ*45c&U% jSU0$ IMآ&dl. ^la & <=A q%Xq A@!p Be(8P(Q@  QHAƐ kE/DjOѥXիJ7tau_-WxkpѐۥCLt=&/tQ'~;bG.4u䩤tב _^e1w?jjzn{=PU%앎F8A] dgQC8`tJ4Uo@ 1aYБ!TW Hָ:~]0]UqV==e 8..'2\I8@z YP.)bJ$('.i!*I~]te7BQkI{ `i>{oa6bRQ`I!4܀A.4G˫T6튞# 4onyՇ׷Mxaa%=|j*l|i*DFHI޹=t<\ܹfpT|Թ/uɨ`R27ؽV2^HigbyBm/r;o{8V`=] &ia C*`HܐS\hi֐W+FEB#R%Zs@=p'ѴBސ`|:BˢyJd\ KMų WtZq7\.);BN"!$WM+;iT0=r -*vh'}H[?wi|B6ϗe=U<,..7&Z=ޣMXDܦ Q\E-E>v1͡t0S#ߤVbԐL:4J@yܖٓk}-H1:ץ:O7xH DmӸkه-`kmPFBL{pqQ6Z#Kx-7K{ 1@H6XLw)Ѳo(th,}kwZM:*NS+%2|KdBE0Hꯊw/P{ORէ>>:71$u[hz-2@r<.DJh:>|Gq4rZbxoX𰦫Wȁ[]w\"6zg|_XWoyfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/document-save-all.svgz000066400000000000000000003334771231434177300300270ustar00rootroot00000000000000|[oY Z2M~QOVc a;?dI";(*+5%]u4NoV_t"ܾ߉ȓӿ||wqhyyzuv~˿狣rË˫9>>zu\.ώ~=}{9]_''+7˛g?Jdy|9!~:t~ݻ˛U˛?)_*+%^j?mUO{^~Y]G} p}|\ǿ1Z3n>Ż^~Ë~*ܷ ݭJlbP-moUcybvήN^C?y{ny{}u釕eӛϋW7Gon1N,?^]$h?ѳϭ,~Y/..o)]}}/?./#6ww{UpˡͩM7˓_dz0mi-ogŠ{%RUUCiU>=}6Aas/Vu>띝-ot2ޘ(~zfw&+;*ſ8:2ΓCqG_t|}30~R\.zqvÿzzuq<'ufK;Ӫ$nnޏtqM^]W~M3}I߿\~}{ƕlv1t#uG;ﻻGz:H #T,߳¨haaä=S~`$tq #N^ );ڻ/Cv Z2HF4C2*!Q- ib@=hDR")/BV@  WNfؓ{>b{vw2 5{aD8 OR.߳Qt;?avFd;bRl#f6 ˆ aiXK!z3 ̆ {cjӎwb ؋Cن@6o'igYTC+v0.ԥ aTofKsJD>1J~߷ql_7^X.xLa~7uzq,n޷p_={M\K%S$µn˽{A$uGAt(htHJFFqy7KcCihKbU'hI)'pz{9W*]k)q%4oG` !዗I?>ȒVwߖ#1ǫ/8ӯW.օr*./{ze]z^`FTU|^-7=_kƾ.y~ egnXʴQ5|bSw}9\jȶ{a‚xj@@,6h*f eV<͑IDXj>IB~7jJi))dn"ԃ62TkHhrMVJ<[mB-DD, ƊFSvCN ;];'~TkÍ$C7> $ 2f тCښ WJSBH_{Ҍ;mjR>4@נuO=h:{yD"F~M'T'{śz,αtAiu8 Cзf3w?b'C`8u(aqj+TAfwed8&ӺР4VbA$.]k(&Y600:~>ߎGDaxH9J ZE6W+7uY p堄84:YwTq8Q85;ȇ=ENthNhNfc?D@s:?)Nߔ^"-gL nӼ4Ywxz/&!(قؐw:o9a",?ӽS7tD8.DvXDP 2JP;6@qtŦ.<1{%PItjDVP)2%FHvS@-E]YwD180K@J1qv8Y+\IkHkM9L}A N\ F4ݠ~A8l(RQ0b{$ a]zta{A 9dX[NTT OTXPn8l3fs81H7}#hƨ3k&jхPcz;,(c#ƌl!P!(2gG.ƽˇ?0Bfƀ]7V*[U_OTG 8Uվ--Kv ꊒEin(`Idn)z7Fhm=lBv`;dI 228UL ?:D%(JٍMK6)Ӏ(bPD1V}UA=9B5K/ " t]8P mJ3@g nXUɬN8Gog5ͭKŠxpO2 /<*[<)U&&k@O 0&idO , 4S *s+aG- (L|r1vx<)*KbG-pb+zr1-D T,@CeyrY .YI`͗ݥwA6[vi RA܅@Q\]BX])cΖݥftY(:_rl *,Y[\][sW T%wmAFPT`|][9Sg s%w,]& *͖ܵI@<,jnԀ:'W+ JU2[n&y:3FChnO !<g[ ."J盖wj'uZ2[rwiD]:ZΕڼ$NL²f$4b@N0Lf䵑Fu$4WvjSuBMGC l=QxgAs%6{OLyi6x*kW Nij%6YD5=[&dzgb%6i$r,-PlMHAʸ`6+gȀq' ϖݫɉ:4A s^-+ET{Y8ʭsTٲ{5zod\](p&k͖ݫQuT:SrlBFw:ϕMi;Z̕b`P Bl F n.ʑ킍wGsv!jgvYP9Wn&\TX] bh͖۩Ed^%UlZT[ds%w6[y܀J\}έ>6rV4MK䵑ZIt@\NِguWcwq ai د&qHU<+,Ri-Y3vJ&U%ھP6xK.gqϥ| ^̫F( $',fYܫv>#0cWqw6 󙪄Y܋;ڞSiǟ_P#vd+rⱥsvNʨRIꜥK/4 &mvvpg۳|!k{N^W-쳸[k<@ȻWhaŽ{ Nk^WZŽW4R1Kk,uy ̘O,=Rxe2Ş9k`dAثhUW2$o(3=wڝ;1tI=7&_+8eqhqvNJ=;slKqLJ*;DٍS^3BhŰYΫ7^Z;g ,?s`ͫ.YW#Hxd˒LQliٿJ ; FA?D*V;^y iUmh,)̳w<1z]}"K̛U}tGmsY}UM&L=޴dܵݗJ}|I1xV~أJYvMzuI8yvQ{hIX=60xgݹ=64xM)s\=ڌtFŬqdR W?̫FU8T8ɝ4nUiiT U+Zo\Bcgq)"1EGgmy߮|,PYڋ;';_dt`K^՘|CQ˚c%Ri:,?K;V,w5i ?k;nZo(9{ΗZ? wl)Sywnk&p*fT<5g>K @`^u;ic:4}j|3h9k,Վ8,wc:;W\4EK,[44gughFcLHCh;Ck z޸hx; )C{]bS0;;]cj$Y}Uwz7QJ:=ʯn0;2:N-~ȓUgqIatfʡzn8kێsvoѱ|2N+u!{R~wA>0gqw.m(JUc)Ƞ7%әsW%'>5txSqxaj_(ƳwB+gڞd;_Wz\=W#{esnDϫMYgi0 }Ν').Ui;qI=$hQguҳW5zhQT՝͈WMU;ipJ;f3xCһuHG蜾j{d@?P:SNPGhWeo]J-c̎޺{hd23*찴F.*dzvVZ_@2Qwﳸ);[aWqc:@{N9rB*-gqK#L>gΫW/)P<@^qZųP9'w{P /*Ğ|ݬ-g"BWq D8oJ9YܻIm/76pDdZ[*ͥ 1+ zb}Vwlp&hMƍWuG- i^'ꎕdQR˳cCRAڛl*Q(Q۲,+ CiuG",S;-KFxtW^}SG+1v}sMcJk՝+&[F-hsYWKJ# Ґ/G 𲫺;{9.VwwƌhD|iҘ[w}tEw伤UGsԜѬ7K*K-u:D}v8кn+t%e|cJn3k *!gq7jFǛY}EN^d_W u#xTW!I3 i9c)-K;w僅y2uXZm)fTJG]ʸyj.7\=j'@ѭ3_AF;i3X Ai=z4j\}%!\|P[1 @Q`ھ@ C}ܰHGxԀ:gmOiGI:pgY*) vVwڎWl3v2te=s֨e4?tΕQ#.Z]ɝٝ踊;u#zEAd9N]#d72 &n(SFx,)SW["걥s;vҦd\bg.05J*\ڼ-2:uwb/K`Y}C# ăIX;9 w*aLx^kRa!4BiFݹ<ݘS,,5MYWb$Ym/CL<8֙sRbXkY܃K[J&N4,;A z=Sj{pLڼɉ૷ţJҞ+(2Dݺ*ɝSU.e;_ό(s^VU۫v#uIXW,oB,B^zKtd]W,2 nZu^9Q,ՈAu+bD>D2#qu#UγFQQJPcjgqҎ=瘽r"|ꎕJ[m,,5'Z4>PG.hVHBqw,EwS ͆}lizZ˒ibHE^ΫφEK1gi,- 7+wnj /*;WtL6(̴Y۹2j2=T3gmgҠ| Yۉ !,~hAWzŝYTUGuįW-1U7qRQGuJXJ렯>+U:H{w)Aِ7qU.mwx4iΦӍe3-guB]Y7)(uQA4&D^qVβV6 ՝KK$zI4xUw߸kŝa3PM}w.%w[vUɝ0J~2UMW,Jh(nQtKwݴv^v5_0ȫnX.Hg=БqvSJwXQV0*qC <`T)gq:dԾanQwJĄݗ4 CqbNdwI"߄ XWqoi'ȇd` e &γ7vAeƵ*4K ~Yv^IJr捊EagC#S1wc 1UsKTYghmW'wqŴO՘wiahb֚~w+eIq?k;֌:$6}vn`t!C,9s)3YɝYe=X[yT%uvF:ywWԓjхp`2,+ogU]Ѭ#HUݖh`P-n+Spx%*o(9S F&^Q/g^}'/Sth;R)GīoY}HA`hwuw|pS{풥^~Vi7fYU#v>ge*dT=S{Mq$*~V蝛A?BThWu_ aH(_55+Wu%|R3<{.U2x\ ڛy\JߨxgmOCI*WiDe@ c+"Ʉ,+\u?:ڎ{n_Wܹw+5|mp)>znkJ$PUMŚvʝYB:{U) 뻺h=ިTDKi{8{"2ЯTWupBO8{N?) /[ gu陋4EdUv6+YeGyVn|jY;~ Rw\}z=*.ZóC#)CUh` Z^Q(YݹM@=@Ƴ1P|C; _Ӿw꫸Veb*K@|Tix1➺mdE<{һQZ<]WqOΈ"&6gl"9}:_ +n|,nؙ4ZaQTG+F8ƝE"m4n;a>tO^ݷǓIMY;5f^=|2݊:kQS1ǔbΝGbToJҼ,;9 %~b X=V$ `?hWqaHdc5yBxI;{lh(Pj{.1󙪠u'☌~٢T<{.IZ櫖髸gܡ:D^v([h6tR)y RxixMuwlh!M{ Uh>X1gm/[:hȳWë%D=-*\ VYwrF!wB@ 5UWq樓:_ĸ%[ݖ)V 7vbBHFܽ޽ɇZ,͝ n1Қ>΄Mիj,] B}-o9\L]gmbAN H4^p0C74rj=];2~T*(n9xUܱA C3T)5lӽ-^]ݖFVe&:hbnTŢnK@YyPqgޓ4KMa ó0*.('*wy'&Pl/iL˒Nk,ΝtdyCQw,;1 -KY#vNsz!dlgqLxf9K^SU1gq^aUԓv|*]хgnU"u 0 #{Nf3dUsC#35ANYݱʙ%Ec#x++{U܁*f[ujgm! |i&rھ™CY+vFl,qTasZkq(L̳¦YkN:{٘rTqW]}%(~iK:+F*yQ8F%=y(U826#՞􇒰VQKuތd ^>f^Q+^ z:{)w>5s絉ytLF:yCIMbgFӮniÍHytYܭwg^_4;9gq $7*WqB]xОK9F#5|E@Y78꒡Ab/Cޘ;=g]agm !;p6A{bC=SW@+UYc# hW-3=WuQ8@VƳ$(TX=chUsiوOYݳwSy)ǜ=YW)Ick=Q/G(a2Pt+C1vUwNEX< }guwz r=u_bh̛dUkeN%O6,RHwgm3z4^+ dVm' fB4 gm 2Q/)3쫸7vFl-QsV^ANjMIY2QRQ!YV3Wu kQY'v2)3?guFoL*wu^zz2-ϊF#Ty5k>;W.Q<әvv.!gi E=Fל+$Z&d&*\`PzKM^wRR4Yy9d6GH(+.07{J(W꫺npvx=]}TQ¾gYmkUZUʂv~O:[YWu 0L~}w[a@AF8+iqm^5 @%;Nc/Cͯ\ZTg}^gu]%ɇ;R 1N+vns vVHC<+QHq CN-3YW$:oTsb[G~m}\dYk,ɝ0%^Cci bvU;m8ivnN+mT~(1׈>;*ucGJ$qUwpg %gu/ɤ`;˚ Wu/ GYkCQCqd22yV-LCpUʒBguX:SZ|I!{pNiɢcEU{#czВU,Bgq c C,UT[qλ|)_gu 9qUN&e?8ȸ;m2j^DLgŝP퇐p&4I)Gŝ+S -@;WѶ꫸& \,|5:(v Ax: Gu]j2VH]c 5u|ôھ@Eݼ톝W)1Z]gmY.SjmXd-Sħmpv(FVh &`&L!FAEƃh{'w"j^u#ܩ#W+4UcN^TYcyY`=FnWq BTEֶQ{/Yv^>ëś{Nt{=P,$ڤF#y/{rgU3K@,;A -V%#vr|I ɾ;V42e&(]m`U~Vwԕqwo7! @!^cr{6{`l~IxUԃ yVZL5޴P=;^smu K*QޤD⾓2ģIPc,V/)3ƫwtfCkPR]{5V)QM v]}'UJ._ԍZ`}+o\^6Wml9ګigmlZ:k1$rZ>K@fJ<`諸v *aĜ}wRI9NCI̷tO뫺w؃K0ΥiCw婶t(<Gq`!SWjkq;QgMCT|=XJ ݯN[Ć)5}w[8W^V\b:8-a1f!i`}%!C+хDYӊ8:r=W&jY}8L1Wu޹LW&Z9gu Ԥ&ԅg=lӎUIqX+0ƪpX+߹0+ur0hWq'ƄڣKa,QhYJOYs#G"\~mux0KG Y|IF=3 QTciR!ú#vrlCIj͜-U!%h;b"oThȳ;1.>egq/28^S37%0v^fG Tc,tkpkUܷTY58{ Y=(MҤ.]^De\ս3YB˺7%jmͳ7w(z4>KU&d.;U񦤳yYq7BtQ9]gm*dX9k;70ʖPyRsvn`%~9NCƤVq8ΕFjD>`qVw.Ix,8;Um*j2P ;U78r*dСGu*ve=hɣSw"R籅ZywrgYǖՐ:N0<S1gq UH1,˔fU۷8-%i:a}w*UU}#U!i2ywNh=[34/hY}E S{j[= xV=bg\o\^Wu\iH5sV蝷/KUów92PI\=n >FU="S ~ŽA=Tdl'+iYsemL$Mǚj$#v~/Ga;KwgڼRi$+⎕:Zu=8u4⎥ZL5^s #ӣyZ.W*U ;KwS2R/G.QKs޶&5ޱSvFƛdY{)/MzƮikcyNA[򳤑qBɫO,|#,T^e.YgCPhYi]}V2LoRXɸk;Z_Z%uvΎchR;Oo j`YKÎdܹnPD -ߌqWi7څjga7]ѵn: D*Q5jyvSD{P`2ꎥ7ycaO%r/!SvH}Vw3\_-|+[{h4FauVP xսӟa&Wu+Sagu/n>*MJ2yV^`|eҰ{NҴ%X)YF*{R3{0Xս3Zb %8L>|:v hb7.QyY{-.f>gqމ)/:H2mͳsC#bUmvVw r5\Z5"⩝uUwN&Zgu'{)Wuw]ZK uA#+xUwW(cJX8pUw gq 0160iG Q%bQU7:,bQ ; 壞gm_a{ޘK Q~5ѮzM2<{R3ZHSYcI#CO;lr~JXɧkB+>k;V,J!xhagmFLH5X:ҭ.YgmW EcXXY۹Qϫ􉫸[|lלŝsn%f1o0xHq#^YYoBF,(z̫׊F#Ȭ!,5;Ye䨝ŽW4h~E'_Žc'6 YoTf7vZ a/[4UgmڍdXqBfq{G܇R!gU;~2>3㈕yTLHQSW$FmϫNuHj{t7%߭tT=uxEVWiOpW.lUVVF)>|CQGn [ũiuv㓯M[DZfHe7)Qnguy%HGO77Ԏ;v|I9^;YQz5ks5߄xDS W6*Ugmqu4+큥{$uX`džF2e҃v\ʧ)gUs̨c#ɮ'vr1{A+Usv=eI!<;4ʆkWf%ިxT^e8ZʚpsJymu;o總vx+e!*.r)Xσ1>3f{Rq}TvEp-:C70RgDE^IބPsGqNsv"[Ef;_11x0)nS@sUw҄MEQT.a~W($m~Uw_jˬ7*V̳RɞY>PrJ īEUݽv||~9>K[K0Ǒpa;gj21g]G쌄_Yc#J+KngqT 3ߴ{_=0DV,i;ٍ#:>K{9FG -2*퉝*`.n6gmϕq:H{?e}+!Gq'2 JOY;55@i!촘zKJt]ݱtj`ΫyD[ic.ЕQj;RC!4NY۹bQ הqv.%c _+F3 YWBB%EY+vzcߘ s^K JpmdNf!agqЈ~91V{ٰ~:&ھ|35퍝K=]K6ޯ Y`Jy?FhB⬂i:>HaPdTWi߉`0)ڛ>%cPUھR@*3;GO|I_j;1:21;4vBWA{h! g9 xl#FF=pR+AM^R QeJpv[`pQu[meHՌ]ݶvyEfg _XR; %WE_c)1ngm[,fm]8kouvQo D=6,z2IYc"SW!RaW.d,ݔ|ҭ=Vjtx=J^=WR]Y3vFY|c2=k'1@̇'*ɝ3%spS4{~1wq/۩"`x L\Žb'_-jF*+ EaW xVΓFrWu1#Z>8W屴#8qVwNe_L\ K4IvKwЪ|Ra[w`櫔i*.{T >;cixUswND= 2Nnn4GJkF\4jaDu`hvǖ&[YT`ʳwLOWS*eWuyPu ByVYQxՒ=}VDH,p)6L*w|=m⍋VjYgI"_%N1ztAk\ŝQ嫔ŝ+) V^Zœyv*wlgUի6]G]n#(ݪXU+K3QWnFzUԱ{-qި$UKSuv}pm#諴ҋճUs<%ZGYڣvbY`Ҫj{pg4Fo^#UfF FB?k{nX#09}\JJUs> 'wv?&j,\=giYa5$K }2º_ͳWtpUҮ^+t. )Z5V8SoZasZȤ X{鰀WD:,+  gnUgqJlUF4guǂFn)V8ޅs%-b4k(0yUwNgjD?tyf՝^ǖbļv1 Uܹ3o\:޶SG,QEګS뫸FjL]xްZ5텻<HN'fބ`RO, 7.,Yg+PtXsZrތJrIxD]Ӻ4hoT}6z5v:B4 ȳֆ-,^yV0GH Žw2(VZ5s6ۉNgjgq %#rV;1i*M,SZ Yw2\k\mdg3Uq&xwt艳{D Q+gqwnR7%>guYcW=~賺GR#Mӟ7%5:jgu *e#0YcRBeAA:F+F:{h3zj]=kq7&YܓKW&v(MR^@_Žl'c!{箥2LeսjiYek gŝQ͉~3սV4t#Yݱt7jkvlF,&X҈Qn/CciUu xvlX! xP?k;m(p{ 4zQ|UjΕ*&\6oL<̐geJB] PF,2a/(ͳF7*gqԈ&խWqf>46gq省F~iuVIbXFQ_}Vt-9奢>Kk&^4Vgq \W%lUgiT ,GUGW0R)f & sѥ' ]}v:l|,1өF#V2\}tv>wTkvQl&[x}1>km`)噯!i*ƭ L gi#Ggiw۠}m^BȊ쫶ETά7%+ͳW*Y۝;!U}ŢK0qUd=l&O8!>dK@*Ejl iXƫ zV $:!=ʳgh\&軇H!mӞ}{=p󦉰W* [ I,̶0_kUsЯ];e;ecJ{Xb{6ƽUƫW'ZxyZZ$w[qC_2ʀ" cG15 LIOzbzy-3 ֭9D-YpZ )ʸƙ!벡U<MZn`Ȥ_K{mE]v5'hkmykm'Ό<Ӹ!5sU*JcVyd Ѝd9#>vW B64'#VO_`c)L>'(tbeGki=se Jݛy+{dZ4+͍V=bQeKZ]O7%>NT H-m5>pfWf̒Y^fĽ)Кm! ֵ硻l+EEZ{ = {yeiM-dK;:=UMM]S33ҫ6=_y_wB4cy37.[j}upw5a+|1d R;  u*{f`^ϔeʔ8xژΕ5kǑ=ԢcxJ%v}£eM^{D QuGJ3pB޼>tv=٘kCEh=x bʶe7IjL("}-ęC-CJhQ k>1ҦX:^lpq"݆)j0ye91:S4L7$9q R{u$OvT+ {C qZ`ZH™ 2TKyx R^G6uu~&?1k{:# f62Ve{rR=Wxz;T.>teXgJAݖGD*5lŽ{o3eQ_o{S<2/6~⢤[{:U[)iĵg]lZhlͳx<Үa[y3eS-Cp㇖}Q{C؄*:}slQ u3':ɑnͩ+ KN%~$~"=k#"1(n-ny/{ՆTSs%~]hi;R԰JIRi44{-a~xӈ-lFć)5꽘0y!@kA=|eLk;AҺȦw[Cz^H,JG`%qV`N \Xkw)2IAkp"Mkfҥd^wGt(*ZItuOѨ{C;II׉ 1eǑ(Z.X5+| jYA)*^3-ʤ2Mʎ'@% HbR: ^ |T27Vf7^MQ ^ '!=mV:4Cr3^HD K"jXY S1f~-84?2DBBaeu/8TԮ2P̤׽H6c.Z}=.UZkxgj66.\ͪʼ> jO Lz|%5^YξW>[ET St{g{%[{',1'[PjDZCkkg8^߹gF ZXJ,}IK갬&YJSsbЋQÂu]bZ|a-♐3or;^ˇo|;b-r_?뷏_oOͰg<2ğ+y>Zϔ%PNF2B:x(ںneMzjN3kMdW'Ox>u <}^>3L-0Mx'FߦoCf~Moŧ>=Yprjd t9?MbZ^ʁ,|α]|tmiԯO?|Z7VA m -)V./bDM<5&]Gؿo5O~Ed}&Y(i11 \ҩQ./5C!RY=~c3xmB+Sb|X8KACL 56*/;77䥼m2 dij\Uk@o5s>5N?t̐;}`QZ{wtT3]:{r<}7m_[jfEUQ|~~ot-QXg>m}v4sI襩SiύZϏFب3PnT7#Z}g``cQۦtXižm=[ƪI1|X9NƣѣO͜ y;{$K>dUVr336E(,EFso?0a3bŵ,ݝXvPݐ,+iC(~IF5x#8&B~s-O[~}Q'ˏUݗƏ?>pט7;#looŲu^kjŏo?qox G|?}kyMf)hi_Y7-\C2õ}G;kOMP&]vW 7vbWXHZ=2` ;rih_JIQiQd۾k<삤JF  KsC:u zx? )t[ ww,FմX{,𨌤zxߛ8X1dCw Pdmi4d%]06,7ýG;+RfԌU.q z%>f.{ͲgOUCl7>Kau'.jZV3kg NRKG]s/@ju]ˏen^gwtT+1urI @XFk|*hiO?k|ED\1wǑI,&gM/?ԣUQmw?A5g  uhxx:,Ak-.M32ߌu(xxۙF(mNy0)Zc.Zf7= KSG$tJLԾk|.ھz>V1Ҧ,]on[wв xkfwk{mȴ.~*;ɖZfd+Q@9#Y{jBͬk~OŚr7)n|W Ww< kNH ?~ȋi#S:tNk|G,qJJ%+Z;.7ȆvOK|Mm"eB#yUnɒ-O<,[Z]yAҶn6ZZMx܋x'mĻ—_r}F1U; _$Ej{ Zml_uiA|ꛊ$Ԩwg;S Oa(°eʄZ۾KfMSP,q!W%CI<*n wYa.7g&x'nG;Y%n.7SKϽY?7X=ȝw2f2w$+gɔ _}S _i*rtE,VЊܬ~x$ RHm}8^i.M^0ti.8!cR8ڑDG6r~e^)plϼ+G %W0 ~N&FVʽYg*AY]ҥ B$[ulkm+4)jO>+mG^w}߾I}KÑ)5zwINʆZ{8}ģQݕvm4s~Ύn2w;iS2̇ڍͨ)K µ1ΉgI\SzxSgfRPخ~x =U)H>KQk´;<.7ka.0 &Yh<\Yイ - Rz|蛡a[!([5>&1XE6~W&4-9.7g-wOlB'.7x rRkz>&m)M\ |uǚo̪yaNSQҡYĻ HT.J|솁hC"Rel > 5wOȴu]6W)SiwjtVQhk&.feM _xj%Z畋go h+|dž#@ab K[}Ja{ZTK< |C.a]gbxMAb@ch>KaXfg}ZgjB﮻VPMMJu]i;4Sj1s>;cQnX)N]Y;%zt隼+<HrUaL O.-T |.G ܠ*|t5 ^8QS}^BltzKHzqwZ.Uo(§5 G' ohyWx79o\Y ;!^0B$w7xRF%WH2̣ vx_!2B]}!땉;KE !aRծ[#q$uyRiK|<$dvL,Q #Ŵ_tx]cE$g 8o[<*Bg D8oJ9]3Im/gmO#YK7ck|d2eO]kä4Ak+0n g tڌJ sWxm/!$ gK'aKez`]c<1!]v^:ޯS+|ldy< ޼^DZ%>mgiu.Ib$gO.ԣ\R:_[aBSoFYqZAfS׆H( g۫!. Sx32%Eã @%mW*YwX RxMqGߵӰ,]mv%LU"n;;4j*$;w-Y/7*Ek; ê!Vgwt|К&EK_>{ oN)Pg);Vg+HX!xR{Ъw| H&1]si"ZJ]3vNw Ѧv\*iXyIR)=RLQV&XڠQT<$gRhaM8=-e~V@jA$2< |m-eTA֯)뻾wz0ЎΚǑ4\ِ5g{];cyI] )z,a!OxM-0\ZG&$48K|0uti?mޤeCޑFG º*9礲1L>k|(w*H>k|l7ԫUl jW%.]W"\k^$8ިĔ]m%DD3RFj٠(kI ,ƣ Ƴ{$fKi];ٵSx(,F%޹s<Y}vӇ+|TS|ut]wRR aN%>9oZ,ZQw$#DqWZ J,4sLڛhV]3vJ]ТSʼ+|bbxQ!B2f|K aj$.4,W-mÇ񃝗xkytqo55~3eW#ᇉ%oRʑsVT[:(§nz6]s%aFXF6"*[5/Gҍ~ٹԦoF mmd-pߌ 8jgؙ*8,agePu]KA-#,n|hiUHAW*ԉHbf3oJX3gw4NN+T]$\뱥€ RqU b,JGB$o K|l4&zP X%>Nt1E%>D*kP?L|n{?tiY3v}B)R(r^10DATM%>gY)@ HM4*} iJ+,Xi5vxDBL2 T}Mʠ,e; z2^w$ټa SL+UKjY;caČ~ ˒]Ṵ4Y!Y!xb9M%K@=h% ɲ>< H*^j=uW&naS&U3߱{D%WD 驉W*N7wӚ‰t%r8kT>א؉eB 0leVUYw2B3Ce \`:K|,#^[wϥtxhw 9gRݬ'v^?t%>Ԁ8yv%>WHrK@yxl&x9b 5+$e:~x`gۋ#9vxpTCH+." JIX qduH< |mxJ+^Dp_ %z$+qZk^O~'Ć/S+.\Pa$6yw@} 1І"πol0}By(Iy-7אl< Nbe07Tf];x5P`?3bjDK;y R*xPayz5~L qzΣKs iLZxE*?1䛑hc]at#r<\0-\꣰ΙW&Is-FkS˳spIexR[*hx⍶Vc9-T'vUzLIX6>ISF"*p\[|cX]a;ώ~Rp?k4gWIVdqQ]RZ<]w`d&<,Ýrt*Vf5HX2 5:jsW*p];$m4N-|#]Woj7O&59gof4InE;N(SūƷ1*7%i^yIn(k]J-D ,; )l{ F3oy7#iaw Eg,!fz>SԠss/[wfV|>}x)jCew FkH];a-~ag߉n1+Ggx]#vǨxbg%>6H=h;am|Ab \:sȻ§ë%D=-,KQ7.E'v3 L= wމAdT%>~㖸K<2-=S6wGD <{W%IiC -PvxL7ޘhiM5Yzgp`!Tj]+v"3畋kT1 W/9{5+|qgl&ޘeLARfFuxƎxb}܆iN`g Z%ffw -SG?+$Qr2=6@ce-.;aIxR9Kp/[uO[j筲zCQRM㙪X]%7ƳwA~,A.\Hvp0bg`vIf>4&YlwN |i&r ™C]vo,qTasW\IBc 8K|n&Ya.4 qWh%>SBS7.į7%Yޏ#mI]rHRae$JǖYARpZelyxl c=X3eK}ɇC7qZiW&m]k)pW%]k$kJx6Aij5=eTwJjzip+ &K{ 1Sj5~'Gz>R,}-G];ϼړP ?k,uuތd ?sW IFr,;ym`%~6Dґ JjR~*L;+ W.8Lbjo14cd]m$ 뇒̻[1 o)N-3]W$:oTsb[Pڤ-,ɲ֌]wÔz +;vl%>llc]wT~(1׈K|l ƔH;p{]n]qNew^XwnHI( 3;T}@>w "D Ǒ]㳗}0m)NWY;s&!_h%[?T=KBagd,ONn^~WxuUJV]ቝ{`j>@`gHb>UM|wI1RG1yx[ o0z_UM7H*2\G, k#j݈ě`Yj^Y6o4KZ,f+"D#.;[avx )TLUXkmJjr5޸#4ZiƻVw%K-"yIE ^8Lcg,W-RD7@$be\8L|N"0 I&#_Dz5>6HJGVJF5 '5ܩNz񹔹 jizv%>cmSSXfg%&%rp$Mwϵ~Iɞ1% CIRlR]aM v%~'UJlZ`%R+o\^6g9h ·tcH„̔x g/!UÈ93.q^J%;.; %93i}5D3{p ]{|DzXR%~VDJJS]gRw 2%8oBwy=%~VD*CJMv&+'I)N3+ϕu;5z>N!%<1$ ij7hxE=(YɝhM+L +#){eN5u8L1Ww>hz29kIjRyY]cxUa\%mW#]měS.nG(V}xŘP{t)L%6H- {Ci k/VăK5cFæ_v5ޗFœk\DKRmK| 1\6>l'0ˑ]#vMfxH %KiB7*j4]wh]|, " 28SD37%0g\ k]s$R*֘oE7!j:qdY=(Mcipf\2ؙ3! i㱲@)MZ[cMJ`gIz(>L|N``D),s%҄z P+|-yk(x]wj x2,6DʖPyRsVIKԃ+sonpj%~%!)Ո| TTL1@͝ɴzC2aCT {:;ge=hɻvR籅ZyY!ɥ=(,Ýax>d1/i;ylдyi5%~zL:+VtCU=4wRjfCfw'A[Tćn*$^Q&\5;5n%B64B V>h&g2,Y1hYCWH0W-YC x9a3Y7.pIC,ˑj񆝛/KUû[4}dz^8K-}h15.񾔹jPv .KE N˖Iz,"RJjNAf%WVI-dnIҴܹةfkJI?k|1~P|9 %>bgLW*d]c%NV].NG/ݚ ^k%>2^L]sR z>cgcJF)>ΕxIV7.5ιK|r' 7!Lj&ӜFƛd]n&=]cgIBmE%ӣǖ$.X"߸@Y˖BIYvZ*mGD.ARX Ĭ _+QB&7)ddZ%uWq)jg n0q=wo,5r;Rv܆8M8{oxD -ߌqwyk}&v[>9nFCKh]ާwAËo(]Swy˫!r;mw 򄞱3Nj] }:elyxBP&銺 <+aYSm A%]S7D v*_$ħ\2aڥ=Y8K|.<ި(\sʝCP YVH*הр]m$##9óv~WL+ARX85ƥ0;k^"\fXnwZXfw,M꧈.ZcgdƇX]}xpG2Rۧ9)Y#6I휗#pvFjr mq'RQ/[ɳ I#h 6ZwOIiŷ]3vy;,tyu)Sgo?&%Yk|lZ0 2iXV5Wm CJzX!I}_P3/aRDLU,u4]I(r#6UAM,X%2_+M%^Ŭ.X)𲬻J% X!ּK|mQp^Q+$Hyvi;k|/-xH:k|cW-Ew/ut=R#;KˤzIAIў+xWGSφI2o\8іgޙ%=yNef]iSf|=8K;;6~xܢi$R' 5%(vlxrAr^h)C]Ej6Hr{YR%>WH#a90L17];Nxy\ڮf[FCm|kT%KUjcrF̂K<6DZ"M 1!+}A=GJ˃^1)DYwf0s=wo|J˗!n]g$UnN`]r8xH U%>u53ُ!cCPNH˻c$mBGU5+$QoB];m$JG)Yvr{beVKNprD#}Woa/[XMW Bva;l{%aPx@4EA [sϺ$a.T4uYszL?PVw/l358be޼k|-5!|=}Z)ѶKJ<߶SΫt{]2 + %Qq^(%=+^QU]v~P{ra+3R;PųHƖrqjZ~b&d];SwڹdMJk]genc qx/]ʶgHZݢOh)=ޘ _8(N5g/1&#uU٩+G*—-uYXz`?@aYgՆq~ A8lm-c]o\&=hwl?xX%WJ860ҚK΃!9=;vxٯLS3gV%@.DR6_S2w9fNፊwLYcVT,aKGH.Q;)m@oFgI2ޯCuyғ$^h+wI MD, &b x%+w&B,ay%$Yyxq*絉Oە|j _@3'_( 9g ɥ`=*8 |6gF>XF]k'#Ռ;Gp-:HJQ󬗐Ȼ I&1J{Bq%k;:;?VчYIv"(ИO,-T]4?+$@重_ npiM2gھ̊|b5~Ju,(9qwodK AY܍kNpћBO۵Aq$?k|sĜuwoe3XKDicI­.&pwsۂH֔~p v%f#rDww>HEFc' ģ]}e-aw nd<+NBa;w55@i!S9/)ѡs^pߓh7-pL&>f'%)D [q'R הqW\ Kأ?+|Ԓ14DKw_mD0^wh1%K#RV%c8LІ#1qW8yWxN/ZxDgύ) n$;KSR(]P3wϭ))*!e8K|N}BaTw-=AL>&0wG,3M#d-,&Qf5#yx,Hjc6OW-9]uxndAT1wg\52s)+XYY;WZt2кkvO5l'|8e J_؉7.I iMK%f'9l\ؚ>w `f)1Zv%+ !K-Vz|N+ D6+ tJ XyX4zӒ `7:f$,; -^ʻ,Nvtah]5+3H j,]{oTuO )θ[@Cl{fOե[R~ <6<*^-oLأ @ްFK&^͸ NrF IRtGND]}$RԪ+!~xN1ބP{-U "^S ]}vDv>lg&:BiRwvP t2t` D][$GbxX!d:_T._|K!Jw_ mPT%܀JgCɰ<_*>6@Ѩk|.bȴA6>WV[%P}xN7hjļ6xf52#l;{gix%+"Q:e01~xpb9/C=*_$ -FL6g Hi_[lIx?D@t]u3.; .i4 Acg'w>Ϟy*Y}xSۉS/-YMc'R_ , >p#ĩH2R,j1y\"n/CXwϥ9Y7)ew 4$#R& 9WAZ;[J@?@5p %Y] haVywۥ@лcim_V^Aͻ׆HE T.3jwkZjmהr]kiKR:{Cw2𨢘h?k|ڍpLUv^Zp{92nK|o&H<@{nKcP~(ix +"sK1PK,UI]PUiwikKDʅVu_|D['VÝ~嚘xec~xZЀ%ӜsC$Og)6> <|Y/[ s#kJWbp˒nDU]7@jLd5yWXIQ1( |NX(^R<{pg G6]s>oR< *B=e>7 N`ÈvG]s$PJR%QwϥM1 evWxTHF<" 96 9sWx`J$R0vVx"A`B+<8:U-p_Kt ; VbCدCFa׆G8AϾ |T櫖bYk@X=+ Xiԫ c'vцY* 5ǐF]ỗ5oBTIb5ǒ Yg$h` 0ewG$h4]4:p?0V,Kw^L=T 1wzz HeKlQ+gjYEIzW@ q37#j6]w9NxCHXEY}$LFD+|N#(9|1a#v1|TqRHu-]cţFw>X=6<+n>{+zN]WzDb=&cf Bœ>ZAsC$㱤;<6HJx{3l`kyx,%RJypx4'Mqٚ.R$0c<_|H _B:g%@uaO_~޹S&Q;qL1ӹ{H*abciv4 Dr5`Ea}V^1&_x(59zU]g(a;Y'v, j$@ӹK`gG:T"0B҈x):Kp']KL*>wZ$oLFwg Tevxbd:8uxֺ}TtsŤweq_мX/W8¿@1GPHwu*FPrKYYBT7J|5YzEE8WIƠᑺWWbT 28UPnI`$ V@[F9a FM($ڄb0L%RF/ 9 B[JcLR+)rPP/F"P5!<6hq O)oAGf$y:J48vK\ا _rpw2l􂬛p QP([upg"#op< *c/D e0a 倄_M^uH111KjL1юklQN1㵶zLwHS/FYU-mgD07 U61(c NX*exm>C~jmz*!X#]4 ̅;8ݶy3M"wJ/o`+5t"> -&!7~)>69 CK c?h^0cE'lNE|\j+⓶0S4G,eXzXy[PR`f%`T[O&Og*6a!r_ͷ*}0 /3-i2GYkEG `*_x"!XwSo%Qg*v=I* xF!W!DPBha 7!$4 OoD|KcHࠢ]r?FbHN6Hn'q;<g±_~x(ʏa:鏧 n?*6 z @M39:S?Q7.xxn ͐G˽ɧ?C^r`IQo?]_嫟~x+(WWv Oso?]^x?JooF~{ke^{r d7lc]krv$[Ŀ,ȸ3'3I5Vof)ؕŋ /2'̮pcsD{|{,ie-yˇWGn}mi$~E_>=Sw^Ule׎WkE}ޢB^(JKf/j"\)mqB!_~>&uH r@R/. :ڈR+VAP!M|)'5 J-en=%`dB<֖LzjV}iea!WY^Mh f/IhbIĐ!F\OW2Oar,82q!cR{\sg C8hqAO'S udӐf̃5D6St-^˼ 4^wDbi"M99FJNIl/߿{e< 6 ecZ,~Ÿe|V kRSB>ʙ-Ğ,t0}#XhE5j2" !8KR&&P4[0D86'ɡUd4( ʖp8D7=ExIb%F'H v` ,Rm^ڦ-ٴ#P+IugZ6OKT G%R-|x8 a!4=Zo.^nu)6{LpDBi#n#Ck"(l~J M %mTʔ7Nz>zĦ.:+jʉlpc&gڱ8{ղ!ZRM"gx:RgyL9##1!z DŽZ1fzl\ [qVԎmGQNWzĵqǀZgzxz}cq ݻYL vGahz:a,nJ gQRYw,dRch$=kM KkF9Պ9`4XQF${64>`a7bjRS2zNJ /!rq9Y`Ǭ4:)zZ`H֣H#"_J|4-[N3va`­S$My,/BBBpqQ[JIlu+ubkSH^XnMv5f-%f3U*1 Tȵa@J3-gj`$ *R3 -i8pD>bV6nb:ePC\.nzDmzGie5U*ksS5SAeڛV7vMM2KaU#%NmnTf-i  uް(b\`%]uPJn˨Ov:٣_OO|3A Qc>JUK0z[6{P_OQ Ci9Xz:D lu Lvgtlڣ)-ZRޓCb!Ӷy'=` Kx-oE=Y7Er'OWhג c*Er~ɮ%2TT:]KNl& u%LFSQ-K|E>2dgh@uy336iXrf0ןE<2#;f1R7CD1N>mZ-:'z:^Dmu4B-N:z/@L!XZR#SgLvD$k#z=C?ٛ;G㤀d %XKj`Y7"q6HuPl؃ڗFb)<)<):%ZKNH!OH I^E U9/ٟkĸ*(jO4m4H~ X ͞u].7]c95]c]l] 6{l5WV{'g>_}SmnO}Zp+`M B!} bA: `2t :ߍVu;t\ʰ2S罗Q~'=nZ"kJ@s4/)EPh+y>[oS(Uv(@\[R=(KbDnmf 2d$T#xݒl/2"1Y;tꋂʨ1{=b}6A͇DPT"bD|fQ9Rog-v$;(q"l500p3Lkle ,!+*4z%zOJ~Qt/Uٞζ/JK'f{4_qe^Rzb E#^ #?TAJDBκTGyWfD~Lu9Q|_'{>f%-^ATRi'teTR;Y ٙ8]^.J($Wofq΀; bfb{x%4SQjqAl*1fX^|)LLW3L%o}WaRp ~ɓZsҬȟ>H=qwcm\f}=1P,ca[H]>J贈YyO2I.b[7? JʪIrm={G䢕d*WGy>1Ifaqø9UyK+U 2r["|=sѷ$u)Xtm:ioyL 5fGQqs>+GGq/rZrp5ܗ[gh^P*Y|,jR3X}M`bhl-˛+aBurG}s2j-78X_+IB{u!0-k?y0\1+]|3$Z˪ogzY'Y{碕4P;ZGyo^elR5t86ڑ4FRpoXzL퀙X\UOMG3̯F^ZPx\T5l'~=1?ƱRFQdSX~^Md Q\r>ĚQ1R#᳍$rK-Jr~( UB8um>}\{V*ъ<Ui ?.a-<2A_ŒՋBU0}ʛbI\/d*n,${?Zay=]Ƭ0PI/S(r<0CaB̖0}Gc+J-']2ڠmm}zzV2y#cm}dȞX0^4RVl -כys m\]v"xh}\҇KXh}ze+ir"]8}O v\}uGŒ%DzvHU;}=Ǽ0Jgt8޻oPDG '?2SZBtгZQ)pS tY[O~06S٩떜ZYPe_CȁF|O-ƤJ/"|yr=k͇RJvF~7:>&(<-0[Z(z7BPjk~HjJl{~S,*׋%bA)1XO=惍ʁXLXptMDNo^ɣގ\7&]7Iiv{Gq^,sA+EгVX)d(b3m${K-3HU{F`p-Mz Ƭ& i[6$"ZaFެj(-a[Zy&׋e,jG}Rb)W|k=.iPF=z;/DLp1n5LxozE%,xZ^׉ڝ}=y+E9Ϫŝ:-˿c$=3fK-5);Kgo?>|+ʖ k J QJ^-ca;f,G/,ǽi.DO?%X:0p ~ɣq^{s^Y06jOzטA?fX75 VA0dTQ J΅IĒi%~I;SggýjSi;`p_;; +=緐a19DžySXrOa2{'Ɗ2f;HpqaB`֙mdQO~QsVu=Pu0f*Lex(8a-{U:\¶p7q\_u<1VXϖ0-2x~ 9C>³}mo?v#u\m=;VRV}JLOUlIQzטNVlI{q5\> m$kjjςBL1o|!+-[. ws?b&xVa|zy6f%AT8DVPT%_=un^z]UN5@N*]ɒB4m%WS)KWG?:j MǘoLi +~)ns#$v[Ryz=17`(Ywv4cI5dx{W{T,qXer5tIFU Ӻ_1/]u4!ӆi~&vҚšpxelrTV}9Y'ީ+u k{Gqo^d,`%4^/0!y؞Zꕹ0&5 Z lMŠClIbVAWԧKvޯ罎]5& Ri3L#ɍQz`X/~h1?*X*T{'q=mw!t.,RMQ5HQWKU SIqX-LaEA)$Ē\Q{΅AkM1?_AZBsd{R' ,f+ۖT}z̥>gJjVяj=ڗ)2ж5~Zau=CƬJ_qL4; :CzXer܁yaB"Ӡe]d}j ` Aa' p¬{LKrHU#.L 5,xo}6oV#ARsZ% X(vT0E:i2.yN͢񱈖Zn#kGRƲvB-ۘI4TN}$B |dmޙ_ uf^*cV }5eqV**/ p"{$z\r~sŞ0\T. ^ 2 {yr=sqO"k;.֚`- >Oc̊VX"*|=g=\.R ?zoN%?-pfS#4 װ-=4ycf~hazGppsi϶zdg"F,Qam%үGQ3dMϹ$.F{G?p`B-I2*)zO_zdK}zܛm j:\jG+(Ů FÊ,,z ,6?H |(M${GR66r-엣a"c~3ib #.ñM^ $&yaʓcISK9)q9vx}d;d#){Gy^wLXzJ\KzI&O G9ԂH&\cm% a_0 %,HS IU:[D(z\N">NKu=gf#D%f;IaM\ e)~1G?DY4 ǰ Sg nɗ_{8?  cVIv{!׫e,nǛDuݒv3Qi6R%x%:?3+fkm>}\{3MȳkadC≯v͖0-<2_bK8Ίa@f{O{T-qZ\ƶ$*BrIlW/z̏98V~AjO>; b1/};/YAj(RWJ/+-h5RȳZQ2Z{S;ͶG|y=1E"D(8p:;_#>'| +25æ°|u=1fS[,c;dbIR.azu=CƆ’K}͵wf>$dasF#G׋W"|iG/1ʫ*_aF2\öx۸}NyBQ񙸤Vڱ<؅Ҥ}?Ղ I0f_MΒ%"6 ,ą)yCjan>]vx$}͹I߱I yTjX&f^,ʛWłi&Ap\ X=ދ2FZ&3T~F,y'NLHD[|q,}V|`|)!V pl#{GyvZFvUxMJm%eO-x%.0N ^ |s~TT.ѧ/K"rI:\rG+(ͮ\N, "*b)jQ&{ãj"sy;h%NEf]{;M׏Wk1$r CK]|]1;g2o+2?ZgHݣ?J{jc+FJZV<50X@%Z|T쩥_ %M2\Ķx7yycv W.^+UrXl 3ʣ7k$Y%"dX[6{j ^-c;䌬ezz\(WYRq$:5Hb ^^{`l ՚RrXǴֳ}$x_=& aYO᪹nm*sS;L:e1[b &z0#LW\ .{ ġK +OJ?cL]tE饧yƗÜ{=7UKޮUo[.%Ϲ 3$I:0i#pGNs?9glKee-Q]s]@"7sxpo&}X%ʀjQj,dV U|~D\>S%cI.b[7/2RaױPVVۘD?FpKͰ-<{mcr.E%ΚaNpk[$8rxϻp/XT= Hf,M6;/zE,í.ӏ#F*í[W<4iR_IudܵfH=룴7^,cpɊ3/э@"`٤ 3caA)ca&[7qo^$) mwf9{!n:a`-ǽO$z4 *\F`=G>^-pZpYZ/>fRweTjmϱFװ-=8y ci]A-gEh:aѳm$h>=0Hq4j]gٷqǤ12<J#FX$A92>JJt ۂ} 17)։0S&YGi_}XBvaՅYY -k=޷c}SJ-c@9OtLRWtaeA?([|q}VƼ *[ރ9j%\u}$el#[w~vZbv`0ȳd]?:ôf;ɒ=֯a[i3vx$}ap=>6 cak:yupȣ^+=%j-Ӱ h(g6h/xT,yX#>>G0qߣ %"􆷰VS!kU|]13E]ƶfxI!pr[BlhQ70&D3gRL,$V2;Ua=<_ԚnHvSy-ۛ7C[!^L%%=[D(zX2bdO!FI`$MxoZ\WK`c1eC7̯Ena:\$[w<2acf&Iᆔ}sh}qyv{Ւc3AQB8ZB*lKp1>>$nK!` [Zy!׋%dž*dqtOHpd5!8c=އ=ܮOLȺ#K+,Mbǡ/ٵ/q+{l -G?6N^*S^qPIj} ܯ#Lr+A z#T X߽3d~ga3p>=dl /hpiv E|aa3 | u֩E [7_c~>Db 3;{#ע`#zu=CH%6Dw^W.b dF2p_ZzL&秳8F yc~~8yiZqLUؙa[o{m>'M JIz^/!R#s(ﻯW ̰$4K%-gJ,T**2I_ owȇ5l'y5fWbA+5=Ωg XٖRބ=X֎5zixXCkx,h/ZĮWXڎbUsCr={q];RikgBSz O>ʘB^G+`-J1FQޫ]<#q^X+Uf|!g0gS+Pڑ^MwX uFqzI2IKd@1+bVQޛ]/NQ쥇䂊B":gKo>8$m˄8˼ci%gH}<2I([٥Hm$Ԓ\;Jv>xo>=|j/~bk_&JԽf %Gi_sQ;Emֱ62O&L Jl=ڗ=ܮ1+I`gb?:au=cצrE/$fWNXRqZ\f+XlɗqRQ5aǓtE?* 2EQO#5'Fq/!|x(mO-֔*<0lI_3*~",C8_k%7&}eQ-Íb)G)0W$kZz̥1KMLK %,~q`q lbOzط NjJ鎏˖&X/^z`l=* Y3tn~-3F`ovLM˘$熋Rj -<{뵂"%fG%}z=,^g֞ M]/4z˜ԒaΪG:[d O sHNSpg +s^N*Fd(ݮW\ʎ#Őj)*# 9EOv1(pL(WbV k%^aB–vJH-;!b<:{{g %D}LkI>P>\Lc8+2g mo>g7U@mͧ`-=5] 9eVQwV8/H ԯr6G׫e7'~̐ fcTkjeH͞)3@.t ~92f1q/X4 =Jɥm#G|y=큱FI;t#:'Jt![bgHgQ2N.a[7a_>ƌ| rfe\>)eZʁ Gi_}X06*@8i߄fGg6}G7vXzr5Dqc3T•ˏbZuLUKY3{ͱ뵂EݱLc(i-'Id^,cS`2΍T9>bcxNXɞZUԚQEvx$}yn_+Q!r:k%P: X(ER1#LI+6N-w/Ny̶G{jco)ELIǛE)|'.X}vq?< /֏zm_ɧZAHuhk=rj ̶{Gy>xm{gUKRFGf`쉥„J*cFa5l&ͮ`sn~Q V">⨜m~l QX i]$J}M\/3Œ3 )z˘NfV{!?@|жWl-ؿ~=u7#5Ѹ ~:HtLe=\PJ%5$JΊEю A6[Z=bEW,l6m xf#i:,V0L׏@=F̖0ÖV}bzkIl[|b):GU nW/7 2FX\{ O2aţ2wa9|T_̷p8zքp=řDKRQ5ˍ1D3BOld9F3P81[שag}n*UG5(5셅s2We fXl~_ KZ78},|qGp ÎVQOŒJBkV )==mhEEQm$s]׋%FX!9* 1;ߍ͖tnK/Cc] B*l'_Ƹ5g3Y(%B]p ҏsa=Q׋e,b%lÛբ$2cΣkk~&/I"k5\vx$}$Z]K >| flj>pvdۖV}3\NPL90mG*CMfțj^-PZ &VXǜYwuEVK3+ºgk/XpVb,'I}WUkl=룸q-H @k**8=m>5%\F;bSK2&L.``"V{}z;|WsYH|\LWڑ={뵂>K*y1t B9]/*٣ţb"cQ;eD q/cv~FұTu)rX`jt-ܻ<2v^*c^~uz!Ck+m) M&RhޯL/d ɾ̚#5Rb}`]f.El&z똙Mn%LYyoRVLsx*L(zXND]b]/ J aZI^+sI;NppO,E+AeoS0`g GL5[|O>z\h>?P'E\^EUY6DQܗ\sŒD2kW$#[jWb 6oup -כyc^'z#=wJJ@V-<2F a Z?|5 OTUKܮ$p/g4z瘛-i?[T(4IPp -7|CJMFk[?sBcl#{ǣ/.jrW]B([T΂cQpezve{bg#cS%ְ==zט_AUay7v"^(W laC+7q-cQ:R RG^iVͶE{p=\Z#q, r={72e`20,(% {'r=!Aavlk_T r,Q Xʎ%Re,q<5]?f%#-<*zF6\Ķxo^o} w,ɠ(X f ё0-aͶGy^,s1;J3q}PdV =ܛ)2$p G+̮̅yH&qWG|}^O{"-T5)=~\6cO,d淑Ww&dp ۢ}I>gqYjҏҜ`![Zyu=#UX35lq`B,Cf}M\|PvB A?.293LJ55{aL%,x۸}Y% ǯIi[w l{Gi^,5 ꈔ 1Íþ)}dbK,g#U#B6Lsºp7qq_sFLs 5Nn-a[Zy,׋e,4s(j#kJ)md>Qbi W(NX0_1'ΌgTNt1ik}3tE\NXBUA{X;k=ˣy&*Y~Z-%HHv=Iu za &zco#O)p&ɂ)p%a^ת 裸qq@70<}.)|cq].^Qz)띔jCfrRc%L=0>w(&& -ܛ=2i/f~:Zܧq˸]mv{{2ciwN}dHԲ_d*=;-!m!-REl &z\&WZ0u1ElSےʣw\vq9!y|,Dc8,c=܇2I%PŒ?zޛհ"Վ0G) HlQO>K% XPrjPa93zx2FQܧ] 6 ǏZ]gNI~,9+l'鲧xfG->nxTl-1wXV2i;V V;RGq_vV0Rr(%TVД\jqdQj|VX1f 쏼sɍ ş_,w#YHIL5! 5CY+,‘u^czշx_xi\zVn&[z.<ezJ2G*b(z\p~;wʩv8\_j6셅H\W$-[M1;߂ZA[D㮥sΖĖV}_ ' 5e~X,F&) 2lMzP.~熁~E+%r͹Xg=eb5vy_Sv2:sm- ou,4?l>p~b 'g"dmaR or8E `Xoouqz9Zg)ǿG{ BgyoiQ K`JUOD0HȡTrK {a{GwE16Wd^fk4UH?$LJ\V8K}lCj 寧|+ʘ/I YlhJ4d=룼y&H[pPGA)"gY"1{IR|e2 ,qX}a&zc.SdW[J>RNn;f:\zG*(z Ɩ$3bYs=>v^Ǎ:gHCRcCaF 7,[a~=ew0c[$-O^hA^%l Oz\rW >XCDc >Žj.ҩ˒ kN--fmZ`Fn0 .b[70VŒJJC2Yr= ݳtK*>zE협z. ,a%gJ@j1Ho%zzQz,Cazay=cCaLbٲ,Hvt>U_B~o?ɷqZsU)V"&`l{Gi_zVƒv$IQZMg o'm${jy%8X5L}1+IbriާS1kǷkKXh}b I&re"=ZAP =ܷ?*],9FѩOz瘝B%^00x|ܽw+Lװ ?+k'JP/P6jo^zޗNejr(},$,_6=I{p װ-MzטIiνZbuq^甘-a-<{\1/Lȅak„ i 5{Gjɱ06,A-3D~,K4'"4)j7epXx O>vރ|).j{60ت`h# <{jI0K'쪇Ak֣+mv[jWcI2\go_>t Jə}6ﰩ͠+$(=TgK|K+pXv ]dgy_JgJWN{7}T-~Zd,pǛB!`/3 /c3"?8Y$l -[?8v\9?Hf]i$#2?֜=HQ׹,Z^ǩ(j)J:6l+g?ssM׹SLK8E4\'pģio" r8c^,m>Qb-",)p iosF`Y2)mNXX0݃ 1\¶p8c cr uu |LjG|׋ǺHVM_$Dž4?_TIxniJ\XS{-J6\¶h_oҾ}Ur,Iǣ^l%,tK+Ҿz`4+k+auilo϶ƛji^-=Hrs¼ȕyERz'&$0Upzf1ZdU1![|m}V|—/. (?oFCC1Fߤ^/K StP;HFcKr,_I B?F% 1[jO^zל,gp]:\4V]cT(kF’PƹQw--၊=Qj鱨-Rhڒ.T\Kwo8b(1tm_Xz`!3w-^iJx }QJQ62\$<:n%@ǤGp촰|j|xa>\öxo^ փcaZt,8JF.Zeea[Zyz=ca)չtX>3-k#"TzXVX/$0e\E"@QÓ"[7ml^*}8:ĩ,c˨Y>RpoqZr,uɹmY'I4X\L?V#sR_jH-b|~=u,8ߋDrmӓa-,X=fշ(׋%'4o_fJKR!P>Qj1Q.4zXp0qXựAOyW9ؗ70~Z)LxnCYzT>}^{ i.;F,N2I%_ vu5)¤fko>}]{Kn1Do(bُ{g FJg 6;JʪLs J=F~h$ ðRycCXvGKv$J5eM\acf1{rKRJ՛2\¶`øg}Y${cITX<@@=dѾ}bѩ0JN^Lȥ c3~%9X|}"{'yo|=kʗ&W=OW0D~Yh V%7qoke,jMʩ~;(D|qlY{T zPXG-)$kLVd[ξ;h? CޮI,ާs*!ZA1\Ծ~+2g'e"O68YOvo=DU2&Gzv/VA$M旒$k, 3IePip SOcZy`!g=`Jr.Ry(zcnq.ǭY3ܘ3T?=2J)A a½{̏._?B"pe r7pأi/csQiH?JXh_Nm#eWh{2gU0G+̯ 6)hefY7C>} =\¶xo1/kͨpoci^{Gq}Z|  ͈U-͐<]m$5ό3Egda5l&z\S.q,H*H.a[Zy׋ǮSAǯ1{1&Í>ZRWK/Gi*hw0'v,d.y/r6qGϖ0}o2f{ޛڒx|G0$)#gH߃}= cEJ*XYgǡfX0G7kM1/ߌ4ncua x0aTQڷ^ (IJ$U,΄6r폪%oWK~$˫]qc9;!Ņ;O_Sb 2W;ŗ^/4ev8=Q_a'h&흯}r0.9.ѧ'*Y+dx|O-A\J&q=dž’Z\~J'38#sD}5(q={.g'j1NL~ Y⪳dZ׫e.(}w"c~2^F ?}%{,Y7x O>vOʠl&j}*y$=ٰ0=ˣW\,ȵ=,Yv&ٴ0R+nXS0C{a &zCKX.ŬuObX~Rϖ0Vz%a -v?nâS)N{7}T-~Zc狊Yk^:0cnXS|pfYmaQ5xh{'Ǝ2g;X.Mq,p" l){Gq^1$%d sAi^hWTNRuO-J^̌"[7_spK2Ӥ"@bkr;ZGyƲ%,OW:N#$G52f;I}j2F\XǃfX^|3C֋OYØ%cm?q^{ɑv}EuabQ =磼Ͼ^->e$])JR4R"uRKAfXB<{m~]خw.nUhX@+0۰Gy_}X|lQR%@UN:\?9{xOb7zXzl2(]jͰ9g+ibMBjfX7ijg}mְ}oc{I,r:_ Qj`̶7q׋e,q ٶ.4Jv%dQjL5*c9Bj}/€}tI-L ,wGq^+=fy4xE%&gi71f oᏊ%oK6\;a^g}^k"V款^:5l'Ƣk0c>ΡFtiE{=Ćx/^n\;nuV-]RT<{KүxaFpz1'>\Ķo_6w fSX+َy /R)Tl)Q1j/2Y;!Y>f{~S,Œc+NpnG+̮=|eP]8 rNN .a{'v=e7!7u8%N' 9ZGo1CQ;\v~E"D׷'p\Ko_o!s2mJfn_{8ʗsm9[Է(׋%ǶX=SZ}ETC.X' %.ق6'(R\ 7O=E!<9[lOkee<#,/2TTՒζ|y=},iǓdMO/oƱPP<0=Nd' ^o>}]{[ 'T:YΏx6\zG+(zbX<0zu^d,p ۢ}/9ŞˬIx̹86G~׋Ǧ‚RpE<k PvڰJj>IQMTj װ'?q_sJqUy/?ia^7q׋#GB(8 6ᩰ=Z׫f*@ґ,3pu K\X sboZ\X0TݖQ b. -#|dlD/s͊٠HYT{c+E [KO' `_Dj6u:{GՒ:K_LwtzH<ݲbwp ɷ]{`sj(/.2>Rpoޮǽ̅$zf 6CSٰ&WbjVp ½{2{zi.}|5˰>Uu)(zګJ@,!&}dVl{~S-2Aɝh :fwSe#[2?&_nm>ɷq\{K#T,sa\z:.mMn>GQ'WK1VֲQ, DZQ~XbޒJ+CaEʼnq`j[7aǜ6RՖ֓Fg0e$lsʣ/\/<0uQζEȖ+J`a`_Vvl0! Dj%I .X]OD.%[*U>ԇKXlѾɗqz aY,\'::DQϹ|&d88a qú#uO-&YzyrT(R_[u/Hq>rgN/JXJ=˜ŗy:ήbً|Vߜ+/2\JHjrSdk֣z/S+sluUcmoz,rZҖϑe.y:(4?hl kliQzF,;r/} zwoEpZ|MJeE!QQr=C#b *<};d͜F.Joc:VdffJP{[`\~Q+W\UcvPU ɋZ(RG;R;fXG|lMUebl4١$Z -a-<{b13ױCR;r=(z:"{GⷫEA־!i1C߃cV !pk]JXRt-[?4v\13_Zbs1Xi۸+Ajm#e(z+n)ecɨ >NXbETSK>ⅥPAW1 cAj3vI@׊Ц9\zG+(z[duGGxjvG׫[;tnš+el k2`-F.-a[O}q|' WzU{=磼Ͼ^->Zdžrv3? !R]iX \/b?&p*kM1?$S\@mrj,tK*Ҿzdtv(*5n{o2w)[U/^X_B,Vz\|QsY-PQ׾̘0 r.RpoqXrlH8,/8ľnMwv[jg4,hr."[7y^u019C׊9 ʏ/q-a[ZyŒaYm)ZO(/8=} =އ>]-6ob݋u,nfX\|-Ij,)Ǯ#Bm:e|'JU&V5_; <+#Rl#i{GyTk2*m) 3VuO-fHe"[7_ .RXg[,e H:؇KXh}]XP,7R34W?[l'{|T-}Z|0}ZK6㏼s$hFOY_r]S ݰ1#=מ8{T.X9 cmq_Jvr(ﻯW\uR:e&Fr+_/_0)Yl"zÜEGfuzіޒ,ʓ^,sN.4QI xV{T ztԽh*a^X0}cp[K'Qn`=˽}e f[G>6F_1/BURegqG`'!҇z(EWK UEྜ }j:Dj:֌=+VKpȇiͪ5y&v7ye/Ϗl`#}ke.lJl͝(<{\ϙhýjՂml@ yaNkknY뎤vÆk OzޣǼ\EJ%Z<>Yr=ۣq/c%#2My$zX*ؤ0=++L&-y/snwdΖ0!Gi#%LGy^v" &I&~tVb>HTKz\(˖Pi:f'Zv;{'KX;l`'q=m&wn]V-[UN1*li{Gi^-sJ́XcU JMcE*fI-+"eί7l-b|y=}nAj @RügV]ڻ0-q={n|qBV-[{<{jbYD9Ÿ~ g;-1ØTkEZkm^\{eU$1p9mqֺ)͊ ̺%Gi/}Vv TVK;E)Rlm1{W҃a-ˑuG yyaJ=39}gV0l^ɗ^O{X*J S: z|G9?o$cTQX؎4XejRVZkNP{fIZ^%Cs-ww[1 |VX xVA\h%%,wzf. ;}ϗR|`l#{wT,yXt.;CqJZa~=uw`)aidY]'[{}{U-|^/1/ߊh,!̊Ӿ1(S%uxli{Git Krj;qs|qXli~hE·p }6ĂX{ V&PYV0ǖV}^{ ( Գ;תM06hX ׋e,k@@-Nr}RT}ur`K9_~Tbn2?(^McӞi%ga[ZG׋aB%ܵ #+b%%ԗHGX5KbsIMEȾF֧EQ *鿑E~sPzM7J-ڽW/c{- I{a^-sf~P6Z3𜋒i6d>2uxg&2o,|'/|=JPH,V{h$Yp?A.X~vV} GG"S gw*WSZI%a]:.;ݳY)"&6j2{w-TPk9"xJ ^Gww>"1=\¶xfc0YT7_-.q*&dv=ˣ^-sjWkpT-e e|$aKE 3d2dd"|}z=16MڶtB ۇe\% Gys uXwC}e&|IEh' ZLWKQ3l5uݳf]|3EVp[_MŎ2[doRs#I\39vz[|=w^-czѤq/R'YZVPNR&>dѲ( CpoޯǽdeO9}xE(>kcVQڇ^/]sjVrS*YyV,k\f6`Xv5Ej5P?tzۘIʉ^Ag#)֍7$zy%\pRi1Z>x>E,p5,Y&s"֞ s3AAcc)=]öx_o罏jj~鱰d^B^ca-<c;B3,1 IK6ÇG*boqXr,-sM'Br qcnA]]q}ϯX/UN}^ a#ց_Jf4 uTw` c-8暰DS}xY|f]cknH<=熑to,GKNk$aSUwv17ނc;K7pp`%daA\#V[o|x¯i|UXg9Vj5aMX9)~^o RsoHLɑdm{GGK˴e ]7-_D$?+EW 10ȳ{ehNkzK9V9ۄI"ӖUWJ)`1ԁ S'EK- kb3ʴ+&\?+!0$G+H3&M|vJO*'.V Uy;gq18RѽYvA!û&6)GR2FЂ4/&HuE)20ۈm"|qx·i|S[Ƞ,^v[2,c 3ۄ=`]Wbrڽ(#TX17mlrN+=mUY#U8LKQuW.kÄTWzZTd+I{Hf aQdn>)>mZ 2{H9LTP2 -}TXkJj[@'-|Jw>لm<'~^g=g*P{^1`T<9لr}a+$0.vI-ڽV=ɤyr" ۸>h)9v )ٷNSjismXl")]:+*V6Ÿ^hãeZ`&կ 39LWT{ ;%7:>yݛ3óL뛏&@Z{+,lc{;)[-3曵/J!Ā#x). -.I0-V&suZ6ߒM҄1ڱ/Y[Rzt5ajrR>AExe\֏UGmC2(E6 zt6#pךaQC 3ң_jW&/$+^jqO/݇ o>NҎ>S^NBˋofI~[8sTz.]{8:~|ǟ~/~~<29wb)eʂ kW?~ q̗-K%xͪXqׯ*.gN  UuoJv=˩;?7XQ p˵~Zlӯk(yфE^,!Z qE<=;S310$Uyx5oLZ[ӔCgbrF fkeظ_LQuj(2NVOM&Lg&UaǛUay?0)_$`p(y5K={@ 87_x~\O_ SJmr7|cv7Gw GR%"5\ 1 (۽q,j0m1LS vفkYG u;?w |ѐy9=/yC1xkq9"}8H<H)/ĬZW+ / aW__})+:>z|t|? BӆA^Dd![vyrNd\N<%N$BQ~չEAf\RΝ}'jѴT*~uv'gF-\/M.W߻M>hOu=v_Y_-n]p ~|ףvz@Gܲ-IQAr$\Hb"fDUe'K|̍"Ѭ_~>:(@V|X29V01$2DIʇ~& oY^ BE Ş2=\eoIx"l5-L[B17 '$ٵ-­iJ/^bdς bzl]V^CψRԝ%}۷\lsH֏#Y\pbE7*a֨R`AxGдp"BF0 `/?95X*p>[G|%Ohcc6dƴsJ#PӴvNy{}~J h\ i\5f Khɥ(3uݗ<[J_׾mM(ۑIV|#g2SZh?qyn!C+sޒ*e>YKl#Wmɼ[w,՚#D8Ӗ]!-1ђj*{FwҺv5`Bv+*R|9 -ើѻ%Zdo[Bu`Oր5׷d_}g}}N߰77-N38E(˶hR4}*0FƂ6M'̹lƐ#l2mbQda)N1a3Iz&ԃq~IZz֊.@$\* FT+ s ~D'4ryQ$&oO S~0eVIɌ '$[cN@5cVȶZ`GфI{#FD=+WJՂ+-ۓf zQm rB87%{+)YJj1=0+ {,#,d M*Ի ɉRB k/4f"!iO+'S+AE⩇X{ۄ壇aX {SmVGh-jez?)YGie5U*kSSkOJ>>(ӹhuc{{2l.Կe5ב,=L3\fY "5h%'gpݬjLNlîMk#Z4ߖp1"fr=a4[pkTBhz }:؜'ie-hSPD%.gѹl󍭔Qzݴo\{mq~`N[KvVN::}~ˮ8ڂcR]{& 5S[[Kvߥk8[TKcS[[Kvl/Ӌo~evi{)c*@G{J 336iXrfN>f ??fzفBv zHUK z;j5aUn 7zhdL-ui{4WA9!,Q՗^9} <7JY Rx,- m%{V:2hoSeВ=L )B$f+גH_v #(1 qbUO|}ܕܕړez#WL)w[]a}1 '@"`64G?'w1~^5?'}I$;#`4j{#T_8_~;̀䮀6ZA Xo(BĂQj4`}.@{Ёc֥,@)??D.㳛_Xp;^΢Z%"1S"kx}?3D/9RJ05%AR5V@d6k{9Xډm2[K#aPTjS7/ *-H6a/D2'Ir[0CI׬nHs+dulxV⒵Rjb{m-7-['%χ4)mP@H}n%6l#{ǿDv wU,Bt܈EΔ{--"s ȃ.("˛CQIlG(@:q-N@##ˇā<2,8`dlw@b;UUH;NfUX>$鐮MnX"[doIruW6~@ucH"\4vR"z (1“y;+v 񓩞(I:%pQz{J]^Wbd"ۛH 4O]t>aW]Bܫ %7d@z;NL2j#up|rAhv k>!{2u%]`[V!@=׀ C Е8euDW+4& `r\oza|WPQsG%KJJ6v;'$z+J 2ĝEas8:J)P4"z[uEiԙv)IvNwtݸ$́H\WY'/=w{]^OUR6WsɹDP);uѱ'yh WRX$X䐪M|_Q:3!->.6w_*58-B.C9xd힪WQ ]c`ןs~e]Sb[WI:L_XTq$<;NL|@mhH2L~((yX1Q}ݓ+.+6ʀwD. H5PtqHWF0&tE+)p^\ɴb`f|Y@;~є[R`\^Ul QU*wiaLv|1P`RW.+5K&&1幾h,@i׮p>Ҹx[ דqVLqyMa&\Uo| h~`|xQ=ݓ.+5l #m&'J^TjA]aGG.  `hx\Wza0Dz+?ف@%HH,WQ{25eX0.ҧB"ٹL`(\͆ڏF^䞺bWa0ܸI&qNg"D"[(<:XR6*G1ܕ.b-$dȇ^IzygvR!ܜ;]pѳoT !n>zd;)w ~ ;+ǯ#D$z<02IkNfbp/)/b$z<ы Z*Yh DT23bg3`W!UM{ W2_Go|uwp/Φ7 ;=!¹[6 Qh=bN18Jg>2`5;5{sRW.+â;xu'ѲK.44}W7] }:c𞫁|FG^쎳bk0=XKwӳ*ԼWIֱ/CD/$zkʰ9LG޹F@F?/wƑ, Ҥx z$TpXoTUvJWQGbYV0!?Iz:}2֥)֯ 3w_7QrTsHٵ3>=6U|${{-҇)]*6}n˶BH쯸6;[ZZ}zQԍ^N8(w L`CM[Ry&>HfpA}>>TC=L]Xp/JARp PJI1EXsMOOz3W~O  JuBA(3zǘBnXg X ih~̵d|^|1>:lM`/j Qpv~RcS[,Aڦ]\egĎVJ}U+`zlvx)kcHU v:L ѯP n]vϤ I,B-`|y=}.Hؖ~|1YhGB ʛ/^)l%G)L8j_En==ޔJ.iW,'U)g㵂rM};74b1\vP_xMrR{c %3MJDE9Gp OMO,M{ΐ>}'bm;I"fnj-3ˏJ].'[ ϱ{D+uX΢^(#<l*P $='}hWV.k=j!~z|ɴקz0i2?Qojk&㿢?ZIb^ < "ƣ-D: 9\7QoףSI(гSKUXuJz7k%:H!F/$Y&g9?:~ c9U  /zc.5 MpwꍤЃ><>-A",k$ӧm_٥#jK+LiC]mޟ}z1ޜti^gN扏 ZK6o>zBz is~H`HVpV0?2!e4z˜,J)&;O{UqR{MR-_AuqX>b FG-盨O\`Bի\&zpwǮpWlkNU20[t$zk :``Y?ze)T]W(M\+{CQiSR*L/mIݮ`Ha_fe$OGG/W ׯw(n\1,֯*}p-5J3l[ǛjYf=l Pghl%x&V6\vH'II+_MߨtA =$? Ac9eKpa҃B1vH_ojJ _VY&@ܯIHYӫzy1zsjgRh9oafΥwtbӊ18/or^zcj빀f8k3GP[`}Lliv2t|xQ}^d^36PpWS6PL$fWŎP$J1N2 ʃ>6+gI. 1v aFsz{ԅrEsU+P2jؽ[&^)5Zu|g)k,-}u˰[7Iד2hǙd?Yd}HG?$ǒ7BLp;Wm\+x&׈Wa;'Iד4* ;\"˾{peׯQʛ7TYޫg"*C[\-)dPD^E߫)8#MNf5\v8~Ec^d 4*%\ZWIew4|ZST GJ-'1ggLrK+$wiWhxpa}<:fޣ#{v9[ʹ?s~m(%D}z`lu՗0ӫC^yF܎QHTzP-9Uף*R%iH-ZOb ~E`Ņ2GzN)I,ͣm}JDc ڑv!b]6HeG+L=(1ewHO'U M\gPԭEW(Mw_/S8>}>":fG젾L+۵{#;zc̿O'GAR1lR8ɬl/_z߃aya Sd~,q;`zyr=c.^s}{tJE_'j8[Ry%>AȄFh8 I1_/P{!QeXGT. 蛤I6ferr,,3-(s 7ke,>',+3k׳>{p-*eQWq2֛*Q_c}tb;hJ6_QICz{k%6 4D~>K!hGW5f;-+XWA]zYcikcG)oz -yY̔⚺Q n { OjGk_o2+ ,E*^$bݣnq>Mz`l(+AwW^y79T C=\vP⋸'Xj*o|GTo6A/Jm& ke*BXJɬvU)T 7[Zy% 5k$zһy_Bapk&H#?V/ o\/N휶tx ;o~ףc:nʩMgBG|O+Cv"T~/W^D\s-W27aU+w&饯X|N Iےڇs̴L?˜r *OjEvuEKMw/9GSY;%oH_hWW__;|Q}R{!nv]BߧQp/M&Af"Izec_E(,_H񯀉#p6-I=!ިj$zטAUVVr_*Sv0fWˆRM(AL+YIJD6zǛZ2QK*n0c0r5@ zȋb܎zIֺENQ1d~Hx:`-M#X|5sJyvYt0@" $JR>ʡ:[d$zԋ U+,`p~c {~ v&#XN<@(EI-G?)ۥs :L-l,tsף^ |)Jʲ m! E|Otř+%=#BWJD|(n>D}]zi2y:=WXHmrFlir}V^nXCqx.Cu[0j1%+J. #r[B-PE`>Z~s*z}~̢F,l֧rv}~^ ̹?f%zI$֮p,[PJj Mb~lKeGK6Xjp%+e 3Jޮ1;n*b>ҜXoپ^v)wX/N]Apߩ@9z4VP$Q U閳$lK+N+㣬!1[z}z=둃:͕n,S=UPʛIs'<=s)8*n2>Z[~R+&keG Y+jlfף>|W2%BGrBYY8ešlv=s̿ȺU\"ڧ? >:I)l[7QrV06Ghvz[ T, dTR%>\vHOޯ'} "ˍ1D3B@?f FTC*˪p zg WŽPJ L 0>M9<oJůJ-5~O6ydדd jfkMM?_|\/<@X!q<%X"汷Ho>zЦ^՗pkEIE+F<_̲%|jPXZןY}3>D}^f;\ErǕfx ܐIucWYI6S)\4>5eojo׊`00,K$HD4qvKr7l R5[TL, /˯Jfueb)qoNhLwQH_o'bJR=LVH5@h*E ~}='W;sqt'?fXZgdG'o=&Ow9z }6K8^#v@/o zLeA..43_5lIln 8I >ԋ_7QoףbvtyPmI\ A/_51Bu՚Q}Fi+땬eW_sMQI& ӣl)E)B=?Mԇ\sR@g5iX ;wxvǓQ/bqCz7kd0SjLe׳{ujgʩB!XAs*.`z_Ŏ땒cˉY=~[KN [i/ mk&z\~R/GUL"OTQ `Z WSmX>D}\H^'T/!aT~Xŭ5\zG)o>nG Gk٥(khAf?*o>I\$_H?3*XV%UL~ Zj~>Gq^OzAH]N3p|+Y>vyx{He &K uBDy٪SIJhcR Gg דI2x݉(QEfbCib<];Jy-Ke*>lwJOIExa}-7Ԋ_\!j:V zc̿ss^⇿t1!q~||ab&.zc̻Y- WP{fۇ@w=IЃ=zJM8297ag]# ph%|eMעMe=[l'I/ד{WRbf8;W/' >&ZBT||RMЋ_/Ob|df #ЏQl}-K]+Xf3Z^zB&\M*YXE.`;W*V^)cd[d(Rʘc &zX~)S/i-w"@-x3K6;R9w9> XFp!=$='}X2h_ce*kSjjVy\WPr"RX3WK l[7yR*2cLQL06 szgnj#Im[$A_c}$URFJ Dw. .IQ:ŘbC(dw-Ǜ^*c9Ĭcx/lJc~9z|yK 0>$}\OzYd=("BBcx!6tor>vyk͹t> [rBDn)eO"v9Er*>db\r(F_-CMzܽBe?^<~Ss\Lxk/uΆp1_It`m@oqVn-~/鋒#p-Al\ﶋI<3v_T%pj$q=̯&tJ9z&i-my-ۛ^)1~1W_,$-UR>Feʄ`} An-l$zҧ-LK2MqxpQ ԇzcWPZK/ k0jq_zǓZ ^+s BW*E_q=k̾$ 򖮳?ūv88zYpr-$<3+>Z::;M̧\-MjE,R)n> Zv!͖3k̖}> c\ ,+CP|g Wʛ/^)6$f*r^8[?.g{GlqMR uJ`IxDq={P7˃DoYê1*C‹G\YT^zjNej"}I6}i:뢕,9?$#fͯؒJ=b~ 7v.`;'Q|aݣrrZmʳ/.KׅH-_"B$ |}UCS҇լղEzԛZZToW ~U`b2_ wIJf n> Q66KRHǝpIhͶ'Q2(T-3ކ?k qTX}_- bG*J=,?"mؿ˓Io6VT8?B OoP|3-^;:yRcL V+wG8d-Ϋ<۵c9͵)Y~}FnpDH/`bKUu;zL^)5~%Kmupqx̻2랺TJfGBz1N5YP}x zBduk J2դ]Ȏc$zǘ{NֽTf7]J>\!~=s,6'5lsn8**zf&1HVzXntRK,'hS`~=^oYƺNVce@\q=kng-@~"$"q:Ӽ=22r{-Ǜ^* %evP\&WՖTG5@H4ڇIo]U5 a7ܘQ=l(Mg]/iJ*<zXHƇynco>TJXzN92' ~ǘ}/Ei//`Z|&Wx(I1>LS>;D}'u[7IדAP _W7,R@ (Xh+Ť`D >; |?+^LDå{-db~ՎR6܈dΎN@P{S+qVd.^C=ٯ/\zsԙ닮`s;#BYr~/&Be*oҫQkfG!}O:SMb.v`^$L|<^Vlz91K)=^6X$zڠPX. B,)CWu~l(ED\z 5΢ިE%jnrWmRoJKƦ,sYeSGJHa09lRMȏ900Aڋb>fkQ`̣J i,tH6z}Rc_BYՋRtE1?Q=ǎTL^q*Ð_ *,v@oOޮ}m%e,?=gWĎNzDv+5X$Q2;]ԊZɱ(IB?ݵ/9f޷sYr:|Cxl{x&v\+_IkQQ$SI҇$by-ǛI_s9IDIn1DowƑ, OL5 TT_]0@mi$%y}* cOף>{/bvIj̵MFQ6\zC(&z\rNQsuW΍exW8lX[^+s9E] Y K?^~5g;!䱕Y?\> 1\vX8G}n^SF1(l[7IyTsѹ~e(Ԡ@Rk$n+3uP ia|_E2XmG)ozEDQpSMa>&C<̼'rRzlzI[h~1:FɅQuJKv@xIyPn{jҩsQ5i~)l$}\ ȲUvX+M"E+VJ^3A_L7X"듯gb~1Ehcu/et5-Z+wt&E^nWN~V@>@_@lh[{S+]+f$,m~\z2`ʾNy;UׯK$V^)s}DU Hjc2 _Ez}z=},M <,$IwgO5v[RWV%ڙ I1ޒɿ˨MK6)YO6A6boޮ'=Ƣs̈"nnjLPoVzfq׳c~&!~ /*>Z#7I])!cIj+UN.Th~0~҇<2?2ҥ Aף>rpKd Y_J1 s>Gq\BioSrsꐎ\$cn>$}RDW|dGs6[Zy%^)X+Xjl$zԗm?ZoVՓm$}J#F{lX[/^+c DdkVm@Qߓ; R nzcQ/т.\~|4VPu/zfcM%qbWMmfoJK%&(#elg)|~|-@5+8Tz_|w/ pkt*!%?Ul[7I^*c:iOJ9Y)DMYM&G[ZW ٩Mؗ(+g+vPOףsB>RcykRbؿ67Q\/KkJieY8Uph||cSc5@OB;9'vHӃ>pg-`|y=s̼G*rm!z|#[>AzʛA_26;$fQWj><;Q[/yR+ekc_Ipi@-}1*za=\ux}[)]pA}o⺞=ܧPt2YGҏ%0<:[7IvVA͐\Z;_&˘Q[g-ǎNWaR ~};R*{[ךpHh'Il+e,<ǔi fUOjsf }3ޔJ^/it2~|=E%rzv3IY&;#q[zI2*&Aجzyke.c2КmeoJ%J5F]kmzZB,_k]:[?VgKw@xIzP|xpXO?k/>zԗ`I̲B-,ӟ̺¿4fB}2~/I %.8[.q(Tg;-~Jnl_jדYc*yز]Z&C~RMԷ_/nR%,~zH ,-w)\*s :N*NۀeZWE} I} g77P`^)w.IYgI$ γC;?yO뛊餼jURHx%KRby|0{l$q=1fWCX.8rf&ʉ;Jyh;:|x{KCsKyw- RK #E/2fWgr=m~ŞKQmr_;|M,׃^'{Z,-E2:&Tu&UX|N+2((D} ๒.bVEh^/3r pM:ﰏu /b](66|AGYQV@&/>2^*s- δZqb+Ϗݳ/-2{I J$Vz{~=}2t,{"(!(5haRCb|ɉ녒c(X'<* X&D}^1+?6N9'}a}t7G*jq4C֐)Ќk'RzVƦMpDQ_c{ꙢU8 7Z+Sk}]O3U"%,hhqhza)d}-o^+c!0#Ou|\1;_d.$1\vPOoG}}A>WgԖd9Gꅟ^ӵHRFӇ;Xq^%cMR]k@ؚ)=!|=1k\։h8}#; mXfv@<"\yY)$U&FL [ǛGMO0$Z頊vol(ؒJ?swIٯv&;'Q/ף^|pu_l$ښBQ-#7A/yR2sQqfD|zfQH/VkEu,PR4/:G^H .߹ -.lOfJ3MLc靧tB?[6>M7k \\uި/)2lig 0f% l$zۘoBևP117k;3gcG)oޯGtPtS#,Afyb-Ի^+c9dQp{׳,|S e; fG޹F@F/};, Ҥx <_|ϱ{!bqqٹ8O|VtG,Ml[7QqVAeXbt+>l9aTv[Z3X?&[0>d=g=,Z2:/sG-2Cloד44}qq%3OEq"8)Kk7ҷkt*,e}M~Yף| \X_)Ƈ?vH~@5[je/>+Wʜ[F(E5 B}=c-X/hdgRA`Hp hʿogE"X{$z\5ϟDA!@ׯQʛQ/2 jlթ'(jGU0#;7zPz:.)0f(s~QF/  k|=EvekU)~5e&ŮJ`Bmۄd}Ehʪ'h),+ v_ 05J`;'Q/ף^+Xq 0؁Ζ/ 蛤W^)1AT!L0IV-orAl[xS+^+=6frcM_z=mm@wn.DJf7Bcu:K.,ubmm & K ܐ!C$TjG}Pcl貥w2TTh"(2g+ޟD_z7#4Yă-_Eć,* ;JycE.̴I(nQX7Zs-{?۵6"T؁.1I*GqPW[+]#^|ʘ{_Fu}[NڙT"T6xy=s.?dR}* M1cG+J>}t!}>Iك_`閾=~Av&q=ac_NcfZ@eaoJ% ƖAmLe/\Ozʒ劖XpvtLKqVA=7q]Oڛ̮6? +q.th^~-כ^*k5k9/u9}@ aĆ-/}$}B(wP_OG}۠e;Uq,z;Y8(pJI땂1 T ePgRBUFCDoVrgK`Y6)/gG;` Ri%AŃ!~ e$!9-z#qzR5l;/rJRˏ;w~׃^dlK(UW8S܄Ե} "b;Zy%,SR@1[d$z˘}oBQ#G'k˒+ ʛIs9Aqx̛IL`u*O*EzL&ߣᲾV%;KTnVktd_M\\z#ό.`;W$Aoc=ޱz}T)PrdLU`y-ۛ7^+s9 5O2J:t$WǜvBgGÖV^Gv2G WۓYc}%1b6 ӫ&_1[6ozDPi/1`*W[o?%oMz& U8:;̯g}d9+k,#2 ^6[b!/îWʘA^ ^qvs^.5N,- }-Ǜ\W-YNV4dʖV^J# MuI3T%rT$PAa+T8v&Ke,>GUT48߉̏M6[~R+۵6t| w'={fMGxhܣp!=71pRzbb6mrӑ H}{-MNJN[tCR% ApcxbG+e_JJS+I9"gs=^e_ղ#7Iדm,=)D#qzUX!T7+l[o{S+qVsDr92XjszyLU ɢbY#),[lv<1<'iȚ@⭇r1iM>*@>IJ #a@ R@KJʽ%W*9\dO^`r.Di>%+a~Il(E$RΩmQ{h6X+>Ï*[)]*:y>RpX}.}mPEJGc)UzV(eԕ^_uKx)2fgS3:bdh9%6œTrKIMXDRd\~ww(z[L ߃A\n?>b=iTzĆ҃gZ-k]~KKۨ .99Bd{-ۛQsM\v ,X>`Q;ZW&*c|Gggpa?zcJRN)f(6&L-_!;Byq=cnSF,;3Noni,LqB -҇^+cpJb& 17|/m) <>)\p`ɡ9ߛGޙH0F X+R3TDUUJ օuB}Zɱ %zQZaQ@EV  GgQg `xy=WRyo;&Vr4:7A^(c)TmZSu:y2CFYcn>MZ{/\WCW]Oq=dfT2!敘-`ą2fߣHw+"I$]$PK9zu=[j(TitmG+-DeJSg+Xﰾd}_ UUT,E) _7Q߷xtq)S:k#ྡྷ>x4!}(`^* 3cm@%W+{=ꂳJz3H#Z Gq96_> kfX`]nΞ/4"Iz륂&nZgʵVK)l2-Vx~p3ypAzל{ߤ0o<} b^aP_opVt(%$, Jw+  |l@ `z}={.ߩC[b>*n c3ljl(D}z%訒׏WFn.r\SFE\{6n { oj/׊ Wzʹn@&?ʘ Z¹h ,++-2昝`u`}򋹸ɸ^)c~iSg֜wA}O2c$"kJ3AʐV ]lG+NSzI*rIE`eYoTp[Tjy-U4m~RD\zȠLY@>2(P\2@UԊZ 1N,KD?K'^}fmTPWk$9os=SKK,k[,KK:uy:ly-ۛ7^+s:N@,YᮩsqR.lh%W­\2]vPoOޮG%S0/]@[? (3嶡nKcI\oN(JHϪEzǛR2Mln~S1+zc̽7l6q@q*bԚk*C^|zӫc4(\J*S4&q=c G~H/B\8(v2,UJBү_ N_@5[b$zꗑusY)~~%u/B._#7IyRz}rŴq}J78Un=食JZI*b$_y=sʿ763LيӨȬ( />3W$q$`)>t~zWI /Myc9閬v,*r^~,(ɿ_!I1>@\ {".#6[Ip/?(Mp*XAh9(ǤdsH̶72IPXFeW_3"cN52^  ߃wP/fNz\}Pal fܞIz\*!T%q:D%<гJ>`:ʈ &/~r= ѩHh %4FllE$z̥,lEyJ&=suhQH/VvXNi8L^z3UU`9<]1U,6\tj/>+e~mD4CQV $0Yt}-뛨Qo2$QBZ{רti{)^",?m`z{v=-w0~uBOgz{ZW8kׯQʛQc:h r܋t.HWOp[wyR*nKe.Pɵsn3zoAmεrmUBH;_wL5=_|ǜ}&}Yr:E)%T[Ǜϧy{r=ROEY #<%uX ׯIzǜ{oge W`<\6o>z`l+I:i_K=s}-J^F/!eW\;rr@ Ol4-YΠ2n\y]G^!/q=1&iO_vx""ϢHXrM5*'l-MKqب=G7c8Rs,+prTR !}=I5ރ"~󿚪O_J&bQ"b9\7I_^*=>uF՚LS*^Bl{-W?)ۥ6n}={ҿUutOUk/ e̼^kЁk1ɢ@mrvz"y$o'}X2m:,01w} J԰[Iy Uz ߗPqJ-Y~'6%~|LkƓBۅ"26;!{Ea $[]/<^*c;XOdiqؓdr):\g_-2{Iݟ-9\v@/O^kRE~{,$H=#$4fچRMЫ]/1^T%z]oU#?2=5 ;{of׳fU("JKvHWLgO jTGFfv*{Ҽ|S̩BU3ß [R/cdHpqNV]7Aܭ>ֻh_a=_`'Y׳cpʿg2$NC?t|aG(ozfTُTgR0MB1M?wcl%"4ו,'n1s%zgc&.."qcXWx[pa9y}Rv"k}+)l$>S-|y=~Xpa$E2%Y -2IZK[J.`;'Qף>{"zvXSM!ǯ 5$H0<P $='=. Qkz, %IZJ޳#HxS+^+ LJכ*mgzcw5[Ȼqǟ)6韌e#WA(`QJP D} Z;(lae?Z!Rr[NjT^ mGSo Q6VԻe uֲȳdƂRdձ7I߸^*s`%=T:IòHux+PdP0_5*bk0E%l(c~ھ*b}x{~,E?E ʘJQu >~dϮ Ž\{ 7J2t9l? Qqh -=UdfKl^Ľ\{Rr⾃,2uGPG{G׫%Ʀ)"c?z똛 ^U҃3_8ܖJװ-k?8yocf~DmtJ}]P-l#i{GyoqZuZPE-Rrtj VҰr HLؾ>߇p |>fS= G;$ZVAG̖0^,s?.ugGJXqd̙Xz%4d9afX\3˖1(Q>v2xB.5,x8z㇓\Vgr)/6䪞#c(WX<>af=K,ץ,GRԒ3q|dfdjְ}9fkEMDNM2+d}HX%+(dF~9/'>ɫ2?LR\{!ovZ`csJ<[4hzc.&_){I4rgb{}̧[p >sv>S!oag;{}⤬ڣ}=JecVko|nQV)J^w2i+bO-$+E"fp}5.gRUM%eG+(zXN XsuX}|TLU;U W * 땸za}={W#3X7 xh +ὰ6cf~ʭsNږ(bEiaTqɎ[xq^+cf12P-ca`u 4HY6+3^9۲Ÿ='bUmIX\_04o pv qt ->Үǽ8ږaVKt,Lb1۱]Tje YT]>;e˒nzFY%l'~=cjGDžBѧg*zEPɘm#c(îX %$[YQ"Hn>G.^U?Lf5\öpo>}e3YA姂99vIRs=l KJ>cVO_,&\*֐GՂc*ˢ&2XL{MB]@PA(Kl t>=|&S5YqzOZ|=`EfI^-=6fwm;rH=_1p^b`\p / k <"ow;բCc4U(sY],!yV*8ةd:QE3$?){Q|A ~72͝anKE fX}22Kwȴy\ /ERl0:Z#e3_OJ2!_ )llTX:cj=޵P9jOФB:q[`:uY(aaDI $&ZIl3RcVœ4d֋ *X7 ,*AY`#Z=^i\JB3sNo+!`źZid:'9(Zlha1X$cڽS 0ʨߊjmMa%\ ) 0^Te',M^LRƾyPbR xAmha+$ЄmB`*VX KQ6x"ɵ,q H(E Y( Ce1^v2̛ Ē}E5,;$б&+rP=X%qfdT)|DSق31N$eK-w( JX)C(t8;t2,(̠0RƂ`}XX00]%*+eHXnAP't;ur{ݽ۸\; I9Nۢ%@=k!.aIB%s>FY7KbJzo{ 98P;7U%m+QF!T%#VrPݫKHᅱľ1XiAE}4ש1{ذ$"0߽0w>dy KfJ,Y6V !ƾ{a|e~͍c(u!.;W^^>!GːL;-k Eeҏm& JkpLE:&q>cRXUrǔؽ0g#g ܌mcg~/,A̱ *yPO=V7̴jbԐ|Va~c ujvP2,N8pqGh%L_?I՞pFm e$|Yf湤_ޞLϛSL B.KFSQIl*tf:g(te;0'6t&:MoHͺz!z4ӫVfkY3^5JjReO/cW,٣=~OEozz~28֔mq)SfPrfwLk̰k15 Bb6Scc1ϟs]r[K6iBlfbz7P6.D5gH\c2XvM36iF f]Muu4կ`"'tӌk|ӔQjdï?={|}/薞_ M[f\4擱}:!H@3]*8eC.SԾ|f~?`-~Uy߾PLk9U[$gcRBQlMgHZ&4Mj^𩽗_x9[Oe}껟>s4읎=x?7?O.\+^ʄ|+L!]\n ¬iqv~gF^gݼ?J-uݾ8pz=;#Z2]&&KQ bȜKEÊqkB;l v_Ă'٬MmO]SuBNzAOb8ٓ"]߄_叏9_$focuswriter-1.4.5/resources/images/icons/oxygen/scalable/document-save-as.svgz000066400000000000000000001731751231434177300276570ustar00rootroot00000000000000][oYr~ϯP/cUEA$c([YYDz_fKreEv`:ԩ9Eѯ1oW7o_|Gbv>Yrr|_vzw7^nG?[nNO7z 髣׷wttv{<8}8?_oVS:={uW/n]͛6..[~0IDUu||r,?ݬfOU1nʈx>9w:x"W=E\Ňe[s7F3|y;;/O]+<YHcGjp1u~1vuzJgW|7zn՗b7bqlꦭ{8yqt<]~][,ngoKFӷ狛S_4θm⡕l d2W1?}&]ܭN.]Ogҍi[ztvjZ7oⶕf?>jv1[ּkHei7RW>??ݟbZ3~Y|hwq~ WgokV?0>[ ٻtoSWJu'Gy0ЖyYv`]ɷp>U }GD|q}=?o'>miAΰ*' r'\}n&M.~ǎhc;3񸯳\۞ݮkphuۺҝ="=V$ # F}?PEI/WW3-'S d_ev[F^\tRɨ!v@$2dvwTHݷ#ERI2(Rv((eDuC۾=Cx1A)g7D_ҹ SNHP OHpAHp0b`ˆQp0F9 Y< :শhQђt!uFyH^-$3$[Qr9ʶ!JZ<#Ebu7x>o6Q;,fl]3?/ƶSRbp6o K6CpW萦W]Ws/߬wnJ*"Za˸kd~}pWux[EikuI'gmHs,nVm6̇%~ ?n넀6`YU7ؾ,96`͢D3-^'ʾLZ2T̼%Sn6_c5Ŷi 0x/@Je$}](7}f f nl>,W x!wRz׫٪ka,'7@T7GP:c2)O{t~lp}vumnyI"mmŏlx->\lwqu3j|}wn&-'=1>z=aAŽ<H 녹32N (ryi' $kX] 'u:"fOmG S/^n{},R@&]U'ќ0T3ѺD%͉bc4'fj7-mi:mV -c_RDDIQ )R$TlH*!D@R)n$@wI+8.޸Vrb zxrR{&tevmk UmUi;" k<解e2c$}A(( "aGoKfU&V2l!=>wS޴4X`: f]MGSW޷1f 6ynE)XyB7Koћ5tTy&;,r󞙷3s"C:XTO\fB/\5؋MVz&I)gJDOILi_J՟=6H { Z dRjl5!-<z"G<,ta:؁6y+* fQ6%4=4,b\[zECJEHhraSvJR=i~HמI $.ח\D2z'w+吷w}T]ciEzP9'ƜH@ALCBdCPnTP]H"q=SF6"hDA-՝h^b>1q:dT &7]V[ gBj qGN>Nkcz=qQA z^R)é`wdm>SXUێYj?p#=Ђ E=]R=D帡A^ncH3٢A(K\WPd"φ <]["AUB\=S&Ra# J ^}ѭx3t8QT'%^y"gWlL!(BMC$0eK"[9ߊy˞IHd'(5X ^=+g=+RJqR(18бB=`lEN?xOI(f*>U={eapxO?B NhKj(!aPƬmC ;Ns!MRlR=Zj=նS7ZnR94@נMڛs~ԑ{i9Y__rcJ렗BLzПt d& $\;mB"ʈ!T'2"d /~؄WqQZx爫3Cx? ˧6. W긧$'|p=(> 0Sc T\/C]}5Jpz52EC<9 Bd9? khϼ@!ܚ$H/Py hQe@wʬN@{ n5 Ҿ-{PEaǧ*;g>&R.)pb+a2()vPeAa*;g>JA%W5`%,cZ)%^M:p lw{sOyc Eťc);*V(dr ")ޟk]C4Q@n5  нVիQ4DùEڟg}>S +5E1:5eψjMyA&l)ũ1)xJԦÅFӦl DӴq kL#[c RYS6 V_)sl@&ŗ6@!G&6 XxڤxuDTF4&ŋB7Π> )x#&̈ia|dYi::2(^DRTHҒM۔M|qPDn>w`T(<dz}N/nQ|Д-<+US i^)@PRpg+P炴h\*8|l1x$+ȃFdz&mJH/6ФiG΁~י2dm5|zḱUyl@ivAX@d1< DOLLi[xl4Rrt@c N) AkA|@IX4eᘣ[$IhlMX0ēĵ<5(۔M"&K ,4:εC26k!)et@k>ȫ,5ДM|hy (9:ε첿6FӶ Td#LoHW&vhVM* Y7UК'p1 ut4i_PIlMPYL;BJPD 1tt18^!<;Dst8'oD8&>hڗAZ]2V9ƇL:A131x7@\j1:n;Clՙ|t ZQAecÙ4z jB3Ykt@nָAV*6.gjJ@dt\lwqu3Zﮯv1[>ulRy d~d?}ܸ{SŶ<{׳?!7WelTvUV@Jq+tBѤ{Q4K2pn)Z"gĴn+Mt sUM 鳾{DXr$6/5WNF@ {Yi<+DAVZ]c%"QLѿCʹ+|ԋ-q>ji c '1;S@ <{lxd)5h9)Gb]k$7Mw#|N^ jG ٖw ,UJ;'g RR}AŬ.AR$K핊WaxkfWY{p*7ʠ%M͝\Ƈb29˳!xPS;v~f'WyeH"spRUGMK <^Ǫ1@Q]W6LKV.XE}P:w|MS˜]+ZO ^%_pl 9+6@b ^8po31J*X§A|'gϕ]GrpK|n%Pt>0ݽKu;M3.h>k|.C &/۹49@LCʓ$!LH De5;+ɻ0w/. ϜJJDrW&];vZT8,| >F,=;ʣeL]".͝G ,ag$3!l7.V[kЊ|emqOo lw&ڤ uxTTԪJ+y %P͜9k<H2`0bBJK<6Hʑ27iaÈv!*d,AKv ^quvRpƧ,6CIyRBRK F [\KJ#Pw &_BjoQUBef#vxgnbgZ'^fwIf=P",w;k !ܙXG#d}XlW-TvKhb)NGmґzD5.1;hxh%>s'*${aa 6J`H܁=~\9k".2IcL{]ⳖҀgʎH>3R,QRW=Q_+v)EpE|K||eM4ܠP,+ b6 w nдuWJ<ZH:BmԹ+|c灺kKɶ7^R:+lgi.05ʹ]KUZ=$yXI d2t,_ɻIR]w CzU˜gGJ[m,.-MuxVHBqx.S ͆yd=| H#z;ߺB~9RY[k&l@zlފkG*A˯޺rhdL+meCdz2_8g oH%sw ayC ./z=%oKH=@j :Khz=xKv?0rhi7%(,}7Gvx57!٦]c%aTig9 jů7-s9;ѭ2%8 |ǎB,>chbϥo$*^T4s ECfs\vG=@g8wOnRnկ)nƗZg떊W2b.6jgn*k|h&U 5y6157LF$˵F:*\9n}Ilc)lJ(w]BRIKvxlD&_(l,5\"%;2?[a>RyV,`g)_8zXYE 5]WRVoB*gԞ";UJe e8&λ3vJe~x.MU(K͆%+Q%ybL<7H2sg>FۍveuYGW>\f|Mqݽ0 0^xUjv+DUďbo>Uc?;|41kM?K(w.>4P/KCYǖ֑:$6}Vx)B9~! !gt16:^X~'>J1=J1֜y ]; 46VT፻KhF%{2bX]+vNzm _mKSr2:ŧ&.TF1C tPuWd0cT] a-L];gp(_aR#_dKHcW!ѣRP[<Id3Uv~^h0K%~z>ԉ I.Nj45 $r/)s${I2G,x%9agg yeґ4k|!bmjy )\R|vW-h˻I$$hy\! 2-@MKz];Bo(Ͳvge*dT5SMq$*~x`~P*Y#4R>*hMcYo\jƔw>@1V_KvQ{R _KZQ;aP Y;9`?Pnw\hdvJluWF~U2^]vWzb=@\s.IcG1rVJh(5~b9-Tv>X>l,}$M]g)nuz`oR`w+J~x+zZ]㉝S_ϥ4E'dYɝEJVlQ^5Tmg5_[pReGd;_عJV4CPj|rEx2Za HYs< >L>cͫoR[QwO|u*F],5>{4KNrC_XwJ-D ,; )l{ F3,":HF]ARcxh@Xb3UA .e;71EyZjhW-g/|CMuҽ.!RymK|q'ݯS4,; #fH K|N}oB଻Iд8ewg t㍉]ɝW)^qUxS[zB԰›NDur1uMt(c-:w7㎰!]Sγ›rgl&ޘelɤJI lo$i6KlTw7OK7.=wmFqx iZʩXnfvx2~T.B-/SCKNl=[&3T)5;>eKNYÖyޤQwRM㙪X]c)J(1o jgޙ%jEҰ_]WTEyz'&Pl=L|b4&eI5q을eyCQw.; -K]a;5x]Bɐ ,Y45]sxUZE=iwNSx품.%lgɫ1Sh,vi-a ;aW~U^g 9?Vb hC#ˀoJ'ʙ%EINV~}Y;voƤ}W Әb+|/uRwCH3sVB,ݵ ?}cQ># ROSh Yg01ϲG^wc@w];%4xBm?|kn%(~iK^5Ǖ$Vxx)qxW.GJYVWKMvx[n0XkR; &4<ЛλR,}-G];׼ړP ?k/uuތd 3L+w]}$@UH#9uxym`%7Dґ JjRa;7:LU`2ɹK|l%IQ騨8K|ۥ홺K|4RW ]sä.*M + A`2鍹+|>ף "<4Iu1dAsi&hZlH#vNDrsVK 9vc/CtS]ʾk|rxD'Rc.8LbjU12 IC<+'8WiPڤ-,ɲ֌]wÔz +_Kv_tÌh߶3Øk]{ej%wףּ1#%8k|c*^[W5i!]wRQfv5~bg>2^@G}?$E#ɻO/U`RwΙԇ| kPegHDczxBU,Bwx]%>u.M^gORRio#b$4B24'; \jC̳ͫħN@Bo"Đ7)į7%@sx i"C. M@=tMaݖEF]w9Y#Q8k/hxR5޷S@rze>Bag߉nLNn^~WW)1Z]wCS;+|ld-SħmpW )FVh &`&L!IAEƃh%>R5/GԺw9XVW.iұ]z5FPZwNJH#aDȹKw.]^De53gBsx7%jmͻƳw(z4%*P2^}R 7%eγė. vVҥv% }VީQ0UȰsV %gި܍-IKԃ+sIpj%~%!)Ո| TTL1@ƝɴzC2aCT,kήgMb2yxNcZ<0Z++$t籥>Ksw)Y̘ćAa~˔fYᷢK|,Ei:a}A*98K|n*$^Q&\5 wvnW,iT iC &qx,nh4U}Z\5(U ;}"'e$=qZ)%5_ L_+g2_$iZw/\T35%ɤ5m3~P|9 %cgLW*d]{%NV].NZL59 #ӣyWY:^jTAO,CL\se3agtA%~&5OiNI#R\@Ks$ qz "QzcKsH=H07.P(yV[ %GgY[ e۫Ѱ#^uѕJ <By 2 +UYVvI|9Ӛ}x[Z&5"⩝uxNS'Zw^:zGv5ޖIei0gO{^C]=v^zL &yȤqD[5{g.Vd];͒ޖ Rw 2v,2SQE=@2 KJ<.; |b? |pb'T"s_5o+Jzyp|'3^Ag ͔zDKA5>]E;k<6Hrel2w&Ie/GR[=d0-UtPgGj]!RdeH.eKoP %,;l|L _+"A!$u&qꝘzTT?K|4ʤK|L^'5 "!e+|/]wAfTO7Hr{YR%~Vwa90L17];NxyY:mS3-6wl>B ϥ*D`^19gH#fA{Ir%"FC qw7 ;`*5;_m;]gMoJY)=n7k PGѩ)"d ?+hmIu-HďR3/G,whf'=[lmԃ:kd 8kN\7?7o3:/CU>w T0>K,S:2mО; ̻*)|"+γJjȐć4MUJ]#vn'_ag%s_z sA!#wىKtTݯ[,} $KxGnp) :k|N:FVVi., x#FFa}xߘK Q~xεѮzM2׼Kx,֜M/ډ@ !dg/Ygz}ظJ|-$9 |2p֜%bg=U] ;LMo>X7oK}$_Dz5VJ)FmϻĻ*^L8%%tTWlƁ+4K7Gv I!Pe>iaWlkLYc/"ߨX3K}6f@ɉk|V%^,*.zUHx;ZhIֹ |.#E[k.+|n [o(" H9L.TDgҖ]*\Ҫ,}U/CceˎGrc%jELs8ݝF0mtS쿱vzЇZ2y-(<wD h#uj!zT*C}O[ZADfRq*%3H-, MfȾk<6ӧImqg"ɢJ[gYCcVmWqƇbCoBƇ ~5:9k|/Z{̢o"!ň&P]v=袕~x["Ѵwh6ңKoT&nf*%į6XIz s]vGUի1ޗZd |CB+ DNC 08 JjCSF>b'V$#YT]ࣖzTy؆*-{ʜ|*+gzU2PY3=]*]sCƛ+|bcNs54,]kã`Bg[b';^tiUjgF쯳o:_I+3W]kpAG+|o MMV.];x i5TTXaxӒsWΝHͼ.3x+v. RT+x8K|IBW#Nħn!E+ gOFE{ӢwOq3!WON6hY!ħ5uK: vx*GŻ[T||;@p w$yT YvfE4;%ź' SVLCK,+-{dww35IdžIY!=god3'!$s-}Z:UT]KhUo CYQ;kyk5+$ts-c4]oZY HW]g$D f5~duޤ ? iHGJV+pJ]iKaW% seV-UwG.ì\IKiZ+EK}YyV B%GRSͳėnMF1_40>ʠxҥtbCVg/q[F=hM_rk7Iڕvx[Ib[%6Ho^coKkxՂKR.ͨ]}W-ޝvxnj>)w(Vڅ}xUDqxμrOL61%>l-h[!gii|/!D.F~+7l*r  AE'KVwϥ.Y*q]vfEB;(Ps H!IKm⪝uW-=ڛCiw/ۙ$U CGqWZIrfczb_+-c| 5H*OgY5ma"^г߱maΗߌY㻖vz޸'{Cx\kLA%*pVxNT^LTOSК1) 艳Nd:5q֕ŠoB<{ H!:ey߶mW*[,=L o &~Wx ) |l>KmgR5mwG]4w)D5S~x;PG7@yבbh 4+uWZ>mA+Q$Cu>} \BoP5ӧݿD Bۺמף3G97MZ,#s]› |P\F%;%ŜQвjfjD麄7! [ 8T&E@;Ufpw3%=ŔuYP#8{a{\|3%t]Y\x!}["{g)|.c;F;/9' 2<)"ĕ.c҉v#,ؖ%|Nzylg(qwkKt跊*bBK9}25ad\9H!Tn#>{BQN]X9z4,KxLC2rr>%<|| Y 9e)e.ߧՀ"n˶u^vƶȠV˨e_NbS/=_S"PNWHr%. Uغ!|˜a2 !.{:;g`JuXsvsv)F%i-&<ִ#\l0>fHbId&u-ܑU:ʉl] 'C.sP9ÄkY遶cu33pL!S{N iD={>f Yx"0ƣS0:Ef|->2Q.{ mTc(mb,v[9eQH!v[9.s="%|azi&uT/f$/.imΦcwU _$M@טթQLVu3B\UBe =isBť=Sc(ަL%Q"l]9B͵,-{Se#X6%HJ2K`Sc][9e@$G*A՗e@DJsnź.}LRaPi+}9B`V,3ϤhrfKx 6W !D%|ȜC0e6X2E*p3J-U:.c, :ɽu]̩U$ 1ZbdQ'CkYIDa&>IjaNu3M6`żnIZ a`g_t;an}ݣY)X㘲4Oz1ҼMTQZwU3Ee|wQ)^˽OTuQ9 q U3ݐ-k;uwWBR@=Oʵ% Vqul:-[9>awP+?fjO$,ڀ=zE]*}{'T\M>^q-<la`?^ڭ&sGӄ]] [^N5LlZfM{G6q;|Lk\̦y_;A]ttfGrIP~(ivLƙ՛"+:< $8Ь~vݹW{_\NskjR]f*{q~VO~o!?o|c~7ġSVi% )bw᥺4H zVLؤkt7w5;Yn,i͘`f)sNjݓΙ^|c*!$wFp0`]^e' 1iZQc!OOKޕq+F@u e^?mxp!OfsMY*U'\qL_:_~p{]ɛKsKHb;$v4yD]zHe@EdDйgBP2B1-XJT_FDKv'hI ,uZ^u=cs'%%togoq%_iwEdL XPevd9$g7ۗ^hKmw>S˥woE)AD+L/٠C`O[+t’[ ag-|@(\aݰw , q |~t;{_Э&+g(h_s)7T5~>?BJjRjXJg;'\>G6!PE"w?!\k~n jqnPe>?vO ar:jf0M:9/& "Y,WTe<ɀ74R0e'SpGiZb"?$83!]X=NqR28 .>rQSyW@3{h*T_oJ׊W̢?(T UFseHTb/[<~@ V:8C\~tL]^&l5'EL@qVvUV %5:! <.9HJ\%&3َy)[Kej1&*R֫*xZ PBKT(<sD׹@;|]-3YUP+6CR:sV(8ŧ󞓺E؞nݏInP !;ty`ݍD?;@%}9pO>q뼍5ʨ]OkܞtGv+&A$U+,1ydͭ԰*y/(a<eIiXҁ^ +ͥ Zi>!$ī !<1[mTM҄m"K'zղbE5p@T*9f9XT-(il R0V+T($/$GE *huX թ?+bI”!t`g*l_ҕ3IHG {:L%J XD/}׸G?>?k.?~OܜKl%s.e_tmru |qg/M+q]_sWՃO>N1~wkŃaٴeASw_em{on)п?}ꔑ%Jݗ{=cvࠔîGJzd;>{_(Vsg+7x]'_Ӵ+Ppgg7" NqϿzlf=el_st>'Z[N+7Vo.֏͕֓M.%F T,xq6/vmeK91OD8,5W]vӽt'ݸՌ~O:Eb .Ȝ=2LS3qwzq_\mvDk1IVc+V QSYUF08K݈RԵ*ZG] 9+XA!oDNn$ؗ•`Q2Aҙ@ʴɘٚX)u\ 4)P&3)}"(([BHN)2_?$yY%*yTZrvJZ!Ӷek۵lN̻ T ݝ:쟙:0SCi38-ŭ^ntV7$ D(-íZ,"h&".d08P/YfQ)wto#4X7A✔9’IZ\P"96vU9-KG-F 3B:j%uB\#˄ՖCEApv6cd`i959eUbQJq`oPo&;Vcf$T)GhUAajq9!(Q:XlV|+bMV>dF|}^8"[x,F F@ ̣(=zHOb|)U#|K qZq I%(i?{]j$TxP cc|1j bY u3Fv5fZF~(*CWNBxۣL$}A]R+F2Tt@W4E6Y*.t yVch8ӊJ=gIEer0$U Ue PbڠvO͎^e*U7>ŀ-l|Y Z-qCBPnA]kh*cFb{ ׀YV 9q4OQ˜d2˸?53*Skၿo]6Ћ^6fnRR4qOK8y AcPefhP0:[Qkˆ e2V9[":{?@K|^Oæ-oGlVI ۅhK`nL!y Xf!? \T/@0l$#`8D]ZW#E@@9 L]1E AG!!&0253L/ɵ7\¢m#,Pfsݘrl|Jmffl2`əc8a??熟XxԊiD0kH%NMقG ѰzL°\mԭ,V1cدKW^>"c}9g__iwnM=N RFZW fd' =B.ŧR:(s |IPWp رH ӭA؞#j3 PBXK eVHP(c*1)yoOƷ1+㠱=F9I+MgRʀ( 8Y1"8Ѩ:Gv=k-SՓ Ev11|z|E͖\3f0C" ưD ґGP *LÅdD2A,P8@Fmae;o8/!'7"v}!Nv=+|}U+5(]AR ̣8%Cg"`R" .C2bDԅ{tm̓QPm%lDnW}ʔavaM{.zװpЌn!%h}oGfnʎCT׀S>ȠMO)KF;a>O>:M.5Вc6vs6So[8R'H]oܿ8QUU^`䢼"`,]"BqKK`?K,mlGLO VszӟPg2/zb7:kNׯx=Cv7GOp0R>,o3IB8ke+^}%!GP"/A,HYgU>`kЁq+k3#G2,J~~[1g<6~*CPI}bεN HcY6h{ui_6WYOu3RA\Kކ ̀݊mp(*y"LOut-{d}wft A&# !sw;(4)y#i~ؠrpᄐ/Џo+0lRi1vRNҺ1P)L؂wFR!N7R^qe$˶{/B)I3NH|ʡ;iJjVNҫc$ %(Iv Ґ@Pv Ӕb!ȥi{#lgKF7r},L} Cf"/X)F궗3b`WHBn=L -fazJ,M x +s]%p\%@8e6400 F|,,Ҕ!z J/ ruS @Tf!IqN6(N 9@9 d 'r2Ņ[Bm_2E##o UH^aK|}I!]k/oXYYwX)+JjMmPRJ1.j "_vSBy!$ l %]!eyXX_a‡` 3᜔ X#)+ q>$^OXumsSp;aZ‘s#BAX B[8898 PH N 3,fq-Xɀe(m%`@ξp y;^G8rvXT[!d&F$^(h\!+煳r%#SP(Sz\FpngAb +']%D]%*6ř3#.| vXWR^.1yxL7 vuӸpV֯E#=f29hVǥ1^aZnaBVpK큚$;bY5e# \*w; #qdZ|#  2s2C mlL3@W75 da,s\#8 ei bW&[H.li DXR̊:#0q,E%$^aK`pZMLe7wh.uk ΰQʊi9@*v L3R`WDnCV+gJR[MmH2ƅKDXfl5Φᅳ`^Y,P_2B#9e2_RJv6<k&M" :ȁ"+59!sa V)T:49aBBPۣ/XFv9N;b} b_fuT5*֦Ѵjĺ/dl+GTVAG府> EX}^F&~˅Y^)1k3Rp]Neh}2UnS^X5:rs_}91fʆ>9efR. 'Tܸ\ 틗2Egy%Y؏%1KMi%KJ,]Ĥ,+GX,|9clY+R蔣L(+V{L2d\?PWOű* .-,*/W@;e)BL+D.rȞk.nő!6,m S1#Q`Y칏S:r$1[웺^^c ydyҗ`&@*?Q$s-X/bjJ=A*B4q[ue}z9k"=-q6 =aB~TD:>Mc Aҥ>ե MS{QmqFIbX:<#ˍȨ-?{Z#x'!Rgbbt@eN/} ΟN]Q[v\? n('$eSAY,Ӓq~5$*۶,tn,{X 8$auSsP*H`. &SHeˡ,6HKN5Din~#3uMݶN92r%}PFΎ_p9en!U؉ MSHi\ea$ (HqFBfeB5izxʑ+!A~B*Xt^FO]el$Ot1lض l;r6`_yCq7oԑ,vL#ÁdrB(˫8+~0ovF.?BI$B4;r{J([ >!f pr* D9EV* I|Q:HM#?rṯu#c;&2`JT֣ rG$׃Hˑ XIr%@վL:mbpui% 턣tzO#@߃r_eHX50C⋈0-6)cŨt/r\?%soC0&-l  iA\ZR/r `S[]rSݚ׊$cߩ\ҦP:Z{N!&tcS]ZPYr% $;lqOLk^ AZܛ%=էe(!CB,LiE"ƾ<ptjЧQ ?TӁ:h҉6=C}~ĥὈQ+n>4/WĞ,#RHLCM>b6HIȉrnAnQ:(*Gqe{v9cO+!w.pIYۮrc(d -/;qYƲ%pI۾ 41զ JHyْ n0O˩x-di.*O"d[.ձjtes_LT 렓2߮ӹ %uBeʸe[JV!X%ԕ!SZ@ 돰C)RٶBX9:22.r 8V*?JE ? iS@B9.rlݗRbL.c{  .Bμ{J]z;2~3ˡ=%'$dZ\*0_NS'y7jt2Sep̖єOB9qr ]. 9B?PB+9z1vQD 1t_BT9,{X˱,6`% ClɼaV)/F(GvS} ] a`U֘,1,_Fi[kVOirBw+A'L}i&{UiԗcY2e͆!AUZk̐jXn{q l*ץ!$?I"eWvΩ6MOR/ =kds&XˢFP4;H0(Խzgd:U"?Ge˩l6YhڒˈdQѮJX-d˙"FaL3BҾXb2D;4?a{B\!"LZFv+{r({XFAߠ$(yEE=V^LDcSX/l̽<#pݷ50գ r(# o_n1L. y" V-HZ*ƪ=*T[E% F1ATʹR3BD2@Ħ03Hv*Ŷ=֤ *!/W@ʰXLP_pr(}LH_g̤ _dxɖȒlcsn6:B-'OdAb66cTvymv kJO,jy3}9d.S=Z@JHNbX66aT"2c %'B>cT"vAc{u@eGe\NH8MRbK6k_dͱZ2xu0$SYI|Go 0դ !n! (u]PڙuYKsƼL.X\TSFT<8\352״22 J+ived|Bxy7CI%ؖ$xE'_4Cd!IPf!,#RUIK=$g^^k8yz=:oH0UDt r" hM-\P)Ƞ̔ΘFUMh&'H.{P \ 9dĤ x~eƨ.Dz eԴj~mPԑjX~yڗSY'7*rmTL? 2]]}M*Tn\H5v, ^,_)+{lCFBa6էiϧ_;EHs4*sTv6~ZkYhL\lAJA{Hv2ȁ#S'g#mASҧ4;`s>[ . J"8\.?ä[#a=Ub=N`f7w[-lSvJSkI*˃T˩ i*cm8<(#5؁_#Ѳ`SXcA̺̩)7,a!T=r^JYWuj紩&O,2Yp2DH?f`ҼO2*2uc憌p@eyz91`_S[,cr21e? Y:_zAr!QsYΌ/5Y/+؇}@YA!BUTK3:<~1˩*jȩJ+,3(r̿*=:5\sX(R%:@RkDJ r*@˜}3-'B4Ez7] K;_3RR)|=*T :P?;4IA48ђMnv+F}Cd v mWh/[@bB0guBe{J]42f0Qc&lXdb_3Lūj`S' l`)+[4j .WP r /6eA%R}Xܪl`9r܍e-յ5K7ZDVĤb)^v&D$:\eZސ))_ f .WB8²qTs ɫоOsn%l&:v,ʑ`Yò^eǀid$?JRuBqRs(_ .EY.^"/ Ʈ0pBeÃJȻ O\>JT{kdcv!d=>5n)"͕:V/2& lPqJA~(R$9c r(|в$T, c_'J3 qC%cI+GX{XX#B ee5>x26a]:fA*r* iNR;Zb+>Ǟ=ӑJIqL5ʹ|,7ֶ$8SmZ@B.M Hf,6 Q\N圸)[ _beQi{({L:c9_gm,a[ S.@&;Yq1A$"XSMZQPLzF}|y9{¾NBbug,myT-jA&\XWZ%>\itFؔQ@A%f%4@$;1אA è? #'欟 QxzT.#L0Lm*W?8m\5 c5SAr9'DܗYCR3*#iI hۓSf%_12d[ SH!9r$ˀw]E̿OSaHz^eբL|9<>$PirXPM*/WFn8\_pR.Dz׭TfkK[U;sFX{y*SddƈuI|(DoSM0Yd:@Ѩu% gm&@*0$(GVTB=$H LN2Kg隳Fh(ہdB)#CjU0ZlYS=P=%]ҜRRl7#ː$߀ؾUˢ0֦U#`]NeL *[*9uMf> 2\bM A*Tyxq,طF7j RvF´!k$uc*sQPߣ_NZZugms'cFkpuX-d2rg\R\@rWxǶ^SMZ0xPyFҺ .re_*/vdm 9V4r (25oHT.7Z9դ A*T.H2bK:o!=ObDD o%֌u3Cu`9r^B~b)XeWho92%%=UZt r*@|2bcO |AJMi}BPrrL,k_pr,]䦪k fX S[L.<6,<`_kTX/lH<#ȝCk/фO\"r% XP3ˑpƼB*"N}%OvbCr$XܗcYPn%Y M eۺ@QX.@~H2iip±iՄ>M\l*w+A'⯓:eeT|9uzc9q+{oGD!5U\\f\.s8$V} [nZL3 r( iMe, 0*aiԁ3N4utòuX9,{X˱l6Db 42F)E1VeBY/@C$, +!q2T'P|P }fYmyj# T;YOvX sɰަ)#󎩩ZFR%Stv-:բ ї kiFVa?"5Sȿn3[xTcyF`mKs#y@xq9K#&<3\.ev㪍jQف r:&Pb- ,f) !r!ȗ}xz!sɭ,oq$;RS8ʘp %aqrdSHzeZ\1c$L Q82b(N*cv"/G2&C8{YKIdPBt{~ po,;BpyW"HB"ClKVl:R5n@^FBHū`t;UUHmNy!.B ^3%B2֖YP=1Ŵ?Y5V6׈wx+3]}#I]a&9"'s\.hIʽZkH?6͢d/[L%?T.W 6a)$k|c\exGA-U"|fQF4Cƪl`Y:YB`8VuI-]PVdyɂu6Ivi}Nްe.QT6~"JuKn YC^d-əxtjpa+gբLV\. : EFF L8')a{B0[f3%B P]O`ڥ=e&nץ 0V6lp0rZ gF묩w2/gO\e(%7 rdZ2>1cG #'t 'ܱ=*TڍTN94-QPJQ dr\HI;).8d!QLjɼZarăJ˕0ŸL,cUR`P ډ[,WYE)*{ƪQn`9i^Nwc t\턆j5iC|Y+a A]_UJ(,(>qV6f%v?n tgCħQmPޣr]N?ǡ~/j8T%D\!A ̬8!R8tbRX n! FFJa)4UrJZ_NpdfHl#GDx#JQo wi*pȳxM8nт.=H D2.G2&*[ݻUz^Bx|&;%0բ6tfQ&yee\eȰ#LI|-r*ryihX1†cLn߷"H[Bhɒ0M * ۃJ˕0s<6Kxe7`"Ȅ]_܅~\ߝ4ZP~.aSr&XP$w,K#8\#I]0Ee %.WX'f^:5l;R^er*S0V6,aY/DzȰc3KZ68}q{my>He˅QIh-J!'~ -( USm@YA!r!`2j%~<#6q?lICjƺ T8jm0칷*0, B]p1ϊ.0֢A$.@pH Kz$61 I dgkIsP&ܥ)j=*T:Dk)FbBrkF|TKmՆr!L$J̔TFj2զCSBJkS%& Q\𯓲#kИy4s}=V64p0cĤ;Luv<;cE6եA(PNXLjUTpb(t}jRK%_3&Q|,XcmP9ߣr^NpA\Z.X$ jFԃPˡ\6ҥ12r4/X/G}ȰearŃB˅0 RF@iQƔQ]0CH4ڗG;,3=6fPnymڗ3rAWRARc-Z0drB/01.$?Y̚;Jx!ZQ-J3r *=*r*c&O1p*D!Ӝ2BlA(r(c >A.DSA% # L/< <XrҺ ~]LD_+Ae R0`u\&Y3YM\L^P#:2j'">.ʚ1o@YA(PpD2k؀WOwz uiPke@9Vdr*ˀ{I,m&GY-Su]\)Z <e:F>( Z?4T;PV{P qb`$I!LdL#:_C(aX 2 FXV<<˩l23kdxȿf w}vlRr%.Hnע5'/cEE9էY^r^jAe{~9}0x6v"PY(3rR`Sh#KA({\.hӌ!K Hìjj|^#H3˙q/@a\L`7 E瞦 F< 6꩐-v"9pC, *W`#Z}}OPBʟ_KKj]C#UCnP9ߣr^N8%_81l9c bT:xʉ˅0N6y(Et`@KBB&K,Hx/XFu9k":CReq6RG0>qJtFTzuZ\ugb1$QSsO5i~}94Ng_fSـ#45%dZCڴ%k$ja;Ei`mPߣr_NHgpvwn USN# yRڦʑ`ò]e3 jδL$eU5m+F}lSYZC\ )຾OAYS)r% R-w~5˱FFɌXd~UI.\nUTSFXv<<˩lPu:XhwO<, ! a (@+39慠̶ #eOwH)c@9A!r! T0(.2lc\}6"T(*DkϽNr(c֤BV)5:%,o4T*TN\&H_>8J@P*v!R0֧(!X#klcQP9ߣr]N0)+~$i Kv7]JQ A&.A,13bYNS}2e$ ^N:S-ZA2H2rj˲Qè/Gr;8"cP +FHn{eڸ\ [G໅癜AUm)H:r?e=h+Ag}I;_-Rªѿccz9φV)]N(5* uIT-j9{P_q'ˠ:kxH$m{4Cڴ>{J\ 9 deȤ{r9ԳuYLtHN]J|e^r7k3 \ӌ*b^ fU]Rؕ&LV\!R?]\-=A]S!}Nl,[51;r(˄mY/bJOP/؃T6\!$Xࣉy$Ʊ@Y4Ǿ쇜@n!@v;Ee:``RK/('.κUU#=sSu3j˺F;9Ya3 r* eZrB"""v9:¦4!L*+edq9mtp/6ru~FcŨt q9]<#%( d,?\ pT'TF˕9#vY—`XAͺ/FnlpFX<<˩[e5-AU9jpBxy9iF"S0FH4 %_O"۶rt|y9C\#\ᙜ9?v[A1 ;@Rr! dP7T=O2Rv0>-N\pbD&Kd;\9aI<C3E/"1U=O[.-ML:HDdnQ=զ A*7.WDHPy-4)y%*S7mjJN#Aκ'%e)M>9,_8Ȕ^ZudcAW{L26!;#IbzD߱=B},H\k%D2Nnl+cI $B軅:VԖe^W3'B0PG`ϕsHv (C{/A8FLnN20ܥTd:ˡ,:oetJi^2bI&ۃL6\9fTZߌP;ҦE3%9եIzQ"(T5 ({Pˡ5H<ptXuZZ ]/A%siߔq` H#3cT5 ,{^ VcŽ0yTIv] 2֥A*Te#- LV D} BguG=ۃZ* ϨاoP9ߣr^Neϑ1#-X:XqS9񽴟b:xy9#cF)չltwXMSFFCP\ >ed)ꋭ Q]ȑ9eW-"eclPi]圸drFQbl(w\Bq| sɹmYI\L?̑cFJ ϧ5 ,{X˱\^d%cUu4jaA"e.{TNB0#MKYw-ⲺTA%J.s.  QXlaҥ[vcؔrH7MU,'?:0)LHfCYs>P=t~PR~&AF@84eSFTQ1v=((ֹǤ#T{T\<`  Ir%eU~l[ /BiEM`?shT3wjˡdew:T)kA/Fz91`_S/$%Npzз!,chɪ=Mr"c$QΟ9N,'ƌP YRd r&MqͤONc= ~+TN@0V6lQ. jE@ZdȯyE <e: &T]Xr">")=ե)r%QBxl2reHpeyl"@$IDV"xwBt}nksDN=L7T p &LSj δIF609+gyv/;|V1-.L_$k,v _ʠ i\5 ,{s^u00} AZB4݊`JrЩwB9r!L\p 2ʚu"Q9CFܷu(54(%b=(PHjHD䢕o0 ZIdr:N'6Z3DKrvT;P|P }r`Z=t*eԗS9}PbyB23r޿.#Og!NJAe0^wxvu*֋=_~}9K,#ЌX ύ}ٯI??~kUrsT.5”(hrIEcB)cŨ\|9[.l84\a$b %lnw Jȁ`5e¥3MeT b?; 2<+9Q:uy^7Y,ےHG)#$)cjy E/A(c e>uڟ9 5iͽ#CF SnkT5=&Lƀ{mF`Yf:3LaE>dȁ"'ZʉMXL(Ѱew+A0oh_0r(@zH;qǧdpEJݑ-3EesoSe~P.g9*dnsd r&+VAuI?t>]lX!5զ(eA\?IT1f=,X2JjqQv+az#(˪rw/Fq9mV&B[B'"P1Pj瞧q9}߿Ves'hqʩ{:զA*'.W@Hy%1O$udQSRk>rv ,{X˱)Fmƺ[YM@űt1(tCRp&RݰD wOSTJsO*>\ "UZ ՙXN FM- AeX.P{ZHk,[sϽN`vR9_Grai$.-wBr%rZPz!#O|JSBrŽ*UdfLr?˱\>iRm3 N|Q5u5 T1j~~2%,V:NO#$52ޠrs>[ ="F\XQz4j\C;*Yg%Ash瞧u0``#כ8p=:d}0(yxʸ`֑JY֑yduUV3}C S3yr$I Q?;QVh"4<֜"+GX,~y1m"+Q]\#ىQGfT16t r*CԄ}V9r+~;PV'˅FF}kw /Fz91aa+ibMsiQ7ijg}ŦlPYש^eс$e3bg9ń(;1դA(^.j2d:*q=uRE $SmO5*>*GAe{v9UG<#`$]Rqd;-[RY{md{?euQVHd M\iFM5idw 0r;N/XF~9m[F Be%PLU#۠ri:ϙ?C cMP9r\NeHpEMPA%d\w32 $rXc'8L~Ԣ"J# J)e dr^@Q#mc> e #IͧAr{B(\.XMskg*;~c5.gr}PIΘr9'|$˟{Lڄܸ8j!>cC&׃Ln\. $ [G9{5ESOjPB :}VP2V6Q/r UTKv[vۉNOp[sN -KV?̗SE˒('B(D2gr<9U̯m&`¾kQFYP.2TaIb,̨w \!.&kFry[0Ou.9NbZ' Sxxr7v+I*#g}=s.JTƊQA*_.@*`r9rABPSYF%A߭ `b7e/XFz91_# Ria+FLV}m#M^|}7iH˅iE [v4KOdm `3E">wn%:5P)\ˡ#q"k64OXD1Ubʅ^ GJ 8AWsh$Dy@HOuizu9s"B$U\(j# ٟ1(uG=*/PnfEN܀r9_{zכii.}d1˰@9Uudr_@ɒn8ѥe;jrPpLuiCs\ " AY¿1h5``wSe@29e&_-bTkSP02O2gĥ'Z ޹ZfS]Zo@ ˕ !LliJ~yjTl@L5i2!ڭ3U5X)@2C2FwFڲ^Ph`1 ZOIA5YaD\.9R0u$N"vd˂%]$du"! ݓLFBl8W|rլNJ6,TqR\0܏7w>~-a>dɘf^sMPjK=7+%{D軅 !B^fH+)Ω? rÈY| #*H1y̻ 0;eBV#B ߙK1ZuG }MWA\5ʑnPߣ_NéYjK[>uP(jѨb:x~9mV#KNN9_>#1զSBr% 8ؚ :C~a]q9-G"g#bL*Zb2Wrvr Rkl2NX]UjI&Ln\ تee__3z^ B^(s!RQBq(T?m9, _ J_;$ M#EEh+F:~~z$-M?DD9G'7Jޠp>[ #!fSHqr,xFM [Ogmk֒h҂jesS:,Lǿ5({;mrN~NڪOQޡ22<YFAȹTW*)egN<*2D PFT,~y-p+H"?JqiE0uy$iSa9/DzzѲ&m"PnjQ3_T*KR*xy9ccz.cFQL.62te)r% ĈDBrrI˨.r  ܢ\Ǻ*+vjtu9s"ۨ;R1qS=Z@rB}%XsU柧ٔ\؜Qϧ`!dɹ4=*T.I4jbOzT嶔bT8{TBD#J >N(Fu@e0T_lS^SulXnNSbI=uT4X,ݶ]֩jes\>P0_; AuD+j /WDv ?SaJqoFfS1"r뮑78V=,k|eyz7,.sSY(!e]àSm[FNuT5*{T˩%bp~ŵ=*T *wd#%B4b:x}9k B$r[w7p!YVj>զ 2˕sFBY:/r )$(63ShC#)-jѿCM˙u0scYl`N"1L6~"+a"5vSż`Z|:H~sϔgX9:eGLP)x{e<eu Em[nB48+T%ֱ DRgOxP ~zQYxf4H/`'E`oZ >'B`Y)r {rEھpqD2 re<eBu+ ]\>L(Rw1Z[T'PNyO ˕#FY_!olT@X!\U sʙϽMr&*QQ"G%$)4F<41գ A&.W@6ZoeP+!bSmZzvLk yyzu9#QD-VbA\ -ƊATn\.5wPn8ƌ !BMd`;yh;,5``R(FidY]<6U $*FPv~.l`"A,̐/SLh.R,_Lv~Η3e2Jri`8islVn'JVڸ7[Ty({Pˡ VS`0>Y7572j @aNɸV )ljZ BH)!Z#&fpϿN fLi@P<0R\A!«q z~VXyЩ9A>ȃ[R)w-CҒ8%|i (z< \u:t3ά?9.LcKv_;vV x)-Eqy1 rUfuG޹V@tG7س67Dz) #$y"&:M;yE<ܭw/9:bުE_ ĭݍy,3xt,7޴]2 paVſ6NʀIPeS@9r^Pu WB9ql6g܅(E$֣iL f*Gqee\y1lk_UI}:Uarb:xʸ)Bƹ4 n^ZY1է )r%H]1&g~4˱* SZl4YogIّ:V\.2ib=J/V4+kmM. 'PܗCg4?E@mT('yo-QzX1:r5_f# +eoCtGNd\1p7D,`UDza5PHN af۲XBΖ ɗSCz qh7NZM[Vrr:Mu0gHa,pچa%>ե A*K\#|w԰W0EnEؘXNؖ T5PYޣMep64bEbׁ>e˅0 wYSv/n94۷^S!'PV<([2䂤cM[0~2ˡ,ImdԢ0 m/(9Ɗ͞{Z\s8 ¬ml osЄ@]eqH% ɧ}UN1զi(gJ gl-Kd,{X˱u$U|u9?x*Yq%RbdrSl3JR-زiBRiivBv0q?"r Q\epB\cĄA"GvԩSxySg˅0!RLƜf|; 0X6>D =FQM]<8rG弜1`gW90@')f>VrRv0q_(4SO.]T4*#TVBʀif LX/F9aaej.r0{F2O+k1K{].;*?=$B~rQ`l!c yzu9q"b|i nI}+: `'J!$v"cr,c6pKY[Y^d ;jL+F}ܗSd`V[9N,ieh*!&{r Y։;[Fˡ\KGjLNj7vEǪC\&r&}I GՔpkkN5i}@eT\ !"HJc]h^[i(Azv$a1L9=,X.UYj%+שPdPaTl"x*` B$ 8){Rl )$=\ $KGe3YkUcU.FBm[ڦeA`Y:A@-#_曇ޝ&C=Z A*[\ҒС.+款MTTru˨-eT9,{X˱1֑̪,+UKmӿ5V:p{&R0+JP %m\ Jx/q9l=m#}R#:8o6 ץž{E\E NAa mA*ǃT˩LbFbNR4@ ;(Y; N+GXc'Sco_y >wڑiS(@29/gr@V˾@YS+V ).-N yO ˕PFe˙=PjR/F iN2bަ9`_;(ò, %/μݚP'P\v0c٤*lS*Ni'JN](~6Ӟ*G8r˰筃 _z2?”S Q r*QEӌZk}$ K} ;TVB WSrfkԗc,lq`1KO9E4*Ls\\c].L&4bͨKʖ]=f߃rP`JI:g$&_lʦ#7"!:`v릑y&eW@Yރ\_vXV5E [)Jb+D},wy"zY0"|k_tIa|Bdrb0*rlN{]vojai'45,&E6VT/L/ utz-YNێ5XrE A(\. Kz\տXL+e'<ӂ!_ϮH`-c ]cr( "#״ei1[!֡cTԕSH@Br! HFhCFt ^44=ۃB˅p b^ _Ne03Hw oGʧPi:`5ɀ/H\m3&XtS]P9rJ!#^%*!E|Q(Ǿˉ_vOl[1Ur,Ma?[Pt5·DZA>u0 R:(WVʾ'5զ *VB D$#If/F1`WT{C>V {m\!ʻ6$ȼvM¯^`q2a;M"X1iCUZ kĹTP0F cr>kՖ8 ę%(ciQH)Iha\ĝQ?iR:#6c}v0~JrFWGԇWig-ǏE͍Kwq?VʍZ%#l7m)oqQ@?mF~,<].)v;䴟xL.}' U:"2bKAUX5Z= $7}!Y!ë4w*t7"vlAꏶ_C'gǛ?.6w8WLhhn)&- `#fLKTYKa&*c{vv2'Wq d?V+M*숵S\BqNBiSIyf"=iK>l+b+z,>FiOBTH+@Hj#/Xq>; ,t`7fݬd Y!iv2[' 9B/K>OOm3\އ 3Siq|mlwo0LoTL&wXPvc,?.{oP(0|o&7Qu_GV:[ ǖ~Ja!WMO)< Ď,<YcKVQX]O)< )景~ͳ7/'|6wS×)'SkޏZYWT7׬W}p >- F-r~z^'~I2[m=O9^ѱ8z<4%s(nN+7bbHoʌY.:LuL /O`\+ۻ#7/h'+ח "qܝ, x1c7Pd0*>\4ubfQ IQ^^;Ҕi=>CH!>^#Qhْ=2,E&phL]^'u>e4SI]lĕuϼe9)}1i+UuiV6y5) 5!Y E^\ys:y_ޟ򷷫ouֿFS〕3nͷkt7O)LIc|QPŒwmXXTbV9+uN"{HDXE=%Xf;sU_ɴ2{ +Qf%m`Y{ >,cIŋP!VbōX]yDj/Cl5@Cxjz7}އO$+ꪮԚuLd5L#>1.Ӂy+Xd[]}x94gn_Y+dLLmΰf_ȽG+f83#ARA XyXsNJVNJfFB1 Z_>O6~MQij0E3ey!:Tkfwu6gbfl}F"*T֔}]n|YuehІk.@=ê} Jc~<*!ƒd!16,ѹ0u)g*{}n}^ͯoR n~y~>feu~~}/ci/ qdo۽;f+j&OV+> >ZUf~&g Iv-*쟟Er/=mMpR+ 9\77߼W߾h_ڋ?mQF7VrR?o|,U՛_g?7oòWo>ۧM '76g~n=ܴz٧-aӦoV'g닛Nv}sq->YBz_|:_tx[Dn>lD6nf V/, #vÄQO7^0>0"GI7J STtQ0>0ɫ$`]0M`jgJ]$8}^ 6p>%%j.ՌхihF>/OWwbDRB͸\0s'FXzaq;Dvc$It(pw_ #z=,FHHn4_#nn'y=WRR>Z+>1Y;=݃wO^HOw Otʀm^*X]5Cs. R(N )t7Ưy|(wH>n+&Rhe{Ϲ?zQ)6f* qȏxፙ \mvq徽7f3'~>wb0%! ,G nӳ\,z߶ 2 NQnro@)lѸ-29]f?ϿZ7Q]vѓZlus;PY صXe}㈡R-4/)GJi2R!x gui]Ve,9}zB"%\ j 3Wx< DN+TۭN`Q:pTAmߦo@y'|sLfLssm݆H-3vt03ҹ0~1X.8 }3mھ=춵oM():S}8ouFZ,NQUҗ]C,[^v(OwT{uZxPqj c,iT8 R,O;|D $YJ !O(s`gKp?;} .TˡL .RrwUfzYeU~+K$5NLY`3`- _ _+JN^9\p VN5%5Zk;;&TơAD*1bpeȀQ'鞑h!'}[(þԔ#U=[O $ ʘ5"fV2p-)`)T5cc͸Zgu۔4{ϊ#Lϓ7q eًd}ٯtk[A\d7^]^PLrBGBaB3T= 2+~frCHH*|Lq>k5R'bOOP ӗ^`L|_@ŋQӏl \Ћ@:bt@MQ nX='W,22x̝gƫ^Đnn# ++(x1a-bV@'^;Nx)sp @1PYvwY'R׽^ýDih?!-cwwށ4‹2(F 31 SYwwYxY'J`%,*NA:ASVDqRǀ"PT\,(iMpA(gHDiM&!YFq&JZ=10&RoL" 0aQ^Q{!$@Mh&ډ)iG J7qTW8 @ꦍj4NDYݴQ6"0M)n⨭^V`M:(DQI+qTpa "ѬU^f;u脗(hpE$fh^iQX7u^l_e,ӵ89*HH$-&*O"PJMٳj #n .@7mhYXF1yUjH+ T e;[I7q kWAZX W o&ъ u5Gf%#ċcR'9Їh I4SlTPYcb{50aa,N3!DŽ#4ĸ8f"/+aaݴZq LnX*=IcY$Y '@&Q@1;xuƪN2< ={eUeUEsjX6DlE#ؽ6& |$jʪ&b+7d hlؘ>Sl&r/mL^A9,ͤ6A" .LLnHJPrhje7qhSp@4fHՊJbcr7qV3hl#,T#K+uhR"F3q^^"&HvꦍkVF1D0tFVy 7Q%LUdJj>"]R5QZqx8Htl7pk{V c@n(^B5`ʼnM: )> A-86{ oc/n#GVH`iC 0<!KՇ #5SNJfCbPHTMrh :TAL ^wC`6؞L|GP3qvorMa*đ0Ze&Dj e/q$fȁQ#Ĕ#Q+g4PaMI/48"e5GNl>ҁԲ:RUlhAfhH7ujWsR@!cok !M+e8Q7ul$m[ '@fMpŨn,e#,6JuBe U6t[G[iXBaD7mV\o .:̠ì6JCuŀN.*nTaanQ[(jȂDQ&*F)cZ5_x@Q8j4[,G:a;qjK K0 \, V7ƆnSۢ6r=8gLfuh]22\s*nn&4( [ `?n⛭uQ g٢]<{z0qJ / û.sg*y27 @4:tХb^Q}E6lf4܅iM64?h.ԷyҿN?sɏ3ͧM/9tL8=;??mڱh[ˋNn>#gtW_̍j2Ό0v]=IXZ9Km{ƪ!{F4Gd֟|`b4Z%Άg waêb@mжb699Ọ3ߞ(Voo:p mxsa'l3ov4oߺe{7Rvޤe(fcΞvQe 0(fczIx(3N=R t]ylKN@к74(-S,R=ڔ1JIマ /5C+.ǰ1j=OhYj:hbj:rg[7l1KE;p>Ҽr"tLZcb8uюGX.Pr n.,nA/uљb8V9l"k Z!5Y7e>, l @?И<5 PE\>eVzM\zZϳmyv+Fcy8f̛)FcHј۴݂Zi5і{>@̎܋i1+BJ3y 1qhqrj8j_[j82&,1C ;9SkkxKCh˽ysd;7XFɘjɄ>5SnZ\]Z8cZDFb!c|hKOh+T4k1 Rܸ7ku75jy y0;4v>l2foEP!yaq~{j4`|'Uyhl>V*oi\5kBڷ;p,ͬwk31Rmf)덼TñCj:۪[7R *5#nN I{y[P!VZ;5[-*g7"b8VENeY 8Z~;ߞQqF$ #f=z%- SQ+"|pcV y9p5b6ҊԪ٨Cge=@?5b+7^HnٸV˷is5j OLO5V~Ⱥ2fuS GhmCOSFڀ],/f#(fc-IQϪb뭆TDލnxx#q7m1Ol|‚dQMǣpUCZ{Ŗu̗Sj:jwgahƛ#J GB Ƕ¡ޝb{ <#DKkli1K i3--X5>b3&:-,|stXD;m,!8tƽmFj8bqv)R[{c_1J8f ߎcS ǀwm=%cP,TroP= 53 H {tL̪݋ 1Ѕ"π_Ro U^x3hә,5S6|aB+ ]DZZ1RaL<j8Vrt۳ 5pЁi>Tñ u\nnVm| lXZ-9eh}6q1Qlv혃*[Mڐe rak2JL^`i.9[-1oIO5!Ց&&^;pDe!L>5mwnj8bbؕoÒ;;b8Ҙxn9Ufhu_yܛj8ZOΉzt 5G>͹35W~65h#s{*j8.뢲ޕEψ+}ߤTCժaEϿRE꜇X_WbKqVͮV`HxZ/0/L>b8ZI"<5mvmC GmasHgcYoT}IwΦieG5&Rqfh ՋeKpZˢ-{b4CmxŽ[ i88˝&RLq˵;b6Ngcu?^މ%6X컕1 e3ov9j8o2j8֕}n=j8fuxmZB ,|6~;j8jML-H5SkXgd=n;yWNXZKaƚPJظw^tލ]8b4jvxUnU(U΂7vƪRaylh=[yN7i 'z[c<{ޮtlJ ZFmӸ7c'Gh^EMZtĦ^V89r̻m􎡚*֘waI1Gk9lzކjn&ޤuW8XlՐDCYUq(Vұ䮚Nwcfb#mWvPqӪxuQqh֬} &l\퍋%sj4^$)x%4{gm1R?X޾;CxZv;`j6TGYiڗ效]5łh*9#/6vRLGU3gZIKۋ7̮ 1ץ}-UԔ%uZ1E\GκTǚo+󝔋Zqk7aӵZ:k=&]zQL j6yV魆ch5:{s;7Nߥ!U-QۻU1=˩fcjŗMMLwј%9ΗglfcBƴ$޶1K\x6SS1)'4o۶E5K*: :R G1ڲ{svQӱ ηi5kҗxCTñ(uZǶI4lP|X`%e#{zWF)Zvb.gA5[.536dl^x#-pшS=C{p$j6. Q g# 6ȱpĻܸn1b{F`pڂۇsOq} :KF Z?qlTq㔵MZ{Fey{6@8TKB0h\]hxVȌUq==GXb8.>,ĩ(B[6oUj8Zwa婆 mt=PFvKps9O|3'U]jQ,}i{ЅS!{0餘,|pKTÑj8ⷫ{6p*4X8޹EmHJ[dۈ8硄cEc\U1K17ohIp<k_j׉xb~ Xb^c#RӚ=ojj6FIH,P1 _b=uC5b+s&#ƈxedX)aq1o 1.wn1j6ж/ 1f-!ޞmf~KlFkys5j4q17ԖV nFqZ/i[|ͨٸZ%nH8_Gz#oz93j8ZEMYyC SۗЙQgC Gڄys녻ݎUrvѼS} |,Wb8+-Iab1awxM ֪˴7kNAڴ}5B GО"L5I^绰=-!McߕrhV-7VwТb9d9dH Zuu2Kܰ@`ɨ5?6ƚ5b3Wx j9cxn1(MKTYS1Cl&a9W0ߦJ6ă';KLDŽTWY2v<5S_:oh=ãI1w/6 @?vt=hI_; NXZWkRQ+ώvTӱr cMV3BL[XlxE@vv ѳ|t<}8p汭٬wnS55Om!޵!tdH,D}9Yoܘ[j:bLl^H~䴚4^]9tkaܷqKl;!.k_z<Z:;kuqi}h;R:;V['Z:ю1$t #0gFPLGYZZph7Uwj:Z`Uev1chYKe8]ݏnnCλ8ϖ1*1Wɇ5bf8ݣcZ/Źt wi{b: ўmP1(U&8c5ل>y cj]2{L9ia؋zvѩcXIӳ޶UpL}:nJ 5K-*fb޵11j8Vo b:ʄĽUmyXR>ˆ}rV Ǣq'_ZSC&VñKzzGr]džZ S]XB ^^晤bykn)sPvq 1>ȫ7]NB Gu_xKtǩq+޺y6C GP^iځb Ө{qԖ&lr`tHrgrt ZFE0m8j xvl!jVr_ j_# ^5WnAƗK1h"lSQ+x7|(UBLܢ&,'f㩭cR_E#5o |e:|p<Ի4,r֜dz,h8p\(GP֭ZgR GjCscmRMGJ{]1,b:Zcfa,K阮~o6X1łf[hjR}1h6ʼnGZ{Z<7ZV!chц-,髦Vm2\&t *-:1bh70VT1Cgbc=wcrbpLGZX{=[4opꋽaJ{{GkozX!v췹/-j6V)8:;Qñ}ruXZ-9cMtsۚRñ(uvY6IB *gs~CĈ5HcGcXUa~]ũ+w9i 1[ҞDzKf#Bl#oL5P̛0`ؠ#7kw{j:b*F r1pb:N}h'/! 㧦u3xPq vzeIR:† whE^M5W*!qKlPeE?{j:.vWt1㮔my,I{uԛ]ܻՐ7c3J^{>d벞H5{ϓMؔѭ͇6RLGϫ,xUojtD->ZBMGH]^uc;b:j ^o`#(9[E5GJ[czW' mo6wp %'v8wj8*5'|f)1G!監3Mb ~6UqK#a,ҫV Džؾp>Ҫ-5wfx;V;Rln1ޖEb:^ 5=vox%ְZoyj:u_eh>]W7tU[ՎxhKtʤ1#ߔ4+td0M;_={-85#.{3=.#n ![T9V GMBñ=V;r!cJqtq tlqJLuǴYj:S-soΪnp>ԪR=|6Q1kr=1Fi(2ߘ1(cȈې1Cl:ߜt`*#,;1P1!)pCٍ'RMǔ[3܈٘Z%4~]"|l,-hj6VWo|vl,;@XZ9k76,ofcihφ1"tԚ0f_ZTCZylg(1[D0ϙ{PQ,6sgY5bUz%cf[j8B# /܍(5!u7߫ror85GkfNALZmŻ|W1Rڲ18fZXzW zoKSVñr<~Rñnx,[ Z*4QQ,mnaHlyָ7aZvI^V н|Vӧckuu~9=b86qHpe6`3\@ G ]b8bS0fpVGN[]y< 2pug>Q񎶞W!TѱQi!hmD[ˊ۷a;zV;lFLY/mϭ}iSq(PYޏe8=7~}qKe"bmň *;7Z ]>Ub8.pݡ5 IO9/V"N +ѽBu{]5Hg;֭2X"m;Wj:^ =6Qke&ƣKMGXvo` H*-mXwcK1Jǵmy-t$BݜY5ClU۞Hj85a/s5:r/mZ V:/X`Xoʎ?-ǵ^dK,۴bՒuoI1C+Ȅ62,tJ,2hAdyGRMԪ-(.cXYhb꺩cB,Xb850mǵǪ(IvǶvb[_pQkie獚Iو6J R[Vd۲EDE)ǰ>6<ᨕHn$cЮҽp۸w>m1\1[#m"%ckgQf QӱLbx8uKEwi5Qb&|}6 H9zl1sZ5ڵ>!j8BkIbDzY5Gm'ZoڸuX1Զ&Y׮ 5Gokȷm5GHl۵&GLǡجGoiM6SM OYX1qo)1hӍ1;iI?/5wf97k^j8mcx}v{b6^xTqCsl+:UraX,5UǢv-##J(YoQMGHU-7a*DZ(1: bжPqBIGҦzd8Z~o҂@^xsѥHUEU wѭPlIeϺ/SM 0q>kXM@M-)ڷB鸐ґV鱯2Qb:jMІ۴c^:j:V?âQBlʲ b:^{mEcXGonj:Jx][s)i]ܯ|Vӑ!uE硭#K0yr/zܻ#ڟUݢt-0x 5Iw49fԞOkaQ~Vj8kU\۴]4siȉ-Okz(Fsbf#tBdo>[1xhQ1 )[䛵ۡbίH1':5 t ?y aj:f9f 籭1ˮ}]6ZMG4`Қj:&Znԛb8VHHC}BPñJ usoprakU&]mCh7itvU:VpPFH_)a|}^iH ǒۯiQp c}|Wު%wdzqVLǀmӳxtKݛϪ=5b&~]M阡.h]}j8v:vPUe.Ɯb8V?_/z3=ij8VEgpmyUb\w9:Q~ò qX+[;RƢN̈́pZ޴e.pR&@G?M͎Ug]"XqJ3ht[7i^ RMYva:1G뉶ͿKZqy拎0 O*mD p\XT>*Jٸ5E˱xYmV]wbe(>;%S؋wLA PjweDR G0Zycn5Rn7yy#ce{.=OMǠXv_ncX—Oƻ5fRF!oh[j4Vo쭷c]@\ʼissb4&9ڒs8Qz/orcl,f߅TŊ(6E{N4ӱVMh6rk3t,~o caN#JMG0h[ǰI5bj6,lkN/cYVݬMH zqRj鄞1vflD %`^5 fܽ) #i 1ȇbRQk`>{np1 7b̽ ;pI5gp\Zǽ^[zpuhwc17%ƹxt+nF{nގkq!Ҫ* q"L.0{Wj5|Lp;9F[N~e,R ǓsV۰䜚bQI<Ŏu>W:^EfȐұmg/<*NY.BLGBsEeVCSӑRվx̱zGGjU{bv`{GZ 9|(F.USe`2K p aE^1h 79n37b8S}.,':r"}e3- %ڛa>>m1ew}.d e9oh{Swj2j%"v+ߝ;j421} ڨ1qŠ>X6Q1V_5clIba;1+֎'P0/X%{1oҼ/t,r_釴 TӱL`>7.{.RMǢm[˜VӱBL0֬Qk6iSx[RӱvmY珹; aPcp oȉ꿄"YRL>79."zgGXz\0#:oh P Mp\5Aل*>9kvpĉ]D.^+F؟b2ߌMTת8%up\&-#7NƁb}XWt(7E Meδ|9F擝PZ 946x3b:R#l=^ՖH=#)s kQ Gj0qK۱Aql\4rǛ5VvlkqrzMX@ٸZ~^x{pܓ0qCk' Xs]MeOL{9bsx6S!Q]^ϲ.5O~lFl]٘J6,qUޭecV`fUzV٘Gs ׫֣[!ec W?uaI13/C9Ck;!o<72lmUXuMS j<״ N5Z{lx1C ǴaY#cj:fed̻BMDŽgAx(1bsBSY)U+,7^uXZ/i9-r%fcXe&_wFci^U1SҊ) ۳hz(6A +俛UC2v>3ll37ive_oӖɒ:/wcHhl3&:š%F#nQPFhDy!^3v}&lV/Θ_]=4lVZOz1S K%.}#@ߴ%qj8j}H˾Qq(c^=<]\Hja{sơOH%4.:Ãb:J:^qXj:R~ңrnnUj&c;/1Wk}X3_fRyg仰ގPq!i[ ǥѱ͋mÄzVG7tyjs/N +5W}vV cX1"i]=j:ņ7wt]Zߒj:U7nh1KmcbX %c9źU)c)阴e,5K*rXFciudZ%Fciccie>>j:֩_~6s5E\8`KPñqp>xTñ=s- b66qxo9wͪZ84z>ahTo8a7Qb4Rhs&l@V{o%;F#Dc!,fOFhm/IdǠqb/ϼY|L{nJ+bhmTX1f1{*v߮b62ZxP 5ՋF20CFBnj'N Gj-6`/ZҦ0IḡcU jώMf/WMU[LWUg^j:.t@w-tbFƆ؃v=2S֪e}&,ݧfc؝*'ޔT^Ą6c=8Gޙ-DZh][Ǣ+5M'$z!شn˴n^Xͬ+_.H*Zj+d8W68C+fCQfQeMFܵB+H6r\VY]mJ6:&mC ͦ6utZ6O؂ nu89˜|̚J+_uQ*#;|^jޔ(_².A62֮)&hMKXlQ%-ܖuY,Q6ՈmhU wBTy646O/>cظk&{[)%Ru%W;yuG7e.5F=<ѽ't(UѺMl0ԢiǼ,qj^^ڔΣF3BІ5uS]VbʹZXƔUɰi.څ\AY )Z"A<>Ș;k'epĶQc.#=a rշq(mcbYHUuɦv-c*5ۆ& :rImp4]"54hgKs l#9 m^Uj湍VB5h zf2iCѷy]DUqy"sW Pd el\}S4Sh[Fel4Uphg68*s PL,cT圭C& gYr֡1l]"ehmyK<Ũ'9f7(# e`̶ t+}pt h3X˫T),6V[rX:;t-*NRa--E 2ef,1}YKSUnծ\IJW]+qWY(wx%X\ex:xZQX,:}hteu^؆e UA鲍YӠTUX,TF^8[2bedl_UU<ކƶLVa,\kUͰ(I Yػf ueJ ll pZ8emTemFFO68ήY<X p`K9]֭6` EHG[UzKv]XmgKu5qm,c&D}bh ZبX5G։h6߆FubJgI)el]8S6Fѽ 2ϪF(h=æ nhX٢-"qWYW'A9`Gj42:.Q6:lɍѡRFGǺȤ0rmtZ6QsLy6:,U3slcݠ")Ml֎mC5i/,HqTV6884!XZ1 Qf5MƔ.c욶WV°68BoTrJg辉UlKQ(;Ա2WM#Ժ#jٞ=dQ˴oc#v-qj h-Cc*4= pކ]gybT26@Re`ܵ{֛Nj]g!8UUL64. 5hJp&гVnC5"Ҹ,bc/ek-˂MzQ+նcI-\x%O+a8b5V/O|_v/jl^|;ͻW/j{pΝD.|yqs}}yq_?~v|3\=]||BM-[ *}{P:%5x}]{RX1^n_N>>}8z͟._yw٧ۺ-NЗo~{?\;<;]~^x{ǃR޼yLV|9<煽ϫױl5PyHhUG[:؃kt[5OvT[UNfKճw'@BgM7=90V}8T<24OΗ(@is8g`T =|r{ő'd3GTҺ|bD(LXG 5)#s; wX^RPf,RB=:txZ RCޅ7 |qy937_ͧ/1W>wx00NaxxFc!O_幷hz9RsjdcvL#/[>E#˧ D Gۚ[6ښQp+&yꃥ1kbΜ?{W#d+15 s fŮ̒*KeVÀ$RG2LAjND"ڕ?VByͅ۴jObu-@?_ zcD'~6`KmM!Z EOS|U0ɍ$?}~UwNko@Kfԉ&m uՈ 8, |P=? "1O*;*Kmjo8ER%^1/XI窪mޒsͨ;jsZw#fX|iqoHA,%[\z =ZAь(= Hœ7 NC>xarɔOt(!)ED$ݚ>Zgލ~>n4v|E&f(x.V侳"( laf/;V<ջXL\bQD 侀t2B@51M94D?QNZ~"*07st:43}ACc_FAv &cG?nNJ:!'vh{[%՜6 buxW̪"},9DLwW(XP$TT K5PƳbovZ]"K '/sfʓ 6l2xrEȼ%>8UC-B ;wz֏Hb;%g Id:Z"h:+!XVKsCiKb,'hIO'O>xVΟ.>~ %?\ʛjio`c0FN}+%˛ Xh2@%^䷓+퓗N^?vNŭ5.r*n-pChOVvWwo?ߑ y3+JoߡE0% rWf]joS7GH함 ݗ6= osrUFHil{4ZӲ"b樖ATjtZ ! rY&]1g/2bU?}cdsJ~ԫys]ӛ,NO`'bDN\~Lg"_~>1aPF@d/֫Z0ZL/Te O?=b={!0O#M#JaLj/{ͮfSM, y*p6Uy7*' JpŊ!@L@? f+qY8|*Q\7.? $]ϵ%R)k^tDLF>%y-M,wKs $eW2Ï' )4EcF.J|\$Vlhkeq @-5vl"lSnp+Z)k3 SX4qWZhw@iٵov'$_-NQ db(H}jjYRL7L]1+gnY3~o6,Xwg,.m:)R-P'f$o#ѝZ/j1Hz8bǀK̘p zپ|z%u茌AsYEwb\0%S%gnn}:y>Z8Q8X~XGCxT ;mF'8Jv3BLy!y._{ 5pqt;r&g`bhI3BΐnEb>+w\Ŵu7S/d7Rlv3TMʎRQ12fpt&9&SgVbQ?AY#d>A>ܙ$X5eVNŞrF  o*F " $:7"#1 ]:OSMp7mv_ލS*ƲuC:#֙S >"0DB:\=Xzh-of߬jD>1ƻN"b^<;v ߔ;ܘB~vl!{~ IbQVhaggØ LbS3b{\0bCBev4[M`҈XrfN`;{c.]߾mqv ̚,>D1t` PC400t1<KkȘzSEt~AKXc2C0]Bʸ ]rp)֊t6+a+FPIRy$.c5ײ<D!\|P#c6:RATfh B(tHXt / Q-4?CgR6 NI0 0)-a1c#t<2I< nCXacut[J]<<Lqf:U8h;' \WIZUź@@L_&D#"5%"($GokF"qCLӯ?>\P+usa Xq+Ջॸl6۷9 h|'9 z2{L M="A,HyzyB2SЁ}X6au!ȳ!~S#)|O }wnS6"k6$ 9xv%E˼UB |+I[qy&GD疄JrJari!KT|d1 O bCF03.&a,@lS5$Gic> Q.P:  :9YeCp: UJk3236Z TqQXTO׺ٱ.puyDHXNnzKqbCorb[hfNs<s]6痓ƉnNJsNu{\QUT PHL_YBJ^Axpīp`eK )K저0k~E%䀰݊9pSQ&#5 KAlS<vLE#Фغ$䘌:$x7>H!i tFAQ <-zA1^٨B.]jqLFȀ=W ID;8c.p F$}!IUZw2"pQ$`{H8i@P5F봮dJa@pX^Y☌r ȀfEMtj .ȈivEeZ5Xt91"# ju*(r`{QK0r!hd+sQvP&2200P{Hc:Fr T=d[Cq z u uQ%k(Pr`;88!@yiP]d:;(PvG?j Ij#Ai #ҵ́HгL~L8eQI.CQ Ԯ*9ݤ=e< 4Et_)] d<Q  \=p] +ԻJC`&lrkIPi"m`DI]^z)#ZrsP;88BV-Q;|2֡]o'WgtI=$u),. CzQV1 Ig+!_8qutXT}P;88. $KFA;88WVP~fR=^9GKgA0$Pfzs$P.עuIPI͸AǁpGXv Cr ;88ӁiѬrr`{¡`o%;*H K쇄q2ͥ 5LP{H84[Pꬖ-nve?4E @vppH=b47jl}lL`j^`WCPn&X8x@=$ƗjC-ݹ+X{#4XE@p> ;ܲv%p"WV*ޥvPp(= 2=Yr@u"lZ1Fp8!^od`aJ2r)^wI` 2:3+K!ЯQBb:û$70[m3p8b$pt48V+ª*7~в Cf]lXIzlZ7$$ZtIЯ7K'ulA]j !j,]`;@VZhv9ᕏpg6%KS>~q+e{Nv)G!`o"98P{H8S%֐(Ai 19a DK‹rC[Q1˔<98~ig4չluj?]98~iˁ;F@@mcyɈWiiWA{88sXZv9=֏RӉ$pj:p)ǡ_oW꼸GB7EUij!KrEqq] `r {88덓Rܒ`%]l $`dGPĪ. ;vw p)*:5rP;88ʹH [Ds.E;88+WŃRǑ13&<,|Хy!Ҭ?e.Үʜ#X@# *#T lG}-^l6#-Ah0 瑁,3Q%s`<8=A( n5GP'0ό5B 3د i_IE, 엯(TG`p{bҶzlUYN(5&@7&Bm ~UW^Ib ؏vi"K\de9=>9Tk _?`!E1QE,Ā́&[A'DA~e6M$U`Ewq bOBy~Me6r*mi\#X0kڣ+X{MSB ǹ9t 61} ׏"W)!9G"hN$>BXɾ OC*̠ eE3D7"wui (36?SudI z'M@A z|B2 Bl \ Q7S Ua7\U`W[qUF{(C!-/*Ȃa_0 R3GL9ڈJ톀Jj3@8v}D(NBm ~ *n*UXB"ZH@G,T ؂GfA:3M&ߚBd.hi#@8=BPN!Tb''^%ma:|+PVP 0b62׏Bk4БA,!FFT>2ؤ-!U44Q&d$۱A6Na'A -0" PZWHj_+( j Ps e==Vn !lB&Y"(,(àE*h1ps+D'xT׏:#*#oӗ1FP"(Q&o| L VQ>B S)J^$#Z$  X}΁N x7ND`pzV,E (12؄~1_Ć#M$ߞ˾2,GBm ~tfjq3FEYr~ <-!U#E(Ǘ2*G>F`p<˴zIq 6G D_wZ@h3M*rׂ,-F<҂AGBP* D>F(#[08}UX+C㘏A,~\Hs kDP88{BeYh~JM&QaXۈ>B ׏TկΚ5BXr~'y ׏ &F j#мв"_? \ąQ dg@m{X6N`O\H%`xzLj=R8Z08} RUMeM ~g@G}mXGTCriTA85Gp5ȒAP9T@8oG$Q]UIS؏V=Z@@~gg'Zi#[08=1(MGkk)0ٵF@3دSB|ji4=3FV[FzXd1BXIJ)9D2㑁-~4+;YXgA,~DE92؄~{Y3lJ! S؏Gh`#>sI 0cHe=hJAĄF`pQUp@#Ԃ :+ @HG驤ne!lRNa'E[%Gi;%-av QhT>23د_#JF]@pzBPYڶRĈ`~QlTӲ|`'3-OBl Q@*@8GLQྩH]F]H %MARkdxTׯQ-2FPeBqb!W= 6`?ӬJ ,bLE$HI.L#E,ǂ &Bx lCVGNCBlR9_?J!GviB^e>TS+(2>Np  s5p2>z֤hdxX<3)nΪ9SY(, [|0yj b ciWXdbA-Կ'M/6yp1ChF" 6L'7,N6t`g7% $,BN`O <;+UqFP 'QmCVhkCm*r%blBO_?شQlIBB 6 _?QQz*2͉He>}X6+iAES%F;9w=1Hk#M$GSsT؉6B #HNFp-Pxp1R,"M,RY^O 4FYX1.[F`zѩB QFap6 `F,hbo/o<\n;YA(@X ]ξsBTאi-J ^?~*I Vkh &kʈwbaS9b3zY A$kvT^/RA~Dr_amkp6kAʸ%!I"ӨKVL'^¥!@Xw}J0Z}xJ ?GW([^;4U!r~x41+T 2rP_ VĐANEF|BjSЀza5vuD-"- (a5bqEeSh#)gy$IH l>v?)KG8 HA O $_~\!A( ǒо.a-Ndߛd[42׏oQQUNzy:d0Ie^K/M+&a: ka,Ѹ x"fa˲H.yb  l+݋L!0X {Zd @X j~j$ucz][OR3Lg|#i+O|z` 7ۮ8 >y`WdRqB3!I*ǬM/Q3_ܮ^e!"I!'a?Z\ވlFA,*;Zp]¸Cx` 6b~E*" ʾ2ȣ^d$55Ie_ 1w"B U؏yFMT 'a?h{ߓRBhD*l@밲|u,U A,*{H^)!0X !30h>V֖$c6G.al!:ר+R͉Rو'Vb?Ԋ;!A,:G]H9\ 2UPaԐaB25ؐvYLR9Wa?F.|2E5c@X ]!T.QiAj%6< r(aƞ kƢB:r`5<}y0X}ؚfH2kSYM,c aɽ!ޚ" lh+XD=F A*.S'{yD)dZECs<`2_RV`Nc*qiq '_?m;5_LZB Pqusq1rMO !$A  V^?>EZR_ x5b v()eBL׏(f0:A!AN~LsuO B Աо"(u7ajqr+ A* ǿry}$d+ drhI w z`5d@[? Evœ@X }E/[;G@T5$qf(\YB U0tT'+ ! b`?ū~BS&fka"eP5~4:sȉ!I*ȻN+,!@XQ׸RS!'a?ivHr† H_рH[-,ɐ]9`?F'pX5:AX=2r†4Iu2!@X !{d.is3*rE 8"Z~uyhvBT5؏Qߝ~2M 0XUm/xc0Z ρA,%AO ~,Whk UI[Br[(1d+~mh2 r`}""1I* lA2}^ӫAP@X2Nuu#JhUfɛ^ ZZ)+D<숁GֵQC4"׏'.֦@>Bi/kT⃐14X/{!GU^j! y c5I| *ʂ t`6e;(:2׏Z/ԾZYC)!I* 쇸`{C=q?ί>V SxaCXƽ(G,% A,l@w}rl V`#M[G23PI:0I*(ԨTvW F'Va#47MjkA'Vb?"AӯJ#'j 1FR^Y`ʶ!0?Y׌]  .K`G21 e[UkK+a k`;1a$QkcXU؈A&>YY# `?\K,$F P^oE,$} 6Un;n l@8g M!B~= B82rc<,A( oOlÇr%.0Â$,]2\08=LW󴲾xW(nN3nu8r0G'00fk0jAsϰRp2ؤ+ p usi!aK 3^M/ 9c\5T"v{q*hY"@C2q8H@n!X,h& _ )T,wEpk!l"9O`y$GaH !7`7 = <=cp 2ӂZ-]08}=L⧠AZT8A|jVڢQn tW,ͱ= gI:@!ZO:$eYAH tБ22S큖2؄2:Llo 2֞2n QZFf-@8=2(MZSgX+EHe:!x)fVAxq.6" |8=ĎlBN`8 lo ]Rt0TJ̈e" PoQF IQMJ#`pcgjP 6gۃn LnFb#X|ANaHȭ\!He9=L#*H) 4yaR9!Z`p@ȲNHρnuROYd azf!7`[MIslO/bYO`UQQ xu@f]<<*.n₌-M*aܦ&[ !7N`)^;"p pSKQFBXIJ24Ӗ.>R4 Di,^u_X&M >6e5;;*O+1g 7aO%L*TV!"Na/hYk\4eH8=$(ZG  N`vVn`q{ ƟiB Sg([ap c $@疄BXrJcwj 6SYڕ1@\08=`Qiq &u♤GӑB I[w3m>Mu+YePN8=Mtx& K Xˀ N_ê^n,A-a( &p̹VG !7`]iHۃTrП5fl-^ 8{=\ҐD9 t`+9 6L[ܡd AS@081|!Y$ZP:Y,MAe g CBN՘eg'[fmz"F`|z'䉤Z7_O&VNܲ';OK7` Ap#DE ,@!(_  ^O+K6,[A*Kbx  {GPnFnaeɻjr`zE O-zH ^oiN͆!?E gunJeh`zv8?R@7_y/BJW2#r % ߒlÃ/R_ QUX;h gH:;8e '#|ev@7qpz PriKSq@j!l2^*.Yxh !7N_OX r~zxIc(We3#Ri`b g;# bz߱}}/6dhj:( }}Pj-I$׺Gyh!`aCQ~BOnB"S\B}o :Qk;Q 0`c| Ͱ8%̨& mC" u׏k)4µeY8*2 V]S>IvI Zs1:jwli@ V\?拜E ~hԮL{'Rk?SqD0qy.g2S kۃPlu![:`1Ev1#Y"ucziJ$yu{ B4wj``]_vA@-9J׳"-A$˺1"59׏<(kSQ2w&ԪEI~|&"랴sgA'_ 򫲂E-0X}18Ty1Pj! BY^Ǒy_[T r`=oQ- ~ ;VOqK1C`LuWӬS+DA@u^ kx 'V_?('Q-A*GO-Gs;⧐WϬ9kGɾ*(w &k[cDG-B 0L>='_?XvlF}$` ʖ K2A,K)C t`u{h# J2r \.BN ~y HZ0Xpf𗫟pA* G<9Ne-Xy(1bcT!u׏Ɋr|HoL9W^wqu %AZPد/]iHՖOn+e<<,-@XAp>,^v}"$geA ~L@!NYޑM$oE ׭9uKL*^?^&% @[d-:ny/øg+;J-|ځr`u@dF})D@X{x8 B'̫ b~Wtau "}'5 RW_?+KAnAZSCZ0Xy1=%KѤjCY&,k;Y8OZ:%+`LG+=:vB CIJh\ #0`5%uo!K`%q'kB-I*B1튅gk;G#,rK%BN (lr1nIcR m*'|"-z:`c=a*ȹP-I&GcdkbYh! ~V=!-L~ ]#.}& }u@5pbiǚ|OA2EWmL@Dk`ɾљ BB/L:Pzp)a c* nW 2׏gL= r`u{?y@'EI~a39 GczK2Ɇbb?=T)>3 V6,9BE ~Md~%i ,xzRNpvhB#Y08{PN!IՈ`ɂg U(}aGapmGX|fcj!n0e"~&KUtȂGxRpߐelc)z5 6L'$n60SFpz NۮL'L |U[^5BX28;{eg-q(bw}Am#̩}) Mdr_nL,ȆGͦ _EA,n\G`puW~JY ^O i6dnBY_ gp בl~T0ʚ! "V;Zg6BX~00 N N_ K"|4xT#hXi#M* !GP m ~72/~#1Gp @n.-uP7f!"`?վQ\l` yI ay{TF@N̠ _?++! Ac*-A(Sy dhƌP׏>) jv%#@8=A4CbH:(q+jN5pt^.&,~kVƜ_׏4/*b cOV{ͣj_-/#DH1 ¢W ƾDdB<2؏6)5"#ף."o92؄2~CP-BHp ! 1լ-+'6 `O +O DJFHد.Ļ`|N)r ϑA,0;a#M(1дwJ 6`*ќFp {F&BXIJ~\E쥄223wAVDzLv+-~ls[j#Se#M()3RD!9Q&QڏS!,RNaO ک" ҂쉁8PEp{RȂ BoݦXP6'<0 n+b ( Rw86NaNi hOm~F!4sd ''V.r, miF 6',?e#@88Aƭ9yഁp q[YQ !{@pQe#E(4U.i w#X08} j2$rhAZL&4AІ1L,iA6N_OUQ:/auzd`?ьxD ' GedP KQ$|P1H2L2B ׏=YC>Aq<2<}J˦#DzW~1Ҍ]LPIU<ŴS׏"3hȮ#/B/&8 VmHjG#E, GKZ/G#-~,h:y6#,08RLDf&c֎ )?JFp{PF+UXg$AEi@P؏PH#L`pL}70 Q"Frzvd ͋GTc*GDp AԆ 쑁WHu!,9A`@8h_NVq D8lCGTׯb5DԶj42!09#M* &DHD;KA5 #5v>gap{Le(7j.dAb#E*RTa5y*Z<2؏3~U(' jEN7l'/9dgBk g=:Ժ2DP[@S؏ⅽ@Rce?8}/pԂ'dR7E<10Z08H3쥙12M ~<QF`4!lR9Na?,*m&G bc9MUFXS؏H  51pZ08=1`0X4'˂ATS;X^3M*)W V]d(:B s+p!BP@KU!IwGzD42(08=1 2.NF4B 3أ2R 'js)83Xd2cL$A 葂Yؐ1SzyGՉeԥ_"d5`x*a@97&׏C%vw`W@&V^?g i-@׭fuʪR[Lc$MP j`r+aߦ$$~ d?+ >Nne-I*/!{L6 b`k)HH,k;G3=Ghǀ1`_~U$Z2`q$Bp&k[r\wǠ?ba᱒~y)eP JpGT l낣qEI@V_E~L> O(I2(붻%R)7g`ɶqpk>SbB #k/PVL ~Пr HX10Vʻq/C`˾QC K_ b`u|L~-_V·I*뇮TN!aHߧ ؏L9,0XpFUJI? cw )2׏KWY!Z5`\Yq)Ww |ʱ}ɱBݫ8-@XBb[`gtu!z}˹ ȰW0" 4j!0`cz02I kBCr~*] ͎ba#+9ɦ-A,AMُ֙"$ V`?VzeZ2`HVe`Ak;'ZB U؏UD)rqH&aw\eSRHAGr4Z2`q>Щ>:pg`g؏b.v, &5د(BL-0XJ#;%yB&ac'D{T*SۇARE`ʼa2؏j5$yT% S)|Ogq d`u@Yuї0dY}ݚ:&Frȅ]Z1`QKc)A 0e,xɲe$v,<`@X{B UTZ6Tz(PkDcq" ɢEP+ewPuWi$V^?3$[Pm(uؚ baaIf a˶})Hr(V_?n}P\"׏~ z"ݭZLm&QWkZ@B ׯZE5B ؏M:$~u RW`?> ᖁ ~m!Gg,!-AM9^wz(;`fՖ$cV(UJHσ@X323E.1pLnCO ANQp DX18v{`ʹElj5.ƒ2׏y5ۅ3 &k;iRPqPL ~L!꥙Pm!쇷\FD kci">+̹eLlyYiˠ ^w ~ iu rʵ|\! 7rר8Ue0*'%s2/aS9iu@vheP[|ԃjq:׏ KX d[y'\eBPaXv5T b` k";j,-A*ccB<1(€W4΋Z2@C8B{D]-I$Qea7 Qh!Dž\LR-0X1:0;ؼA&@,HEE +;N'PΓ23rd L2Y^w:V C ׏ׇQzt [Ya~TQ-$ǐl~<)(Y  ]2ʾC![L֕׏J\+"뇶#UDdauK"@0?Zn-A,G||I" b`u䤲"ePfK zm p:Ie[Bcl"w hXH A&`?vWxTNj!~;}!ǭ[X5؏9巌' 2؏(Rc0`mTcD=B1竒cRBr~DPOl+e:O@ a˱oT$l#1` e 'L.sGJI25bk`ZY`ʹ S֧!(o!:쇺EދY-@X.bG"rxkXE kT#m#Je2ԕkCwP{`ʵ~<9o_B=@X݆r4qܡ*hC91wW,CZ2U؏Ov12,n v0W-GXe+[~@lt<9H5-}͝[ U؏}Ji!:Ys&DG aX^hDĞ-0XƲCD7}ˠ2-:Br;r/MRk_G*.lKT A&aw 5nC[6+[ǜ]F y"5 j`Dը!1 `wG!@ bClm'qPFl cAD #O&cKx?omN"׏ߢi92XTc&k+=YyDd;}=2@P O&HjVrU{ZAj9AP@8=BHD`b,ZM H~סx bଔ\idIe?=Ab,oMS  PNFxM6NaO>ȘRGX3دMJ'd _oe>(ˈ6#c$ EfQĚ&L*;Gdk`ܤ e` yɥC0ayeĮjc)VoM 1 ^?DGc&#SsR#M&  wBl ~hzRrBbX:BXr~tW$zZہ]53HZ08{ؿ\ZB+|d ''`ENTZ'G&+bAPHJ@uBm ~=ظ1ߩ'(Z3@ _O @A<gtAJJ93؄2~ c74Gp{J @c8"}鬅W b IE͑&R> Ic 1 ov6B  @6!XV,''B`\G@pe-ZMYXbdP gG[as* 1|BL׏a`Cjq#08{~JC=xd_&H#E(둁̌Z08{=Bu{x-~4z >3M ~tvT.#M*G kJBl ~E+sd,#E, A: &G;1ݩ҂.#4k-nB#Y08}=֔ m lR_?;!d* !6`?q?JZƅB].X"헁{@ Na@#=*g'@mD3YcdI8:SĜn2Fjc~ 0N'.}6J dGdޞd>3Xr~z1hF52cϣ*[}d }p 1SPRԈ@6` Oe"@"lXi52ף2B@iT N_?vr[P<3M&1]z!'(k 'XMHF¢Lx{P՛\Sge؏*BiS<#WPkEe'd ^O T;)@V12M~<D2 ir6L'7}JT@lBfW%$`tzBP "RȀ ]4vQe$-ȂG5Iϋ+G@8y=B``~=@|dP'ci>(N -2]?iqSdY23Sׯ"DSHf#?9sjv$~a_FL3׏gU;Ȇi#@8w$[RmRFL'_'4SI0 ,Ch?F^l#E(뇹6dk]#X 8u=!B"Q42d* 00(O6^?̳\h _WAL?0 UFTVJK5Ăljb8..62QhL1uvqjد&dcfd¾ c笗 )#E,쉁0hQZ,#Z 8="@rT$bwj`plgqJFɃc(dQ5a!lB9`OBC>*FphJ4*9vE91pZ08Z'./zf@ N` ȃ>FRi#M*Q 6_f#@8He-k_̉P_EMEjԧ<=1gȴd$ 篟+P\%MV:U 6\'"Hm^_9kPgGq@V<:C!i_mAp1/.aAx{| $PiM eĂ| j(7,fs ,Rc믧Hat芢 3]Q*@f:B S#7!ÓfX3c$(SmLL423PW&CXȠ _?. U;f=ܤ24 MS5Ȇ)R>"h"4B>hrͨ~2YFTS؏;4 (,F`pPU4Kyn($n3 r,uT.!lBY`O(iF\n#@8Qg4yHe9=l2kKL'ӂ ǐ&!MD7ȂAes#M* 9F@8ޙ[KP0#bc%|\"hJ:/nX>B S؏>0ȀPhYIJCV1te,~m"'֟u:62XC`We1`vg(ԝ 6Na?>ʵ7pq>G{Ap{FAk#E*1 JR{1I b1 fYx6g ,?. T42@84Fl Þ h l\#E,)챰ދh$ ǧ@ 5ۊ"VA-~zEW V&!!KA6N`?J%(sN<=A`U.he5BXrT;P#Z08_)R h  ͭ" d'ɀ}6\'_ѾŴ(d! &GW"cQs6m<1HZ08a&,$3F`p0i1,RYÞi۝6B S؏_ejMrPiL"֞dOB=Oa?.sq[4HU:23؏^(ֿYcd`g@'G I*J$#M*AS6^#@8h4R~E1yJeE@8ظmd G} #%GXS؏\op  `?^8 lROa V#M6a?V2շ\FfZ#@8=A D>BXIJQ!Y4Ă) A/dAԂGg9oRYNa?z0U?@r ɜHcXl@Oa?G=Q#E& )0bS7W͑A-~TҨЂAKNl[& Ĭ.`Ć Ǭ,c4%!,R_O Z!Ǭlb`p"o dhâ1 1{0؄~22'q bĀ PTDReP4 E>y`T &AВrf g=? ,1Gr!/UOlB9_?ZٷL6B aoJ2Bp@8=A`Bk H8=1".A:2XrQ@xp,U5"׏=(юו 6grX-W Gc B*'iX#@8=}kQl#E* Gi_Z*G$ b͈ JԂL71rujpJ A6`?FBUe3أ I ?:B{(+ 4ZAS@#3,iCQ%22(Z08}=2PHq~ڊF ׏~B'HeIe:h0)9B S؏ a#E,Ag"%CZ 8="p(~%'J$F`p1%[&%R#M( B 2IGp{VѶ qj cb31'e>=2pOr,~z%-Tj9"#׏1Yqi-#M( 쇮TʈYe#@8=A(.b16Naɴ;4$!"`?ZOI+,bYO`O *xOy0c*3x! +S`z5LHF-p ˔ (d˅,z#Kl Xg*G`p1\mcȠ N`?׹ E)51M*Dn^[e cLѿ k` ~a%;,dHe?:"ފ\n<"bB&Kq4$H7ͶEԌxd <8/Rv3i 8XhTlB@Gp !IFP׏r\ N_?C ed g-.R?-12dr~_Nֈ6o2B t(+ҶW4%kP'GM`UmRaX׏ϴ`lJ4IG`pzdP@m@|d(*18ZMfP#t Z6N`?OٳU3&Ig'* Y93E C9,à Dȿ8EB$#X08{=1rC8FL6<=*.Q ؏IMA Gpab L4d̎BNłA0DfW.ԂGשKʮ2SM(VJCdȆGQ6c(X9B>m ̧Pvp"T$bdP g!ٴ2-~g&cel $ISAv&㦯)(x< p5XNfLףvHo%-I2w/v"" _dA[D'2 4 l-@8=\T' STДL,N)XZ`p}C z! E4ZTB" ,4R!7N`w"pK@xjp C<:eaY [Hû(Mfv b-E*뎁mF-_08{=;5NSM( TVt 7 N`3th Ӌ<#{B-E(Y}C9) |@p -\08}=X\~EІ2mB_w_!!LŽ-@8Rj-dD A pET29De9z;{a?,ZXyF}"#FRU00.D\"qJπ7p{8E0Ie=A}Y1p 7NaueE!-d" v@奃Xy/I1\08=L"W2e gʐ?2-ZP3m(cɔ[p |u<(j !7a/Kq_ TE*)V2]̩e gө Dt'; "1 6gTLuT?@8A|Dܗr 7a]YzH3҇nesyX`q{ sE _CC@lpolB9N`+ J%'Du7`KRٿ'|)-@8=,77N"dBXrUذ0th쎁 e:A[`p{ haUfl29_A6R$xv!1zsg¢p=MUPv8=lE&(H`V8f q0Ȫ>7p{7r[T3m"s:+P0[p @ 0vo!,b`'ʁ m* 2wր% 'T)d`tzh;UL@0~ -@8}Fr>Ĥ,+()[pzX? P;e:=Ld Ǣ+0Z`pzxof=?>}=2MsG`ilR_y*q}Bn  #M# n &ȃH8=MK5)F(-E,7I$JU9e*`iq!RMȹӡRŠs m!?@g=E Aa RYoM2H)'y.-\08w1|\g*s@6'O;OYkfx LE0#[`O;LE0 aj!,b6XK]UE NT3)E@pCдT ZS 1PS &$ͩe;&0\/""Z[e&pp?0w2ê}T"Ke 8ᗤߓ#V1k! K >[p{̔uzEv|q{Zߣp4֖/0Ա^.3XTu@{((-M*C@FI-@8A`yX 6w7aO45O%[SE :H]j-r iUWidB avE&$_a`gmh S؃0GcYZpMe{)Rv#l,BO`gSx!ZʒZ" |uP}9rA0R%MF!=M(62}~F)O[apzjW* AZp{nR7'vxr{ q -^08=LVCS3B!n,jzc`NԖ&O ';OS%M'H@8ݞO%"e/" v[ɧ#S&vj,bN`R˿(J_H¸a&:aAq 0k\ Fo D>BX&`+9TaEr0 EhmǍ"/-~AEHR(YPi=!%HuL:]55NH/EIc519n땘,RGӐ[{\$"`W  PE($\Vq Y !Ԇ#!+!UZ#ء5(5V^#v$TBaQِkr +j5 k_3]ep! WկW.s_36qt_B)+(GAft(䘃+Brz=$ | +5#K{ꐄ/(wˍ(xmAT7! sm"T9ٝli׻f2r6!',B۬8d5b [$|3{ιm<\.oi Dly 4l&yFkX| M un006`Ibλsv#VP7prSk`mD4P%Է.;2NwG\>g&C Թ):յ&Ќ:Nt;;`v!!jB<ωu/zw<˪ZgjtZÈ'XA:o!ۀJ#K[ wݢw6Td?MUxT<4PZ"R=\`6C8$ !f(G{"}>Y>g,%wK14y7/}g?ҫKZF_z#Vi M|)!tB=$GY'6Nֽ(&o;ؗYyܽ`QlEv)3y탮n,]1tQ/-;4ʋ  ܚ*A ^m>uT2#㺍F-dG5Z"BТ_>fUw+]m] Bhuku0MϭƸU0fw١DciT_ϗ}%U(@o#tڳ֔xdA#W'v49~MqUӤj\ƤʗRs?wQu@i*r@O]ZZb_ǣϓ"g,3Z  즸7.F%j|LIҪ?gou\BM~kI|&ul^]dN^W/ 7ytjY6!"$[}Qbef{¨4q񾈓&bSJ)U>q 6[7\u=~9D/pqi*+;|Pi3M\p|}$]pek9^'ei9a?e:Pݓo޼Y : ʷn<F5F=e;2iAI+h\ F ܝ>%~ zπgϿ-m]^^" x E0: ۅ&Ԍ@U<K螡7g7}2pxJ5(W\rD)K5> ?.~h`<?a=߃2"z-vrŊۮ" Wv[x5Ko|Fďp/LuĹ{2Y=aܳɺknav/YHl" aJ}r^5_/%eHb-2R $Ea¤kg%̰neoqeaa^1|P2iV<bFqئ~ H 9m m\w(iz}*lz(҈KIz2{ Ƀ`{Ljj7m{q7LJivvC1Ki?+AqtWsH2jbϦU9Wg&="`B,~(V&Yƾ+Pd(.1#&dd/2 vzAxH)"XP {dΑ[ҕ)#yZ7.3yYqv6 D4 0[ AAwvk/:n/{ed֞_|~QUW/ߔ` ni9gu*N=:9ZòĞ<ܧY-{ٟAxbʛ8g[օx2OSS@\ViMݙm5ybb:A(*=xeeh_yB7Hr ,Ziƶ2]SkY 4~4`DE˛d_fI[i)&֥jmuxZ-p:LMwݚ*N*nnʴkii:2-bMؐoA@Rzܗgt"9 ۏf\T4,*MrS*w % {} 0S~{es"u@6gbQ0H}4aPC S]N?`h3{ge9ĵ;Xh!)'_QuL9*/'Gy~"Xi|ρ p\Ko!ٯm  |mS=j}pnSa𩂽~,쀻if}Z[nNk @ q* ^m +AT;8ӆUS ԎkCRrHC$Ҋ)mHgt8<_#Iڊt.ȅ'H6%!jGbnaM(IҊfhN&mb} D@BdQ>RVFd{$(cW q+;i+b}] /!oA­ # Adۀ}+}li +Csi |<FW/5@_F z])vjzFUrbFRTZ՞i.x;tx$X0ن4C1d! y ~ar׸"LړH3ģKOHs!u+ҹHm-hR7k@Nj~b|\b,nwG'ƾ4oT.r=;`"3\yhZi¤+c${GaySL2/յ0r5TV{o߽󛑎OY#ĤF-`!'HsBB;<:gӹy"pFً}dIDJC(jWH4*j0Ϥ%exւU I5 SƱZ;"M0[qz)2baJ5Rҫ@$ /@"Rzi8GKL8u2w2T;3i1L=+%n*#%0Ea؈<]VzkTma6hGDU)VkPR2"m&DH8m@Pb8 Kõ2iQ:eA;V9Zs 2הU60w2yL+l֩yt r3mS RXn"; 2vK<~z4?/k./4 7}z},`Ik7O 1 9focuswriter-1.4.5/resources/images/icons/oxygen/scalable/edit-cut.svgz000066400000000000000000000170311231434177300262060ustar00rootroot00000000000000|ms}+"353޸c76c?npȖ5E2Hj$_%U.qDHXxI$?;Y<>;b>=<;:>}Ë_tËӳx>Z>_]/׫߿:Çrś^7ZjO/_bIwt>Y[^]Cc1b}yp(puulj "+#9.?^|;Do(Z1zWgR?e^r]NW럮j9:|<֗-h]-|>~j}|Ë~lum@А-sR g6/ǃ˾oޭ~:>Oo֧WOߗzrz/rGX/>:;|UcޢWkj}:4ǨL].^oTv~f1ǣ~D,&Ч~}u/n }Ro.냋88:gHæ:8p)纜([`+{yuvtw+ijW]z9 {1ʜ~}+MjM _V[] kھߟwQj|>VkQxk4㩑1jdyjY|9MdFG(hy]Z86,xQSwٯLu{ek˿I IIIOlwuWlw#~HlZT=kI>7l0}6#r~#a$x;AylWo/ֽwv7oWg?һӿ]wrwŻ㏿ńM0ZDM (YGQ+3{?P*j)Ƽ BXa5) uO[M~CQm#u\`9DTXvI}V 围I;hf2lr{>Ǣh2P17KUiǼO;<_LFVQP!w]KuI(Sv^k]ݓ|Ow4><>8'ﳸ/-0W?:>ھ8oh`^٤SCpW~$xhTH&-YZ<jW-f~ W(F/r'%q6yOfb9j~CMզ­T|uޫB"sO A3؍Mir삦bMIC'D<p偧3^۵0rQR$-/B2֘wޭZV;< xx84hgdiL5_c< f< MoO ]'}Ki#'_D >Y}|jj{;\zh=M&߽fRFeke1?!8:hi~2p1o~ɍykaVuqGEf894ZkgoƷΰ˷gz5\R"7}{1s?7I}o643/ُI0`٭1a^bJNb9Ӈ>qo Lfgrj\Rfv|n}uptpu05̇ ?d6_%\]|__0˜n=Sh?3J4t^_on\i?wv76h{ཱLښNJ/c+Ww9?v"l8 ;n\^<$) 2xR*V0JBZYa)8r u$VP,fn+х!EKI5"d0ug!+n0WЕla8rH@*,SfL 敲PD<2etZPk㤨V^1ǧ{tJ vgbJ4!UNmahvTI"1LɥC^sC rjGb+# 2:@X P (KPdcTj`-ڑ J GsQ\1B(lEǸ4QhERj()59#(4dbd#hū9E*85#@shVtf^so5V+[D$f#bB UӞHWIQ}e+46mW-TAlUVꅂ-(ˢ沲@ZT.QeCU&dc73@(܋*׊F;6?:;L *t`B~cԡZlb,e -ͱf83*mbP)4`2کt8QZ*;= ג+tbTl c`߲k1"qKq"1!|Y YJNHϤbh\-CX K:pAȉQ4P-V95 <13TV$MZ%5= #H@j z *qsQ .XXǵ+1p5Slz^j- XX.3܁xk>LԀȁIZ&vԭ!*^ՍvO,ITl)u$ cT0EkbtGZyPQ<c06XP6L{ ] A& $YeٹY(VSP t3Sm聹{Ahζm[+mi(7ҊRY9A;#-h:!8 /5HyK3O 5% c3$֌dS+NGu6bDؤq aXQG9`% _qb1AenVs5cbɈ}Ģ̜28A7Ύ)vIBt0b |ȱ=TFSK/N[;=/@f,77BIġp CxCi48f 'qز! qUi!EҼ6{ ,萨GLngqi8;D,nqqwETi!Y47c!V%isZC'H٫$u+:FHYM ]8>$/aAcabcabklA2 BZ(|P$RtTBHxVzp(M$ Q0\ D"kmUM[$ s*VH4Y"&q9$CS8"fqI("&8 EĤ+ I("J8 ED+u[3c4b*GD$Iu#v#&fjpD#&Z&%XJ8E=N#1 qw]5bSG+ryV//xHQAn+4Q;  $ IQBQQ6JDgب.lX@0(ZNYWCI=!SjI#)\[> W@5VJ%(! *+bgӑĒA8 p;[s2Qb(ػ+ S(Q {4,z2YbU ʁYw5qk@9v`)Kgv.mA> 6LQ\ ux|N}9Q`CIs baFV\{Lo m?*Ԗ3zRf@tmR` 򰀅)dh0svILfPfݜS\_ly̨ƄOHʰChvsS &AZDl*m\UM+$\BuXve͐۠ KӛC/oQŰJغjb}l*y:>|X|bŢO/{^,Ցs!haU0Z6q!H))PyAJ=Uу.31 yWɣ AJ 5|Aʑ!z +Vуsf$JW<ɤ`9EEJVэ8wl;dyކ>oCo|D.nw_t oWW;*kZ}pVJ@`( (Cr(cpZ,+(JQA:BXai|qqF^P\:E*hcB7ЋQ W62o:հD[|:wXD*8R'<[}cP`h vX9"޴IDatDeB2^״O%L U)*!3ĴmHAn/fcЊmi5:˓HS6Ԛ mK7a<~^>Ն Qz@_C6t=!r+&挵HbPDڌK v3F(j lpb'~E^@zSWT2*PcҦk茥-5hZNY s( )Ȅ) hj,{Yzw "e*|z^0a1/1\`XxDJ%fyɲ]wpkH2s%8Aî}l!`"LJDT%Iv W«[)w;P~\ńIҋ.8Z)~c;\GW/fF.{NW#h&h>⓻#:4Ԟ/ߞ[t|ެO+ݧ'Hp/__*o]ԝzY/ t:=lZ`Xz.5؍- n% .-Y 6\K&cVp{-a+% 0ۥz 4^{3`Vn5ғuGU#ڶ7eb4W5mXpQ Uvpq@$kZ-11V AӆMn?DM`f"_d RS%bѹZ)k􁶻i<ڟ\ (M.V ֡fVL`52 lor)"jj ۴nM*mܚCUdn ׆AcvlTpkb"upl*z0 n;*7@HD=u5Dzl5&V)l5 @9loX%ST" SEɶ[&J4Đ(ZRK zkQ67ݰBחdc+4$W-1 >ϥ5>|M떘[`n%van]v|u7[bnn2_|uK2_|"u 2_|udn]떘enE|u 2_|u-1_|u-0_|"u 2_|u;-2_|u-0_wك[>~*K*,Īޢ4vqH7Ew֞ta[JX"5A= sv฽4LnnZ0772gۛ0Ĝ;hu{_tz[çJaSU[6r*3rbcSu+ |aEF`iB>afoCoDy>uK]UhPKl֭ %ai[51j 0ɮ,*X~>RW&mpn"^v&,𹂁DeETzJwJ\w~Νb~'ڎSk`ZQ$ 8%K4aT'}_?o#focuswriter-1.4.5/resources/images/icons/oxygen/scalable/edit-find.svgz000066400000000000000000000403471231434177300263410ustar00rootroot00000000000000}mS$Irw ~ٱ_Z;f%ٙLgwe TOsKLȬ*'Z*`|#=^?/_Nofw_~9׷?|wp|=yOwpp{u9͇˞dv9{?;!GGVϳﯯ'~m~/QU 0wwO?/?qQFē#Qxi7+}Zz ?ܞvOjv?16 76-ru~vwsz6;YAu_]N>/ſy!n-x>?g?.-3;>ɻ'\?>~ivurӳݯt"v\fo/Ρr?|PN5zn= fooY+m:i 'o~nbֵҟ_8kDC+ottq3;kj }S3eR`odžo_$C= N)Fj_^tѵ:"o?M=Nw]ovzoUgחO/9trQ"FT_ߴs5a=tOo~n֕ {(v` &WSo:;Y5e5Mb9mQX.[${lOMMr65)EMlUbkrZQEkIN߳g(u))`+fv8ZRQY?~t4-o; hs uK{uRmMQkuL5FEuK{"_GDglx&֒3sgk_NK龎)>WK鹖f풑뒚y`?ȳVlҞF-ޢ BQ BѷFIݚ%}jc{ȱMkآ5"om([g^Wnqj蕶=5B6CC֬hRk>_%c鐦uOPqj ɚe I-Eڞ_⭭XfƤEiKڦ5&m÷m1|jtujbvV븾Ϟ%(mQIUW̌Դ :3=!!ȃc*^ښ#7I4-:z!ۚ-z(-9桐k F u\s(AM5K{%Ŧc"k%*LTZ<1UڳcS[_Tx~q2 'ȮgY|3'pD:8 "?t`1<PԁP DFY&suIcacWZP a t@,i|UA .bC/w$rcJV2p $ijVb!u 5 ռ 6ſzsքn]<. .goC] κֽ?G\ngo~pWo_t8GKzb +\;1_oUA啅D$e?@~mǒVJ4{`N#//,DFkmGQ4BR>9 eO*cza@!S623AH6ߋF}qq)(zse*a͕a+2Iy<HOX5X zZN,TCk3TrHILl͋" q\mn>Sqrb ̅^Ar*1_,p { =X 1氭0Sz`рԀ 0x @ `׀_:`g"iVjbIbϳ|IR"u^lD(UN4rd^T%6T GAK}|8;vQRbD-iv As5 # ;glU^ٞ-rnC 4qFTt`&x,G6);0 ͵B]ɬy,,V kVjt,agP*0T6$c@Aؖ$4aEX) j%RwJZu!xDOƙ L`sl2p2v]ʕHԡDރhXd):((0!&C% 9tlH9P¡=Ds!BA @FMF=_ঈT@D(Iw|=-X@v^ " 5ޚ F5B2?2;CŶ<؉'Y 2dGǕu/|#FSC^ @)%m1 f1$U3!9w)5n|f7ƚXWT)цv2lxbyWR\#tCc׃]m9!&6w\  VlwY=._΂H:XT|}UDu*u3^%lJ>{PѫWوWkb^pѫWٌW1*UDګWyNf^#93.W͙۳_'-g8t!fS$qq2'\^t{ 駾*OHop2g* X!lv3Fvɻÿqfi lAO4v$G+F<`5N$c;T"L:J;]V,DijR :{IS=6г36دmwT(ah 44,\@Y H@F@ AT rDXB̓3 ,z X{AS{PehJ XKJ(!xsL 2)C0ƈ;@$ZѤOnP9@w06@X+=gYVi}0HjYZ]t6fy1;o)鬼^4[ՀfvN}vAW&(Lk4l (OQY0PE2yY0e% \kYFkLkdDz92v ZutHѳli~FG^ ԁhҁYR4g- t[JYG*J#M}Px;e#SnGr1]}&eso˴'^!U:~FDԋ4TtYaeqj3@6^%¹WIr:"ٗ=M K԰n* 5zfΞp30Tz}(Ń8xkDHD񰽎(){Q"d#JqD=(z8eC%J9$Ҏ#K,چA%?/ *QI B"v*&;sC=t*7UIlBiQZRJ%nn;5r2%TzSLBY)jR,m5yu*8 {qx˒mq!:6jttfw 1!+a 5PB1i=3ګ5P JF@Ŷ<2& !([O!lpgE,}>K;EGp>]:~f YƆ5_qj (8Ox;ߡęĠʼn&*¬<1W!d~)$M~Kfc_$do(sny~0 %S`Ѱtj 9 v $s%?5)CNd 4p x(, ҍhWz@,m@k+5 9 iR1It33wgm%vp./y\DYȩX!ŘvPn'J*0HNީM94eg9ra˓d^@{`0~PS>~;Vv{f&Gz yVZ|  M*w,<0xZ,/)k>KB∀Rk{ȂC_&Pb1/ Q@hLHGmTǷu(i]P|u$+]Щ&ɞc?N<6xֈEvvsNE[/k :hB62R`&"F B?cp/RS%>z4+X:@ HJ- )7lQzoTͨ;$lA"j-U YJǡA(ݘ! ƱDv4`kll$`kF<%6p3 @ntRFj$rg.#483 ܱa($V.Kr<ı?d0~zwfim0-E6hw܄`bciaNFΈ!MȘ}B]KA#G %;UK: ʐ!>^x U*b;;W~A]+Z6`aeFؿA E|<c1cA>?VR-/,V1NnAJmf QB q^=n=>@{-~>,~qB{-g7uhIshkrӆFKiFKܱ~;=O״эyɎ`ٮw7X|ڳ-u_ļԻYUQ6_ $_)<"B0gcj[! .ן^.T̻&n׮B`5#e#bc˔v".|mS$/#I+FؔG5z`Z`ϔD8* u  j)$ud~ann=LY [#簵'#볶`ʒYW9sS)OOys:XtckN c8$om~ݫ AZ#-Y^^ fKˡ~Ez-X7jn?ppi=߽3ç'[$f}1S2a{Uٌ#;Z6M8[sO(SD "Hj))A ؠB,npg<gW_8k+9lU AD$`|m !}ɩʾWz q|?iI; ؏W70)O鹁O8›#?0Iwyp"`)n< V BϿ$|>zht۪L *%0q@@*W7@},;BYzYN"T6n1ЉXfujVy~ࣗSl4uå ZON'a' NG=. .úOQc'OsNg=ggAժpHd#}gDݾoIKH _{q E?p*G/ͤY7^W/8h9 i/RTwDy~Y(\@s>\^"FhF3]k9(JP+8/G;pvtzv[_4"ѿ~𹑻#ߏώO~ rnj ?mݧӧ?zۿ6ׇt'H ONΗ|rdv*F:_ۓ߆E?ONh@׮4$Iݯ]*ŷ'o>2pګϝ>~ϧ?Ѳoǿg?7yJxC|Ho(1]7\loO۸~>ZѮxrkkZ5ޫg?%~c?|;k^>myލG&h+xy _OO~#Tϣ__L?>ǿ+WO z*:7"b > W.15_.~ Ts9:;|{xvx1Kg$=}/z.v޼h_|˽}c6/0mf`&{za`~>;?||NND?~ϳU25 Agyuގen?>?x@Y_NMuv1}Ӈؤ#;͕.khhd,o޼Zysp+BI*+t%.hJ?.G$ҾG0~p4<r/NO{z4}lfiS׷DUt?ꌽ=Kɻw.~/߳c^ȂخrT.7DUdaH>W+!z=YDyʝ&6H AL3[ͧO퟉ZQmCDF&"nROnG+uV.yz:{^EM<%ݽzNMg僛ekѕhRK4—#au j6bebP5a:ތU܌o$.d(Wy(U7*P9(PLe'g)5C٫b ,F#*LVLo0pZ Z4He\ aI SQH"%&yjX %ѠV% 8H&Bb&$jQH(+jDC4i^6=,dnpǬ(>tJ2D,JXP"DjIaM_TQwi21bnu ;$cON+(/CxJzic.s@S)cN8bP{sgvί uÇ>\-ݥzo v % m^PБ$.VYa!Й981dEgWXG1R ^'R`OZ5d`梍ʉغŽY]Y8۲$p^y_w XU T P48*'Dh48fC8^L.j NR6M7(Df4sHє67F+k"@6b2cjF ڵG#6F|lj A3dQij@ET7@~@Y<`5`Qv@n&h]7$Et\1[y-o*RY~WIن3emogOI|VQ|KBv @u2of ,E *#I ܵ$0J@.1XI6PͧYÜ2VkbA & D7'?5Xfq0etDFIJL Z]Iƍ5U Y vPT/Tp%a ~ѧO1rMKe4LhjRzG,@j0BzJt0s է ]ab1Fy%-L~``30T:fXR`4'^LT<:S`JRΠs򓖏*$rɚu8M:lG usZ ,(5RulSuԧS/:(R@ Q ME5MUiվ'{yn2gb7S*%b02k/p6v3޵ĠEӔ\@޲(V'EC8ˣE!zƅҗ> [^оEb]kvw![l #Sm]v-Ǚ8U0?LF㚼 ]$ktmn{BoiەMLΛ}n{;l/Lv>.d3:j?3/Oֹŧ+7lsK~a* i` ٕp˴D6:=W6"BrG778)pTK1''PFAE~=[z2owYo[u'#Pc ]u~_x7yvKeŝz1`d.% U"C!9_L -(57n`f #FKv$r5DotF+ \ aBKr$Jnor(U@Njc2.8U0ђFV&H[~CB]g!V H,C f4v((2+hx!n @@VT oSQIWF("$g/y΋kc_3Y'* Z#{%j<ضͪok#L^l n3BQGcGH-` bp4GpB4`,Yt}@$}), f,NeTǾ8uSK/m#oWn+Ӳh/c& M(BPkSLb4ѦM7!Ole*kW B nUHHMeRWʌhRd1粀,b]F 'j>Aa#(J X9$t#XtMAo CPd^9BP[BEKr]`Lu"zyT9I⣯ljʼn:dz[TDm ,J LD6! ȥrr% fp5!Tqme}彳PĮ;F=3F\l*rQ^$./2l ˖5>sVRFd8;Ϙ9sKEXN'`ljxY0iu"I&؊~"UvM.%/PƲ&  y(Y)70 Mh-kՀ9s晼u淐J/07͉*}#D@ k Tp=IL LPʱA9>ԥpsoTyÉ4fMr)Wg r< yltpFo*@ȜNZ2ysp-SG)|0^eͭ^+Ёӄ7TumExӎ%|%jn}fX"@J.@K R:gIN˂zqʈ$=K |$g3^f4z4RM"&LbI_6aCd~ z9M$1Vj &LUizr JuO@ؘ@W@w JGr{d2"Uf:6FU*ri&d/,R$*/0H`N[]Z*7o2p4@l@:"8%50lPj"2 -F 蠼Jy49u,HSZ@<@akP J2-yچKCR.}Իju3f8f9}K'DbIۥwg1BDZ\ֵ)Uק|%76GvJ dy]zb@1sB]K K "kØ}JY-]ȅ, į SR4աf㒐Q0GKAI ty7ۜ)(d;5S ٣T;g Y!YLZa9tݼB f(*Sf,[0Vu]DJv/Tyy5}ЙkߍŸޣ޵ƍ#_i[Nm/|ߦ({42n ''HJu#yUV;S05t(tg,"$[ĩ!rͥL(_Dfа\P S)CeE?W >#lj.0O!cH3dtATX1G c-9\4*DڌPn ngeB3BQ 'XsGW9>2BU CP s~bZI]hR˜2vi\:v(Gj5~`P^@2' Hkl1(O=J!QW+psa?_Λl:HɗqlFޒbհ @PMMrl"޸ +㖝>)5w~/{O*K+c=sߖ GdFh[!JV&Ѩ5*|zs1avMAwTc!:C 8@Szz'`V {ܲk]+U гTC4891By+CM5h1^9VJyzTBN[C@O27<[ۚxϹxϕ z'r܈.+Nqaϩ .F XA_و!nm $_DAw>];X!X/L*x"I3ir,}Y!rföYwwzY+ Ȝz?\LJnZ_˪a}$ *7'spv!+Qۊ\l5 TP3DL(Ӕ昈Q: {rа/gBԣG2You5Y} ~>ϙs_Y3;o#I8 L{B!*VLG¿/Ho[q5rf߉>}zMy'ωIyMxjo xv?u0ދ8*V~lP 2'2`F\(hLO'Fh0bza[iԶE:OS^;sNj^CkRujH4I{ Yb(gY>儔{t>!TH5Qÿ5SNDc[w[y;$߶RF6A8Qylι}MmţJ?qb-BVd.wjEG g/]_kZ ~Z ~R ~R=T4w`A/X7!M*:깻킫gFΆ}>Xk#!pohgbbiӶw^|x˕OC̄Hrf1q-^ i?*Qfocuswriter-1.4.5/resources/images/icons/oxygen/scalable/edit-paste.svgz000066400000000000000000000426361231434177300265400ustar00rootroot00000000000000}ɑ+d<ǪЌfa]ARۭHo|YbȬ#3##Ȍ_~zX|l_߼9{Z;|&UkWIՊtIZm%qTJWk<>tiVu:cH Idz6؄W”}Ћ4 cm@giG[|&՚c &#*ϔZm>{P WϤZ06qNLNN'h7m(L%f:HLQcxR+uϤ"?VGNZI}z߼UZ+! [^E{Vi{ HlBpOxO Ig5iq]/ݠL:Ku)TcH TގYj;rdnl󹑛ødf.7vd%cz$ݣF1}zB%IڼR:hBTJ3,#E x(PT2_(zluzL߇mOv_eʎ{M>N\3+DC?(bdPVm_!H}kQ{#h9K1F=6;;u| 9} >1_V&NH'3 ЖE{)]{_Lk2eZ?v.8V+O@IUOBojZmvlicڴtjmښ mWn#RsU;loד:y(s6Z?Vx/:Z̛w}>mxWOSD TLT)Lj^n޼u5ALKX }炀Ij*sRn4wzܻ[zo%fБu;@ƽ:VT3;=Hr qآl,;ٌ~T,9M胍~wlBpw?>ܯyi7_W1jfڋUNJ&' C W|7͍,ߨ3snW}t/'Kh~Cύgy.ileBes8IזRJI zJ֤#WH]:7H={R)H%uU8JQ$=F/3[sKg C˽5O8| 7L}*YM sIXV{ݹ3Mi r6=ec/rʔpV +)f߸zlILpo9d:!:!CHcj['^Q8#6Q$YB5p-:]p<t52Ё;2MF2Z9˽u::V%9s=#𖾹>gp|FPmv߁SFc?k^Xm4quayH\fB"-!-w-3Ґ%4`Gaukn*ZN:Ȟ,s5;!$/&.„%S=,HӤG)D6h丟@έ$>\QaœTugKp*Mӡ^I!+j >D(RlOzPLR$ݮI!`&5N1du"WLz$04R9#Ú'Dx~V;o;L?fg=1Ȑ%>19g*b]L=<+9Z;;TJ8ƭҥ-(ؑôq/蛠> #d : Ydt7^Ҝ=´r*^apozeu'sZe88ͤ&C>}qIBi)K Żrį6B/_dĂȤ?&sѡM&{peHLv~xHVڋf$NBZ8 ms%X=ϕ&]AWKz뽗$p0˳ 2ڢ3ޔ6ڷ G3_D!vJrDtID~b<+T*viHAR`w:sE-1bON9'I?/N &11I:6sv}}&P,sèS}G8.-CW>ގV܎:OcrX712r~'xfGA{6bv|ԭt@?(& ):~u k-:=iֿIgNTŏLZ3oPkeVLu8A;&9}3fG&{|_ܻcG܂߾mo }ߚ}ܤS> 9;3>2>}Ld2VG*` k3&o{|*0#ԠGbD拵;xt|F?/$ L.{=?z/>wnBpP5Ϥ4jFƄn{U0`,\?zB=IH!Ƹ#:xO_%z"A? 'IK>z:5v  g?G,5=|ckLG,;.XJٸTxHQzl݂3IacPy3b >S* T'{*L*r;|T8i~gJG(9"f jr!bGe?S"9Ns)4׹mcdE5%Y/lj3MF)ޫM"nJq䔬/ i.ndA%4n 9Yd 5-g{-YU~1-Ne,>:N6ipg 3P;)#N67J<2[Y|&VIC**_E31J6I[aEH|&FX5A=c%o]4nbj911VCQ2Gщj;<:1>9JА8JO~u 8F( ZuM}9n,`y3'*9FԹ=!':FwvHG";_sXG3W#=?=cPYqM~'YRs9^NtIݎEwk~5UtYO_dJ7/sXwޛ/,1bV5}פȅeF7=B9D;htYx FȍBxst=b*2܋[57g2iDeo.WˏesdQjg$#rmEqK4û&^"$Nl;z ^O{RR#=q6jOh #4U~"o*wyT{SH*Yمq<ț$A(8.vXD5IJN^E3(ԹW)dRhy̮oN-K&YI̍ 8nIƴvQH!Ϊ;!I=)r߉e)zj ;Pz| =~Yu>d4V[,}ͯ$.à{e#">}~ t,tO=ZUevQJ &bd.-^|Z@ $\aš3/.,4mr1 sj9[ӽ2v=~.brˍ(Թqd{,4ϭ㨘5jDž##'Qd_s z7Z`(pz` sPH C\ &tGd]3R撾HfUj{KrGHJHPf}>?nA!-SQ=SGm-z#C]* ]HƇPPS 'qKR҇nKmG]8%hi\'K++6ߠzBA*&s&+HAdP3:0 aBq>)}RGEAzÕ $VjoWͷJU&*,a:+FGjg<7Ъe7꒺Pˑ)C/$RI1M1*%S \G*#e# n/"p$X%%Cq n9/ 1 (,U+UjX(.^YkK\ص/D;"i޻R|5JeR_._YSJ5R>PiHca!ؿXɵ"墜LFa٤0GaGaDZj@l-'%D}VXlKȑqܷM\X](dAޓ/-!SSLt˻]\´c*fJàdwP:#wҰ16dd\W5U2=T!<1(tުBrQO< yI JJ)㉯>P4l|&1qGҼJJ "&A-D5 Kט[#*g*,ɲ>?|R' "X2)X T$GF2]S>I2^aSJ9z4ZBDSj%(v `Q>բk[, ckv43;gId`ч;%0T9Ej`ҒD Zp)֭nAژ+]<jUmmN[v Qf0včH<XZ EA{}/k/룅V/D ?/ . \I;tDS@|ܱmz~g^=/)ZvE64zCso,%@·"o_Jס}TS͝SwhT(3=PY|C: v9knL7#?ّѰ=F({ #HQbS0Iuf~.)Y!eC m_ ˒ h|z?mo9͑bcs|2Q#kHSe:Pu='C/ku3axNã$돫CN9Fy::<Û[{SAqndjy}y&&3Ẽ͞8xPEc;>?#{qI{R;Qͫvc4 9΁pPZƳYALs(:=0f1IX$q,`ၢ4 qs#x6%YofUS,Z *hƵvD&CM2ɹ$8=Dr׆Idg 7/o5PbKŽ׭d*RjϳwoJn*JG(E8ob&akuW87aPn~" Ѿjc8ϭs"գe7:gj}iqF`篝?oamC Tps^>>RX=#҂OyӮG"BVQ#[J_Gi߁x9C"#׾f?}m4.pX}q //|iRO’j[!| @>}/ 7Oߧ{['-p`=#:>8@Մ#p5]] kr9hӵ3T{4)97Peo_ 08MU_%<& pp`<|F&^,tG_ ~|6&^+\ [',n6,+tJb V h1D3[+}jg`}f:h6dnR^Ȝ6U}tLR"i|8e/C=Bn05op xjp(?O:vʓ OJVgs]cT׏TRNx3=H) J/Smgyᅴ:.+R4ܺ9BlBv|'/I2 t|dIFwI͆ts-Hr(,r|; G: ¼jgJYMcK0Sm*RnsY!iT042 0|6i"t XSZm4>]\!߭i-nW'sVjJsHN&∙powND!pG ;{LyBZ9px\9 4;gJ Q7ѩA<2c? :jLhIT;ݜme|N&UT!)𤋀6U}MuGj%ǡl'6A&H 5_W"[f(HL_s0s6Y:u9n4Pw ͅLACjG8'F04d%I/aNIhp wPWjMF"X&)cw,Kbё{z,(ET[uyۺ^Sqi˨ӧ><<}p&~x=5Υ^)-l T2I%DroUKgqnq ˆM'u<=L|Vו&T: 墧s"ݾ jO ='5EV5^<7 g=컴R'7w+#  B3Nn!T$VI$`~hbHK Kn%:R9Hiˆeu>|J &$/L:٥BUW,aBlx,ȱ("ݘP3Ep(4ekgҺW[2Ԑb&`#ahp:oU"HbࢦۻH1 D,]5If`TGrcVKShrIU_}6xIfl F@T#lpL4]!H#lА:VD-x gP}źgMHCh ;}BOI}2$8˝9 LfV}0""%Qd{ . ; 5Pq@sHv)E*λ+:"hoHvέ#$zvvT̹p})-S;!dWC F`TD&?V~b QۊSbMeokTH.9mahj5rhȰ&)1d;$+ X8iIs4͞5HOok"/ML3WGLU}0"7M6'0d$yjI6sqeTJ6#CٶF:sx/CɌЅ$5 %l8k:>[)[9]Y1u\]TsDp E[ )ϭ5s&O.pQV*> "]ILU}0*"c͕ͬCE:%l$U'k.$kq:F3!I(gd+YE6+@5Ő&;"~/Mz!rHi 9rkﱄ46Û,!܍TccHe/ 㐁 dVmi1Ѩv؆FB©e9eBszFRjk5 avHKrW1/ɹt/V{RhbAfam묊D䶙тb8N-At|R#:ըIcΛഏ0UxII0kd9Hl-Gm˂<7Gp߷Z‹đ}Ot6}ReA늩g@٬ 8B-ٛ='fI5&娻DZAUQeE96^#Mwyrp DEthL_QCDޛPƜ:2B䈦y_ч82 p×\r=o=& D3>aKl!s$Nت:_g5oBP!ΙSw"<28N qen#g>x gZҐ8tkZw7'Ƕd<Ҋ󇁓XN";B>5̈w✊g"#HAjf3NFUՉSE3! ;_;BCEL7Iq棡Qh(pH5'wT:[{:,&,II8Nȍ3WCLU=TP"x8ؠjx qtze8C`b`&ٌ8gJkǙk8E`Ucx-"JnnK$ jsU# Q= gӓU}8 @CГFpO0nQS1{<9gLNEN'R"5'('j52dcJ:ask:#*;Ns蚽RG໳H2I'ˆNrKKw)Ȅ2IUBf`Dž8cT0/NNfHsmGbHʕ sljPyH#:g> zq4[\R%sr\e+MK/B ՞%ɫܱz=Y)̪Fp3Ц *aO/$_&U%r?ב`bCpHΦlxrTJS1c*{yd^'ثd嚊$BoKfҾ>%KSڥ ҉_@Zd>dչd)=257HstWg>tXGaƴLfCv+FAf#CpX2 sc9rd=8}w>]$NӹKfV/'cwYx2+c[fDx&xe+_kEWUx2?#O Ҹ4rMI8U:h1C&Q){9ͧ''S4 `vZD\6jjTK=1 Oés.* Y{ Zq[<,Rx=g$djLn.hb{_^ҳ0+zdp KUZM ]ZttG4dNE-FV/:v3/DDEiTt=o^޼Z7^֟_V uW1sV\x?TXR2E w)"[Vge#a #˸VjG'X/K¸҃jh,/+;`jPC YuPt/$d|4<]mI^WyM:Nw>V PKXҼYi+LeςчxY]~[jϵA,s'-#qiFP}?Nvmhs/W`yڮd^R \<)bR|70GdD&2*Af@y$+y閜#uQ+uVŐGC0EIz T@Ӌ z:  l¯OB MH5 E0&rdsXR^D%)B[Q}I6 B"K|OF*PslF9ԇ u%xs?Y#B4RF:1DgIV_W )n_R~)A [9ipv^O#FfT,c $-+ŢJgQގGAApjΙ3{^0.?+h8'K-4 g)*+T!DVeYZg9{2=+4%8"X)3J(i68᪭)ƙGv@>,=`9fэI j*JVxqEBJR0sP|6\aHǥV#.: gN"`aa/hM`wWjt?>!@RrzMNTO7^rSWnKN.M(Α 7!/S(//&_jREtZ@HϠDvqFv+D8E & MPDВ 1k -Y, * *\No(k0q=[;?#ٸ1B42/4%Iu`1G*RyL¢!r8}g m<+C : .AcP! } !%D.cgoZczZ#bhʌ3i4EXx8Y,TARcHAIrj/_}X}>a'k ͍blN7Hú!U'ԡIn=YDH,46~,wM_eWA, 2jy>}w"%›Z ͐x2'݋DAE(D'Yz<"Jy Qq>GD.W)ۢ?ʕZv)[3;*RŒb~32Ts05Z?&Y':N nLLxeI͒g0זxaԑ9xKAgnK6U5浢1f`gdD1T=!x2EǬ}T R( IN!({çOi?|$J!M k@i1 $-Mߡ mNSCI%}/וW lV ~@Jo&:Dc UC~aŻ}*ޖ;$!,4&qBVP%F*ˌ ΚM@z r} ݔI ڊg&d7qt?q'2QBcQ{T(ӯl0p 2MŭPW)}dzӤc(”LaTۇ0eӇWWP֞2ɴCNgz:DWXpm` ^o kq~A}|:w$rC8vQꎛ֝nX~Hd?'c4b4; C\[#~_ )@n!RS9QHRShKegݝX9*K ł[aK.}epUa5[pl*B3w OTK\R`( sCGR:?jӔF쐑g^?[dpDꨅx)"d( xMVjcXv^h;/ RNp^!>34HThݖk0eKK-oBbĂUZ˱{- D W{W6x$g t k(I4E aEiW3/f۴o<~t[OvR',,n[ tbK ߌtQ 3V SE~PHE8dӥK6f3ajG}F/%VIL-ȲϹ"}=èޟW5|t1mp e=#b:ous:Y l4lbvys8^n_wdZz|<{fշN^TP l('¶kvŒ :G&7ftry\VW<9[ͯ'NӘvbͧ n݁fy|<5N5RO;({h}XN-9ڴTDS 쿴nY2ﺉ/&TZb>k Ky:-}#%9--=XIYNIZO)}˃yNH";^\˃T`?Q9c9)gZ7,]f9޻}ةaR_vޫIN^4 n_kњ~ֻ\\Gi?? @i߇SK?RH$C2Zbp4kz1Ց*ǨA!^ I#Ysl]ȭ!J yiP{./BOw&]}tL&'!Ls6E %/]NyXy-'ȾSX-R/T˧U]]SP=={RbT3{-Yî{!4?-nony~0wͭxLy<) .W3sUƁj9 'xt8PA"=NI$t$NZ[PYXپw*W)H3^Cg#^N0'Ԭ %WfDz)ļ+SDOĞ"fO\1j' W'n3={q I<^yT良%|c)1A-IF&aivݬ='%k('wA`|XZwW^Gk~7Gy^ &Sd}{V#`'7OA{XJ_X20#X6 6\LQ Qhb1GUyg5eLO] I\ l CR'1cATcaO  QiĒ"Vc1XBE51e"RHcI۹u$%#&ɐ:ݕPn Nפn, JfP&kS&Q(E)E ΊA "$3bZeFa)8UUfT [S$,0 aU ĐK9K8GK1%8ђ#,9-*̼&ǔ-xZ(jC:HE`=_dnǐٱ9Bk[P jɥXN՟fqa80..OWȏono?O݌u06{gy\vh?ju.C3U|C /ݤB8ڙ`CʍڴynRyx1O1WK$Hh'}\{ZHƭSC>ڠ}OB6< q]3!zI&#[a7d z[N)c:bxH&y|x& OI.9/m#<:-5rF=akSTF$'pBրbA׀#m婨d x3,s#Ne4..@i\tf?ܔ1)QKۨ/oY{#C\|o ֥qy+&BS=N?w_ui2RY"#$ht jԔR0 }# %ۗ 8 08(oSo'?-jqkWԧxuy}tiuuާi]建۝?]^ @o!%4a{upRyry|?9]Apb FxF^6܄By /^u]:}5"-o+U!!v9v[Yx\_|?ʼ?B]}N򑾰jqX-z 7ON?ņ)Axuy[5=9> WXm?~a1"XD~,uU?$-tz9jc#hzū˃~\_ \^3MITG>aW/ask+ܯl0sLDyfQ6RNE];KSS{!t4/&` ;m;~R~lDCB2U,CR/u)+am'KBrMΜ+/ iv5mShI1.Q,;Ds$ms}ASn@ij/@[ Ɣ̈́yЉ$`F48WZRvXzbhN+F!Q_.QL*Xcq"(F]%詃SM@^K'E`b(`-sf= BSR:JI@!jdo8T.u$8XyҐ2 P+fĶBkS'vEdjPS6f+ї@$wHXYPY;v>0+%+@Dq ZB8ضQ/Uɑ0\KE>O"ϊYўBOӪMJʱ@C?ĝh3s瀺uLe!J:{~6J V>M=vJ;T8zo unS`Xט"i9ލΥ%`qm1"f !U4ej1A,ܐLј!@gk1T[ciTFDEcʝTG^ %fRH8a%L er*lcً`L)bn M4ۋ4Cn)q*Z=!vHRJk[, gb\7g;{,$D\МO)џ@w z(v֊I V5qzݕ=boTU$:0DR:**#Ͱ$ ͠cS0 &\a9 ɡxkȮ`9*HVk'efP>RiP>rC1a،Ʀ/}V]w#DX+fefO~/m9dn)kvH.jjlr>y5N&j,J&W&t|QVwIuȿoG^?!7e42M2ힳ]¢ij-;<廋yMgWI}Ӑf)~s\UF4¢~|tsoo^M}ag_-z#s F1] =>`h^ :@3ԗ0oQ 3Yrte{o7dԟC #!vQ p[+HE"Ap<GoF$Fr>?#{թ=ՑYpo]`(b'Bvȝ`=sP`R}BWƺ$=F=!JJ*)Sm=` % %"BQ"Pd2Zo;D=wQ?.MRռIį:BU]0yَ>? ]58Y'Y-żv9IxrO~?Pa>25o:5-Dem;`!j6b`Oi@!BjHu |+Q VK,!EnkՂD"-vyZłbNs0P* q5h 2z@"KP pOy|TI}3HppFefC NfC@4F :@5 a r фR[ `$ ! !ž,e hR2'+K5"t^_/Fk ]聕bzfjݱrfcvTƠ)yLf[%w}"Kx~0KCfq %#RvOi<.>u-%iVC,7"$5pSO. `LFnT-6zH[2: SYܢw,6t`I Jxឥ@-Rph2h nnώ @k*I;Hv iB#cRe)i<%is HԶg lRjs fm՞ Qgč[_ DD L5S?Av,E6AAR s V=k"&Q@s"hJDkY3,j fm[8H-w ) G#sh; H,7*E';xBـR`m,Ӆ\~$(:L:史#B>GH-Aa݂7= v0p6ĸs`Ќ7`>[c.e+0I!&=nO$| `!0 (ڻѤ!2p ^Zp=kp9de/܂ELZyH@dCrCRϾp^˞yl3Lܰm$!)iKG.gVf9 r%8`$hDr@ iP~P15 5.\[RlRT|4 t0$ `ߝ&*L=-Ԛ&AQNf=9E} ) Ăr|`W đqu@'ʑ'ʑ.M2k(Pjo C6=o]0h"t). zwE {'<;o|1mQDщzE{ISvu*87`(Mc{! q=س%ߎ>/KPyŸv/$QSBD[ 1Д[dfΏ:>wo)IDw6,d{/.q1A|¬s_ ŁBPW϶P[Nf6'tLJgG\u%2heOx\QwZ3U0ǝ?|@xԙJ6kgzBlSG^jl(ymmvȅ [\{'V? z5S?GuK32}Vi s'H౷Db te3rPek; Ȃ ǝR$FC@$$5ZvBmғMyqѽXףq l>wEiz-խޗCwUmo^/m6pHI׋) PuRobb4qj|^ñT5'e]M\]_w8NW𘫖EwMYdwUFlxG8|btG`Vm-Vy wW^Vd #y?~O{6arvEkMƧ-^fêXߞu f޾rZW:e׆Nn%+#󊷽- ^/CϮGxy`䖐E޾GjtP[-& mhdUC?ה?Ox^W b u?lr3^$C_?N ( >_eFVZg~˫ѼbksIn1bhwXqΛ4O.F/?ׅG_\_VNanRZ6-ojbbU`5MĮ?o;Ēоg3^ͮ۰dZ+)~?֑ѿgӫ,䎚_LSMF]-Uy_M&s vha.Ml Xף;e kN+pk~"+ɴ)d\*IQrujuu47~qAW[ô[p?oO{`c`]%{@I\mnoo&kxi< hE`,r3YK`Y7Xd2]\Zӫzˮ7 BH٦aGߡ<], ,%KyCbq.eo@5\7 Q$ˁYvm1r3@|kAR̿踏"=7dV>D Y!pbI7QEnA"0qYsL(|-YoXR?ے03W˯!X"wCh(jHYKmZCh~*G` U%8 8`_[y>"F k@Tcjxs*@R!@Nkhk=RP10+BnqsAOA`(\ѳ àm۝P k+E & &kPsBnq6_у&0:M!9JY%+eDL)#RWox4#bbhmh?G8mxt0$X!wd@n);v Pv39}<"pw;Lwcǀ)l!"HϻFRJ.x?m(Ӌ7ɶi͋8$K@1(FQіQ[Q@ZZ݈PR>tY ]G8Ow,vǑj_vUM9ӣ"S; @R!:(hb mN0xD^FX`b7)k`r(Ip97YhZjĤ$nb4bCC%懲NT/[g ICmUxrh ,032k'c\j8 Jf(CML(Sv$D#xgQ&Y Օ%YT҄K n\tO{7fy{uwsڲ?=R,*ig?X1L꺣Z}8nN~ suvv"?6[5gx,S#SS-t<{ ڶv1Lrt˒IM`1᫷?ff5b:HKoOj&hZ,hi9?ՒP>HKvՒ>tCnõhq0[>=5}RF=f~XbrQʻh%b}ggJq_ <%ڭ+':4'n}S Ö=D\{ R ʘ;9%'x̘yG!.ҳ9߮m*ddcM%cMp:RNU|UW'#J*jNg͛VNEؔ(99R m?wm{Lv'!Lc?& gO'潢M`//58!(@.M!eQx4 ~NQPK-VxI[QĨf[2iWM]-ok -}~w{{>׋` #/_x>_uwR o Hy]gfUƉj9 6'x7NО*,N&$R|9+SN(r}81K%nLg~yļjӜL,aHl $w*4eE/jdr pvNڳ!N x4Qbl:L> @%Q&q)ʉ-@no_wWuU-1'[x\ /%'#$w vN3'rc8;Ә} N!AYWR27eHN 8%49]0ic8#YEOuثu)K I(amI%IFY_OFfST-d$ԼW\N6Ү%\WNڳ!ëʑ|`sg2'ԬSJE7pN!} #SWCTK<"ϿZW\9k."z^aKzuq/y͈/ygߌ+یkیל'o3RI޿?Oy;Kz[{V$"ϚƇyZ=-.9 (ٔr*EPd6_WI~]ujzg=rz\ ` wrsuw{u~9Fߟ׻t߾k?!~ugLUa̠pbDªgLl4 pt9e7ED)UM h O2 [?K"S˩Ʊyo] 9{,=I,N$ ȧbIe@YSn/GPN\I'o8&&*jbni Ug)b(7Z?X(eZS&bIDۙ =aAo)E |E\J O f2#*aVq"!![S$,00UabHPኜrf-ҎpOZL gbRk *Pc J bH eAf} lp: ]N%dTKEnW[o`Ĺ1Z,W5ޞ_;~F86`}\ mbyqY/>>f}sZm&dvh ?jwTH2%NRT{nM+]kT%I1ȏ1W:۳]tX-dgWh;~;h~%>dĺu!kS-<#;Wgʯ$+`~"ez9,-!ږ'jIy*(>I^r )MA1`р-sSd* < gIcӮ Pr2NRa:_~nʌe.x(m[㐘ExOw+c{(2>AĦْ Sƍ{b?$]_{d̚W/?/?yf~exsuXt]CЉ>CQ'tVtf~/yo pԽ#8;xOOO>]]sqz7_}5XG `ȶ]?Y{kU3bQ_/  ڴnbfy?./.&mWwkX[j׿X;o!9QIv1$$?030'>`怇i[&8cQNE1vTW`V L]C\%`ƎVքXD <1eX'+S$T$$ 0<#OLkwQiѯ!Z1DrD@ c*)2I\0XA;6K0bTE ) Z4 XTSzE,Rc%:՜@+T!KiGe!*&[ Wyb@KKS\!IXR۠D&RB*vOB4A[Nl5,eERJ˄ܟ fD6[jlʫ=y)?9$>a߽Wn͗;,&ߤAkz@Yg9f5əJOsgS}vQuPB.MvrL=6.)9h"L=Z1K"Q@%zR&i.]n#߳)fnUA5.{SI2O 7#LijlST<{`zmʒX lPĸh[w ]8y%Z0*nzisYhv${R/!Nl \А*){P-.90T5g`NP3R&mZS[9W*9Te,a%PId֏QV"%^&VR6$М &JHLd@@:qKBVQ2!M|=$A|m%-/cčȨ NP"$ c*`_Xx/ǟqHm-KXc@р44'ĻTX /v6$*&%2S%@6O=|m$sTl )Ғ(0=!|tTDG'q|z쏍HI 6<3,4<1R*'FNb::0NsbJyH!DѐCb`Cb JU)ÎJ9+<9R;*eت3{q6C݁`wP{?}^?}WX;focuswriter-1.4.5/resources/images/icons/oxygen/scalable/folder-open.svgz000066400000000000000000004465171231434177300267210ustar00rootroot00000000000000uFfolder-open.svgz{iH_QH Iю$$$/}X%&׿)k{e/]]dG|bOwNdŶF⧻0"S_;_؉(]׎Mne^Hw @??߭aYq~=܈5? 4}+'KձswwGQ˧SQ$܃`mT(v n20y<1)!Ύ89Yy-n_!s,6Ͳ^Kf"z<\M,{O$&*>j* 4M{sRs^!!?d9hg=`+5Dinf'm<1,'OdnUNĿ=R.]+ކ';q9^\򉾣n_~Tyg :A.M:rs{?j/q)!wqS>?N?@z5" j88q"1ȉDʳG(<щ*ʼn `XY6q`^!T{ƙa{OTh^ ZT41Jt3 ǍyEGr͝8uُ3Ve;̷z^֋_\/i&=d6#M~Syϧ!uo"̷j!uJD^A $)[_D${o$̈rRU/BȼH"OA0ò4~4$ hB!x}8g9}>>Yݼez.'p~7)!ldn( 4"o->H|!'ac=# 2_ӧA"s{XN_7tںZݕ~Zo^fF瀧IW/CDo #M υpg0s2<e`@?C'waޡB#UGeF;UKHiN@ceu !wDaG2o+?Ρa2=Z_0#הG>C,#S {|D$%Ա;q7#^w}^8{e X!02w7%4}sqC8c!DO8{/A(=#Mi[c߹x-26] yCAh׷=c,E.6s'-GCOf>t;V'osuK"s~ g.bY󽀿q()Z?TDB~[mjCf?܏AOx 俉[E['`|{QaĽT \ ?@^DS0Ex|Ҥf[ څQE=Ը֋ ,BH09syA`!+2,*B]2e~O X!ϼh_pI0ȼ}O%G䁅 D_Bl G0HgXa{ԏ{)A_ۈuf$H-EsF-Gtx$P"Hx?jPui,k#1W zX9qnހ _<)M/8v";?=1{wk[~bdoY7<5qY<{d{3l'{^yCI^ƸDvod]_=[_5FkM%{jW_+>KmD$"dzh "yI#s@u~2qwVo^R]o{ӌoܾտNaFa<%i w=_/ z <+޿[ɀbC x^ͪ pO-i츅yG/z2qRx׷k(^\-O[gD:ATc{z+}FWW[M uy(EK5)د+wJ"$r' 'xv_?B4-4 Ɓ? =ʗv?_X]__$Xgq=/4Pu|όL$zV~-ƶB: /&D 4T(Nn]23Q}u+HTN6y–gsGm3#p@)NMUe5EQn/PuŎ8A+L 좚wA*-0X@JI6%R@-rYVgSEť:i*\lEPQFM@u%YOtAREAB)P+V;.lu_bc!U7EܥbSjUIbTZQtCKaj DQčBiup/c.n9-T(NdJ$$KCJ2OT7: y P*E@Y!LO) CWiָCMU*$JB@ԣ:#Uj**hMzb׀@N" x)ܖ8_&ݎaDJ,O)tA6Kb `aWj8k_h fgFLX}G< l\P;%H(9-bA~"Q ԈJ1Td`{#̱Yb72+]K82S١\A(n͒ƋTB9VfZ^K@[[袩]Wo<`vP9Z, A4z)Ê:ɘ"v` h\]5C|@՜Ap '`{ј6 w* d!IMPtE-/:cF)Nt|r@A]iԨE^ ٌ謀>XD R\y/Yy*¦6ߦC. 8gW-.W#%P!ql.X/`N%ڳsgm]YZZfIǨ(s`1bN8;m *l+W5ey EWd ڞ |xׁ2rpjG'(, B`UuT.mc+38DuPՉH.VY9SΌ?e+!T%e*vˌEgވ6ިR33r%!QYW6Q 2VX5vXzbʼ ?93ۊ-ݎxT~*np$VY)mTserfqu5f.L-"c>T#^fWTwN]zf| 3 rc=B,7N{>$<8)kZU˒e$ fj1\kOOOʴˤ<ޛQ;6:xVȑ ph|[R}F%}Npr4ṭĈFa]GQ:ztHv3v&K-+zq/*ې(LXj nVH:Av.w9Z]L<~&TQ٪%'iͅ\$n9cZ횵{win`Z4REYF;qӚ?KRz2F܋SꨰCS0oa-v-ڻn8*ɤVB("~UBek 3;-jJ@v1%yC:wT#PuѾ)3e57,G}]طKp"mͨ^MfZ%jS+UvI1[/eaTm}>>B*GNE߷):ckjDlV|E G|y@d`[ɮ{i},99媲4d-Ert>; ՍSo]g6T!NgBw NX딉Φ8,F^@3*j~wvx0wd~hߤ1BӁ?=Be afrnn*)a } t.V?:wlneV\ zҠbժ[=pV~Fʄ`,r+K"7q:ap62"rl P:7T! n mNd]fdEpsɐ"Z2x;9h47I`20`ca-H8,]aqi0)SU+w>I_<ٶ_RzL݌ǁ5?t;9V[*)HϝuKɰW.8:⸍#uf):MfQM3g(#L6X6kS:vJEveb]VKljdٽ[Kn2˄؉;(l=D;δ-{@,;Zp<ث8ӥ*%?K6^[j5cU"tky1)W\Nsr efjz!H 2teYz99+ ˞~i8684qsӡ;沝:^aN%ceoe$$U'^Z^**JCG2Q6k.ӓ-wg`t:%moWTqv˝am\]UV3z=+of0H'KQeYnl2?A+qNpV@*Nc=|~,cG4x@[:p ,frd5 qlժ*c?6v 2 -Mo4>l8? 2B2fJ~8{{b.'P93,gEY r":bfZIzVzGh wa8£}wDt:ȩ#̇0 Z XJcz2W{#B؜T;1KsU[,l֣YҩyU2\txC9jTӧ݀!^0{3爑5S=O3 tWi6Ӯ =w>ţ1`cū)sH*63`6`?`/JAp8Մbt',:Qn(pW+NYQ,4Es:[#SzbCuubJQ<5]_ZitN<'?W]8V9|KG$Fף9lՖ ]AQGL:QJscV8ki]x(`zܷH=}qQ(g='Y%[@Დ^d&v݁taƵeƸI4&Njm0n?t;𑾟IghB_t ѥXi 7>)-*}Ƕl[a5[B'4GCQɨYe-fqʢeur8NUW"l=DMx(vD.Ǡ;<5}]EY5:t躥k.Em/=^i;pjaZv qȨhZzb}v5g;ni; 4ܑ*xO5Q¾|On0`r\\-pq^PҤƊQ_V2HuKq o9kqw,+׏3]41x]Kv\UfD7y%g`B۳E)^#˂%B0iP nN@CRܱeJ['s臽C%&ޯhɧ<`\G5*J[[DJt\`$~HyE?C*u2rQ@*j#Ѫ{:P}9U72+ k !ؾVHO94G%dzԓP|,C)Gׇ:oK Xà`_f93WmlbH CE~vX|jtFۮQ-% ^YuS] @`g=:.$Bb{a$v X&b]25&k^6O .;llZ0bdۑ7r} iyb~׸QלZIYk|dχ'SHDvJ$>载$,v_]$cjlƒ~+.}~5y0{vHN~|f}2Dfna eιgɷ!P+;ޥ&V)HT3 1Gs%+FzkQU9E=?0wz ЅDM/<,: \k#ck{X'SV|XNDF!Ȏ4<#lgA g0AQC9?N[sqR/4a +;"7;/wdiqΆ?.=ǁW~Kqvk z @I2@]Or*dS yE,{P+iPU ɗM?g8͏9|@jJjg,۲#Β-:ٟM],BM+&b~g"m kNwsS/Ds\fiM@۳~8bPv~O~*@hWO"+E^Erzq0^'ceԹi(uYz" 7PSMz%e"W'\;+Yv w ,r&Hʤ0xFj-YN.˚e;AĦχ)bISP'T֐v7`ԍt1GA)KI}ǜ{K7,~IO{ iYyGDa1#sAFuE1=G VZ[NzipЙcfZ5r1cy,B^HCvJ[o?/G4}3Q# ӥ2Wj$ȴjCW,mO![rU#@J55v Q?k`(<2R/mӹ{ EoW0r@Jg8S5s3Sb=У>T#aB . >v> 퀅gnv-h]ssp(;2:w]LZ~vfHTዴ`2[#wn歴5BOquEqt ;ÜW lB3^ X]XjSOf}B5pBgg9IEﭣR5EԲ2D5E9Hgx./Sz۾.Rw{Qd 4>DW"[X'n@G}q so U$]uRƼOEmutJj968 .bYZє ^)u={:5@`uJe#]C,&.!SEEu[8bzrd38@P T r(zLj>&2B{_8PɼTy{Й:/pd),MSE[R((bYYFYJYBw6~S^dE ݇>'$0?x3 tf{ [T}Ix)5iZYL5 _|4 7$Թ-(O?z ̺ wǟXt$v*soxӃJ՝$@Kc`MHHQ{Q%ޘْEؕ@]4Odm\6S­!Tk]E&ps->q8Z6WtaOϔ^#l) J(s9DՄ>Ʌ]YUS׎ |zDHNrj1 t@Hzr)L3Z{ϴˆ '̪;k]&77 ,&S-i8 "YFrA$7دO=uex@)l=4R0k*DRT~.=˒1<78ó6-x)糪qI}=M!Ox13rG%3QqRx.ԫڀS(@hj)&gڊ$KZI"iJ9;,Ne,X)e=7x{o(.Ivvm SmCo>Uay Dq?9H¹-vYIzi 4;^}uV0S]lYz;0~@xasӀ\e[m^6 x=]ML߇t?d {;S?3†y |!2t"©{Zp+x+"}ŊH/ 3yJ&SY(C>CbP=ng?r K4Ʃ/sqY&[*R3$xcu ü u`l}[dցG!_{v~ ]ܨX7Wb-Ȅ3˅n "OoEJ:ǥ}^I.$nLwFT<1SCm`*7J:}a.H[.(x3.be;0W $X~cT0MG"?&u#*Pɺz^jAM3~#JZO;Ru啄9x7'$,ڐա!&SI9sVCa(E/fC$}|0G_:U:Mo-aAԴƺ;Ⴛd._ Fn,Bq2p} )ETs\!4Cg\b|f3 078h= 1*8nlU݅!>qd]!ƀ| 5#Y*/c"^6=ӕ `4U ]$Zܤ6S \ ?09&9'SqZ8i)>kKᲑRk(ʸ"ELDwb W `b9|lO@EZ")Yo#cgy xp\ :/lSgj>p5!N?-Rh'2\6UN2?US&#l”?8pʜ8DegVCj9x(,9+'\\/HqVznc+~M o?ΞAU*ՠd2QwG*? 9(/xYW2ۅ_`EzVxu`6+F ʊIP`!Lh۾>0Bʤ;]]ViXqmq Qr1O;TUĢ3P fn[ 1zЏ(uTcZ#QSk~OtsR7mt/bpo*'Ƀ9G2k&pӃ!oi6ϱЙf|Қ x}#5j&(B`G-\x3Hx/ҳ}>txB$W"¡de!=X\_X:Є '=VhidG t)tV0PdgLrp 8:vbm(h3s]xZ" kњ{DFk,TrP:3Rf, 2 uOţt-Rr^G5}|=@ t$hm ɼd9dI8)7$qԄRzK\  f7%hA~bcFO)!&Z |z󷼏$ceY(Ș-!agdd{Ïh~5jKE\'G̓V'EaQ .V,4,,$xu-SQ3540$14rDX ޖn%k2Ϸ&%4$3i+ylsn_ 7Ԓ˲܄Xf"؏ӣ]Bj >k6Zd;ko|P0èس9e]d2N}F o܀'*|}GIbTE74÷зz B<$U-XfKL%bf8$6ɇnzf"ɤaJo ZN;_H3{+%1"< * +Ipj J̶^-H/S0oNWi@jLSlgRc{>#"}6ϨS֟l4>ylp2Cg818Cs pM7T+ܧo<vo皮 q<!j299wB0n!K4co.-n&:%*lKXKN; /\|eT@z*Nna%9sTv( SHq݂O&GXb;BUY'vMQ`Et$$i[25n jI3I>])AISx>ZNJYҴ,ֿoz¢3o.αRg0>ߛ$aOP;]g#B|fth8v6(_ k`<,M0NШs ]ڿS9"Q)?JyrBK!^Vi9–5l`uT;,aCLA]4xZ~OZ`z/V4uf,P`ܣM(:lTe3ma/T#\U%'+\m-]o[jU4AA|s0Qڭo὚u@'\_hDH ]UARp `#$>8x4&E(s2>2|\9ۡ;OīۻYnrcʧheo,69 vX)u1.VOOjW.vNqc#K> VdƅwIp`]r+熌Uz:,] LE˦ BDg${AC1ظ54 8+]+}~Mv.iڔ`7Y5ɡ QP ]i^PA81 X +]/ڇRzKh?`Se=/݀3vQ{]uuG"]c.)4Pt\,hcgZ?Ҏm҂b7Eڼ[2b' $6s e(;m+IYk4 ( 3dZ6bw#8 B_&ж+6ո~`aH˵7?!uHEyE/#fQ!`1͵v[-%}qUfeΖ_]2~e0ED' U%7lE P?HS98*I4|Bh|X3p[Vs^sb' ]-@˝lyͿ0a!kCQ8|i!x3okzlF+TZ qe_~ؕ_e0Ȏ>9F>R: f wѥաfeJ6%}/Z/|}wFӢ]d^^aM'ٓ$vbNWJrZ{HqzBfym A <ȝB<҆%.?LłɈ&KN.c۸2N2mMGa͇ .TC`?q*$1ެc^\Yrn" !\WXg L0#j 77}>iv12E^js̛% r؆t)Ϸyq0dpߵ@0NdS?̏ee/J!ioM-o(5fkRGZ?^i*c.߹y $f" ﾿#VEݦ${9ӢKx/altՓe/b/~\h_]na&jۨ.-̣ch'K&:PJv[D8Uk4k.ޙLEHGԬK(*HƛTn|!@ p#J{.&qKO8{ .ItG c:l35N0*K)m*&(( Au) Yċߐ8 $=K#q57*05stv;0xG?\<ГlZ9F9 5iSWA'L̽-v_H9-t֬r+ymKKfC6fb$Oĺ\[Rs&;Swj5HͻL)ҹ&\r#q#g1t:|37E6xK]E{t/JLm8ywѷ>Z mo58¯*isvgL5:6U \Aݣ 9_2a>$K eU"35+= kY}N++̈]b YZZ[2.U0V,IU,NWXɝo=* 'ſ#h"OV$?[̃[ '⳺O#. ͙dxQ" _ӎX+O.9y=y)~hYV}<9HfujWmFW&GLMʥمS=d0*/@?7e1N믰_1^Rd]jQ}TVkۀ`)Ghv8EV*xC|'u:[!ƶ,'k*9M'c 9W7}=]?QK`̹.~Z3ݓD\>`n)R]}e _<\+m&5b X/mV~6ޞM~\M2ZM&ovk"I(_>.bLAOU>*XK5,C4qlwD45+H3k/S0i5͹B* >+I~&w"I֮8Esm=+Pm\AP%13n?PkSaXaNͻސ.ְ3$/ [*&ZT1RxC+@zV+6iI UJ:}5oɇ~\Qh E[5PITnBdd|jXu, :,ɵU]i wvNplO&8PTe^ Mꝡ]+3V"P8Sg/H9F;lpy6\`7q[Ty*}g/Ҽ;!*Qy<)y{}XpMNnA\rԲkOx.ͦq t$|Cz%B׿:{W|gF {EfMX.FԵʘdp~;5NT5rWf^ ~3&D5g5  ]qc|2I֤1HLM 1 Μя'JmYa'A@hBd%!p4Q(jݢ@*Gk'}J:h!;l2f-X Or0jm|Ƥب&(fd9OE/*2f y%$ypľ4AjAgy6h&MO UDzSQ_ 2>Z~}nT;bro-FmꥂCNh=4ynFY.EM !*%Z5~ XJ v*3HsqOَ~LJ4xjג U,SFʭpzN+QS7U1T49 YgJI(^Q0!݌TCZ/7e(Zdkt3Wݞr *747-`n=i:&,Zp(V)ySHXgV%-# 5!X ݡܫ g_. ?c&/,D'F9SOn1T00.l*`/C<79Axrbs}¾NgaǏ銎H/F#껗Yܞ輕>n:Uԫa',,^] xB?)\lg aۧ4V5944=$hJ8PxY?i!@H9rXFYŴiB]?"5451F mӌђ@Uܵ$Ř~~Uќ~M|:I":1g ?$G#+LY$-d؉|dJ[`D _N$g'+zǰÑ}|e;#mw3qֻ-0=vkǽ|Rݜ<IJܒ2OKl7HHk4^LWs_:I9L6[V!m;F} ka;zK ePMtn8\bS)x[~MWCF!lCpΥ#4^xfAEv<uQ\!Dד׸pXQqҙ=vOcP+g3{uK4gjki"+}' džS-E^Žaj'\7FZ:btaCY)@]?}v&$.v  GxXDOv,`9CUGG`%⿅vYH~C|36u'&Mx¬5- bȽ_KJ:=+aCk~84wP2!N5j'q+ICz}y`K4W+fR}l0nG&/7 oM/4 'X5ЧgU#3&*rnkajΊʧ Уrd7C TuiVX15eko@רSLW j ei_wZz K}ܧw+zZvH7t} ԰!nL2 R8跗Y7+:aor O8Lҭ@;gk2#nT4,hy\̕%e'/.Ǵ+]4Mȧ'r,3@dP.=a5ʜ i}U\6f_mXǗ-ljSs)CqX(LW6,_1eiƐMݫEʳikz]e;/6RnrQ%F#À *z,E,nSˠߢpVM= C%6J)~k%^ҩ0R|4@w0##s,dO -$Mhp {c0rV/I@ֈl&EHUXE֬DʙGjto^(^l W4Hw_])`6eytA. Td%5hiz6YT h0!9KzWJ h3:S!]UG NwEvoFT W@y3nf7cUY \F"v\%Heʦe4!rh%tz;gTn$쨩6H`l9-DԮ.5=!u|d7ݞu(uJ"MBl)vx%7_gaiG&\ٸbnZCc=6etV=7B̉,TWTB%p<*Kxos՛rP[o8w]uތ.- o1G^S?)|WZfҭG/i8]=B6u{~.7+;KsuD!.2;wʏUA$Kà Ӕzr7 "oK::!US]n}n0zԺhk^DlBvC-uIz !^%fO ^j2/@{H AŬ;Q׮r~-\X+k_+hiφ?+澄`zj%[p}l/pthljv?m\ x7'p% ~Ծ%xW@$/kFP-{I|*,Èk7 ҞIEF8|c24Mu kSp3z0i/n[h6AC}8%yt}…?9Sjp,Y `ea խ Vc֩CΠ4#sφ0[溴gOi>.ϴεI1a-QKILIXiHnff1$!N3 P QϋxQ'/0:.bTvƬS3pk(E3MʥjqA6g k/NZ 6L%tksA Zc|e Q/BH1 *"qM 'z=wFU9% V^HJkl&* lX9v4u׆(0E'ǝ@ُY}'eW@[C%n҄W#?Xx-i)uʑ%huX9U$\5 1 #&";PY<ՎrNMۼO=nOCEk]sZ%Jzc}|,}W*\<ƯNL$ 3"Lvr"e8_;U?(ZQkb|n}(2D]yHT7HrbUcm-! ۗ,ۆ|*O|왔l+=Á em1hLmv T^`:u)9z2@3@;G(U[ =~$x]2b42U_@7TBA/ge: 5 #$[b{tEDkG0<${3Ll8I/iE׮=9 w'yhF~FP&ykMWem\H8yTPViGXK3`.|ZSCFCk.ۙOI{PQTh%0`7\η3[FQTb6x/PXr hP~PTbXyE7 '}phA?+ p tkBQY[B`! Оj jd|#ZEfM?H'M9| >=|Lފ;=Ҫ)C$4eutt:-:-ʈUM/wj̉ ˲\F[vo}eٔh%Au2 {5#CS 8xz`5gYC瘞V=.;DJHFn#gRNO}(0W r%V//rvXhT8) ";/hhȊ_-6VrxJĘ8odS[)X,vq@2/Pn?nĉÁHOv, TfS}|vU\w0&޸-[ zgj %.N,vڶyQC I0xk{5m7ty>Lܥ*)S]rwE-']>ȑzZM4$mLd5VcQ~,$H3&0v+F0mxzU,h_Drc3Cᛐ.ҕ vxp~xjᳵx:"cK^L7t/*#f&I42#t\. ~,sDvpv}N*)oL]pi1ނʻ-)bf,ʪۖzr庡{ T&Ҟmw؏MQGcV'qѓMK;{D$,{6;"1}Y=(Ԋ,"&y~ܿpW.#C;9%k %=L;Tq~]:g-1zMD)L$UL!C.[m$g[oudVgx|VPT'sM[cZ~dbG{^al6.d՞)LyZuO\Ya/Q}@IK%R.=ˮK:O78Wq(To.1Z}Xh9H$.-tn3jf9>6bmxI sM?fbT+KN&Ghq"R;$(Kq* /=dU)!tm9G-\PFϷ':cxm,!ź"M=';>x M]).c܅eu,.&>+߼֛/lD=ۊ *Vluo( uo"ӳT]Bl/ǫ'ol抯ZM*-h.e+3Y~;4D&_ߎHEq_=LYOz1UdԎtd7kQPnG+H _c-SIU)RZhצ?DDs~wqpwwvnUcu4Ώ?|(9pvZM2z$EWDk\75 SDjY[=-e2\ھIG˄s_L]o A$bwY0ͼ{y^+D9ގJm,x+t_or(%Vأa{/3t}Aɽ2uEKδ%B鎵A\z@B /x9ӗkȻV;s ,6=A7ƯKx9Ѵ}L, m+n<6,W'׍^r/"1;LSzNDt/BX>h"JYu]%E[(O骁zN350W۹ \o~N1@gT 0hc%~*O^s|⠖F1y-qa.Vrӣ:_Ɠ62ǴPDa]@T/$1w]'L(XUW]N/Ȋ쳔0 A7rI ʼn4⛽*]*߻zЬ}MR7B2db^0.kzu1O)bJző{SC Agӳ(nH5'lTiE^v&dƠɥ ]쌇0 oS:;0AJ=amfľS[&]vvf7jN󎟘0e.QY9Ԋr?d:TLuE#Y pH4OZϱ^^Tb5C취cxE_ }6c~t,j$#sN05qbɴB]-no2 vZI3͊Z`;Iϵ֗oٷmr"w-&Rrذ[]8ذٽ;q,RBKj_+O7tZ-P(Ƿ!L1QXcb5J}:NZMO=VLRqKY𞪯ٿqFҀ&دK?RI۽GfuJNE'--=CP.K5$ǙVc'%#kL?I/կ =}:OXdGNmYr|xY$e r2{ǁ ^~cP*1FkQ5JtOHV6{>͑fg1X[]lRmeՉZ~pf$-#誕MFnOTSMQ@/+LP c=D{c}JA1T-tߨκ>i3|Vx[+[S\~пGv|9L/DRszzcG}UFpy[f\y>峣+ ҅P e NKÛܢ O T7LBGqǏ] 7:9'ە"ʛ4#aYNh}i~^-tUb&Fcq3%Q v!!jX_Y òq.r 0wum_ӹg7̳lh>//vCauT>9fxtIX^.dĖ[ #J"wR"ݎô(lg;h[Ro-ŗk2*>˲>NuH7Ok|%I}Vz xtJзe".}_oYXTb} dy/2QIhAZ@Ϟlmx:~V p"ȇ9P!Gu_^fk:~.[3Nv&;~Ib+Jh_q |xɵ$~kUC\5Y2꘽D}Jsh6/"O~qp=U01CB$ض #KЭTj p W/u  4A )!>7$!vDb/ۦZm‘<:cy|r)htW2S$H0&S8Gr2Bhk}`f8vV*0;DU] bVxo7~wwtZ;Ş JKN0t=|iK>_Ab 0:>rNۏչ1ޕ;; XuC_vv@{-w0t9~Cc*vD|'U-}(vl݉[GQTAEԲya'/Fᴝ;BT+`klUl 쓤:=:Ow4}B/e=}w]gzWMg8La7}*rD\XF|1q~+I[]c6o0z VGᢏ-\\9V6R0 hB2vHyRl=zI++G:Me3+aNeD`oLrߚI~kF>(N'I;wĕ YpGJUa]Ԙ-bŷ36Ur4zx?u,zӭwX! 3jEƕ>G6K$~&v$҆~ )vFCjnE.co.ƺW6Eq:~X NōbyGTo>¡Ҕ*f6#6fadb ܴϋ`P\YIb>ٕ(:x"0XZnʽROזmZvǘuUlќ\7xץ+1Zϫ\߫LmE bh[o2 O;׉R<G'L0Tʴ|NDLi g\v=g2JZ ='ڄx.@0ʬ_8wC\Kj:ҁo61ZhUCO1r@]j=!]  B5blDv ;Lݭ̶ݹDrIQc ;,A+r}?(W!odm,c;IԳ} D{lW%r(M5QsJa`-~tׯsY|RHI#c8U |1Ѣ<<N0FP52\CPi|ǚyʶlHf Ε9ۦqe }/Fj}[Xiq9>Az|+2;|/k5w^ߝ|D`jgƻNL7k o;﷋39aK!`CwD=Aa&Lh > xfOz[lohɤ!EZ) quskg!&+<"?鈙 >]I\~;%lmfﰨϔ):XVc:ctNҌz!܏@zqmvH1Q!TS~ @\((qf=Da/U! qGLWa=7Xk#ERY %]$>ۛLݽ}ά'x(WV6G6tWÚUS#^sR:>b'.YpMtll.u$iI11|ZbcrvL~Q0~'v,jb7xTjF>@;K iZswP?Bs+E"aݜ}|I"`+Ӊ4NsvF*uXg` ^Gu%mvn~3b}%&Ƕ]W?> X/ĝ=Y#N[$$S2J\QR-ېKzQmq+uVJ<ݟS],"5UwwauBnAB6Mo{gEw)}U78Sql5 x!5l &=^fiYAM[mۉ^oL1;eJ豭tt;׭/Xhs{o؞K&[+;vx w$+,WlI3Y`5(S't$5B21H_z1gҕYgD@ͽ7~ؘC\Nצ-׮q{k7X![Ô7OiDT?48CAwiME((N+]c}HYRY=FyBZVZ;l ԤH2 -jP=ApK׋TU; i/iVR(+aDq+v+ h3?4;)ں9;wZC4I<F.J`k_imR8w>χ]`! f٣X)X5W|# vG/F68Qp?B241AR6jpuYO?Mh% Ū?:ooWn>6'OB,Ǫ>X N'rY*G.vyc)zuH3iJЂ <6X3M袐H~qKc ޗРjLtbjrE3 _f-ѽ.;3PD[D @(DxEʥ" Lճ!s_7L5-73 Yf績vFT(j=WF]F~rss6YYMobM+2n} ;\; c#5,"sg]s-xo\Y yoMޓ=K:YJ7]rUNcOS 1D zO|'\rAEU>MR2 r%2hn!H(ۛ3~ґNƆK?JI};fgt_{:ƺIމĆg/ 1 ,ė^ j޿f]ɈjS4š#Ȗn&|"l %&F>K_g42@5'֧%QAxdiV汭IdC%B](5/pZQ':RAi$EBA/XcCQiV t?i'.`u6>#уϚ=ϏS,Qq ~ S`wM 6Q@[A'7x%H}`(3$=%kA=ꝥ~H@>)-V.?pL D$::o) HF^_jhU8ŵH0<3wK*>QÍ ět/ R})|frykF%JL1DA#v* 0GVo?V_r<7S#M r"/d{ Uَ7# p6_/٘Ϝ((W*U_8r^[&~5,WsXU'u"];} 4|, (q"! C*ZV 5"C$GY"kn"wy;ѩ^ r# ͬ!"|pcA Jp5sр˞ O,tZY] Pa^г0۾Ư-͙ŗ&E(%g^DM[Hi3<2SA1䚀"#hfg49>; `RԶ4)Dp\; Y1i )2_9@# )|cBz|27x#$^r`0pFbSgоLbAqRՀW} j"8oAyl/zB1#;VPׂPoTGrR|mak@%A ޝ"V^AJQ2o&)&3o.'y[yk|~ Hw$2De0&TG)PjQQ9OLI $BV0h4E`fvȗ`osm[$ArT$q@Cz PӨSp+z`\Ҩƥ*)[X "4SѲvC˽%pޛ]ggRUh%{a`T&@ Zpumϙ$Rk[E F)zJ~&|$O`b~DUIDq_J%bQ&~țY},rAoR~ tlR @LSX2+$Wׅ Kw}l/sw!6ͤP+ V?ǥ-!*a@8U YJ Ǟ\%0z{Ksq?&,# Ek8rhx<@XA:.w3ALtd20jM`(jVezqXmi=mb1!q%-L'| *1z8.wb\d4Eh@c 1wPFwۣ|'(vq5F#0HH9ݤF&6g{]ӨJQ_*:ڨT_ ca\3xSlRe.l>rɫykbN6(y~!*i1 KCtVn$(pms3!pRq̬ Y^af%LU~zŵ9_M- 7=Ȭ~t qrdP_-n gZT$6͢t})xpZߺ>w1}6Oq ד ~uJ*7geL >i氊.C Xʕjsh$B|ޅ$N+(Ll_ܻ-eF?ApKk!x[qju_Yr* ewUoN:j3f}# 5oeir@2m'! 4o !}{ [RY20KS%8mGeTDl'CyRD!_>N߽1TL#~R릭<AdWx Z uo/Q;mO =9sJ/1v K1lƊdaK5$.4ehwݸ`4Ծ{AMf y{ Vd)d=Nvb 3@ cT}ŊtaFXh4uG%\Ȩ^VfȒ/VW+फ़{Q c9Q܈FJ\=EXlWwsq:6 Q)fj-*,1K|n9Re#B܌UW-QW²EqVFJ1!o)F~ hkh9垍&~[y/$ D*A43mUˊȹ}!3ie*?iv}Π/1Zhnt>5LH$M<:J EaIEĿkVTX&fE3tKtGdb di]^^ko1en@ Ad$s-#ue8/ k TSl)1/YKc5~%5*c)RQxٌn?n}W/[%ZY>=quW6Y%jͱa # @q ;/-?E u<Փ۲R٩19&F*+_ϤcYrQ['T9w'Iz ~.+G H[xcހ9. P{WnFoV'+SȆE@`h_ =ʘ*F}Gh/`'MMݡ)*Wv0Poj|Wýv nL{I sD}F~-xzTSMBhqjm 9߈ұL.ǡDxQ#i;8 -c҈_Q~~5(>Xdܞ>5.5aM[ݗpabuZ/oA SC9,k1IC2AKw6܏>G{,:úY,ŁrX*qwMC'2@Ӟ8='ĥUXET?j@ cȅ0/-h8_#ovP[L5>7#lDž9\Ơ3F&~Pz#7?w3ac+yg>9Lܷ ÕS0G~yAnuicG!%G!]U@Dhx~#D*|i 2 ?9VԴ[NYѼ!$Kw괊͋,oDi㷥; -U5-O Yf1%$}zz]؄l,Yt&nK9wF'ԽCׂnJudrߟv|qhOu{Kj@jdֈkqð)֖S$=*\f^`[>~ޙ$V*)c*E:˭a={5T9WI}mʯ8DC%@ōI8a !դbw_Dm`fKB;=A5.D+9H_bèk&ϯ۫cj$N/bkL"DȠoh6S .e/|_ 魤xDH fMUnpηN=E;)嵉)5j@.2T%:U1` k۽f!DIS;y=HAxS\3gLEԒ /ލxL䝸\>_jecz-./w K4XbgĬrJ'fLgf Z*0)}zx_5#IF%iqY3x%e]vJUImO#$+_q:| xqr{t/8Mo* "~ZўeS!㲕JҰHYt.&NVRQbrc~_;я17ºnrL08 &#PfKږv&VSpGз P/*};ƕP[7V>BWA4$I^D9wW˺!0%m>? >wW>* =tA\,wA3iKl=kKz¡݄#.>K^?vӄ*>K[DHr2)pCU2j9v4h`Y8l,o]UПpua\51VQhΫ .!d:TK k^tSi3jKABޓ2́\m!ʪ5.(uYx(L6nͪe[+Ojh sn İ^P΅NJZ^D=˅{LYTpp<0E/Ώ&<ɬmr14b.hĕJ^3TׂM2ZEdNۗP<1y&v' ĹfW!_\K]"kw=krzˊhº$sUGQH] ];Ôz+h"/cqOh> N E2'N_JFyhm`ϮS^EzE^9Δ_2,we^pgadǻ^BFqSLl^,ǺnfWZ3c2)PJĖus/޹gJ` 47& s`./9-*B_i 2R[gh>,UЧ >*NM#8Ags\[<.0gZ𗿼pϗ[͟*jaYEIU~2y#(Dh^%rA:O}<86_ A2W^s9xԳ+ܢ\V3*u42w†0l:n^. OeUR9B0"WI$p'D*-yt0ק q+Lg]aEaK8bHN99 ¼vOz/0IB?iK1hh]#ga3ZAd fƀ^YKSKPɇXcvi6i6ArwYdbML2ڱR)Iu0Ʀ{㬲S#:(" Y1`n}pNUGz8 ^FCMZ*,iL]^be[ Ky+ J}^sֈZI_$XN|rk}6:2h2Z `v@A>FƬ5v&k|vuUz(ǣd׽J-2(ZkkUgtC$ 5G\vfT);TrE H;ؕVKV7ljdbHl^Y?ܴOՅlvCFƚC>}y0mjNuIjݓR/E( qU\kht+2;f1S PڙTo] @P gHޙ?kyr"pkϑp|w; tAjQ’MɅR9? AIs+ J@sμ "۩r܏桀OBoR!bB*#WI*\QY+Bi"rcAGxqp!ZGQ @e)KIFˀ!rͼ+78Ep=b& *!OfL zmSOQ dުȺAw/"J`,/,jR6ǍXEnq6ZͲYM)A[Nw !pX)x$“XjXыh{b C==\ '%ja;72tڈJS@#R\'S\.r"߄MR4bKȾPx0!(тl:E 0D][Sv4qByS9_һe9pzō}0/2 aMKз偟#Hb5BH}c;:V-?n׆)g(Fۚ3!J`HxSUuvHK0Ө/P4}OGa'+f[/O 48iJjE_lv]ryM+D\umZtפ穛YOYٍŦ%<(¬ˀWEǗ;\N_5Dt!ߐk}$b-{I]GUN/#=G$X%3w.R ߜRg0"jhn`Sia]:Y`GWU8Jڱyw&\?3τH p[K:~AMCm^~EФV-ixZu[{!;푈8FJ,FΨV)Q&9n̓-]Q(PI sdT u=-^}t1Ljx1[n0y31F s͈&oXjg$Y@9E0L ԋ>h fCZBXW| Grf>/mھTīs&~3o}A3bUQ-MAfEPYtS13k.6zM0}+ic8%bA-fOX'r=]s<ͼp/򍉊\aI]%nwee8ϔNYu E|}JD4ÊCOT A+ HKؖ~*ҥVnIćMmk~,22)p:jt+*R ~BVO᭚蟘jxE!.O:m]O4WN-D6c=QB؛R[t')bFbX~C1 C<0ǻ[3ų䶧ӝ*;;~*X4fjY31虅֙1,Ct2W1㯠7I+*KUĂC}ٺfLz9Om)mjQA?C*H–s!ji|F_e|p['ekvӦ%`thS%Ǿ{V0GbڰZRT ه PõQ vЖ2909/zgg9+m̝Tr'/VZYyeH+d8GNN{xUsViyBt/v6Y7̭蹋~]Rtٟm}AVTs1^E΀C{$: ZS|-lJ~׀L/4>~;*4QzᅫźfS>Hk $eqAcMIRq` ִ~\T8az s,֩vKMAED@H?_a-|!Ak,ьكBׅ{y8[տķ%ȂN-A,$:bd=o?$VB}Qq([~wMbp [Jtk}D!w*˜3/MԚ"z,;_d?U+^IpȦUb7r]'0k-Uo * P#pM\bHE(T+t$5ST;lܲ)9/l^Nr?@WN3$y`}LE~Ѝ3ɡw@( Īh}f]}7·umhՏϻ5/Co2L&$s_Ό糕42[?sƤvcBkňpJRi!td c8G^Qy9 2l$IxA[L"ۼX+z_i`ptqa]UEQwXf3GZB%Lo~.L h?h{O ˱ lkWV.щAKXjy d : a:Sߧx%yC7Mkଁ1Ku>H󱼦[~L7gMgdeWF 4` vrD/ҒlAIio6AEhBNIN*Z@JA8dtg jXw߾)a=BL\ LyJ_! ?$@#Ȱ? WBKw@hXHF4(d!;GLLpBşnTU1T1pE&m cҽGf٘í$w-:Eu[re.ڑ`U]jC >#En8vmPp6z&Vy٪fƿy% Yq-`pxs_ er^!2`0yI A_y,XY C|k!ipB@-?zX}GkG(EmU}~a9y7>Ev =8I30}`Sb&Mލ-1~w4Z . i:oV; /N)qKv=@)@[IQfU,9`M & 3k˧"֋`m+XN w#!)lmѐDrN\O_è?_4Ӆ_N_: Nv\'ݪm`*Q{m"7b \!@27!{e.~KC!Q~0S;+Ui)gTot_RbgYtsFӞџټ}YDQ]E!<|kʝg'nB 7@^8Z?-fI[/>NMy.J'PbF{4lN𗸈 XDUf])zQ 6!J{2"+4PM$lܔ`+~jc"N䱼r-  -f K#dR+oy Hk#e0WDZgT_=Z6I;0A)rAPWl6,~ՒsKRu1Eeѓ,&}s(neȵj܄_~|,5$\ߤ 1wT"T!54sB\}c4*o~<r߇hXK3rS`Z%@iPmd/nyҁ˴]êP~Ljՠ0=H/ < Q%&kIlcJuq'ous9]NQ̄ES+3 d^5C9l~'/'=-sq^(ˊ}Vc)nW.i& r !v h@DT}R Ed@>!{( ;+#hwGJN^}3iA vc8C7BzЌe$ӟ5NUA!e9g"4@6kMSr$RۄEk , ItŧZhؓLf@Tk az,m qxK(}]!L/!EnyWW`$>1=j6FZG_l(XOHszqCKф>8A3/K'MТHP%R\>S*J5V|Ol"K\ T8g<)a&(ID-2yOT|<+NMs*6Y!t0kPvdҊc,!)Ư1vJ-N Q'a!(Y!eO. Z>86i\s( 2I*!Ɠ\Up Lky7jpB ::s.I!LpVPeV+Cϱb>4K" 7Lk\c@"R.!ĆR7j27 4.>ڬ̈_7:[.Ki?^L}3v#7[EHpُ%rw0oNqi 7_J<{ջvn\׆H:? : l@@SnB ~=_YgxQµ٣:HLtd) CO;D dr HPfEMb6{Ν%9G]8ãܚ8,K+$YlFH|4r`p.y ʕ^sſ鋔~ޥt Mձn<` {v]1#>ffTzQ\LJ̺`7߾)8PЍ2i̎-dP%3рGpM{^0/ש`0]]W/_R#:}L:ɞsT{4¢nO0 n ooÉO8Y-_jT v1'ٷ,[_DPXÜ,rҳNz'3~F[k?.^U4[st6r 4dpA (H`2N_$HM/ƗWRRZEq8hHT8UZ@zK|2)E}OP1!O.O2L{ mW0c$d秊r˶8~VC5TȏS6>Q@>Pi[= 1&lA~*}`Q['tkBVLk0{}|x-Ra~ mk@  cU{|RW5=:d6R*Dc,EGb oLeN)tOzfp$H# -'ʽ}?ڀ!Iz8gޏAryfT@jRuD]zIc*KYf|w; lɴN N{4-I͵wS}d޶vSOamq3,\@D.i7b bj^8sGre]Xĥksej Ր_7 pVFB+I4l> <5*#Aif@ov _Ɩ,Vwy;HgB؜vi [h a3cԯ(~YXmSVWX5 VԿTҫ g" xw7upÉ j*/ǘlWcY2fc8-sPh[Kyę`0tkѹymWn6y}^!Q&=IB_hP斷shz-vJ*^r/b{qVQk6 N€.StFa&6PTÊ(h'@2o-0Ŷn84 P߼t }22҆Dصe,y TKa7D^* Ťٶϑ<ԉhӕ%@$<" {1YyDA)̢CjW٧J%~q" {wE~#|wozjC8Mz;I KUˏS\z\qdj^Ҍτ1AkG.'1V}ٵŕ[g:z{W4+ 5OU >IX`'YQևg5F'hӜл<4 qZr@ަ=i &ErdIHG}Nfaz|7 SԡM ,MNwTs*^d@)ɐNGU=GuZ8 gZb(~K>kkIH%7-s_\؃"fι=Wpd|M|]8BcpO3?fJ(LS}| vmC1 'a˲tL2Wi mw)ՇvӋ_}^QHE{oY2څ`=]}uW(ìZ4 >?iHS;-5uX7%b\l?0^Ft9˹6,Gj~/\h>4V1"{6= j X r¿10ip7ѫE &;W=nfP (jRD~B6i"/c;d=`Et]]ׅP1B\^h`; Ʈb:L #gkɾ_g⡨`S Ə B-8Ŗ*w' =x8cD+Dז 'h o:#JV_Q;GM +㟧VgکM-k~g| K=F4O;$0few |ƻǡ_=l8[\*4WF.k;=yNpYc:%9])=nVb1(B܏;Ԋ(E^\F._*v 3W1yXr)r u>yc]+ѡ)Ǎk:f}5\0BP>RN r ^zGAxbwȌ.ArKkRv(C -l?I >)**cEY-_-RwoFDUQ+';%wJk_ ޱR]*5/y Pdb bFZd//i^]xu/U 2:cG<)stnEOFH庹#g&6Rz_J~t/({+*Ĝo^xӻsx܏>'Mc^ dc2f'>M0 -:5CMyyLS L!C` 8@\M'49ȿC t^ZAJ1,dĺsyʴmye{=Lbe0{kN "˔ HLc+)`Wk\XO,h(mJ1Oi)|5QMt)T#swwƴMuA;[Z?`ʪ@Lj2:+t)r_Bw]jgG_^:r |q/ReklGTnowg{ep|Ū&Ғ 0,jd.9vtNyBKoSܕbOس9TeILTdbR=I=gTYt*\/1\_c`A,!űIXs+=7٘Xcӡ,# a%<:>K: k>OL_vw5 7.K?1 )c |K>}VDW}ZrAQ~CB61ɀg &(esowϰZ/rqZ82TC#fȈ]^23%@!wrV<ǐ/ovP\9c |`I=b9EVLϒl\( "VGSX*f3 J06x*215իKI<|yan ̽+G:E?O'[>wwRw=OK~J,FgLЬ 1\$99u )6>d=.IaX^QiPP;ˬX]}ׂw Jj=lQgcҒ6,s`#s 5 ze] Ji_zG^T=,2Tkp(aaA\$זkLm2'2}D9PR ,%bA_Ϙ kTO3|"2cOG"Kq%}fICJ R>>U™U v`É[㇒xlaI/u+PK6G@Q$3Q-c]!CCo L,3|Z י-3;;D-J1Ŷ4g|3)#{zBmEO 2%6QR.&@97Anm :fH LK5 ۔#{cKZ%)f9''T8. FqXeT*rThHŶ=Rh$'5iRb }:tk )ABpȂ.bFv<'J5 y .L1`EIwͯ>OxΆ[J.ږ9 kܝ㚨R>.TjOZS #Cl8hf)0WQvw TF'WТ 3޹ FB׭Q"U縤2?+&;'qԓ%-p+wc>e^v+^/=ԌUܼ%^¡,5W^bPFeZBwg|W̐dJ| 3ڼk ?{t׼蓍c3]ڰdTlzz+jky$X+: 65 t nEF۸(ȷ%'=BV,ٌj ` hp8{ n^Df m^׫ !CL+(jwߌl.ն%C!CЬ%Ofp(ZE*[zTKOM~;u>#c/35~:4 ;w7n쎟B8I?u *۽Ʃ]vƲDC\O+j $^sӮV>ԇVp:Sh )#iҠhO 3pj*`t >*-.1]l|~xD{T($7 di2 AO/%*h:UU[ ˳ewӃgzVN)!&B-| A, N[[ > $98_~ X!h:Af{b9w00-E]9j} ˽ =OkԿaMBvpEV{U#{~,vhi6YdVYa*]VW Ў;ىNw[hO a t&FP7WAhL{BEèF^5`)9V T:bV4)SE)ҲP Q,40>ʱZ~H~^iisAP>XƬaKq)k&jZ'ٖd A-lB@hF;3^*\y!Yػ1N;l\rB2 oxWj9TG]y0Ʋ_};})d&5|߽+v^gزU1vHf{U}!7PAٌDG'+xfȵRZY h34V.lo4/$76jY(wZX~1Gx|o%C3ϪdXDUxS] &yT;!Y#gG;'FOC&@2O)fJl$_tA]e=*M> +:b9rc+5E`q\7.Ĝ5~p҃o/y36Li!nvEa XjmMw;mĞ?ܙb >Eg{7) ׸˼T@gIWZԭRUAd̻yF9&k{Qه*MX@{$طmF9) ,mPkzdF+3 B4pʓ4H-4M Uys$yNE|CQ-*eƂ U6kxCf!ik@9\WUֿRZ|a\Rk:_]wU# ;gՉNFX<./P~0"4Z2ջbZC%ʕX1V6֪54?e<3( JB _3 PE3ti#34|3k~%̍&A,OO -ȢS\ iU Qa_U"ގJuw[T/E?kw q,Ns9<* 7Oqt'II8Ƌu؎qq_4 t~YJ6gmlpP]q|)'LxTw[Uj] [?2ŃH&5ׄwi"r ՃTW-qCzV &:|c>0<8cf80f!;c8V2Lں 33͘ռ&IHe=J!?ese$]# CI5wl;)`eZbnHt= $l>/7X2J.dNWZSM,fTnP*ފT:u nLarv*sI:i/a$xa02X4حY8fK3Σrt'2_W*0TQpAmE K;\\2YhЧNT2$M߹s#L$/b>L'@e!,rG~ca џ"ƍMqEN~ǖQA䎼, 'F';ྸkK 6wxajL~Wl1 TD^t.x#UJ~Ԉ,O?U^:i-ad6jkDQD/ڕB'A%;~Y3E0dğ±9 ug@Y'Vlg_4m#|sE(b?È oFږw^4{hэ|62e:V(в [`)g5C؂UXEQ~`谡zt WCQ/a&A $vJ>GGPhϏkI#jY#9Vر5sove\F'KX`iGWO9,)8Rx1'Ṭ/AfR5xB#f"Rzǚ\ r\3~!M^TݿT\uVli~i6(4"oca/C]wv9C=T5۽!06,{aB2*ϦJAL/L+V ͽO()4>or^N@G;ENuƏs'N\3 @$ Qw '|MDrj j򩻚I5ݜ_Ɗ(VRt^>-B8}osUO*tPG_֧+vi9'&vx1"}1Q%Is_I~0JYn6դ,dJF[p&C&2:Bq}؈tv-ns8 = %mg#mR V@mDa{s_bm}ܜBT1Rmы؜Ic㰿5W0ұ.'/(ּMI)o!@IVcrgGKqYP+oN_ an["fYvW&[)r^Of/$Q5}]!տ|UcBbP{$$yS0֫0ILSgYS#d'icS*Y5b+e2PoK_Nv[ ç-iޒ`1enf5Rﻩ_lWڵh gW,Ə` -(i:] C`S34څY^ D Ҹ>Q!k! P}ԟ-cPbMmKpM5Hˇ^ ՛r'zmHr2p҈c]usr-ĸbk nቮ<1aǰ&]٢OO=|7~srfȁz"rRjNfeč æ75&GQt*2?fBMk._1ff]SAan3a { IԐyνϫ`ăK|Qͱ 15}1xx;Z͔hrpZ6TD垛Jf)HC_d]*hTyhu]+p=W(7Ko G0ДQcSC 48>ea.Fo+p8R)LO}lH" n̬`|z~mCI@)NP!,`QG9MʴfNq{8E,;cڵ_x)6/ 2[o!p/bT6iY$O࿠D6(=pOJBVsDdMRTᣤb*ݾ VS?kQ1K@RIshH v/ýW(Lg(8=қW͹(GKoşSA07 EPrR 87Z1Sm2ZRRsrUGy+>Э4ޗBM m$ ,)0rc~cߏvŮx{±3ޤH+}Ft;N P̲ʂi>!yH4r $WK63 ZG0d̠ͮ7 0 Q\ivW@k !xN~=xm{Hq!҈X!#HMԶ]{S關0g =fP%5{䃯D;>ݴ6JF.bRwG>en"<dzYa<=zZ_,߸2B9F| a,aeǎAqz]O/K^~|`ޢ9"9y}n3#yHj2H!8!'|;a=\3Fݼ yVa`\%5}AfQoW CKi/)LC4zHyP&3X`jT6y$u}d^{%iLp(mnN}*߷X7<Ũ w!{AzA"40s!TrPMUm.N8nlW+mHXjH-A+ūv)\K}?4Ⰸ+p;_0=bY/!VU7`ZJS`G9eP OP4,D3|xQq;5NLT RnPg- {$ԃNJǼU49JHźNl:+D ShoOch8Iڦbqy8ߞlm:E"==hNY f`$X=._ڞxIN&r[wo!<~P.j~fwt嵚g1hd%9U߁N^yթ` pYs:UXՂ8nf*]%IM> x+-{9ҥKh8|R7<-G׉ڤRF=g0C.kgZOK_ Lv/k>pb" v?{gn?R;bp+4Q`ϓ]g>Bt Zpbr岙#.hm^䓢A?1iyh\gPeA),rݡIϩx G}433ϔa;oov$XQP7|*ۯ\p=AW&=;9+CuÞe};GVb含\1w,*6'nG upt=eRĸs=B~XQ#5NH-+ճS} Y{|ў•ŷlZWҭB Yo\܌<#} RB 5K-Ais|< :Be{Pb>곏om#Uj$B8레T hB9={TXUJ槅U(GDMtYltSz뤸DNFSg@MٺKUʢiRpxG.%UҗAgC!2{O[ ^ʑ5lb7j7nl0GK)r=4tMKE*d%Yl^W6병Ȟ_!ƣ5G1L#a`f̷8`| ydŏS :`yݎ97DsoR }:L^X~zߏֆ΀ȣl,ר70)aݗ#^sMO h8 }k,Ts̀ݓ0 Yó;Sur1#v}XGOBql!Kg6GC̔ |Ú )AEw$sW5hP vihG>ۄm.+ܭ@X/SOQwHLǔ_xox; GRj`>D"p(jNI5a ,|yZW,G. լ \-E0r T<\ WR 3m8]p_;W5[r[_&#d)ZkC2(\ u,FN`Wd'ώnZl[ȥqgtL-"OeGLŧg٢ASƯuDZ$qb!6q%A7ՋFS.hۏ2;I&1.9!47x Iԕo~P'=~_1B1'94b SG /\O@oŤA;IMp^$uepmD,hC7jxCLl32M)b r>"MrciNVPޙmr8L]r̒E9?ᾯ NYF/(-YibamOT/ C]1XZnڇOvh !@\ VC&$Ŏtkw[ `Knl( J[N3?+qTzeG4I58MH+CXy "|<~G`iqGc W]&Ez|lKk;\ht.4()[_\t C;iئ?R\з0Or=gW_.,3oݍ .3L?g 7LӇRz:Kȹ~ r+ބ J{}-Il ~"8aSv@O.m~wp81 , e{6s'\s=aS@(EO)?oU蕘, f zŪ$թ{-X#}U:~s=I6;igz>@/HH{dڭRhoչ6б]n rQMҁIlJ k_ᰍ2SztT14~v>"`A7mO bl68fP^=c;62YVߍ9|!;\чfEc4/:?vO4EƄ@p˨2f>8|YbG6Gت9:(kN=}D)-_%HKӓNA/$q%X.3E湅xnW)|23r cOKO(O^l49#AI9lw;/}%'ڏYq~YkٌU&t95fSkīcU令᪴kXCf;* tq {,Gk-C4M7?Gs qA<򃡨=?~*2A4xA YbnSVT/xvX K>$v/y-SFOYM 1vR=܃r$/dc^{(pd=?w揖+D#qi A\? ~soЙJ7徭IPmr}ZȍxNMOvGٍ`9 .'p'4Ch;}ODd 5KadkQ+nĪqHg{4Y~Z'"#W6,(s])q.Deu|9U8;zdaS=cY>Uz8}Jlո}0 #  tɶHF=E}>եţ)cM¨n#u<':e禉*ǛI˸#25BF@7zD̜>Y "\|+_av'-}2@[c!SE+[k@XZRh(Ycܣ٤/k0 6'sǖ}aN! ,hӵ 'G޼YERdR q)~R|M Wہjۛ|=IQBoԡLe=9 mDM@^+4W|XE5E.(^"=[9M5$ ޘ*UA\L>MgQ[2&R+P}RDc2@<_5!1w:UŏD:ZwJ!7D;OEg%$NTjL26V2?#c4/,M)Oa*K`ieAˍTC `>+.ב2^ְ֪OxD ]eAPxiaAՁ)pbqJ3Ba+qtս&`^|P۝r~`>\6_2{.YB1YgrL2WJ`T0쁉 %M}kKN|-Y}aÄ1xs/kTG <Z\ @~[m Y$z$(Tr_D5:S>7boDg~yWNFa|iJJ_$;,IZ]^₃ U>pFʯa!M*ZPiF"o} RCwɨc`+_AGY-tBl聀|EdS< 0L>@QN^b}>ھ/~ː&ۗ­ivJa$ɃΔI.Zԋ5^d-G]9J љ֔26^lLߘ.+E YU qv=nPD8@F/"rekVj 3R0z\٫]>W؍kLHH=2ǟ>(b9-Jɤ3A+do^b[1ǿ`.lv8l]VpJd=ka(YLCm5g!x˻d-nR:O϶NB)S>v휋 /FCZF8)=l0~߲unKaudp'2HSɪܼPm;$^}ݣF)B( ؓh/f1J%IYoK]VZBt{Pe$6JŐ /̇bWؘ(px<-ܼ\ral3W%tNt?$M{lK?(1$ּ2Z rj#"- U"H$ڻ)rx5Kj?Tg Vvr!A.'糸qRmh;ah%hZ` v$/qxXĘ׏y&\C iab>.?QCAePy, ;ҐgSpR>w Ʉ:WaIkG|^.OO6`}KGEa7IRc`H :f bMV4G ʐfޮdt`ȴ TA&Pϓ95;]׼oG%NVg@ Gv!!k`w&|ʝ0(W\ޅrtT OEha\}x~SFgDpPW+3vet=JViuWȻN An_OQAǔh4c^ǰkGdm{bFOAvI|.<$ZxMD\JV!ӟqt1ݹ5$̼ ݝg.\;R,/?[,`лf$9<{ROYDsR~l!oiYGR|d*5=h+udx+Wy\d9{铰>{_T|&F(`"[ @I櫌""`AHte5or4OºRA^"ɑ`ʤT)h͊~n3zUQ 7M"h}:}t8qt@ o5@ͥ`H4GRo~ 6U;ḈC_PxYװ0n./7}?잗htz^ߡ_t5I1KWٸov5$5H,q lKOp~TIwņ yMȀ4rwKo> @;\ bIuᬆ[(* 5S+.F:1`6h2u'&8 3݃l'e²kw[rl^ JמN8X);`t١}4du{ rS|W 0P ̿ Pt6 5WaB O< S7Keƺe)84LQbV:>Y}đoSbc5aVMg 9̅ȔjQB^RkNx{x8{UDn1Vo8ui2|-br[`mbSFu0/|)\K ];RS1{ͼsXwr}6U D5,uFῄGֶ{1i2COs)ܶ&h(tZ~3@.`>œLz" )Q lO ࢁŕtXVʤʔYlJ.v&N|z@K0>U& 4:LOkϪ[q„o$N؆wQX=;c~nсb"͖#%Xr~ ;:Cm}"\mD7Za2x6|[||NIUfxhrxaXoWcg,#y&AW'KVan}>e^A"~#at цo%@Se\^킯Kϔ"=ma.N 67,t  o]F_XR=% ט{ψw~/=Hl{C{S;0yn =)<4"nN酟}HEӵ~G)3L=L YNOYyJb>AժavmҢͳ9o3*) 5`iw(Ȯ$2-P3nMCuՂLkO}͏f}ѕ_B-qSd4SR,%ˆhof;^HIEz;B\x^N_:iMo= `< ݂~)uغZ( W˜8tni548~bOg7!CUDoWzz)>BVZ@hj&ޡ}Y 3rB~(9'H<- qהf_h|+ߒ vy׳+/BVc.3eKBջDyLFn}ĞcWi0Zn3Sڳf_jg:|uIý@^O2,TY>￐e 9 +MƇ$ U%þWCPsRpҋsYT]ɇ-:ѬmE(!dW??O~WV ^X fؽt?z l2P E腜S><.z%gqw tYTe>hgfT,,K^ =]fY}sހiÉg]{Pt@дa]?ft\i9UE˳c-FNG587b3!^ejrjks)5$dȴ?.X&p~Zl*zg xku-+ŭ` ,RqI}>B*\7c i}XNؤܐ%W zX\QJ<4'@jW8uHh~".G=lTǦ(:/0%*^q7.!FTðKiK+5܏e|]"LmMmPɏTMC ~q,B(SVC%C$)Itd>->PsW390V6^,Isv2}[SM%\ҋu%jښ22BlF+ r |LL0Y!SegN}JiV΍dE ¿"(gqu{ D(3g>N+sֻDd6uq\ZLȯYuEsC ob]N}ѠܪUy1YCB[0)-žv%gOm3 M5^R"'xҿ}P E)v s)Fq_f71/Ao?&O䏬]b1ӯl~@O1 xXL>p% >4ǓSЙ8n?{WlXbBq~A͂nvLG/-{ULE/L$d6|܃,li>;)Havn; EKgteC+S6q ᄁTʗ xeyC<{'w3eQE]jlk…bcC& f+723JS32gZ^=b6Aך=q_w*ʈ˹(ka%\pr{o%y%Vny7Nt@CGggO1c0Yy2 0rst;uQ쥞(>!N-t)gZn 0EmtX\GKNQr x Y{7 } L4wݽ# 2͸/}~e0[ cϼn"yF".Q4-~QV2 u}E$Xh78'!ag[ߪd+l,R$ ?FM?Lꟽu2SL&B>-a?LTܖ\JaE!t~PK,߳C_m]Ǔ22^_/8Nwy`>:ADÕ, p;Nҋn zi̾" Nڠ]"=veOF->p~jH~ޒXYNqAC q$OW@ 36t,Vw !Z}aL _̀vc՟XxPŬ} ġR?#Bpz\Tv& .'=dӅ1W4Hj!fֶI|l>~{2Qҵ}3hޙe->ɋW:?¦'9(&\ΊmRP[ZNsb&Tg0b *P\#fӵ'qp]4$KfoȔ釱Ƈ|wJZ(t' zw_[BN 0']hb[]duC=RD\>mȽӑ+B]tb NH\v8 F5grגv*/bVz;vWEzPǡYFQKZ N{Y[@6@ ´0*T9Ԑ>wvMRdߗLEBn/р ģ`_#i4=^RZM64RE"$ۜL?s8nvuɛe)jKm p=7?{#u%iG{^9N C1ihH)UiW}G.ʷ1:J:2ntD3 Q|s0%xk4[/kxWzB]95w8'mWTIʉTTT=>NW}j 8$R&[c&1x>Z߶ѹʁщm1{|)k^Fcx. :PS|cc:ԊF|-?ޟjE`\D#a%a@Ghp bz-+޶3Zi񋛂܊PٙMpT%cQX {d6`z/807qֻeȣi^1;Xʄ2&kMp xҴQ}?_b-|+rAa?V~oDhGjBLywƆBX_de3c_r}1$6G"D4_rL]~F,AusY4uߠ`6Z%3^9lx~w}FHPpՑKb(D{ B{ٖYi |BnxsQI]ShH"2p/fÒ#6nj#.bΛKݐyJ4 bmrClZꉶ7s Tr^LYc ^]~/S0VcE8 鹮nd"9S#biav0BRx,U):|0x10 q8y&Qj#,WgP$~w O㡚9H|_,>G>{{nyJP[ ɸeʤo{wek,5\MiC |߳ _|$W P2~:)<rd.s_~OKvQpۯ۩Ŏqԁm49QhyK2 /ir(m ӕjxAf1wgcv՘TD$X!Ruek$ܖ"ܤaXdI_l=}`&WK^5 (<5F# laV9S~~X+jHc j*oy!afU@rt4A8jg ΃:ʒ#h^FH{R98@(H}_#\!fȌuhboŸSlGw$!hwD}h,@H_R?Wj ѤGۛ.ӣ'1@ic=$ڱKPD8pu쎶[24M![DAu&RG5d#Ox0ki C [I9I|+/|*_m V'բDEC9,7"1}NFK$sWwRnPfHyv/)=L!r :{9_f/]M/ }yNfbR;)n,hf|tY+pD'>=  p7䎋ژ:v+y6ŝZ 17o+m%w3"5&'B*ZsYr0vnK*=  B~8SxJ8V8WZꯎ܃SBI a8l\_\[G^+ e-UwS8>cId`V4,,L 5_&z+/<{"l nRl`Gq uXg[eZԏxޒw#C)Ӽ}=£.Pr~GjcTt%GUT{"hݻ5ԍ)) ̿E0!v΅hloTu& Hd/L3o9>  %= *q)L/1-Ãyւ/Xۆ ~r>ӎxQ#hpg~ Jb\͘4)W ,υQ≎A"\W䋐|/`!fP[B_|VBHMAnr>]rH9'57+G! ܌a[qJ c۸,:y-?ai__Dwҿ G@$XEZZql3./:$)di?.|“'?Ӫ4,2 M]HD5ѾQ62a+P!z/'<&ܱ@Pݳx V3,[*$Nlrt#ƅďÃzM|p&(r &Q\ UNT(l75i;=snz7>f]vs5(!Ǟ\EA« 9^LojawR <0qVHzALRSs? F{}'!$Atԑ58=~hˏf PG%_L֓ܓ/S#{lQQ{V$"6UUyNĭ9@U4Ac ^=0PԹ! OphBi+CEnàIgVq"NT?VK6w2c?wVô zs'7dxE-O7.:B5oMSyNsτ |֐"qHs:i5etdxF#9)e5eR1l(H5֝5aYap;t5 4}Ψʐ0OʠJg9k:5=\\k ;4*9\x:G{`|0p ?-\3bk[3zSR騤R;ՠJ2{~=!]SL2;${ ^| Vqc]]i|% ѫב^ g2RS[ ^R4MP]x 6yBz /Ջ@@sw m#-OW!֏&zG/^_؞X"992&ά?x50?_.$/4 ̯0[ىZOUߤgh&gSc%a@`"\DQ`Bc/w4ΰҮZ4/MTZl At1n?Ng|vOhJ8(u⾿d܈ْ:C=ψU9{_W#ꩤO,OwuS&za[O!R_:cCDSƫ2tV'O"XҒXXow/C]66\p!K8k)?Zl 8A1XxM4/[I>CrkHW} I=HRmfat%}*ľŠ Vp Ms>Chɮd7}rvgu^5YQ r&zN Lh8H^;Nx?I`.YN*%l?|œd޲xZ r绬.5_HbG8.sXsi,C"1jL qQ n~x 8DEZg|WU(M>|e=TQvM vsG=@cӅ~bm?N)}nh@wJN-򃆤;PQu'1 bWĪ;9&]Y(NO{HX_ ?p,qTmFdq~pࢶ–[&@9=j$#{.,&ORUSc&L'#1-d"Tu8% :D*"]l$s:Gd1|[0zfD?)Lm ieik5zPA½cɚAy\*2'쮤xvYDp<' I;J>&u qT ZY:\KئaY~)*보nw8laUY\f77R!): Ywu|4SLm9F_J7,Bɑ ȕ(X:=7FYq~cF#~yTK@e" ox2*]E+j#"ɽ%ىe~x& ?ndTU؎Z޳e:ty Zh|Ls=rHtҤ$(êDqЋgu@z⨌0ɚk5 e$l"Ą4]ZNt:=` .t\[A:iKg*"oFC;o@Ph5P c]mN,Sbc\ *1Ƅ_#v\\,(TS5bcKJ)VꍡUf'[~P|Bc8+PDoi'>*'%D x;+5X&RsNTwY|b sԎW-dmwvpɴ ( -$-Nyt<9l=\>BTY&H@l/l:ۉP.J3Batkp=_6~wB_b u^ D:,iP,b"ѡQn؞N{)|cx5z2b9lVݤ=y ,3ߞ[TZqrUI L~2IڷeHh V}O$r?ԉ}ߌp9qX^^1ja,IeZC$'\%~偭ӝM(p,T\373ݞD(Nd~0(4peP7Zx"7{k..ԓ9nbLCp>V-ky$J& c5'?%!;H$C8 _WJŖh$tn?И*M[-*HpnP 7!X/,1A+fkn3%|}$7ԒKKtN&X~A^> bNvf~3`l2 QNrױ"Oa¾ͤHﺿR L) fςpF8]Zp^:i_5KP#Yԩ ^{` G/ÏQ!fi8|ƛ`[YP8MjP߰w!L;Óou7\6H2T֦t{*4^[Fv 1{`n}ѕs_9a8`c-7OY 3;q鯼2^sUMYjHJ,eR^h݄+bLw@+RzM@hKjI&߆d& D"!3KĽ$@h$cN8}}2R~5p4ݙ^jggW09F/t@]r,6HL"I'Ѩ4g!Z]-'z2jCH z 6hOA}fL1lVf7hHGe8+Vl;:v AQRO^`=lcT kQWQ {El4W=<#.l̂Q%E+ʖXX,n|k鴖̯*I;;6a hJc3DtG[u]ATPkTpոG * < YM\dnGM/D52gB츛D_AW:zecwO6sj'WqI뮎6ƃCZKa.H )ҽXF^[CimAS=s)ڦ`WZ4 ԏ8?Zu'_GZ5t/p*9L)mb;Hf4L}yKzBz/ȿ?g&)suG܋_ bQ9E7ݖE_(qSҲOC r3}sS:vHK7Y`2=((E*7h>@U0MѼq%D(U.{fpZi7[OUqU Yu5%Զ2KRɹ]9l[$_pY@)%AiC24ArBA4\=i[>#1Fɼ u2皃Mc30Wssu5_v\I Ε:~zSK% *±u]v2*^AEۃ3Ϋu}|]q"i\>ӹ%&? dgewQB3h|Q`#ipLpH|4 n༎[-uK <#tfeɈ/kYf4nJ|싄1r+0| lˡȝ1.^^'6r6oNc Pյ:NI0!1Md{%WTsA2^"k@9G|jѷ mޣ=qQU,rsZuq+E* Cv]WѨ좰 Cl &e MB;7 3({y&zo,=5+p o+mcG%"^Z˽:?eX!HjlEaP|k<%IHl$\ j <eXH`VS@Kg;/,M?T{oOEL ӖIMqmEp#RHqjL U^FӳOaIa] t/+硔Wr)*`60HE;]/&cUF)f}6ͮ(fnٺЋt\\}tAEy'tx2 j*%m)({{)IV ?>jν^̂$8WOFlʄ߽:v<riJ~>T}f([ԁ{Wf#b$Z:aUoJ:gulw/I} E=vE (?[[8AGۗ85$HNWȽ 0lpєoTgmLו>pE(t옰=k$j+Ta;|KKXc~f~\*ZP\Qbb8ǣYbJ_/SxOI'&MAϷ Ρ#!|d-,U(OTz=HA$O@\xĆ&<4y爉izGQIԦr:ؠbd Wg/Wd.,jCCLO6G*ɪcOG=JC9k[47jgt<gpۑ2hgd'BZ6dMƮOBj7c oZƗ/  b,'e)> /\5ʽxӨt2oÍ[x{{qdG7lXYFS8tDAdZH10FHq [;gYQR!i{d.JrjT3$78QfgF$7(Awr=Jf58Eұ%YQ^Raיx[3s:V CUk˭8Z_5&GEc~|ACln g Dv%~iSO%U+\S۟;βHr-@V{<9Lt֭|#^TP\:3<3z!dpˮOfdSOJ:0*fD̀L:Y7*7}\Fz lfLJfw@f{]V?Ύ0 vֹ"7S\tg ;FV>t"7{Y΅2.z~2 w:jP~}yb86/YDb~Pa?2XLp%$~)':Jǃ6vI{ zkQ*_|,Eҗ  =ͬ_C#oeX6%9 k Ec)b0ZO=7\#4+M\{MISqJmUs@K҆oDjm2>.@Yn086ayS v#b|[BTxQП dm Ͻ6 !LSgNoD}$D3$+6ɸC.- #q~CZ K]g Ymb_[+y"L!,P\`UۑY_\.`ƑQB1aD͞OdN:FbeG 8 q# Sbp1t̕Zwx<n0TPwVNהelJ(=xg(މvCxXKx) Ĕ*.RJB4Es)0% &vsnU-ȋ cI{N'+C A.KӄPDZ翇ȗ QBdƦTo͕ )2;xՄriao! -݉LTNOKQz<|)$(պރtA^- 22 OT#^{͆xp vsPV3z(>po+Q x!VΊ,6yg5`UJ<4݀yZH4LohG7K7eC1l|g̜1u q+M-`.)N6ߔ0W7WRdZ+ml !4=W ˺Ecy'gNu,@Ϸ8ѓhYq[Ig{H`u2WOۢ,<A,H1/+ni^Y-SJM!? rp WH Fks9DI؆J31博Zv^\[\{MN9oY6R9L@-J_ؑaLp9{K^>5~&qD>Qh 3^ԁN5߃>+5fzTt$ Frv~#1?eNcDR: |6׌ p[=<(xqQ&hͮH)s>?S"Ẏ^6^p7HG%(_ 1SBC?Ȳlﴭ x -k-S-( @``)$rQa-fOkNb*25SRi(HzD2: 8gDtV4%@>904wb&jQɔ[Ȥ#bw"3l(5o׹bfG?c>DvY#u.s;pֻd4hS8 { x[IL[әE^c A5#?SQۺEn?!d6ֹH *W D;ٴ K F(l>P!Z|(- XV9:wwX3yKh[Ir``B; '[We)hb?}ȽZw :$A>.BՓYG4ZL|X[k=ML,>e.19m`NB?n2!zdpXb-`םYb{.y { O ?O.Dԙ3@83ۑ,_#-rf[2?zO@^L").ލ\ryk8Ϡ$ṼMs;lO0XoIR`EG2'zm0*ه$=/;ġV@)Dj!9 X2x n׸ZŶn|&'?FN˖ë\O|tEٺ \pS3M 1C@h?-SLIpPA0 uSpd0WjGʎ;*m={vv<9#P 1r[W1OfcRtya}5eŶ\b54DY2||vFsV5P~8 q~ ^.ėE={kFA (5;:~e˞` MK[5u[,i6Pb‹-A֤T͓F,^qˈ+ȭN̠+I/^vu@bj=#+CM OfK^X\&gQנz L{A{]TtEfWHQ^)0OpdtA%+lc)FtG"UFO5 c z:K+ēK8@WѶh9v`(pRIH\(ϱ-C4nbSd]fftٝq-|2^tx)M|.Pqljh b th6T.ȈuCƺn8G[q/R}ZvXcbѼ@9Mc9(Nig67ᚙh?Abc!YNtw*cǷ7k4-Bezp+{P3_/;8sb]Dq~=9&mu`[5eں&A$>ZlLOqh04Fp ̹[r=p'XEK^sՄHg=i`"ГŨj2YNWjI.N"cN\{RB.դ 4z n6ԍH䮁}69 ΧlA֧v}Ⅱ 3s03ϯF.,Gr15=.62twV 7M%SyC`70$SU ('e=#BI`/;:˯Бf K )JuIM:戈UCH++X \gr&oD@T]0"& H?a>x ߼pl=VYejn'ܳtvLgS]D;Q+ך֑Xfj_e^Ye5Dú[\5*H$)(/P/̈́P uo[уTF/7zi [cf7IH 8H6SM5b>Emƙ갉8"$ȪXe41T_Ո$Y4_X\sKy.,u-HwRCY+b)q ;Ea<%_|; 'r'NE1+x,OP>aZvco c^ʏg=JxEƝGk8t0皒ʆ!g`S\3R/p! &`F8ؤS>8RK{pVPWIt3̀STa|s|xmπ lKȐ[B]oZo {pzdfOz|4-: e|Q;3 T^>4:SUao>X*Fy^:lisTjBR&Ћ&C~q}R \2HDP,Dnu }e>l@QEB73v8X?cA&UpFJE 5 I+SWef0:ݥOUv1Mm}]x ȰU+oo%WE|}ZYHϊ"> 海dk-sAؖV%woŋW`\[\1{|4W[}4N^ys/@G HHʀv6rdGd4E>Wt,C90,CkG?hc)H@˜W ]@_5{#}ЮK4ҎPPVU ?"ZwHuw&(U-xzu .J%<QZ'MG0J@5=>;aKJW*ZqcVjfPW8]V* #,@X_;} XZ^u^n<O0F ){`HU:a|r@39:ķfÂR-oxl$4i ^>E^+3 CRҚ;%F [{hM^Qd1j桇8(9X`&WwEC= `{k#_Jl򛡔%NԗqföqӤd| X mfAxFEiXi֠pz'][KjA~yÉ+{܅amqZ^8 =Ra6x/J7t?fZROڳNA9}PlI!}XJHxS`=4d z{UQrFCZT+$j˼+vyx:aࢷH<uqd=$qto @9E?B܈x#q`bÐ3;* %~k`똫Hŋ`Oa.{Ahvv>[9|Ꝺ4?3 dni(;☠\q$.OYt0cΝң+N' 'Cnv mB-]͡{,\y;; tEeɦe |ZGPˊtŅAv,yY~ VG äf߬ޔ4fb.emBzy9%*ʂM', >?8cM ވ$gg-ԭEx.9ȿ wwlgMG(=.njpE6[{;RA^lj6RKn0ֽMGt:J7|aEE޲o> Lꌝ5[M맋J(p|5I;tEQXވ9EI4q(h$Tu؄4ۛ0_VUj9)G&^>S9ͺ/S!Ś>U<Ⱥ2A п7쑋I)&x ~/hk%wr s= T9M0oPRPzz3䓕7ҥE-hO&1e$-fH{w1.l(a)i2Kؼ?m(B[wf[4[=eԐ%\o.+#ك]Ks,2XQcrCD 򃱩.-ߏX`t$wOsQgDy3SFnAp)'8R_< &Zp@] oúf Wd|c4\0i"!0Ձ/:/%̝+E UlŪyU C1_끫=FG." X` \n]nki܂6:l7}w%TIîz4PN}\(:}H'N}ԝ@_e^nEU)67aW/ 8b s"9֍ Ӫz\V&~mU!-YВ/ъݦ KCr:"稩Vk]p IW@GO H+9ldlUaVqKj3mz{l]jIryNuH =>n+cZ*x@-!O4_~"etTֳ"Ǎ![kd }ʍ> FCgt~R5ş\%Lēf$ㄊa=cV+vڷ:bdlPaC [:%GL_%\s(6(݄N.# t3`cصź e9.]J)RNS\_&!|C QX)jxmk\{˼ƏmwJ \sz1cMCoO7f!Ja*_K)3ԣ4H?_R`Mqm>>qF(ߓ6gj"=^. m F??\.}_V& Sa:5~F:0A yxv܀55OJXk%-Wۑ: ۫qdOQjkhy?BNk-a(?FũIGZ씾 ]љc7tT3J#SxƷs%TF=4?3ŬCF=+LFFm7Ci䐬{Kَ[9 kL87{f) xfg9n,5+&8=]_KxNgeeYH?Ӿ',l幝Z8j,ED]f`UFwojUe ]^ hS?j0+[6(D&gcDs%:]Y+Ӝqx?T}O`1ݏc?GgvͅB&=p7-9Pa$Eith33 ߓIz}DˉA8oO@VKpH\`}`|{xȄ{]q;*>{1 ܁8 (ۚ{O]KWwRCD#͖tlGa*WeO,٘L:)^ʎn%cbfa$(5=IyuzvRϋrGUKwM#NK2Ώiu?ƟaT/SWj(^5^|24>0b^TjA-&<(e _WqԠ:62.VPuF T4y{ eayJ&4ĭ#\${f KO*;xO1DL&f]3COQrl%/)Bm EԜe99dJ c<|@X`, {NlLO6nƳ#mfg~+֩ުT󙨾 t:9 )?\L&=K0ѐ f1w):qQKU%P0]/?ˏtLBEY *Q?ZMh`Z-Gb=FNۻMApؼ`[uSZd bܷi+eGzcpF/H p^Uv :bk4ʒhAaxo\=Wq 90&gOJgxke{{vzZ]舛y} EkG,ˑg/c벯йQޓ?&[_瀷eՊ/O5ɓulʧ&&mPQyf0ITnVeW\kR+EWݬ/iyR%>_Fb됮_>zTq3ڢsu!# &?4½I{ERNEUŹ#=P;ؐGƧ MF"w]!* _c{C8@((@R˘P˗越RfQO!9~:ppqQFV71fSIn֗jSaT+,0a{Odd#Ȧƌ9z p*.', M$1ܑT'sVս [>gÝ~/5쬟o?wd[R4ӈN'2ҙXG AшU6:֎wX_R^]#iQ_s|ף9ͽtR3t&A:)n $8)s쾋g͝c9bq榉eLD,nH)xO%zu%m -` U3xWjU״kITevz8gw I@WO4pgB!G>b"q'w#0_jHUȞlֲG(OfcZ8̺d~1QejT[WHZD!6k yP-l.0 I.~:ݑ';OVr UwePXhp3 HjؾX QtTj8p͗hu~ؒ-%<޶5*UG^97 ^@7I}AlZɠn⢈y{HGީlLr}#\nQӥsP[A`׳>1wT@qWۇU|[܃\8q/ B瘟e?[=ѻU[v !v mR2F18;*T.yGf?X5B6vo /^d]q)(B^T 6}|U.;N]z͠E5@|WKT"Aa}M}{vmLvCiBh0ӧ>`> xqRIT⫄OuhmD>{~ձ_}8)ݨHb P-Xr.QbJt/>3CUQ̜\bt]NIi?1(M6'}N*4DqP:H:Pn6lN[2-3\XXL9?! C4Cus$y˖aLU.>X_O 1Pȧ#1ŝQu6dnğe ~Ūo)刄Ě{M1n6>wذS_id Yk{W$S\3_UdD |,Cjd$fߪ a-Q$G7j 3{,8[l}IfJGS#n~Ƕ5g*a脦Cohi濫䪇sG@$m08HG݈!| ($myPk]g)Sk9?_~w%Jkљ._آL\TC@Z=$&͸R UGh\zm-cTD:).ƿ-oԗoǰĉ295R{Г[nT'vEǷyত3rJduIVXQXqJIv[IW;3iCeKpYBU9.&IkO<]ÝQ$6ccy:84bMfLֹw~F ǰqO)IvUYƎ6vW/;Xgqk}0v@GSUkx9>]_ԍR=\K#?t<de;Fa ] ;& #Ap)HJىwH^cR}I܌赗֯gNoa*kr.jixm~C:R`X:ia_X_?0yaa/,,$4CӨ*4xbe|V/ṍКIH\k-a}~h5pJJc={V³FCg%8%7?h;еP xF%qs}Rb{Jbj~`4H^1ʬU L=4m/I/AiQP} GG&!:A_vf 8D*֍֍TB 5CPc>x'AyCE7n ^NJҜgp2|h5{b؂35_;`A~o|ۜܵҬNΟ ^*`x!tWyw~IWw]N3ժ:sw^TBKR3kjm֘:twHF[8ҧ1`W.Os6>jRq-qַ fP1*\1rѽԂUD\ŎJߗEWMhG% ߔ@.BZ_B,ӟKzU|P8^؞mRZjÉ 枎/&sqFiLv&ނg8];:P0|ް˲ "r6w }-홻l*8pNURIetsl0`y0}rHtǮw{H xiH/:C v.o?>1IgIj'ԟy#/;9P|=``RԖn5r.~H`UضW֧.SY5^䳐o -Hb{\kD_rGFX:CG// ^IbWٴi{̬ 稝)e^k/Ur&]dy4w؝%iUIϢ>kh'DiO&4@3\13"(q5˥lrxW(pO[__X??Atq`V-P?sGmV?"K帲E&̋lw>)_}og.})1|Գ"عy*9\j;:cR:CqO'& ۄb:TCh4BMa[؝<-kB֑ z 9kyQi+1\,x)]jD#rDZdH#c~zZN#g9 b,+L]v>ɤ.rPۼJ f5G'>.R' YhE12E)Y@@_YW~t$Y!7NphK+6rD6OE%΃bF3$hA#~ܡTP֥t V#ERIFVj#~YhէHqD>f=TKsYN"zt Sh(R G4+6J42'0,| גJ=0ۙ |-,!ɯ@gT%uR7#ĉ 66&H.jpI7 ٩&p%QJTlM( i#4b0O-B|F܊GM65H>FtP5!(4| d0ZXXIgmWxYr}!锔,ʽ+3A"qa%x39(}7~R6mZ vha#\}.Ⓦݜ:SvI^UbI\/9Io?^8iaw;o! jRTQN!ik1(7&{̑sn.26M.@K Lr~AG/EmI4VN.$J A0f]ҳOדFM5C, ix+N2L\m\֐^Cm9yf>Q]9Ñ\D-RJ[)1Z\_{ﹱn6 kI"+k{~C\(q =u|` sLd;q._AFwmtaAgP49k Q~Yжr.' 4,6=v(c)$U7yIVJ0笳̯aabNLF);ҝKq%@(7\X. ŵ^&gےT`qB@5턂?zŠ=PI8MǨq+ ;{Q0/t|IBbeQ>%xpFk)Cc/T}6Mַs r37x}㑜,,-7na9bzv@jHݞ4 5m1ʏ](N$>7PtYd?NdjEfda9k8F1I^#b'u0S\N u2w&tXy$h5`kXqTEŖ Hvz!CIUӯ/]*O%jҮ-fŃu=D6>̧=$PO7fLd\.䉞ּ$Q\]s `.?)ikĒӅX6B2;6F k_Mib`K5!Kp}~w͋?|TGoz]R/e-R#3xl }N{4ئ֛coIIF1GZA~XTBz_O u)sv7jW㩛Z"]ATuVIZ-'9S}tf0`9 A9v0̬Oj9^REl>C[M3(9PQ -=눗_4BcL *xn9uKGˍ/dVo?Uo8 JbB%4pJAOe`dXު9%8ͮ@zL:xNnLz5^ȆP2|1;Ggdv֏B wh/E)sr(;vgc Uuז%yD=6НԟU:X[ř DZM-Pų3;-4kvܠg1]UxǛjti?ވW[yP2} R[[;vŗXjpQ7'%UpnOt[ݡ_ ZƔVǴP' ZKbG8e ,k6M֭+qb죌3̺U}:¦Mu1C^[XOE|+snd^X4*Y mmJI⏁ Y݀Oy,md*ծ7'?7U7l!\hD(v&84Vu _dZT SLW7إJ=-"gON)ܝzy6)t0e`ZGnJ]0?Eꢮlgw1*ÛRi{h8ZN۽豓QDS1 Aq5DQT n)aԼ)*hi+ix8؉e!Fp6#S@R؅\ѧ>bvu-^<# 2rGQ^~s׀ǫvCMF?qKJje !"%i1\"6*rC q_>3qc,x/[=QMW2opUypO]ɗ&%GmA]6uw!nIjS_]8lҲm051JS`?Zxb^) _;s$OXG૨ M WпgӊP'L(Y2)M50Nw5 Eǹ~kXSڳn `FWVe6#unHĬӺA&Ȼ:l!}ϟ~?;÷v;o߸'`QLp·nM6Y25h 1-w2&۹jέ21 x ]4ɒCb#93o`5! %i5&hQ)t|Xf@j?y1a/(8O!4Y[$YX!?WKPhh cpL:\2m$^/)Q_L#1o:l͸p/m/vOcxl^Ȑ1oCAk@g2 nebzKQ2&7VV"!Y|g⏣t:ʭ;|6NeW@+6k8C\ix2_cJ߰+_o*ߝT|Aӑ+;ʌv'#E&6ENjSr,/k.C%O ϿQu'*.հc<)d OA"ciI#\"?2"4m(JhգʺOLjJ A6 .Pzh~s{I(D\"y~b' &(ՑF˿Ì&s o0:(f]aO)7_RHSud(Jۥ= .F {],*bmPоرa8 2 (!]p$czaUY7]~/Y ] G6]#%?$Z1w+98J8=FA]c2q Kl ͂︢vbi\ZtyAu(#Xm^!6 Bn1U7~WW47؋E$f4M>YgLlHWRN:@+?:\:ͼ1gШl\^ SsGC&wbF+mo\dR<.WRˈboˆ?nRZob̅=`(PX K3%4RB ;\ܦ*aPpUX%n]<^ 7sݢ4 NRZS N`l]{Kl`f* dhY]^枑/@"t|QJέS __( NCL/rA7-p:H¥kUqPgxSyӼZz?/t}ؠ 7?Oһ}=J>s㇞6l}jgqnE:KsPTu"=!DERB HVȜ8pěa ˍpqVϦڧ;p A^h볕bz5)e%ߥ1[:6vy  v?7xkn2(pɲ2s^Բ,5}H~mLx,Gu=ҺemsN'ziF/Zn-Co m80zߞ'( ?[234MrGMmt,b3j_ fC^q'zd*~)Ra-|9|,QN?XD<cP撑ud$ Jr=bܔ jX6HhV;WF\ Ǐ,y𸌙q N L(y~&u6%MȎzT;L9&iK`3$̺͌7;(B }bW''_]Z%c}JSb>|:֊Lk? mIT/av-fE\0P(̊MƸzoƽ{{hr*}H7yŸ86i봲'E 4~~9|~-QfGX95^0H. Td&Ȇԟx_Bsǖ?g|2-uΑnp%-N!59 *%a, <B曑Mʫc(Lt-^ 08yJѹtܚ&WoP{Fs b_; 3fa uF<8Zde&!E mՉAe ߊ*7~_q–U%(BΨuuvq!uĸ%~VNZMpfP#QΎa`&vh߸B @s^>5{V?ͤ +:S u&.:@BMV Mc/e]8!(4W7kik MI]x<_8a{Y^OQS"Q~TY8_n tFTlʯ \d^0jGDKqfkjg=.Uw_\ޓaYfԤ 0!mE5=[`#fVtCE9VO4C 4K~R$4`{bwmcvyzsW4G|?Ξj|Sd߯Ƀ 5V<8;Wx$&uf!f;Y!Xϔ+c$Zw>̧R+|~`瓰#zV|ItDnw1$d[.M ;є![xZK6~5;.zXgrJv1r^dYnQ_Z>h4߉E]lxGLC#m&|C 9gFD־9-gא^|GT翰ß!uvH%du+] *!.JXz[e$ x`pUy 5( kmE"V]6RRb@P[c6f˳kmk/Y^Qh*gq~jb)5b)MּfŁ]-OHkA&JǼw0[ŸMsb>x|EXY@pɒ E :^t 0knhK;-7M8Y1K<>iΏ+g,y+J}=Xѝ}s/RkI ;`Qp&",d6nz/b8Z d=>d(}DX,ٷ:odH}H|L 24acs{!:+^g`~6xi&jy r)cwERu~a|0Y*gtS]O-q"}{}QHlmQowVIӷcGƸƱ qs|&!rLpCZdke7)7G0҄U|zo89G'vH _| 7?l3T  V&Ҩ0<{NaH9OŌNj*fyLðA?xN?rӐ+e+&UOya/OQwIFTjq؟~WFL3̈m"ז~ކ}OGNsw=Yǐĕ8" bRsFw%g zP0hb5H*FvH`+L2=* ݟ)™5ï*6JsqgX}+xrRh+,:(#Ob4?O45sy ?[nS~%bG./vV@J ܷ<\?< 3T|XX\$$2b4EPe28v]SS^1G~{32jC}LՠNZ+E̙.~W?G߿L1|]π?"GU370jG;bʄ5ku1yXI&Ā[Bv` +.k**A1َ:.O)?a{ðz;!u+2M i;i7U"ǩ%b3לt }06QQ%eߕ P|~F.bʷ UP_5MX= 0$Vw{9db:%(uBw[XU6ԿJM$jpu`353gȓbA!0O_S5Ԅ@X#Ux0ZDD? ~ѽYCzm!84žhq^$ IGi?ɱR/i'b'@sb粱ƽ$jFϸt.:tk{R)n]x쒦!(3s2N&/~]ZS\Z*xğ)_ߺvxt|[#Ryus} (mc6٭7f_ӬwQu9T.wshƶfz Y /.h4O;B v)Ⱦ1˶JQ(v]BŜ4}JRA > BtU>j+5NQB}1b&C}'^)F@j+pHXlovSt+`}\m$\]>vפ\ϏmQ+$%C(o!Tom;bCGS$Z)Rų @ʦs \mwRYUQ=ΗV{GQ:h(f6⍁HLg= 5oŽ;>8c5$1!lqĘ6> f|FPg} Hȵvi%.r쇜pԵ0UAE S#. Ԣ|rpv%E|Hu')-kkw&)@"KQYc7bt vC'6H{27T P_wSft8v &=80&.01/m9.nKx*o~J`U'>H_%4<ֆa)DŽZP{2=5Z_JUTAեiIj9"iQoM΃XͯJ\b綄m'‚^yrҗ\t"1WklŮ Edgˍ\L{/ B 3u%S7Z)gnJ>~#2U.9JWPe,x;6q',X es#bf\,:h`]ɪdITgDr|YVʘ:-'PgF^._Κ07>T0>|.H>LX;I畢GP)zB +O9!߲OЈežۃyZ9q"e6U1Zy{l_Ǻe>:JkUAv EtZtS_e%<:-- 8'-wpUvVFz*Nj K*wt\1SO x-uCxd)aaQ.7+#q޺l̴z2B]wΐq)Fb] $EXgʽNLat (7I ł㍸5,|Ake f<UeJ3s; 0c:bn|d'2cCTjNrqtrciVY)#`8/ P~O‡wZu;= gf8b)z$bx k`mҦ]C_UT@9~[ [w7!?5whĜ5-R]*YށmD {ny8/GA=0[$s"ɖyRU}YF#]~UiC*欽Y|q]EާBHRo\W-= pCw]pm|rR_uzv(& oQ5 'o/[ٯb))=Ds:dc"*ۿ>Voj6\IhpqzUsiٱ[׻J,aysj`< 4Ux*F7a("lM^ٛmLY)­Mx11ЅIpW*dAIawf'`mĹUp!w>Ⱥt 1Pm*dz 냸k~Jo6+zjx?Ė3ߏ=$qf!"=ً`z\t8j+V^w$o0Z^LM HC>̦70S q\4%2T׬1^|@~55&As~h]dc&y6yz]d~AuؓOjF 07SU<$b g*1Wcs;|V6`<GObjv:d"G{Q+$1aDՒ~_vd,8wd Փa̓.ƂƏՕ/3Oh&L$*xQ\[-꾣/|a[800fĸf&$y ۻ: h]coZY|Hy!*V\[>rY~ gU >j X}h5Ojl, NLi2WDzTxJS\a؆ٝ1LLKm.$A^*qZXbU[} v*zkS˼p%0zF-#- _Buli@7Y ü-Mtm*r}INGe>OuqaDmy^qʫ}j뼪Sű(~Ms WhϔHLO ~S^;e/SC\E4 &eZw y x?X& ([5'J\b#|0WL,3)8 4?I_hOBn5q"X C~3Hmݬr|-%f#ɰrړfqNDw00tXU^7.Qv]D5d?곸NsJ4j/ź}ZWE^%,zLWmX2xĤ%GYDi;hVIJ=H>BQ-@H9iiPК%'We~2'ۼ,-{H7lf9l U\vCK֠5I[m\V^𬷐z!Wq9Ms3&Rj .H\dQ@?}$jiyԼE~hsD73.㍻fBB6.7TVxж4ܯ{=F9BV50Q&PBh}M$8y]x/(`1"$tj+JR98q{U>DAwDIv%i]kPc7rhLIL=r4ºs5winC27>R VQ֗+> Y /y,ɀGZ{I ̢y޻8^MtmPr۷< KFHVg;x51ĶAjt* L~JN24k/В`hkL`bbt$5kXECԪv+&=l {p#mV۷ȥ:KQyMtkwid. /,>H)7{#(z9$Ὄ@6Ǻ$$G?w", ᨳx.!Uq8Rɂ-5~S]l~Fm4/8k[c") -y#gycY鋳m_a1VN~vzNg{X%޾y%l~ G{EnP|z$QGqj)y]?Lš{.7w|3j)cmd_mOGhxF ΙW뀙dpE#ċHMCvdYV.W>9l;%$z#?w-Ƚ&Ixq Dh>0Rx>!\~GGOQ5s *Ҳ)Mpk[Z<'\44l%wnN -;^U[JZmlLrVJ\`=rt7Rٜ@hlslM Wj9\1\2?#!3X7%ElN{G뒐*xٞȔh{7ͯW"U1rtF>5[krsa#ÎNsaBGdy)|s|=E5 >sE0gHƌ]{1 V4$GR iʼmSzk&nXi5LJ_昏:Ǯ7"(6A#szaMCQϼ稏6~k)}hG.% 8/^4)!ԝ]8qO;]cW F~> jIh{in[!b-!aeoKj]8yiwH;#fWLK+ G"W 28aEh}=ZꆖC?clOq.8-Lߡgdzߚ%\ 6b*fh-J6\ (3.8E/70T(Bd ,fՎ|(EKCӍ*,-W}u>[8-O81C,Ch猋 %qpmR }bC]H;di-}?h Xz 5f oapԝ?h $We~J"yS\@ȴ&j"I 7ZcI0YBNt'iU ?GS¨V\aM"]a}1?^.z*6 JDk.t,蒻TX-jz:[;'D57CSqj$MkE|x?y]94'Jɝ)B$: l(iv$bqb8{7UE`c"5%mb&TMה^2gP5~)ꞔ唊+(ԑl۪_Aϳ)S!*6~`Z\hTCIUvECˠ.`ා{!+R%KGڸx"[fžYQ|Ta:ζ]?x(05++` 9|j*1;ghFisV$M氆#Q# X-"6ij,ݯh |G_T&C_ O>~S6_xh#:w5xQA0.pnkyXvCg0ۂ?aUVµC70X BX@M 34;K:sNvU4_>, aR+PNw]8h}[Tx?QjH2X0ΰx,F/4-R & 6nt q-'jwLtUwLVb4k,w|OT,G^U*M/#er={hH nAtxw_V/Q'd;kT\̔Hjjf%LVN[5SO)$_X܊F-ɜ~01ܤR\{UĥG[Lu QoTin੓ZFw=tiװb~*#`9p+%lm,U q;gC2plu+RwRqY)CzB켹A}[4P I'p)H"֜pvK0<'4,?&8nj1!*~:=f ͂ -CB / I%>̤fܑIhsYDk*12塪'\\Z ,@l i/ G\OĪ_gPUpDxPCHU8Ͳdjj(~4_]Y*mgk$D%//usIRJdgZ-I_9"x '+mahp@01nA}̾G7 \YZ[vEX_H8藪tZ uM>eRH֪N.m$dcM~#i{k~ )蓩gwkEw1{{%W>N>VשܨNѨz[Bξqb4xOI泻&;{"ر뼫1t_LUA2G[9dP 8j1xOUW*;8Z{@S8|F1APRo(bOy&)!sHbsm=YpǤT'yZ ZsZ.I֞g#•P{A0x),c c TbgHVX5 we ~|Ə@A>.UUѵb p:n80۰7 RnCu2 eנ~F4^/ \Q16E=Ȟ)*C=VdP"3=FU1cl^3aV!f2PW_;GMŽYUB= 5lC` xk k>x _H[ P; Z N"l{ v ,)n{s]y,!LJ)d3̋`p [pX&6bC ٓ= llD>0S8hwM0 :l<Fr,aqTۇ9Y5ϫ?%((d^eǏrIH8 SBX X'Q%nQnہ8=Jb? JEysBb5*W8hA,C6`x`ip kELj!V]QYd+,w#CGd'Fd8T,ؔLx+S `~>ިvdv||?wD.*~zfx$8r"#/\v*zC3 5$٪1PzMM$CBBH;R2cj G6Q&A}8\{FĖ `$_5d MEJLPް{(JcI6ʞ:scAu~i,Q_~!5ɤPx+ ;6i&m _,'LԢ: -xEC~KZŽ{Ul ~W9[\X)|l -+@KNi763CB[f( ʴړ [-BZ_/|9chah#~ޥ[ CudcD/<7[M*FXԂtdJ˺QvC!oZbG}Tl{ly`Ӑ?15qu)Iz諻iUy?j/׼gr2I<͵a68]m&⍾\`|~Bv[WUФ|9Hj^Z zjJ~U)J[ Z~ /PmW5ɦvc9IqO{~#֏#{[Ⱇ\r(hW~h Q-P&59%뉤]m$b75BI\\T;68S(Xp op3h fCt!!,b`pP٢Uʞ6UBi({-8j #3<`/帜aY5xUYx$ T5ԎQCtڦXeؑ^6&+OdvbKȫٔo!mUHA (=Q VqfCQW?Mk!,Q>6 JU5X|*萞W5 <cg| ಔ, ;~sڑ.ihi ,ĠLKP0F=f @Tb5TWu+I;veM '` f`0[j$WH=?e/X<ۨ$[ѧ|J"mU{t⓮[Lr+{S3и_W=.s2);%`CVGl]o̬``s, ?pl{?La]Ȣim$3XA$D컉 nGVzJhW!H=PUuWMLiQ*dyrI\CҕgyZ{Iۈ0&)`rFQ}o㖓/)MZwpaA*y.F؜P?:ۧf.05}^#J f xb:sx޲6K"bQsR@v"bVU&;ǀ9-Hi3_] $Dy ^Ey4e,O3z X3*0 'pd Q%=s{eG3ePE;)"Y~ŃA"FsƩRb{2je{9!cVGэ0V~t jlJe"4 2FS2 Awtn Ϗ] luuPYVK$Dd0o4Եo7J!>,@03p3ޭSbTsծV1}Qn8=-k_]}J fHuZ-wc%4yogU{&xJ1 "_T} #ݠSGQ+ Mm}m:R}sj-6gO qvџɞvpLe9pƊ%d,nBEx/N?LD! c~ZX;cW! z(<ܐGCVZ#eT6_kWlX5-p+\QñCn(tv3ө8enםqg~Ul;³`_Eܼ&wox2лU-k֌ b l}r\.8XN۹쬯F4W8r+ZڟǪ,&ڇĺOhWW%XM[D,]d,c 4RywpνtO㜞S2e{ DZt O ۹cUn(uo51xUt5 &U+[)Y$/I~kžMzLrҬ=$Im@i(=Om.e^9L<ߪQ^^#1mT-k EBkpIo &m<ن}/RO _E SuV̚vϦqP5~_6/hoDžBAX__3d]W `e-b,U{15\x.i}Pp)O:41gmڃEbt'x1nEyA's}جt;O26Xʔ%쇕=ܪS,S腟}~YN6@(mQCɑt*ywí1:+Tn#1ٍ7v8;SŞ- +ZV6@? r?RP,HLX}0byFkYzYMG%TsSelޖw%`)g}AF86B_4CA6zEx< u3v )kg}6>Luz4M~rL*܏1ف٭~[n%ɳ, 0ܸ\YtY |'L2qoӬ_Uk$+"FmD~/?GfUgw*iHvrf׬M5|ƝA󝩊Ks1N0Tu`H#~(; *3 L^Nq‡RD$:Gi#1aow s @qO9gɂ?;km[IQv;G#6z8eS;Uќ1ۧT{ X 6+U}fV>&Y;Ǧ/ӿFο}89;>7(aS~dt.-@T@SĠ59 ey;YN}ʾ@OnIƵsKF?g1.\[z=s@UfheIC#iSvms~H"l=i+M?; yZ[F:2 4Lsj4 x#\#{UTkkS"|dPqh, r̢h]/DWȥ )XƘ蔪u*,KC@}qZP~gC洒4R4@[ }3ɇIς'"g+hA@ѯ*oXAqߧO_{*ʧY٨z[_!Nm$xD+kĠbUR _$ 0id!%i N$P( W =3. b̈)x s0^o1m@zRK<Fp*pd3'9_N-y󬅅sCL#!=T5c#eضQxd>6]Vf(8!(T4E'lY:8hPTPh1eIv+DYIU3cN|Jx1܏Yca[aLPclT2eboV_)UaM(o~lLkP uR3 6jGNE?G[}OS5&hq:7T7n|`,T2ܑEX-݇q/Fv_)8:bם$6`ھmA# RZEпx b¼fTxԨ0\]W+:2LpV/~$! ,S2xqi7~W |lMI juE$lQ42Q XoFpS؃w{jA4IAP DŽE"?֜\.y|B^N"[$NkIVżj~ȁz5ә9ŕ0uJS`c[,ۣ529T9FGFnTYt[w6OZK.R5CUojA{{clQ[z|XW׻>-8h˶Vts-aߘ$+(VJ,j6H˹( Yn|]R4cʘZ t.x\kye6"ê,3sLiJ:.!/n7 0`,Y \z9>ϧƏ~ԸGȈwnG#l]Yɯ``dnt{&*G֎FN(~Fd0y[(wNk~Džڃkf>k2ً'Ͳp!n?]oy9#*r@#6h"XDepaf~'rkQXBF_EBq2-언H= e5JTq{N5i>Kw~8 u.j܀ccԚL%]T*o e0oz3lNں5G̝*LM??;'-sZ'*EO\:q5߿`ff4r~ҭ1='Jgʘ~up&r̮Ej3Sۋد؜|FjdN WGpC<yK]loh/׊$Q br$85ߣd}YFMݶ@,2;׎$!ҫ1 n1,:p e is1E%uYL;<*٬SɤD#{%Eg°Bm0-b a5^^GI蜙6$,G4<:mf78 WڔdyM3c4]~='uq!Ml'.eǢ(0@Sataf}Qs}Y -r;%/\g !A@OF# 6{i|4]˄kGU_:ے~z,ZhY=2 ߷Zb7]$# NV/4ofn_yvX䧌nf3:!i!L<oppPAXwu2˲7￶8*q5*M nyډacuT9b[FUM/wfɔc#=.0,:yv;btV(&/pR]yQC'czE0*|7Ȕv- ;sj7n/<2Ӆ]NPos3`w|gub[lT\'Qiq=MuG1<VJ(OiS Ϗ1P{$vƈ#5qT/ʀX@:==j& ̒Ϧmn/X:/rOo3>Wl ӺH`τ#7 䵀X#E|¶%5Ap#(a-"Ԉ5 i΍^f'dZqp:YEqN*Ln5?3"^d$~8nM=d6dG1 OwПX҈U>tw nx[4rB+K}'6yu>NfcZA'MGs:[PdҀJJH &Tj?}c!~ l5><U'3QXB»QXdx,FB"},M iCxQ2TaA 8l3S[Mx? uKOYKhJNl̾^CuD'%!ݫs 7ߨOkd<TWWТԻ=@9=l@F" .G\g'x1o0'^L/Q1R}~uBv#i^15 #rs,IsqKvXAڪ :1u1 u$/*wsomeOӿ)5IFoG:NJo3?L` r g,t|q>P;pȐ!#(8E"޲K >br!/YCGgfa[ނ{G /QzZgg/ F[{%e /rb>Y^ǏvB2ت) gӏ'<AGEoUyc"Cjj~ G֣V ~5LC dzia_dq?fc55' cFtn ? Qf;T.Ёطc%a>-e7WsLeٕ)IgE_XJ7:Lkf3\_oibw^'kdD 1Flk)XT7@.h&މtLj"nC{yc3YpK:EP8#*Z[UViL [A7{yTcEhʂPg(Bq2z;M, _q OV{#%*"4-7S&,BmK KثʯQ!"|{ |(a_zJmW؀ϏQM,˚!"f0<<56?_FtbP}Uj1,qHd> =Kbyf d/1 oeۖBIP~EG}ORL}7@D((Ǎ51&Q8.+R"ƭrߟ/P"}>/c'iB7q6p3W=pyI%;`ő60jE|wzJz1|M-Wd,?,c 3gȑE jIcx')?{uY.Q Cn|˝T50gT X|m׻PT娗 믉iJ|HԏE6mΪ6Wmƹ*s:f"U5?g3OWР:'$+(+Ja\Xs K;"bw6+ )>X?at{qLfb8Ab,eNIJ+ʴ!;KzAB?'UvBWt\hH/n@pNsliY-~kII_$/%ؖH !`TBW\p04CT?z:2۴Kb#X?wrz<+4_gVeSHQ/=F}s7{ORp D]P0 ؀|2IZ[$&H7Id얓9T$;/ &Ov[)Gy:EtnrK)~hQKK.R(BK-P(]u2Nb^:t Mc7QgNK`zG~ .'uؠ@7}3'h<08ؼc%mAvbfP{'Y?| FΥ`Dӛ7l-;J={H8u%r(Ki(:Ejq1J:=}(m:Tf QFY/*tEw|0tЇ2X\WI&JV~voI r4©zvmɃ<$Dvw9$wˆѷ%}5PBf|ick2K ܧv_9IGW׏ amW99y ??f&OK܎c S18̒Wl\@+iWx=/7ہܦ]$Լ 1$*MNx+G'| ,aq˶tXsrJ?z@IM̲쑞h\{7~s&2ߊŠk7 qi:;q U^& 4&p~!eY⇇x FՅjWl|PY  lo-TՋeݜ&/Vuog:.uRҚQJRcn ]y}\;OBm^<>% ~tў+~!:X6""IRGǠC0o=.4KS`&d"Oyt50pFLHi+f X {ϮRش Wy}qFykɌ=34T_͗)/uյv bt| Lی"d~YR*:DԤ`,ڞ iL 9u ? ".?%7[&k߁lڗSnKK6t> GU[&2cZn}4I c9(ٛʊI{ |{Uگ[A|E$UD;0c "xC<8^fW>wJrUQ }zI1(L.'LoNũ*]ѯK? ,SV1|.!v˸JMّ/̝]-!kһKΕUJG7\fN}6?79fC#WPKU W܉.Er##t&p?(uRSWف+ Eȗ)n6p Ǻ -l~0Nԥ[Why7\m%64XH@(d[}R6]Î1k:v<3GrP(mu"͌rbN-{mL"@_O\bgɕrBnQ4(ֺ=Hy$L3@k;U mԭO4@jզao;_ < xF1{b)v.G.L[姂f0¼ aZ6nN9p}},aD;_G2p  p< EHDb7}d|Wˍ~aRw)H:ac84@je(oַދmGݨPV.z=潶xU,Y3k8xS;>С5˵)y~ [J؁/׷Hg5vO)Pn;oM'D2ChMMS0O*ފgT/̑i&<f ũs&n0XfU2N8?WOg#?P{b*2B;a"<u8SBZ !v1+OKn>meZZܕ#xn/M4 4 KA ʁO?ck8f{!FbPԣeFVD#Nwx%tڵs5Cy58?j\Z|4WbGc%8x15VGqbV:L:L$a#hiW58[[1cchW y,u:lY~GrŨ8Œ_'KC70}6IӀ1brk,MvA]e$&w ]gұI=Jl$=X!mF5c<&3^ȬwiIޜt M Đ6$ #!``UMWf( 0S\Q #;IGxPì̏u'/``ғWc9x!kWM#ꬵer(W)43933s3QZ*:[ǫi]*'7 <'Z%u!(C!`"L]ć~t`A.]Uu;'pAU57S?kLKl'. aupS)@3[\Bu T >CEY 2-j$ GYW)/_n*p4+[>3V)ebeUcP-VvIMe2YvŚks Ox`7Gߏ"\}֌leaT^}(e)Uc_P"?CsF ԃ?m2[G}>)SsM 1/.n!nh_7 k:pe,*GH<} ;PefiT.yTʥ<u6MxAmRa.Zdu侠=\/.FG*SaHDzߝ$-$$S/|0ezWbFܸ!2!b/"9$tm1V$r-_ލj$hlQQ)x0oOcJQ49$U^yX1+91N'dUmԁ kH6 s:ߣC tB2BĴJX`F+' XX*i?,Waܘ;9MnbdTyX#⻷Z[Ғ=?-PeպKT~jSI}i.n;ϡs}U Z"ytK-O]A]k݄zbi7~>#)uf= @Fޒa L^G1Ҩo^j :d޵\"l i;uV}m۱H`dNH_-8;.=,|GU_7haAK{naly%gr uϱx 9UjJ3*wF!W̘*\'{CˇvVB:ZIF66!GHr__p'_(Z B`0(&z!4OXhBʻO${Ᏽ߼B!nJby̨6/nk>0,B!Ɇht;9*I&yqZS<}qXK(.Ғ8 EGg<O0ny^G2ߌ-`> DHEtE[8m򨎐"XNs]Y|ݗxXKƕOǪvc":~>>ZɔQ^\J;tՍV qk.\&#XN rA^#1: LA8і?xgR+ENnD.1N\T'"b1n:_¿jB[Lnk3|r_aJ*u)ey߈ iGx4IW+#u$s##`[O )ia0Ư\p1gAb궹81:puup9ț5P@WJ ejGn>=;HbzdӝǝWβ6ЪN$ORP2X:`R9 v+(XݱJ܉3n W A+'+_u$]IHN?Yq Ŭs76&stT_䓨b/-c?2"o>`Bbi"_Yܱ&j7'؄;xN]ׂo+*/dG ڄ(a(RtWR̷c硙)0j@ȏvmM?՛b V ŸJ9a[I/eB?>J!"C&} OsBKǸ3*ֵ\[q$a.OK4UF7-:'S+( H H5=_/ԒB3%݌Wbfz?**z#HmD ׽ PbԎq!/x *F:-lWl~o"ŵad X06߬a ^#Rn`+3(V@UmX1Le:tsr}%%<|jA416~@S!`%Ϝ? ?EI7(k13قiQ&gǡ/+r6b4C3g@]8P9Y@z*OwE@wbPyoնd;m BWs 'jϱe4OY ſ"e=8*(u| {Oki-/EX.e1 /ycǣ і"S9F2^BNnV̳2k*cԩGзJ(EF߭oq#xM@BDt|x;ݨ><*ɲ3/f`_JuL#c:Z ґDVG̻_ dxTk?{-oG*kSB2ȉh"(j<3g/5HF)TmX(O}Ue=DfhW뾽vmlDiKl Zxɴw;)JU+X"({G簖9[>F[bc>0ڎ4~8k(+E?OWi ܯ]m=f "Z$L#%?Ge,>dm)"sO},F6h]\GcQmXsCҚ8CY0@Mʨl~ |^W絮 J+:wLJ/s/"XSMK֮sX嵜WaxՑ:MfN3?7ABx0VIfvǷ5r9(Q%h{ R{u'n"8[<4Z?pWw[M;g!꼬J#P=03Qy!Y2vpwä7GѤCKu㥶R+\()P@&I.zˬ`ho Hz=$,RqR,і<ϡ )n#'^%6+suWxVW_ q325p!XGWִ{$~fj&ą;o"Te#Cl4yN[k\R{*Ìt,ѲĆ0`ʒXEx8[ 1AgԄt4<[;L$>?W3p"0[^(-~/Iɸ~a]^F1 O&RX~ޤi0{Ǒ]}pLk>젇9PXw? vh\>w\VEοYUđC@sXJސsp XA2pvKhQQ󙤮Yb{&iGoŪN92bݿǹXToВK^ltJ K~zRn s#~m z#n"'3EYn(M+rדwJ Y; '7D/7SPwׄ"&Oðy@|ZU}BkpϨYmo!ܰ/!d![ 3tl+ Kgg Tp'&39^pquwĥqĻ ˋ[= 25PhKo-2G$yS/@O19C}6 /d~JQYGd^'[at WT2PE o0&.|^mDc/`/R,!97"a)fm~P] >|/FwiuҔGּqUOX=lŷT2HPW);HUN\89gBv8Ì|?uth$2~ 7z'8Bs-y)Ƹl䊭Jw' MIΥs*~,P/Tok+YY30>vzǒ!wU8i3/i]x~ ԭ[,wsdBmƱ3H̹`9yag׹͉K1@ X#O4%?IJH&pH>s[p0V(d hNVs d\G ] {Дv hszG^+N7hQfek L8#ö8P~ -k& $Mjȷŀ$=$^ qL5a y|pe`2yW%7-a͹R43 SK2C.88uZsͿ/瓌~:&.4 WVvix;̈́(Y0AQM%̩5RV5{}u}0vT˾oN0|2V7E4)Q`o`w֏BGbKVtw SȄ'4$G`e4>zt*I&F>gA@ ,.ۭۨWzlm7ɌLR`n1ʡ 45"YIAC)"Z%c;yw7\>M`=."h0o]u%.FvdG\E,67P=YDĭ5fr'_'lݎ).4_|Jwglbrcw_ӄ[_{ c@ײ`Ո[Gs'[7i#Yc{䶆Jܾa1(,EpiccEkOB_NBҖ'MMHg^^4-㛪@zΕu-WR1b %!1kd}%RۂYXS!m]p͈#/L d7H_<;\uϱW,R9g)TBs]Iʬ+'2hK=%Y4ʊOi a~\J^e É[IEgBNƤ|[,C`J33m8Ge1E鴅fk,` ġckk`J͖+VI@_t rsVLD̅$t]:8}7p a,hުЮKނ2с}ď&>,eM<% )l{j,U,*-wbuX@$e5flBobGޭ bc3oER9Usqju&5V 1 P}>AEGD6Б̬x3_|V`6poWi3L|0Y:oʉev?Y!)U ngɆß ld(jS5\m E9ȾH1>Z-Uj#wbqn7ϒӧNq ʞ F+cO<ܣ}39}Eʏ#)Bq &1ť0py;N(Dia.I>lޟ!pZwi:چ6l V[&!),Jr+J~ݸ"3<~LfE{ QLjiV=2i.AϷuIxKcuR%f{ 20ATXv<,b_g_fZHE@My$߀oٵ;vDelAR@uhi7UyvY^tQ 'd AYS/ې88 H?MҎ`¸ϏYrA'#; ^pNڳ3UԏP<r(b ~9}RO뾲q7^Rq \0÷_'$u`ܽ1S-!"[)=G]/FɑX'GJhE3ƽ\`UB (iG3O,9%Z-g7^PAEDց$E;?dc'f[`BܵCpO=#m<X^(-nFVÝtX]Кڅ1/ :&¯{ߴ!@h{dqn & 2&M0jdm g2&qJ/E AusXhC)0 Oτ8G]!  E?YӪ Y`L|O˫ͼYR/O' -|ӤEFe+Y)VtN@MNSͤSȝq3fZ2{$hw ^Pb^Z@8U놛?E=mI/L@)3L`Aj3#ks`0_ Β*mKrn@I/Τrt,x!zc*/̘SzNu-mL?fq8oZD YGR{k/+ E} li:JѶRy Etw_b%\1x9E8&uMV2 ]x E[ T Z"IzFmL \c2 z =:r5O{IxIpyH,O~4~yjU- %y':f*7/̳;I<:i14TsGJxS)m%H&RckY}fPxօ ƑHX,mN1}0ҁc 56M {J)R{l&ya=?u 5NA9z壦Ƈp+ Eh!o ր4y%&hM75(8]AiDbGILe_vq TyhJ2%1HAʛęMp8g #ᒤN9re9a6Ͳ>SZh.˔X6{8Q߹T6s07'jXۑeY m R/a烹'Jo7-1R!5%(>+\*Y<+[WDK0lkFw;o_}QlJbIS;K=c%vxH2رl؝</V;oCgx sr=A_u oy Ayӷ|퀢p&_j #"z NkpD2eI1:i~2@u}HF <<4rs0% ?b%_.j'OHV7LR[\`:g.Xn|' %f J>OoIfwrA ѝ3qý5M`2I@󜺏i8sV >/y]dVJa9͘:\UpTSITY[u.^BBȌ 4‹BÞVggG%..Yc&EȂxO` 6"WSY.?&1&nt}Ӯ^ H:q"uog>\ d>БҶ7,ʅhuK] ĵ9kDE]mjm$F+#gUU(f/|.Âp\;LgRo &)zz;)YSc'1e|ht݊b *hwD0#"xoH5j>cM>2.OH}ߥ:hyN?>>Tu<ߧ&4D CQa\Y[rHK͠dt@+L%  by)G*˓$KʓBD2 wbnL c$Gi/MCX5A]c$eNK2# iODUʛ zƈyUaF_lcJx~SJ'$&W0!x0 {[-0$̆ymACѵ? 3{/}(֠י&DD@-Kz=,C;xhދ4'zBat$z]+^ 6WFIhM f 3(ԛ*.~ Kck^3ltPogSAy l z_L$=Am@pFIŹJmc=c%d7ۡp* Y*ip{Tcs![Z1FL)!GtzȟϞoq~ܫ)Ο"C哲rү*]˅ay.SE.跺^:P'pJf1*U=ۇş1(0?O}=G`[ӶnT!$Tg|.g7ioyu! ) rj8AuZ9Jpʶe*%jZ2 _LYr 3l[d#Q^LZW 2(d)ǠͰkvw%\@yicUVfV,[A(iz߉٪r~Y,~|Y5Y64]?f:O5# QܐnMRL.AMW=3Vdde#4+DQF`Q<* @brʈt)gĽ^@|Gh%1jѾGdO0G䐈_q;뷦H_) ]^;deUodR;?QD1N"yT/]_xPlkOC+qK~EC!]Ѽ>JCݬ5~Iԇ@~^F٥\,t'yU)9Qy?MgMMPmi}Wǰ O #usfZ Y$Ŏ5rHH&Kl<Ź\ L/ľAeXiP߁ظڊ}h洿i2تN& o)vߟol}b~wl\ǥ&k9Xqs77vS43i^f?N1>'XF#7;U=><< F>EUanf+0J"娠—gr(Rha 3 :Y~wGpDegVQWs 2z ߉2#huYt Uـe:li7rk!`]?+@/LEd.EHl/ LTBXdm%r2֩MM8PͩYJLb nybFENQ& ׾TU҆2mˑ;IbD*;?.Y5;1Uʍ:A\_/v3#¹]N异RMRA{_'J ۃ<{!Qj" *r a>@e<;x9JE1'Q)@It! юrrG0hҕL %ܲ )W "MG#'n+uQ>D 9~m;-b- '4pCѨ┇T[CI=xg gr"Row߲֯x2$}*M.)#kj!JrI!Gݙ9,l\">2ιjO][62кbƅæ:GtF3uۏZ%lc`Awvo G´ 8ҸG%D$XjX"\VFrgvʞ? ˊo3N1R%٥j(OXrYOw3Ч-z$H;Zk̪cv/=<̽V5 6 nagSlbK*>?AƘ-ך! Vv]xYVSPdvCJDC>rVr]{IrtO&V>x$$SN i$_Q25tЂ #d5}Nec]b ׹=1 Qr_"AI E'a$}d͒O@ 2(%>Vcj1p%.x5T;,E %hhK, C/VT@zkbB3hxecê*w8;AO8HנT̹cpU931)5 ,ʡR} W1,Xp`g>[[WEA2[91hglOgZ<4UzlLHyӜUhThDD *~I,rZ \sU& ւC:ʏI C G^:ԓǀ~9Գ79\N,Nw{jpp݃dH`(,,LÇRD5j1`*UBH 7,n 9k5ӷRW>W?,{U=}+.1Sgh\⺧i SpXMMg|wU>jr)xyD_z6-zv4W$ɻܱc];ㆺ,ȸ(i\2CZNPFa$ٛ{icFKYpG0-O.<Ⱦ38f+)/LJ1]5h mR"~a=oYM\-ֹ]}irG"6}*IS 5LQ,pV;rF @˙s.8+O@kQ@bl5aʷ:z^I9{Aƒt V*z{6uM DaYAVBTT*{\Q!mE; -qsi`/iV, y=WNRBD 4^HIN(k#tnrh+Y"Z@aD!")kqq"C!1Rx] Z^AJ5); D]'_~LU]k |m_H"W84W`,$߻j^A+ p&]-MW\rIf:(vڳ zL\HB=/Կ׽.3Ⱥ*b47Q 2UyMk3 D+͇7/156BG8nSnձ2J& 딾Nm,㞤Yq8)M"R Oѫ8)_w6fP$Ǵrf+;A;7?jM}tJIH5 79"}/U+K/rȆZˍ'a-nDZU/$p+j108=jk7lHa!PY\2ͤ3]  ǁP1훷}gzKV{gimήBcKbM5Txgd6 `AU[GC ك2Ts[1™#E;|1@-${5㥗Ѱdʃ[]I![2>vi^>Њsk: /t6Tz1x-*9Q 殾"g::V|tΝ\۠Ăf60ɔiaΗy0U(QaC BLަUL S f4:lYOe iViL١FTWY>s34@Xu .U)I+Mz-ڥQ~D&U!05:_IA%<pq M}ɣ>{v(QFXiKTQ߫!뚸F Cgh^ %|Q\6Fy@+NRUpMmU2E瓕A=sمsc31Hyew,)Dy狧C;yki._36JOp>aWܯjvaVhV,ԵFgDwN?_4`"y!!V w.ܧ KnBEN{J3. y+{^T4TB}M%9(01}T/~.rzզInzrD2@/}r拨_vjP2Ź`g‚MO7d~,Sȵ0<ʋQUMNjbjjE|& df=Cu;waEh+Qȱ.@ Qsn]at 8muZQ󦝴^! DI:INjۃ41V^YTAz+$hs4GӪG+Θ/m1LƖU}7sIs !j.j \ABJ^n]4B[V0 $Ǚ|V ։D\Є ٲAejt24DaL8 x&X0;OF)(8ٽH2n2.OH˦s[dB>n2 *xR53 ;Y9Ϻs3.ZE,/3yc +Ulqw_+:L;gwWbh;Gyn9z,VbD;{kQ<.ZDWx0t4qy0&3@i3]!pB07I {0V};>9p% 9r68LK\&;LhS7\i^2Kd0G" ġ kI~!raGb=Us2;!'k[7Lz! BʛS3z+G s'yMj%$8p[Ž^6PxSV1"KRe(,A"(U$Q34_G}$՚nk[UN>&:g?Y >&v>z9 B.%~v1h(o;6ZQw)"e0HE3`bS(keQOCyZ{rpq@NXQ E^Ny䙋Kb Cfr>tj5tUѣтK*err֖9CdZpb$˻FPJ4+7+,NI5,Oxӵ}+^% XP ,nȊL )aiJ~N,x>BУts "{1X MgIJ$#^ -d:N_>K_}8痏[|_(k|ɿ~0*7iQ׿-c.$1QATs!2ߖ"pn}HWFa$N򆾡ԟ;~}pB"ЧAI@(Iɷǯ '`n$ R Dqo CiC(7o(A$ Pwo0zC_fW}p0D|#!/;B&Q +N}#(oF~@!YKFA8_é7y70A}1Obo@ Nhg{~qW| S !`" kA_ nK=iL~n~xeWM1'c]YNy8ƟiS? 0/'GA oHAkh^ G!~ׯK(  AޟF>ǰnlKc!_FAOB!N%> ?*%[Ղ(ǟeO2هd?2ЧBEEЗZoɧ\$Q_rE| `\a7I q}n_|#_nw%($ zOтQ? |';T;J }:~f~!QBa$ B$ 17sK[kǮ|4菣y7>OG%}>cCOZ}| "?D;/DwF"0}1I CۍOJc;<'}jgJ?}? a_Ǧ~8 ".uZ*#1&focuswriter-1.4.5/resources/images/icons/oxygen/scalable/folder.svgz000066400000000000000000002544451231434177300257570ustar00rootroot00000000000000Jr-xssN@% xCXL0O?wRwEDVʵ@~] |y  t>}o?<7O}CO_<^ ?k}Zwo?0~O˷'n,`Y m@o?OO<=aӡ~ye_LOxc?OB`B3~˥m) 0t_̿mWixi~ ۜŽ2m ٚb?F/őq/c ll@?V?d}~;a [- E?O˿ˆS1Y>Mc7ŧ?.O{5t,7N^I{i?l=_; ի_\]ֳ]>˽y>_nnsI)akˏُOK?Ƴ{m Y5[d_sCp4ɍѡ{쿈_A8_o5/g}:BtD`3o[JǿfoNG H #y?.0bZ0bJ[È~E$ #M05k"4cH?_d?[M$_AHsY Qߝk3گ5ϐ?(6$Lm0+nׄGA0s7gjoa?væďƼ9[vJ'[0&guv:CPAC'qc/r?ÿp/I uĿ1G tԿ-J_GQHroe0_RPic#.__+?>A? rV_g]mg$-dzB76_`͏us`'3 9i?N~}m:t??0&'%g'rѧ%:dP=$?CL ,M=KcUwfYBwN`Yu"(gβOEqUY A*˲{xqe*}slñ_HdEC{L%vU_2ǦToQ 5!KĞe:<$ <"YuZ o'64p$6dۓ U("bm4i 0`C$퓆""jyu[*mC1mOV=yc$x}i.4=$Yy6|PF|l&K`;pj;uJvzǝG΄(Pwf?cl8DT_ssBQia2Z6}Q,Zda%$2P0L)$ *YJ<+4 oVXeY.hPtd D1xR|it^Y_jgVKtYup =@"4S/i55Q{߰螺L)hCex,p.]>dL WϡPd* G.^7hf!Vps5d~(`4pr  tأR?Z!|5i;cWIL|C*m6920=4f $]2Q -j>Vg-XdܞϲS,e0+537D@eT[6%[!)> b&quOȫi0.SUNq"kէO:.k΁+A@u65QV|N:-5~YG\zpAV;Sgly~ڡ6k^s#%S~Ob:jb70Lq ) Ձp!יD1k2{-c QM䪾/A3q=+\Af5W MA(U~ReT'Zk\rGLfBw"^=5웧-K_F@\߂ T('o\ aJgpya>.KvFwpoYe |Ʈ4G<0[)GEfJ= hL{rgR&{)|æ޴e=ĊK[a~2S^(j5 V‚ge xܼCanEYcu84Nj䶻N 04j_DcށGEU+ IyA=boxI{4)Pޗ5׋. ,k 1vNjdiZg^V+2@`C7yN.Yd(:kgrso4[tiN>Q92gs,Ho3Xa:#ibTMiS.=~{#o!aSxS@UDS)V[] Tm1%=m $g]5"#AFGMV[wm| tۮQ]ل1 qJߪʀz w,/`,e:.@vРRu(_ 2&]x8 QFQ_V"'vW19aȖ >Mk Gu?`'&&G+jLÜ͠>=6DkKeNtFU\'U:>{|G4Vt)e!n4QNQp X#>j84~q1+#T!3 }]h|&0,?|O!dhv%aZ% H9x1ie@{V7;yLC9@G;:&Rr "u8LS2;# '̥; Pgn;ӝյ)ɱ? òE[T!d=B#_UohLxSZh%tW K:q90U??dcA0 UE6Grg.F5&@ t钊9}=e%b);Ґ٧68b?%q6x㵾 /dσF9?ErqwG\QDy[ػTT wD%&t4t,*?z)H!ԦNu}`?[0C.s1 c4/'!ۑ6,;w?*/jHjg qZ'$U7 KۗhiY 'u 3Ć5Ixb6]0+bN/`oA zVkkArKbe#A:}uCfRw`[e<:挽ؠ7==C\ ul.A L?C68Nb.xP˹AɨA{JyxP{,_O`FIx+|0ȥI#mj=~bInPb2M6wEtI{1 ޔ.Q&WKJ`P,Hʗo`G;)gHL9!ߥxTO!jB8Jd6 (@M^LΛrۀW8 "=u-۵FP&rT07| dzc|=c+IC}R֭sW> G;%Qe.Uٕ ^?7GA Tm|6& Τ?< w8;FI0{I^p:%ˬ`: jY\fZs|q7.(dRIph(t H.,%!n -||}J]BfJ%eXᑥMhD5 ]ٶ64uiˑC)-FAW/|]d;*&a]GS @Mʠ Mo(k%A/Xj`_QġC0*68˜,mR1A5 )?gQ>$4t><_@B^T#4 gfP_gnE_@}0ɽvSBǼly J(8*{N)ُYvөLI0E(sWV8XyY+JنVVL:zi9mAqZ>ta2DWp@X>9w  ~3Drs|ljgv ^fBडB3Xeu `VZ! h 3vTe&jba̕]Y o٬Trlڥ+ի'#;'B\9{B\$zXA B[lB 2K0lڲ/ tٷ0KMFܨIA]s/ C49CTN,2|3vCT|~.exL\9pX5zN]k( }L,4`g͹I.xX >/ wDZY,w4aI ;sX?J>!sG$NwkeW[X픗y%xM[dS b%}* iW&! TlRKi*fenf L>h_bXȟ:Wm3pƿonvuwޟ .%IC#grlY_ KiR-|K`=슦i͔Gˉž猽Q3i] 6{ϯZ~2o#XAnȬђ\ҙ-*E(̡lxm0VEtY&r{6U>]jGB jF[v>[;sZ>3y~m05zlܾ!~A)XM9σ[s7}?F'MaML o]7]Cz#,bZ~įqY[nbXѣ(Y[ PNTH)U1@5#̹71_tу~*mR j_綠f^ЎP]֠Y+Ov7 |EQ͝,T2ht;O(td.2 ~BMb,2tpˠ=^]e]m]bYd{.P}Ju]%dnI68I,aƐC|zfܸx-' 8=4{,^MpSuUx~ 6X1SSp#S5zUW-y }S{Fp^=?>CXо\wU/dW[6qQh[Pw ݂Y4fFvȴhqMEdSuKh m!dxZ;z[`#|fvy\\7ʉH,h'maL`Vdqb9(ZZz|AavA 婗qpj| 2>Khnxdw{xFȗFj/gթwHN6= mJy( / 3c~/DƘ!}.=n)<Ȕ㼂 ?[!*.m]&W=[ʸQԍ'ݼ#ǭ > ~|kޚ8;Rn_?&M? c4=z'ecL6=Ve^s,nh"ZQryobٳó6,CyWe9!WaVYTL[E<`#|OE^쒏 e ^t1:٤Ƿp*JVk{ 𕦹Gg'0|cЂ!Kkn ,[H]? Y4v6W}g欚uRoS]>-R3Be6}T1Eğ5HEɒ_}[á63՜렬mz9m!;a ҽ蠜r]CsL)@H4W?%Js a߉ %E0_YD@caT 0nоPf#*[.~7o/7džws|s|GMcHɨ jo/[DEk*Rfu#Wj(w WE&]g. ͜s?#Dmo,>GDRޠ}e'THQC^ e.C1ےU)OwX z*>SGݛWs!1h8R6xy{Gx -S<)*W5C>B7qs:WF(UkDtGȓCs^a|5 _ E8%] 0FF=-#Ԡ*Qs$;V^IN8mJ 99Ē@}"\~6Y$[YT[Kꞟ<> TrT D{Ȫ LgúQ}# mrwfso]hjSXPf 9ѳXX@oFwm@!m~|+\V٤j1_g|fT]ݵ ۈ eYk%H>apHo]2}qpM-$5W>5վ;kӄ۲'=[˂a'Fɕ)5.HX=K.Vzx3#־ '7ݥyӆ0UTueAHܜO2!ۍv"& /ܲbw ~0?A39ʼ#(.Vh)>ܥBZnsݛ,P!r,r+[zxw_OnrP@rbur"\.N; n. |pȰyb8u;(Z璥;-BN p~F(ի(~_FڝR;9#xVA+B1(! 6 K3r 7}- |߄$9dMhee[OGVխ¦X|G u+s{M3T%_ѐ4OxkDan6 G̽:P#M_  ެ N]t5IzʟWF8vB3@Cbx^žF)T9zrW54[[R8A4[AMTe,~ E 0Z<`dT@Gwd!*f(F9{{;խrTȳn~ԮSP WDS)MF=69(hDu$ƁBvs&N=ѧ??uYopql䗖)Nl 'vrQiZ)|kzkB@{[װ6f 50a=gE#wCB)H?kT h |=j΂l ڳqdV72Ϟ,(ech:oT*#^GAV%_?O\rAA^{d:~XLm"'w{| JR[@tfti舿,K+2*nWinqJ;RBVVA~|1#ͭ뭎$J;Tl;`Y5nYҾ g<χZ!zDb$r$rOe8 rWh#=1mJUpݰ>`vG|w& b'Čv?L1DtOp%fѳޭჟ,feO*WmjJyS ،iŅ[c'A# Bs=`"IG>G{ ak`}-* ,.4WBu:zRϽ-8%Y< &^+IxWHY->~P<'ᾎuϷP:A^} }s[8kW7toi)"a-A=ݭkW(G,݂8^@ g\Uxm* O_bFۛU#> h]ޜ֛Wtj7 B-k2W5 S7z|r|mm07_q$l4x( ѱ1U'#ҴQѯ #%#k@Jj9kF0oK]RV~M|8݆tθȖ;ƷKPG~`dkdYg57MrLiD&s}M+|gy${kwiN0cxi5\IYжKI mUY浳e7$[V#yɧǤY0 +tWx>q br?%k[OAإA[dBj¸珈#Ab0^~UվqKuYt-1#CL_iŨ*uѦd̕OQ5(Ѡ7+!ѣ&%4wi=VUƆ:簢)@w.D#nKi BAֿTdVydTЏtDt:h'H7-hF|aIH+ "< J 7&g6_` ''P=kWmVK0 E&aJǗ3M8c!j(9!{eA!@`*GJ2M0 ^WXAz$Z]~@[l$-ΘW1Wq S^E/fcYQ! v1n{Y#(iE~,eut S^Ύ3\b-¶}}@̈| I2af]@+Cm\AF29)~={ObuFc}ݳ!NFlSKd*⼏UR[_/I(hipqZOfj?D2('vBiЍ3&V{""Ռc Y{nt+TӴ.:v鈆Dݹ6 /hph3A}m%Kw/U7` nG|P.;{ ;\Е?+nlR:_xW2Cy!q뀸?%;4 C}X"<1vNzy#7S=u Ep̦HnlO 9|pH~Mbgi1u%7XZ5ǡY=}/ /x~-1ӣɊd[k}YK |T~G"k9M>}czIFGndf(oʥ̽tNo羣Ωh㵢c[o@8'LUECK1r{/ןoHI-+ҳmkXaL٢ 0RTEi+pN͇h<ψm-Y?cG)J88 ݗU zۇk-bړ$6SCXkWc(QӁ;hzկ a;np eL#KXvI{1=>ffKJsՀN!&VUoȷ CDS@&GBLD4يPU2-R_|#0F|L9F3iry.W$#L%rfhn9үI0BҴ]WiQ^R$p]5)n >Ld/]c9w:_bHgv8~% H=>0홍|}pvaU:j30]<_=\D9}"vL7zycs ߡ~Nѭ( !>Dk$r o/5,rZMl-I`HPh>F?pM]Hҋ:kS2f_] Х6wxb~%?Չ/*;`d*_Uyj9 +{t: [ťs!vr|RZԘA46=䖯 x gwfrtMoP-X!$*?H۸4+̒NwJ^tPDV8d|4 ص"pPS ѯޜ/q<0CcfVm5 εH:b~e ذX3oiv]}m5&Ee{k+w)FgzzS-Ax3VH=7wW~+`GY4F-bpϔLK v \lfO2<n[jP:nnR:AU9G RK*-oF^ %YziIP1:s*zɉ oJ-?^ڥcB}ZуqtN$Iq[45|o]+ṗˌ.iRq3O  :WԼ ܄ yr9L# p_{Ʋ- }~w$7 PIaMˏ~U0Z~K7շˤ7,wp,^^]|o0x۳X .GEʼn΁~-5E~Ȁ{oҸqzGf|ڠL4<,1JH9r. Bt94ܻrK֗@_`hSu6nh 7U}1z1td \qq`rD$ENQOFRG|ḞYqً t!&pZIпcj>R!S7qsqQБR=/OH:$PM(^"9{TM %8·)g$QFrG0yՄ[_9QG2 @NIuQHK_(pЈ~% Cw6Zvq>>dH@/g¾8,/C"G5)lj~)R#*M|(sb{\%u[P;B_sYg{@A^&*mfq"tpoaߌtdo]۞Mv"k}*h1Tb."er沿ϭA-n!gxzIj29?#r8J5TDNedQ1GfjV`6iA;rnWO2ʃIHfӞ3.7azⶓ&QtiD4LU9Rz;HRM~_50rpcȞ<D|LƲR7? }.:Vnajx}XIz`^͐4U: jdSqsI /^$1(oe(޹q½B/M۫]|Q % j$vLWƗT;cXǡWUt9ɦ>}":S,m4HجhfgIoR/&],z/ъ4 HIk=.폦wS͇X[VxjS3?IA}2`D iCE 1 8eV(Hhy ?8dYvA?)-^5d QEʛd! O/He~*)#b^Q ހi@ew6GPϤ# m 8io?OP܊_ENHG4q7dLy9J6#*4TJhkmۏVXvV45T8t9;InBIC8*d^[IGQѸ+0{F0B_اѡy%8>Y Jo[&lHM^gsFYw;z/V>(z .guή ~y篅 3Bq1^wmY,zLdv=Mٛ` QR7-,K5AO5SgY/!o?ras}*a, j,)^1k.gCoBl+MOZOnp+Ny2T3!VTFUC7zhtT%b~C u"Z_jCHڊ4ICF`-'Vnx v*B%Rh\S!).d"y&=P#gP tC'GeJ⡴Ev?^ XH3?:cI2?HXk1LX/D*'\JG f"7:VX}.Ǝ[in} pьz=pX#ȋ}X'mm*ZZl#<%i*h#6`dlKI*,MO|5f)X:Kz[+oμ h %eroD7+3q#@xڷJ7ܦ 3 k tpJFW[}4/_Igɭolhz5J>"[Az~P*޽($ߚd"B&~%hϏy1&gݪCZ3ҡqt8 Q:l^,~Am`,~OH}pY–اRsH(Ph?tGa>1hk|7?ѧp .m YTroOZ\Gؗ҇Ək*5X9xSԍl}ezn WIr㒮t,=1&fPN/Hc9UL8:Kn0SV9`p!>͒F/&YO\o &TZ)ΪR1o}fYeE?̗#̓ 󷗋D9I_8fdOQP!g6 ޏ0$]p5~<{AGAgZu/ĢeX{ۿcH"I3^$-Wh`(&ɵ/n<P;A'SH6qgFk}/X-|F5yyWm4cE^oiJQ"}JQK֓glg;o8ñ33k|DldGEk(^SL_vI,;b[ yI64i=,y4O WVUӦ}oA>y%b9/`R&T2(lnH.ET&⻳;M=%{u~}U1!{?}VLxie̯n3kGwdA>h;s^Y'$ͿۜQZޠ[L9/ a^FrYM7ꙃi V%>Kz,FPC~)U#6&=0Ax鰳I7XO(󈁸pA@V]S(!TR j;`\>!^ՏwR_M+3$_%85M~\Ԯ.QƎix0_6-* aYڹ~Gʞo|X!ߝXLcy#Vn% =7!a^s@ιmo6@A[H7tH̤mcƾ! UwXrHoM q!xO_CH +>}Zjie\KdawڶP82.Dk<|oOیo,6s>,!~[|}ӫ)֧9כA0SNA1dͦIR 7n& ?H@p =O m llsg1ΊYʟlHnL{ccX0_V/}ٯҰ \*Qm'rK3oUz:l Z~vpHJMxX{bκm ފ3܎ffM[e⮞*_LVdd͗Ne;뵺xxҤ~z HA\ pe!wTO֐xh1~=oK#7YXz)fj0ЪҜ~"_ V7A|JO.P,J)ksG P{-% ns |ֺqa6>ِNJCBN=ҏs 9g()?֖(DT)bCM@Be;e\NH}ET=qq!1]#Š,;-Yo""?uWf.Pd.jZմfC3jJpG 1!XʄF/r&p\H8x^|"|ʲ5I ֔'jD3Z\CY1nY<ǯ".x_+o?,yhn[eHy<=Xã8W[cG_6I\5Xtp׉5{o/[Β9a nO'|꾰OHSY5έ6R$aIMS= :MGOJݑZ/YGaM=Cf1E!UB'm!4Z$F n/Uc6QCc \hkBs߮URdL3-##؄XA p&<#BS_V6^lOH9S>dvFeZR)Ȅ0L꾣z5 TQ𢏧RJT";#kuXj/0bf/fV0IfP↜+b`U*uIl)aA$G@z"6a hm5H|D˱@.DM3>ubqm8A&| %ZP};LҶ$׭m4Ya6>idJ4#:Go'2TKcz(I0S" \=gaKG#d(1ic:-*ٱYHoDZ8">{T(Z ~6.6[Bg`ym TOJZ9Hu'Aen|VD#鐭~2P=={{Y"wS* wR LFjK~\59Kjn>{Xp! DvD^(ۭ bU &Ŝ+'5~pGgvQ]%`A&[TP'}Sfq>$N`gO __ì9 mְFw# q Wj&/zy.ucK#xVZg9ob|-$N -R-Z̪fQfRiJ~q:A$=E1@sȬ-,wj$ɚgglIIˋZmF@QzBn/ E (XAB=q;,#^i`Z܆L8]Nt-pQjHL5ϑu2Q^z?9^k;y(+k9`i\}Lz NQaM%R#L9܇8d$T$E1;3%T ;6o\ipȟ};YH}׼=2.rZ2!H\0"mY f>i"~ X?s!Up{x6mGKۆ=&~]~C 4%*_Vs!㈅92 zz}-̘q [5wlU=G82XMqB鏤8'U9JĞ){^4fNsnc|%[;UTuFJŴkfB21oZR.ZǀT6bABn N/،Ӻ5ןW Ii);|(=J[zy=YKtp⇉ĕ|=;̾ҁg{"G _l I}G/kK>'_>zjJ{; X]}^WL?DgݓPҹh35ʺY-[?R) |*]dvtO1zJ45ý[w" tҳ,lclAPC8LcTNi5W4W%)Iصݥ8z[&&ƥheW+*jeUU-0ش^)+rS-qGJ Y:z߬ .檵%q:;||=-"}ha9 o/3I,Ӗ(#Иh(h d?$i+0s1YNGv -COց,r[ht86eYQh1,#jr8*$(uT8D<6 /+4\ v mq☝D[G)`aһ/(`f|A2RioDn.v+Բ LL9A_gUQ/N5;RW¬QְOn~>fZd-u{߁EV'p5c:)I(OG-L øޡgIpq_&Ld7p[;H@StAMc0pD^>ꪡ;J񇜇m*Ҹxʬq)Cst^G>cFDBEu+W%,‘P0>Ի e?At:]|~Rv$|`Lrb-xȸ KນOvA<XTg3Ƣ~x»`:!P=f^~na;(Th |;ak<0w^ͼ[ nz~kNt=Z?g=7'쭈/// ͝EBd'7{cF jIZ4~]9{0gL9'`aLX]Y]i*yJ0? @ѣO1 , 9jGѷeV\ALތqzwquo^bNB0/ 1>+zvB>X7᮵uf'@eDZ1Ra ag`]NdK.ې DZZ%?{m8&˘o_& #= !do:?З)]r_Gw}}Y9P`jA3/|w$! ˵߳|~1qݣީIAz pUyH6\̋i@oT% +y"꼆 _/ږ?,bMq?e?Slb\c)2:qk+8(Q%U?BCeF&JJ(h6ڬeep&ujW$AcH`5l[޴k7remL <)t#>Gϱj1įem$-tZ+gW'h8t Ni2}(V3q%,R$$+<} V/m Z@ߴ|*9mt?.^-ç&i58!,UTlE}5 !e3;Qc֏:7VHf r#AW2p=R;;b-Ȱ2NAKY[Wc:;YobWW:F+yR7gBs~u?7Po7m'W됌O&n9w~P~HVg>l}EkYkWh[r{{ N%d"6砾qE)HwdoI z̴-AԣcIv9NOW/hK@t#2zqiBQGb}%z#ec'R!>eeoy@|;-P0Uhn 㭣b]}GARU:D~y^So=A9'^Ţ/B% ݿ~WEćQ:=u IAHHUN+2-=²BhMZТ(vb)R*|D$j&S$fׯm@5Z+d ~30u`n믯); m2z+p8?ƤVgϠXW"3ɘkEK0W<@؛gmM[F"~ ^1Y!f׍bQu"tyQQ7ot)9-Aۿ,*ׂvNrA L2}.Fr4gQ) lzs/K=}b?ne*-,D6LW~YO:hDSyVvS#R~5".KԛCxVlK|U7Õ|d@9=WH[jw_V{c?$ݏ }zT_ ' w܇\N~A5ye r{3v׿#n-E.~xJ+KyqS{yQ*&>wPW`3k1kA!7[NJgNe(=Xb %Z(GB֟S(_K6"1 ѕ_21J06[x Cɔ {)Vj2]u*9 M9JTD2y6\Lyi^XB&C=!rQ*.m}_俑Tw+0NPkh wŏGZۮ' =P-O*Ui7v}6 C Ħ1JV`տ+PJGhWDĔCAF hP % ,_Y;JQ-uv[0sD_ 5l'iN?PP.N4wƌ*u0bZzoWuh:ul\mlv2j޽-۫LD"a8{g[a\ sIvq_\WPAu ?*Z8eKf= -pUFgt9$Knoq=+w (t1Ѻ)h^9叏+W^$uQ|@KolȍT*hZA{%̓G*ƛ:aE36bgtyk>9THE/c˴2gqmLjN|~xS%[M)6n t ,^М'\Z:,}AS].׏[om}]+5rC *Ba&kkߥ+=1Ʃ[˗<Es*}e8A7iz O;~Bmd4Е;CXk[YLW-1ܓO𕪒IoyIHOg$Uwq T-=rHy|1eZ>#LmHO>g.@m\V.@I:nUPoݺ} z oo@y8Oeޞ4e˴/w@>}|vCȋ/ZLx%o+(kūY @t0 sXqۅRoKNx,`jGN. #>KYnjWjIhzd?` Iʕ4R3mx7C|{=&՗4eb L'c]2aU/2y:hrOuX;l5wbj5oz)_HӕIl&I\^ʸ8-"rxs.N<3KUF[*"qz]MA,g'ͺ,'tb}j t ܆]òiH"1f72[Ty7"]/mrF&>6HfG}"sT bIdV` ZIPz0UnI8] e|^|dvpQ('yHԚtv[7b@%"T3gha~X7IsJ/H6lf&\x$15 f*:m/k`0.3K$L=U9}6}a$ T3!#Z"Em:nNefn5BeAjrSޘǐ bI=r1_;ⷥ5_l{Jt5m s$wlqV_L,j$|$鰶CVY?#o:V8)Upu2M; hJ ̑k&q cP^ГmxD*$6't?<*WtWLy.:, G6hV5С:2kCcҥef^\KIS+jo(#W;mwkM^ ?: 1OVKk#ykZWNBbx9PmHgOjۙp8v{R¬߄Ìrj}kRY G Dm|<7x7}ʬ0fڃꛡ|"AވzV_yAy.:`JCY)|PXgT>/GH Pl.=1+]a#!A>-ᬸeէˌXF(Hb%q6QT=*z7ВomKM|45UG1AyWp eg1i"\)VdޞdbX#LxԼ,)@v>[lO"ކ~^5l6FY׼g"+zueW4$'Kt!,~9L$b zA)7)D8rQ&:2ż+敽mBo yu M:ոrKu(&Ѧw>h:y/OY7GuDC?;kqf :0_~lk2əWTr *{natoDz|R"/t+o\̹@"_ڵ`sf[ʎ"` xp0~Dd{%7 MjG ƸnυjT>k=d̅ scq@&I#1Cµ!v𬢝*ӄ\yrq"O_H9FXʿpa A֖A3h\wkln3ghD+ŊD#,1nͯNj nIE<)kI$Jǚ]5'aE!_9`Kk֗=jH0K$93/Q8򷎧\d1O'VCW N /~m^է~HV)~Z$aeNS}a$XV&Ůi̬c`8f 8`'j[߯(+D7vcY1JsXb "B[k]5@eDSv}Ss7b-[Ϲڌm2CLrrm~MȜ}BdvAh[VKv;=AO2ı][וklND khz$r>Yz!ud32d'.9"i8ؿr&ͫj9 9dG3l4}7v('/RnI3 3K>D"ؿR"*>Ϧ#V'R/Fp#(1`Htg,~n"dƐJA4/m^L&"UŊiA o/aJl$I7 Q/~i[vHHa m#1Qd>.2> y]9{w'0Tݔ#҆x0=H5_.˵z;yQ~SՅ|ɢbLpMBۗsZdD'j[\Oݢd4yt9=Z_0z4s^ Z|7zz1p}jQ7[K6Ay (Qмɐn$} )/:Ϧ^}.# < 0=I.M$$C1wv] p^P﹍39ʛr%HR/)& K`^̗ޮG6XJ1'bM}h)sn#u7)z ^4K5!ؙI7YA\,̓w$}RTQet67~JLI]RƟ(Cp-\]mTƠ[Aje(ƩNlI+ %V򓙻!B:B 8'%*$~TG~4id1bb<ٺ8E[҉͜Q;3U {y "EH\39 yij!7]$^f49#`Pp0 _W(\Q \[+k:Ti+ A@ 062\|\@ (}$zy!d 4۸+sr"WQ}vy+DLyfSdI߫ѿ#G٣o4l(\ͪ~"ܗƌErb\[Urz&uYc0 + tCt`=LX|p{1H*߿Z쪉|l='9pg(pR^ FLTtSlE/;~<*}l#Ƿ}Td):$a>ٶz* Uɼd>y9q٩y'%(y39Wz{Gz_6ҏt(o.1=266)͋ -*##pjdܾ_C>Dvоmq>J&@DzuzT98q6*ydM2`ɾFi9}4s;`D;m_q1U[ڠk]6>Of[L+*T䵩ϳϑźc:wjV';Ӛjr);{@S2>3$.Vy^4њ؂]]f$iia_L@lJc3}ԿLNk=x9~-i0FJvaƆc}-]ī[!DK \Z!¡:h987!K&%]Pw}},ȿ'̉B}>7\(᯴Td= x1eq yj%  ȃiCV9\mjay_ʯ @g TDṳT{ѷx O,yiIJhFBՀ^H3l9HەH@HVC)iSrO"";$lhBƠFJuKgQeT蓑Rf=ᘢC/ һ@}}@3]/r,5MMi#SN_,'|o*drIʇ9ΑG(]Vg{qB;6 ObՠPFx}qKl[8`"/357?'V$5|تRlq-H\l[R@?'z .` B#@X1zQ?qo=t =v>ޘ"/IPљ y\ꢝ!I)dMہr)aO/4!g 9A Yu}.]~4:a$"aq篺W߷YiD\|<ɠgRLXB.∓|<[]*!_X.WIfm=0ct!Îe? {BD)1H@ۖҏ+ۇ7GqnWl֪H|"sۓJ+^R?Rn^72F8H[0lY|MfZ6-hfEi؉d|G3@_o|[Ķb49 /caj]όo ߌ/"c!İ*<6ǩF}m`YwWA痻b)=S/QEo#vupa |}<0ZrjƱe{Ó}J.&I<Լ:?_\']Cf/%S= :]eϭF'E2t" 8(Es~nG)_ v7Hm4,*4o"rcwmZX^3OJ 3Ry1,`Ux3 >'BIcSl' pNFdH62mnfKisK~׫Yx71##(Tb݆9VgE3hznM&=Ue@D?ɳ-zuk sr+)\&āRI3"#=Wi6 8Zw}BfsI4!!%\DʸmsuҒ fGBh JФ_ :rs~d#I]&r^#[.$=A wS?#H~l_;C&\=1YIes?! ! ْ(.ph,/rhsszO~Ͼ9[f&9!uH`e+II^¸_-Luԃs*]bza8n~r/k#cF3q'\TOb€0NxW p\ݼlEz G"0R0>,H x_ăe=rIr].fH ׎OX~l m#y6^Qq"L.Q+.2S'9ª1M!6!\&rX`G:E<Ҩ.NR_.~lAQǵR% mơf` 3|"^ }d5!4Tc1b]#^[#7f&\C"Һ_¹e9}Kx*O'MII_{ukoFh %=FNGnATb5VqKܹ[(f JV3ű뇼i j._x08[T7EXi?^(z慠Cz̎]9)dk3m߄$t<>)8%> 0*h-BT&"z\@04 f=ɝ(xu?Tۋ~#9YAD *ۡ4@Ӽ@{9[y*?f)MT Gr5Rxwm*4IsegF_=\L6lԷ"i0ygTXV[XaF@ܩqϼس ]Tn7 ԝepxoL0WT0jZWŊ$=\L Y,2e[ZnY$Xu5e7^m}hDS~9DZF H-0;xf!x1cm`:%ggpf![*[̂]xqnR?- A^R5Y zz^,kUF0RqCf!$ T5e k& gЄ+0\zûۋ6ݾ)+BGCPeyܽ'gW`?:uw*b˹W8Hpcrz}Rxdi<tVUzT>},,M_~xv(H |/k7+{1h g5׉f+6]`HoF3 oC{Ca1i=?V_|4+rfʩC',SNaUfQiFbliM2< ;.үR:T6i ؿ.xc߸;nlus.:Q]L\L#p#rѴwM:vA(e\9.:TKW>  kڿ]HR |Bxszc .ʢN\"syԲF i 8{~ߡF.DCz Kt1Z{Zjm?iX=y|,ff=q͝At [o= YsÈp;9€8Uv3W4Ɵk@ͭQ}^ >@y]0KZ'$-ͳ ݡl*;"@*k# s}{sE;'ߎWRD˦۬3:RA|4 ؏~GS]'QW`UE 9_Oi$09k3%aoU!'iJ]ƉJ5q>z :c*~|qbȬ]W~+iڅ+W=8IA6]汾}uZ פ0V4Vk%fLy2B;S"7;-MEuڊ&WNOT8s'#g{{h~3E*+$G*D_!'#V= }Ul$4L{PO7hd$v rPC{^s*CҊxRFbs6q^=1`em1Z-.]W74sP"a{Iާ47@↯kZ*,˥"<k u1}͞;@]w?%}c98G!,˔,gtq~[%# 2(c^4ի`Ϩ{10irFǬcj=f7VyJ^G^yqZ:sòםn67Ƶ$~*T֛[(:%~8V0~LDwZ4p{9CFX27衟c_N{ K4҃ҽ7uyʮ Z_ )Qg@h>K>iڕ}qH?x~乮1&b4Q!Ѭ]N{ | h]̔~F5 >6˾CɝL:Y/vS6^%gΎz K[ekCOSm!TTU?kAw4 % 9̯hK?A@_˹Xᇌ,>tCLGFWÌGbo 3ww Al|(y-zZNXp%mHh0tEK@twR7t![; -R, ڸ4Sʪ~C mJmy'$Re%(G4@,x`v K.J>C)θ#V_ SHKJCm|8OMǯ2|c=zPAs?\:W⪫L+ɳes _fs8J"o^}ۗh,{tfXXѝ㭖Z> wq{x<"x9,K DgV OcVbNڵ0=}/C𜯍7KXRUi'C" ܦ^&΂klnS@iGJjN;tѻ4j>!߼9jcIm'MW)ilrΦPUMw\at^sn=(u׃W7! +c8Уkl@|6V(.9ƿ~iئl]I93+zFHWUQΕ\&(؂`{ О? gign 'Wz~FE ?Db D9-KbUqR};/@#M].~Wz>zA"۱Ad졮痴- 1)pDR^nHѻYn.ISb%鋯! ƫ7fBiB2)M$BJ1 u{;r:A C@W#Ý~uY?oUc9=5FT jwTLw_Iyg<_U +G *++sMgs.͌N<(qM;jݧzA[hZc}+TDqccш -GiRd!H>Vw=O88NR@>!kaRHTJj]#9" KGG3cl>Q[vV Km/x-ں'龖>XUm?!M?FVRtH~Bazz-@H%%{c RAR֯;W}YkIRنiz,4J lC G?aMQdK;+- q ~"P 򊚫* uL]X2Ùǒ~uum{iJ`Y[sGc)TRy(e#FȰ0o4tqȤ/BaEWOAV]}h4>h%laQ/%!y[A7T4߆+6Ywn8(b{2e+2{ء*vH6ٞU#?8PG |By%#  /I Cle&wA)VyS$#TJs_*o(O׾G4TήxӒ7{MLWh>j jJQn[&I T5gjn`-.P?"R[|V?,oצS _x';Q^tN27n+ƛtTd߁zQ7W4Fe\B;%N7]rOV`^]huE28c:1Yd@Eq FbqD@g|R"QEtIj[mmUͫ(XG}c2!60c '=+}QR&5ZPjڜ Ùӷֿ%/È3;+:6~5>s2 ͝i7_K8s1]x;P2Քnj;QE0DYnqcMό#so2O42Tsj%] vc)G_Bfnp-ֆWu Nhyk"t?@}l,1YzXuɣֿo¼>#XmCG8h{ 2R#m StVw0Q?Qz|\, ]᮵[ ?oAf9L!FTїNٞ7\!/gbzLcã$ŏȧ/xIG}pIhik{nns+x! ,jѶm 3;6Tn<@@txD2(2 s@_J]F:䗺,^3K:A:Y h/TpFy5i_{^!"x$ZH 8Wx8J4R¡#Rԅ[v86 |%92o]CA%,G]&EFF Xb>ojZm @ V&&.\y ߴG9莞~x sKbo!(%|.̌3bedލ^c?t`e l̂joʒn`yGERV+LO<ȷbdllpR֭Ji], - k#:qoEgG *a%d-<cF oh^h4M[ XR[$T 9 B(R½=3ц] 49|Y t6yo^*80)R V4"4R{Ly^\($Åx=,pnykJْ{zb1BhNɀSRSf?B` =2C؇ʒJ`:#K aϓc罸 TH{] V.aWTD k 6]guDLn>鋀XeYF)̙^güYŇùyGlEjZ -Ș/zQ Vwd$ռ+6^0@pn7C*`ݿ5ݥvHg/5KoM]ÑsUAGDլ-))'mـi'gsr{MY{h#unS/ % 1b­~U@=HUFO#y%݀+DM ;8r~k*K-"ÿp v e sI"J}<՛)cCLY$j$ lt \&}#/Hv *huGܱ}\GwYCp\8.[}` 峬 ,[ -,zI6~~g.|Ϣ5N״AzK@UwWM%!rCbʊB%[h&&E[7VK|(E*U͵"4 |kTJG)Yc3`%>h"IiF%ĴÔF Vrm]2`_P"*T''9GWIQK"{J>oGƿtXZFVw򏢫g6)p8_ 9:>Okڟ9bx'Ӣ7-WX0BhJHë" J]O?*)[Fվ+DVj 3[wxˌE>!N5"gbu;vc& Tǯo lWK{̖e>*|Jw?z d !Iي 7>,FνoQl a+XݟG g(AzfbJJf6Y {uwJ28 ^bO䃝3Sր/r.}ͣ JtK z]a dͮ˕coB#9`s#95҈Q@"@/d-!pc-lJT%BHm; eXK9hݩg4irOPn|?CG&ВEFnHcv\ۇvĀhJdXKԡPc 3kT+s/d&/LWq ʿN+KWұ1oa:큾'ɴ"L ^cUOh-nR~eMPieEto|eD/@%S-[Œ7V_1 Weg:mJ}urŔ/5 >PJ|7ߺ}A 3cSr)邒!iB}W 񔠖ٔ+GJ5 p'n;B֣J6c✧V쭺qMRlO~ |6̌PCgGFTH*|M3PM0VAq~ڛnx}|xM-ɭg^/+PҔ K69鋙%{Z_:o{x0]p(K2J~7AA?jA.b¡&o|2?a>0TE JtE([`(V&8R1SScM!gw7DQxN191Xuy~6Ge#:륐L0q$_o/WrflfFTrclC.R~[8T=:8m~ǠDZ4PRؑ#=[N!Lx!J)^!BF׀Ǒ 5ZwA5 ҁ;(Ľ2qi* 6]oxSu+?Q' -=3 jK=mRJ"\ձDDdQ JeYr@+]#ѫ2;U}#ϯHL}-; eYMF](4I2:T-qe'&"X@A;b%+[u#L`q%'Wܫ',ES3ĔW#P;Xb)(4 iY2pĚ!a ن,/ GT݅u .Cb{!{/ s^k\]G*K/K87sYuM=h!ݴ'o6uv28;46\uf] D6Wy]xye@Z R w.9#NXA~~ z L fɽ:Tr?:欯,?{/>\U_)jvf 3Xh:ݵױS,/h;5aԬo:ue^wasx+߀b??"C^\;DQbf=s[*Lޥ@_ob3sXfywKWփSb{Ͼ>~qEKm✤X3'-l^&Կ|>ZpG+Vk`քnOǔm'U2KA< MC|PA*MRJ$5)\4V.w91#R-@3\uͺׄDv]ޜgjuxMWf">^i0B,!_t`KdCR/Vf[ZP3!nofJ%}Fִ6quRdC=ݢCB І]J>=+Nd7HN+ ,5 lnm )k~sQ=0Ͳ Yo)l@9HPʖ:rK]ԲrMU^fX?6xi!h8}KH~rsHQv}qýR}YAIDfEa:Fb 2b"-P?#BLB ⬤WAֱU='.(J@cHAZj˹BnG)gU Ň[ދ6A;J n",-p6ixeO:ZQy5ț&%#~5{Trھ0) \;fŅp 1b=p`>k-iSvU ˬDΔ }KRZ G}Eȳ!"uW" $_nHrќ$f#=%@h+NӤGJ-_jA!`;GGJ!ZkYP Ĩyu+$͛{'/wG2u_ NZi5q74Q|ŸJm@# 正EN*Xzb&5LԔm0W7!;j^Nnms2e,)R|2#9?qQa_,iآuj 3kxIі@jh^{)Y A1 I~͎~P;_ȫӭ)#=G9.`5zhWva}lw=IklN"+N if~hԸq]Pz"JXYA5)}u+=KvT_Z@ec \'w/8W[Ǎ,<i2mbYń{ wsWU!}SYJvߦ֗|؏Vij( U94䇇Td&6>xF zfz4 @3&^N^z0rtFz/u0zIKL_>P ࣪bO:fwJ_;5I0t_'\f/xf+I-Y ui!DlmFFsKz(X.LJy\]̠U$ 7#*Z ނ"r!|F]+7)VokH! rk,[}7؏޺`|Yw׫&X mq!)8X8J__U;ms]w{S"^KNK#"ۨfy\x~&!- N3<A.@Bu~;wtѧf(>|@kΐ;3z8Ǖ/4Y$"KO&}\3=/ěwAQEЈǍHa5[+օXYfGk1HC"%!eQ|s] 7mZѠFu\఩Puv^I=2A@k\ؐVOݩ-WGC!Q5YB (銇\bEY Gdd {/ /K67tϐxnwnԫ;1 wcz-Ӵpb|K<+ A_F 󟳎^K٧u`';ʊq3qGJvam(+ȝ VcܠAWg{KVdqX !y%RS~zZN^!6Nє( TpGhWao=H ʹ#&3{FY2UD/ + 3Rv-~P$QC]E?&:d-uWV?iYΞ/f sp1ͯyٕn*ҝkJf^]..+M sBQ؎ET3eTyZe#6UbG)֖,9R-vQY`3 d+uq`FV8JĈ] Nݔև`L-6K1jZw!mIێYI63j=53#^Q̬NHXOHڀkE=uE*x;Br(FyAmʅ#ǡo $]9=1 /T[$q/iLS❈8Mɐ33svt -5Y 0."lH%"}#Y3DHd˷KgJ0˾>DžίCEpzV)( |-dl݁G.zgyZPF K r8e0\i=CgB=O鬡]NLlP/v2Gj-- \ؒ9i,(C|=4S0'.oIc-Ԥsp_7\bއ:qcBև{]4n)ι8y7w{wt@[X~IqMmj0C׈VJlh<†XZ+KDؤ`N)EW+o$ΦMw3]Ts$E{:L[_>޻3č s@]?Yɛ7W(AARPgSBHܴb'l\)36KA|IBQW>%3%o$T܏Ʀ&:zNW~l+bI'cnHZp^h,F=}zJË Y0J5?% T,޿Ÿ? k Z'7IBXԁ^X7>LBIuhsPH>Ƞ,~/6[UQc&X}[T>.)JmR9R7e>6ӔPm@T0kt>%)W[ sz@w65en~[JR_DQ L1Kxٳ_h~u-80HƉ rPCO^l3yvʵ0gct"}O0LC5 *G857>[{ YI fcd3SrӐD@V6aZ in0 dMb艸ܩ,is&sдVbwQU?gH&Pщ5xBL%}( ftwE=p>ent9|mYLfѝ>$9}00,otG}/R,\Amț-J4d,"|ݜDZWX:(3*+KW!G#_:@ft#9dQ>Rִo`9JVZ[ܔlT6llF~aG yY2Ơ'ߘ (iV!@w+Vo2-`̰t1߻`Kɯl"Rkv X G}%Vk`ݷdԎNY#%OL()s7vf"N8ڵ_H Kk{D,^tݥ 3V0G\{\|~oc+/b ]^HQm#Ge3-;<З33FG,f{w[~M>joWV9utcg9D+Ú=*ysxn5C74ǓJ;~ڱ HƶkXۗ~:v/,-g K5{[z]3:.-BJÒmqqe_G@fZ2 iU_إ·6V]d rl.(7$1,A5Hky1hD̯ _Lyqi oSNrM_Y$]1JƻQ>& 2i0hO&p>\t@ەwϷEayo)r O*zM ]dY˨5OVe%2 n9i{X;]kSDlmXb1+%]at7 i|Wqy~y-8$xmCF`URmvYD/!6a 3|>ԍ)_UɐA&ů,J &a#n+gL k c| %QNuGRԥK:h֒h1 j,B["]t^yo\2kzgѰ&|n|]Ry$sz%eܻ A6eP2,zRL`w$ u Z-p+ PEoǀO4vV_а/^ncޠD 6%qnajMRK OՅhP-jGq1rˇTfB lcܵN\'7)">#Jz#jE8*!V+V*C K{-'imDD't\d_+Xz]QsUw2C Xt"n,h5V9!SS1gg2B;'o֨(%Cboۑ s( Џ~0 *AExj.V5a=VrP0o> X8krK0u0ܽvR}UvFEzzV,C,7[hk&qAcMفFdؿ#.Y3ou-˞mo,q3#Mʺ6TmVϒNv; 66O460gMƍ}K)&8@]>\3&qb49q\! [+#W禚cCkNF=7z`g%7V p<xMغ~0tBB:C.DNk+ŗdCEkʩPf0$A [`(oGx(K6zjgSTJ opK>qH=sZx<οm/]_?-( 4Q#3?`@dtkfޓUh[A :{{'E~ Y4LGd#"轍3DB&ǧ@=DJ- "Wmk9AY!KOzDwML$&ڪGj(p\#&&` #0 D5N1/#eW5}Եe> IJ.h= ' MT97UVQҟOw0W6giJ_&jpXnbظӞR۳;ob4SJ`p[E!{V`8t7",S2n,?NqS7n4ݷN)V!-IơZˌGzV?vLMzٗȺcƈ#iKjl-?+d&yyH^֙> O'}T#zOiϚ9UvJ;9$2lgt?P*ZEU+*X,ms;- 33L媦;Ϫe>~[NUU?Vd \Qug͔O)zՒ"x.Ȼ/x0< :4&"6 Sj" &sb9 r_bC^a2IH|е9_IMv,vcVdmj0M Vh%DXy/6+qOGnOqX}$*`oDz'리"4,x KYǒ U1,sP#D5lt>iJGOI6)˭ؽs&ᖎpdrw੮ H{Y=zs([g2y>P|N#葊GP HLE6RIG" k|.-c 'Nm/D;!:ˏH RsfzyExEAPlPPY1-0 h5L^Bt< FD@ػqxR 5}^mEd _f!e%8X6mJA޽"VM|)IUo+dʚf:Za#~5C̣\Geu܉7 w|ΫAϕ .e7z7PxL*@,XՂ:Vg7eUUdx/G3Gl(j=aVm=_3 ?çCԓr^ѬvG,^%[?]^@wzzvn$(6h<{ <-C?9geh3™ E>_ϟZxdGl1TU v-G̹(>^LX2Im1o__}9L0>lRN{x 0y2Ad JJN1eY[t=48AH Gyׯ13xt*J빛iF!J]@5V۸M^6󫬴$COVDF?~T/g8呖'Qs5TpvaV_l2C(kJfy+DYG"RYpd,Z؜՚6˅3gT Q%f5n, o2[1Ð9sglvyW c{M,_k3LdOI~vRYVӸ <>T\c[;!4]:$GqF_"1LHԦXhDMd_n]Qt8N$rK|]Dׯ%1&RJzH?S >$;<Ve1:S&^2fTt<5EȍgOA}ެKUH8$}lroNm ĨBZ3!V||lW8:΂̍SFHߖ`?,hI=*ziɣ?@9E0 '߷7ʥTl^ZtM=bXA}f;,M۷"w%]&ĝaΌQzs @,'Ӆ Eҫb䁵JƄԿ`"-yr%H*v$1})Z 3e42,K*f;ga_($BL^❅Ɩ(O ZDQ,-._c3wh6&cBgx'W> lcy/vz^@UmʼP3Z_[u0~yі42tx9G0c(u/[ :$СIcJ Y *fj;OacdlU^C'rLo`[T ̘ Lr㉿.#y{Kor];04ԃG8)ʊCLAP+0;}ᣐ"h@Ʋ ˃L:h}GsI KwN} $ZgpLt쳂+cKg<fmwojwCϏDd,iǿKB %.|h[=Rq~wsj]UU 6Wg.Iac˒|q:d_/^Pb-t6 96Sv ѢwXTzz?OQM^d34,׫Tc nX6<ʱ-"XRؓɠΐXa|b@2#^&7I]ۃ ∫91o =ݙO_^(#vQ|OF_?}P>#ou|4̚7l CF r:h;f'*pde%z[?G/qVxt u[Sa~gRMT%u$ 6eԤh lh$ocHF߮m1!mKY yTD-N,&UI_.xrৗOhsD~s{ 4`gAEN<>{5gHpB=ɩӏʨq돓_\eјpj(N߼?bNDLvf\Vv|5cwl!&g~&(0ї=t:ԉ/&: MޅJayrō1ZfԂxlz}>ԍҌ|DGD6K [ A9,5<&X}uRܿOť]@+ lLz,V(fvG6Lf!Ѡ͛h%+`ų5TuAM;'iҹJβ/MfҔEC,4z\su~o+/ F4S1sݜ&gjq2'(5iE)Wt[#mS < tTԋup1ݲh2(U1_s7<ֿ9_\ MrFXCtWhKщ-Z%x53SޤZOp4yi!n?PM/F.I.^!R;QXbl-YJL3ݫJ=5meBs8w3yLaik[Z8KźD<aG;5{i=r#mL[׸H.JwIC d^>" 7_F-u ],R<Ɇ~rFuvPԂD #cW7$f^VdIWZֆ5widbȽ6(2( nZ09 h(r#ڿ4-f@|^;.j݊Szt-! u4wm2*ϻXi:CocR4_cITHՅV3C$}X [d&6ߵ) F/] 7 GkcIG {$omLlovt,kiF$gsv!f[c?x |GU֢ۡYƘ+"/!lAPyőkFhgЄĪ` < NFn,5y% Y' nvҗ If@;ӞDtcR:Ǔɴ*tuiJd$iY_1/;7fc65;RimL*:u {.& oDaIaUKKO3(ڿ|IJQqD("xs=C+(o64RsŹEd]l|7wCisM7?*%rfb+AVuMKJe@ lAї;uڕ}ivq0g5 hfU^'@Pu1#y) ^Wti p[lU\ǹ1C'3K1N6ԻĐ[Kڹ7İBHVYfoM[pջ}U:OOA֩D'ԯt 3r%$xO2υ~4aP/':+mr$W]Ei(-VGՂ8`p},z_p^)TS*]۶z↑k] AJ*#NPYB/ M'6żT7 :o3lG0xRz+'^1S3uk&ijq%(J~hr&KНXÐK] s>?C{)+[ِeS>+Lw+{~',ן3poP&ݯxD7&)0aԬZO&@7qm~|[8I8 ?&b[O3q(\G [*[W3Suq#BI2o¸4pN5_%7o裚~& خTUxbwB!⬓`MgFun;3D,X0}pj2߼"oe)r})oŠV88|oq|}Ǚ64{LPo*ͷH}ց9 l׶9Gu{@敗TaO1[j c ~?>»՗oxfnOԁ3;MtZ2K}r=exH`>*SR)rd>2;Y `ڵ|^yb &c蔭5a)΃xEpsP>!3UxJ'@:XE9j׽6.w%G>:ҧlm֐X>|Pԇh+HEvblXd,Fh*bSHs`iU͸9&&ϽWFiв g gݫ'X$K!g_%ힻKLxB]݂~g):${ʨPN QEm_^dT]NIH}Ww9xorA]|ZGBnEM%7P( ~maz m/m;>`ʐ"Rqu ]É[.%i$tYIe 0VQ }iM' X}ڳ-_j82Fv5RTnlSQKvmpÏ3A6J[zlrMsTh[|zzD\5D!1I\)dЛ\c:I=i(f0j|j+}[VJ<hwZ}WA)wTXh`(~[a{a\]cWT/=:SylxARǧ-Q_Vo;*Aʚz~=ŝz[^[}CJ=x5qD?Ց* h`IgLs6}sH%O74}D%tAS(~K:7w6L_h|:BLaжnSBAV,ς r*K$D[~].uzDI}EZ@h?}:_$5'Hnz8v>!pl4?.vSPzb b}YC$Z_Ի7t|}XiШ A 4v+nX4g km-aIf;թ@G#7D[x zaAt!a7I DjtW߆C4TwnaQhntc|іvhy91 ǭek@ߚ7c40\cB]#Q=4RnҞ{A`H^j"Dž;JzW/VkIĬ\/ 0M<Tv< :^350a+zn]"{ d SF?@' =@Lص*M A>tǶLM% u,{C%lRv8 })I2JXn9"Alt'WvG,_ GȚћ>]qYt0شm/ V$Q'ecqfxco[ GqjSIPXgEL㖯(wz-\InvJk]dj Md'OX "Oz6}!{L#_>4iX3J6jN.-1fo3!pc,ʻf;M"mS̑lta,(6)"[WOM2c)&w7>Jx5!K Z3H6re@T,&ןVD {lD'p;mvKiYXh^Rrc,4CfXuG*% wjA4mZ|@ĸ.˷$_㾾_JhV: +Z95^|~n:.ƒ\\ѳ7,'H R>>HzXhc₡$:^V\q^_}&Cv,M@+ gѶ^ _ZgМn\=W'Jz$f UA:[v7foP1UJnn:]to.N>S"?~kwbZZc Nwo Ma֧ڍh,?PyÏif8btfqI G|zcO\4Z(6|uh .YnHs+[p%waH]KX $pwS&7 D IaQfBfYq;H'叫HYnRM2y_Pcdz\~~loJD˰@#@gە/ʜ6΃ׇx{y D#"E&ISXIA6+&[Ev'GV3 {m#.`G zEuƟHaI6=Dحi(qSn$IQsҋ@ "YDtNKNMß?)X{? fW8$dݥO cE ` sߟeħh*߿ȸ*+(=M(0#gh8~3Q\/SvwFr0D=mFc|Y;ߣ%Dg*]UNROAdC}%/ Ed78|'KX}YgCn↝<q6p{XrƋ$df1J{O}D gb4vY*8ϳ3?2 xY$SaP;LF6v)^Z0%"Mftl1oqz{0`_?ίݽai~[}8f\I>ћ(49<)2)fo\)pUަ#ODkt-J3t]G`D⫈]BG+ !@:x#EJ1>fσm_'c_4s -^V'L%;,I8=&6C;ʧ"nDAHkA㲍GS32wF hv T>s"dﱇ?Hhfb6߇_gcVhb?AޥrVkI)_Ƶ4/_ȸeKW<@v6c- h-0}xhmXJdc#,:򷚩/:R`],[M[܏C ڣbUِqݥimR}`bBZWr1"=4 (jȯĮ?mSW+EfPܗlk" -RGDq;#c$j+a)軔_ZJsM][Χ _8'~0P'o|6*/ҧM^,36 h|o9)[/ h~7/4_a:8<샏ei\`䆦 E rP`/BlÉ5f'r~!PebF_nВH@ߨ\ŝpB781&ky]n'8]τm} hgA4qz~jNֳ<_Eҋǐ,|7wV{0doBL9 ֨Għ7!=fھO_ݐ&b|{ TTùﹳʂp$xՁ)_+E$EYVCPYԮ7{Yr?uPG(}>4n,˙$!.C?C8 z)m96އ ]r.?eUvIY:,* a9c7dialHCg+Ry&p#πoO><{}Q͜sNX6>D0E)u;7ɿa<ׇ)wuUͨa-bv <(ift +o`OXڏ>mR2SS<Kb<Qv%=L"h- QIU/3q\qG֠,'_owUouFc f˦^T/j"5.Eԕt3hHD&Z-5|>6XQW{~'CMRo5 ]uv1s"`ZwsY|ຂ[B ϋ淘SƁՒQg4IStmMGпTò}aA\ukA[1RXd S%ggGE~v>3Ilj Xjt]G Yb:‚DL=Н3e,M.]6BS|b$ dsj| ][Bh2]rimQޮXWuT:{+?`"DCT Y81 4]r1|>Hm-1kKҁRf/L pG:[VG0Tj-gl298UQZg!-ܮodG]*T|'Wwa?"+F~K:kí=t䍥cSjeNFƆHj}g[FOw@z4. BPC^EbpdFm|.rVɫA3OIk{%7gX@rGK}^^ z_2|olVYWܰ8 7> ΋L33_~ ͷ0Ksoψ>/眓y?ŷXahҿCٯF`t|"wh@TOC,+teC$?y\f͍/׷wca^iuΥC 컵~vqtyĒk_ٛ[_ʦ7d2 JdRJZN7 ʜAe(i4PP'M>7[XOx['9## 0%xm&Ո =@*S_M%$OCԓ4وD1?;RpE&(٤/=zc&\nηFre }I6Y&؍l/MM@M`,?ƔslizB7h. y˰9ȖIij\sq&. ۞3TLэn2$pȬCyby%X0\"P~y*u=HQ|ve~9UQj"9㊼wr+5Ҥ wg`.:QtMKY .(i%bQ n/j(,= QA5 㠵D 'd_l&9QH |zwkPMꃃ~@@8 d]l6j{-fx@Esaz dP?yǡܯD4o7}rR t[62$[Rݤ NWe~",Kč@? w7/$VP$'F{3cLH]f뇑}=ڋמpB8YH Bx)xlR>vȆ]Ch#bWWNF1kOYrPʩ=!xqq w/[[]G1}NE;[++/;=U y/^D, Y3}{|'2 FǣKRq=6=^{,v/Vߤh_*gH/4z7h!hj_4K=!v:kNZ"*ΞE1Fr|XRLNV̻Ҿc멡`*QbH |[~k"ןNW\-OI<+yܳ7LqN/s Bp"7ӶrM}پ㾺";v/Z#=xH@<|˾_.! 7sɰ4 Niv4޴><Ț$f0;#ΉCQ5BIuQu%KY6e(˹ovP !`^:xJ;%cGr0I'k{z f[ыb P!`vEOT%:WY7whxcdg]bx*^͜[_944)R* P)5ad >T&s2תqaQ;{?e7ZMޢh@o?!_U=}_L)ݟ1W k.-9oKV&G~l1xK9 $ld}0p׆y_j>s[}K8(9 MP0C2m {lzwO?$ٷfDOX+l#e'j[B<;7S$5O=ZDEF k%˶N dN-3Ќ7/P'ÿ}VY 0dc!8"0i@)yV|OB#~;N2[c.o#s382x=\eL yƋ[B֫!{(`(-%";ˀ̋ +P})xทj#Uj v 65Q8EY-Ky_k>YЭQXS`2K:IX~̕io=2GV1-nqx]oA=]9>)vO絟./UNWt|equڰ,9T#B=D}φgg0vA|! n{=`S>Bp459j|xHVvsqXQC+ɯ_ %IYH!v"zͷ9CH0׈kK"$Ieo1LYkP0Fv>6iqHJ|?j$5r>#nޤyWnG/czhD+m++~EAyN0V{Va<2Q} 3Y;B?.:¸bsML=<~PZZf @&f>l틝_OEL>˫5! _}1{:@b@bނ oﳺ;~ٿC:/A_*ӣB @dsEk?6mz5/Q~˗`͏?5u}{fAts%]NjCîGYg󋁅Lup5`lPִgRl 4fD^ƊUml@NN; fTh7^@KJ84r=w%r|$/S8[i &o6`us)e3y3ӎI8b߀*~!l)I[vc٘zT<K!IA8 /Y@ŷE`&Wamʑ.JZ8 d1[ -?%T}L;L6~z5+D-oRY&;\ՌEwF^fWSZ;gDoE{-ʗ{u$A?[h)` ?KXȬoa>6:1OC6צ{ DG93:ƫF\ņT6૫\| rmGpue#|g چ||Ε%ӳQ@}o 4u's:A{=w Z5DH@o.$&TnafֱC,.{TV<[Kpq|#Fn%4̷#:=uxXBedK ;B~\%$fA1ر;ULl}޵<ն+5STI>X$)A| v{6:bM$ D :X \P$x'RagJIΏ 'Dcsf&6=8 Sy7sd U5q#$R! [^v7CG{\⋾C`~%q:O2*CץGvFbH#Q?i%tpT?glq8 SO4/0:Yos~;?VVR[8^V V qEh¡=:[ drOZN 3#u;6ҷ`w1@nlhݘ;~7-zĿu?38[RxH[-;t2%]9 1+կ6g>KKpӕ_Cp6AV\Vx?t t>o3Uee~l+'@MK5~ղ휁|f .ixs$6dQ2?"z|٘D[!(842=_!=+s}v [}'_ۡe!^ͱb3X6+cѶ=(q'q OA5=u77K.q~PeՌ,pYC\+wPjs(tRW [*nT Bc13W$55:$1 E+V}aM{ήI"M> X88 # 5[Jb5ſ2 uъ#J6fr__g}{ιC߼=%sS DD]Ǒ[}vQѮ%)5:ݒmIzL+/A5sT#ڶnwY,$ޒy.5*.cq}g˄P0J/$u7AeRMFJ|t f0I]FCE1ZЌy up+h>$ڔO,N$9^e,_}#4ewOf4&\%DIO`SMCZGeVeϴ-'^$_NcL]chjqOnk/MtfQ c5>uBG2smV0=E϶堈'7HV02e.~ B 0\P78Z9i~kj!vw-tҙS-Ҭ\0G:P5a1–s13Qmq)_l_/b_`vWnF0S Ma^8 zkcLEIƙl;Љ#E[!`o U |uFnnaAj,2s6oDTZ+ރ]uÀ&SQ (E1kq]%e,\ikhe{o#Q+u}(c[^)j\.矷{FYzjdof$[l{c-"ӨrIgC}$) WU|(,툛_w=LYˉV5Uv]wY[*PRQT' XY \Y̌&@LYe[q(]ڢػt-џ5;`;~ d9E%W[574غ`ߟՂ2Ϡ5 ?eHu5\ӢؘhhX#1UΗ"TCjHK2G&cf}uc=vs^ _Z:xʳ(@YS=J_/.tN\USٵf*VѲi޵s  ?gOENXRiLͦo2Z'KZyu-p^6x CRzU+ق>=6W -o>?fiYwp G0 k{VÉ s22k#qUk&-^;ĭg$-h#@_-R@\bw3WtF⌆3&vScE">f5ټ#BݡŭI6wnsZ.qClrVלþ$w  Y!f{]-˲x L5e+A@d?\ԘoFXWpnFv]ڠuFcce'Fe.N8tzh=YۯVIDrVVޙ:ӵf[ŭؽUPMvּ튽1dI3>-~%ef fW6-03oYn֋5dE\;w3ltߑG_Uem\!G(fC+%E 4w-au|;׈Wq} 'xREuREYֻݫ7vțƫy$h$%޼_ӌe֪T[%U4 CR^J.:3g2jE+͛n-l^*dXKՂQPA-J2l&m=ؗn2HΌ ~91Xvur퓌]uKizUI㪩&Xc斻lzqm瀖 ų_,T&Vk3+Uh讛v1 )fnva'3KW9vbնrv[UXGʢJlO| K3֠*HQxv{n4Djɥ4{qݬx>dlk]Wz!k'a9Lcu-JLh(no'C!<7 sgШ&B0cKhZ7 xgب:#ReY]nUm,Ub9=*b]ipt@?(y*]c<۟gՙ5=7Y֭j?Ә[;sgYv"iAve9]={`s*φs%{=Yl KzxĚbZj "NW4YIFƪ7yohUˬYN)p5cl.ƞ U׌{~\ J1eR1-MtzXѶKԲNJ Vrhw-g幞ߣCss|Z4H5Éym53ӋbGknҾ 347@`h>F 5OLg7[=9_6Π4۱ռthOРoJv乻lͥ&hW rӜEq{ͺuΓ-GiKb|I%r +L*GFΘzO7t7[ZvX{? B&?klsIe97 - $s@ZFc] 2^W lwh ReR K%ŴЗN/}b.]N s2}Ӡ0(+}peچf]}dg^Q$}_,o{K]?=ÿ-#:CP"_?`ѕ[t'Pȅj׍{~~џ0@Ok Lp 15EAEqNJXe]. (eT(T,1mxұttHlM\frld発D|op|G)cc9@cC(wy+x#]F} T'Ǟ {t~b;B!*C_ȴ,p>q=syuy 0O}s۷/ g '_U %D}N C!+7$1<u%>2l~pp)|;Zʢ"݌V5"~Q,Pg$PTen4J;m}+T˘7 +^nOnmI2 7&Nt(ҭ_;\vKn:UAHƷO+W9LH{>߯<T?<Qų#v\ZzVjQ`Xu EUTP 0"c+½99.8JVt]րZ]Y#FG32hc{<'Xqxa#=]ss阴Yuuo-XŃ,.ITY?p59GpEց薻׮+XހኯSBt,[ӆaD.(Nh{5284\\c~֗.o_|w{qvF/| 椠~ OyٍY쬤)t_(İrGz*sF : YxFWt_bCL»rpShЬkx"9rZQǝ@#7iYA>6jq{; ]M*r= =X :-I&^E7_8t96<}y%~箫N52LSHP rUT8B`p# G F VE5%W%p4 %PX%bQ_D0-(֨F4Q a(G%T,(͏.~,>}nI&\߲m]zqb`\-y3\>a8 7=*j Ȳ" \ H`2V3p!#_C9d$d$`E,8T4>NeEE ,:hav%3{5_XTtnFU$B@(׈*0Yh)0K z)$xhD<PS]>w+p{ܔD5- &/%)DdUC "5BD}7'a;"yoL][žടZ=UOt:c)5d;Jv]-~~D)үFL=nބ*?fO<8߷߃GbeP*A%/'e:1̩L"Q.Rp-JGxQ}f DT>rIMC*(p8V't3~OJXAte9@UHh zFX'CU$qĢc 40E*a2$&iDS7JHl||-@X I r à\9 A[|b`8"*cĈ@!yBE* < aЏQ\́S V CJ:9 x z~>T`Á22UIU/@J9&&jKrX1ۋG NMpu>%-t ^λLPE\k pY 6(|jfiFMo dWEt +?"@4Jp=E< zCk+`5Ւ)ڭZ#G-5+ S} JQऌg8(hzJ~I"q ޕIK0P07<2ks 5e, <XJӀ_!N@!_QtHS3? rp(K/"U]L6%b0 *]?? Ov;( tHtHUU,H廇+V`(pQ [dP DP! CHvO( e7h !L(3#*;B>PTxy#* ?H;c< cd_~5xu#(让MVfn``?|cGL{y32'eW@YS3LJoON[ݗϲx~XpY5<[_S=D缩9_O_iWV_1{6*;dp8Ȓ"-twTN\ژ90-ފ8@_M;pǖ=_7l"6p^7mFNx fvi ͱ9 f׸&+=€_J*pA ,F$~SXA7REMOGOAs+$~NLAj@Ap*A,VCD0 (na D8s9P )XiT2%BVHt0`)1e ;mDR0r$\ e?M2I#"P_6g_u#7)wA"AWޛ]٥)W a]?XՅK>.u$?2.?}'>^r)% &0 SO4`?0:((̒$U.#//fPc5t ):BckJB<<3Iȹ0S`(Ex'@6M% p Nfz5"!)p2'|m\@?B*Y4r,OدSC 7 g*3wIMp؈/6z'69YJVhi~r*}y p#@`B`IP?4H 8=ubW{CȩƋX ek8kReA'gK2=C3jTȍ@8ᱪ;- P9Bh Op Hx. ,wIw~&VX i7m*a dDi <fž̙ !@e9t{.x^I)܏Vրw5 Q1K'5YR01@csY`S(K"WT\;bGW称Hj(wϖ-~&5hJdߝnO]OF` \1GQ y$ȢFT5rjE5GtTpC(hJ9W~*_7[=bh~ v6r }'My;FoI[wgK[ݙo1Mg̷|y2T[247WNY&M|s7{}=kGD6{'yR`訂ɐʝz)* ?Fh`~`!<=н/gӽ-A?]~Ith >X 鳰t!aI3*QJHIJJkT>wqno7vzx򖗿'wn7Ol~jꟗw f׿x <%qiuxE@. i`dP7Y[ ߔ="AƗB!t|[$ۅxDgmLO4"|)L$"$J(.120I$!JK|DRb2 | DmYUB@! P.'~_~zʟ_ > _S/focuswriter-1.4.5/resources/images/icons/oxygen/scalable/go-down.svgz000066400000000000000000000146661231434177300260550ustar00rootroot00000000000000}[sɕ .b"[O8c"@k`ԭV Aԗ% O>Lf `zq2]yuy7/Wۃ\rz77/>~gsfWo^]ohz>}7>"áP~az2{nvqݷRiW{G+Qf!17ǟmn2"ueC͇zc⋓KGؿkzdzڵǿxW8FLYߌ۬h݂Nnvy{3M^vNjS#hrL?LkF&:WoftCv:{sO7Ӌ^:ovw1M..:YfGW7gW