pax_global_header00006660000000000000000000000064145763136310014523gustar00rootroot0000000000000052 comment=db86b87151d9564c22fce34205de999335cb7f5a extension-manager-0.5.0/000077500000000000000000000000001457631363100151515ustar00rootroot00000000000000extension-manager-0.5.0/.github/000077500000000000000000000000001457631363100165115ustar00rootroot00000000000000extension-manager-0.5.0/.github/ISSUE_TEMPLATE/000077500000000000000000000000001457631363100206745ustar00rootroot00000000000000extension-manager-0.5.0/.github/ISSUE_TEMPLATE/bug_report.md000066400000000000000000000005631457631363100233720ustar00rootroot00000000000000--- name: Bug report about: Create a report to help us improve title: '' labels: '' assignees: '' --- **Describe the bug** A description of the bug goes here. **System Information:** - Distro (e.g. Fedora, Ubuntu) - Extension Manager version (e.g. 0.5.0) - Package format (Flatpak, Snap, other) **Additional context** Add any other context about the problem here. extension-manager-0.5.0/.github/ISSUE_TEMPLATE/feature_request.md000066400000000000000000000007121457631363100244210ustar00rootroot00000000000000--- name: Feature request about: Suggest an idea for this project title: '' labels: '' assignees: '' --- **Is your feature request related to a problem? Please describe.** A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] **Describe the solution you'd like** A clear and concise description of what you want to happen. **Additional context** Add any other context or screenshots about the feature request here. extension-manager-0.5.0/.github/workflows/000077500000000000000000000000001457631363100205465ustar00rootroot00000000000000extension-manager-0.5.0/.github/workflows/main.yml000066400000000000000000000010521457631363100222130ustar00rootroot00000000000000on: push: branches: [master] pull_request: name: CI jobs: flatpak: name: "Flatpak" runs-on: ubuntu-latest container: image: bilelmoussaoui/flatpak-github-actions:gnome-nightly options: --privileged steps: - uses: actions/checkout@v4 - uses: bilelmoussaoui/flatpak-github-actions/flatpak-builder@v6.3 with: bundle: extension-manager.flatpak manifest-path: build-aux/com.mattjakeman.ExtensionManager.Devel.json cache-key: flatpak-builder-${{ github.sha }} run-tests: true extension-manager-0.5.0/.gitignore000066400000000000000000000000201457631363100171310ustar00rootroot00000000000000.flatpak-builderextension-manager-0.5.0/COPYING000066400000000000000000001045141457631363100162110ustar00rootroot00000000000000 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 . extension-manager-0.5.0/README.md000066400000000000000000000130521457631363100164310ustar00rootroot00000000000000

Extension Manager

A native tool for browsing, installing, and managing GNOME Shell Extensions

[![Build Status](https://img.shields.io/github/actions/workflow/status/mjakeman/extension-manager/main.yml?branch=master)](https://github.com/mjakeman/extension-manager/actions/workflows/main.yml) [![Translation status](https://hosted.weblate.org/widget/extension-manager/svg-badge.svg)](https://hosted.weblate.org/engage/extension-manager/) [![Release Version](https://img.shields.io/github/v/release/mjakeman/extension-manager)](github.com/mjakeman/extension-manager/releases/latest) [![Downloads](https://img.shields.io/badge/dynamic/json?color=green&label=downloads&query=installs_total&url=https%3A%2F%2Fflathub.org%2Fapi%2Fv2%2Fstats%2Fcom.mattjakeman.ExtensionManager)](https://flathub.org/apps/details/com.mattjakeman.ExtensionManager) [![License (GPL-3.0)](https://img.shields.io/github/license/mjakeman/extension-manager)](http://www.gnu.org/licenses/gpl-3.0) Written with GTK 4 and libadwaita ![Screenshot of the main GUI (light mode)](data/screenshot-installed.png#gh-light-mode-only) ![Screenshot of the main GUI (dark mode)](data/screenshot-browse-dark.png#gh-dark-mode-only)
## 📋 Features The tool supports: - Browsing and searching extensions from `extensions.gnome.org` - Installation and Removal - Enabling and Disabling - Updating in-app ([GNOME 43+](https://github.com/mjakeman/extension-manager/wiki/Known-Issue:-Updates)) - Screenshots & Images - Ratings & Comments - Translations ([add your language!](#-translations)) If there's something you'd like to see, contributions are welcome! ## 💬 Community We now have a matrix room for Extension Manager. Join and say hello! https://matrix.to/#/#extension-manager:matrix.org ## 💻 Installing Flatpak is the recommended way to install Extension Manager. You can get the latest version from flathub by clicking the button below. There may also be independently-maintained packages available for your distribution. ### Third Party Packages You may also be able to obtain Extension Manager from your distribution's package manager. > [!IMPORTANT] > These packages are **maintained independently** and thus may differ from the official version on Flathub. There is no guarantee of support. Please report any issues experienced to the package maintainer (not here!). [![Packaging status](https://repology.org/badge/vertical-allrepos/extension-manager.svg)](https://repology.org/project/extension-manager/versions) ## 🌐 Translations Extension Manager is translated into more than 30 languages. > [!NOTE] > We use [Weblate](https://weblate.org/en/) - an open source continuous localisation tool - for translation management. Access to Hosted Weblate is kindly provided free of charge to the Extension Manager project. ### Contribute Contributions to translations are always welcome! We have a comprehensive translation guide [here](/po/README.md). If you are new to Localisation (l10n), fear not! The entire process is explained above in as much detail as possible. If you have any trouble, please also [get in touch](#-community). ## ⚠️ Known Issues ### Extensions are not being updated Updates do not work out of the box on GNOME 40 and certain older versions of GNOME 41 and 42 **unless the official GNOME Extensions app is also installed**. See here for details and a simple workaround: [Wiki Page](https://github.com/mjakeman/extension-manager/wiki/Known-Issue:-Updates) ## ⏰ Using Unsupported Extensions GNOME Shell will not load extensions that were not designed for your current version. You can override this behaviour by manually disabling GNOME Shell's version check. Extension Manager will respect this preference and allow you to use unsupported extensions fully. > [!CAUTION] > Unsupported extensions will likely not work as intended and > may introduce instability to your system. Disable the version check at your own risk. > [!IMPORTANT] > Re-enable the version check before filing issues against GNOME components. Turn off the version check and allow unsupported extensions: ``` gsettings set org.gnome.shell disable-extension-version-validation true ``` Use the default setting and return to safety: ``` gsettings reset org.gnome.shell disable-extension-version-validation ``` ## 🔨 Building The easiest way to build is by cloning this repo with GNOME Builder. It will automatically resolve all relevant flatpak SDKs automatically. Extension Manager needs a recent version of the GNOME SDK in order to build. See the [Development](build-aux/com.mattjakeman.ExtensionManager.Devel.json) or [Stable](/build-aux/com.mattjakeman.ExtensionManager.json) Flatpak manifests for a full dependency list. ### Dependencies Extension Manager depends on the following libraries: - gettext - gtk4 - libadwaita - libjson-glib - libsoup - [blueprint](https://gitlab.gnome.org/jwestman/blueprint-compiler) - [text-engine](https://github.com/mjakeman/text-engine/) On Debian-based distributions, the required dependencies can be installed with the following command: ```shell sudo apt install blueprint-compiler gettext libadwaita-1-dev libgtk-4-dev libjson-glib-dev libsoup-3.0-dev libtext-engine-dev meson ``` ### Building From Source ```shell meson setup _build ninja -C _build ninja install -C _build ``` extension-manager-0.5.0/build-aux/000077500000000000000000000000001457631363100170435ustar00rootroot00000000000000extension-manager-0.5.0/build-aux/com.mattjakeman.ExtensionManager.Devel.json000066400000000000000000000047331457631363100273220ustar00rootroot00000000000000{ "id" : "com.mattjakeman.ExtensionManager.Devel", "runtime" : "org.gnome.Platform", "runtime-version" : "master", "sdk" : "org.gnome.Sdk", "command" : "extension-manager", "separate-locales" : false, "finish-args" : [ "--share=network", "--share=ipc", "--socket=fallback-x11", "--device=dri", "--socket=wayland", "--talk-name=org.gnome.Shell.Extensions", "--talk-name=org.gnome.SessionManager" ], "cleanup" : [ "/include", "/lib/pkgconfig", "/man", "/share/doc", "/share/gtk-doc", "/share/man", "/share/pkgconfig", "*.la", "*.a" ], "modules" : [ { "name" : "blueprint-compiler", "builddir" : true, "buildsystem" : "meson", "cleanup" : [ "*" ], "sources" : [ { "type" : "git", "url" : "https://gitlab.gnome.org/jwestman/blueprint-compiler.git", "commit" : "2a39a16391122af2f3d812e478c1c1398c98b972", "tag" : "v0.10.0" } ] }, { "name" : "libbacktrace", "builddir" : true, "buildsystem" : "autotools", "sources" : [ { "type" : "git", "url" : "https://github.com/ianlancetaylor/libbacktrace.git", "branch" : "master" } ] }, { "name" : "text-engine", "builddir" : true, "buildsystem" : "meson", "sources" : [ { "type" : "git", "url" : "https://github.com/mjakeman/text-engine.git", "commit" : "379437b2b589a9414985dec9136b7b48bae76f9e", "tag" : "v0.1.0" } ] }, { "name" : "extension-manager", "builddir" : true, "buildsystem" : "meson", "run-tests" : true, "config-opts" : [ "-Ddevelopment=true", "-Dpackage=Flatpak", "-Ddistributor=mjakeman", "-Dofficial=true" ], "sources" : [ { "type" : "dir", "path" : "../" } ] } ] } extension-manager-0.5.0/build-aux/com.mattjakeman.ExtensionManager.json000066400000000000000000000071111457631363100262550ustar00rootroot00000000000000{ "id" : "com.mattjakeman.ExtensionManager", "runtime" : "org.gnome.Platform", "runtime-version" : "45", "sdk" : "org.gnome.Sdk", "command" : "extension-manager", "finish-args" : [ "--share=network", "--share=ipc", "--socket=fallback-x11", "--device=dri", "--socket=wayland", "--talk-name=org.gnome.Shell.Extensions", "--talk-name=org.gnome.SessionManager", "--env=GDK_PIXBUF_MODULE_FILE=/app/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" ], "cleanup" : [ "/include", "/lib/pkgconfig", "/man", "/share/doc", "/share/gtk-doc", "/share/man", "/share/pkgconfig", "*.la", "*.a" ], "modules" : [ { "name" : "webp-pixbuf-loader", "buildsystem" : "meson", "config-opts" : [ "-Dgdk_pixbuf_moduledir=/app/lib/gdk-pixbuf-2.0/2.10.0/loaders/" ], "sources" : [ { "type" : "git", "url" : "https://github.com/aruiz/webp-pixbuf-loader.git", "tag" : "0.2.4" } ] }, { "name" : "update-pixbuf-loaders", "buildsystem" : "simple", "build-commands" : [ "GDK_PIXBUF_MODULEDIR=/app/lib/gdk-pixbuf-2.0/2.10.0/loaders/ gdk-pixbuf-query-loaders > /app/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache", "gdk-pixbuf-query-loaders >> /app/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" ] }, { "name" : "blueprint-compiler", "builddir" : true, "buildsystem" : "meson", "cleanup" : [ "*" ], "sources" : [ { "type" : "git", "url" : "https://gitlab.gnome.org/jwestman/blueprint-compiler.git", "commit" : "2a39a16391122af2f3d812e478c1c1398c98b972", "tag" : "v0.10.0" } ] }, { "name" : "libbacktrace", "builddir" : true, "buildsystem" : "autotools", "sources" : [ { "type" : "git", "url" : "https://github.com/ianlancetaylor/libbacktrace.git", "commit" : "9ae4f4ae4481b1e69d38ed810980d33103544613" } ] }, { "name" : "text-engine", "builddir" : true, "buildsystem" : "meson", "sources" : [ { "type" : "git", "url" : "https://github.com/mjakeman/text-engine.git", "commit" : "379437b2b589a9414985dec9136b7b48bae76f9e", "tag" : "v0.1.0" } ] }, { "name" : "extension-manager", "builddir" : true, "buildsystem" : "meson", "build-options" : { "no-debuginfo" : true }, "config-opts" : [ "-Ddevelopment=false", "-Dpackage=Flatpak", "-Ddistributor=mjakeman", "-Dofficial=true" ], "sources" : [ { "type" : "git", "url" : "https://github.com/mjakeman/extension-manager", "commit" : "fce0e326dbddaf6ae17df79c01e553f4b73e3015", "tag" : "v0.4.3" } ] } ] } extension-manager-0.5.0/data/000077500000000000000000000000001457631363100160625ustar00rootroot00000000000000extension-manager-0.5.0/data/com.mattjakeman.ExtensionManager.desktop.in.in000066400000000000000000000004551457631363100270120ustar00rootroot00000000000000[Desktop Entry] Name=Extension Manager Exec=extension-manager %U Icon=@app_id@ Terminal=false Type=Application Categories=GTK;Utility StartupNotify=true MimeType=x-scheme-handler/gnome-extensions; Comment=Manage GNOME Shell Extensions # Translators: Do not translate Keywords=extension;manager;shell; extension-manager-0.5.0/data/com.mattjakeman.ExtensionManager.gschema.xml.in000066400000000000000000000024361457631363100271430ustar00rootroot00000000000000 800 Window Width 600 Window Height false Is Maximized Wether app window is maximized. '@app_version@' Last-Used Version The last-used version of the app. If the saved version does not match, the "What's New" dialog is shown. false Sort Enabled First Display enabled extensions first in the installed view. false Show Unsupported Show extensions which do not support the current version of GNOME. extension-manager-0.5.0/data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in000066400000000000000000000160021457631363100277350ustar00rootroot00000000000000 @app_id@.desktop CC0-1.0 GPL-3.0-or-later Extension Manager Browse, install, and manage GNOME Shell Extensions Matthew Jakeman

A utility for browsing and installing GNOME Shell Extensions.

Features:

  • Browse extensions.gnome.org right inside the app
  • Manage the extensions you already have installed
Browse extensions.gnome.org right inside the app https://raw.githubusercontent.com/mjakeman/extension-manager/master/data/screenshot-browse.png?token=GHSAT0AAAAAABQAZ3HOZ6FIJC5TTAO6FSN6YPCKI3A Manage the extensions you already have installed https://raw.githubusercontent.com/mjakeman/extension-manager/master/data/screenshot-installed-dark.png?token=GHSAT0AAAAAABQAZ3HODHOYG7PH5I2RBLQSYPCKI3A A utility for managing GNOME Shell Extensions https://raw.githubusercontent.com/mjakeman/extension-manager/master/data/screenshot-details.png?token=GHSAT0AAAAAABQAZ3HOIYZECGZ6OIPZYE4IYPCKHVQ @app_id@.desktop https://mattjakeman.com/apps/extension-manager https://github.com/mjakeman/extension-manager/issues https://github.com/mjakeman/extension-manager/discussions https://github.com/sponsors/mjakeman https://github.com/mjakeman/extension-manager/blob/master/po/README.md https://matrix.to/#/#extension-manager:matrix.org https://github.com/mjakeman/extension-manager extension-manager pointing keyboard touch 360

The 'Performance & Polish' release

  • Compatibility with GNOME 46
  • Display extension icons and statistics
  • Search is more reliable
  • New widgets, better resizing, cleaner look
  • Translation updates
  • HOTFIX: Fix broken 'recent' and 'popularity' search filters
  • Various stability and correctness fixes
  • Translation updates
  • Translation updates
  • Upgrade Assistant scroll fix
  • Pixel perfect app icon
  • Translation updates
  • Official snap support
  • Improved error log generation
  • Fully adaptive mobile-friendly user interface
  • Paginated search results
  • Upgrade Assistant for checking extension compatibility
  • Unsupported extensions are hidden by default
  • Overhauled error and crash reporting
  • Full-screen image viewer
  • Handles new gnome-extensions:// URI scheme
  • Randomised extension suggestions
  • Performance and stability
  • Translation updates
  • Various bug fixes
  • Performance and stability
  • Translation updates
  • Remove release notes dialog
  • Fix special characters in installed extension listings
  • Performance and stability

The second feature update to extension-manager. Highlights include:

  • View comments and reviews
  • Support for in-app updates
  • Better handling errors and out-of-date extensions
  • Allow installing 'unsupported' extensions
  • Display release notes on first run
  • New app icon
  • Optionally sort extensions by enabled status
  • Translation updates
  • Performance and stability
  • Translation updates
  • Translation updates
  • Fix special characters in search results

Fixes a crash that sometimes occurs while uninstalling an extension

The first feature update to extension-manager. Highlights include:

  • Dark theme and support for overriding the system colour scheme
  • Shows screenshots in extension listings
  • Shell version compatibility check
  • Localised into seven languages
  • Sort search results
  • Global extension on/off toggle
  • Displays user and system extensions separately
  • Performance and stability
extension-manager-0.5.0/data/icons/000077500000000000000000000000001457631363100171755ustar00rootroot00000000000000extension-manager-0.5.0/data/icons/com.mattjakeman.ExtensionManager-symbolic.svg000066400000000000000000000012111457631363100300470ustar00rootroot00000000000000 extension-manager-0.5.0/data/icons/com.mattjakeman.ExtensionManager.Devel.svg000066400000000000000000000112221457631363100272710ustar00rootroot00000000000000 extension-manager-0.5.0/data/icons/com.mattjakeman.ExtensionManager.Source.svg000066400000000000000000000434011457631363100274760ustar00rootroot00000000000000 Adwaita Icon Template image/svg+xml GNOME Design Team Adwaita Icon Template Hicolor Symbolic extension-manager-0.5.0/data/icons/com.mattjakeman.ExtensionManager.svg000066400000000000000000000035511457631363100262410ustar00rootroot00000000000000 extension-manager-0.5.0/data/icons/hicolor/000077500000000000000000000000001457631363100206345ustar00rootroot00000000000000extension-manager-0.5.0/data/icons/hicolor/scalable/000077500000000000000000000000001457631363100224025ustar00rootroot00000000000000extension-manager-0.5.0/data/icons/hicolor/scalable/actions/000077500000000000000000000000001457631363100240425ustar00rootroot00000000000000extension-manager-0.5.0/data/icons/hicolor/scalable/actions/clock-alt-symbolic.svg000066400000000000000000000006111457631363100302510ustar00rootroot00000000000000 extension-manager-0.5.0/data/icons/hicolor/scalable/actions/dialog-error-symbolic.svg000066400000000000000000000002631457631363100307710ustar00rootroot00000000000000 extension-manager-0.5.0/data/icons/hicolor/scalable/actions/dialog-question-symbolic.svg000066400000000000000000000010011457631363100314760ustar00rootroot00000000000000 extension-manager-0.5.0/data/icons/hicolor/scalable/actions/external-link-symbolic.svg000066400000000000000000000011041457631363100311530ustar00rootroot00000000000000 extension-manager-0.5.0/data/icons/hicolor/scalable/actions/globe-symbolic.svg000066400000000000000000000024041457631363100274720ustar00rootroot00000000000000 extension-manager-0.5.0/data/icons/hicolor/scalable/actions/go-next-symbolic.svg000066400000000000000000000003301457631363100277570ustar00rootroot00000000000000 extension-manager-0.5.0/data/icons/hicolor/scalable/actions/pip-in-symbolic.svg000066400000000000000000000012311457631363100275730ustar00rootroot00000000000000 extension-manager-0.5.0/data/icons/hicolor/scalable/actions/pip-out-symbolic.svg000066400000000000000000000012551457631363100300020ustar00rootroot00000000000000 extension-manager-0.5.0/data/icons/hicolor/scalable/actions/puzzle-piece-symbolic.svg000066400000000000000000000005701457631363100310200ustar00rootroot00000000000000 extension-manager-0.5.0/data/icons/hicolor/scalable/actions/settings-symbolic.svg000066400000000000000000000015751457631363100302520ustar00rootroot00000000000000 extension-manager-0.5.0/data/icons/hicolor/scalable/actions/software-update-available-symbolic.svg000066400000000000000000000010051457631363100334260ustar00rootroot00000000000000 extension-manager-0.5.0/data/icons/hicolor/scalable/actions/star-filled-rounded-symbolic.svg000066400000000000000000000006001457631363100322420ustar00rootroot00000000000000 extension-manager-0.5.0/data/icons/hicolor/scalable/actions/star-outline-rounded-symbolic.svg000066400000000000000000000012641457631363100324710ustar00rootroot00000000000000 extension-manager-0.5.0/data/icons/hicolor/scalable/actions/zoom-in-symbolic.svg000066400000000000000000000003311457631363100277670ustar00rootroot00000000000000 extension-manager-0.5.0/data/icons/hicolor/scalable/actions/zoom-out-symbolic.svg000066400000000000000000000003111457631363100301660ustar00rootroot00000000000000 extension-manager-0.5.0/data/icons/meson.build000066400000000000000000000005061457631363100213400ustar00rootroot00000000000000icondir = join_paths(get_option('datadir'), 'icons/hicolor') install_data( '@0@.svg'.format(app_id), install_dir: join_paths(icondir, 'scalable/apps'), ) install_data( 'com.mattjakeman.ExtensionManager-symbolic.svg', install_dir: join_paths(icondir, 'symbolic/apps'), rename: '@0@-symbolic.svg'.format(app_id), ) extension-manager-0.5.0/data/meson.build000066400000000000000000000037351457631363100202340ustar00rootroot00000000000000desktop_file_in_config = configuration_data() desktop_file_in_config.set('app_id', app_id) desktop_file_in = configure_file( input: 'com.mattjakeman.ExtensionManager.desktop.in.in', output: '@0@.desktop.in'.format(app_id), configuration: desktop_file_in_config, ) desktop_file = i18n.merge_file( input: desktop_file_in, output: '@0@.desktop'.format(app_id), type: 'desktop', po_dir: '../po', install: true, install_dir: join_paths(get_option('datadir'), 'applications') ) desktop_utils = find_program('desktop-file-validate', required: false) if desktop_utils.found() test('Validate desktop file', desktop_utils, args: [desktop_file] ) endif appconf = configuration_data() appconf.set('app_id', app_id) appstream_file_in = configure_file( input: 'com.mattjakeman.ExtensionManager.metainfo.xml.in.in', output: 'com.mattjakeman.ExtensionManager.metainfo.xml.in', configuration: appconf, ) appstream_file = i18n.merge_file( input: appstream_file_in, output: '@0@.metainfo.xml'.format(app_id), po_dir: '../po', install: true, install_dir: join_paths(get_option('datadir'), 'metainfo') ) appstreamcli = find_program('appstreamcli', required: false) if appstreamcli.found() test('Validate appstream file', appstreamcli, args: ['validate', '--no-net', '--explain', appstream_file] ) endif schemaconf = configuration_data() schemaconf.set('app_id', app_id) schemaconf.set('app_version', meson.project_version()) schema_file_in = configure_file( input: 'com.mattjakeman.ExtensionManager.gschema.xml.in', output: '@0@.gschema.xml'.format(app_id), configuration: schemaconf, ) install_data(schema_file_in, install_dir: join_paths(get_option('datadir'), 'glib-2.0/schemas') ) compile_schemas = find_program('glib-compile-schemas', required: false) if compile_schemas.found() test('Validate schema file', compile_schemas, args: ['--strict', '--dry-run', meson.current_source_dir()] ) endif subdir('icons') extension-manager-0.5.0/data/screenshot-browse-dark.png000066400000000000000000001717701457631363100232000ustar00rootroot00000000000000PNG  IHDR>sBIT|dtEXtSoftwaregnome-screenshot>&tEXtCreation Timemi 13 mar 2024 21:28:13y IDATxwxTe;3B ABPfAX DY \Q]`A"`)AǛof23INs]se3<$3wr$Pxv1Pv#’s!:@?F2ʼJF )lU}P6UYWeGK5UPTYYEG %Ur8+B@+}(v*±ʻ :lSeww8a 10YUQP42$Yނuv,=A܄RV%V\ [NG+ 3: v}e>lT$(=чRβ FSit 6jh*L< ntwyw&8YTQCfQW=&ʶ"$ WBUQftYS!q7ebE,3a,LOK#G-K-IzNw˰Y'e)lt0=in[I(u6'#6l42 T |*($zYnfYM2`8 3lY8QPWPkG}8+L,T!ӓY\}6c= ϨnLOg~ 42 4-x2OAMd]EO&Am6d: 6U*>wW g #dAGϽ\0@P؀hE5-a͢LGz br6&9.0Y|g4lVim!Q4PYPy _ôQsYW eVPILG_Tn9\MP>xrKW8 y:lՠNYW!ZL)̽5!AY-}Mfe mIk3V &w6(YmhLWaو\fY 6-Lt0Y-B&\ݺ$OGa3a&%4Kb#2wO릲:XF*GMZM?͹*Lǜ۔6oY/u{9(w^^0jmp%r_i(e,rOO@F1;))#7>>QvvwW^]tܹRj7hZvP)}9; b e)hj6j.d%k>Ҋ*#???dzosf]v0`kR)֠YMB f:*dA?LUs*aaa{{{OOJJ2eddrTfYYY0[n˗t1j\Ag+Mm;hzRcZLw˼A~۵kw_nȤ,"QffnS΅+W 0k=]v8DfqukY j3"h:ɴʹ6BBBnY濒LLFQVVTr vȮlq>k5򨳮n'(W;j4III1gee fUye055Uɥ]HVVRRRcΟ?JH̶lVj<탣Z2YMu0Ng˘j;CBBL (,٬Zjjժ&dC^^^VժUUV- qd24꾗K&8Z0ë8 sn][v^ ( y{AJ* ծ]$_L")cȠT*r8j:ew¼$4HȬXPdddۻU+KMCea2'KLq͢ɰo?MoIPX]-#fVrQSJK߱ծщTT (,U\[r0󓯯e2_[vv2334ulL*N 1OTAGY-{GLrrrT\[b3ͪR &IUժU"a(e[Ms5ly²to  Pj|XQQQڸq  TժU jժ˫(uI5eVq4!u7ȹ ~NtG#6Yl=-a߰a1C@y3m4} ?\ũԪTRhРΝaÆq lV``7n޽{+<<\l2hٲe ѣ{nժUKgv/^X[n֭[yf\RgVƍKdT|111zhRu;|!孏ܸw_~n6?wڥ#F`lw߭!CåVo߾jժ$n/Ikڵk-[n޽{kÆ nm/u޽{M6_BOl.{v$Zw3}sYhˍ4=AsY喳icǎ^Kz-}w0`nv͘1ò7mݺUQQQ5e+11QZrׯzŋŶ_*-Zv,\ߺu߯~$)((HnV\wRe)!hZV ۧիW+%%E-[sZݻ&N͛+11QǎӤI4c }ݒUV)++K[VZ=z^zڵk5g;[@@N}Zjڱcf͚KM^z%Gɖ/ ]֭%I۷o$լYSqqq6ũf͚_~EԦMXըQC/_L_~u 2D.]e24j( 0@өSGYZhڶm &h߾}ʕ+뫇~X/^TյfݻW'NTxxq5mTIII:y"## 7NUZ5ݻWs!pKA]MN<0͛7O&MRNNΝ-ZAOO,6,:&||A?^OV׮]5qD۷O u }Wz4ur;ݻkŊ[m۶~D}wSpp$IgV׮]e%%%zO@]G{N?t7k޼yQuEM2HvS}JC&TJ-Z|?bbb>HN7`k„ yf]pfz^u{ɓ'O*33SC ы/Gy4~iuAԥK%&&_ݺuM6YkҤo>}6Vս{wرC_~Q{VHHΞ=[ xv`hr[ iW\QDD%lJ˗5iҤ[Nx:^ed* ߞdddhɒ%n-QFj;׮]Szz$i޽ZjIː?n"h:7 @ѣGlFF>"oFqqq\wq^ziر$ܹ3_-=}4, vښ7o6mj٤I͛7OuBrUtKOQ eTLL~wMv옲?Iqqq:y呞'OJ`m۶-}/i7nԑ#G$Iw֠At u] ]wݥ7nhРAڳg[]7W_$ԩSRn-s1޽t1r7o$3Fڵkl"I?~fW|A-]T&IvN:llR׮]ә3g,B+~mKȌPDDN>&M ubhRS Rx뭷d=>Fjٲ}]/JLL4a=zd_ƍ`]tIdG:u>]MѣGգGeddhŖ߯xnZ;wTJJRRRtQlRɖ͚5ӌ3k.%%%Y?~\V\CjѢERppTW^yG@erٖ-[*&&FSL-""BN5%мpV '| }%4}||!Cjժpf͚~ItRiF}у>kZ`F{WׯӧfYoH=Cڼys3gԥKt=詧ӧoK999̙3յkWiĉ&\xQcǎٳ-;5jT>Rdd%ػ$%&&Ӛ?[Mo_y?^޽8 ̓[j[(e˖ڱcFGqqq0`TK.iΜ9{r GyDΝÇ-, fGɌc=ֺѵѐL79ym3a ?u񗼾PV-[L;v ߹sz/_eVnَdR޽տiFAAAסChnQ \REʭ4{(Cי7n|PPvMR,Iv?9~kN4/_Wմ99A` (M0ͪ]댍UVV˻4sgAASvMP!eee)!!%$$x2+4RRRX$&&Ω*3,Mw|HNN.RfBB -S!,Ĩ*J*n$Bir#//>*"nTlYYYq㆒'___y{{dTzz*R,rR GhETTp!++Ke9lUhPRSSK(&[0A%''+33effR)A2ROج@233_k:BR\\/ALNNJM& @02 0A`4@yR2LE RD 0A`(&PMC4"h E 0A`(&PMC4"h E 0A`(&PMC4"h E 0A`(&PMC4"h E 0A`(&PMC4"h E 0A`(&msbbbl[6t={?EEEiw5ol0Lz}vm۶M&M*" ]WÆ SΝոqc5iDfY._]vi:p@i3L={L Uhh;cǎZP< '|:""BVTTT P4MpԤIT^|VPuM<ƏחJ9+~8_ȴy-JFǎMܹ3A9&80|p͞=ۭeAE)Sk׮O111RըQ#7,2ҥK]xT0AtA3fp{(k*-[jժ6^|E}wR@@@h߾Zliy]QO?TTf$I.`%K믿֕+WڵkoV.]ߖZY+ %I o,SRRJT( qqq2dڷo,o*b v?ټNKKkfڿ?! 5j԰yZjeAKOO׮]J4d{'???͘1CѺ:uꤡCUVj޼h}0 #3}6 ȑ#բE 5o\uQllΞ=M6iҥJNNv0a ]rEлᆱ3gθ<>/ƌozppM^xA+VYAz'խ[75lPv@ IDAT^^^:~;oV۷o797|VZټ_W_}%Ij׮/_.lQ;wN}ɷ={ZѶm4zB{G}TC Qhh]j޼y:roVzTzuKÇk͖oSFm۶[$ @|:&ML1bj֭ڲe~WAQT^xA#FezժU^zm_|N:[_@@ձcG 6L}z-q뭷jذa L >>>7nƎ+7lP 6-ܢO?vR&MI&ݻƌ;v,fqM4)_:CzrJ͜9SN1r󛖖ѷ~kSiӦ)**JzmBfBBy=^"""԰aCm2-00P!!!ٳymڴ2d2iܹ8p`uթSGuQ-Q(3򜗕}')TB5gyԮ];=ZdC|3k,tA6i>h65vX}.{GmT_^ФIL2f@+6O=z  {믿rw#9Ǐ̙3mQLcǪu֖9996mN:Fϑ~2k>}M8?~@fQm+FOP4Ώ?s*''r 4̙3|ӧ bƍki˖-6 [n?[oiӦMڶm._o/Knv=Ѕ !I=N֭[CN߿?_h \;vSO=oٸ8M{{ף2[#Gr~/_իW,3bMӬYMmf3m-tY3c ˠ?? wfufڶmK5| :TM6,ӦMuv)MLLԳ>*mtΝ;{iߒ(3fĉRe5-\mֺulB$[_ծ]f^zz,X`hr~{GJs]wiӦMnsQ~/ٳ>E-_Q 2Dfo#Gʕ+5MK>@e@; h͛7kŖK,Qn4`4___w}ۼysd9r&顇*䞸`'_ج[֭ky}w_~nrѣG -Caϯ$#_ӧ+""BճL{Wk.v|ִkNڵӅ ,A(+~[znV]xQtk}΋c2&X]bccZ6;;[Wɓ?/\Ffy=:|[esGff&NX⡴dee)""澑ܸqC駟K9 s~֭~ۦzÆ /zw}f m۶YnkذBCCTWxxx]~]cƌqy ky΋k2FPHHNaÆjذjԨ˗/ܹs:q>s;vz4c }9rnf5iD 4PBBbccuQ/:}{0կ__.]ݻ`Z=zzꥻ[jҤf.]C?.]d6ҥK3foVhh]Aaxz~f̙cS `in:ݻe~XX}Yۖi㏫YfԩSUNׯKd[pkjذa֭]~ݐmzyyiΜ9jӦ͛]jܸ:wlSU*22R&MrN}gܹsuqlR&MҪU4b]|ٲ|VԻwomܸ1ߺƍp~Nj:pz)]vMSΝ12ZQ>[APzzz}ܕ.F]8jڴ8?m>Cjժ 4si۶m6.[LC Q^tFR͚55tP={V[lї_~Sjڴioܸq M6UΝo~No^M4=ܣ,IիWK5<8VeMgXBǏ׿oKN:Iz)M0Aw}>3fHaO?i={my]w飏>Ҟ={nMKZ~~7EEEiСnZjZv&NX`YΝ_cǎՂ jΜ9~~~/lC馛ndҸq]viѢE )pfLhm޼Yٱ.hz+VhڰaNjs̝'w·scΝ;nҥKgk^JJM(pUވZJfr6oެxH׬߃}>wn˞lԩSO?iӦM>}6l`i]ж) _h޽oվ}{=Zzݫ VZn;Gj_ytMztꦛn?o9shz衇{ny:}&LkŊ_٬yСCz ,˚5kԫW/Jڵkau2k׮[ҥΜ9gjҤI8p"""4tPkҥqSNUϞ=5n89*gڝJRPPϟ˗G?~,]'wχ{ꩧhԩ뮻Gqqqkkذazկ_?kO@z,o }ͺ=(+iӦGz-5_]mݲNӧ}ݮrH(::Z:z˩;̝afYǏWdd8˗/kՖ3fh޽n][y *oFFOK=pul sΌږFr-Oʺ~]zU~$i:uN}o>G[nUbb[н{w>|Xwqƌm۪wފQxxfΜnI>>>65)))ڻw5kt7n,l)_;ݮ$?~\֮]7믿 s眹s>鍊nR*Uo9݇s%7ͼaÆqFZj:s}z_vZvw>'$%%iѢEOԧO=oÒ{OwTvVpA(999N}:thGj ˵n:͛7O.\вe6?Yf5je@wʲvZy6lP=?*++KN?GyD}4h;ve˖2L266_d2d2ټ]~~~no7++KGV׮]u~?T!IիWr%յk,&Y:<9gEݖwmΟ4OuaWarXKNNէOK ~К5k4b׮]թS'Kl>}:߼ŋkƍ1c֭[+WTTT6lؠkjРA(kĈϏ¨+@)ty%%%k۫f͚z7$nZ 4psgرc-v,?n&|ԩH6lPΝշo_hkNC ֭[ӧO+''G;wl6]v:rm;z>օ /hׯիWq*3gd2}.;544TZj 4Hwy͛7kӦMj5-Z7nhݻ֭Ν;룏>R54|?GyD'OtYnw?'nEFF*<<\5RӦM5qDo^k׮-s}\vM5'eoSn,GyD<ʹ۷kȑnwܡ5khۃ)22R 6իWpB}8qBoG=6mhy ,Pt,k֬т l5gƍ0aQQQl3bYk֭[Ot̙z饗pBoqkw[zu 8PӦMSժUuIM8R8|K>}-[&:tHG)- *O<}ǒ3fh͚5Zj~gïق^+md2QFteykՒ].WRVg\kG`nψck뮻4i$eddĉ={V\gV=l%''kذa4i&O&Mڲe},__r97P޹MIIoQFf'h֬YjѢ&L'eoť+|¯ϫLVy^=7=Ycǎ8)@BCCfuҥ(`mݺU۷w)cER]vu )KRIvsCVe5-4?vh: cӶmڶm3gTʠUPtM7 7 IDAT5*f͚_~VBCC5ub,0}4xI&jӦ6lPE Wzu?^.]ZlYiDT}>PL C4"h E 0A`(&PMC4"h E 0A`(&PMC4"h E 0A`(&PMC4"h E 0A`(&PMC4. fJ8TXuիWKp"''GYYYJMMUrrrip2l6+((H\^^^VժUxeeevh:2 JSMILX"hL/"y|gBYEDd6KeߙPV4Q&1,@΄ 0A`(DдiS+44TUTQbbN>^5jЭު^z)<<\^^^Jiذa裏Ծ}{կ__?e~=uy[fY^^^t8;T-$Iيׁ~i^^^ѣZlTYFqqq^}yuڵHesw+..N۶mӄ Gϟ7dP-^!I7nбckϞ=ncJNN=S%P(6mj .ԙ3g,bcc~z=zTcǎ߮{fZӧ%I[־}m[;wVPPzm۶M>>>jܸz)ܹHn۶5j/B999JMM-ɓ'i֪T'N( @&I*~I mݦv'ɓ'KhJܺ%I6!ڙ3g-Iז7t^zrJ'++KJJJҡC}vr-E^o5t%%%)99X2NOfլYSϟWpp㕘hȺ"y74}t :T;v쐯zYPʨDլY3Iݻ].g 0;fu-Zl6ĉڲe222.o2ԵkWjJtq5mT+W,FJLLT%IIII.'sIcΣ?b_.(*˘cmMz,ɤog9ݝqN',&v;v5鎻F7pE {U#P UqN>[Ͻsͽ!&&ow 11L>/d„ L8N:Ş={Eqq1fVۺYd _} 4/=_ޣz~HOO'88ׯw^RRR,˒%K8uyyy:\w„ Lqq1{ƙ׋/2tPg0g_N||7|y~ȲeX`111osСG[oo{tH_@SZ!!!n=sLӟhdܹL:lʔ)$$$eV+DDDxtw}ynYOo>Ο?Ohh(~~=zCg; b8I,Xݻw~(** o<]Z&L`ȑl۶zihh,'Ofذa/j2m4{1֭[f#((,6l@MM YYY,\wyW:ܿ&q#99sB?y~ӟɾ}g޼yk|磌mFZZMFUU䥗^˜:u &SOg?0ׯ_ի?gy<??STTľ}>|8[o,vwL/h]p"##]OaXv,\@ϏcDzqFعs'#G| 2i F#/_[Nh42`L5n8uݥe48q"6mr'>7L?>>oΊ+HJJ"??9Bii)a"փ|g?KJJ SLüc9{l)**>wرGdeezjRRRaƍoۙV\\ӟ2eJ@;V+Vs1~xOLL >(EEE,_I:+M(Дŋy?~|^&Lx"22ŋیF#]`0 znܸkxꩧ|2OvԸq7n x1N< =qVxx8fY h4vxj(ת/qo޽{2o :y[NNNݔ㋊8vǏgιھd~gsm)m=}4~zKh[)Kwz-xnڮ Srڿ?<f]NȬYp87}0tG3F ?xRSSyv~i9s/vSO^Owi`h4v(f.""wgۿ֭#!!,8uȑ#Wk۷3a&O̴i(--ɓ <^{˗/i&vKNW;=-+>3T)f˗ߟ{s2`L& `޼yl۶mϠ~رc\`;vxzC[oɓ'歧L^Nϓ1n7mnrW@\\ܳ3I=p8Ξ='((L]]gΜᣏ>bǎ5XRSS9qM^tV\\ ĉ:u*)))PVV` ##&\"33ʈ477t;&L ;;d? ԩSILL… ƒKpp0Ǐ'++ɓ'Ʈ]A1m4bbbn\'%%2sU7锕ug`Сf.^qZĐń .EEEرcX,lݺţN8gz|`Z>|8SN% ,7t=͛]Ol y7l63rHFW_}իWO˗/fn:hr rrrd<477Kqq1r7_gV`֟b+}[Iil@sPih /uq#1ķ\ uuu:u}""""""^PRRl@DDDD^{4EDDDDDīhJpٙEDDD }gJIUDDD=}gJI΂HLW)Д>blY---X,_gCK 4ϪV)"""҅} n&gl6nܸApp0L& %"""Fccz2S)}bS;Y~BCgEDDDDDīhW)R)""""""^@SDDDDDDJxM*""""""U 4EDDDDDīhW:"n: """"wѨ!(Дp`2 $ Ʉ``0:{""""^fԄjf;Uh]nc2& 5mhl6ԄbfS 4Ok^@@/ܓ&nJ@S 300P_gGDDDħ aaa D"Kվ'SDDDDJ@@YM&Q)"""rPL&MhJp8i8H AAAv')Д>Ϗ@_gCDDD OSHߤ@S[DDDDg6ΆMhJ6Cq;J_@S?&Yھ3)ДFIHDDD=}gJ9C4EDDD<`0ԛ)}M*ү޽I&ݴ筷޺#yظq#ڵkyGH~DDDDDz#˾a4~?|;L4vX,>̝)eɦ&l6uuu>͓HoR)L2$%%Q^^Ύ;oh} /-سgihh`ڵ[zcСC=رcYp!F_?~<ݻ,FAaa!?;v,>(ȑ#NDDDDD\=r ?97ofѢE'?a/2qqq<3,_xV\!ݻ8qyfժU|ԩSkfC~_oB֮]ː!CWVXA||>> СC1gT!'Ov>ׯ_ `; 887n8{T.Wu"""""Mjkki{pp0\ &h"?\^yjkkX|;[yh0gwiwhJOVV۶m}={öGrQ֭[|@tt4%%%X,f̘-[py4ͮ믿JDDHy G4O=5W0@Ǿ΍H{4_{뭷Xp!?2dC '==΢E&00@uu5---{\ɓ'c2%557.MWu"""wA8fGrLV Ad28fB:G"Hv)^|E~444p1~ijjju9srJBBBr 5k/Lll,7n̙3wWi/`J"qdan -gI no3նmmiٯϰv;v_gEDD7=!~1 шѨ}QDDY@-`Z:tNˎv˴[o~mstrw<9#j""""#npP]""""IxspP]""""&J(R)""""""^@SDDDDDDJk,]+V7G?rYDDD ok׮%**Y)үM<͌3ܦ̂ Oy)..fڴi.c69|0._~%sqVxx8UUUYFA >B h!2ȳ3˜?_|#zo꠶3 4k/ NZL-8Ӏ˲B0[Գ):h=nSUU>}:555 i <f͚7L&筬… ̟?mZ*=Rm H 'f6jg -H<ּ5\(`iv8/259{j<ݤs/K~i_gKP),r౹b>[:pMbөkD3@\I3vfbˁ/hdmN-[tR4b"5Nnb.444`6 ..o񔔔0 ̠gi;lګYFFA1wF\2z?oK%W~(go˗y}%;FH;v䩧"..jeddd|'xD?Β%K Wim<ߥe-Fd$h6SȑMTY]`pu2_|E***|-;FCg_k%믿\l^ڹțo\?wΝ2ݲ26lprrrnZn^UVM{DDDh3(\n2[P V~h?r4&,#cY IDAT?Vv;ĄFƚoZkd|''o <ѣGMMM w隸Z#N2#Gb2x"{jL<#Fp)vu_t)/^$11RYYɮ]3 ]^[-G{>,9EEEOj*e򤎻*S{ҥK9y$Ov'm3`_ݻ1bD˓ztV+۷owsĉ 4-[݋o(Д{Vff&III|gXVOO<{gf-[ˆ#7oTVV0uTؼy3---dffvy-Z_|s p[PP,|A֬Yf#;; ֯_hd޼yL>$z*7762e ׯ3gtR;Ƨ~ C=ԩSٱc4W;wLPP۶mo…ܹ<޷RO+'׸2i{tWO򒑑QϱX,mrW]ߟٳgw9~x]DDD|G=d21avIyy9lݺ8qTWWsjjjuܸqWUUu|b2tMMMTTTPZZ]())bpBBBߟ1cưg, uuu8pÇ{.n رR, GTUUQUUE^^qqqntW_8}4'OwO5\z]./FI&sNʨܹs{R]˘f @pp0\tu/"""M'EDD`4;LbZ)))֞QFG@@fh7`0tx\7nܠe˖q%N>^٦gՊl&** O>o4bmۗYWAۺ4=/w_aݓr2yZǝ^Oڣ4%<<';磥/DII IIIyEDDh=d2a41,FKK f%Ke hm41 n;># Bjj*=W^uyY[MMM|wtF<4oqw{2y{]qhS.\ 33/dΟ?҈/iܓq8A bcc && rrrh:?>>s^zm۶a u:Td2y|lo4oz{jKGYWeFJ{슻TWWc06vDDDp}ŋoL""" 4#00jǜ9s%88l, W\bرc dĈE3g8ӻ<`` iii `Z]\ڙn'77iӦ1tPF#aaa{Ei0<C'j""'%''STT SDD.@SDD#GRPPl-P)""}Ndd$њmVDD.ɀDDϩⷿ!"""H=""""""U 4EDDDDDīhW)R)""""""^@SDDDDDDJxM*""""""U~΀HW***|E 4O0` """rW(++uDn""""""U 4EDDDDDīhW)R)""""""^@SDDDDDDJxM*""""""U 4EDDDDDīhW)R)""""""^@S 'O?Y~ӟ`0?j(<Ȅ xDDDDDIϟӧ>}:>Grr2ӧOrߊ+x~DDDDDzMf3f◿%V,奶ˀ2!!cX|/oR)^VVo>̙aڵkYx1عs'o6iii2e k׮eϞ=lܸ_|ۼ|'$$$4(կqeeeg֬Ycx8}4; 0ԟȭuDzӌ3hll9ĉ̙3;s8eΉ':t1_}'paycƍXg|8h65Xi;[GS ;vbXq͛&33f?N~~>Ǐgɒ%l޼rw\%""""rIDD?dV^}%P)""""%K0l0VZ`SIuVDDD[d W\F#8qyL||<?XVٷo&M"11Z:>C#((F 9qMϦƍcȐ!SVVƑ#Gl63aiiijȻڂUV̪Ux饗(//uDh2d2f a̙իWl477SXXLիq<#u)Ndd$qqqw^hLHH 44Z{Y- _ddd0jԨ^ѹg%O?%rG(4559ȯnܸj%!!ŋS\\ӧt5jwHӝ SO=a_@@sܒg@S^@SDDDpt|&{SS[la$$$0tPNEEEi2w\9p555<~R>a_]]C jB (go˗y}%;Fh |Wlڴ<bcc={+1LSZZJcc#Fcǯٶ^]] **Fjjj/NMM qqq4^d"z4EDDDqL:RV+Cpޏ3##Wri, N2d4vA)!!!;3gܴψ#X`/_&88̾}믿&:: R]]W_ SD=""""9Zt)'OӾJ`00sLFEcc#~tb "##`qٲe={#GbN;ӿYF_ԟ+[{쵴3m=;0zh x饗N eeeƛ-KAnnnP ؀N?Ӳ2ۿhv]lO=aԨQ0l0L&&OLDD_}t ºup8o>C:th1x2ŋ)++>ЯlX~=Fy1}t痨iӦ1d6m,G{233IJJ>j2}tx {=g]-\;wCUU̞=C]^HbccٰauuuL:ŋvZZZZ\? E_p9BCC۟2w bʔ)_ZfΜҥK9v~)=SNeǎ?((S?xYfMtܹfضmm]LUUUUUۧYRRbȑ#Sz;m߾bꜳ@9~WWصkGk 6;w:Tvmom=iGڎ{z]3Oک~+eϨGSÇcZl6P\\LJJ /_&22a omYPPF".."##m/<<n'46QQQ |I6ш?vV+%%%}miiŋ$%%QRRBRRn0Kfy.WqEEE,[K.qi0Swy[_7n8ݝ4kjjZ.n:vp8~:QQQn:uK{\]W=OBqq1ΝGa֭um[׻Vڱו̓vꮭwiED=ү9`^|śܹ9`2p=̒%Kֲxb ={N~a3 +dr fs p233/INN4;ƍ\6m}C !55zWe˖ۮV^n:G룉\ڶK&ӶXwnIj;okGNzDd=8JDnI@bb"~!o7xN||<8Lbbb "'' &,,t C 4\0mPZXχ|2w}9'Zl^mAfPP ΠAW^e۶mlذdBCCon{js۹m<(mbccqGMߓرcٷofrMO~ǽoԎW'oҾnۻewnF-{hJB]]MSg9s s!66O<, ;@m4H~~>f"**yl(Z l6ceڴi :HXX~%OʙLvv6+WgƥKڵk=:",,Opp03f`0PPP9'jppܝׯ_'==0"""ַn:KBBdfft~W׏ɕ222<;]۸k y摛Knn.eee̘1{+xy#QOvֹnT=eZv!"GCg9rs.^HFFwf̜9GyFΜ9CuuXwTVVo>2332e W\q~fŘL&k=Jٳ 6e˖q56mġChii!;;0, Ή6:mkpݻw3}t-Zh?أ><?0GǗQZZʌ37bݖ? M?|Jٷoseٲep9"""<>\G}E__J%Ў""tI'1W˴<mO"++ .kZ}:4 `6Obʕ~@O<*aD"󑛛%K 55&Lʳε'ĺu됝׽HIIT*EKKΣVݿ$ DSSw4|\=Ɵ7qoժUٳgqiHRDDD֣:nXN4 ,33{4$#66o6V+z{{]KNNdBCCØu裱Wk֬VŹsp=fj8$Jyyy8|d2z)ܹsĉgys-r Μ90jĶ\.G||< g.?L4i\KMMIJO>}}}R &&'ce$1D@޽[tUW;f¤Io;i4 wX:u*n߾̠ ٳ^;w`ѣGs-0#FضGEEJ%233hGL4i\¹sDɒdXh.|駸qㆰN||<.\ &xZr\vM(kܹ9s&T*PRR[իW1c ݻҥKBND ̘1* eKRdgg#55daL "%%2 5558ynb╟jCBףDR.c)b|r<ӧ C;˗;u'O֬YɄǏ;(//AAAػw/R)VZ\/ BNN}] dggcڵعsK=ţ ±cDŽm\s&'n²e%&&Î;˖-Caa! ͛z ;wO˽; &EEE8s :;;QWWB1묷6Kh4Daa!7b׮]>644ԧW\ӑ?@ BBB^޽ Dpa_Lr< zzzp 477h4FZO[>^]\͛7 ƍ­V+}"-- ֭CCC|K_BBB/~ ħ~Lo`@/n:dddx,؍˵[^'O͛7C%&&bӦM 楧㩧TʯTDDu5ł/={6RRRՊv1qD,\v}^RL&Btկ~=VZO>ޮÇ#33SXo8uOue׮]xgx뭷0{l}|~8p۶mswfW1~KRlٲ8~1}Uo ,DDDD7II&===CL&444{z{{rJ?FEEܹ &/Wmmm;w.:;;۶mF׿u?1^z%@hh(~7ѣGR9W^Euu5?wG}N',߽{7T*ՐnOFo|x؈믿/| 0Lx1||EOOy幋nn݊\|Goo/oⷿ-6o  >w ۷oG}}&"""Mzld2~m{ݻwo3fxgӟ7n{pQ 88__ tK"""3gΠ ըغu+݋|߿=zى_׮]CGG|ML8qqqP(شi^uܺu xݖ)oB|+O*lŋ>C/[S숈wI^~~>aZ؈={`߾}nh4Xz5̙P FGGCRC2e R)V`@mm-ʰw^>}g}Fwƞ={xb|_Ɵ'1i$|tgF#>Cۿf̘ &;:::PZZ:}#"""aYzٳ}{o~/gϢa^{ ۶mrܼynBOOv܉>l۶ hooݻqubx饗;wW_r`0#FFFׯ_ / |׿-޽{QVVm۶ym?яw^ܽ{GEll,0eUL}㗿%^yW^ǡCv}w1}W^z%?G@@JKKo}KxFY[˴<k:N>jeee 88M[a尛gu1y;[#M""""""+&DDDDDDWL4ȯh_1$""""""bIZF~~>lقQo~.'c]Ѵ`TTTʕ+m)""zrd2Gf&iB4EZxx8\vL2L*B.#00dC4ET*eIDDRsIR(ʱѸƮ4n-YWV;7jDEEΞ=$DFFb``ǏGss3T*? 0i$\{a D[[?ﻭ /*DEEA"uuu׿J̘1Oƍ7H܈h.cnD&['ODtt4?V`Rtvvb̙Xf v sb(,,XJիQXX^L,ZGu\.g}`صkDzى;wl6=>DDdc]NJL&cI4JhcbpM`03221ydcҥBbAGG֭[>,Պ/=Zx7bFMzl9%t~.yGcc#?ϵZZ^˲CDDDD\h@tt4BCC Cbb"08:\.Հ!x*Q;D.XV8qk׮hD{{;F#d2CVVqeTUUؼy380펧U!1ILϓs~ٖۦeNNC322*ł Rƺ $?t:R)9}Hje`0 4m{nXW`IDDD{J%& qqqظq#q5tttx,sĉHMMVBp(BQQQxg)Jaf:J4gL43Vo>}:0eL2GA[[2BBBrJܿΝ`SO=%-[ZZg9,Fll,d2 c۷oc۶mc]%hzzzpE|ᇨDFFpGnVL&Ccc#ZZZ J^:^jExx8z{{a0b`DGG eN0a#_I /6i'xG1hL&L21m322Ѐk׮h4 IRhZ.)]`̚5 ׯ_򾪪 Xz5n߾ J\ӧO݃VŚ5kz=d&cO*SNŌ3`ZQVVF͛7qm#)) j---v, 0B-\xHNNF򾬬 W\jŌ30qDNBCCT*BBBp)-0=Wu~lٲի=~,۾/T*XWc3/o&Oj^TNT:2=j5ʲt0pk`qM va7b;b]g鱐fL:2LI?~VUxf@Ӎu5FmP裏F3u#>:={sbʔ)?!f}zPpu+$$zX1ѤqO&aڴix/~񨩩j=4 t:߿?Uq'uF̓ط`< ´lbq'5=(O4U z(0Ѥq/>>===hiiAmm-MhJRdgg#55ovrLE!!!!!!§~7n\???555ǤIсbL< C}}=N8!<"ɰpB@&'O7???ՈV^GII֭[q"""i&l߾ݡn˗/O<>}:;@" ##3f̀JBcc#JJJqa8|uY]]$۷zk]uM;w.fΜ J&:( l޼nBiiò5kd2¼#** r[p98tА}JXpqUUUHHH|n qU omS磢j@II ZZZ狻c\… 1aܿUUU8s̐zwɓ'cj0 {=w୽]\W|VOw>b MRRRPUUƪU ..l6j*: b޽’%KK.СCu!'''N!(({T*ŪU+| BNN}] dggcڵعsO݅ߏ ;vL>|& x駱{n5k֠gΜF)PusT9rF111CJR]CLu-[0/11/_{jXr%$vӦMCYY}[hbcc =ʠP(v?ʲePXXyᩧΝ;˳sx:RԩSDHHs'rߠ 9li1L\.Gbb"nݺsd2 gFQQZ[[ErgW\A[[z=Ο? 8q---0p>Cgg':;;QQQh`̙3h4ΝCbb2a4qy{L Ēd7o ^GBP !!AXڵk(//GkkG|7R(**NCww7*++˃BpHݾ}rQQQ`ZCcOmΝ;J1 Axx Y<ʗ控SgǏGcc#!SRR\s!$$2 C[[˻C.sxO}"Z5Vl#گ.D"MR m&cRՐJ0Lhnnv&eOo P(<𑞞ɓ'ۻABB:πy6`6QUUDܽ{IIIu9Z+_ۛ;GLԄp=ӱv.ŵkׄbm3sȾo/ګ>늷kXr{g#m#DDMRRRR / YVTT$ nߕўr96oތ* 7nD_u=ܳgO#$'Ʉx3͢*xT*bq3g@nݺ,={IIIyzELĊ+p)$%%ҥK.loX,.?VO۹`Z#66iiiXn'<Ӄ0aٌZݻ>tDՊ7obʕq%[|VWW:n v錌D\\B! esotl 1c0KLL L&GD5]{sq]qeݺuQA0LqAD4n9AFFJJJPRR%K`Æ ~r>}YYYXp!ܹ#|O?Chh(F#Dbqi\0 Z%%%!JQWW>}psU_xqaƍdwZ[[|yuwŋ|rL8Q.wM|Ǒ#G|'ms2Ҩ3wZ>ƍ:u* p]|>:8͛7l2T*477c߾}B2sotl= JӦMâEP(сCp+ګ\ygaaaƒj#R.b  ?V˴<nի]h3P3DDDD3MF""""""+&DDDDDDWL4ȯh_\j0 Wr~)pWi4XVXVuU `XD=rP(hll|V" //WFzz:3diӦ!77Frr2$ t:aZq=?{ÍO>,\jϣ]]]êL&/7n`2ZU;2oL_T|$ $I4؏io{?oBƂ VG=ϫN{6==xaZ;dUV!66gϞӧ!J~$4iP[[;dYffjh Ʉ1xDD`1$zH|'dcA@. ɂ}bk7#}__233$111|Zely˗'L>mmmxw¹sD'bbS|90w\̜9* MMMիW1c ݻҥKBN1qTlB"C}/o[] ڎ]|\|ׯ_z *&NY& Ǐw8QQQ8xúbuV9rlڴ ۷o<\̵Ju[@BB222fӧ0Ѥq-//AAAػw/R)VZ\HNNƜ9spdggB1[ ((999xwa0kbΝq)TVV"$$O,$$$0LO?ݻwl6{,\RS=-[B ̛7O=v܉>tvv@rr2VZtttۯYEEE8s :;;QWW2b ±cdžlFfl6{O15HMMő#G`4R0Lx"233D3$$x7$LNNp ++a{o[l\Sw|pڑe#'n²e%&&Î;so˽;p}i7(,,Dww7rrrqFڵKtlh8,[ 3g шn;wXp IDAT"KRZZ]ĉhnnh Fd2֢mmmg2 CQQZ[[qQ( $$$x,O|?~ƩSӃ+W^`0 22ak׮X7FD"qi_<̗xJRdff:ݨr˗yPQQ1doqd={'NӾ ^ڧx"6#mGz Ŝ#ܾ}rQQQJV;++sOYu[H$\x0 8vV+Eǖw4i D"MyR Bx؈JlذGEwwȹ6& r---GAAjkkq5+3Z T0dBss3&L&4nٳca4/G(ϙ틐jᅬXaݺuhhhp}hD||:S|RҥKزe .]* ymD"qN|i=VoeHۑ;C#nBVVΞ=$ܼys:#=]ޖ3Hڍ}l["">vq`0m? Ypi,]Ti#fŔ'FCC;B$%%!$$d:zVV1aDGGbb2ŵOv=ޖ4ξ\c}m7AAA8qü(^Ė|D-ł2,ZSLT*Ehh|D"UPVV2t:,^Xؾ  \.Z71c0PGLL L&g QQQ˗#22* yyy0sΈK=8"++ UUU0P*5k Q{{/^N/˘5k&NFTg\€DӾx/EUU.]p961])KKK{roqׅ}.hCC1qoޛf"//wuٵ[LPjX!t{[>8z݄bܹJŋ!HP]]5'O͛yOLLĦM(KOOSO=_,k~)PF̓\.ŋ(((@ee%q L:{.>CyT*1m4,Z 8tbKJJC*|cK=pM,[ * طof3:::pideea…sW[,/ٳXVLF/_'SBBB|:ǏG^^6nL{k^8q[JJJdlذ~:z\lɱ[w|iu=b͛7GVLN>+Ww=b7ùnt:ZZZxbj466b߾}X,:bT*qm0JBXXRCDDa'2m?Oj7e[n{o9M8 8' =x箅4:\$=XرcǨ V<ׁю-уVQVV _+Ӵnv_[yVC.5=ĒP__Dh0DD&C,%%Ex%"=L4RZ#ƖhtMzM""""͇$""""""&DDDDDDWL4ȯh_1$""""""bIDDDDDD~D&M""""""򫀱+mmmc]"""""&&P8qXW葠ƺ DC,M""""""+&DDDDDDWL4ȯh_1$""""""bIDDDDDD~D&M""""""+&DDDDDDWL4ȯh_1Ѥq^Cii)JKKq98p?>U]vaÆ ^}Ξ=}?)M&j={`˖-lozw H\.OMMEii)͛&""""1Ѥqo߾}XbV^HKKO~򓱮Ck'? :;;k.Z'Oč7F^IIIul4[""""h3L\|XWc\|ضmΝ;.wzuuua˖-8u8̝;Fq>|;dB__@._GW_EPP]saǎ(..ƛo4|K_;#bp+Jeɓ'@9i˖-~\oطoN,^(..o~L2z?1lV/^,dժUx7PTT mv=p~ } ~ڵ >,~ߣofϞ-,?|0233ӧOkL4ۻสVk%y$G/I%c8P@q{$2$x2a 0 m)ؙ,q@nYۖdau}ջՋ*UwsϽ-s&Izi&J}Q}ݧb=H=.{W---othӣ+O>]vG?~pեu]1LvԨQ?z뭐;//O+W?;SSO=%R?&޲e7yuۿ$)++K~}YQ okkSO=CE$IVҩStImܸ{WO?jkku?4w\ٳGŽ|AAƍ>H[o[f4uTw}RRRvZ/Q]]|IIҍ7o߃ٿ`;wNyyy6l;CZk>}&O,I{q~yC9Tkk֬Y#Fh̘1! 5Hzo{9M>]ڶmzzz$I7d6+tJ}A.++2c$IjiiqO̔$)%%力tuu;vo߮;wj޼y5|޽t7kQNNJJJ<~=ӣkر= ƨQaXKl69eʔuۺO[n=~{׳gϪ+a菠gӣ}iΝOB 6\aFd6eX2===B7oެ'xBo`[NҎ;/,pm6[ڿTi͚5!k?Rkwc=;v2o_SM )z75w\޽[ܹsqƈlԩSkF}ws)Sޓ$ݻW4qD}')S(//O/'9??_eee&ISN%Rw=̙3OCZ~^ztR}^~wuuiرW3@™pEay:NTW)ռIk41>}ZoA)))믿~X3f̐bQaaL6:;;a=:ujmmu-á[ꗿvҢlu]u_wyYwZlZ >\?OdXsNâ"L/%%Eִi\K.O?}Em0|@W^ʕ+uI#q\ vm=z(@-s}R^!SyerNOy"euo 9nu]z7j*]tI> Ң_]{>~a=3JII'|Gy䊠hҥzgӎ?^xAڳg;@9rDOSkZr.k׮O<Ed-YD6Mǎ_|aA껙Rޮ}]f??iݺu:s6oެXs?z9`»29ic "=,L{N3{L3>[ S 9-Db(;.d" ӡגbmccfCUUU KK5:%9 G1e/ _ 8fǺ  Lƺ LOh+ j"h" (&Znn-[_ѿ'?`hx嗵zjǺ*@L4f̘Ci͚5:uT@݊}5<+2.[MN3Sw>V~d&55USLQEEaCAI-??_$py5_U*+ƺ*QL*++K/#GƺJ@L4f3 V=CرcUQQAĐÃ͛B{jjj{\R=={L֭[U__L-[L$iȑZh֭['I3fΝt577k֭xϺ<ѣe2cDk֬QUU/^J^ZܹsoY6mҫ:͞=:VU}^{5ٳG . Xְa֦UV2qk4rN*/Ӭss4{B$\Y2\W/ïes|Cw[N/:5gbNj.M?gl#M uhbHq8jkk$}W3g:::ܟqUW)++K ,.X,*I}/`YNSiwA=v 4M5*aU٤'UCHn?ҥ͇zywnI:{zry)zB*KKvx~"1l.ACnWxQ]]?]),2ċNz}:pGyy\u}w;7WghsmVWW}җEZ,}{Leɠ; -jUQQ$H99kذa?~$d2j|=ݮ~}Wn^kC^n>v-W,(ϢգS덭ZRC+>ݽǏף>* xt:m6}~Sd﫼\sNJhҥɹ/ ќ;o׿okם/6=e6Ii޾a%iJTYۭ/_fxd >c]-`0tIuXn륗^r+\]]j666jWVV{JREEEFY;%]qj՗2[xy 6n__)YP[Ux0|ϝ=w !G`H-yzl9ҳnI*ʳk25~TN\ҪKlqZImj`םeiRxC.`3x91zo1O1攗>]E489ĺ*$$mĺ ŴΈf]}ժC=|4566l6l)檪I%%^N#2ޗ l"ҥK:|L ^q&!?c] .У (& "h$Gok8h+ jɤDk8h+ jITW*$ &@2yOju-_[M cƌ#<ŋ]bQJJh gda24|?}ݧ#FĺJ1|r};߉u5bX#(777U޾tbeٲe6mZCsr[SճMj/cșGqpYz2q0X,M0AѣVScc.^ԟXW!x%!{lkޓP HzRCC; & 9s/F*//׌3$I'Nԁk.͞=[ƍSvvΟ?O?TG$رC+V|SNI two-[GT#GTkkvءJӦMӰat)m۶M]]]R_9s&M$ŢGj׮]l2kkkUZZQF];wT]]$… o~StWYe2T^^S*33Suuuڹs:::߷oLJuIwo\{>}233u+k^w\[lK|H|}?u|/#v/f֭[uwBO ;6n8+++Kڱcڼ;Ss_YkӦMpY2Mg+2i$HjkkuM7y>[oUwVuuoUUU)5506mܸQ8qn&544:QFFfΜu7o-[kӦM[nEfҶm$IWFF֭['٬nIsю;eΚ5Ko:::t 7VZp۷Gڲe{_ql6̙;Sŋkn 'O|N7_;.`x*))ц ۫믿^yyy -mk֬Y3f}h[ᜯ/)g;e$ۮZ-dy &**//OZ~.\Yfiɒ%Zzz{?0y tN+~y0Iaj_KN8!Ţ1c[6;;[EǎӥKܬjnnV{{ݫ]Pեm۶r;IDATAڷo$>S[[t!IRSS5}t}ԅ kʬWggݫ,8bԤvm޼Y7n{/TSS?Zlw]m߾]pႪe 6K獿6NIIѷ-w7?۲X, tz{ N-#%/w(H݉'d6ggg+??_ǎ8L&>sթC[lĉo0 TVƏ/ͦVYVIR]]&LoHVKKN:˗رc:x{H/AImҤIԃ>op8ܟN}]hʔ)[timܸkVUK.UMM>?^K,d !.]$]6;4|X,f+=vzҤ#cjcWx -"p H/HaKijxڽ{ʴ~in:9 ԞkW EJKKSii֮]7_~YC^;}l٢׫Ly@Tsszzz4j(\Q:Y0ϿuWGGzzzY V0u]N=͵naa#jvL&xݾycj#_禧`ϿHlK<|Dplz說zkӧOjD#Gԉ' ϫ~=zq(=)~yV4Hb&LЅ  rSoP\\,9UTTYVuvv*--Mַ>uGLooܴiӔ\x?va 4{l}ߐlVNNNHה{ ===:t.\BeffjǠQ6VMM,X|5iV@mD6Ҝ9sjHnK<|h}?Cc(mM$N+-ZHGuFs^kUqq2335w\L&J}c j`_F}3} Y$Y:ڤI72:z˵sN4M0AgVjjZ[[i&*Gرc|r9sF6lG}믿^3gԉ'wu΢E|ruttZAa>SjQggcΝ3gnVfΗ3:sW}תu5\q`ΫF544hܹU]]~m.\#Fhƍ!_s27}`24l0]p!$h#҂)44k˫・/L{攗)Ė: 233b UTTD?=/'77WUUU7H:/.{u7e䱌 {_"n9 В 8^\HCgC&ːZ )??_:}4k,GqJ/b E$iii1coV.\З_~ĺZHPG^}}֭[j H/Kk4"(P<̈́j83q)hFqltY%Qf"!Op5!!')3OPucIe!hr &d4&?Is$!Q1hz; y:%d2٣W=#{8}d`ŵdrֻ@:f\p8XUDKsss lpaLOf?Dht Urަ; [`dTMЌo#FuBcccf$Ueoe_y&@^X z~f%lV5̢ 0*ͶWRoߤ`#h:|:ަMdZԴ/hzLA3RgٳbPE.--MgϞ=7t8L6R9RMŕ5{а&##nXŢ {CCI#o24=nvni޳gϞuff"]٬Luvvٳ'=s<$36ѝML`\dXsrsΝ5jv΄? tt*+++UH/^d4Ч b,ߕ&vcS_]ָсMѸ^ifu466V>tvv\i}y f|HKKSVV+z45hOՃ9챌3d=>[h`FW95,egش{c>k$=\C@H,& \n0P{4.CّڇVЌDpVR=o k8wqZ [||4@ M6x ꯗ_ofD%ƺGc1p: ={4a2}]8{ :e y[7Q%n`0Ch}ch@o3P+o/`*@zsأ z5{=3m/B=P)Upz3Y>d"իæ A2u7 #lb`ݸ68*J :Z`2N$] g{ޖ \&P D*djoɠo3@ 4s9y91 =nc\Ɠh~fX Vt tǗr-&=@&; 5`u,? Hޖ 64fQ \N!S 4 >{@0@F:d΀ 5b6>^QH 6\G 4!fP {>_`4LՌƴHI@"B흌ĴP4h!E:n`{ MV/@׋x Pk(߼xi+k^z1^Sv vu %2I2 $PXB(&CY/Єoh 'X[H|ց̸ 6 1 74iB8X #FJ mxJsTB)'@thT8M_Fz{/ԠOC\2d*P<NՐ.x$ D@!S YDk 'A0!B4\ Vm  2a*VuO6X .}~P.WdH萩$ hɶ?.̒u$ .C! }X.\zJ!l(+e(ǐFh2$å'o @|0>H~I?U>P+IENDB`extension-manager-0.5.0/data/screenshot-browse.png000066400000000000000000001717701457631363100222610ustar00rootroot00000000000000PNG  IHDR>sBIT|dtEXtSoftwaregnome-screenshot>&tEXtCreation Timemi 13 mar 2024 21:28:00 IDATxwx;B IGr쨠( *zE#(EP AE JЉJM$n&\^ٝy$w2(F (2 a1 Wv(>|U@(4ҴR"p dT4z|OCYTCSnIv'/槻˻3/7ȅ͢201Pev'n.uڌ57zr[Jw)kf E)<%dz0\9*mQ:O{t3X͢<)KnCIsۢt OBe=q6aiȐnt'}NœIsXwg E!4wȴ*pf٢p#7Uk{}8KL,쀔!ӓ_}6c=rϨnLOg~r42]LO<UYgaѓI4p۹ i@nJgAQ,QaS~L h﹗&(r-áhU3b6zkȴ0EXu}%1tIWmӰY*FL{E-(>> *dff>R+#33bFFK.m_`7x㘤ԬЙ0{̴ٔEl^mIR5sl4Wv{ɴ2},j1'LPgRLGXrrO?7x㨤$ ;5}9Mvj4e/|{^S]G5٬~lۆK6!GR`lllKqȑw7n,+lf؄Ml_It4@\LMW~zǢl3g Tk7rW>Wҍh8mo: ΂XA^3AUmv,[jXfzK A`J*CRM,I&ʋ|t廉y͔IK׶1Opqv}FmL :-[v/rf^ }n:kTYۄo/;5^_URRRRR^EA.* @]%Prrrʽ-E?͌[d)1(Pˏ\{Zƶzދ$d"##C/_֍7Xzznܸ˗/+##Íwʔ)ދ̪֗-72oEhnwUe˚Oۚ?]P^t5f k׮v1@Y&&xʍhW\rjРvN:ˋ5p%11Q~e2U8$ʍ"+?>]g{HG#6Y>OzOMMݖ}B'hɒ%zGvqJ .64f__F|/OiRb.&ӑlGK")=aȔdydZJeeZ6lN }{W}19*P묯&;_}p. YBB^z%_T*W޽{T޽UreUTIG/gvH0,d*f3#^ţ[+hy{e#wsU)Mgs{gmN NZZz'ta\Ry.Wrr$ooٵkW~Sk׮Ո#4x` <8W( 2335f]|Y-Zѣ5h =CC=+WjΜ93f٣c?vٌvذa7 ԤI 0@5j(=PEGG}۶Oü4uΐܾ=%HdOj\ڢ4]quLGqg9(2~ivY~7o\3g,Y;v~gĨ~Vb{Q^$I{ZG1??|6lؠΝ;={*--M;vƍu!͛7J[-%%%#ѺIlCHFq ,bQr(֮]+Izt}i͚5ھ}|M2ƍS6mtkŊ:u֭[vׯʖ-$WΝӹsTJ|/C~L憫ywI&zU|yIիW5fZjua` R <еkWq 땚={jȐ!e6mڤ9sرc*[{i„ %I6oެ˗/k֬YڶmΟ?0uMC[JJJӵqF]~]7|^yUZUjGiӦM 4I(>,Ijժ$ Z&44TW\$l} TXX|||TR%={CRVZ*UhҤI2LZh֮]ϫf͚߿Zn-Izu!}jڴRSSէOi̙еk裏iӦ8q~7-X@NRPPjժ#G*88Xϵm6ݸqCM6ճ>K W]M"##~ >\ǏF8լY3OOO,6,:&|;UZU5jΝ;5{l5nX۷WBB|MgϞJIIo4;wnIM6vj֬vܩ _CuL#GԶmԱcG-[V?s[6nܨ (""B6lcTP]&I0`e˖XvƌW^u{Q@@/^x :4GZF խ[W4m4XBQQQjٲnݪѣGevt!۷OM6޽{u Iݻk޽T۶mu9*[^ŋ ej׮n:ԩSi %W;Vo?ÇKǎS*U4f̘IΝ;5;vPݵgIR۶mu)iӦ4hյuQرCz~m)ƍի_Ei0 x;SbEM06%r7n˖ ooR^, ՠ/ΤiŹNhh$IM4lJRÆ u;ȑ#jwyG={OhiY_/Ժu믿jڵ5k7nlwz#G***JweQ[kf5ZjfyHڵmۦ)Shʔ)֭Zn^Iҥ c=+V(66j ɓ%bZ6::Z|;vL йsk.m޼Y'NЃ>(e3fhٲeڼy6lؠ7?6:o?oUhEWQ i?Çɓ>Nқo &o\rUtKO] 0Htt:vO?۶mƍWbŊztR_&\L-kO%''nSV*IJOOZQQQ֡CHORV_:/^:udnܢE -^X!!!ZhVZE)$$D/VͥZЎ;j{ٵ̮%lJMM$رCSyvIbbb-Z͙3?3[ 4x`}zG={(22RފShhjԨa~d׾3n?2j(sȜ0a&L5kԩS5jT֍QIM%Raذaիk}6~[ZRٲeMXի'I_~G}GСʕ+KY e7Mmihho͘1CGoSO;u 3FS-g 8PQQQ_ '///9R/٣{No4p@}7 Գ> .(,,LFhp/R~~~r劶o.IZFGj׮֭[kǎzU^=mݺ78[&MT\9>|X7|u*..Nj֬wܸqdn[vmUPAs~ڵ.^D1"G@ittظ8խ[Wcƌ1^N0AF27w|Vk8KBR3/Ƞp^Z7nPDD^ysU^tamڴI}:u[oU˵j*uY5kִjkZls~WTreZJ_|jԨƍ+33S^^^z5~xܹSzs rS\EDD裏>رca-ZEY-נA9ݵdIRppjԨvĈ3g~7m߾] 6V۶m?o{θ8z8+,,Lk׮Ubb*Wg}g}V+VڵkxbUVM 40_4P@@ηw̰0}'nW{^r Ӗ?CRSSNqp駟֟i~m!lAޢE \ ]p@ 6hݺu:|\˫Aڵ:vH+V,"VQ ֑b:-隤 I6?ML;?൲bm-VZ4WA'9A` (M?c:<"hfZNWAS6MP"(88ذ3RФC)SƐaSTd2UQ (2@pbu@WL)11Ds\(Y8G!!! RJJҔ!cx{{G~~~ (II&Uzzza J6D+n}4(tܨ1x(00W] ({Ф'P6K___v1R:|B >>> URRRRRYL* L0A< $`71MCĠYGgPꔸ S&4"h E 0A`(&PMC4"h E 0A`(&PMC4"h E 0A`(&PMC4"h E 0A`(&PMC4"h E 0A`(&PMC4"h Eʷ (>V^wyjZLLׯo6mۦNΝ;*UEӧ ɤSjʕU=4x. DZZ{ڵKgΜѩSd2TbEUXQ-ZPN԰a.jg24n8}wVO8'N(**YXB .45kի.]jyC;}g:|y7nЉ'hΜ90a:uT(,)!R۶m <({1mM(`Ƿ~߭ee*ɒ4}CBBTթSPVT3FM4Ѱa LF\riUT)Cĉ^K.2tqqqqմQF{ lEŁg~]R޽{k͚5:q$Az X<"hE)==j#<_*URrr?~\vҽ[he-)=j:88Xݻw7.SL! !44T_|8 ooo5jH>>>],@4^륗^[jU5nܘi+WX(y] `d2YNMMĉ5x`UXѣuٳG+WT\\;r)**J۷WϞ=vƱ_t;wNgϞUٲeUzuEEEo߾>[֭/^^NRHHy 0 Zx=Ǐŋ WjԮ];Kv199Y~'ߪX6lg}VիWwz|L ~E~G}gٳgpB:{233UvmEEE{խj1󛚚AY5}zK<'|["""y޶mnZSLu+**J/իuI/_^ 6Ԑ!CTn]eZl;W۶m IDATw˜)Su9k9/}4  VӖ/_oV7tڴim[n%)11QSNղe˔i~ ڲeV\[gyFwαd]xQVX}f޽}v󴔔 y)&&F)))VOHHPBBۧ޽{;ΐ!C^>}ZO͛5ydr-N驌 }嗚={߿_׊+t]wW_Ur˝cd_cǎ~'ܹʖ-cZm788XƍԩS=>Fl͚5K :|yZRRuV?&IFҚ5krҥKt钎=*___B缨t!@)bff[jĉӧkVO>>l7/|]?I?#lҰ2f3L=z@k̘19-[_tpiD"55Uӧ#e/_ܪ$:tHuqp΍'(-`_~$9rtwޚ4iurr;CW||sg͚5 RPPa!3[$M>]/V:u8 0@7t۹յkW!IKy-_^^ZǏWFTn]UXQ)))s,nS>OP4Ưݻ#OPG,?nY֝wiwз~[?>s񊍍5~7WwlF󱱱JHH0ly{Oڵs\HH^{5)7… mUcݱcG=9FMJJom5(M֭M7m%$$ĉy*_^h.+_&O2 >@i@&X Ӝ9skj:{tUTIժUSdd~aEEE]OPP^uWK,ѱcti={V WݺuղeKUZMj3g߯sΩrj޼ dCVZUSLі-[O?ɓ:uL&*W Vʕ f^U\Y~6nܨ_~EǏɓ':u~ݻ ~p]vU̙3ͷҐ_|Q۷W_}Ǐ5kʕ+.駟j֭ڹsΟ?K.)%%E*URDDtݻ+00Уu9}YӼ->g~cgHjj6@tMRtL63-Ce1-4玸[h: 0A`(&PMC4"h E 0A`(&PMC4"h E 0A`(&PMC4=Z9=HMMUrrrӕA+2%--M:sLyEXɓַo_}lc߾}52L4i.[G5tۿ^~e=ڵ{1}JLL6wM.\Yfi9;o< :uM7T ۂ]Svܩ [ʕ3d5j/ ..N7oVrk޼yvDZZ^|E5lP&MRhhΟ?]v)88حcd|%&!B+ @]\yg 5uI5lP+V4t˖-S\\bbbo^Z5njٞ={jڲen6\d._yzj۶ iӦw1/yNҮ]c~N8p@Na.<\{շ~[Z[oPwwپ^Sƍ˗KVZ:u(&&&4w\KV!ӑ*Ugĉ_:}]`_CիW^yE!!!|P+VЮ]t-ѣ>ŋ,#JMMUBBWp9g^y &ࡴ4%%%Y=222/_O?T?.]MꭷRZZA;͛K&Ox͙3GW||NjQFSNOռysy~~~QƏ ӻᆱ'N8ݗ 9R 4SO=,׿yfJ6lPnԱcGy;w$_޼Ν;UzuU^]fҚ5kkܹӰaÔtM[jĉ6mcv%ڵkz7tׄ ԥK|gao$ւ t]w?^=,Ybum裏Vy  -ZHg^z޽{Yg-Wm}'ڶm&NO>D/_l[uƌzdժUK ҩS4n8͝;WgΜѴi:w9^=Wn{Me{7͛rdvΝ; :W[?4{l_ .qvr-̴]-S{1fϟ]ωlM4Qݺu5tPܹs9q{ኳ'.]]Z=֮]k#FI& O</ԩSvw }zWʕ+駟 h衇RVݺuUzu 0@UVUll}4i5j(rm)))ɼK.СuuIl٢g}V/_6 }vo^iiiZpn.;C7nhƍ955U/ֈ#T~}ըQC#Fpܹ]I:wum)$$Du59u眹s>l/##CհaCUTIwy?aaazմiSl#Fh֬YڼyV\~ܜ3%K8m˓6nXzǥ5kVZ޽xεξ{"尔,Κ5j{=1bk"K R=*W\Az}СC {ZO[>'>S޽W_G=z9b^ァׇ;}}gV={nHLMMs4c ?kpBews"[PP>}hӦM/OjΜ9_ "h,μyT|\#))IO=nv u|}}եKuQ}ѯjot( tԕ+W4l0թSGAAA:rΞ==UVջᆱ盷NYn69sFǏݻFbرvڥ7o^O?6mW5jԐ$޽^ɤnݺm}oXfzF3gjÆ :㔛󡬑/c$w'tR=̡7׬[[Vږ+?jc][Q[ԢE\7UL>}.^h5W^/rԪL&͚5K< aaa޽~'ϣxG+Vtkh~= "h7PBjjRvڥ%%%WԩS}veddٳ:p 7ʕ+_0L۶mO?N>VYձcGM4I7|0VfϞm[j߾__&LPll.]?Paaaj۶ .hʔ)nkO{UXBϟWrrvڥ@/_q(_t颉'ĉJLLԦM\6uUyM&}]OM7du\f[[V֛oiα݇rŨcqM64h_Uk׮57۷'::ZڵQٯ_?멧ҦMtڵK/^'|:ӧVZNľ}4ydm߾]:ufϞowy|ܹ>ʗ/x?l_{RvVĸUnCYCK.ҥKzVD:s=h˖-ӧZl>@T@@&Og*<<\sWRdd 3gO?Uv-oڷo|M͚5˭tMoսuQ-7o׮yګSjJOOW6mGlJꫯ꣏>ҫrʩ{\kw{5]V|nܸH&XΎS^ȑ#5yd :T_ի[8+ }J^uGwyZje5j[&I\ն,;CreuٱvFny֗c &o?YfWzWt]w9}/[ZM Ԝ9sgi̙:uj׮mꩧr$|V8qωrIY#={VjԨ>EFF܎\\ԧO?^ǎsr=~}^.[NfȞ:s_!@vIWV*67rŋ޽֯_v’4;?Z5Im~fJ2<ϴx.זY̗ŴL;l;~6h: cׯWV(>իʠUwM_Եk.`'NhÆ ~N8iӦ/EIiw #O֑#GԱc. `k׮iܹzUre=CѣGa@}> @4"h n IDATE 0A`(&PMC4"h E 0A`(&PMC4"h E 0A`(&PMC4"h E 0A`(&PMC4"h [\IJJRJJ (h.]RxxxaN* @])& ]v %==]JIIQHH||| H]4EE/==]׮]+b4Q$%%%2HOOWRRRa")%%P EAE EA`(&PM&J'O~Ӊ'e*22RmڴQZ x@BDf2?jVӯ^{j޽j۶ny{S&秎;y*W\{jƍߔkիWwߩ_~չsԥK[*))I~{L_f$I*W5j&M+O֭[_L2;ۗ%K^zTlWVXXڴiٳg{UժU Y7wÆ 3fHRHHԩ~YfngϞ*S|,)@DuIs8pjԨaΝ;nݺ;wo߮f͚fG1ȑ#jڴimk׮]zڨQ#iF:}l٢4r-yC^zKyZ}TŊ^KTrrL&ʕ+gغkϞ=:pL.BD[B[e;vh2-ըQC:t$ر@xUXQiii:wA)7|||ﯠ 5h@-[Ծ}+WRJ R```4enݺkS|U .\r*[!䥗^ȑ#`r-JMMՖ-[ X 5(?.Ij޼7okךwdҎ;tQvڊw)33SQQQ:y`W\QٲeuUIrf uUիW$]pA}|IIҩS RTTڴi={h׮]GQFj߾cdYl7oÇٳ;tQ|>z\z5V^ԱD& YzrmmmN}ittt' BnnnYnn.h"T*K#<  `?N|7={6ӦMht8t֖^V?g&33HIINCdd$j5:::0o<8Gi]pHKKFAMM 4eGee%ӡR/+W\.GGGΞ=˗8r}YDDDHcp2)""ʐR yyyxj֭[{Gaa!Ϝ9Nd/bbb0qD\x| T*֭['_#44pكmۆ 22gFYYZmb8: 6dp@,V455!((,#Xj4 99G14L|2.]`k8oqqS,d+(111} gϞzL8nϟǣ>* 's:f},Y"4ݻ;v,q#$$ Ư\nY "\+R={ӧOǯk 'NZcswA^^֯_ׯ֭[Xt)|||k.)7obÆ h J}ŋ۷oۥPgf[8 6dp@X&ֽd.^tM㌦&/B&"FcǷ@nVt @xx8> !!~ {20e$&&}g9JF@n?T*FiRZ̙#ݓ_|躕[<#~tSŋhhh3g@}.]$o]/б|!~:A@rrr ?eիV{ݵA& 7 4iJIIa$08y$d2f͚T^@˔Q!L L7oDQQDDD`ѢENٳgCPՓ׺QZa@[b{]rJw_C"2ЦMPUU<$''K'%%G?Q Ig7o.\<9s!!!HLLDMM ^{5?)ƌUVͷ-9 +oβ[M4\#bbb0k,FܹYYYlF}}=h4B^k* Nof@Mcc4T*U9tZ Ǽy|rw?T*juX_GiAEܺu4r]n޼)mEov-s ֮] A0fr QQQz70g衇T*B̛72 /_Fgg'fΜ$egX>{]_v:[g\R 0dpMy\=zG_&mmmعs'yMS.cڴi8s |||^v=7 $$ӦMJB||CСCxG裏/+4ܹsz//kkkcʕ/=2lr_ $җsqqq2e ;?QVVիW#11a& w 4iHx1uT9sFjEJJ sN9lP(8}4Z[[NG Q1$sAvv6:///iL񎔔իP*:u*bbb}f±c'qqq%ׯ_Gnn. t:ӥǣ| ñx>׹quZsEvv6 `CR9U9s̙3o "##裏9DDL&?_صkϟ-[`ԨQ8z(>cDDD >>^^m_"99ٳN:< < ̙3(**S?.qDEEI䍈տΤ'slMneoY,+l6~!gAvmgѬCxx86omzٳ6lDD4d!ѽVgh``y6ˢ2֭_mbl{1N=4"GdddV ;wߟA&H:K#6m4(i766 hooGnnc 7 4\`0ܹs̄q};[DDDDDn@BBBO;DDDDDhK1$""""""bI/X&"""<MH^^^g&T 4#i4~CGDDDdRFqw6z@<M"""(J;DxX hooGgg'L&DDDDVJ^^^$@#Lny v߼f -ODDDDfvj'`Iқi6gFQ,z3$@3TWWc̙կ~@ҴW'DDD,3s&r'ޣI#^ss3^}U,[ ěo Hߣ vž={PUUz[:͛o6mZЀ/?я駟b/~T}vg?g}]~>7n_WNaI#ޭ[`2 !11ֆ> *͛7#++[˗/~ۻy /~ L2AAAxqTVV:HLLDPP֬Yظq#bbbe˖N^9¡4;Xr%RSSO %%P^^AqFidB[[[4N:|ji9""z{*h8J^9@ & ''-ܹsm1cf̘5k駟F]]ájq1,[{gNBBB\""|sZqu&|ϝT Ƈ(ŚٜhM^x|رc*++QYYm۶>,5_|:ttt ??P*Xnz-9sf|=+`Qꄈ<_U ޫ[Mr8L0E\i[MX^LѰM֦L~۷oǾ}hpc 33[nEkk+bccVgrÆ  ((֭ FNȳi=4;M#^o(866ۗeeݲYVڼ \9(l6d2ѐ;oe4;C ubmee%T*P( ɤMϠVgh``y6ˢ2֭_mbl{:KDDD4ww aIDDD4CgM"""a8uE4xhK1$""""""bIDDDDDD.@&ݻ;wDyy/KDDD42lܸk׮E}}BV 4iX;s &M$""^AqEo ^rXǬ"+a{ш˗/c˖- 6iDcIZ}}=r9;jI 2_ G\YT1~x`ӦM}DMÚ()Q?b?~<ʰyf4")ݝrqbϞ=ի׿ǏGMM `Μ9(..Fmm- -Z0zݻ/֭[8rVZى`<5/[nń PSSApBMCBB._TL8QO^7h7j ;7KǤN ~B[MG(QBW@/ 8]ҁZPT&1Bgf`Zi?ho1Q4 F#Y CSSJKK rL{c/-"""Of>A/u mfO`$F{M#"@W}aj x=Ѐ^z %%%GwgaILt|P]]-MR|ra޽?2@RR>Ct[[-f% OnŮe1^SWO?~NJS%+DG6P63ۮ{i2X;vwa2KŏciYP`˖-Һ76m$'$$ !!tCBBrʻ"55e/0-۟!""dqU?O"m ~ْG\5S>ÉkԵ|X.OB%EwVMu l]-w 7;-L"h @}œX/DxpNt>oWzD(Tu׺aI=W;p&=emrm/~˺eYay3 9,'(һ(00LhnnFttGDD4$YRr߈tizk֬+W۷#((ȥP*P(&  IDAT a#Z ] ,V˰Z~j?=l]ˆGExςL"O{4\wuw<{4ȥhK1$""""""bIDDD4eY+@h¹ź"< 4D0dM"""adl_L W;ob kf;DM־+;v잜l6OsCAAAk3L0L.=;,xqwgcضݻwٳzΞ]`ӎ*AѰƁD#Hnn.裏;+.q%TVVb͚5dvw<ָq2nh( T !؝ӊ#(3hݝ-R)dDz=DM" wg=پ -h҈%"pezDDD -- 08uJKK ???`ĉ lBE;s!;;w܁}y& QWW,X@ӧO& qqq7oT Cnn.ڵk{"""r4bxǡRp |'Xn t:.] R">|aaa :u XlT*rrrz:;;qny-))iTDDD> F$ٌ|,\FNŋa0PZZ 6m0sLHOOѣk A0vXxyy!88~V4Cb̙hll`@AAϟV ___̙3%%%._ ==j1c %% ĤIPUUtT_Θ4iNѣGCT:uZW&gm=KQ^A@nn..\"!!ug꽧|;FQ}uƍ'"""`&HMMM(* ᨯz Q]]455IPMMMEd(ڵ ƍɓJhDCCDQć~(/ KÕ ~?meQԗ#֝}-G_+ul[&9(/0Nֻm>J%ƍR111PN܏&H& (BnABRh?L0gφ>#tԈQ~d~7nؿ? sϹeF(́Wo]'kܗhtvvvi?n1aH= }, ҈Z5 hooGjj*Vqmvya>|GEEaѢExQRR"e?jKʚf;f7+TzGmDOerE=Q^t:Ton_X477UUUv'""""@=Ʉn/JI&!##ʂVŘ1cja0pEtttڵk@qPHLLDFFjjjֆ'Ox\tIƍPTN^r̘1'ODEEA@KKKhnnuݚ!8_9Js ZmzBDD4;mSS9"++/GyF\\=^KK[m_w˽YYYz[sY;16lqI߿fcƌ+{RSSӧOc̘1FZZ;?ޘ4iZDqq1N< @<Z̚5 JYYYhiiVErrtӑ;w`ҥw[8q"ʰ{nDEEa>Ks{z!>|wNCBB'ڀ+舣,ZYYY裏`6QFARؾRؿ?/^,mEMMMslauuuSO=uQUU]vaϞ=[o%ollĶm}&O_w^bIZ{{;N8!<F#Ξ=_WHJJBHH~ӟ"00v֭[0LHMM?␘h7O+Ww}B|e˖߿qmmmꫯ"((!!!ؼy3co` ?;w%GDDDDJwgh0?~111hooL6 G6T&IrSNEyy+V@rr2V\) MII'___?Ν;: `ƍM&ں'h4nk54:t;w]x (NPۻt-r9mۆ|߿oתUO෿-,XѣGu(b"""""wYZZZݻw#//Oz9rr۷ogt3fñcPWWg7oAAAXt):kxLxx8Z-;:h4~zm=ǓUhҰѣGcĉݶ )) @=/_ٳgԄ;v@K܌/uuu@~~>4 oӦMرcbbbzܯT*n:[8s f3jkkxȴi͛o~NDDDDDCgi:t4 sbѢEܾ}SN;JtS:dffb֭hmmEll,~BV;̟Naxyyjjju9pW^駟Fdd$/^̉hйf.gғ9X&f췬[6Jw?3r XpQa6a2܌{k?/_ޯDDDDTYY (J( d2ijl-L6"fYZպ VaMaro\vK1$""""""bIDDDDDD.ɀh۵k׀Qw$""""""bIDDDDDD.@&ݻ;wDyy/KDDDDD# Ѥa̙34iMA """`4a6˅r9 T*B4Gz]\< hdb h4uK4ɛ5Q!ܝ """ AL wghXY?ZٳXz5׿b񨩩̙3ŨBE^{^ܺu GU8~8:;;~>>>e֭0ajjj .\i{HHH˗'ޓz#""a/c0Z@s碪 =z4d2a֬Y DAA^v… `3|2l`F4DDDDdӧ Ίǣ6m۷ݝ%"`IDDDD"ؾ};Ə2l޼&Huhۻw/Ǝ R f#))I:ƍx"V0w\9seee@א\\իW/^Duu5z=1f$%%lޘL&|q BCC1sL]PPYY J//A!ײ[lAqq16oތ~Frwֈh׮]Cee% ƍVdee񈎎Rƌ#S nܸ___@\t /^t:OǏGaa!*deeI)҂O?ո楾7n@DDϟ0(//GKK =reXXf͚m/*++ӡ/JJJ?={4Z3f+0yd@MM ` :L&DFF"<<\ A薮7-d7t:R(t*fkP Mwy=M"""ǏGxx8T*ˁ{ )S@!Roooܹs׮]CCC])))HJJL&åKpm(Js޼y^GKK ͛'A&dnHO`zj˲߲nYV,+m CI.`'""DQldBss3]z _B||<{1ǚf[X~4l/ QTA ԩS1i$wg#gcǎK,;wDccc׭[n{ܵk&N3gbN׿YFwԟ=.Ku͚5r }v*Bee%T*P( }qNVgh``y6ˢ2֭_mbl{1NRի a6~:s 4k֬L&q}YKsΡ˗/ji?!!!O[w|0gu;r ӟtOL"O@=ٌb>>tGR游8֭[ … qM xᇡh:%r! iiiر<bbb裏/w[FF;+W0j(,r9 vڅxwԶ۶δ#{׎mmǺfhҰWXXx@\\>mSPQQKBR!'-[( `ҥP*(**Ç&g-//W^ŋリ*h4$''`05+++ XjAÇq)Cɓ'QYYe˖I<,rrrpu,Y* 'N'|uIuW_axL(RRRiӦٽ&ʕ+SNO>T*햿Ǽy6L& 8}4VZ???;v CRRqp);u~K< `ƍ}ҽpBjcѢE֜mGʕ+|ƍhC{{;.]~:5qk 3gDQQΝ;3f ''Fk[FOࠝ9NmzLLLul{#"qY֌F#_ &bcc!hٌ#==GF@@08ִi N3g_z5A+};닄Φca0PPPC<& .\[|,\FNŋa0PZZ*7i$L:GRDll,F#= IDATjkkI,nݺqٽ. GDDlEEE&Dz{{#88X)sT} .Dhh|9HIIA`` 1i$TUU9u~4 j1sLz8і3/==ܹsjqU]?wh4HKKCxxklBt)rݶ8ж՗zwkgδSGm?e'""GRT*h4"""p5Ƣ(vzv6GmDSSS755h4t, ">#i ҃얣 tۯRi8RcǢaaa(--ELL V0j(i]P 22Rz!::vرc1ydi解z,3KZڒ%?uG)MTniW-gڟud)Sz:wM?kδw}ϱxbPvԟvlYkgδSGme'""hҰvUzl۶} . Uz 8f4Ǐٳ燏? uáe6ca8rX۰7Bp8g||<Μ99s栤Dl6un?\.BpX~L'|7n˗qDEEaٲeN@EG~{o(p6ζc]_hv|ҎN̲;K.8oTdgg3f'G}ٌѣGcԨQN3qD\~wFTT/_3gBP ++ ---jHNNmr$$$VC?p ߿ &&+Vpji||<ߏŋ;<BCCǏxꩧ 8u:;;\V/Gw䡇Ç{nt:$$$i\G8َL4O=t omm&*g^[χhӁ{nw}︫ #W^;[k=({_j Dr|D40Lz2Vl_u˲fYig0z3-̙fL&477#::z=v؁_~yC{nNhf\ľ'rLf.d`dVVVJ 2Lr^~IBSճ00ټejV/X6m˽qGhMmmcfmIIҠ(". 6,geNgyy9p9y,""""&Mbpp%%%8x 9sxjhhҘ=DDDD#{4ǿM6%""""""bEM""""""*V4ȫF=K |΀l 'A088`. 8vP]] Ğ={ J1yd~;wBbʔ)nw8qs̱yC{{;z-"((ȣ ^y̜9~~~-[i18r !..Æ={\*j]WLJ=Qv.'/^ZFLL d285k ż8wnqhDii);#GL<98p_Q\\ljjj¬Y%%% cQx:y[ww7|}}!J!J8VV8um| Mxhjj’%K6^8<>z*0}aJJJݍa$9thll<D???ê ]ybN8Z{Cqh4hooŋj477C.jZ{qLO>:K.Ehh(]"{ظq#=9bٲeܩԛthhhÇpm ""IZEEuV+ =Kz>S>cp]w{r,d#a4/f͚lL&ҥK駟;z{, SLѣGjm[mc]=62⬼ȰI^ZFttd2`͚5Aee%rssP `߾}Xb^RZZ 9\.ǼypI䲷555x衇\W\.GAA>#<6t'GMNVFA{{A{@ddd@TxW󜒒TF[Awˍ 7obbb$xPYYrn{{{Iqq1~ߊ/bDl={W^WOO@Tڌ[P}}}]=={ūn(,,Ă lNc;&ged DDOI޺.zŋ҂AtuuT*aΝHHHٳfYNs담4ӧOCΟ?6u1֝c22Z""'V4iRD}}˕NIIIXx1&M? C'*ׯGSS.\#66k׮u8ΚhtGywÇd`cK&A&AFL'[lqZAw/g∫vO G' 5=q.]$''Ɲ2*TJi7 ܘm˕* Vljn%KsN_٢"lreH$ͫ]9xKJJ 222t[:v#9ƺslrVFF@DDĦ4͟?'ODWWKӷ~; P(.63ŪUp}bq&0b7W)Jn5ՏfqhDkkDz9ǚ/{ gvO G'HHHZFGGm>^Nr9:::ׇsY r œi+ʠ妿ߢ).zt>}amAVV m6---vUh4sεYuX- .Umc969+#u\ "bEwٳgq5tvvŋ}8hRVŹs000 dj67002Bף rYCRR:N {S-^6lۉB@JJ :Vh4CTMg͚<\r}}}(((JHOODZcA#fYq#Y><6t%OgLӧ#??6Z:ILL ݍ.`0@qq1t:I'MftwwC9-n>}MMMh4(((h˕bxٳgΜիWݍ*TWW;;uTL6mU Xjjj_ :|c3 v߿?JKK.lۍαYq^||ESZݻO>q̀MgiBJ73gΠJPT3g0-//׮]Ú5k|r:ux2^"QXXAT*s=d;Ζlc޽0 @xxGYxoصk1c , 5{4jz Ȇ 43gD]]vڅX{Nˠ;&228z( 6X;,jֹvZ|רDqq1R)BCCb zsŊP(yfj* SNŢE^EtX΀Ξ=k1,666lhDWW׈ZUGپ zl eYy5?j}iwwFӞ|&ey<äfì_Ϧ2>V'iZמ@tt`^Gww7:,*++=jٳRCڵkhllV|{Ɉs=gwYrzkZ{xg)S?)pQq{7 ???rGDDDtMvލݻwC" &&?6l`wzZ̙3ASSkiss34 W}}=A!Hz}}},\7nvm6cP*ضmlقGbx衇"99=NH+&&h4hjj OkQz777C[|?̙K.RSS]^W""""Ċ&Mxk׮O? BBp~lh(J9rw,X?<~m9rmmmNd8L׻y0t%bhqN>rz~Ap$%%y^DDDDOhM/$$0PTG}.|POFff&~_GF|A8q Z[[q`s?mmmSxkر'N@KK [oH>}/_FӸmiiipe477t:[KTbիxN(瞬RĽދŅ с;v@Ra#Z7""""6ޖ-[ /;vSO=?x7tRdffZL;v#<Ndr-P* ___رW\Jƒ>Yfk^L6 /]i555-3g{{`7qy?Oq}aʔ)Acc#'~ॗ^ ((k֬ZiӦy+g^ǢEꫯ{hd}V$Nޛ ~ƛ>ˬXjG&FFzbF""""rAAAL&D"<叨BX `hf_0aFì4.aY""""""*V4ȫX$""""""bEM""""""*V4ȫXѤ wƻヒQW^y{""""X@4N8A ""t: yT*L&\.P&<^Ѥ ?""N @ӱe @a``%e< h4B"uDDD.j2Aj: Mgi:z(Z[[?aaaغu+^u$%%ʕ+KdXjh{n<#v|ؼy3G pw" n,n\r ++ ocƌp/_3g^UtuhF+4aeddوz,Z8<8~8}49r5 aƍFII ;zvm EEE;\Vww7BBBo2!"`0u7&(aEn*Rd 88X|IhiiA__:uosiY)))+xx5bF+tӲJh?___`ݺu}D"u,v^DDDDD7*N`cww7 ** ]]]:tPP{oeݨxEDl?~r9^磸 iii[0w\|Xv{{-F><äfì_Ϧ2>V'i'yhF ztww#..n#""4XpQ*cˆ566"((>>>d1oBX `hf_0aFì4.aY"""""/پ};mۆhLIDDD4߿;wDWjHڽ{7>CU__;wٳ/ct:\pwX٤+DDDDsC^~e$%%>(^:! V4$44K.genJuh۽{7テ $''cܹ4MMM8wj5 'NҥKP\T[b``ΝCKK 4 0uT̝;wسꫯVH#00jZZZFrRTwj<M"""@UU1i$E~~>z{{8SNTL&CSSAPVVsιѣGqET*Ƣ⽠ǎCUUJ%BBBn+I7;^$"""I{pd8wΜ9VƢ `ɘ?>^:u*MK.!55* zzzz---7oX:::ԄqzCw T\xq23:BCCo;jjjOcΝcu&MOlT*( 444>)S0{lRiիWqE2u 2588@ttX񍌌*D73V4n2W,1T ]v-ЀK.ҥKWۋ\`ɒ% q%-h"qhllި:;;OӦMo~=DDDDR `ݺu={6ʕ+YTՊӷAcʔ)+ X,ٛ!!!H$耟ŗL&Cpp0jn{;6m? ,,l"nxE&VqQDGGC.oii)bcc1g(J@uu5A@[[`u8}4fϞ=-܂J}:z{{QUUZ(̙3RPT6mrϟTUUsn s΅D"AYY^ +FXBWdd 'q|l4^f$V[<$/0100 F\\W| qw;`0W_?,6qgDa4q\xXzGsN̜9NݳgRSSָκ`0h4矍Wh9l|#xwV_8X}wh4]/5k~^J&xŊ&MxX~=ҥKHLL=ZHu(.]:!n9`>n IHRWq[?qC XѤ ~~~DBB,*  ;ob0p1աXhfΜis={ 11.]B{{;BCC˗/B\\NqqTVVB#11IihkkCHH233x7q]w!>>ڊ{'-//_5a4QZZ2#&& (//GKK V^-~|&%%6l@ppm5Mꫯpyh4DGG[d288>XxŸ@.;k׮lY='ODkk+V^=lLx"F#nb t]())TUU!55þYqu={`֬Yʕ+9۶K.׮]C@@lٲaqa+z&`yy9l1[g|bvαj8ʽvgXѤ ŋHNN$&&"77עlaa!fr[lL&CHH֬YTVV"77QQQbo}qql޼&M‘#Gg̝;s`(,,Dvv6 ??ؼy3A@nn. \27mڄ aؾ}[ͅP(ߏUVËQWWիWC.}|Aqʕ+l2m+===.fA@@  ""bX%q!F^ Y3f/j,X;v Xv+Ν}… j6t>bظq#p)|ؾ}O/}a``Ê+>z1{GYY>>lhWGً;Ǫ,FRF5u&4N:r-iӦA!gΜAvv6"""bql4!88 AfYYY]vBCC477C.;<(Jbɒ%̨((JC8DUNBVVhZ֊ӥ 55:q7Y`` f̘apoшÇCZTM6 :Pg>}iQ0?6EGG8{\Sq>`-;;111 DFFJ%***lN(~Gپ'>CXXͫ333=l~WaG਼W\=VG62BDDMjkk!NAUUMZ hAyl[ŋ҂Atuu9Yc]MqJ?wvvh4b޽xA,m̠ rez XB.#::0&ͧ+1t:'eee|2}QWu}||ZDEEv;qcGe@&!)) EMM OnЮ.rco}\xD2|ml_PTΝ;ٳgkI>\e=wuvʫqٱj,˽""rM***ho Aǫ:v6ޜNᅬ$,^&M‡~AwnٲeLz5=A L&sY;td-qqqę3gv'N`ҥ[Õ20c !##՘7oe9h7wcpT*l,~Gپ H~z455… ؿ?bcco{;[{uqF{|x-#gc?wq kppؼy3{ MMMbg&|9oBvze}Lx \浕 шV{ ш6|ɓ'-ZKHHZFGGm6guƕ2N&cԩvㆃ\ZFrNPssY r:Ѷuu_ŪUp}k9w>loWGn7+7QFo]_7aE&j kzTWWCP`֬YÕ+WׇqZg)JhZ;wNA*"==ǎCCCA@OOx+bbbPVVntuu!//y RRRp!B ??J&gӝCS_ԺԩSd|ZbP lL>u p H$$'';8˕+5i$477ۣf 5[lmmEcc#P\\ N$*wm (++Coo/z= ˽#ugvʫcqŖtDM׫xB.*uby҄UQQ!vd-11Dff&9?HII8Yw6DRa(**1uT[Ş+{zzT*pB;ۑ]v!883fpL`߾}Xn[9cƌŘ|ݻvezz:\cӦM7op5Yjo>丼>\-3f3grJ˳+Dw͜9uuuصkbcc-p*G1X{DCtt46l Vs,~GѾ088jbpp* sׯ\x_WaWVyu6Gz\f4Յ@WBVeQ$JއOD*\Y{aRa/xg{{ZSued`0@ףqqqc]'*~ae:;;k.`6fÌ6YǕi\+DDCjjj?nO2W]C 㽼 W!"o "RYYıCс 3 oȶV^&3>Չ JJJpA"55s̹bcy%""2{4iM"""=x&WIDDDDDD^Ŋ&y+DDDDDDU~;2f3 [í;~?~dIh4B "88x-^cv V)SPHsk4q|(++C\\J骪PPPcǎHٳR'O8i8'N`Μ96;rhoo[oXy`+3gϣexXF*GÆ={\:.u9^r<1QrI ___HRHRv4?#Ug?U>:kxoBdlj'Vqw_KJJ\'Fϣ<$JRnn.dddd`0?~$z*0}aJJJݍaʯrdkXUUrKa}m)~xWUAw ɓShh[%""ϰIZ~~>yf\"33騬ӧ`#<<\?˹%""ϱYZ-Ο?;JXd!L&CvvxT^^lBTTJ%ӡhV IDAT'燰05SN!++ FNNZ-jkk~#وA`` 222T*QQQHKKCXX \rb""">>re1ʛ=Qɧ ())bƌhkk:u )))Ku73g ;; (ﮔoW'Y,#{݆#L6 :FaMݧmq;j]98+A0o< ((H񠲲xE&NFݻW&Z9&&z+>3 00pD`уbPPr9t:"##;w"!!gY rDGGw9R\VI$qE`pp]]]îj눫n޺.zRu.rN>IJ*___ɓByy9njsَVa4-ƛo[W˷+2W>∫i9mJABBjkkZk>mxWqYtܨT*e2LsKDDcE&,S-[8pcWgD"Ԅ .`y?`b V&9l8lJbGRR/^I&? #oRz+Qɧht'ywÇdgyFѢ9wHXq5ߣ $''ĉXt)jjj|6{S-^6lۉ) ̚5 yyyr PPP Nɶ7(G\hClCWd^m}d>}:k9r2tww yyy0 sgGgwn>}MMMh4(((hQn/_>omm-݋q'%DĦ4C&!??===P*Xp!"##q)t:̟?]v[oE\\fΜ:ڵ {.ϙATWWPT{6/DAAAuyd̓8|}}Mذad2T*/_"?~SNO[oT*7M9s(,,T*Jœ9syyyv֬Yp]嬷׭횝|ݻwzo#NlqL9r9|}}bQq|dۛ({) ]ɓu9&CNNG9ۑ]v!883f̰4~xO1֝rH=z݈ ,[? [F#ާj\""FֳI7&5f27}6Y;Iպ֏>*/{n z=7ᑝg@ى]vyEs80ڹ%^d2H$ǞFޡP(`k X7gl0בhA||<+B%"=hcHLL0&$斈hIDD4Nj24 ["{4iM"""=$""""""!V4ȫX$""""""bEM""""""*V4ȫX$""""""bEM""""""*Ȗ<Ċ&K*jC """!uDð,y+DDDDDDUhWIDDDDDD^Ŋ&y+DDDDDDUhWIDDDDDD^Ŋ&y+DDDDDDUhWIDDDDDD^Ŋ&y+4=Xp!.\t}otvvuh۶m>3;bn ֭~TUU4ƍzڴiFXp!+7M6l؀||xpS̞=?  NJ&Mxw;y0g<3>|xgR0yd<<:g2HP"j+RXRP8Vz]n{n{{hVj'ţ%%EBdI HBvr 33%993,>'󝼼<=8q l2Iʕ+5j(5J7t7[xD/ޮ͛7k֬Yr8OG68h"zO~]v{Ղ !I:|NV\)"Ijoo?&3vXIRGG $Icƌ ˬn?oR,M2E5w\mڴIӧOƍuUWyڙ3g{>Skk;v^oѣUVVyS{SNy°$]|Ŧl6Y]]V %K襗^Ѿ}4sLw™3go>544x^755ri6E֬Y]q!8#WAA-Zk/mqYYY:x Q6Tw]=ojQt-e3Ż:@M+Zdx vkzꩧCC =xb׿Vuu裏t֜9s<jkk[of}ŞfTcc~tjܹRguuur\a_OO:;;֦ݻwGo|0?is=z4j(q^/;:q#0QQdOf}q߇LIqʼn=U٬/T]=UR=wVZu7ҥKuwkzGU__-_\'N =~'OSv]qzꩧ j_֮]eG߯^ho7ߔfӘ1c4uT]6졷SRD힛ӧny_]wuL iaʕwxW+&R?M4I+V9kkǃ%*_3m qϊG}hzzzT]]իW6ѯ4UTT$IJKr ^ύE*nwUb귿U[[{G_~ey#\.Y,! LzgU^^C{%l_JwXټy?QC ѝwީ~Z媯$͚5K555jhhj… 5butth͚5Zj$ԩSڰa.]*I:r6oެ. 2D^{.4n8tj5jiY/***T]]ٳgk„ }ng[u:]kYʰZ-mfԪك5zM]NҮFpb$鏫)?;M̲>تv*sZmOtիWF{{9 :4U =HYW_} |G˖-bnW\+V.uWꮻҔ)SiӦvttעErJtݮ3fh5k*++Ң<}݄L@BXCA5iҤXXl.u`&G^4@[k!6Yّzٝ_H~STwj,Ez$I.-]gtjVYI~~y^ZO~W^y%Aj5}t:}7`o}-Qht88 wuK[g,mV{V/mmվP ~@]R:@9iH@ )|ROO?.<#ܬHO4--Mv@"s/kݡX᷌n 50u"jjjL4zh=2dH"gu=ϭVV^y{󺢢B>>|n Ϟ=[gϾJ},>$a6yK.ڹYfkOG"\mVU'[SeK.) ^͝NZu݉7;-!GQ`JN]79[c\.$OޮYxjK'_[[ewH7L־UzP+IOV6tCL ^'B&pNS%sei^ˌ?Vt"riƍz/R\]8=jnnwUg2xy׵k׮ׇ"d;ibBM R/ݻW#Feەc577n>b:z-[&ŢxW).ƎÇǻ۹-Ow׫iCujNpŻZqeZT><] &fӓ &RPMMn:|]ԤB 80U+2U@8_e3A)TaaƌAСCھ}N>j+sNرC~M7o^xp *--$S}PQQyo]1;/f^uM2E'ONo߮={Hur- -By/˥1c>+5I}>cu̮`>l+==] .?V}};x>PS~~k'y tMev\-*FIŠٿDž{%Ieeep8dZۮK̙ yߺ}0\-ZHڷo>1B~1cVNm߾]K.i&:unF\.[N[nՂ $I7nTgg.]*ө_[lѼyH7 l6mٲEo/_)7ofϞ}/Vմ٣믿^٪mάmK(,6ѣGuM7f飏>yZ0m轶nݪ#G^ ^\\/)gΗ;e4ۮB6lr;kjjt饗u]9sF 4p@m۶Mo.%:>oI̎˗X{H d@Hi===:pƍ'I=zN=zmmmr:3f !CдK.DC Qnn.r䨾>R,-XMIDAT@25c )??_&MR]]$[v5\l 4HfRmme1Bٺѡ3g΄}LnC|ϟC*77W]wuv&M_aÆլ͝Nvءk4h***dLjucv]׿` 6LyyyK/{}gAW P`Hi/C\F?~\꽆5vX)tj*..VnnIx9>@dX{J*hPzz#I***5z-((ȑ#+hرuDrdhf\]P"@N5%u px}󹌴ƍr֪D555;v;Oۻ^RRr|3PYVWHi{Ugg~ ͟?_ii_u[,}[ұcT]]w}WZhϲ{zzohܸq9s?Or:rj-0`$;ND3{ v].KNaV5YyWW: 6f%sft:rn[p8~/pϽ/`h)T/\F***TYYZ6mueZ}g]︌b+ EҡCtwG?{,gȑ#pB}Vmm<yCC:;;5{l 2D/޸z{7cVp(##琵`Sw$3ͽoCCT<77Sٺ`D㜹'6oן?{)s`h E(˟h|.iRرc:u.")몣ŭא!C":@d0e;.X{ h"߿_ {ӲTRRٳڽ{gbcǎfy=x`y\egg[uYOy1}#IŞ"aOoA:D"--M^zt9NEI&R ƍA@m2WSS瞴uDeddhĉT}}UUUV[DG0Ku /\WX,?~iر`V}駪SGG6o,˥rsj`w\F@֭[;w} U$YTo>lFeee5w\.ԨJ7 P &СCzW5rH-^Xg۵m6]tE|m}*}zW $+BڸqZ[[.,,kFUUUzwp8tEozmpBmܸQӟp84|p :T6tYۘsjӦMzw"4iߠG%:|*e&ϥ/|***g7k0Uaa i&577DzVӧRO֢EB:@d0e:._bRss {+DERDLyϽy-3x>iᏨqrߓp8d= @joo{?;/pQ(==]VUhNedd̔*!nxt>:{hQ6F?Q v)Z sP2@RjllTSSFUUUy "&pxMB ե;vukʔ)|Dxܣ)?cGS^aG3^MLPܣ 9L|tzGZ!ܣlh&MW1DQReD Ip`&S%RЌc] /\VI֠r'|HA3FMʓI̓A3T GJeT܃ LIi&eN/2J2M_'lKNeX=\~2QZzsIĸ zk;.봤1* '3ܯ?Fjv Uv -0rVPP*$xW&v^IFTey&@^x "a'Ofa}`8MW'ixmİ IvCt "wQfRѡf z826z4}q^kcbb8{챗%u#_ˍ')$k毻}B|uٵk/P_)n׮]|ᇏx 5z*J߱A_7p5N6'b|<'M>ƚeof6w,K9}vJ3fwObq޽?njNCu?@a3q?S ڣ@]Ʈizl6mzc}ڴi%21p*Irc533}|먪jo~n?~=iiiY%3ysφ}G999@RhkkӀdZvL:!@ ׻%Cd{58&33>t6=\Qie8z!]^&}B&=f@ &pv=:-XhG_eY !U^a-^qWoJ}@$>$=ƯQ4Cu'1&4=fl;ct{hyMwt.w f4lãM_S!!!%B gqG0'lZ{Ӽxh$B2(w=&r1'! 1lV1>k Q)PX=i~z4 j6r+аY_gb.~ >26R1 Уi,å+4:gS( +N@ 6t_2e TZu( @} =PfN( z&qWu:a 昂=ĺG3g}Zckb hG(w ZSY]BѾ<}ݫ)C_}-7I'@oc4.I4 Iכ$ օ6} 5 ~m H>4I_`mi bBQ4æ@aӸ,\kM'Ps^ :e 71H7n`0Chcj@_/ u {~I#KMѫkK>PoH}<@姧_ gePVB 2`5o0AG0+^@A߽}jج8hf[(a3vfuп`23?)4yhM_ۆZ.[U )2ՇE3hw{o'?m@6ģ¦[{/}}I(b P&MӸM4 g+ ;l.nF 7p_8_JL%Q4(l{$? @^6!3}"hzGtYi,I 6\O J Z.+p^߁iVf(a6LSX6w^4YXjL"hMlfۚ-i@r74eB8XWDJojK RN4)pp!SIYXɍPZ" qMȐ$ C8 T"`%S+I$X„J &[[H< I2᪯꜌moUK$S{2+%UtKДǐDp^?SR8 CR0?>`j0KzR&`@@rIp?tSJL"XΡDK X6Th; $@bA+IENDB`extension-manager-0.5.0/data/screenshot-details-dark.png000066400000000000000000013530231457631363100233160ustar00rootroot00000000000000PNG  IHDR>sBIT|dtEXtSoftwaregnome-screenshot>&tEXtCreation Timemi 13 mar 2024 21:30:09x IDATxyU7ez=I2 B"AWT}U]/GQ|U.A D 1$ $I&3:?zm{gtw-Ot׷ϩSM"b+0qM}r+01,}CDDDDD0:`J~ """"J9m'""""qF3)lIJDDDDDgB:&)8jEDDDDDSϔ S-M!""""3ǔ S%M """""s*چrg*k""""ɮ7^!pR~Qb˜JSlF8s2JֹPYq(+'UlAUdDDDDDT{rJI6'S* DDDDD4ު:'E؜,AktZJıWaփD<&DCyFZB UGԁTج4z0KmݬDDDDDDOn]yc 56k1@2 F 6YNdˍqWknc]Vsљ@gr[7k&lRx*'d0\VrTZڿDDDDDdU$󭛯2lR*.c f)mki(%Yg64M*2 J_&B!I6k!4U;d,82l-G"""""B-NpN9!Ys6Q]Xd8D؜3Yn,0K.;A| uK |\(IDDDDDS_W  2ASX+)(&;)frCSU(V=?MM^D d԰yFR[3+2RP}y&UyZ/kKجVC2j,P- 8ey:lj,lYS-q\[ ()7hjTڧwfn5ۅv.͏[TVXqc]]ݿE"5DDDDDt&z|z4W_}Tmap0yfP`Zl,Ԛ6_Ȅyl`ժUq\_(R7d#H(uuuWL>=rĉ7Ú&_̵^Mtv,Ŵb̦ez+nLLv%""""H)i^EӦM;~ɷLa-+9VVwkML Z21a1PHa$""""JRBuw ! [Wj\>q[5sZr"NIZ4mmm#:*EuD"m=o\bc.NjF5f%6iN˨NWGGG(7p"""""X,EQn2%枥c8NˌEՂj-hu쭗~anz!""""jJ$hmm ǖI` pJf;ǩ묰rϠIDDDDDՔH$r7hl1**ZA 7٩r>i,@DDDDDTM̱8Ar `": kRU%Qh կ*ʠIDDDDtfRU^. B$C$xX jEiuhJKNUb }vf.N1L.bRj_օjzppbBeT0\|iڛMZ ce>DDDDDt|%zz122H$Rjtۼ cU ȹ; Ma~i ˩BLbi=WY(f|;a6KDDDDDDc.'u|9?|zbWQݢY\̴b~y~qUڊ~_5OGDDDDDTU-%. BU.;*HNEq=\M9'CfM{xb߿'2jۜN;p²ʮ 8:o 4 Nje_f275G%"""" *eCmllĎ;lzjTX#-r """":^}bX!H*փY);rvz__nٳG""""":cBP9ȕFɪ'DDDDDg4]122`0XFFF*ݚ9eRIDDDDD49D"BB!D"ԩj&SR,F8"""""0FFFƼpE4* ,MyHx@^ubBˎDIĉhjuCCCPU^. B$#!Wctى$*ybE(#Bw)kIDDDDDD5A*jMIDDDDDSѤ:=hQa$"""""b$"""""b$"""""b$"""""AsRDDDDDDg)ab$""""" ĠIDDDDDDŠIDDDDDDŠIDDDDDDŠIDDDDDDŠIDDDDDDŠIDDDDDDŠIDDDDDDŠIDDDDDDŠIDDDDDDŠIDDDDDDŠIDDDDDDŠIDDDDDDŠIDDDDDDŠIDDDDDDŠIDDDDDDŠIDDDDDDŠIDDDDDDŠIDDDDDDŠIDDDDDDŠIDDDDDDŠIDDDDDDŠIDDDDDDŠIDDDDDDŠIDDDDDD T!tJwEXxZۦvOtʢ%=o6}"]5""""ŠIeSU:﮿.G}C#:\奺\6 Xh ^mF?6t]դɟh ꘃ>!'B%F0Xn-:* DE,^o.^6 """"I Tim]V7^GÉ!фaԹZ Z\hoTP jwF%""""l TrK 7O Y㸎$Nߣ`zV淹SRUPƭ3=-ecФ 56K@3Cp@(fp-o 7œ *5Я ǠIB B@XSެ.I)(!DFiAM~ukEjtRu$""""Mw@QQ?l@B~ DCQ >M>s'C+5@( n@7n'љAƕ"<.jJ NFOCфDL8{4 ɑk}nn5YET" FQ!&!ܮdkacts R-@(.qjXǡS^=#q~;'8>c(b %"].(p*yߏX~,Y2:M落kƊ-4N$TE@UH E$Z*Q 9I)!P1PEYO&$b AG$44aka$ˮؼy<]ߏSN?g}x|yxl섡!MH G->@}F: N? UUֆ6,]\s N8O~1>яK_۳A̝;k׮|3<3!$"*n7\.WM}1$ ׎%P⼹^^?7@}\e,XYerYF~<8y$ڊ?@$Q(}ٖLJ_גo}_۷o̷_믇[caϞ=زe >嬃e˖vn#<]vaӦM-Xnl۶ ;vo~|wx-e߿ .q饗:UQo^wy'ڊ|>O>$vލgy?ٙw;w`Νشi|̪'dMWC4U:010-qY4]xׂ&yi$2:Uy&R]h%xk@__tRk͚|Ҫ6Q9|_VWWWRYfaٲei~xߍ/~ pmYֻ p`ŊַD"7[n,#^<3.sIlٲűnCWWeM7݄}cػw/`ؾ}{ y򸫫 ]]]˱~z˖@_qM7Y :::peo?yU"""r3Mi1Mb ,#۬w˻n=7_3<RA_j~ """rEHTb0"Nz /i%K%^ۇ]Kkt`ӫ% ka._ي$kh(U!1#hQjz5]q!|+_ȈeҥK*ϖ]ӧi_*3X_||838x≒ۋ|_җpZ̯QmM8ߞ5ke)i{oׯ|W Sg歷ފO|9jܹX~==1ATI 4.n.4Up&\Ƕī#%qkom'iX3,kFN&0zDQ @KP39hGxW,Xudyf8q@j?| _,,gʕx衇q)>}@W^ye. B\^%o,x^i.X!"""bФJKhHǬ̬7y3]JZa? IDATI|h\Ǜ=a<lA{{Gb0J<&:wM^nʕ+3[ZZpEe 6dfJoo/^|łRa uM+b׿7cχ7'сNl۶ YC1Mvz+z-h: _+Yg}6H$pio|;o=i裏AK_į~ڵk-@y<xY.X4y= Td cpp3gĹ瞋SNȑ#+DZo>\.b1:t(4>i̙ALf> @g >@(&C {0$dv9(:>w3VU!fB~ӟ{ez?~9m? R2XΌTkWLckkcWc'aǗK7g϶\ޤC1MOfZ2g̘hjj;eORJ+`ΝD"SO=^x OKK ̙Ǐg /n6n܈?Oػwo ذEFJ&q@lf`47y ;w@z7\@\Ke\3I3*qIt pرL{zz|R7j4jDπ+aIEpߌi=ۀBRLdL3*KA$#Hg_UYM 1c]ONX}6B!l߾<v EQ2J(/_˅#GX0 D"躞4gΜ@nrEBJckgN,t 0J΅"52B)tR0K9^7On4vmmm-ӶmVk܌/ǏG"ȴ&>}Hώ59]v! /^ UU32FQ__5k`Yx ,]{pA~x<DDTTUE$3Kx5|MA,^MMMxw a`Ϻ/p8%K%֭[3֭Z ӧOG"zpagE8CK)a}44~lk֬:88XAn#Q/ö f@S.aWNE8͇]8{$)8hV?zo0kfUG:iLN`O~[PmP?欟KR&`* "ĠIUQ -E<g҃5pta yB@3$N } B1=H6q 4R0@DDDDD`Ф:'_by{L7 PLZݘE`(t } G5D+<_zF ĵ MDDDDtbФBQ0>S5$%6C1}qt $tf@w^e l xE-f&[5mBDDDDG0Qn47{&%;߫4C"10yC2gr@s@A+\w&quMt5 ؀ŠIUrZ(n Y޺>ӲZYF覛 WA_I"yih_T.vBÜ.Ƒ?<. E@hL N@]6y]/gLRW@U]3H$ TͯUUqealقW_}5E}{Oؿ?Νv 駟ѣG3ϱn:,]ndz>x,_śESSnwIe?88D"ۍ!O}*3?;رcx|O<ǰeDDDcH$ص1hR ! cxhŋQrΥɯ`fD$.1h ḁF*p:Y2!zna0flLۍ[o:6oތA|_k}݇H$RҺP+R"""":uƅESs (مaUI'SѤb VqNVZ ^Un˱]D@CD<k{``pMUt1sL|>lڴ >}:2$ L6Ͳ^Athhx .̻k֬?u5ψhEƅ(hގw.UI~!$P^DPhp'[:G1]@3djc8r+H }dtn}Ljl(Ź瞋} HuM;z(VZ@kRwHc֭1<lڴ ^z)֭[bey\wuX~=kQs_z%h غuk&h꫘?>֯_n=zn۷ohnR@d֔Q析Ppi8{F]ڂxޢ[>kK^رcZtV0l>L?0:~.r-4xhxi0dq'[i'D~#=aNE0 n洷O2`?DDDDDS&%HrԄB@Q$_Jk4 Xh 31 GD1S1p!a(p)Z|Z]hkƆzݞ1bkژ%""""4,zObZmKHEj$Tۃ: M b1DcQ 4CBU|:?|>±i8{rMe To D'2xx:4-<ӐH8rAUUQU}b(ZEhaФu,\`DWHtDk5οRrv茶=xc^ OtUU#d }Vl""""A`mT0v؎pxCDDDDTu$qxH$dJ446+{Z iŢcoW2CDDDDDS &Mu}p/,]/ /C[t&hJѴN۷`߫{2`Ф Cعc;v>ѕ!"""" s44444444444444444444444\]ܚG"]@t@@H7MS )CQDrz *,Yy {]L3UCz^fL yHe澔2yMzL[Na_\9wq%#^%>tdޟֻ;2a^%iz=I4 MkАܗ0 !Ð0J@[HN7 2ruԏ<^Ɛz0Tg#=i Ҷ?r z/^n$ߛ2[5}_TJPr.!(.1:_Q55]J/>|,Rd{bްޏnX`{2OԻE)}x\o'4weKa[``m{L${[C@鹖8ߺ.:rcФHid>2.~_nEd6 %}Ѱ[i%[Ȋ!TId}X'g@$OJSrL Bf.0iJwY6$g-Xn%?5d&H3¦b)iSe&@JshLev`^7=e׿$">/ [liO/y_UHg9^X> H<]3n\x<ELa& ZFߋx\C<wܾ59>hg]ؐ]|2k!X53nzhU7jF/Jz_3rҟؿ$ gc8qi}{>̱X{k\XN?!J}a/ ~'"%! 躎ߏh,MӲ**fΘ[>yck!??6?V IDATg-'00uDI/]]M_&./-("w(́1b Lj /dviMu{Q#Ub_g;G( ۍ> ]7 GqTb@>_WC#hinDyb\PCJװͷz0kz+ϝ UU1w LkiD"xUI̳ZAƪZizt09kz RH':K鲳K8L[9Y(2Sg{-umRi7Rە`!q D{5nmٔL9n VKiG4L|5dV|t?h\CW{3wq)\{tNoN*s±S8zj-iM%t Gb]1kZgʍ$3;pz8)f¥]x쥽{N!0h ڛVU@<1m֦z a]ޒc ͇eHY>8UNLj"J[r󯯠M 2[H/=Ǵu`ikf`{dR~djbt}f=C<3c:=}ٞ[-D"p\8tm:_HQ1stnh !/n74@CWca, "0dZ @uHGpozN!gdZQG\0Lrt98"wftT\k@hoVF@:Qe'C$fYF5sffVl'_8uX@7s,7|J#`gC,!-τJdJ>9zyyR^$sޛ5r\gbʬ ^ؒ(Q$[h9Y~pa??:v-nuK")RE$Ab" Ϲg{WCN+j>-j!.Nַ̬tSdL3'J@4kz'{h׾,vfwPOYb4!ӯ>GSݿ~''s|o*_Ηxw1/poE]7 ~_\>?~x'1oI!H#97d\Ҋ뮴֮Oe??穯H#83iv67mܼ}>.lcnC{6n1͟ w[wqMO=l6ÃCX.)Ne(BJ$9Z:Ȝ()`"XB=T2IJn-eLnH|=;uq2[t_XV*TM-(5HR25,D_pNH@j Byn`ny"Y uI`滯aJd?;ϗ؜Vg?mox[7a 1*ͻ=<u!#?][u$; bݐ2=-{8sq/~JJuf <s[hidgD-L75A;~!~˺%8H($YLx!6ಔwHXg="TwUfQ/}1+WqݴnG|?.yﰳ=L6^zx@ݻ_l:?}nOQHg ܺuams>R|J@R^4%J[T*Ɂgy]e/|_뽽3H5L&z$=iۭJܓ;{A (R1b^_ Cu^(#I2ڇp/'t3ƘjX#}1Zki>CYAXe+P~8t'c}vYX &J6ځi(MgmR:DDl=pMާQk#滯dhŧ?n\ 4ƤUǩ7pMLAA)WKЊ9kpXӷ V$Pƹ5ۭTkMr7K}e ϛZ\v\ẈW+[eD Ds8o92(dnģRԜ<1-+pVbuOdَk|u\h@['V-iJֿV4M+%;+d Z[}Q\| us^z_>IzY㝷{ w$s筮iMt~&}-z)Y\CeF@|TD UGSQ"L߀  !r!%x": PTPFQrx-;J+iue۟R*^ZQkՓ%n]drr*mQ b9X򊈳P0zmi2c<6#2|.kdH"parWUyyz&mʅOe01$qE_ W D_w~cJn؂zѿOK:|$YׂKtb}$Y''?cZѷ qʼܾW|vOgA=Kqr]|A\4v`y(/ok4uhFF9ҙȸss,,qqg[ dT(l\4k=A 5MW—i6]rNbBl&R\Lߐ86!ՎAL: wc] :'%͂SX"[lDy .= %K*%,hpϽ d ,MOB+ew}tם-+*/dv6w 1 o2 a.1A Y&[E#=ęԺyސi}C{ڽql}X[VtdY hzֹf&u6^k?>`Hf, cD#3@s3ǃ5`"g SYwӕt$[s3`!AcKAE62^'V%aq@Y|GZMiӱ1*9b_}*騴;Ae}Rp4YqL^LI*<؏_FCy^*֚le/WA|ggN 23o:tCL2 go7M:&j6HQ1OQ'B J$"ɉ΍g/ܓ+PTnvlܙ :v V"kQG4x[)EYF#FiHg"P;b<LdGf3N&k.K5?+l`.5pb[&'h8J :7@.od"ۭ_C6[H6\;*lodL؝.VrYmIe!]h0Mr^l߆YD]:S%ةCr'W҂4@;I6 EwVqLof1ÿgo7_fO8Qs)&^C??Rڐ)kazݡû(h'Rt b:Qi;ST!K*\kkf<ѹ:KLN eq^F9ҙʛ9F9o.Z?E7srXQߢ}pkؚZ_HJ6mv5umVHkobl}6򉽴rc,S?kOH &l8$)ߔ LilJ@QDdd$%0ef鄔\D_jMRp0^3Kk.}I?=vV*|քBeO>}ozrIl2th te("Y)IL ^Lc?iP[ +TktbʑO/:J)/#Y58]sHI!`ssht&~_~c/eR"@RBLy%݃Mj mu2h8};ȁЎ(@C(}AlVmz'02fIģ?j(iQi t=R9$0ZI?p~f~% AS{|Bݰ> YuD":<8UEW~$[ 2ʨ-Y6;3^p݈-=6p)ar֨䤩Jh0eX?S?̬E-K6 Ak 38_+n@ UP cYNÁH 0s?q}߯Li4G:yM5LAZB1B0R522ZgyX23tyͦ7mִ3WrN:gOJ|08Ү3|8ynY՚h]Өu|Lok &4Ɂv,ݔ{i>RS)2f>BəɭԸ|r~jH랽X/:P#A^ \4kB\cJRw=\+]*zx'qttCi?A,KhcC&SVK"lbDS蛙Vd *oUBBw[\嵵Tf5|z.(11f ?_?i+8'2gyn4͑L,cй@;F5pŅ6 `m&8%ǰ~/ 1 (ٖ2l/' "ʽGPA in (//6ii4Xu8/|Vy6$3C|/e :ąm?*ߥ1ƅq=g pwhr,}2K:>)/tN0C IcCdc9Y?R }5RELrjSryJFؿmަq;'+_%loqñ\$e#U][#OAc7Qg#pi.TCUx 3בoXe`WhR+ 3)Sxr! ֣ Prl}E$r^ǗtnKQyNiär yi34G:E5,LJy,c".d˜1(eerI(!ߌɞIBPCd36moP<g uoz= !I]S:)p9+ѓ0)IqQC`m}=呝2:O:/p3N<qkQ².3cG.Gq`k{)o==!yؙc.v /boH͌`=Kq{Gl(ᗙtZ (lo|bWr/]6wGN=gPjs;8P&o̥9PP;?%Vk@S,94: \j:}:VisݻwpxˀKڟ>hXYycl*o`g{ v x.fdӗ`," YDXh6s L@eoL &[~Znm.#3ݝEzaM8!$/|O\&'i@'v|}Dd3#4F9ҙo$s\XHzKN)'@39,a:L-4YJS[c?`FKS ;4Y݇DM 2.s5ۈWW*E&Nh̢Ȅ@} um̪t1y̓}֖WXC9 M]*11ƻ&LSo|1WW `d{C$2 kBD=oBs1YFoQǏ<}04k,=u uޥ+CܺHg$fV2 0&ҍp .P|^=KGi}HBr% ~r;6)rqcwiRdCǻh G`k/})Ldc@RḨd۷S} ځȨnQH9'59=RNgޔRL̪Oʵ{T&rs l7“O>cܼyMӜ}GMD1xe_GUU.]iHJp%kb TU_0M񓟽;~[Rro@" ǜm,iR&h+<dtpOW| E¤)[+zy%(yҡ('>Jr!gx9y!fM"˾i34G:d)˚|:-/u~()0FpB M$_YK IDATsXv; lvY*m)l7*5!P%|. L`T>LJv`\@fD-fP^u3M8Li?r2~4 ^oc~|MYK T[8RΠ᧹A`Ac 1m]F] PM2ctm*PY;I%d 8|PV3F$QCpgkFH&@ssSg`*/zs~lY0 39&bPfLGęO IIzdymA#*!*-s8픠39LYCZ^l.I1ewrƄI/g u 2_WO)k\xۘN888b>PJa2Zk\18::… @D֡N"1\.q8>>.uHp{< Aלx`g~ k}Ch,'-ԤD1wfZ@'MX :z @d:[~ԹPj(bwhήƯOq!*0rJ > 3@xAG$FEGWƓbYH#@s3Qq1b'ا4%98[g&4r5P2F'i)v)`B};ͺ%8.ɗK?ʀ?qGvW,O]Wbjd,Źy`R0z3B 8\k2FuZhNGGGx3O??~2nܸ00o _%ӟJq#~xq%xqE9^զ7~-Gt"A]Ji4GT(l&7jzkٞ|-Mf(w\=Uw&g?_ZcZIqsfzAf&*)nU(/ߊ "^ > "+ Dy& >HTPViqĚ^{> [y}4 ߿^2n޼|xk~:.^w}۟`XsA)#@D}lllʕ+Z˨7o GGGx睟_MhFyNT 2@|=\nhK_<|:~ʏc(FdGF6$l 6BLN9O_JY$ p=]{FWܑe@BÖAgv屸DN^Gk)dە |~_&1l83 @;ii#}z$LQ@?K3lQp~!*#@ k:=>[mbN1ʹ$Pɋޑ4J@|b;OU,dAžoE>UCtmqKTgs}z ~7o|888h܁x7pzIh]_ŋ\x`7<|>ǵkנu4 VqpplC'0[ځp=,KcQfq-Ȕ% c^I!Ewvu~:qIЧO;h" 5ȕmygm[ bbײ]7eR0/~[= &J.KX~t*y||W_} GȝwۦrW^ Rq{=CUUx`Z7x/_1>||W^ lSOc8L􃙐+GdlLde5LֵD?=3Dڊl>"Α΁F9٩s_Io!9ϑȁ˜}4~,!Sظ%5h?gڙʆO<Z؜\l* *E@f֡Pc 2'X_H /D( 8r}*Ψߑ{w_ `c,QrLw6H\DnBo _udP$;|6e2֦Bra]_vWvةPMt!hUz0i0`# ŧǷAf CLgGm!`:̑ΑF9J˰6%4]<TYH : 4_ \ JlFfZH=wd+Hi,oz=zW }vӿ_I fy׀.k aFpOޒk(qp=3r@M7`n|Gutux0yuZ Tۈ'ĉH?ʗ1['xe'J;[SCkC.P* Z\{)8cћrYЂ|i 78sm#iM=yb S& 8dHq 2,6ءՒ["pm( A>b΅F9ȯajs@,1VDBB^|0e`BG36yqk9jRyLxm`"VQ|(=l hʶRƮF+ۻJzV֤^tՕ&4dܪp* gEN!UDڼ1< | 5cYb*(,5g--$4F 2ﻵH%mP$ iiYۺWJck{W}B~X݃@f~/ 壗QxGҗ>{on El<[TJ( ahiG<IUW\{G=9XB'[0x9m~FGU% .O띀||x~$] i. c M8r|[yF4͑·‚O!$~tnڛȱk.-τu1-,㎋`cU Fp 6y%-;,k?:LS yw$s& KW k( ҴOW&@uЊuoF.oLIpJ}bR_.vR_uK C+r#D؄Qi׾̏ݞ n Bnx|f-кLY+[(YnJYhY2 swCAs짮1o >tM c_cEd}OyLYؖ8.a3L_ ǛXGFBZ7/4nt4s<4 `2ִ7"h7.H;iUm(y'6߰k8ʿefW/=UH 9ڲ~;%!FhSPE*9rњA0c.0M-}"TPSLµ5 -&I2(7H6m(t )6RֶP&Q&'L˗޺$Q(َh¿9C7٧{x'/$]LdTxcܯٶ.o /sL,3Nf+5駎|%q^C@i_r4JehJI_[NVh"e o+kqk,[C9(N}'YE6P,h8MJԗbltvHg$İAAfA!Ri!HoC`z`"к-oW"0LqTXJ6>f/4+_u {$]E"`. Cʖ2teogc(t `M]ӥm\(kc~ۤlF:Hg ]I >_Y'd5̆h^LLt1g隑vN#vT9`KDP~Aw ڇ'>g0N,pt,: gNۮ:#,ַ*0/-?ɼyV%vv2]KJS#\g~ ӿLd`2xU;s>"0QrVLKau4dFTaB)NQ@ ߇үE_"\K2!mU?Pڮ4&yھ-KHG@5(erRVP#fml^\_^qGm׿!O z%cpMPQ;xLOIbƠ d"hZԙVz i[Z[QQͯh+uM+Xtf_!IzXIt٤sJ [8V1Hht&",KTͥI!k-2,AgXsFh 鬍ԓ# &Duvgn*G(EPh!#;E)&ƖGDPJEJ㝳n ;o e+ C%mZ vi)Cu/,ǩP(_ͦ5%wpl1=>ގ'ϮÆ\gOmqJ1:kjFV@jtUT(+|I\GJ@r4k/v+ ][i88qB,i:뇤ZSlV]{MUc~.$*]bN㤾Tǎ@ (@e:D­)#58yi#Lb13d +wuloRbt82 ^ o O@q93M ]b\`wd߀j7NO(7jKX 2 `(lGZ݊.N/mqd/VsdqInB#.ӑē)}9ߊm&XϐJ0 cc!C^|T_I/q$r~0D^4Wxo!oҺH#jKS$tU\*T~oyҊ>(`3nc&z%ɾ13ewPB ldf"rV{2- :ۜ퐂4ҩh#ңL Օdf;ۃH@idPfV&L:؄; C) Ā)m0>xJ Rq_ -ebH9?RAAOr #ٔubF/4d;-B!~%L"}ŠBH48'7(``X]赘&yr <5yN~궎o?`UV&l6ȉFj]ʼQT(/ӭwj ˮ 6}~q^xW._'e&&~Z\ۭI)݋r .H,Z{lycQ&-]IYiːU=JcLUط,+\IcY ̎,m<2]"H#F9ҙ)٦K]T'-%f(nQڮ@f]3%sH@oĦFQ&JK9g8:q(39$ n~Ⱥ)e㬺Q IDAT~V.)CT2/z3qAW8CѾF*KU`3j=|#:C:7c.x&1M8WG%>@ʎn?r)o Оњ+>3%`Aԕ4R*k'3a6{[xsσx;w#ƫӓc%Bko݊˝=ݺFtTS|O:kD@JI e[SPg6#_O:yΉF9/lq3@/]JVg09m<aoOV7ƶGʒ5L1kE$:A&Q-H!rc b'E_?86ԡP F M%fl `򄵨\:Je;OH!ϓ-<C,pPv=i+"Ox^8FH遥&bn =-c*6-*.(P!<}\ǒfbp@ ׅPq}J\'-رXDi"dlo@"OI{>M0t]u=Sx'qcK.ٵԺՔNQv @ﱨc\֛(ejPjlP,&ӴdMfqyrSC>H#F99PABK(8KiyʠdOG-MF$ Mc-XbK.n;sY&2~)nTfe1u_ e@bܳ@:y "--/t|mH >d/h!@[U( qflLl#.p Bd}MJbzÄZEa]xbY&Abj&~W9&|~h<0䖎e |V>|m_h_2*ÿ8>m *β?%U @ [VTa/;tͤU ur9~tcI]=tuW2Oa(,sXqcJ_cAHD#lDE<#OQВcS,wE.9)?(G䁀f @*\4 V2WдCT`&h@=D0%D McJYji]"QN 4k_FDs^44^iǫ,fȄHϙ [E>~^#tZzM'S6DP <GT~eL{/޷l0?G3שYFJX3fmlx,3뗖 -U5EDxŭwk3cK\7FZt e{ m.H4onqj/]T2} ꑰ$s`?eMYeZ=KIY@X"jln)F:;@s3o]@@i]m:.XB`NyMgKv@Q%QeTR4e2i3鬰l#ɕ?gv2gAYԟls.=U3>S@YSy[Q&+>NҒ}.L+KDh;άtD=3U<_{I'Ɓ@FZyws_M+`d_ou8̡bnB_S䕘QR6ssTNwV`L9Wa"Ueս (; \!:(]*eYt_"g?.wpp +yeErӊ=;=:7ucwԜ$QzER V =45_IĪ3AHAb˷R.M\ksY{ǑɊ0͑·F9*rk ML b&f9Q=s1)@Cr'SL+&./rZ1DjfS9 `_,pVUeIbIV^zPFHħrH~O =dJ:W46oIYAiF)I ٔѰQ,҇dWYfT*QqJ/ 9+||Eӡrt") 65"!(.~aak{;qtƞyje;+"4h'3n  Z<Ps\gƍǰw6^\,Z8 6ň4wl}:S_gG!_;]f?D.!egZ;kSkX5@3E)()ry8L P_$M '+G\({th#3Bb;7ML6t ɒM "Du 1"`Aku-1s&:I&D&0sD(boӃMxIsDS͔IX zsقlH*'hL @Ezx}n"ugGu1]t?aY|-FFQM2&mC,Zh {M)\[]'NJ1TAYi LQ >d^NH&q~س|=$.`PՄP>5% 120 3מB s:⟼%lomݷ`hO)M[new3;^ND2]hD9νZcFKpg+fG O彛DE2pylX#0wM6N ṕ%2&;$tmx@s3QO%>b"X dPD%($ C2hNs_LL(=4*j-Y"&9H:RX} RubwE~Re41!geXLT7^"$vUlyP9o@gZ,ARf#Kک,< 3s-`ჩfsp!UMԢ)IO }eQM`:Ůu/8$FJԂźRTRĖ[BD*@H-+t!Y\ck}2.^/}y,s|2#.#+ʾVvb%k߹d"Ţg/{&Jz~+d#Ѥф(hz'{Zee5,9Zc^d4͓lQ4[yz-{/ 7Vi~Hg$" &bps 12kqLJFymXpcrK1~qVLccN<$-A%8ZԸwbh Kē~1ך<* eߝj1 )TZCki,Lc؎r~J+N @A4Υ+3 kDa^9>4*S:|r}52I]k[\&Zc#3G)o~Q,xb6{>Y;v Tu)kc`EIp%7~7^aXwsg+0j 6\qlp>mZ9&%uzEW.Fvmg4nlM]D4PaK. 5M@3o67P9T+̴=KP70lҨ4qޢa4S*aƄK HyvsP$w) ih]iy{G4G:",LN E.een.}(.e\nyF")9&=r2.PSoaP8D 4,MҔW b$nf4qsࣽQk!>غy_}\t B9>x Xa15 *LSlL'PڽaԆ[iכFl@%? aѥX`FJ+B倓"&NcmƁ3цìځ5o:eABc M)ZW02ƽ9 . ZW@) @Sxu,"M*J)ǀz 0u &fژPf9l qfKo>F-f"2a3ch c: h6ؘL`d`I U;q4o{ܪ>6k0U0AqV3rUFCXq0?hArӂMUjH0 Lpt&64Ty 7vM$7ZǸ%/s#5 0ǩA`N)kM} ISe6g?)[ۍS{M(/T~;G0bqdeޏ6eQ?TqU鲔&L *"\v&&ZZȊP KR(BɍM|flhve%Un>h,.klL5 &5q +(Vn,TJ9!ӶOxD rBCbh NblN& lC'74v/PAJi6SЂ{9L}˂ItmX4%܌D&yE7%F|h#Q`ZoO"A2j} VNyk u(scx%J`c\ B far@Tr4 ^jfb*|&HMTo SK߿wqpxG>+\å pig54j0Z&Wj*c޽B( 0̘mP Y[ɾRPU Z`C;Sn|0Ai܆ݰPU0+420JpQtZk():wwܰ&9v:X9q_Zk8xB)ej?RTZ(3On,ȸ3۶)0h,m?X,1*4 Ԯ= K33^ꧫ.9޽Wath461@]F1V=zq2ެ A@i`\sld4 mêR0Ĩf, `qKu>7ܩm?Jc4KlVS"l*"e e,ǵޓٿB8~i6߷n3AJaaԊQ7V8<1ewqwk<Ol;S`kP 4:V8+o JE\ź4*IR;Y K)!`9dIlk14^}.&irQ~h'j6N;Y%lʢq!N0kZLHCk 0 ^bFipA+*ƅ asRQwNisfqc1`eKi @UE15TE0Pڮ)4 *4[\0JH!w7Z, UYn( ɹ<n,545@5`c1*4vP4 &7Ѐ n` sS0~X3%Z3"fWjC=ytp1גjg,|ǴFiHg"!R8ZF?(Pǭ`C^@ FRys(ѽ|RrԸ?n3^ RUT?R%aƭ |5=U X`hKܽˏܓ г pi!DN8ޞ`2AM*m5pKSQu`-”,H]6K:rXځmofQRo-t1ZETQcmW7 FJiș(֌m"kc;8ؘNqa{&ViJiR7F'z V,\fӌqɶrs|iō5e̚ KNnB&hDi nJc48^.lƠThiR”Ɵ9+,J 0 hBƪN\7Kz 4~7N9N[l=_U Q/Qj ((L46&,k(eƮ~"&ik 50g,V;X)a9aP/k415յN=npXsY"+a}H۵A34p H6m] Gsz nTYaREqIBE$~*V4(r,N*kۀm)ר7kfJ:buگ|ܶkk_׮n  `T Yڝ̀vPpN q:M sb`UPl0#Ɔn tJM4* /aؠnj((L73m{ gMV1Ƞ"RTSX614Sk]ѰB΁a"TMd6RXWvO٨ٴBXn`ؠi Fal`jq‡eSCix@MXk#Y5Osx: ǔ;";F?H9*A} f 1D `§MG-}%@ٟ$`T_{}ʒ4ҹ4G:(0R(" Bk.YoHi~qfpl1>F8k)1Sҙ1U(ڨyKzO[5j"L*vι )L}*4)X1 ZM!3Wf8)V*ƠҘ8e1ƚV%'sؙM1ŤZc:0L~1RNz絿4V4,|K9E3M.>0e KsuhG2j1&`xx\۳)fk:<̜V $yf7|l7oP0ոX. dG5[VGΆa@q*@Uڀc5BƂ 5٬p|.ʗ㪔K0*L5f(754bV*ƢnpΉ,Yg쇓 ?ZY` `q0xwƤ"L'[QvWTP7%`J Om(<ͣ%><0Wf6'~ʶ8OTRz @w/aY¹5[Ȼ!@k%)a*TyCLu׹.Ԉ`H,dXg}aU ((mIO40NgASed0,ܘ6g Մ0s>1 lA3%0S(LӉtO&I؞)L oL'hOk2|0N !Ե3u:6<]k]ߕ2j;/*~D\иmPJcNViYYOO"r󞜖*W@`4 u,L&(9?M`<\KzKxg@Sn3I ``6=9Ok/0f1Y:i34G:'/L<Ӂ5XҜ&]h孜}{btE^3cVb _+k+Lh8E\]DmX,L0ZbFS0 Zi 3d^ٿzC|!|Q<}&NjLĥ Slؚ͢Gmr؇ E9` ̃IU͐yLJ :;-4!4M2YVi c gFce!,ҽƴlw8Y48k<|; 67.&]&elU>Nb)k c0$Ju7)4bSj7'te5lTspipl:g/4dW0ƶ"c+pdبl 3|RɏlIoȗYUYU"E.JMIQ$-B5I -b7HTu7*ٕ֘^ 9ZcoDn2KZ/3=f;ogdSvlV(Lɍs$bo sC%pALs^2f U+YtduQ-'mUQ6cMa`^*jG$ѿ^jS~~ۏy#Gr4ŋ:jxk/p&P]7w..yfgN|pӸlg&%ߊWuBٰ_NZNas3t79oU^׬NM>_ qq'B-Dt]U֓=]Ba +"D0HyUS־UэkEکDݴJB ;Z1Eb4a&;vs0FMEr.iH|܂ɧGZQƥq1&}ؠu)g=w}R\lb`^_]?ooKEx?7XK\^{Js型GʅήZMrD3FLG"B^h3;]AIRHhX]7H΍q4Sΰ֨mB>U+*q1)2N1ikK[3GJ4Ek#5B2&-3HF>)2d{JR^rqpibl7qz֮`2R]ѮBRļbuӧ/4 5~ nd gݙLFK=yp\+y/[Fv҇0~h>66tef)M?e56c}_l~R<U߃7j8uPs<,:Y{=4Gz읽liyYӵ^ ƭ ,1Ҥp5 )3dTN.2V(qء(xS- y^)f"2#j&7سFFΊݏ㼌X%حp=k;Kךl(nh _@{@Xf%1&F"n*R̂Jm.g>9wNM)1H#5jmx4dUYc  _7zh*.ۋg̢4g*e~T OzjT#}|gglx](Ebbpo/s䝯?Bj_!xb"D! L$0 ,9iU,IH@A! 3eyO\3O.&Ɯ3`[(:AA9hTI!2а)sƑ8 yL6NU8rjhu3(Fw~i"٧骪v}?^B{tzL+4 Y/67Ш5[ 41Gt*UoHnu)>WM|p&+E|w0_t= ف=`礑04,u/u~?$/}UǸSbWyA?a<2ՏJJO<~};/_nqg/oye+VYM[.eF`ju`OdJE31eDe" 12HH_R:g eFLXN3 X/dfkuYŲ촳l]UV*y>]*e 9)n+E}mx$nΞ8d@G.r7kIE*K)fn\b7wt}?'7cN!rx;7oE; ';9,R?GԀ6[eR+96bhZhpiL9";xrx!DmZM,ĐL50ȩTjT8.g)ۓD'AX2[߮k=^@ !CJα)Ql %f/4PKEcaȉ%B siaRjŚZQ1ZKE4cXr3RxLɈEVDlj.YFri1e%H;^?8# 럹 \j |pb VzsRi޷Gk߃M=4Zٞ~+ѵxhL)C |`,<;f74;öw]]e! d kS)͌Sn~[?'y?[6O>#|.؛O/PiG?b]h*jEd)%ec(r9r2.G&Xi!Fv;K/VMw,7r&BiK]hiz$4I45E)iu^,z!R*)eZvcj!!4+ 9ch=9Er6< s /FY-؝A\J Q{MnIV3iLХT$gtqIzW Z6EdcCL|~u6y$omv _@zgP*+_(:>-W0~dd!r+g<cDB&;soWZYt8'w6130kE_SW5J؇㛍=yܑ٘0;= s߅rfq}LW0KZ1^4CUg.11\faa 1%iX0L:@ )%n[g , ~|3Ϯxnƴͷ'˰OaZ5$&­{XF;Ʋɪ@e᭪wXnb7 N1B^{(EKo-88 4,ʼ,lhL}Ztg`ݍt |J+;%k7}Q_ߘ"O ~JwOL˄dw+l$]%S<ܜ>|yũg*'gW'\&:pʧx"KSX1"Gw;vńё!s*J^")s%9'o?hh)K ]BLNYo f߬t.oS~ݙ|ſ_gOw&ՁF{y8  ĭke2'%Rb`L`~铉)*޳S2s:PJRI1S4Gew@LK*:7N 7q4EPZӣ< 9X6`>)%aȤ!w4{j+hk3wVx5EUXjl.Q *l7jf^{!Y\K !S=VZ\]ox]rx-^Q_?W'+h]t)P+F5<´#1]>axpqlLJ}nD.}پ=|_ql@%pF{kcoێ;ß41/RnUalWK = ,*I0vsU(]-'3AD0 B!SratKaڙlp!2 , ,b,ȭ?7.wCc;Niا+Nȁ\ Սz?1Zg;VrL 9Hk 1U|~x"}Xw]{%B5t3gL@MFJlof$eҁn`^FJ3R*/+[chc3Itlz,{cERx玩Ee#sݢ1*y{~7G,vl.c%h T~^ʹΛr6!e FH(f}E#ϕT/ʫSDAxq)X HB =.=o]cJn$<΁EhI]LKUnܸ)ViM TKhHP~[~[ys6T8fZ IDAT3@G^]d"O#ݰ"ZKo_L&g\"mAzd$96b7v@=7~2-CDYϲ^n{/;<΅]2q){c4Ń) p2{UBr3Ax{AAe)jC$bL*ABDU>J$ҐV@*҄ܢ mEb"c 홶PAi0piz&;ix1/HGq$;s'w)?^(0&fJ XJchaBk.Rk\H5ۦH3C-F1fm²4Z*Uxk&c/bXDi)DU5b >x,jbzO4_@kCQl岭 ?73y1KYYU+zn|эm)GS[H80aoؑ覵a<4Ưf~): .q?-?L/|;ɰ]%V6;3ndnO1f{LER<D"ʩD$ ܔA-"~)GkO3%_9 V N׼5|@9p[Z+g*Ә &v/5KqRMvаLIJ<Pu ) Sn.}_t?5ak[p\eaV{dū;ઙդ7 QkvDaeI.{.v"ff=!9})ߨk0$7\=:]{,͋*8r?yZOn+^Zƫ!Zbnv2aFv)0Wn5j5( mڽțvMKo^JH*̥Vme),)d))KDO!@T1J>My=NiTv\^Ӡg!L&U Zy OI]7xdı WPIq2 `lLzVxvhE"#v5bkTdA]W($xWt&- e9DڀjߵDAxt/qkb#;t"AT©4^직1RqH~RMz1C4U[RVLvh[fGbL0(f2qB5TAZAU /ɻqKbrٷDրTR yv.x"k\e*dJ`Nڪ6bFkwf9; g;C!|:pKS낮/ ״᜿#^,u)",Ks10Ŝ. u`XcF]e*wIg47}tOs qwi10u|Xƾ. hke _גoHg+0h ~W!~ko\pz~}VRS$-Yj.1W ؔ&ƫc6xu;Ӛ0~`Hޫ[:ݎEfxD<<<,PQҠ 9E agsJ &cC9 Z գUD.p1bՀ.9FAL-Z;KnXHc"T(PRݱ[b@JBqF'5鷵|L7Slm-c2*H0imBup@)e!Jx.yU|qs'zX%YLRs5Cnkf߬o`D ^8 7@tA*m *vj𭷾xL@ajǚQɗ />u<$ײwi"pwVJy>LfWPjp14xF:2}1s\N5jԔX,]aI117[he!xz14\e()9i\GsKJ#P;W`Yďo0*na;ӵ;Y6aMj5Ϟ3LS<&R9#n[7g+ CHgv$l"@\c$ delR6ia3DJCM؆6]ߛf7*`,ҝp[n<$; DȘMҔX\6>CV3Y%oOȋR%r3ϕڄejjEc|~ )Bc/ce [cVeJ-J@-.Ix:f1ru*6ۏ Rd",JNQ}|16}#G7yzdF'g8 n.dr`n{gSGƬ*+|#TQngY"i!hwTZml.U-ZS;yī6t{xY-/^(Ϟ3~сݓ ċG0iV}vs֠ͮx R>_ҠUX휫 Қ@T-H-ZVǪcL`@ G`Q2ðBNtqfMoUj1YiHe5s~S)^4jb=©4b!٬TAvY6$2lYy9=0n}? |-r#Y_Sڝln;AfVFѳ-.Һ^hsfpCkHԴn\a<8cCn 6> ޾Zlv 6 <5`Øޕ!qJ+wdzYRJjX֤5HH aHb7g6m Di !@J="6!gbTC D|8 |[+K4F䬌) gݵȧ΋ e`g+z كzDlF'?^Ű 1B/fƐAQw7AVio?բ@^ǁ$wv=ngLC s smh na}Iilc:n'Rmڔf@)QDc+MVXODƑ viKR̻a6d,[ uMVU /5{{$(WUcr6EJE \v!D_F3=s j`LQ I1^ƯOώ(T_.q1rpͤK}C vlƹ;1H ʵ(o"MYr4{b#G1 ǀt[wiݶ+1kY{8C^\R1)ˉﮦ[Z}qD-xEHTϷ5cqڊ')yr0I*'Ɣ91]avqQzoMXM!)jLq i3~7IRiYB-\*m=iE74<}8`ʗZ=gXqw%chܛ ȘLYBiƨP֦brR+syi̋eY72HP>)U{q [X}V?lݔLܽmMβiUؽ$^ Tg]a3!Z?qH mB2ٮROl yߵiyx<͇+_&ncpW˼elL:IMh.4ij@6A9a>f.3ecVvUjS, >v0PsJ]&{0hTG1@t@-D}H_Kv0eV3AbsaxΛg[sG@U5 &f;MCإ{j:?;$+m=[Ҭ_347{9[|Jg_f4t}VՍ409qSs3CvFoR+$q1'R\9iigEKeEbؔ]PN=$ޛ F.R)¼4( -vܮEER݋Yg,?fTY]w; Vj@68$x4fnPQ0rJy1D j`ؓQr<)c"( J,\o5v1ŝhb`r?ZҔ1&ĎeN$m HTN:Ut|WG-4^qSދ)C{_6ztz: V?ڷ~̿e/6AEyrG??u%Ǣ)Fr:iwVR|epCdFqbg299͖FL)sdڍdbJqCwD]j} N3"q&SZsӦnK֞JrӔ5AJuN̶["@\B8((,˂4e)`KTVEmv{4=M(8 R e?f7[mvvn֚/w{ǷXUWF@kRu6Ҡsy'޹?x%kc2c;R8X>cLhhOs9iʒ"7DpGK3] )51jn.4ٞc#֮V6}]y}_)Cpc=̱oh%7JuQ_e?%G"Cq Pٸ"g2~z> ]D)]cFrQTȐlS%XC{Rm9vFonRm3c]FNKՉڔaDgOK# )'c_.'#yJe]8[zY`)ʷǁAyL)( H`y ʔE7|rs0 , )$6DRfn16(܈; W4xI"S3f$ɨ1KE`E,ELp}+[gXҔYN* 0l n^LAyn\-[ fFWhƤ#*ݛK3܍D7&_#.WH|1Ҹ|66ȿQtyKu?)@n xO" =A1j8 aiF#gl\]<2i XL-BkSBb`.sHלIjꀭYǢ{5%FlJLNƔq V]H:ժθbn0gk_[kH&^j~5YG+Xr:-Vz}C,eD98hTčEZ˚Wi`S"tKM^-A&4){`ؘ4S #jʼn"Rmcnz4!dqeUH8>.]ϓ+A*.յ̦Sp.}$`SYr( |Mʱz̏t `1 14䀈SѫdQ"C~ } pZ/nfg~Y*j~)2 hM)Tl%isak`rוW 9#s EO8t91B@<{znʼW9<E'y+2EA`(j'9>S$4lTs REPIkyzیx +c%j:" f)"@Zui`1)4HԆ #? zHq$tUgݔy8뀆@qfe7'OKv֫)BPHC~ZfJ{7bE8wVVFSQbܝkw1n ZvYSgFLq-Ȫ8%#FFWfݨhڼ[Qۆ.OBx# ]0W@a7;:eܕvC}~/Q گ.PU)F*X{ip#°(!Pܶʔ2mB90Zɧ _!$hhugM)*/8$R zc=8GٕuȬ;vk|a}ʺiM)}WVIc0`L!u\G;<$,,܇(57!Dx7X!. 2;dLGIH>?.~yvؑcdif~؍3_xVSƋSm )9lo'?zZ웚2|xc4<XJc]<ʛS*.F>jT Im\ US2i/SF\;rŤ.r"#2/9RU(VDL%ΛSவKBMCx4(駷]t9Yf=}ʢ9f@JvCf7Dc"wZ0٫*,b&OYa% id_$q5ey'^bN4Y@ J5SrGc;Q)BJ}X RbS d/͊_.hRO<0i1.4 aJc IDAT!2HLA=nЀHIюi`L ՕS2W`]H-cr뼐s2RZ[D-/Sd6Ҡ,R MK$ӘJnVsTnjm#O_f0U]-Kԕkf֖pvl*΁QzdbҮZ+1چF%Zf6NFШ38p =ځp>߃TRy . n"n|cE=e)B ;3S6IYuL\ZY* . uvLSL$pm)1xݏN?*C"O@o [0h};V}xk !>Zod s-y4rt \7%w-~cι֊8|ݛ^ 6Yɦ/@@6D]H2WQ*]U='ckǠ1\ɬJS<{GĎNJ1a·wUC*ukWdx4 ⮛D$|`\'[U4z1]1.b ]k>Wx:a3@tW(E)Uq(]%=b* ThߋQ{Qe3IיZΦ^r[vp8A\g;3i>kH00$i _njք%{̍vۉGl[b|p_MJi]0YzWJy}vJERӫ}OdZP_SlMDUӁmc$fjfp{;~s]¬ ɹ2ъ?tܯ3’o3c4r#| us̞Y]/ZϠ7]|u&hk8Ù{NY13 dbtij&? eYi/:%bUԨSeVmV"N^yۍ0JqqwF{f˱'_~7SeKN{+O:1PCd`";p(RHYh!10 RYKQ>; Ϟ?! 1qdޖ͜ ۻB4|؆j͸Ĵ]=/3c)t&x$'m`nRuHs!ڦ,nS9 ^E6Vg\~"m/Q .)ifSoq}LSB2f @hUXb1eC7c6)QHBζ!*U9, $0;c~fmJo+>E"..EWFm$T \m"Bo/10 lB5H*j i±`ޥ!]5M^lFM-" ~lw`*{(r(<3My,(xZ6Vĸ-lĥY,M\9(%s,F#HMJ\LAJ3j_c(`zn:ԼQQkoTRuz46uCFsˢ,"մfkIX}Mx)NTMwO f3ȓ1;DTmCV]JEzœ+A&Ŏ˭5|<صgFdFM18xfEZXĔs5KA%[^ YF[691 4Ս&  BZ+ır&UT7PQJ́ K^8fozs^μxsXŴV+nK1icOٓA;~֟)Te`1do?9[_h*hbNSpݿ&8͋p,h3:H Еs2:hQY%=]xf<͇o3b,џFUBo<ҟWO q4Ƅ=y5lcz7q KYS4#T,W+ 9`Uz'L$GMeQ/~yKmUo "4FbtuZ.Ev* ~Lߡ6óQzJk$ 1ćS`|Ȅd!E!Ӧ4ϥ5@Xu@ ^n@0œ%^јB2otBsiތCmGnUos޽ϩ+K\N߶)M0-o7w 7e4^랈#:C%Sd{ 4u0gcʵ!4^5J"6f"|17>&[ ??6n0L#K^L`cgȕPKiL>?6 l# I!`ق0ܔD"/Sep'h}Q*'*(j;G:-U|ْ Lxd4&?`ԩӢ= p7X$([#-YQc΋=DWs]TYɠEöNQbs|K8ͣ*jy1JoH1c!5%9b#12#]HʞeNU>wԵy/`U @ܒ]_i+ӄ!BsF5yxRپJbrYGYv=$ _8coyj(WVyfK0μ=fgfU^\4j9DcFHAF<53r89Z፵y,5S("u=y}M=6Ŝ뵮'Ng8y&8`r(X(GxSa5}ggLZiůѸRp0  lRkaQIx~=E\^]s91W$RJn(9\T3~NM=wS]Nd"gʜ|Η&syg3ng׸IN;|t!#m83ٶNGک?uLHLx-Nx4CޝܿQ_uWͳzV*{Whƺ;vz/Y}W 7MQx4H~gw& wej</-RRb0;}\+dck_M>xD`|7|~4 xvG3l'#O/F/&(_ݱuһ"arJ9Nz%:!x['>%&g]jA൚v-%$S2ßZbxsS";vr^ _cgha74M(mw3Yg ڜN*(.f ,WDV84`_XﬣV١KE+-X]a!WϗC"֍b<%.U.u"|AE"J#ڣm0ـK<~ēM'o3?Ǚ6f6!2ċcClHhMi&Tɨ[&067~mX_R6jkwr[+UMFU\-u\6۪ҺCم;3Gar;u 5hਸ਼FLW gE1;kM,Rob3+S]1Ի9R}6 $f$v/Wk=%"+j58&KghOY])Ŝ˜Y㑥TJ\ 9< 13+N>Yi@ эȂKN4M{Y=a͓b$ z̖Xemvpkk-Si-՝g`SC\l$pC͆>i1VjcL Ecm|dJnJ.p<4ҨhVIaܼCXKuSpW~iu]׎dC Hߦgw7{qi֮Epkw*i֎fv'Eh,I&x*ݍI9QGSxr<͇-ǟ[M}?tWwhp/b020==); kWnHx r!f`.iv1f40mqM?ȩ"HL`A C<Ҵ__>׏HlQ^vD'L&^^$>mx<<ގ<،qh O1%C]xXC7Ij_ c.6\F~w91qנ( )DJNj4- o]D Zc}m3;<ڄ0&$¡,W ʍ[$Ǭ<7wi)K(!r9YD SFgBJ=_K ݸ'xA#H>c]腒UTľ#)E^X'7z;.[ju ӓU:׮'vW(Ghm:{Jb3Z_тf5m@mi:>w>ϗsy ǽW7_ z˨iazmh3Pxfd.Dž/-/R!bG,Bj`L B5'EU61Ն̜^Д [^G^.^\{{8vmv?p~!nvT*L)Z*ܸ[2o΅WG~y\qfCO.ɕmhk@9VCJͷ'w+G BpJ㋥XćW`qMb3 nZ.'QVnw0 &8D7:JXu繲9"N[nҸf\Sd3&t%~L؜~xK;(KL 䴵k>bNЭ6ZK#S[71~.uwũ1B428FvV=˴q)EXQZ rvݺw;~O<״a 0ZPZMV=s^<<ŋt\lFB=6?_l E,R<&jI,#q7c2qACw|@k%>ޥXJNnzo4"`S1xnUuT49޳hcDge<l}]֬S$(,gFATII{?Qr!pl/3պAM86Ӱ)r ,Y b;0kik)@m-ۗV=;Ǹ_92|&{yM9vdjc}bNJhLbp)ns^$Z͕;!ZA4wa|4Ʒgw'/A?_?H3*9/=ANwe"gi.+ʡ_s*C` E l:0M(n̂E̵1&ulp=&ZبmO.$.B%fwbF8ٜ*q! 6RRןxI r4{Ϯx~(Lۆ|rF1Qd5l)>J>mOeN܉V 9kX)`݀[i<Z[Vc,BBQ;U)9RWW˪ 1Srxj!>U ACjݱj ڻkTnv.\RdLdEh_m˦_w٨& HHpaXsֻ͔Lqq(UNYu出>VCksW|!vLFэf!NvBAmٙih@?c)303|TR}}RAkKsmT^ X&?< `G5@ 9MA_/? !eg x˸3s@͟+,!B HM=6 ے=ņa;\c.pv&j Sg!Q BtKMv]lcr)46!u4=y3g6C)VHlrrܛVhH҈Jc mV`ڮXUwػ8цl!U._M&.F+8ڦipt;|A`(_\ȵqnYCj oY wmTrv7oG8M6s erJ,RQǥγT[ci˵"\xQwIڈe֦Kw $pl)ֻLpo<=ԨI0{NN~[ !7!2vnD!&j,id K3Ѡdmq |>'C5dM1aljƘNl>#7670EHFG;A>eQDa,.M)r9F>}4 97]&g!\x'ytk~vCujugnvZ8iMl&}s拜=tMN֓˝?#ZjEŀPg<DD h,E7BӘUk5atcX{mL&n!8Aue#UTDA*6{nRZ \9E=`ǹq.2IUZmjD@JF1~X'_uTy8(h4+pT3DZiSx:La┮XJz+$/U7|]7˿:czv͘UȵTmo4QL7nc4um^4jjNеp>YG n@d$BfՕ/1 54 Y5r0pEZQ(w[]0КD` w@UV/4 k7RB|hZ![*UPӄ9k$N?]/]{kεg)ڤZ^_[6&Kșs}PI*d^`}LѴlZ$*Ǜ+xt<͇-/ubo^l S^l@WRgۺ]8g]w_]"7x*)PZcCd7=.gR{);aUR9psfgK ⟆v B 3z<"1biC]w4p:i[ZG=0 X6i < G~~a;&;鏬#綂nuRhAӮv Z+ơn }`c /n 7sb:.U(8jpG\j`rQ8Ve+bH˥£%k$7uBj 86OZgo~즁q̵qd w}nu_7s nkDsp7{>?`*phC]v]]L y)5 !Vj D 賭u]f[ѝսLu8f+P .zȺĜ\Sx w >6?Q!C*ޱNL,s-T5YRJ!cbuj1uNQmKjΡ Y:c-D*DF]-CXSeLn];$ h }:;Aq]ŹX1[o͌n}%AޭkM[ossX_{^KFC49]8o=#jtUxJ=B#,& Ը1s}D=@a|>#֊W!Z?%vυ7ȳ,{}YJ];'R{lMqb?Pe;?wPQrk&Iix: |1Wq[*sS(%^Us*5iP[*S1 2[tVtBlNFքP_% HdT+̞ywޕ0nic\Y-Ͷ*րL;IVJq$jRԨ @K;Qy'4??t荜)zNj)J`ʹMGn$ktUUDHjpG~ҜkH5ۙGYOȓ0sc.uR' |NKN͆K3;D}/JVW=M*f4N5˪(wvQU&MF.u?El _ PM!Fa.{Vw7]"\t  c)Eƾ(_d3+LIiײ.0!.RoBQvpǧ7Lo;3c iq;}R:Ĝgatҹ4/wɧ[_?;|8Ï)K8{`SK?Vxy8o!]He\Ҋ\(q7i`@$Z"]PEFS"!F) 1)!&s&e%Pk<ߧipǁBN% RZDkj״iZQVAɵ VXu.Y1X ̦Ho:zRNqBc"FPRL #\l"cԴV|jY نdX+:-<Y߻.{mZN3ٿgFX&tC h<ժ UE~2!qDVsV/sYvMZaDbBKE1Ե”;>Y08$k'R}v =<)zWyF/oNk9ø6/L;]3`7+1 Fͭ17ecfQ޶ʐ8ʛ?.v / <&n򂷞T9 !тEbP #Xff}Q0"!bD4AYThZºzDIɫ h-f$B\  $.8( aPi\DsjIټ`Gb \>y:` W|[JV*51pHX鬣dߩmvKm[#챦mDkR0 jVC/Tz7W[v^/s1`Y7sqI@ b:?1z܁\t*oR.G~qgL!{N@9Mvb_>d@TZz$`F9nsse_UnrQZWhf&EOBm6W n鍠CQ>,2c1ܔ,(4 G76[2ExDvUJ1mxq;s,gSO|zvd; a?3婽#M:bڶ)>Qgusvo^~ÿ?擏GHc'\gwGG6?;\^

`ΰm lͩUMQBRJ[5D #-㪪PmzKO!`-&o <_c*53uSmbRk5ͩ-KvPMQQJ4I)Rmͨ晭PRiI9똋bq0(t6TU%fC,a-#S}/|`9]?^Ϻz)ܐ+9b[ !G(Z͑8h`:m\6_ р`җ`28S?3 IDATs~ N*km>>o9VCϦsxN=@~%r[S׹!PMnw <;/4 ޭ_5Ҹ+ Hi79s,c!e"KUT7\lϧnJcq*RmK3Ӂh;- B%`z9MlH ǣqÀlG7輷Z Ivו$ + 2b6qYwͫAؗFLj)Rvgy泛ǯrb7 z)Q)iܧ~fOʼnqY܁J@(fFI閅!Y== sʛcw O)rXwG-2 '4e @srUyq7 v5]˷3wx2~Bj2cQxK7 :]u?:/Va!CQ3Иu6cű KlRxD<Ύn sk$L'9ciTf1,6~LUy[g,xLQx;+*ގ6bűXo}vAS]wos*բ:Z1'jp18 rBM a! i^Uc̯,GTZ`&p)*ֱiO.JS>(%xNͺ6r1Ǘ} fX!ԣCܹGksPo`m>CSswv~PbOS[sڳuU/{odKvyܷL @0I:d-=У_! ~#r#Ѷ[r4!y"11}[9'3vsۏQg>D6JjW}t12R JegċXG?y`q72[#Ȝ/B5;(M1VnkuIү!4 k|{V1r89&G-s 4@z|!v[duwa`RӇ '^[l-%j=6\\cʖH|.OxTLᠵ4OphUs` 9ѮCʬXuOIi6˜\2m0M8֬/Pv5K5ԬM)򠿹U*^{]ӠsCJՄNjG 2>X|nqXZ% ]tcYd6 7 ӆ/0Jvc<HMlc8e2hZ=[]l;SO*[[fQ"I8G]qcNCJ3v M)ʨ٤];{y|xwxgxZ`( >w~ c߳F\X)š5Z*szk02o苢AWMew1C`ఱ$ *9د9eѨbqb^H&&ɩrLz*-d;+1a&Q*ERz.lPcitͪ7EV]#ݏBs2jl> ج8h\ʤ{^1yJ0 nXc5a5$,̞uus#c>Q\ā&TKL47'#^"!`L􋆠 {@nlK)"% RFK5K bjtSbEKFm[eH!Y L,s- ;լP)N^AQ~tDfpX̗޴=)թN[N|Ɇ6E59[:,*l?vx0v> s!ˁuJt D8:aea9$z̼FUjLήj31qz~xYJus߾2o5dx" !1v|výC! ~(bF!@f(sVA1DaQ;kJ]R+[cCYzJ=fx_#P$bRXtRF*?&;U`j! ꘗ[J)RDABLFC ^d6[_aF>Q,ڽ] k&+bTlnѠ]uWĒaM-!n'#gK:+6c=ugøf4kaVK)omjSr ڭ,t_y]_+⦺jVFZ`;se=q 4#Ud v.wUUDc\?~q̻\2}Uzyv婮,>ko5"겙UDp6CnNBf4Ɛ+0Qq&E)H몳rω5\$F2o} %)Eݒȫi}Xm&5+iuT*)/%]$KI-MW`94.[6Dj*Sc*DIM-S*rK!&7PR!u&UP?p|ъ7(Xɛx,HɓZ*m  >M{efBkE5 8xՍӆ2dlţ^)z G ~ǝI ^f;T-H)tVtF|q6X@,›go'  yШMlR77&-ݰ7N ~ܾ9I)VIchF.~Q _w;*q ^ۧ^ib^` ;ضrՍj) 77d E5#mn,ѪEGNi:b§n.6N妙 "=6(V6tk׏tq.Vhad>i+7;g*jr´q_?Wn:؛!f.k ])<aQ2CG.#3ϝC>9_?e̙~<:xL we /ueja$eaUזEu_Re HQGcG5AEGBJNi5~( jG g; QnjZ@+hU@)g.S^[h+@|uL-jbUƮc}cJFr͔jLmQQ!PTf e jybq\D?b-`(J-tvG|t36_Ao>gѲ~֨ĤMQ`jD,cP Dh[$e-[_芫L_ұ3Fe9DӒ J[ð$ֲ^]1PJsq,&\PnJ"j*4I"P>Rilt<< .z଺}\ %rɛ #J9WQj銗} jr&悳o]o;gRsRcGnWFK9mhbNm."ēk;]`92$L~24A~YS2d#,eKk βhT4f:qCc-/5:+2 +sϼUs'w8R|1tB -kԑkGull,p{8l=:~Dֱz͵ipZsC*L~f΅NvmM5Zg! Z,j-Ne6TgRyWo-XLz,ǩcܸ /}11qdthd47ۡ Fnjڨ(y4\lC#y&8g |Mw>_8}ſHƺŠj~e B.N{-1 9Qd(=.t쵎Sn4_D~`9OX !n(1klSu\iLc}l5)cZי$!RQhL()Uj{o@5c P⪓~cTTj5RCJH]Wcjǧ91Tv:J\;XζDbh 5_3~7V8\QANsթRWx>|2zrWQV1!&A5{W;] e'ڱ s̩ ic 16[&bjV<\S)5м{<۫Ɏh`hfcvq6WVg[nc^T]":QfMtC,Cy)C`K\亱;*f>Xw Պב[Fuw)RaI uI(8ĵ2 1o Ʉ i0su:~N̈[MrZpP˘- ;CS5SgDX $chOv!Uc6 3hkj 'xO:D镥vTz\%ΦHif[PjN6D̤ Qb j4F"\,{;"o_s{vURY#.\ ;5yTT36c)[s{>YltI10Jy[g824h{5a«MJAtpX2& 99Qi̱(]:V֘LĢ@/I!n:o-3L,t]XZ $p.IFaC &_J E5iU4uH;T. Ey2g=&.ȨCU6sɶnq9j(59v6ٍ#'4RH]Pk\N7"cf@iwٰ쳂#봉Rsf5'l8??57'Ӛټ{)kAjSΚSLLuW1X00KgMZ֓k3BTEk 95GRx9^;nNnn m7 fg 8q5IR?C2h`ڶ.+1_;vUa e5vיSkN ΢pbXx)]g5N" hىN2Fpbn'=o/):=n^eC&<]jH|ƊT7:1۵d"l̯ b 1Ն(D3ݚn$4yRֈ ;vt0?oG_+8ӭ"_`ibT9E)%-x*^ sd6MNXljI.KaAщ>}+qahrBlOX< a λ3td8A>=M5ϲm9jHJRdjjFIa GOO~JnZ~ M|3ջ{7jv$BLE)ߌ^5ed W5uua1uUwV8zu^_s)g cIsZӇ|gu7`bqCsnϬev./7nj71P#MRT @. QFFa[\2ZP5UCMX1PLP%F6 9Gz\ky=>ָdSMiL;@Qvݨټ%tA 3^&x糐Ww6z̭3 U[^]11NhԆoIHʉN3]noNˬU]ȗEof!ӥDh&N(iai`[ qU̸FO6?–:]) vڍ0dHnN@b>" lRMDlu!T;r(Y7n/vcMT^{PXjOKxg-MPĺOI2f &3U)sXugaiZbJar@>2E8X*f=) $<zƙ6TKx{9{o;E삔K<hN8 U:DÝcz͵"[ʘgkY4ƈX#Xp3.3 T;pJ#I2j3F3LeHBc=rdȜep3(?`iǭwsjv$U3&Z6``T+ka6; ?-^5fÎ]F)ES&Qëz=ˈg\:cWt]]vlvqB3`v}Ƨs+Tw+:@ 9 ЭԂ/j!U?%3H=` m8fK-:pZ%N\s?k^ou)I@Jj|WU`OAbz~wBpjcaa3ѵW\:;.ŐYłXyy?`Ƀ3^ dCd,tz _y\Dz`e ǯn7Qhws[DO[e7Wm- 1hx 8[9e Z m-o5*6R){ s+6xXXU'٭&h41WRmt\i(gWXFxs5Ury9λǶ(.s{ݤyLYL[Kc-})̂q ]n5)͒#t0!x<^rRゔpt =.vwh 9j`F8 1boxÄ! VieM)"C漏TxxxG?=`-[\=3D7)!I;"M4A7ΥVs)d٪7̕^kQNҵ-Is:tᔅ")fZ9dͷt,ߡy0"#ލP51h&R3P}`'J6N!s6C< gY }ҬLO: v5Rtc쩩x8j浪P(L# ޘ~KfVeӅљݜ4X:]:l;7]liTY6QAiٺ"j Eun@9] W8~눇?)|û75RH35 ;_GI{|'k6rR ty L9k8B11YƄSB&vO"k~$JI`kĻO񭟜{3;?GG':Ga'ˁS|>R !'Jյ:SZ~OO(X,Xag/}H,f,s%SrJ$C懂%᫉.3F-qt|I;kknjGAM=ɣ?;<<93C]kyD#5Ijf#ky9&>by~8w\w @J+I2eN!1i6}I7IW XR6H3Dx-#?VnM=/Mw8ތ$48NVa@gY$wf9:I9ŠT.f;J4,ˎ;Ӗ!ѷɊ.3;tڥ(κMgNּüC vb-tp%cPx.Y W^-žHWQaAFmr!kGFΩtRBTEPq#ź euaHMQS,xKp[S 2 1*ky)^yRX!)TpQ U=MpQ|0ZSS6{t#1gx*&ScksLotwWQXbA gG?_y_Χ?K#Z?k-OO-7WooLx kc#M̐#tku_Q;Ū& -A͒#䁸|O-T"/#zxo}9LM`ZV NcG1Z\jSgn|`럸=J+?:|{| `?LB_"ሻ7nu\1c'nQg*4cxB簡źVi›c9r)A}LF%U gХxѸ 1yF`sY<>jQE>lb.JݐNqAm,s" B,L ̝e:d|VMhKYIX@bo6ss:e0pr"gn X䜱!Lh l5)\2Ʒ vs͗38c;KhemT_DXK!cLigJȨs}Mz RJ, x=N7$l5pr o!T]W)Y*5J9)LİNα"gR9,NŐpG[Rh}JA $(Lo=>04rӍ7 ؽU$ :,jVӸ-i'q&BVu#ˣIL1)jr4qT__DHʲ11L*Wƪ8=GSEpcg kCL8>ZN ^=׿m_U*-1s e5A;Lae3.Xn,ܔ{k̶7HnuhFT3dl7Fɸ17#|w*qRڙuʮQAF#45W=|=>GfP޼;o79C7 t^ K%dӆTg A@gd}]l 6ϑ2xgz(`✧OQQ~Hm(03nUwYgN !l&:~gBB:##~v?IܞLmC LszIzo~͛L#dv@~_̴,yC>RpW_?:g,1bt.3Rdeu&\Xsx=XQσ+D82,)G EkAQDuP*{]cL 1~Ҙ-\3z\W_s#\Jɤs'O9ͧ3n̏RXJӪiSc|)K;[ Jm2@u_c4s}Zd.>Qh^5drT}Ɵ1 ܺ{^qz{>^)_D}h`s _:MX }̂c 9X ٔwΖyp1$zu=A /V],ikN^Pm-(N{}3>v#XNz31qw68rXV]a#3!hpjy#Yk"ifvcϜSzjM!_79gޑr:B@-[x5iٟ,*" djT &Jtɭɔd-]. gCa4boҰ2OW=1eLB0L&E`" '}2s 2|ڰ?.UdiY wVhW)p= c6iA,']$R;ǕtjҖŊ=sn5. Ӛg SwVz˴tDZ S19hizR5ch*gGbX0R̆F<酩"BL$i1ҾgDMF%vZk5e/X Yd-Oȝd$ JNú/*9uF.F,h,T-l.8)j{βԘ#0 Aw{5Y@0 ٍVjJV.m%;Z(,U1mڿcf;J)j*V){ӖR2o ,S؜y'ˁNX, 5 z520ĨV1c`VM2%4S q ƈ1Npq=!,+5]!g 7D bUMdIxcqBG+aO:7!R0|Ss| _]l}B|c['g8y/5og!?6w҂/q8>/H"pٟfo'g~N3aB;RL'Qr }eGh 5SΫXoXL'gW.fi'2<9?9{-4,2L̓Ay^#yZsU}VGO[Lޠܽ8CV Cb9xȂ.Ԝ aΞRNi'$2`SGmތ[sW.asf78zl5м qxqݰYF9,[#/w(`hc` >tڥ^Ü 1Yb),ZO\ZWm#́4^]L>gJkr8E*LOZRͅ㨮U6 []TL̑膤aO^w}^O9QъjN &8 ک;Ϭtb @0^i^jPg^uu kpA2$$ը ɓS .zMQ=5ed8IfI wdrUxGXλ>jjKl-:bSPKM j+E W_qO/7cLxJw7)&L-vvSX`Ft:ZݴT !4AMI9CםbK=R"b\, cU'4CV2 _PZ ^5J dkIca8͆a~! yc'/տ9wh^?,x-]:S`h7ؒ9[E'|믎xqǪ8Ұr#g9€ꖺ?Yyx@b5F.1ԳwpbRe=A T#@3NRϘL0 zчƋςLy\yO4|k_s'3&ރg/H@9 ,Y,+)s$x>Sc]CO~fCREf )fl27?*foGz\g5мkW#]*LJ}]D\~neg{|vzvS7oz˿Np[7yRLam`jB:1L8KC9:5J=00u۳x,SZ-6gVC0tbe XJ,xIF]}ɘ!Gt>: 0cg䒱I]l C)ZkY0m55<9&;4.g΋na]MIdY5 )&*]x;ˁɪ{L.Ra '뎳~`H`L5bXXyL50k=玗JKg-Gi|# g R1$鐹jh&] $[5Td0f%j/ܜJkes]zR8DUhP]>/ ǀCӯ{lu}jg[;izDQVgY YJF7KtY`-Y5멽9+%t] Ա EpbySMovk$cBSjTK<ƼᗏH2'?FTզe8Sq/E /:wcפ4hhqk T,˖51ńa4-KK˦3ƸIycx=g5I_LB<:Wn1,}4$)a_:dzw''R\4[mB?JY> gK=frv1u6tz\2cӃMSUvgv)vl;&}f%T[׍y4c`,78J,\H'ijq4@ Hcfr7X̬c'(33}ϩ1a,[sU6xG1~jL2[3V}if5(:7vbg7A43υYt#0qo5PTxZfN,L,4WRR0n='zcuQywEK͜D; yu1$,'Xh 3 7#uڴMZ&-L\sRqS=l5zP ,Sx9Sl.zU65$U mugDu!2;t!UMvc.5@}LATs;VuW5d)tY͉\M\_;Q^U)BpEjEh,L`ih&5ȞGͽ75puHR!Nzh,]=nwhc[êcWY}s@i 7FE0vDl#lL.s`{diE7љ3;F CeQHdfaǿ7'DNND 6M >w U[ #.Ľ/~{tœJA{&f>){HiNB*|&dunS IDATozcꪞHjJ$Ma^^h^d00 I2lMDS-]ӛ~C1ɋޫ/.{/3cȈsdBN HvԒgڶ](S''α%QETEAze gaFp{Pchi,M Y]egBHu8:yl''/9S;~1G. [ pV-]FlEU8J~ e5>:a}Ep'mDyD$"& x߱oh+l%}<")H1x& "n Qb/ !"%Y*;7ּV9Tp)1\7%RxGJ#J]o^^邭GGRQJRDE$$\k^ԎBJN+`!ޤd[Lu $)PVr">"&=DAe?mdm!>\2"o3J#xJil\ .ҥ'DŽXOs)aSԌ9"&l0# QbHgy |P*zp#tK}L[cC24Y%y`gefGB}fnPC` "ÐVo \άZb" pJ<ѸɍKHHqf cWu}f3G};Drlc >4l9x⛺Pq-M[c|XV̋g%C'h-Ϸh4N(\=ǦU6E0ɧ| Pb$Ě$zvnծ0gtH5#HE~'v=WG%=9fxQD\ctI&G Rf5ogyV4YYVQ) ( V9E=q(`7ȡF 2S)xZ(\3|tKzkI[>LRͷls>7 <:|c:} &?8E#~W_[óg 5;~EIu*1?=a|`'5nCR=?@kOi[~ӛ}n{ #g<+\J*MaĔ8)-]Xk;O!%{ =A?oG &VC\CmbUrr`f$I_>:BY;ʒ=V*cReMɜn$.w5/V$s P]KdRKI$rbʒ! 9%&u0,C & eͦTXڴ|"EE%U3,&ERչ,@H2di !(k򄼎HeCyuos").w|ɢdZ`3,S: `'Z)>ѺHH"BC1!LN?FX.;at .Uι4IʬdØ9^Q)Q-C7Da+.O&*@=#ŵjHYFKvH[('chČqC&F"ѻk1,>"x{szncl4l'-:`u7FE}鉱/G>L?5[Fkcq2OM(Uy HIYhV|ob[޵ftJ11W;3~~!摨_vŧsXY+l魅d$}]&j@G*՞,%#D b!IW+!Hǵ-! ~:>3{[rW̶n^s|*H"5"3tckBSo^jZ!"ONhّBU[h 0!HRR߉xhvmRŢ" W5:#-ul->McYU6zCC*?9&@87Ƿaȱ4RJf F X H)w7iכ| E{C~ۓg("/!5cXe8;;f{y~5 NN5]E=U´kC~2}!~CCzfŴȲ?"\ٯ^Q,xX)QǨǴvKe_SX^T x5ߵn3.\)E[tۅؼe'/6^3o/o? X߶m))nzl3#43wt>21فp1` ᆁ5Fh8ӖadR=1eYB>-Tc}c_X #x”,W"t+J!칂}}7d&iTHpڲd)(5>$6-%Yw-UfԻ}fH "D/rFcih!ȿMJ Da 9.Ԓ]R}qǺ0:! rHqdiYIvC.aRfD瑣"!C6gD,%)f&mܮ'RhK\Q3dIDJ- V"r&X%$!cSQFe5b9rM 9#ڏ8 X8{(fK*EߛYK.dD&DnHa"JGɨ7Y:0~6f bs_udV6靱7]/kٯ@ %stm;1RWP=NI| <],٭pvǗ3=r'e^5t]BQ%Bg?kRI9CzŶvGlW-RZ2{?!դkne,D}u!0+-Qo;V+&h۲}qA@8]R-O(l³4S(h$T#tHi}[A fMN }Xs8.=$5"gn,fˊ,J~0?ɆX*$؞_!9Z1J#cZ)J)u}ð!BkR \|h̗GLL٬^ҏNJ>8X} w ?d\W}W~ʷxepw-mR>}cf 74,ON A~<,Ύڳt՜t?9'=S1 S>w^8={wٔ]d1㇯^|O<:YE 8+1:4o9ڻ՛9頻޿k==^+>}}3~w `7yr繸-u=+^Oۊ`R_ƽ޲+j~WY{ ƿb>yT)xR`UkbbaʹC %B k̤4]]7H޹kT$F)lp;\LslLB0- FJ&:CQRR JIv!콿6V3\22H22㩌9Jbd^U"_"c&P+cx×&Fqluv *)\ NZ2xqMĈR㹪reaSdc0c(: dtHv>3Z H #3x\Z4UL'!m4aɬ# h`7I (FaK,`a1ǠĔ &@MHZ?捱 A-|' ѣUUEA%!>8|硰c33Fba-}/GRAI6\\'r]Q M'5"eyc)"!kY7=!xQH5=1 o::pG

j)[G3æ\$Hc(JCĈ6:t%A ;^Ɣc=:0&e) ՞?WMmOGK2+VJs~cL`@B`;D$+by' >FC̀@gÛH1G\kCP1 R>f*Rʱ%$!3x}!PH'Yr'" xs*MZGw6'| F0}Pah2@RXE 2} !2DVɱ&aTRfk7` 021,תk)nMсv^νQȪ&'%)(ӒZ֫>es| SHӇ'g3~/ZOvfYݶ|)=΋7vR~GbIb2 M]u9r̿! T$ *=b$)VM(Dzf}7`д}0YmW4WL%MYmJɤMnɔa>CM ?xfOQY^!;Dx!):c a'|rG6ͮTգ3\S#R&z6Ǽe_ӋH"u+Ѵ6yNH%.e,Ð9!%~ϰnȱ4$_dfI.:S'o=Ow{[tHA旂NnD! b 5[`з Ph9*Ks\J>Imr|ǟ1U-8\R"v+=yFxr+~k៾gׯ8HEL3N+>ޯ!)%C{1y޵Y{hk?SNHr]ν 1__̽)}/8_\f4U1 hCJAew-8CmDI2g5Cs))PZ2H7fOS&0GkSQR0fEj)Y~pl!3$i$UUHђJ)yOQ1A3],Цuux!]P1U.&^usF6YGur7{S% x l~!;"JABfȜQY(' ށTD!w6M9CH ijВ6!X*hgTBI|LLFh]|]J$sVT *ȹR0d0ݞmO{@H`Z03 Bf٪U%P9蔸ص(xzi Zn3)ȲvFf/5F TWs*r !eɪvH̓Ǽ,ce䘥J 쩒p)X5zلhcLhR\O7AaprTZSZjt1tH1ʁw<31]Op;oxotK*a#o"o[C fr#G&d1?/ >%稛aBd>Rw}6_=R\^Ӈx^qq(V>ǂ7g#mAs_&l2. &kfb Ngľ7[tQ1rƃ3C*(c$%,(N3=@Gچ7.CM]ojcuC 4m$\儈ߵa )3Um۴}f#}bu9њtC{2, >\&P' v$)9}z~[<<c&-$gϞrOa 7->9f7bYRL$ФB!ahR負{ %wG}4 eVQRqhN_$3XsB)]g 9*?]FF'|{:wbRqѷЧgTZ#|9gǼ''H-as29 }[SL+Wϯh.jxħ $ګ+ 3!XŁL/~oYTn¯W:VOo[w@]vΊ7=7m9|xG6{t^}{[{ycŷ~C~vi??͋yNid&(+8~aHa4X75HqQ"!e‘vp!$1:>&V\X1)2GJαntÐJ!T|` ˢȃ靻alr:5ZI!0bF(I5tT+qCvU-"3ecvK&CB"l>Sb9P/&LAa|d y-eU0+d2ZLUq:v#AsFsTce(!مI.8Rw`j4q>b,^HvR[6]}S{`&IJi;XwC\b( IDATkBH f$eb;Ә|bY RbcQ%Dΰ9^'s:(_M!f#_]c썄U}2V-ŵYNNNLFw6д̒[#ZGFw`3)U(kR>s>&Ż>L#ZI WCy#eF3oe]![5cu,8t]0&/M_ȵRp4+1J~ c솞rZ8y_?{O1ٔ-˓#..c:ϣgSj|T5]pc % RyDL%L%FEs75>"B/fTO>F-N0n5쇖Mki1L Q;x1P]G*-٭[ژ'nn4jJ5=ih75/Ωwv5_]".[LJI|hm 7B)ȪN&LώPRPMڐri75qӠ!1sE*F}c~XKn_}TW6x6HʁRhcİk1 g6%1%1o1}|60 쮨lvk.w}'?f9 `Yū,,۫a5̻w@oY^hnho2 v)ξom@Nʿ pzݩ| ~ytQ5{@HsDw( R^&!Zq>kYKP(Gv!"DׅdyTrdJ=%eR)0iq7 b"x22ƶ1B 8cjbxo!B3rSLt J}η-+C'92@rлx*"}Of#v!o|A}HEIM6Fr-釄#qZyaDBOad k818BY]6 G]w@Ϳem3yrLn/}~%@owy|/ܕJ;NDJ%14Xq>P1}L4CN,K4)Q2E0J4rWq}3)lY JdGצwLRa.JC5Zip9IUQҧ,ݛ%˲iw={x$($&F9$䛯y?RH}21t4bDIuN,)%֐iy: Fl{F )D٘'z_H)KKJM 6G%4$)؅fhe1&15 4'E3R) )PJ"J Y)G׺@ѬhZҦlT^YG&Z25&&JFSo:.v5U9OdɫcA2@a̯7'dfL\ԡV3?ddI,GSh:h5X>7lRx=f$L1*[ e0 j\r\ANb"͌4!%rBeq!lG2,/VB+L>Lj%]bR0&q߼3oyc]#$܆7#tӅ q=?JdIi?Cſm|1,,Q{ں}No2# l6 };&D;^"u7gg$m/޳լ.. )N1fJj~Lg3Yr>BR,$[䉚躎{z%$ui9/?!Ec a*_6ڶarXb?C`!S߯mWBTAbu~(OO "F=˥ Zq::v1Ccn)$>|nykh‡'\O<:&h25FHﳬvv] $A׆|QJ1\Q9%];$;lMs~4'KG,%N"'Ȥ3Y]MB$gF;dtM%\s>ϩvgVh"? [FbEe6%RbުBu:K7L?guuryݾ筢Dzn?O__G*G<>ZPu%e nBpfbMpGGKΨ"+4De4E|G),'JD{ro|_6Y<;;|͏yٌE99ɘ(#> `q>[)=3㤃 {LW{5`mOqXQjb6/~WSov6'T:!HF[Ho/i^^1ݑWۋX/-)bh=~OsyE;tדwYv`ૌ࿌ټ~)ݨas. Bo b4 S-mLHeΣw 3-;/*\WTw=k~.W-]@hJI!ZSjA)g8 m$Fwc;m|vs#D:nrj59}ޓ dbpn5J0k4'.d&.F0*W>s^DžO"~0' 9JgCfΔ ~EB252kBP}DOv1K+卡 *CmZn#!v=wCC >]f$c-(Bi c9YZgyTz* tޛH}-keH X4l z_? %K`іdcaWuUefs3+++I~aP7"cqv>8X4-&eFS"l9lзݺC X2?6rM{rd|wd20[cLUjMZbCh" {;/:~iq.)p9uEa6D\߾F 6otJA婻FUx:t%r(y 'Ȧ|zq Y-c6RgYzӱj,m6=ͪCGhV2S^oXׄ]9ojh7Jkh #;_4_ׁ>[uL[ɳAgt!LU#A*03dgZipiI^`0U dOi! Jl`UDP! tB"<1`!UgD_P8MC,ciFdWt4a ,c,B 1z-6{s()(31un%VR,| IҶM6DN;ERWiJ2)4}4.a#/1HZHxCLI*]>k2?p"H,WtNf1bgkE+J ̮dUihy=ox`7 O-;{%Y|}o9J;X.WgLʒ`imTrӣ2yZR=sNx~y|ox̟O8]۞ڥj}ɜR@ӏ./N2sN%NX-X:\%o(T[#S }Os~%HwzCZ'ɔPұ7cUqhtxzsyŨ*]GnM 5!f\2oGSVuTaoT?ʮw\ JM 8HFJ N[z>ٮE $}*FZp@džȲuf ~Dz6$1uaHV)FIq]"ChP4mY1REJ>8$'r+_9$2z2Ee#>PQMr`yX/" BdK'&V/'n>yu7N"`$WvMc;;cze8+/|In?s媉+l\0* ?Gɟ uMk-zÇیǜmX/7(\K߳REE&jBV%2 ,/6l6 ?s.V}ϴ2B|ɧ|'Nx~}N W'S)*25YB.f!jcS/q͚nv>l#(Ie|^[/9?:59# &jݦ8k̴ :A0i i7ĐPbTM]lGo GLhϷ)9~cђgl.WԛwWw@73߲77Q۬Z!~77W" hIG~|kܵ{rkO 7UsKE(f H% IDATZ,MG Ie2RJu$]K8/XwɇcɥJ!,:x!Tq#`d>"r!``d4[U !7>R) 7;UG[Nl[֓1.dKEzoT:y'xt> U݇ $B}I*_wNv_Ty>8W!׬]L@\WNڀ&@\ҧe PCb3L>9jNE䟜[2)A$Fד ݠ )c͐ drZRW?' Ao1o=ǏC~_7~7'fY+|R@ ?!;|H}Q͆b6ь$sW+m{h«Cbb(ܰ?얰[Tn2-r<~죏)ΎO^sq~??#H1l"ZO[wL g'm躆^-]Kqj\]OK$چLEƣښYiشx&VQwv9ag7~A(Ev8V5n@iĢj)A)~#.IrD ?6ł6*t5ūݽV] .pqtLpuD>z␈=V/]}lӬ78|pcF[{.OMB1ozvV5m#J!Y6Hثqu#qx#uָ$Ʒ@"YB!Lp @zw>ݤY p-%E1x4uc1]ӯ$*Lm?X$YfRXx(3MÄhf;[6Ճ7Mx5n"<ƀ~ y[.{𡷮ܵk_9h G=c-v*}Za1;rUhW=C)6[V[.FX>a{Y"Liey\鹢MH'/I)xQF&FSI|ͪ۝71.2/>gTtגٮ8;:^nKfCQ0Vc^H)! ϟ_TXcCWzPHڮAĈ.rbif[SQIAY:eiRk*'ڎ.][ SD&zѭkьG |{<#-t1{CzyI:;۬!0ex6a {.UN6z *#L\|6ƽG22CoC>| >"7_=8YV%Ais,,*3l]-:m#\uo=JIxv{0'xp"sy;tUEM=Jf8kA Hl0)yBk>׭E`} Hq`}Mx}X"B WИR)vg֌ؽKMVn5kom⭿w$Ý+N!w̯I5+yDa2yO6S:k "Ud*>C;J[#2YfXYeQ0$L+ͲO]Q!81e73"MiV뮥wl4bѶ>w$Pt=Z$s(ȥiEeP!3 =B)r#ii Z$iw"㉔B=+,*p>`a$#%(`l$ޣDL ,"":l#bb(2MkRbk$ !9;C a# X^\McYyr)e |m]}dF!i vMQ(HΈ1)X|ޙ;pXUxbżQnM8yR8z&_\pvyxO0֧t>_һlblR2֯eL`@^bkT;q~ko?A<1$ĝVdD9hrfa=֦ t^/ 4mnȼ$ V u7"R) i~]n_9w+@Mi}m*ȯl֥ŭ@Đt2WNJ =fZVHޠfrlfeH(m$v˜Ms<ݐjcDȎ4m%pRQ8)%+ki:TӸv2P&9kjN5f轠!M}@ A[VtΓko~賐ulyڶg[D0. )DD z)n=sf p86@23-[Vq1r(N#ef(u[|z4rY&RQHE,g0`uYz39hiƯy8LLu1k$pa ǿ$=Q@uG}m2MKt6`D`3 ab$#(ɥZFRuSZBz۾tOX^'<žqHCVY5f2B9i{_lZoqv|0ɋ2Y:&)j9Ͼ˽튲o8SmO~x-9"kPWK]6wMcC6!2^~nbξ=x]_ˏ: .k[)wOŭ_%}kl ;1ﭝtVfzF94JCF(LP:C#Pi#nree^GAc{Z41DAXXOtje2zZ"Oh,.9"go\|}AʂR+rJz*(њ0L)J+x)RjDk@:5(`V}JSgq "}J*RF3%PDZgGHV%hʜ>w)"st>L+zP(IShWcSA9YU!G#q#ƃ*+z,@D-;V̊(f)sEژn6pI BjLF9JzFXA$^WL)kc]<P=))߰oke^uïpf:=vGA&%I}.p*I !v`EmH=N< <[(ȕ`eboMzZH2)h0;<0Z_,z"d_ej+?ڕOUI P6qx)E5kSu9Yo"ޜDTRUJe r| ~|&?~1?;y~T#>{]G;?._>Ȁʠ+tbXP:yB޶gQ:Cj@xg4DQk7FzL6& 4]`f< Q2wy8gd sȇ}Lu>j<{~vt1df][cquS>/yi-HT |}pztrVg%}OUX,8XcLˊbg٭i^YըLHIR~T"d4)RQ}_*NdBxD@:EA\$ԭt,W\.]O5Lc#mQ7}20e vRc&;lK25u!),}qׇn;n](0[@. nϛ۾u| -M66 TKb((TS)T*R%@'%22."ġ3,VH:ՒHT^L=&`!$w!1]dR2 K{xѵ\=J]g-u F&BjR!D賓bBJIƺz$Ry$F4Q0|4эXئz3J+sTI:(Mzߙɓ >I$h<3w } o5Ls8hƱ|ٻץk58}S!* Efgwǜ/AֆM/-#:L1"CN9/X5#>snjdD劗3^%?_`/78n d6"x?vBo_\l) 1hF>zħ0: /O89:aWñLm( iA^E p '_?܂^ W5{;,8>?c6q-|juI{v _cMg>ѣ/qr1DM2z# רfCuubwH9mpj\!`Qoԥ+! 0ohsB l"07Kzny%vk]u9dޤd;FO -YL%f4J\^ZdxѷL_(h أ_3>Ҍ({.89Ĉu̫]»n;wѣL)׌|˿x@MMc3}wo>•AjRJ1ILF% KۑkQQ^<}`}L)A¦騻ڦI*,2eAT(p./;KSP)T'׊,,Itm ɃV:i8L}H*M H%9Уhh8kS,)%U*$*/$ ظz"c#LL BK3nn0Zr{,ի>`3"&bd1 x]0cC@&"#v`\c`FFs8+Rn6P*b+S-gRWl&9Lr s$10$&o\!%l .8.P<Qspvbs%(Aggfg+|$}!ҹ@'В\I2%#lqSX^SUUHC 0 m]%>ZrhBIC¯> @Ivc:#DJw5ԫD\&;ϗ=uOa$\%F^$K=W]P7ZB)eNa4#}S5)M #Z^aaf؇>L)՚?sDl?Opx9rKR&FK~oC#m.D)0Yw)(ӊL l3'g|zE1*A5g:ڶlMƈ"C|O΋5'e$YnZ7 ֲXl=?OkO>w=1O0Xw:ϟ'cV'#UcKp=(s8o-. a!P?W鈲ݙr]r IDATƿh{ν}l1=vZRw5_o#L^YlsX3K7S>w~~|DYV쏦=>;vӣsdZ_BE%G1QkJF Znа̠\hGV9EQbٸ"+2#r Y>}I$ +*`m:&+2::mFP⭵d(o\3"JeA]2 -dӯKr 6`[GZ@`OgJ0P9Ɠ$5vGlF}K?[-q΃D@Hl6ʿh_k,AM(r/w\o>unFW7E_cY7RgEl&<8!RbC`lJIԮ'@RI!*%~:DdVc00: MI,K,RXgAF$G(\@ IJ HVΡ,BOX%$ky8 {& $]@.@Tt3 dL"/7]K4h4C mO)v3C01?kR))QI 0H!i}ư[`sBkFF!X%LJ c\)GDaV,{47l9CژLS-J%p$d x>ZRTcLDt|!.ӣcOe1Rz \lXlݰso{<=;+$콇*X>gq򜭭=>)UT}MG|c>L3h$M l>D1 o{))/ʶynxv%Zv5k;&D9?lc7)F.VlMqzqӳc\}sc6ubښ,Ef: lںO !dpNE&ڲ>:]5 {)):rE#-tի#eJLߧ>`4i# ,FuyE9x涯b1>b 3Be-JBS'nУ nu(@T)-VH &]R*sdEE|wE]s|J&jE@j.2ߐwM^ލm盧o`M3 (b-p{Wܝ m{׶;nޘH صN<EFm! 09^$ðPjMAO^O*@J 9`hS:FF2ū "E8{fEODLe]iQ2i6kboibZqx6(0H\E.B(BDbq2Vh\b3pMMdIԕY \4Q*u$93,x}L6[?\"??X5{[vvyroLJof"ב9>?xիѮ%E>bo6bwoF/{kY_;fFDF,b5&ҠэWƒ @@HQA lH"شbˤ7ួ`LDdVUg;9Z$g5GC33@hEUsW,:QfzoL ]"SŧR $C8?+NȆw>y nﲻٗTG_,+ڮbU4UM0 RH&~;x}έgtG /tx)a+͹zɗ_|;{λ_/K7)N9:Sd8o~efO(,(?C9O[qX8<=A*p jr%MȦ% ]0,cI27b~xt* 5 ʼnIG2)XXDzm{݀PI'/>\6rrQ_O䫓2Ŵ/%3d~yI|!'c5.GS-+a6n4Em^@Yw$F'˳hd`Oi'dҒ޼E:W PiT64`_WnΠWk_ /Bo>^K@ d>ψ.;kFqgb#"X H 4-[yFeEӠle wTE ;*pJ@]F]VTTCIXi4hIU&骈E y1>8h&4IYSmg22[:BX, R lyRvֲ.K ȴvw4L5F YB's cjzfETE~ @i8KAO蚘Mp gWHA8YtA{j c=S)}Aй@=vkTNGCb%6\3񗷙 Y6MEYHɽw}l1.j@#@ o9=91{`Jtܼy&1|ǼܸslS=mX5dCŽ7osv^HϿq|6G!͏\U1 Y%u M]G|@e{ %?x/^;gldB8F,IX]`Y-DxSNk'GWs }pK?doŧ~8:AL:ܹՑ;otGq||{Ol2sv'zϗn+^|<_5~dokʩrpu)ZR<{ɺ#A9nq1LrDX-n1g~^Σ҄zD}߻|o%fDyn]0bogb>ѳ 2QuQI7x2z.7߹gnLBL{d6ʗu%P󛞋fA_'N1%mٗ9#/:%\d^S69oG^NzVݚ$h]a?pVgL)$Hy7?^E #qX|~J:Zm9zZy&reOy͑eꌥxAjߋr]?w2$o^8OYgص!Շ'9_84ZiE5B@!77:6o/qt-s &L yu ):ќ輨=a{>1 -%D {Y==un]cV#1w􎦥 1QD ";Mtc^[hRCXu-hFy6 %Զ#W )yJT]UGUXAI@9浥jUg)[K"j=$JD11q%#-$ ZΫ ٳqyJb4vSCl=78 1c6 Akz(Kck,;JĚ:vu>6Pw0o~)q=ș9p vvIK<,NP E+^0ȶbu6c4fowqgg@WhD)5يi8ؚRRV5jᑸ.״5L &!߿C"%y Δ~iG3U|EFs1>G$:K!qhVps2֍yKgE4׶x=S'@jtOt=E?|_}sy}P6_&M]#cEm8{0؃Ft1!Yu!⃧n*d٠/.{<Ͽ"4޶xaCdM>x8/~WߪJg_WjW |.@ } pv3\(Ձe'"lpLk\9ԋs 0/mɈnr zr@kM5 {)V!H4#!%Y@&P!:d6Gsd4c R|e,O(%/"E|I8(>+Q״DJa+MC؎.8)*HD36(変$FEU.y2%xgkqAAgujQ(zR>tY ӛX)mYLe1H,AJRM,Z *VFIJbB\.,U<[B$:8Q̊%$E^$U0daR8Sb*.D"D,m٬Q7P$v5OmíɘD Z i/M&5P(Z50$*N7ǺZ[U*8o#3x R`o${CO1% }lTw+?%M#OTQ]ic@d`h$Z ZYRxmHx/S.FZ0L24c2HFIuY.g}.\WCCrŃ䂟`l|W>fr3&/kh_'h֐ŜCSe6z}ko{6{?NJ9?t"LCg0[OrK ٜmyg`񊲌g P *+]ny1=xs5##Y,V<9ÄqXr0H W+"XV>"Vܿu7H 3>/KVEdkQU~Ve4@" C* քAb`e1,RyM²jXh"H( 7QFrLIvRIcE/Q`څ@#cYm$BJ{ H,>8`ؚ&MTU"":6-ZL-1fK%7iUvaJCJQ̺@"cV TKw4Γ+s(%gg;St ͺ&k;:ԕ%ӑӽjtZ*R#"8O$9r؛$^3E=T1@e#`hӃ.sӃ %?c5p}-;xRcB="d#G-)Mq||rUq7qV,Ϗqj[ic2> :-kʲ,u\o !]5 7ܹVtO ONh ՜lt,W$;b׶s_LU4) #̀9`gE\2o}m~'/(K0(hN+޺sE_r@:R%C~8O{EɸOxtjn]Rr9gSUQ k[sB$g'%UhI5%j(-mmSt{LX FTXt0HGP5.JU8cd kщHIhZF!3kyrFi $mYƓZDWe!(:syy6Z Gy!rBU\ ߋ3/#zGog;zu}Nm1E7ҐLodnbYQ%xT Mb`;Wɴi c<{?]~1#)㋳j/^WlWg*/{‹,}Dby}_UUơWf@|>HmB[{%Ri)7 U4ᣫ%`&QH$e o !K3RLFIһ :$NzT{Ts9F5{ZoYXǃ\2H| e IDAT:eEaItO=~]0YaL:r% al[J1$s(0VTbDff@ &Rq,2l`[ HaYQ$LB l'2<8w B$&el ZFFzO*w|d#Z&RR Je`AS(j2{S~z&dY~:oٜOzd8QFS(PEW`uTlj@5:F tgC]$ +qBu5M{O%/'-# Q*BVzLI\`Գ X稻hh0Ժ1gT]h!t([zW$5ZBc3Vbr՚4IH6ᒝ= Wr/#@dq•Xe-6R"p=7q'HסG{K)ɘ>/jd/;oC{o<g8;yΔU79<=;h rV*ϑq=qJZ7o?k[7R;ڞ쓯h/GLf oO7QK-Xg+AZENb=B!1bZ@l" 嗟"!.mbQ2%iN}VeDb (0Y5eoo!Qԫ-_c<\!ɭ[/@J`h :<&_o&y+M_~E0rm{^3$&ŝ-cֵ/}uX'RiڶEXrư( 4{L`t3{|+w^W hjV{eמ^ _r/FWz)~ |a -\|u^tC4p1"PO.q3>iC<1V:8#2ُJFc(yK F9bs /XwGG81y3BiX[K\SI*5۹GsSm>JBP,r&JQA&E먭cI!$3\tm41cN7MG1ss`?UXX;O#hJ` REHN\J[h#8tq{3j YKY#%ԭ7&c ˦Ղ% DZF$SѴ2#SYG4#"Q2Q!AAʇ!vůk%Ln o3 9ǭq e"k$7ADd1 EI(:IK%EmfF}Șj\GSYGCKao/8빈<"XࣩN fkOkF3#ȌG巄d8рT2()Q.޽R7\?'ʝ@CΫpU{^ג_0ÕazojC Ah|g|~) ܸwtoGTY9㋳|{79ZRp<9;?f24$F|#H37v?c\chSa*LI34CJѳ9>9"<?޸:G~]j$g$ l푬OO Lל<^Pv,+ʪe08cd|o嚏`RYmܐM'Zo y>x d#]y>tMAɖNō֎<# ,}DQ6a' ): ~;G$\:Ȧۘ|{9qdK9eـK)7+B ..ed /͋GJ'ω)Q:GruPu)#>ؘڸ1Tэه(!:}VRIcpH2Qh d_[+8lyJ2Hɴ!hKkm^ktJϪe_ }ͯ Tl̍m,EFn3FDog/cY,-8;\z3I)f%u dL-ZSV3Z"^U, {i*r.PKISuGL&H)޹C1[YK2LCwɀdk\wSS,xj! dy$D MQVu"E r\T),ӂqKc F3,1;U5 ?z& \ k' ˯#x.l8Gd09+H#la*o"%SB[E?q]2KȒ)O8>cVǏ>'{3|Uj5kcƒQ_||2_/a2_d@i7|[ȥP iǷB U4q!ଥu]R c_Ht LǺh4a%:<Ji+S$˱PL&֔>2/%ъ-chzÝ `5t qU6E -$ Gk;,MQDGDjx'FFdZF,%;;Cy1Ox;|wv5exH)/Uà̈́Z/|Kga^q¼$\|7?h2f\ YPӜ?x1Mh]t:EꨞTl e4fJq^qMC6#QߟxL^@MYX-M]D4 2\p.H[if]YQX9{v✻ 7'Ctj415e{2ĺ@]u#aN0_xtcfs&ɐ\qGQ|%Y+ tgB2hrGg $Ɲט̎1ymm$UkQ:J;;o)FlMWq5b0$9hΗt ْP1f{ڢ,:UK9o%e4mcuH%RCXʲj:eS0GcFZ#4NjGB)CP'u-(U/ߜa3!JQk]ɟ/<^BFZ>HtmK{0h&ݠh4 B1g;B({MZGd7aM1_ЬV uvLB@LkgfIu)gξi ioX[M\97x~ٕ/ux>ԡU \%}ɼ\J{ (^sۅ>$NK4[8QR8g~>'{ *R T48Ku֩Rڑ U/x]Zb]dY7Q'M= }vdF95h(Xug|g yO"ҤFB jiѼ1ֱF !M4AHt/s T4*|));u1ŇubzQ1See>:Ć3:߃nUBXK*1P4B߅=#yzWY}ć йK=OuNr3Qc)s}^z+)$J s )q Mr3?tId0^|!O~@=gg} 71',f%3cB0c*(poZ;o o}=!RxrE1? Qنٲxv֚c$JUkiUB@AC3y:qOY%] EP G٪90We!T)|igڪ4@*ł񬳜lβVkѴuYcLc3Oop8}[ïx!t0Մt̍w2CsOqz|&rN1'D4!&sRocko=(% h)qK|ehs.uJH7>"CT"KR  IfSdi4 I䢤;?A606)-N<_^6+q'\\{ϕjb <,#KRVk|[bCJG{ߢ H$ Slk{٘-t ][:thۚb,;7ȧnqIs-/=yվ? kkkDf]|ўߖֹU|. Ϋ,%r҈˃]d+IY'~yS.@h%# _q0F>BFMDG[xcwX I{ L|T*Rzʁ1hQlRq(Xi!!P`hcH)hw"0_f '3c~hkk8궖γpT3ԊyV%2fkjV%5R)I.C" `HI%!UQJ+BRwêJ x(p0XG8b8A 7' u$2:Bht'TbҠrݟ>ȍu~܇kGW{Xa4B$Y~[lޫz!g((ڒaiDɀ ?~1l &EqDH{gk}kb~!ǿ.]232޸='q!8V9-d:8LN7(" U+NezK4`h%Jv bg9Q^w#+B6-] D)70D>| EF|d+#pq-:p\[|OW}=%<^S):-:gH>;zL@ekWn~'+[  c<ȳqtԄw}*rDt޼Z^֝]%4&ѤF\ç/|v3SONxzt tR& Glm"˶OK>GZlKN[$LkL3,St IDAT?X{(zH9K^s0Y3!Xv:H,fK,h[IMRxŲ!C|([ŭxಜE1du4C89Z6,.QHkp;BN/Z3?bvpL0`p1r`'Vbvp@ i-hzAgLLX.gF8F+%$tهFS<y>_|^0I}ABv]xhj-ֶ4mKV4mIF4YR9m$v 6Qv2(,3]u`a)248A4%jlpeYЫ7m?Ϭ- QT/^ rZ^re.KWscd0EqW_k$ &סtc vEQWhj-HY\ID'9L@Hl$JJE(IMLt<8OhFq JkY-u(!ȕf=5Lha&Rv2a'[10x8;$JӒqt\!Փ]=qqDF:Qѝ7!1bIF؟-tA?U89)]|W)!:vj-:WЙ$EG"M4!]_>O{)t>Ɣxb~1C<ӞVֱl,e$է&l,@۴%ICgd;cW+z1eCl,O#I`0"Za 5!M :OQEB5_EJ\I2h e4$ np}CkTTC@V*Zu@T6kO=Y.k6 Oĥ}}~Z{#Q& Mk ]Smj"ua A*HIp^WKYܡx[E2r6qV\W5L`$-4/׼jth7y~_x+ < g/^6E5ї}|I?_ڼ0ƓxDkGEP`[EVL 1ƒJP2Db-53EP(5UeoZ uh/UFӔAf|U1 -iJnrRR0kJZ*Lfi=̖!S:@XGcSjZ-I4h45l1u>8 !%qjX0>B HHmd1B>Y2,mr+PJ"C!o2B! CVDۑ Ȫ=KJXDDAmuΑ IDQX;IXAa< F潁ڐܻOI%$>JXѢzYCmB` N}d"ϡ Qt;T F;H xԱc} K)A_j"scLO"$$(+)N^<c%BDEd:*%񐏠3eZH=Xc)8Y6H$LNM='M`t6zYaLYtEX-4ij@Dk춃>13!J9>K\O379c`4ȐR ǟ[h-U!xKdV 6oS)jq_})"i׷o`WK;ԥG$Fs&w3%s.RZ-Y6%&ѐx Ut~|rsz &=&KpؒzzLO櫚u$Bp#teP>FiQX8 ["$9UH{޶5zb{,xmKk?2Hޯ{?G}*? 1cv6YVg#VHh%{q@Ba8b흯!?{U.:Ik-bG4S7"֤$b !gؓ%Zk D) . 1P}ִhB#9 I]jCiEhBjd[^ؓd\^ wiB8p֟΄O|ImLb6y?;]>M< ]s-+j4hw@;(W3Ǜ1v5'XId l`] W|z6wny9ʪx̫2Jm1}k_&%r ?>Ӯ2YPqa?Kϼ>/Y_xq^ЗM ;e/'2v=R ráRLJ)jF!ցZQzOҁBXEJf8.1$BR-acv3Ir-I"QIF24!eLH5Eg袕(mdpp,lc!Tv5A@P X(m/KT4F*tEO-UwLfOGƷvB &:'T  YxDd0pjLg6fwgG@`̰;ɕdV[VSzh\e3]5B(4B$K^@`#( '; Kl GO64Elr$рaQ:q;QNht*6R .^hAab -=h?2Y)zwS$ -$J N*~X45dĝl"O'{1&5NxjMN tZ)E\~XC%%ZR$\.62BFUvŶs.jLݛv&E#˜tKڶA eRȋƘN~^[8gp8/iL.I ъaNQϕ͌XqMK>],&gUͻav("W 2\cP)rcstJGG"sR 3\7X̱;i&єg?YTe [Y|8zrL]5h^WΩ*ѲZPFdg 8=ڦ[6f~p!s p-6*ﱖIz:-dcxh¼3%jHS6G|駬3t~Hdɟ?P`HY >?c( 08/N4d^N㛆z1^eMiyJ|0PU &^c޻O-Uu.xAhXFydzEAgs\"-t| =]x^t^ya.Ʌ}sͳ~vw.H!.-):[f,]P&A@d)ִMO2!esѠ)x![qV5Ejqmã^2{j&{".mJ^/`'}.|//ޟ^BȄ!XF3s2N4BbAJV! ob\<&f0mA#=( X( R:Sicд-x4 #3VjIoR/"[k},G/*-+@JXL0m3.35V(.RҶ tIN>88$26!`C`Hj߭ wB"VCM 0 =Z(6X uU h[Z& 3I2L )Hh%1рa:TtbYCS$JN}@*uiq(qu(N{k9t"Ȧm=mU9rۯݾ]E &}ҙ!u#~Nvڰ@JlmjGG LG3 3slMyzxLP9-={Fgqg\擻spr8^ō]>}tۯn]}A1R6778 +FyڄǴUpQl^R7-eݒ}nw8c+bN,꒢ݔC`h-[JϦTGԫrI+ؽs#|{S)poя/>Wտ$Ks_p-l e},g}8GC*/ eGOlG,JE׹7y㒿G>*EbrF5\8F!ȵZ5 Z]1:KNG(iGސAsZa" R|vY[*{f#69 !mb&1Ġu|ʫmE%)!gwB L=賟#B])Fگ^]Eگ^zqKI[}q+}Q8~)yYx3s@  ґe 'N 8ֲ}@ ")! :@:!δF|Pc[KgSJ,J82 Ź̪P<<;jfUK`d QGbtRim)+G/\'J,*Qki"xzpи8l,B lT454.eԐ Aj< X8Xzy6A;v%Q=}-"0s4 =bӄYfβ*Yw=4/0Q,[yzFqX;W+ɵ fL:a&7˄@FJZ\Pmk=kx@\ACY:h@n"R.3֍6m@(3CUjObMb. D[C̜@= +A(]e/=kLrCDkCɎy*ơ!D runjEB &3PB(ӛW<\JD9{m<5:FLtqt <cg <55 "蜆s.{B MYe6?"s q)Oo3hɦ)pH6(o\ a4噯ȋu|"#η1vMg̪[ߢ``utd4f{g{17 cTmY쮯1I?k-B6Z xFyY4-"h'0-N*h *^PKG5d!|cksBvGhEZ oŃϱ°l|Gvca.C咲8\`p14y)O=eyt(˙OYKpw}n>~G>}kxX.$Őkט죔%ׯY҆Bh\Q>A@3{@ZGYjE˪AzPYBh-Fi y5GgTSDS#L =@j(U%I?Nug7c >.Ɨ^i kgkӮfz\c2jAl&SlNvze= MP'\%avP[n{ wUq(+VsUWq^W+Jy6%ۻK^ _&aσKL^Ŵpi#c{}ӧ9[f,}DhOxcgAoR)˲vk#6ong$$ؖ^`MN\7p'rRY&1q?gscσKyU[^y JQY-I"O'm㧏mQ!.[;oE;oŃي" ?S7 7s~w*/R^7'.~L-q|Y| IR eޣ{4uރ{E)<-К&.N4me1CL m]az}뤽Ġ2i+C#}1f4a7qypdp )a )c2Kbc<B3gSv,8e>C\H 9/Iidr,/wāWZ%h|k!I~,i@ydr~Hc*/!:} ђdH2Ҍָ}-^8y^_گ^KK^`RY헽WW %N_(m줒dW;p⪰#NY&Nh'S Bɕf1J ug#Qs$5 8\D I FF魑PL;a>O`x0@- (Kwhuݱ]cb} ,<1"Guu3(\d3E\lbNDt1{VA˦zh]XZ[Q$2fz;ӀDK x!u<؄PCGGZLg"t^AZtrsƘUC Vrw'QڸСBj6ۖ,G &RO|J2d8w@`uEf$WzfiF]6AQpýϸq;QNݗy@e}6ʓϞW<|UUr?{E[71m҂ɭM~ 'm~l J6pˀ4$qw{}Y[ x=;[ihp2(FLˆer*dFޔ'km'<}т5y36 ~_gM~kdCN87|w(&WY{V#tʻ-mc1H4kYcVڦB [UKprGs2 hfKHmdyFf[kܓ1ѧ4 mq9G%6C1!U?yR\Oe"tݽK3St4t`r6 3g!3RSꅧ-9|$>xp+B=_phhQg2Hm: RWQ!{O>^.c}zދinHfCx4]^WWk̀^_-we'ܙ{EBSO{Pz7|EtB u1'lA)$uX$FJ2%P!!q2)Zu%'! IRH^G<=B3 "d8.dj)giu8tc漵ԭВhT.0obVqM$4γjZƉ1$&%t 5@dhe\4md%dZkKTGXCdZ1H"3ָ,K2MvE-$T3TuYo÷+h6ӄ^Nr%;Fx\#+EcHd]^uQ-5t\GGؤ=+tgTk֟kAP4mr "P޺ K'Idlq.NR<2#i5Jw.L W2J;&3U힦PXTWOAT*c eDg\GJqf$;c۹f.Rz۬3kz<p.P8҂azNjG%#no p兢zxxbo{o> 1Jv3 Pd/}3tD 1P\Sqﳿb0. W2U[+&4m˴X4$s1SZ8i[kdJ‣N6ʊ:7\A! 8r)yQ0ys75L 9Q7o7==f(;?.<9?})˦egmΈ'x~yɝ]%J'#Ɖec>MEZv7v?qkl_|~ex()iۚwoo nܢgN=<~Dr^GFdhcJ*;#V*5dcT6vKEk-4DЂQbR#2z;<[EVH$Rv25^Qw>YKʞދF(_U߸X;J⪍}@BU9ŘM[dAH1&cLf4UUrtxaN uod6'hȬ) `wU]|͓Cf_-:78xrε ׶(?ז'[[5kkנKzY:|IyduU~{`|>ިG ^ӓ,4Ka/gss~AK?dbpbA6ӗ;T͂`Ղ?Y2q8ajȋWo0ۯ0),i'ɃY4It1. f̈́f:giښ^@{tH:SC8ƽ %ޕ-V^h-G\G_dcσd HDnk.U*Kmv_>:XSK:J>`kO֝;={$F $)%# !八!\#K/xEßh9.trp .:ttFʨ* ׷h!?b-,xW?ŭVxO>].Nj2Uc!mpH(0zLdzH4״<$a]."KBR'xS!|U{վگܾq(hӍ/v}Ѿ/O|(˾/wũp"!C SQJB)AہбQD6;O DN*e@3'bhT&(E4G16<ުe[ܔ0S&4Α"eX|4~2$Q>W<:ư8,HH22  l8,IB_e+ ż fH%7H qHDtM;.nA? ث[VDYRh6òd|d&6y9sNQR1s$BPF!DkVxkiDIIҭ/l79Yg4m7!&='*QBrQ7P-uXUT֑*1rԙlC*Ffxt }k,+(Jm,ZGm'as>TE7{Z0R`Dd*S)RP2뻜O!48:0LJD:@pk`Jee*sENMڱӴmQ& ;c޹6"(2Jd ctp$)#y ,cW܃?X'v*%3 ))<02Mӧzƌ񶂮N% TJh8|ƢzDH6odWN\{{OO֨l +c H6&hҴutoNk{̛9Uǟ.jÇNNyo0yr~gTLCH9>8dύ;g.wd/T8ϖ.U?}gV6_0<I,~k'3ea\O=P>G?cJ1)Km; u`{ɲļwƞ{e]BG$EIl0 Wð%%&CΌ9K]{e]s#?U7#"##rm>k6&$ 9#mRB8,MPikܹ?cR[yAӴ?o?hk|L~zS1L}R}'bgo7£B:OO+6UD=3ȴ 8- 2C.:S"#(+X:qmCǟ OeKcX4c-H1P:Tukt1ǚ;yFp,9[,E .Hq5i[~ M _(+H%TX$h[ cw'MiEk NHjiqUTDsH0B`cZ6NxQ[ R^!d8<)H )Ȕ`Xb3PH$8b޶W ;MC ,8VLKO{9 _6 jl(\xƐtݠ$ ^110Ǜv޻T*kkr-DVy^8b%([KBF܅;waTQg)pDPQe%Qh Q:?jUE!XW2-DH |感ޞ01!R4rjbMF:BudW:f. GAHZ!:` RiYε_ݶŔŒ[l5LYv0%JRL$QBY/(𞪨1 <#Kb~pGO&{ܻ#{)ZH5yo;o-JI򋏸@ZNg{x:7لn(O<ٯ#p&]q2=e, uSsA iokꦢ(JYʲxch{oceA mq! m`1Zq1;=0bbkXP-V%<]{Quq$h9pw4?XdʍMkxz|ldF(*c8|tɳkb8<9-Tyrt iѶ6(Eo}r%;;ǟ{kqM9JZʣ$׊xgjy'<.Mcyxq-L@ihangi<>}hֽw],:+/zҜ_$2s l.]JV6n `GUœBiB1>~Gv>e<{7 XC{xN4BN6w,..0ebRsLSE+_5#[/i"R-6&۬f'^JCu>~&oكތ5QHP_ 8qer͟o>۷3G}d1*8r):gtQS0!:$|u颂{քskhDH`$P2)Zq-RrXΛqH c {ĭ"C%VDâ5,kwRX9wd 1H" lꇻ4RxzVN|%1[J Ecֶ,uC&$W6cHjlf3 ]:% !hAцu">hQ:%|ɝQo4\ UF@aZ"R(%-ޓIkmKuC: !@~T׍3q"H& rauB7rF*Cnk E#q6r+d$:ϲ ,;ƉBuMe4 ֆ Av)Gt0$> /dm绮;@KOTVPYHD!]Ҭ$B٨#J) lu4:F*eTÃ!zw c=ֺ #rY)±:G;bR^1[$R^YlYOf׳ܗυeA;2u Hb̓,Igg$7 UF!$Z.<>9hvߡ.+f멍ai}1aQlp]bkSha;x|1dqS 3 WsV?oǏ'Ϲ [[79;}/ N(KK>1IsR=@i~ XDOٿ`{kq? oTjW1Q2lsJ35HiKVg!KƼ}6elo;?g'O)Iu$|6ѣϘ=}J9#{xrlŲ8͑Za-f5wu4EpMZG\~ް;Ƀ'tp@&d%R\c]5L}Ld#5fQq WcLI4ـl(iC2Ѧ'ש%eɒp~:eE :Z"]6,RƏZyy֘fWhg٥m;;DI]\`'<ሽ^'?gwZrX!xkJ''ʆzmEYD5"B_bcCKivfkJ|`9}Z5V֑H؈4q,8V,"$Ѯ) 2Tym["iBK٪j1y)^hMcM+wHkR0jReGnXд8EJ*!-!|K!ȇ%U%YI *„ ei ;p.TƒǚZ:46Vc;u ݄:Oim$Rx &D_oK2o&t(,wX/Sc=Ȅ(R碰4'n=:@ye0ޱE(X\U@R8P2xOIy4-X`껎D t,&\ԁqtvt@>Wip+6F l IDAT{D)T&4gB0$៿K$Mk.SAل:4օx-zj-RPb5+B$Zb:K'=dU"${"Hܥ/O{CϰSq>%EYxhtd8gQUT1hqL9"Rnm! #X/hmMնї=?b7{QϹae}pp 8Q7# ?}ȳc,4/xٯEB]<\<-h RBbTm'CPm[ hG&#&{[$iNoc8YE4+gpyA].RϞ*A>Dg}pيvUJM FfZAX*唈uK~uOwX^,\u/K]%x!lv _KӻEI9CeHՅ쏙6h.dJ?x˪xz~.;Ʊx˟q*JkN)ck@5_01` EH#eɆ6Q|9Лfno/e_u?!M&{+U ~WR|l~S|%'(ܤ~† Tx2 G:78X-ڇ.k==-ي5+6$yQ XJNF0AQ ,%킉*g ZqXoǚVDQyc8^rU1qn1/[k I)ʒXM9)WX~d)_՜~=" (KnS˒Y](.1Ǐ]e^?. 9?J4, o2yW).`*ܪopu̪'b3R%֏aTUXJSQ/ iAjι9\Rڌ!eYc4 {i|eY/xPVT䂙$"2!Ӗ!97fޥvU{)A{n;B5{Ufu[8[z}NǏrf@;ތ7u |3Vѫm;Ue ٬y-N+V/#/h:y$:t%5s\tz^pa`i!#ꮀHDyg!(PXKZ 4TeݐKcvO jI!um1\gA2(m\k#2]\X."pUkHH 5Ʊl[HKTYyAk< $HTdJ%A{Q@˫dqȴ umXDž Σ'V<kBPXS ˢ#αl A/$q&ZbmKŌ&@t sbPȄ ^MmՁ]|fRы#"UG*)8F:DWK!hZKPIEZNʖYYIp U:Ok<" B\ux&ZE:quʴ ݁($]8sZ;uDvNJd*>3I\73 k m)%$ܙ٣5c\t^hcagUh|mlXA> ̹i-c5H2K4/w,J;zN>LZ=ұ9<g_9Rk6' Wұ2s6)])ݷ~@ɖ,<=}o|:/Ow gag?P3[,ck{jrkg??W,j첢"]&TcMTYsh`m9N .G<$2q<[q/'".<v-vG{Ľ!Yd gQ+p5L~@k,'/mZU '˂hc`W4 aTJf xyr|/uj","8cmP~D >g?{w&,$heM(lkܹ}GW!@W܉Blwz)<ÿ^tA̕-H$N,!@(8="K;#Œǟ~8g339'QHE|ҧ:_ڈ$0@5&XevE=uSIGufyك!`0oS1 ܊9y3ތoo7@$_xAb_|t+~qw +Ͽ]R\H4P4xT2x3wluRº`X8^2̺K`n-XQX8o_9G{& w EcS6 ݌& II$XyX- g-l1 44.Lii֐(~rE,,N2Z8 U+LHP1JO纊Gk=:0Rw,RzA#CA7!mWc@lF]aAwݛŸ u}t:Gm]`ME/ֆ{&ii;R -^ O}]_R.yYu>'}&&K"NWܸ'+Okd-.N8Xtz0EB B%x:Cʌn~m0R1;ܼv@\,.cci|/1)go@}xynmsJ?2ƨ4Ƶ "[Q?E)JkqӶ5uU}vWI~/ -gg|xkK׏s8.O>&1]Z\wZŗ4[VSfzy|,!dlo_OoX9lu`GS 38 kl 6pR|vFR,*jI1?g<3|ȵ{FmHg ʂ9  &%Y?L!h7&*V8+ t$v./?[q?bw'Ϳ"SOw?~?{#U)}&n^F/z_{2S]r,JF۱KrktwyWq"1?{!fls\}6HG',KnnňGI*rErQJʷл)lƖ #o+lY$'IvkP,/jAjҭkVG:B./ݶn_JfotZjUK_/neW>Ư)1f}ݞŷWnI`!d>qe(EOABoƓJi@P \*|"✣!ēu sY +$RI4f+Vg)QV u=rfuX︨t [mᴨ8eHtx"R%YG$ fQ5$qD? ɷރE246CII&UBk}yW IH!1>R Gr!T Z:ֲ%rw~Ųm9[ $ ʺɔt]`?TZB ʹ0 *#%y\kJiRO28zO|QQ[$xIDX ljH)D2rDIk뛤,4uLbHKUxS29ׅ( z٥{!:Vt҈.h(גHA #:q l^W*R|(vFRL57G)skY &ek(ZGc|kID]ZHI"-{$WgB)%TkyU: ޿9h%{-uuMxzQdk,#O{ٲ`X2z&Φ(÷{pk? Y!iYzg&ϞU$n坷grs:σGVO(d {-'a#JK*G_\Y-*(W&ʱ^<**&xb1?'¡ݼǼmy#Cv>A䜜hLͭјjq`ñ :odxXV(oQ"bz2'w_Ivp]~>|6qDo&˷Czqxx6Y>"I'[`>ϟ?-fq>j ?e77?=?{I%rtǿgG4 AZKja%iU s`by)Q@JU틧H%G1Q"KzYJ:dUrsg$>{Lge^CpM1=u]0I9k)@%sMuU]T{ױX^_= ̅aME#lXvNu<_fk= }Z)"h9Ӓ[yC;T HT:w=)^0|iBdWݰ :^8U$i+qǟլ sU$px lm"ˈUmK^amŏU+9_-u|bv_-Y oSW! ))VSrP]Sͳ#d>~¢(\.pXi IuC+FلpL/`Uigg(~W\jwo?Ak[ڋC ןSS̻M+k:?c\b,M_>'Js{dY#k傍;Gqzv]kwE94#dԝ D 6aªm`ɞ-sNMİ".9+qZ4X)X%Rm\W{yLĴVyրeM$%8⢪C&8Ԥ3Ccg<$F+Ef@HK 8" yWh-9* !h&U!tڰB8PYh9-CBpwaYs; |q""("՚ bFheqޑG P[ٞ(ti:DBP?)E0leͲ 8qC$D1$-Cebg)*U-XlCua?!6A=Jubw >Vr3, I I I2Uarj~D :DXɬ?[xN5aDP>5cۚf(A471[ӒX+D"2 1].Dw+!^ s-^t_e J rYIw3jH"'KCwoуrz޻i:DDE3zوp2ekٌEN$CGQH% ;$0[^}>yT%[AGQ:?椬e91h IDATg;ٸΏo#z/4m;?$K8cb5_";=ϩʚRfr:]V0<'+#noav~ ")^kxgy:;kpuƲ|xJ.)NuAYZF)bO-e+(G7{ g\̦\ݛwؾ>"qR,,Zqs5pS#v"gGG!lr[\:ZEZ |At+ŭE-" )C&$Xi =.KfҶf>CcTlOq>7٧WSPMw-z$=:Kg=<`uSv y %0U8Ӡ[4oƛ]f|;+]7Izƫ}+3Uv;r"7!ۃBK)%ևB#D>&TZHJ=}: cYсNzf/ID8к6څ ]tH '7eB+ 5(k0xZR5AjŪiʂ~ B[i[*{4#1dI Q2cV!9SQJgA% !̧b:`ipr!Ě3@`T`XBԠBj3c7ҀTêkE&:,ȭZz EdJQ[lBgEcQ'HT胴d`3 BbDieХyOګ:FecPң4mՎ, cɲ e.X(zqkkΔ 9E|JZ۔ lsDrc H+.䪃b!ɶKůt_uaą|J2Gbµ UnGH.(xZ:JjEvI߱-ö-A {8kYe̸G·(Oc5<|)UP&3mU3L .X!Ŝ:yb[iȳ\>(x/=U$I*+"bVӋ#&[\缶UM՜`k,y>c6?gojzTGmf>8׿dimz>b^` mMe8Ѭ#L9'R)[ $1_g;  H/<6ػS[o1fEdYNOxp1ekΎDipgv~NS4/yv<%ۻiʊbqF5=vXO3bE[8"#BI1gg.P.NHzn8ϞP8'Q2} N+oB#%}9Mc(-ު|_ɮdm l`_1u_VW@Ww/t8'"Ԝ)iLCz1oખUrFR,ˊ4H[*ŹpE8Cr̵8/n4K(S8#R|L8<~i%F̀P\4%ƃ)ĉ7 |3x ڍK`C%_}U +g__#ͯШ>hYk;y_)BrEӰ2V()iz*oC@Jb)Tzp%˖>rpIGcCO2ޣ:z݄h Pi!i EY 8Ql:G`THd GUUa4R-XV5JweUUKc!"MUycBC9Ȥ"". 1X0<tPYAE')IeRKbyKu%{{Z{^9{fdTFefUAW~F=`PO@$Č? $hFx t?Y."2ur ־7"#MQ%FBGq>Bp-Oq+(M:/*o  \MGyFlK!xz4hE&2E=R âNn'亲-@'6xPN I\Ĩ7ǚ֥U5.8&-Nɐi@lPteUD$ 佁@K.jd&R&VQy.Re/ )daOwD .D*%52.&t5xF=|jNlex<Y Ao$Ym+գ2QEL 8h'@u\4-Ug)2hP@&EJ<ЛO>/99}Hmq3L-_pxsnӖi,i$( 4}y𐋧\-BGV)aloEBϘ.60[dy9"teŦ9f1;>%6 1[6sbLD-X3:zQrmWt l\]b)zyzfJ-л]Y<4gLL&7 tx0aqvE6g萹^t]1|NW[/h.Q!qQ#'X 6Ly) ښ%%*J3;NۻLw1YN^N:zzuzZdJ뫖ٯz_pW7W;^UMW"k3Xo$0!%6&Ԛ.D\PD5LWXIrmBJ#4aDB T,}d8V &e۲J"g;39;t!)u8hb:tDP2C9T2rqZ1ahH.KmH*Fw2NZ:HBM\H`٥.ɴƺ ߇9:(ҩh|jQ u1" {eF&ay~X{[&ɴIҙGJ5SS&1P(GQԦ!9OPaxcQ dpaSG7.[cv[6H.&GP-IR|d`Ma}@$GH%䒁^CjZ7džHe_#¥1Yzd[Kgк\+n-aV듞9!|TI_B7ёgU]F6M̠JίSe(q!5\@ޛ|)yI׋-s _c}Ҋ].cՖڳ'hq,ŵ&/ͼQ9u<=4g'/7ll I;?bggl[xOqG{7(7Qلft>.zhӮY!C,<>zg Al@x1ޖlKn|N<]9 rc(Ĉ"0( |]>".q`ɂg3" )3ͲZq|~֔;ۻfj7A5f%O?;eXND"mbds<{;{׹{-Οz78rnYP-Ҡ} Ȉ:BZhUdSomS6&|gg[o!awC1OX1{f̺;XMbX4)r& z(-g쎷lm3vO*0M3\x|[TA,b@RPl AIֳ30Ւ)[o';sVOyyn\1=6?kH{,ṃj+t|kA9a~ve lzp+ dJAbDh[vWt6ZC!Ng80=Vv}=~uzZ7|U|_ը~6/׌/py6˯"/a9_jP#qT$`|THyodPKfmϡJf}0""!J J;>$!XG"*J؆ud0L5 ࠱sA MRukS\G:J,Vk !(d{Gl_<)1Vi-.$\stMGAfꄆIA&]< K\[mųRNHIr >E7,CkR梉&t1%cwqhz 2EU{*0WFδM j%}]* UشΥ ay:XwCz)O%E.;B0*3<=}lyJ,Y!|S߸A5`{k Pd|vv?~FG^>"jb`PN+P2fYTs(LxrqruP\{w&a9y)fwP.hvvFK 3x6Ҍa%UQF,C`Ph;> e/WuۼytvbFBEDbY鵷ƻ|'>_9DG0MGt=-ek:9aw8DǾc Lt /%Ղ_"5#&a=7P Ó4რZ![{e$iGRaK2#+njSԮAECVT]4ܺFhm- 4H z{  Kŧ)&8 3z||=~sW=%_.R%y%Kh62t]hCLY"F R#" I7bͺ A䂪%B1R@9T=^L#!'a#τ{5;L6 B fjRY$m%l&QTᣦB*-l:yDpa44mKCγ,2le%`e=KhD(nhweb4GNaւR(dJ02ɤ%(dJF8AQ7oa W({gn} 6#%mH x)4#)ɔ%X-##(jdRHAQ1v.-#@k=*ez#%GI^ibjh t2hEP Xw?/ e)#,] =r>ӿJ7MZ?~WzdcZNRs?eyq+.p`iB J TqκsxR}FRᝠ!@<Ʋl:BLe >bwT2 %U2HGe4'.'BI]r0r> fՊ'KF=|Tl EOxXs`|xeR1Ni %cCSC>y) xʏ~WdEх7'~}soL֏Q>K&ζp&*hqv6S~bIm"&M/F4,":<5ѵи >&or[l_sl=%koD$a1\A)?}ĻG;&T<>~Hm-mQ( ;S2e8=yβ̓lM'Ux|A\r>pS -YZ.\Ǻi88G2j8p}0a6P{b0`R~JԭdP( An,ӅEsqA)P6kC^`|Z 0&)K$Bo誡ZO M})|A%3rA7商+wECyFHء=QP i|AXZ9$VDXwо] F%֠5H4O@)bH$*`q-Jk1r8: !jxxhx|E_!5L_j_/o^^X7\}3WW/?<9^?*S!.G6'WOE})$Q@!FA =zb <3@dwH$^$ƈ9MLGDK,ϤpX !\i+E249UiCr&=3#D1YΧ$83Q}];u.h!"\B\lld,a &Ӓ9QO!F8׬{çB Λ٩|M)>{Ѽu)3J0 -ΡEd!&3Ӊv/REߤ IbHΥIRE^K > i[wOS?craΕ|nRUzy)Ng !(kL?_]?Ǐ1Ũ Ys%UaЅdK8Do\IeVשT;O9#<-YE0>o(#yҍhg.+"ٔPfcO|@f& ׉֒d@sbFE`}QLmLS M%, Wfx^}|unH^!Ъ1w߸E9a pOOkHQ Fخbvt~Z} "e#L슺ڐiɦWx~qCo}̻o.MctZ>;l2# jy{l^2GٝX֬r\PzF[SlѮePV9qvV+nOGeq~)S쐳4mAU`01S-7ӟ -y.[" t1ip 1,O\,2"<ET2s59[(q <^wrB/ MdϚ>)[<~1A6'lNhwv#@֧0 L 4bq:E52L dF 5FيjJQU-23 " )(#ʒ0=eR֝￟Z2N1D1y[=45o&coǍwMݙ QJÏ/HR3[8={@^xjvd{a `gF 몡f9;;(!EDv# #99{g,V 7~fC>Glt* :8\ؿ-v؟9Ye`d0La!6p1?އsH~:Pma\1Y*e΍Cny*ޒ9qlV36.D.fPnqRi݁8]Θ]Z-( UWQcݠd{{4uU|&m>u_#_L}_FrdS9VJ }~ވ/8=_hUR L¶24AhG"0:ilHϮ1"HE3.^~wQd}vY&P,g]2Y(d:DrRd>d4]? \CՂr 7xQ՚asswO/,#F&ָdgXB% uO lO"D/[RFZo2LN[ !N.Jyjc J[oxz1Gi8!*Yv!L *ɔb/Sgi# h4Oe@dn3Q&FF< H@$I`)6E.2-Rg[1޽6yɏyͽq x.qO"&x Jqjg66d,'&d8KA,]T[4eQ)/V+i/DŽirBeA*ꊢȈ8U)g{}mó5ˋH.Оzyr!w~\HM!|d-1]\P>z$ Mk;L1 lG;l$bVÏ?kX=q7["`8(ɕr ┍tDwi*lowi"bYr>#+Vwe9RA=$xAyÏ/jNV3lעbQlZ{_,5t|mچ'<+(c4dxs0jۊzfu~BlkBd3{"\y*^k^zY.MdR|WW鳗DA#!hK}fr_x"zb+ɃStq.Fl7h9Vѳzͪf4q0>aE5.y͈!b .fgu)v@ǯ;^#ǯ5޽4º/< ).щn_&> 9;W+&ګU-ƈnIJ4gaE74Ø%uon@I r$(ND3>h#SRc]ܦMo1.5&1` Ho-՚UuU_`_4ySlufW1RRe늦BKONΙm6tޱUn*F太l24" )DuR(H)2Qgo*wF.Ri`fal$$;HA 1:#k)"m:p0)&+lyTֲU(PPe&Þ*Ʒv7L.PsH9PLQf"KZ>8+XvsH\UdC)I.]Lݼ&f`uw%L@4>i~F"ϑ(I#=:RbPI(U'i F&KW!3'Yqi`$Sz{,6X.Do~[=޸Fsy盀ć>2 xp0 "ÑbzoZN V-6n=.efJ(BK劭B?}[X5y04,5aY-Zh>k)~HT3lDnCQڎ~cL57TU9m5#.9L/8{ ^8ՊO?~c/&cSE9ROegݷ}xʨ24\ۻ&' MβnY,fO8~ ߮paٵD]`*:PRdTwoܼ$ҭ7fN׮Y^<% iSۚlûHcm |҅ڮjR,/}8$/fHo'2 !nu3b/'3ZOղ[mh o"qgd0x@InV2WZ!yQ%gee4KӯQ_gF4_x5FzWn+?wz+_F65Lke_U aMT P "Ek (MҮP3!2= Q$dGb C$[);DfHP* CENh-u)mp^\.NxGkENԬ mjɑf:d9e1l}F8ߚp|FΑ"c+h;GXmorZB*K 9R$@G.JZbIΦh#V$LA&2@'Vi5;@)j뙔9LP*UzFO.$ASV%3T>2kSCe L%R^g~4JiuHNA(^rT1* ZOOTdJޔФp8' /3(14>3Q%X =!y]Hseb@F >f".[Sa.x=Zǝ~SLooF(bgT25I^Er82J.`CfA!g!ӛ0%9R$SR+J@ %%FlqnxC޸j!Va]ƬWbu3O7.0*gixA伢[mE9}rײ`vBWl aɓAPf7kϞ &hZB&#cǏXhA)[ܸp(Q=XIE)Ii%-;pxz6nW2lIBβiVdnM5W4 Mְ^̉1`fe:ˑG<\<%naqăGs6?Z͉MVYh1XdD".8LpKʽ4docfZggLuNI+u5wd{ǂ=ۑ --rBN_7?1[#޸6eVۖn^h*&E0;;&?ǏJMGdeA46w˒eUqYRDM54!鄃,ۖust{BVݾ͛MKn vC]M}bUdϐ+ΗAuU }f~ELq"Xu#Ɠ,ij!ց.GPdI %褠v%rWi%F4\*Y1CAj1bmPx=ln4__k:M_DjEqJ*{W0a|lRcZb{{i@'+)ޢBA"(5GBhIBĉ%}!2%HM (c\@ fL}a0cb!v fxH׵<z]57FK,Gv]ʇi 'LcYF2(yQ1Ly 0:6w}bz=}>IZI`TôH-.qxrk@;SLv\eV,Ib'S\5:1kCTk Ab0>Upbt֘V~.G63`ȵ]M"!oyU>L'p,Kҵ-hEUcYkEjsW͗kb(xF0ys/xh:g%:$خEOI[1&0F^Do)&$g 2 XDz,>%&֣j6LjlQ"t*ЅH4R&ԹX!McLtzs+)(T>bsR&pYegzZR<6@%X?*CD/%P(IE%IkrB]>RJIBT;ITW#B&zrʵd1o_wycؗzSLI'C)WtmʍmX>_1E 63~_6O} ob|ht9޺ǏmbN6Jp\]0[q>;a6tm([lpWb2z#?b~mNXg~lZK(3.WkO:$Bec+,J_9lgw]Ōrg.7߸,[U\`1ldXK6oZВrĨ&LyE2Da;l݂P TduGe\Y+<#YBGkoBà0,p^G.a3z~P)^x>Eeyb΢[OUJ6]+ 4ڔi )+ D!MDX[?cbSϝ*|`>MsShD10PɅV)٣~4E2)_H8LΝĈWv]O-d|9@]$ERN!@tIb[H=`a4]>ezD}=ƈih q_bXףsZ)L,!JA>rPd^7/x!R֝O&Z16кIjTrr$ssc<-* s4W$"k>P\ĖYW}/:~1񶱎MA3bO&#a&X !31}2o՜kD`k;(w^숵6><@SC훬Y[W3][! |B)l1"8~r-f%ۇ:.{;lObT S<''(RC؟d2Y 1ZVcfcN.ADG݂0Fs?`;0@j*{_2B|t !o_Y2Nn])Nd(Yl%Dυ\, LA`<\ZB 杝deӠלm.qzfuά.ΟY.0PN䃊 Wcy=g4!`]G~lq*FK )&liȗ" ATVXo:JVmĉ}4RF26Jac$zOgNpg1b}tc.4\6BIl̛e[ybd*El]1Ĥ+dY4? MQFdY{6]`\(Kͪvl,1 JzICطw&DX[\9^zѹ@a$FL0ur >hxbo^d@˙_6e%-cw?%?[]AQ>iA(zJ2e}z}kP02uOVSiA" bXj*!ڢQq ɡ:ˍMZ}i͢t>E)%Bd.DA%K~stf2ek QeQf\EžׯylT_<>`Gw>U׫61F~ܾ~*<~G>;ߡ\WOU1Po]>fVYnhm1_=ǭ[o)ů~W`0E:Nf9:?~sOxpS e?gwI.Q]@GMt+a\3[̈!E3ݛPt^SiXw[pRuXVlRLX0Z9kɚ%Jk9f I-E>]mi.׿ytwsN+<1dÄ+l'~ FkoM0CV9%dmݐ\e2Bmf9_\p8"x}o+i''8v kFhbv)͜Ѷ6Ŵ#bR XK 3_ϳ ZgO)ٓELڿyEaQBdtdyMϫzU_R\g_* UY />n}cl˗ϽƯrHq)[l_\s tdE?܄ɕˤSwiHAE2^Rј)E{#.4!".Ij+[Ho4 GFj`]zqJBaFF[z8*+ Q{1x%ڎi22E465|ºBuL:E5BJn +:i؟F$WҤ&!Hz9dI@eH&O1>C-βl10TI01)_SK:FV6pֆ #ۅbiɡJ#q9.e_Zŀ \"\ӄf'7\)AhsAJJ-(dm=m6R(ɬJsbLJ%eOLmOe;.3Gm~leA}(<W_%yn1 ΃GJlOWOT\տOY՚uw:O*(FqcY؈ػRhriqZ("MBLQ< Iܺ]d]}mG1E1''wWl^ 4|"}=r@ ,.8Zȍa.ye%mpQђi-,>Gr[[; !xJe(-G"[-cY9:;?; ;۬+|,um^mNOd.+F{41ҭ樢YO-A)ɕ-F jŜ<=qU\\hf<:>fiX_, pttYڬ|!FYqe7ȳ!3vp8awgo߸EOww>oɦt!5CIUTL!nggkl^16"GAbS%2(lK'W,6 NCYfMfļ.{Km=!֛5QB9*0e,r41BVxXۀPl{N7'sh;nBn<՚Vy );lgi[hUɲ dFYYz:^?^:x<#2.翰xJzU/,_jcCLUFdzH"iȼCϑԌB(Vc4 BH!`{'G*-.GSaW$7.F"3]̡ɪk{{QivmjtL ú|08QR2[.pc mG;,ȕ"F9JH1t C!FhCg9#!ٴ+!7M`C$^K굂2ѝ_+)DFpBb񐇶:wFCF+n"dFlĘ=̴4J&l,Q&4v$JAh\`ޅDi`:AࢤpXJBv@r*Γ AUYv'kKeylɴz)Di3!$hu A}Z O9)dq>@/cS}쇀?KQh (j/\.ȧmB TLUƨQRU,mD:Ga<䍧]x/ܮ2ֶeEi8 нvҪ'ƙ"*ITyk4"wvF[]}r 5"r}I9"hpb@c \#ݝS%#Ix 9o^E%=a0!%lM ƛ؛oq:k; }2} Rt1o]`0(VMt0&`mbrJ|tEɕ6%<^c_[!M}.NOQ!kĀ4&+5/l:[9mn=Ir=J)J]%̻uئEjM:tMK״"9]lx4;c֬bY-AodlN㺈wiQMZK4Bs2I,BlNh8s[o"FE؝p 透/ιXQZk>掚UgHQ=JC{a !xBјLJlI:󵵀A˭k튨)h6sf +ȋڹs/} /~v_]$T2Z{IOHCbO-tr !U$:dE4[R$\&SCbdYr`w5BDc}`R0$06B):1E& blHڐ"74!ris_g, Bse4`Zd(" :ˌj6?:Vc$Պ0[-2SdFΖ+#.[Dzi\/4( Q1; LŚLK21AYwݸ.LpRhDb'=)#eDHaU?n̡4eEz|NU"TZRT"D*1<m, Y)R k rm SSu{}TD`P*WȘΈMت6 3 6tH, \`@$TS6.a7i|YK}#)Fأsq>`CB핒=JD14dI{f} L&F4\>Eˤ.T2-ZDYx$ >xV`mS,IlLtT #6<.;kRlOm{3 <7טߧskُȫ)WoG刨qݚלlVm_ 6眞^a>o8$׊BJn^ ִ7!'L>A7>]gv8[wMɵ[4-AN[ɳw $wl>CꜲhʦYj'sGtVع5}:EzIY͏s EBt:',f V {:]FŘGH8޼1_w<>aƍ #zIz9 !]Q*AilN%h#6cϊY(ܚv9#AڻBs?as~pPdO8|6JC\֔;p1gX3Ejm$uc9zw _ A{aU3b/"(U3)TB5hUOx+Z &5aG\M) \'s!$Q ٣`F0T:Q C@(ݔ1*"R jXM'!%dQ!"(LrXi:)P"d&|fh`Z2 ؚރ;:bYd2Xu tD"I"YBc %VHN농 rÕJ##xiRR(V uq.9dDŽvE!3JJ.O.hP kJb}$fp!2P !"HxQhI |HOBdn L[i\J8n"" H$Dh6jGTHơsb JC r4FHtb#5"MdO(e.wzArX˨&/D}h!$6F$ qj(lP4Hdݳ - W="Xbo:u(aҍ wbk)r\t&]Pn!"MI90vY3A1:*BlqWl0@K-N8,\+nqkk|~SŗG^28//5g("L k `im|!jAM2<>⼧I|oD" K§]Ջr"IíׁB>@ Ij|ta#:J1P> $:lQV#L-%I1Fb{z 6L1*3"͒92xt8"@@#;2힚9Mnnhc/>05+)㥫oj<$VDklD" o!"@)OQML:QY)SZJQ$M-L2 |.ede{ h\NtJȵ ']@+(DrjIkYǥ>JKv MT y2ML YoNi韑i||jvu0kGCKA)%<ӈ>VVHlpDt=LeZØƎz/4!789{m7xlŸ>Ae2loo>[[S29>(7wp}#tRWO>-Zxm"N?sȍt(-d9R t6* S V3?=bع1o)Cȳٰ IDAT" ZfjȽ>LG[vfws8;%xϪ^SC?5[V۷)Q2e8~蘻WJJBKrqԬ&W)TCZ\cf;1xD&wbk* A8~#td5W൛V=+Sϛ}dwsM5U S CIUJ&U:a)st6 *Ȍ}^O٬;f 9:Шh&ÊG$4 wRr!6xq $fP Bb)}PI|a ze?u)9q3g|IF$/Szg|Mrie55*ϒt>"UT(ZQ%mAaT`òBe^Ξxi!dp Nm+GrLXb6+f>UYW!^^|♟CptN)D!L ( uKQdTF2E]lG:DRvQJ%MH{\b 8('Eɠ("zG#BHS;@Pw(IvȤINa4CRH%J06A&XII:\Fl!}db$[Ri&t%Dߣx"u4(R ]TĪd*`yJp4PEBJe%dvi t $}8 JjJ#ETJH"Am2H$W1Bh !L%(bH÷ dj" 8փ&iIx"h!0 b= D.L{#LLџöM&Q{'EF$kAF*3X֌4l"لn^+4RkJ-2Fv~ەaΣখo\ oc$y ,6OqÒi>e4c004͚rt0ܹ׸r߮h1mrJWLMC~Dt%w>7~G^ϩnS=\?Y6@fi17/@-W ( \OS~u>ubEg89_72"U.=>fggժRk7ǟj-2|Ruɐ(AIW,6v9c4-NxR׬ՌU9R96yY\ɴfk0l1Y^0ڝlچAEhW |÷2%EQ*[ ?{!'9LW[XWsgK<-_CLAk~ԞoLW%;S$ 00}~3{H-Y'D0ܽU, yLQ5Atcm$ByHjkbbnh[MCZ6(JDtT*Cd2' ~OG>^yO7/ʧR³]=5 5nӁdmbpѬɫY1PB!XZ+5LE1Ҵubg/&f-g#Qof=@ ǓE`i@$[^@m;|zW^ wYM?kH}^6 /[~Sy"Ĩ25^I(0K@GlZt\ـ2 (>Aa4wBBrHd)f缱tαSȴ ;Ժ1}s V4F4ys, zΨ`onU94fcu#UgCN'J,!2&Ws VFPA&B\*.ØeBӉjjݲ?%=ڛkysD Y=j#QPܻ d #I*QsEWnτ}aM`0E\ "c(/Prér񐺭23ln1j:02*TD0F{PZ}0A 'ר[d0**Ra5!lF)#?x-nx`D.)]nl.sp |͛,Z_tY-,)LeU8blivsG\ sֱ’ذu(<%%7ԫ AQ⹹3])9' VǬgX1ƐwF'2G0= 3|Mn~S=7L(<:?{eYR0JF#{}ʌVqr>gLhYmZ XY}C,Z h'".Γ jX֧xF#Z`k"l tB*%)3Mk2B!bib`0]2V=HY A ZZ׏dٝ9*+=fH.3fzXh=\Q , h0+Rm+>_s1z8-CzY72"n=u1+ HrcUi}r:PB(̇.& K)H/H1'TGC%K?Y> 2TLEf)'f|+PD[߳Qڕ#F)I)<d rzٯ(Ia$bױ<2 k@AzRASRB`m;H>vMĨ$ ͥHI#EdYQf,g\dRpvQq|p̓b :a<!A%'cpzv!yo3(('tn?{nҭ?&J[WEav;kh5ʲϹ=E[&=&\\)8[^`]~]f20D-9@3SZ-3oOө .x>˳ ޶'¶ J?}5csUpxbub(d]YLj7]Wļ,+ۤ1HVH ۚE͆23l+[3ݛb?gpQ (MFhw DPHcbHY ۻrl(go$8;NOGb%1d0i0`Del ԌgvhqRbIyV%.X&e"˛GCST6rz+\h z! 9ٗOWd0`yx}hOyAQw.I.gdC3%ӣ׈F;9YV]G-^+yBעT.#5Q)x Yא#+n=QftUW9-Q EHfrAY"_弜c^͗{ײ%#w;_g~YD'D1$>DFDZxT>|; "EȾ<>5U I JI.mQJ IBH]` 1Bb0ɇSu>H s 켢* YK5.mvgma+ *} S[##A m^:bɟ80h-1R1NUZt>nq#!Ȕb:5$}zf -!rA9*ȥb)V6`}ꇝe:=>ivFyB@T$m)+ԧU%PRi0Rk-$R La׍#"fQI': ϳTRu9t}ΦQPd'XWc:+sJ(xRGɷDd`">zI<%m$y.*u.J~&%uS9c[^]w?[~FKiJL M/oљd{ftoBZ-X] .7kMV5'ϸ,qyQHx{Cf=FuH Y[`7dYN=[0QG}} Lܹ*E>LXQrx 㓷pzֆ|(9앁=~nXm̊|^%CV->|&8胜7ŎʲUx;@`]a5g-wʂq9Nbrц9o;C˦>Pc65ggyY0zcWMUG{K7a}4dNwq mM\ؔjk|^B9 -*P+.7?[6Ud8GO tבgfM%_6tDS0)l@1^]z9Oy9_>/x*)DZePk/_ ?_~63OÂDBM7RŬɪ>ĴX5*-HKt)ȕǐ*!u(F$"Y&ɤ dL{6cZ>0LZK}*1RwFRpP>Ә8(%ʒ &wii:,k pH-BltFJx4dX^AjeF1̳$Q%f JCu>Іz#;!5,;,Dl_QhEB7J`T ҧO;KS2p!$ mtC""(Eԩ_fGP3IdRIzmut678[ntJՒT XQT ip'sEɕ@$|o1#ebCdm;͕%4QZK#'㌫ʡEԂ]q>RuH'E'^' Q)MՆ$u"IH] i#&$ys\iT>B` Rj#>}9 U0yL)NkA&BbH՞E5C(/mVI6^J ƥw`;DzRQKCX>Zcz\9>`rYc}C~1 >|?f [=qkܹ}Wmyu!>Dl[vM.wOarK;dEÕu\-#c_\p݂nP8zD*^9.w. dŔB+N~dr)<5͆Wne6(Cq.}xB[5I)?g+BT7Sn~_}=Pw%ɘ7d6дҐ%<L눶_6Zw2|wCp#r̭9h|~rjj{xXn@P#L޾K#fV |q8o?mwN{bw3]4l7p8؟˦hz7qye%7ܜc߾r4ږxLm F(8e='HՒd4{)̟/KkןsRھJ f9[\^cm*FD4!+ ȴb>xІBIFQ-/qq?b5e.!CtA+: $k7߂弜@U"/;⫏odxoSY 1$t(c_ _(A&$M(RE3 1C HdZO BNiq{sm{IILQ5Y Bd[[H%C8, xZѸ SCYmYRr^-5[B[!^$T&Gn%AILf8) ,4ֳm[VMȕ#ֶFT\TRhMhx@Krae=Dean0"}ZGfTL=RHTDF.s؆'I;u_a2kUm.Mãy䑠srPR0T!|b9۶CO0'Gu3 k128.y$v}x+\j=L!dZ8:~n>%f*R "cMƣ 8W8|™d&Jԇ6_")6@.2HrXT1~|zXpyyFp%1EOf\?}c6GJ!{,*>[J9*Tkh9[DnY.}V͂b=׏Xl+6w__:[dIs%g(MOݹRݩ%[Wrw>vEr۲P!ۚX!: i1J@!RxFA\w%,'xǦJAp4m;uAK.;"2`zV>PۆAQeeGQ)jH#$oafIϒ#"WA')_ H( .3"ITnKctX)h$M8VYjvֳ'gs#YTHZGlKY'E@ H:#mRSȔpQY&UA&"^)5Q=}HF.e~ƾO2!)Hec0$߲)(#SU\2RUyMpv"` $ bH#>&euu`{BCԠF6!0HN3~x3P|*YZ!'P+r"P9[wFqus{ocrLd9}s88C]axw#fsG&f}w;?{6gTME9;1T7O]&ɴOX=$VCiV#3`&fc2;t׼z<8CN A^k52HƅA 3xv9ܜ?f<''?tϣkAz싛_{[=J5}lE&ylvesu@8\_?&T ".Ŏ5ydx\raɯ5k[lԏ9,u4XF)f4HQbAh43zG/u/@^~|mH>b[~9&_ $KI"O%}Gp>P$t2yL~  1UHɺLrFrg`.u7*BYVVJ|_ǀW"ՃZb#`iez*&ږmAצV')<Jzi ?$n #Q1rh7-uC$Ru(Jl<v2 MLlcѳqDteBCعR "V BaTv`O@Oa$T] x"eo[G+{Fį]#HI#.)}yL`v`#j##GJԝGERβ|*uF%yߧC zv.IU/}u>Pu@擫 ! md>go!U _u>ֆRB@l )Wyi;kOڑ1ҵ-C-h؈002FFqD^f=М $G9I P =k[ b΅X8xxWx%:={F>i(g\;tQ7`Ǽ Kb-^5:.Y2FFpxsr6{H'ٟ1FՎhRg4)wfh2pP7R?RMݢ=fߥiV|1Ӄwy@pj.m/?ЬKx)O| J!|!^tW8'ISs&)ü`47gT7\_mtQo K>|YFJ5}p@kMV$6>/36`EI6b܊fux멂jqf9G0B uJ[JRd %zOqpSfirL ɄhD66vM-i-v8=3%: C 4Y:Йkʬ$ƀ G|r~y 4_9ߜJ @?}#_l~c(&Ed2`((Ud$9Rbi.R:Tyj=-8}1%5 $PD+v΁H]kdċư-d $,%,95q}TTjﵤs!xڶI PR!$6ZLEaPDȐ*I7MR%j$iBD8\bpR0V*IcTT"$ٳAۃA' ;E^0$DJ#"|WMa3R(вҦ B6P=BDtI^;/t/QCHGn4huɮT] G;A8($. VK ܕU  "S! 1U(!!(u!#i]ZU]`'FYFS\@.$[{^!҆NM3F"!R)>HUצ@)Nϑ嶦+ d1r{sP13LbUnh4] ;6? Q?{H~}/w?e#$EV2n(HR(`0cmlq(!!lӏ9y8;}1Yϸ~p_P[3 WqYrWG?Apy#Vc#{?d2ާ{ggp}L@[%o'嘏>6%7~\Y͂jbxOR9<|iأu WPy0My|~1w滷zG}\d"z3,D_C]@;K.|Uհ:@K$Q RJ\Hi2P1!&{H#{l4\-*gZ޻y·Ml7R& usov7g'DgY쐦d4eBΔ@H({z>W[7ߧu FB!fhۯ)2u;Ewk֕HZW$>}?%/|%k/>ߋL!i36i*jd>V[Bd@(*]m$,yJ#dO٘.F Z^TddJAP~J弜o2/b~o߁/(/B2R2csMLM*e ԈKMbz)1"C#M&$6r)}T 4α)6v-`h,\yokp:,&I#Ո^ 2_D2#"ZO"I7mֆ`ȴ, e#صE2a9t TK:y*4L@<i:Ǹ 2 ) Hu?n|(J"FsDBl[sfgۖkɲ>R9OޫJ6l2+sJ$9 3ڕORZ# ȴ^a8$DUY4gv.PT1ФtZ5Ӂfץ "Ol6ZQhӃ YJ\m]Jy5'j:OF.cbCt!4lk?{! Zژ?rXUpN,GefE#W[\&D޳͚܌\XێWduj($o>kCz8l<{=2Xܜ^];ɏ-dږ:7QCzUMf\:&+(%h-!UmfM"Po~_\=l1aptGh3d{:%P,]Sa$ԛ@k;ãgůp#5EcKcrOy_9xzu)bӫ]+ٶ-UjbV ]cs&crzX;wYRm ۺl+"K $l%GK\RJ ug)Hv !2bZ:VB%p4Svb}f`2.v;op'oqkr@ .OsPLȤq^X 3>:.ϟе5"qgzLWG.Vfx29'r *pqY#U` 2/УUAkO?E1Os}I^s  ay\\QHSW;G[4MDJIc J) R3*xx|Dh[A?GCD 4E) m[65uUdS]c=]oQRKJF=?{]r^y 4_|~W  %I:DtbLQHVTzp(0Z<#`(R}VHĈ=AQ.OCDީ< r `8%C\Ib R4!03<B =Q VDR jMԨ,5X&abQ//y^F\6 [bmRk޾1*4F ^fڲP4575W\,fr{i>4MfQu Ʉ'WZȋ1pBVG\YO&%$M2 P6~%?'-oF % <5dHO@ :lK]XVF}t^ii6f&]pDVDλ 65Ġ]GYxN&Vxc6՚=DC@ H=:&EJZUdޱ=hF*c8kMe+E,>;(ާҺHg &GWW~;uʛf!r%r!^){ZF@PBAmwjI* f |]uI9NИ1t:+s8f˨`#yRpC@ҳV6`t.:wOUŪucUਵu%hBD[.`I7>X IMPDҚE-wCDiH ż .@^r|dàИQP(Em.{fPHN# PICw<Օ҇()xM7 IDATBXv鐦ɇ|Nlec$d"(I1N/>{1]@$HE"lRH!h'WUT/ )A!DE!9mԆV?_QE[) @<|;Âf^F:TՐф??#fy┕x f<׏npèS8{?,x7ȳG-y&y-Wo>[<|.&W_~GJ=$Fvʽs8CSTFǼ8?O98 +4->t}dl6zS-bMM7GuP-BO~d߸kpo>ǧ3m!5^<vC6ښuMZJFH!^)U2mguFD^5-uhFU1?X=$ޤ%ј"ƌ\e9y ,NjUIe< p|$^( -7 /ŊMw$ଃh2+dJa YhjF&Y5>,|Fqz,뫐/W} k4}W 1 |-*\WtDWS+BdYx4FMN\Q^  tnM"eL&;eN& _y1/k b~'Dko2<`~ E0)w-C2RRJ4N\d"&lBk"FJLq.$M)Ax) 9S:m,ZQ $IR;Zj qi_A)%N%@!<J͓E&:g)FmFK&P)5A)p ɔDKh}$JnM']Ք‚.]]nJ$6;+k3@D4Xwv*~~d2ZiVn(%MgK *JlZG"R)^p1R r~pg :"o/dkKg<9}ǿgqQXN+ߢTEmfg',\?IjfgRpp6ê OUKȣ?b}~O~orgGِwS&:ݷsaƬ=ś!qmuG$EQRϑGQyL~w64Iݭ1mbnM^f rx'ɔ3lyprNYɳH3 t_i8`J:(0f0P[[Bh $VuZϤ¶Mk>iϰupc̚AsoRC 9ؠۇo9!XXt"6vR*nb眬ι, \t h5AwxtvB9sudՄBfL-]дP* JcycقLB),WK3>9\Ie(}/ zv|\20d^GX2%$Ig#̆cf9|H]QQ%W/SY#E=%zrHuK-;\ hcF#BkYg|Ƀ!^̋hj~-Fw.+d3M>s)HꐱI5& hسGI~HQA%Sp$-1"ǯ~\[2-J=$͔ܙBJN! `$?\ɴ[>1Gdtϰ (cTsޥV :[3(J֌!eQBD 2j'0,0`eBQIXs3N14RC/]>4VHlA[F@60JPjIp4EL,r_A BEF)6mCΚV4Ta+7wR2^VM>H_!KY;Oh]J`D$olW|8 ΃ ѣaڦJ3oN麣L#Fl=uhZuu2%J|H\STT"smqQ1RSau 04!D2r4Ɇ)ki tu I%1?w(Bt\Ig= aa#:&Y9cZrT)2-S-H-MxO޼d zχ &[c?Ɵ>z}F]k|Δ Mzc6o~O<~y)M±9EQk vPj%Oƍ[٧'?=͛O01.tykg)zUNEےׯ){l£ Q*6Bet (>|§wB̏P]dk<&Ď2 On||ƧgmS>|לjN"R1YW7XN-[ ]]3%fX1ؙ#{Vטܡn׬p3?g?ls!u=6aM\ iYmD0/c[zF7@1>ქ K೻ls}~ ߹tGC9Q*j4,W ](cvo1F;M}!co~k;<`1T`7 v1%>lX9g:'?Bz wrK; #(RcT ->w.rfӭVcɞt}G+_fs^@Ki ~Ƨ2_ ՀG X{BiVkbAdo b] M^LJ %*/LNh6$1EnB̷S葹+}ɯм+|1t__?Lh^.z^h6$}p}r)E6xD2l|=>@X@a$41`c 0J0o=cH't1InGZ*VSPDTE(<`c[c7; akmSO$*M3(bI\CaK!&٭\P"DG$߮@ \{=**-KU,x%bb-'ۧK,iݡJKJRVPh2cRh,{Y91| Mj(Eg9 Ry˷gҴLX GƟ=-[oc)%^Ύ.i~&(Gc2mXf|.׏X-D[;7"mq33ڋjF%nz)+]wҟA9эo`~HTG<z|-/N>u~31["dGYd|'>:~ NNg|db1;& ~]}d*b`qOUpzByt ƫeZu zhT h)2C,!po2[d}TV`gPNyM[3#4]"z,*L J"TD04%9߬YwCȂ× wi%B%&:z[-z 7 hJ) 2: ZaN>BG^L%28d>M!4||nd3/bRa>cw,K<)a$v &CAdMC֜`W -3,,10:#x %.XT%,5]"C.,u)T-8t+9#"~^\E/淚_7eA޾e(wLj~9gϫ׼"7cJ BPp.0S8e<(D"I#(x%*u™~_B*o.%ly:Ie4| .Ap\#]JFG=͕OC"*bpB= V32eR]x)bDKCTReKB:X.u\PV#&cIübpQLC!Ʌ\\;O!KR,5cnQvt2I=r%!W PKLam *I5˦PKFE$D,t. )' (BFAEPIV+qJ_'4KfC`y&}vkve RZqt\dH gv04.I]C-.`:2ȵ :I8ڤnV xg<=7ٽbdw{^Ϸ_0xiX، O #`XVFcf =ܥ,'x֫lC&CBsd\nVL|rza+^yG>X჻y^ym^}\0l J/}iKv_b;fv3SQm8 Θsf Fv88i|dYd:chRR4:jâkSb/IIi6}F湡݌PޡC{Vn(d?ϺszGġ]S@R;CeAEg[tCk)ѐuX5L7 ^ed&mلBSZǢc;M1Bw!иeE0R"Tm$>J^=eu,kEkyfS 7hŽ 3#B:x\}_EC*_J%+3E!k!Qnp1 <3:2)pdmN'^J ƙJ2XRB$x4em ّ:NDjH|L2R)L OYB!ȥAb){6?ه<ٹ@E!U( 3#9ܽXUu5;CAaxm;G X.FSjf"e<W6FIkcw{?5lQoZxm_W59yܿ=\ǧ r5xѐ9[_C`)uk9<^62kqfY|qwkk>O~?qs;2QGm[[ z|bݱWSjbor]N9?Y/V,` ^00%#;# _0,Z CxkxA|VW*(Y ۿ&֮ƇЃ>~J)d9gsyN1MsCg ʪd<ri.{qº) C6范/]gRmtoil:Bi{+G9gm7+`yJuX^ hWKrMѡ%p{@I1,)a YjEEjGOL.QC.yπ˝%e\Æb#!B5ka|v7288BmD#7w[LQ=v=cXP#2Ntӳ7^"3f*r&tJYUHP[c\nNPk;%bw9g>ż b~/M_ l/ __uRi}LџjHlH.ROIѫh)0RхH ˔ ˮ@=ȈY!q|L݀R d掠N'1U=7-Y֡07 {ںe:({G:GC2$;2u:,"8b04cbP!5i*QLm z.6lƷ V "ζhJ*4LEV|bZt%"En1 1tDh{{j$h% S!%(B $@ȤR5X$yfZ˲̚Er3RT'6xYbcL>Hd޺+V!G/%§\L>KSȔx [B_\m0p!|湒lم$32)y#4m<$Ko-dRP[Ϣmq9r{w?l]/Xoќ<΍;DŽR[0% 4O0:C(~q~.N^aD )v^a%]EK\KkD/{O~ȃdtpۇ7 2 E9@ rl ' ->3|6?Y.eQ 22tD׾t?٠"RTW8{n]'+ Q8>WᅦmW'fyb*MN2ubyƨɊzQl5a1DiaQo IDAT&UvXzE6R[fObP!4kǯ1CBq:=(S`&y6USz2#PlmB !+$[C| b,Getxg1cCkW{lpM&ö5ka\#bJˊʊb8gVsȼ)G' 26 !ANv~ż@N^̯@_d~otoigTNJO;=OS DA"2!(UqzY8eJu L D&DJ$Ȳ <ӚuHm17  XB)׫$Qh m9o[!3oF"/ h^uhŹd0Qu-RI(ymH`|B" 4HJ՞y똔aQJ";ApC{a-eFU&({T"˔F8@bIR{ ;yFQ((dh9o1B!Tե\꽴6sRXK$dZ0Wd:๾;`^;,"L)FIB_/d1}d;\ Re@ I))HW1Db Hy٧&),HLrDr&y,3ELW}L/}Yb!1I' WYJrhd6:$f0lgc-Y7'o`%cZ*IdyҌIݬF?=pz  Go|^mѫ(N+xg *(#a"ld2fy{QdfR%ZFkmGW 7cp٣wqd^LOA爰@frޢ/fOxr-,Uyl3.^F{DXMJojkl=[nsvv?q}m?f,@o\hPg(xp)>|D<޴hF[ܿXrp5wߟ?[.Skde=hb}8H>UhŰ|XqpV@T{a0la7s AEXҁ u\T^r{~L)(Ju[ cB4#|-ιv^-6bU@6&fٰZiUi%2ئ;. `ZBH-:Lir9*WKHc*4l轝\]e/dMc|_|,eSV6dU1%О !Kj7xgy29`^ F[,3)A)S jQ0 @(h\_Ó$Ut(]̚q)D \y:MCX׬o]v1"Ee2ωBHB&`E&^6Fw0F ]ay[eKl&`UBb皶*CQxvM#:Z#.Cg-3ᢵD7SҭI™j0.2-Uۮd@[OFP i u$)M5De9 DL׏;0SDV֥ !(TA/Ym;G!`#`gdPh8 :XHp<2WM&h!2>\ ʔDD)A+61U >`} ӊ.$2\ :h)1kI {%_6Ih2Ӵ}Rk!S莋,Lp!), -Mb%\ִHFp8ʹ?`TdKr9s'u=NDA\肣2Ä.mRPu`xh&4Mͽ{چ_OTcZ2*s|ocry `1FdY%y[/#b[%LJ4M'4K]rU%FK̀mv]>|qq_ݳS3bd@t{ G9_uӿ7^. o޾Əphe|2n/sg-w9,W+Ngg`bf8S%YB BY^?^ὓAɭkCo챼8(A@i,4.`rM|٣ȫ{Sfx66݂A. ݌.E##IJz 1b`1R]P{nB?fk`T[|6*Odl\[R[ 5$u!7#ilgɋ<o͈|J5{ \)OfOXӏQVe͵k"651%$ZpXQ/%0Ri)3ڶv<ŶbI0[.W*Vp!y@U/cz.Ӈ8i%lfw-2F6]K4 !e 0ǺHm-HEC@a)H ll 3MU"D XkejN>jMN@+1` v>Ȭm 2Jh#ӇجZ.akkQ5dY1*ɃG+w@ \ľJu򒂐."^H:A9fBr@ZFi02l6 ]6 ٠$hEPG/egG,{nh6YZں?/>ɲd܌rX`}n_rpW| 6 }` {}hCR\2]FɈf1r3ZV0[&gSZr4%gs&Mi:v?>ƶS uI^i&uѫ߄' {wTW6{=>U˽GoUk=nɭ;2y>O1.|EK&1k 1ߴTed`;fg@Nx6]޻xMYPVX 1^%><+ 0sn-1DG 6Ɲ?bg6bzI*fXNuX-(Z!#GrdtٞӮDנ ;1Ko2IͶѨ]qSfgpٜc7;r?"WhUN R)zNkΖg` xT+.iS\8c8o[0gz_%<>tɜ>?Jw@дk)ϦqMKYN޷nA:0AIEY '4ֲ^w1mQ]g< -|A6Op4|jbY2; b~yq .e+cw^o~$>pgA泟oC+ tByDH!&itޣDi7PF?!TEȔJUsy!]p2mcX'؄\,Ok}LUv^#ӟl+eM~dϙC/3Pn5JȖ IC6l0x፥lÀ  Yhf7&z9x3yq"{U=Ihqވw,ʈ]L&H*c/$f%(LY3!@OmkQBڎ,$VjM/{rBKPt!ҵ->B4C 1c(Ra}楬CITؘhId Bd "WWY-SfUV & %:NW-+g"RE|HRD 1`]`+7d*&v lr-˜֥æ2i.d醤ѭE8cR%ņԑ>br- _9*)d2$7rT"u/}HYZɗ #O&=DPBT)<@Mׇ[ѷY/"w__z8Cċ0ܸ1ʔ@I ې:N~-&6-!hl@DR +jFmh\d1xY(3h{\xh2|6qG[dՔiyAL fOx˕CKNےw8}:#?Y5goOVLO"3 3 2 SHRD2#)| [Vd Yq] Sos/q[>w|=omr`:vڣ1|d“G-{`\LQs'K>iq`ޜCBhwbhq:o~5FeNYCGRkr(`n=ɶ&J:A:E5}|@ &oq>/e]prٱZ_0Ҍ^ej3/۞lXwl@ 5d1X@}1 MP|)ޠ93rP5hރOx1/7y嫿'?S_$wpD\ִZaeqqDd0p⫡m,<㥝_/Ɨ9ly֗=|;2\~u j( KvT͟Og84'~e/y)e[VBcR.ێWGGzlMƄ4 yqxXϙ-.)k>:n޼.!fQ5lC9.+& 3a4I6 8+i+Sv^bMpL/8oɜcs`BBdYE.yYtkҼs?d͝[-&3zmiV Hm7MħkP tYTJiYb %Č ݼK=f9V)jF4u=!+ ÔzA%j:jU{,[;9&+m '5ۻi9GGO&z,2`|Q`/N_~y=,M3y\7aЫxtS I-S}@"Qk'b8tBJ% !l=)U w1bH!I^(DQ혖iEbA3 5 d#"$<;֌sEcg+7ԅ `"$s !e7lsLbl)$E!8u4; =^4>2g9 T;a04!BHvQSIF"FMg LW."cHE$Q( L0%փnt6,HP ȍh1| / 2JH -C%1{Kn2ƅfI".PeQPTF V =ZϑѬEmd:i+}4Њ(փC IIjcPB`S!\9sCzs$S#\:{ǙAm\ng{{6W+|7ߦ&X:(r@g#B$m itJx(28WX\4mR"EJm4r\U N Fޜfg{Vnxկ2@jQ#]7t_&/|{#(LpuA5>/j.iAXcH-)dߣHp9L671m>"CX0;/Мrļ)7pj7|GHӶȋ>|pko99{Kw_ ˇLtK/}^3LpemlO]W-g3'a+rX]"#yr=醞1V*ї*wp6r6ɐJKuSl[Rid|p٣<|#/&F臞o{}%YQ5pp&Jo6VhDX1 GY 8Wz>" @ M $Yrvkˇ,r^\/V?4Ϩ?&> IDAT9 >~Fk>ä,7>n|#h4!8Ƙ)GP 1Qה=M&> sD*2,H RdEkL0+"$p1Jut6^ELRV87+kxy3k=]\g JSfB̻ "h 0,,F}ʘB+E|rUZQ9u]Rg9g-PeuA dFDh<D>뱽!DAu;G%Yh:u.C\%yTRE LWatI AA;5o{}hO.v)Db%RTZbzv!9iuSZL5yV$~JKr-Yv<:gF0RzpB4Qq e6MׇvnsBmaCQ _9z_?O%[ڽ*A*`Vɶ*S#Rʕ{i%鐡qiGTR0-ԵqG#BvsG1:O]fc0T+Ť!iuE*x5a"H|~d҆ d 䓏?&~L }u}.ی| zAc?[ݽ`r&vPĶs6Z z˓[D 譻Fݘ2}"TLn`Eͬi iKz.*lH,FrI1X.(U䍗bf. ĸ&Frp6ۯ}o~$O-U D#N5dz w6t[!(TOU-gZ־YE4Ɉ9{#MdT]!LQ)q`MFT)έ襡a|QxyD?[Ϗ[.{O~/Q_om3̴<%R_W7OO?]ڛjLg^o}u2)A&j`.tg^M > EoJ%HF_J}tD! Onbv]bd<"2D"9zp1 6uMI洠Œu5kvM,QM$g5yrz(F!e6!T:8FA%e2̑)tۇHV$;e밶BmLx$"6 dJ@f̸@ s#s9R*@`m "I$u.!b]RW"EuMTu%lr]YxhZ(c;R,DLΚYic]R&4b#:)E="׉^"FKr%HNǹȴP RDGmrMB 24Kz6)Z'b-T(ֿ_ϰγ{?G1ON0?]1ݿƬ<Χ/6LGn4a79}b}LB>mkAe4rZac 6D֊ǽMZZ !"JQ6  d?o/} \GYEIYlPB9>}£t/'*<: )je|̭tvb;lzGrNE#2=D?\XwBfG L_FNTVN$vzͺi8 ږ~hhW uٓcvO T񂛇n1r9=]vwnC㩋MsN eY˳Nxxc1$QO3E縰ͪm(1=äsqqD[rB@khx4'7øQiCU\Ѯ!Q"O%DTT^&u C$ e Cz* g})>dkr& oRWcHPYDҭ%/Rײ&$EZ= '3f%gaFuϣŊ%ss{\<B{EO<j/|:O =^G\:^5i߆ȋQ67w VPwzA*L9}ױ~9;wYb¨ zS%t fh裣q,Y9P2V̀kb1H _TEǏ;`، sy3 R[@Ebo4gyP|*\.ek@|7Ofg3osp FI1rٸ"seMPTʦؐm!RQdæYt0"D@V (}?Fi22ێKw [btD(_,Ӣ`*6H 20RsXPFUrdYFˡCD"0)"N5-VtP`7y1!ptT2kPB"ԙD䒚2 LrfXw%~+z(nڐLh|>@ 8brA׮)4Lχ"QS;cIG+Rͧi aZj<)t+&YҰf@Z\"Tj-6q 'ȬTYʾl@O . $H!<62&*)O8y`ww;}K|{j3 s 8i¤v:¤u<[/1i٫5>潧Ik9Ofuh\sR$KC|Mr3c[|w9elrW!\.!ͥ'rqvrƢY-ꂲLrd:iGo&'?@DύWN>vP8 m߯6M۲bp=~O) SFRs+正8y=r O>Fd^&m{^^0m95R-/qsLo׿ ~_ao6QJ' ʲF xr|G>~|FU̝G +ꭗUܘT@p8| =U6`ȣ_\&g#yUN]v шhBsvb>ZrްX;l;`&xOl.>;rcd(`4e@+v^aBNq%떳9eDzp249d=U(jE"uQC,Y*gw{)2TVL |p1c޶Jדv8}kp)LnԐQ<6Ӡm[s}H(ɔ/ޙp3k SξlOpRpZw.Y>GiYaʩ-W2#+2hI֫Tn@OY %Y9LwHaTxoҋy@uEg~m͟.{ߟ2>#F_~}Ԍ uE1 pj-1׸*JKyO`3FXo9f`AL E} Ij9E3##S)A7l-RJHIk<UjMm"Hm0:#W) }ұdc eRV'e}N %A!%. MBJ,2 䴫;u+GrvcIEH"JS(\ K"u-:388z9`w\RcdZ19&CZܬIX(21b3.Q$\3XC(Rǣ9fɝ9JZh<>fJ_!H."i%SZt&FZ!EoFHyD<,{G#QB座'5G A)$#dR䐜o2EmTRP ɛ7Wn\/ΨLvnssLrϏ/X;ܿ\_27vQ"#>_!^\,i=|BTq2Y-}``uW^ N<XyA{y!mc`[F)^S}.#28=쾎6%k=1~|e=O8_,YvpTkx&} /޺I5*8;~xs#x-Bۺt|%c0Dp<9^gl~Ok)B{yesԅa,#ZZ\>l` v3rӇG t*y|L:eK1zl1ZGb>zB&iɸ.viZFYqøH+ydZ2V4<=du9JF;TۯR;!@ 9c."gUHl}I!؈ZGZ T>B(M^HQn`cW8yDh~0%Fop|}ӽb g\axW`0nL|r}ո)TsMעδix͛M|!EǏ~oϨF,= +ȴc7ʛ0B*AЖ8M蜧!c`"CC1ڣrQUQ%HZq~~?[g]=qL;?y^P/K_d>3nAϭx?~f6y\ΧV+>; 8v2usC.cII],#c DrHRrc7_1-+Zp(ȴfg\-@or,(( h{(|ʡ2i`Q4U2+j T]ӢE.z2=sB$WK{sG%ʉ!$ꬎɄGԍ}` "uc]`uDH4 ?$j0鷌QᇎŪGOB5FMc7XV!u3+E :#; Ud#ryF3u82Ԃ2SRB䢱 "L1< :6R@SRJVYlu&L>R0ksTZ ȍ_5_z_;_寡DdmHm"^iCAt*CLJ Bg1؅4uXp!Ї̥<ȣyܬrX`)BDASrt>p<~r1_[<ժ;hȲ!dz7 )Fb?bsKvavJ;8, ۀK{ụ̊/ΩsX7."Aux"k_ْΰSZѝ_Gx~o5_)֗2:. wHR&!&/Oqo|ߠ,*v49:8[,Ym އ.F-hہor_oG1f\ce^Z a=!X"ZqTXu1{fg \PTLeUt>0 %}0'rptccdRYiځ Ef є&SJI3 :,GV튼eAg+c>_Rk댦\/CSJ3ݙr+&'hk{6ZymtO>6@T+ӏs~ B?O/ 5fb5~ĭJbH,= {]Gwt"2/br:s|1G(z:/Ӵ%o;OQajA>?2s2~:?>הY)Tt!D!P)LMl({FIy"dH)A|$Z֊UYv)c%.m0qnIzqa2ifȥ$#vx< 7DTzXFըR]Bb"&RDa,ľcwΦLjD+J".$*(+Ub`-ECؾ EtEíI ǏH4]#퐜GH> T(iƈmhW*9Js-ɱ![;Ó1[;{G#\Q*E)%Cz|%,edxmgRv`XXOcmhDQi?!\:)`7WL$ B)LSIcJ/ؕA씚Na!BucORZ i&nW_1"L%7Y!ngDH`0Ӂe \h!6 Md $' -s2 Zzfֳ_V}:v}`\.}DX6L J[wqnhnp fc.+C=!+x ] 5c16 ̎M?YZާ/sU.>iz|jK9:k/an-.Q{ۇTUɍƏJZ0탪x?jvv_x1vZǏ''l߾a9#eS mhzD0)g88#=E`ڡAx{7>01!ˋǜ>~Qg+>8}э]n[d1BE##)j,xiB)ڛT>ٜ(;^6qKnB"L:Ekl졳r#E+HDS-:k}i@ t_3A߁ۓm6f%[ǻV,Cg=ʸuRjN.:<%,Njz,_q!X//z)v`d{29p1݊;1EbL9d+#zǰg+g|TuvUR3̫^:W]1x l^=ijDȧG!F<~vVMߑ1x2-Rӷ=N#lK.ljf 7hG&",'d r4G'#H/Eh_b) .'ٟ~ 8}ZzOs^?}Ysg_"QJ\/ A D| >\߸ͼۂh2(L *O)*A)<ǹ@(~U|>]A$ۥar]K_TE ~Y2QF#E0hx2_nE6Py22xr Pڬu%%vӋz7$70hΒ[1Hv (qJc=-Ĉ7"cUd0@"RQ s1t: IDAT 1i/+20F"&M$!&zN+V((sC7KNEɬw<~ӋS<'5є;[;BY=N5mۥ|̤A5{[(0ch3G9CdݥI!$A$㜭R7qPF(HL0؀U:73u=7.s<(ʯqMnGbIuǏMm F7*Zd^Q+ͭRɜ E Gy )}d3}Mg'SƯ~3..V4R )/6EnS]'<ʹ ) 8PJm)L)c!E`>{|Ï8cvy*s[_S ~:tjalw./gD=zk7`%E@L^j.Ɋ]Y+ Gc}rL>7$K~g-{n>== H%.30R! ذ o]Ұ r8 3{Wr73c=_۷gрzz Όq/FOG`-J:d^X?p\bw93P#]6 l@є_ۡ>)t,/qv`g<;L!BdgwFo4MO$2NF{3%:Ӵ>q[wqQ=#D1]s]]c&Q<%}U7Wf@7w|q/w! f@hOb=RLGn5#aٚblɢ]~DBlg6a[l2uѶCxTBȍQ> HJTS@ \-%Z!(!ap[Sc&\1_(Ah9|z>x=B)ʣ?a{ѷX}:M.f('4% ޝ׉ޠq-wk˼,ؙMOt5!5y9=}5uT1RY B29,Ƽ7GdVd1+awqD99XP#svw-;:kYw u? UzsM}$ϱo!,77.ecUh-5:G!n^:O/ #Cw;bhwA^)w2Y3*+JL["2j̫Qbw 5B,rta75ugS ]6 Mݡ֘L./_>yUv2zUﺾ:U-+ȗ}z|d~y Z-%HOi2&pHdQKLz0AD-!d`"[A$9/\Had0c:l3ȪhT(!ɥ$H[{@֊;rNύRk7UE8:_^qry|J8lZW+sUdeEv|#.NCa '躖,Ɍ{'sY!Bx΢I>+:?@ԨpV+%+ z !#RDH)[VD T1 OOJ+Ph >:bN:Vrq*) H&t2 ʶ݅UԽG)IiJ4W-U)!0:uCX62PTϸwǵL]fHdN-'Y1ZE@FD7q!Brn3Ejuh:!h~XȲvZ亡-sHk> eVft!gT49&8,4Qղeյ }xIuGRwHՔbw "h|n=_(U: L1@!xd!aTFar!@'(Aǐ2"-0d@T*L^D^)AyDSZ*sU\@iV(g~%0h#%QZuׂPM<\Z*f{ظH:˺WNDӮ ͆#0x*9Yn@HR FO$@+#q(.:AHi10xf"R+eNs%T$9"PRCtl"u#j5C APE lDYd5! 92WiF^ RW]Q1T4牺%bٸ,k.D4 -ZщIIKQa%} d"uw -Q*$Gk-?XzOcs|:wT|kd=Of[DH-c 6i|H:LqY #eukY;vG%E;Z~pSmie4u9n{UemfZ?|_G|x9)ر'tAq|~!~{D-3b՜?Wʺ^;=wDJo caE9wkcGÀ6~5SQΎ8Zӓ&#h>>k43Z 3 GƷŜv,)9*n =؝)rMv̱m 3vb_\!CDOu2.> x$hN],9' O7[X_?_%W|:~ٜ<ɓ'7eR|&+?OWq_zq]>Jڡe<lɏ~>?bBbD5lI12N3PFU΄rwF^t~`:N v CFL[Al[)%gSV'RV9w9=|KQN.>}xfhev@O0BC$SE2' {rDd:aRqf*Yo6l68?;?~ߠ(Kri#c٬25zv#7KR+7 ρͭnؼ=}vy2nd)(F*2&Y$4E\k`=IV_1v!# {bkTY2* y3E/1h\%(P&*(fɣW+j6$oկݗ4m׃—7*=A-g[J/[٬s1DOwx\ )ӻZ!.xΣB M!C*ogsSGS z%0JN1Z4MG."\j{&mdS.vU!"LYWf3Eږ[JID[zC]5MSc /Gx4./\_?KF(f CX̌FlgAm-h |X۲=p> f8?}#ogCieIܿ^Ho,v`8C(6r~!K>쯙Nœx9=9&YUFaa[jP7,#ט}ѝH-CIom! В :%|x˸ʨ&cd.tvbbp3= /gt dAU,咲(Jlw٨+sB8'FR#j -fC5]K^wʂnha2.)Kx_n)! p-:]soegަ>3m_hѭ-#Q*Ճ9QRcMD"0Xn4 8 ڲk0D#Ѹ(COks%"Э}G߷<=Jg(:* SԫK#Lɠ>yXU_*u|UYm_=S篴K/_`ƛ+ %ś/伵]umJLs9BX *Fxxw 3t]QtC#}O:bd=R&:.Y h 4K)GB*˲nۚJ'mg{fE͊Q9U씆Ũ@K5W[`'vx cctLTY yDom3b\]&qxp[PQcrF}s6 e`!{T }V HBU2i[#%Q؂وD4Zi.7xrE]ZHQIbHl CAȸmFRxR|2*gSFLsIe>J$v5J&V6Et.bܮ'0J0s1u|MήZ} \Gh"{B(-gAw>iAC4@)p{'pb"BQt.T]ͩm\Nrn%MrklncH>JйMCSfqr ӭp%Ms&?~8]`~9:gol\X,ZgtwphwM\e5#O>.O8]>~c8\, t3Y@kJ_t N!5t?㼩zCp8+ȆkjCçZIBmR)JJ%%]{ІحqG*EA$_<M9 FOdJ2OLV{Vlq.тiO_{;U,j.{{~`G,Sd $2ߙc2#*&Ӓr<7X!SlCVVLƊ2O4;Cƹ-QHjFYL9,LQUXmjv ]N*2G`\[#F)i0Yd!~04d(#/>s*M^;Kn21;9+&yc2&7K4()ŭGmXy N^psu}P"dnمD)0,)Mzuu=weFi9yQ % b.JB, i1f>|Ac!ǿPU/hξ߬sK/+3gs+lu0/}K/оd{N ;EA.8Bh>;,!&DZ"t2RRtKTa4A(@R#D)b7Hn Az8z6M Ka#xu{l^eQ1NKu!ВkmIҋ:MaY0+J>!=˫s,'Bx'"Df\ӄb Id>F7kT#!$ #Gh zJkB)&TJt)JDp&]c&X*ǻH%%7F@~ )I(\DE |DRX H7)6: I4jo^6Fe"V2 !iHn,ۖyҐk^i8,PLD2X6u%D}Eaf.0-4:Du64Rf)'FD#hKpyRH)"@뤻[i2A;8L:R bh\HNRJƙd'#)RKyz@f$e7D`qg_pקlaGv&st!_9|mjSF9cU2ɰro:Gi (i+3ίw&6*dYFF|.S#><[$o{HD#Նqkl>᪾ KPrFc$9enx{}lN@ɣ鯰"wyðfTVl&DuxGcl88)9Fgl㧧({oV8ٛ؝SZָ冻WlCzfŬ(2E".-rU PﹳcDi巿L&3!, ..9?}Bc;Q]ChW7wg=h[כ=wn>a}1?ʭoͷ?~U_X;4 /{* 3~ͳ[Kll_{ӗza\-!: 'ԅRP[hQ"no}p#xmմmM8k,ReFi Jh+6ֱnŹ%B134kf:c g Rrh*cȊkA80Hs7(!tFQM88'$Sb >F#A^>Y#:ݘ(uu :#*rIE!@{hJi.+^H ҵhlep~()sH9B@*!3"bCdZ*J)(hEINxB-;ȼM"P%$dЉ6P(I$&i(EF<׃ AeR72L¤BC#z^5C6r)3r7J,@*kJw$J(brVXdJ$@)M2n! %R(T[=mo~@(yO6, ؐz|x~MyU0ӊ+t{Z/ÿ@ 1{m_]"uN\ ydmMg}<3Hqaq 7,Y5+!zwQh0?_c|^ kjNOa`@s {G"*Il|ߥfLX=p[Od:fGnc D,fX_\^1gUWsd .hLvH]SzpRp<)y`g~b2AͿjy:z_fC#382c\cٙUXaC))_mdyt|D9Αq@o+l rU}{gWaGL8:X~|!݆*ϹwMw*%ŝ#Vk\6!+ݜE5m Fbc`Y,C5|5Ez`\0Nx_qtmoDž(zC4'3x ",{ @ZھsxN}y @&y^,Wy³3. ^"_):yA`wOO @[PNS2 e UbW ;wL1ŘYbR1'2L(d_g%"[:/ClxquBπz $r4_o^Pkſ~~σ"_,{Ky{xܾ m18MDeh}$ȀBtnyی-$SB.OqF29m{Qd%^ zEuix!>`) ] RÖl]Αmg}MLgHAV!JՊMv5(~@a(G̴/1|)CJbx#8ȤQ [/ECwv^-q r= \II7 yHf,1uO&)ȹs)Ϭ*J* a͇Y%̓-%փ)p[EBiv!YٙR[B5ɬɤ;ף[]A!jEQe"SH:9"Kǧ0CH[%JPi>e ֑Iw:e;xS%JAu\hBg:ShI$JBD)BS<[WZB&lat?+ӈcCpJ1.qpڴ\mڭ.\s3(R鷐ow8>ʟϙHה gG;Svٟ!ggT|qah(kk@ӭnef 3]py]1߻˓,ScSaO!Eɮׁ`S[I޴khTvIYe8'k{y;iV|tD%fܿhH1L%2.:aG~Ls.k Ȳ3Z Fs6,e1MB9'k^}}>7ٜ~zHn9]>dNryT.k'6Zv#~ 㣏?H^?8<^Q!"zDGG)׫%in6@'juӱ:>1RPjJ wt\S3H0FQe%ь0RaoK׬V+ʲvSƳ1Uzwv! R)n &9]η~hD87V>is"2-59C&xM)a|4cTaqbǏ{LG%}}?Ќi6WW0F(C}y£@uٛ!o>/98I63A6 ;JTΪ^wz䍣}|!jΜ'8~9E g'/><*1{ajmkXoVcJ/K:~]9f⠜qX~H{2)ml6.7m)Y.Mܿs'<9=l>i6Ŷ5[EE&;⋏!^Gex *ט<=f9Sڶ> / R*dQCn n@%hʽ:c mi[Ǧo/>DdwE/ќbc2M*Wm7`S|IY'ϢPDbX/o ĭ_\-ײf}f1!29 =apJ`_326À-zY1R!)i.Q Zhξ9(=~^ǿ{ާm^ի|UY}e@2~jϭ"^/_y%;/оt_dƯM b3֚4lwm,IFB 6:ǓXP%ND.> Ê_r^1ڽG('x1Zp!@ p$6KB`' =b*KWfx "g{RV)!;@oASK7XbLNPhô2^EFf?]ogCFYH"yyEwdInYPÀ d3MIB=ChE2y:#҆WJ10&6 ۜ&c>,gTS?ioD l?ǻSsMnl¿rf ǜݽOXF i6DlbA/2͌rA(BRmQU1$2*A%W sûh}G:p}5Mv);Lw8߁m/"&,g͂rLoovo;9EyuDjARxQzh[N(iy(1o [btM׶Z9`A{62vdRlSyU+ I7 h'k\0tΠSDN"ʚh5 ؆p,me(6(&ѿ,%sƒ*18>~ن1?|ɐdB|ї3,^h^N2pdRI/?fxsp<|) g7s}gOɾϼJ  }#G+(l kx{Xڽ#\t^A@RktM~D!2-pBdJ-"#Tki1-p.o ]Y|7&A:K*/ AH:Ay  +!u6XZ3-޶l: "MDz84Ȅ [ށ`P345H-3|xagi̟aux:2A))IRJt$,5: k(Rhޑf(TPjuXHbjc=ް0LKK9{Hy̲:3BdG'Vk|2?;BJ LjqGoR2I3c"EHΫ@*$OXf l!] M$i{M3-ʄLEy*AI3ڭ5HZ.=C7izzz'2X1}'"Nx茿zbt11g|= it5cr<:ֆ8{VzÙK@0[-9=yH}lYi'[̕,x7IJrj֕ Go:K` ࿼wNq&oF%Ys DQ zuw=Jk|L]"tXk %c.1(]ӯ$P!MRdƜLQCH݃GE)rDzwN*ly ~EW!okآ)[Tua}`8ޥ-tX7L:3W\}w(ZgWǯ>52 hW+GgANDE>'z;`Z\.(74sw~c 3l,QLdRc&b)EӷnnFg4md٣JR)`4PE&Yj5mA1gcT=3{ ,sנX#J#5_O 6/'ǟC~y6i'Ui*N3vHLX|hJְkr@.vscVÒ{\cڊ]Rw-2Ө,% }[#+f"Oտ5w?%G-nh:L0zU[`/i/UO'[oOoH|8}|7s4")QRDw" H$:X"8bG Op~mY2!A!cߤ8U tJ 1`[H$dML& `Hs }@:P 5%Pi6A9žFba6qPfBW>D }"XSyfE賸w`[D_$Hr %GoZgjƁyHrhv"!Mq =u !m_P4CH\5 %{tH0S c+ꅄ$e܈R@c) tmO&$IB6 .]G@o,ΐ G_ ]Ok;\ߢ3ǘ>>E{Ljsq| hdsEuWg<Nk؞LhŨX::HX cI9:Pށ@l%,:BJ SԽ5,Q+C.[@Ao=AgL*R3(".\.sGKu1V*D)V̫"{9&E)$.JlQQ-.mt-Z*..t_o䣿w?7_w޾ͧ='ofg|/q>0v8?Cc-=FflηP.?euqHN 2׏ݿkAYFeb/ۢ+b IDATg %`WTpt&{D!76^:?7n9 mlloUu>IRsfNϩ縦!۹h0 !;hs~ß)Ԝ}% @KqFLj}C2K6B"71:M/8BhHFWRA@ 3bC6-DPiJs\=G(#emu{TPN =-O@ `?6dspL=)k\VtAv78u^u&Xgo*[ Hs <2m_f8qޑޡy6\({U޻4J:,c>.N(IHRȜ'Uױ,W<|9'͛dIB_姿bk: /H)iBO+0/V>|hOO{k,?؞tC)o\$1>d5õqRҙ323ڶf-vCobzϏ߽̓{@Wg FS7!:)}CrH׮)f@o:wiǿkB믓1T\ϠHqjhpApA з+V̪sfvjkYR *>= {܄Ɍ/4 zFG SM~?]֠A_} Z\SD+98`wo 2jpMcfmӭN-f͂ׯ! fQ-H#-eD"%kWmѶ-˺%rrBǣ9!(IhZjC5 y=f@6*aoOYHEK:3h0>3@@hG.zDWx%e@3  Gop&㰎!k7]̖LSC2_bM{TEp=K1\ʏ7k`(W>Ahé16,s*{[!d̤X_{7Ied[PO_8"ƪɑTd:Px TBH(oVq^*[Ze T4 R,g3IӜ"Ѥ}O еrHS_J"T\B,k6|0$-F$yJ4AIf0(ɕFHA*Eiɲ4T'+Qc&DI!(y)R]=B֑^+UjVlXx]6g5κ؃I*&0HBEC")n ed*βl#s(.pVKI*S-ɽt9K9 B8;cGݬ_ o I:&QKU Ӌc~lo12=_۾ݫ_emLrjaSdcxx3DKq"?Ezwn\S 8'χL!4sf峣G|rۃ >?OMڭr_1g5?G,%#| ["Mw|3J@O7Yߧ [[ɟsW?ǭT %4}Ǫ1Qac jzq(g9O{ %2lHIuGę }$BVJ7_49e0',#VgDILNa]3g w^{kw9~)qcwpM )3EJ=?o~dƛbxPO89E1%z. Ad:6KR׳{ s.f'䃜]'n'''h0=N26>9rY byPVmL9/X65R{Z'ڄp$tW6αkD-T6<`P~h4_~IS⤢T5R9 ho0Z#eN2lP&4G!N?Vy U` (|utt\*>:qJX8?lޢj:B)'C骖͍! AA7wIgVF @3ԫ,@15рrR%*yt7ϰ`T\4}Zm|&rP2a2| k85v["f5;iHdE. :qiC`9>=foJP5*,N ,cMm)yRp<јB+RH<7xU+ǗKVa7~˶߼SkOgq7vς^&}h^-8!AaZ~)قu!qZ$b׉AJ hD\Xh袥,Pa>>]\]#5 : H*HP +2Z%؞@ !IEBAR kh | DcɥC%Pdl|]nn!./BfYO";zp!5FS"+u6[ ] Pf N xz{8 `{1'`"u!+eCsRT0$R3{$'< o)zczG%1sf@3M4S%hO~q|cCItĿ_&ׯb$|Ht}O}|p4fo瀴9-~->Wx6>jb:r :rjjuLIF9#)I(B+Oqs&||1ݺ5?Db(vwSЬnQ7sw#Zzx_fgs$z0!Y:G$3=]ۢ9&YVrq m]k h-Sfy-0Zu[ʜ??~ [{SʴtАcb 8\ '[\k AT +'hɷ$I1"ȜC]`S-w*!HE9d0٦ s<ʴm)V*Ӣ,^IsnŲ``2(?ag{HR&,Zu@;* vdIDXv2NC-CqrCghBཧHs1+3DjۣE[{O5g34c{s#,V ޼ d `2/J>6ybgP3jPb` 9; `\/)՟8/[7/7:ɟ~7;9xH[W8:=b`,B@_AWUSy&O?@~C/ŷn K#?w&Oy!|_:aI^! uQR`zD4OY6~`! ddEh!,>o , [BwX HAE6P@yOb_NJ+U4I"`KdB^:2“]2uiZz ƥx)k𦋽NښW8<,lt5ڽX^(PxFcm{AGw{N:R uqV5 %Y8xZ=.BYfg+IBjͼs2y. B'OZj esVRيYT9bCۚ@gR T.J&:NYao;qݳ--NR~W?|+٦H<O.锾Ya3nwp{/a*ܠU4&\iteٶdI-hh^5eD옫{;( !CRk4Cj۲k<¶kO\PϾGYD6@K<P6;. d%IW[Yj7\ObW:԰dRG{C[-Ȓ Mst16LINhMO8EI/~h0ȇ Ѵmh0dgс褤3`55ijY6+:;t UՒ+Ʈ&+6+)7T[=.sLۑ#<!S uд5Yy=R>z祮u@\ROEV3<- "M*E{szQ2!ۚbm}\{D'%z<88彫7h܀$7Y}d m]!KjlM̛'@׫UR*i}&E) 򷳠zn/5 `' fx , /O/{ L p0^_ǡDd$CϵVqB:HhlG*uȘ3 Q vU1\:(4@2sx)I|6I 6 C4aM d]d#1KBM~W(U8$lP)Aux۹4֭`%Aid=}!AJL'+",$!D?F:;BkxP t<ˮG%"-bvh'OR2p2>{*I"C&*ŠD2Nc, !xdz{RX\8 ({j:ciM sB(J83o; `vA'zr*k}f t"" kM. %3[2%YtfJ`rwǺ82X~+%jmud+kh;R%YR+Ʃdo4D"ZIUsa,m†2KӱqMW5_߁<kEɿ?f4()_9CfuO;Ԕ{'g7OOt ]`b0,ɲ!vuJ+, d:`v :%MK7oR;s ZKC&|{g &oweېs ܜL5uO$ү9}>?gBh8iQ4gb,$MQJ" $\M4ݑZ{D<ޔû>zF$ T)2IW } ";|1.sۢ5G(ULOddHNdIu9`k.Rv})eQ=Rud E$d8DP/Ya9:IB1 _ʨv]CP*^ U);&!+⹘d&4(=&ʄ_G!ғI<% Ӣ!*Ĵ0Rl&9Yh\)LǕYsm*zs!DCn^xŗCОa{ Y2ls1U^󻘺ņ1fc{w?Ne#dk#Lo'/ kؽNP0cg& iܢ:{@90NXQZ4Ւ<rvx6CMW K!p>/xtt('X'mUiwAV(;CL먚ز &  s3|EM4%KGȳV dሃۛsΎy82:F?e4Эd)I1ĵ-N=у!%T |B3lཥ'ra͚$+|=r* @afPIF%hd6қL@_DAlDf$NP*Ԗ[d]p=oVY=?s2_#L/AtTmQhvFQW̐mYJDR66 XB`Sƃ1Z fjl>kQB[ќ{$۔Mw`eHH r ^G|ټ@^W^Ħ|1 k͂YƕԡaM<{Lj?ǘ}ئfja;cLJ+Ng)IolRt8c{8 WdJ4x'/$` $XpB*7_𮼪W+R_2 2g7ziЗ>ȳ99숷6ޯK?cNOIS44ŌU!0}7T(nh7%7]Gg`zHcM[-P 73du|=|2O?cgِGg[u5ќ\q`Z(W%9o1l5[3*_Qrԍ.+d]e96+@P6dq-2[5~a=c9? 6蹂1X7 wnD%Q:P5 7  zؓknܡGyIvx{?:c` ۃEa>{0lZsGTkG? &Z ܸqrbZ3:6T@ցXmV!yJWд-,i*&.(<)qTcf9E؁gπ+ OO/~\WeU3sh|Cf,hVFz!ڌxtd#o(5-;̩o`TǏOJiPI'S7,@zU+R}YպXg|aaσʋ?@3E9$s3\v`S 0PE@׭z ۗ R%Z :b!C>xIZcB̍ueYUx[\ MSS `K Zƅڀ-7('cddBK)=vlyۆ9Z[G(Mݟ"e#n\2v>Kc[H $R /`DP()u31:2RcPRF)R%dBAI1 4M*P!!sxQA\`V6N6;@MP\VJ_M44Y! ۂTx#ʺA &&(SP̎(f@ià?bXhcr\pHBQ64BѴB!hغ%>``]4Y' 9٣lHFJM*p-KYT ׎$7d" "Q%N*VcZ[yaY50j[6eE)B\i*hkCmC8Ge)_g^prvLzvJq]d#W}wܼ q$ʔkLnt$^oɳ 3}=7)Uͺ$"Pp͎T56$ػ*kb2"ضfZ3y[oF9ry/p$ےvsãGGw}v%fbudz&'xrܲ^l8+6c4󌦁|N5" A (N1 btRfFHϰ#zoo!ךTV%>@8lD;9G>Ffn bS6 ]r3ӌi8:??"}dE)a6_AL^\@ٚ<@ԴbF,)28%$z-tIP&cǟr8[:#s>mbܟlZSl[7 |@' I&I4uţnpAVĘ!}CS.hlKKTU}|U_0W>mgw%9^ r> 8IMc8>,ϰ>YT(/ ɀM;ԄITw @*Iǎ 02VKD^B)1ΡA1jC8w.X7!\pCZOFN4RD'Ow,uQ& IRz1NbNwX !TU*F#kIqf@[C"Ț!|ZM J!d 4BiP h{m8I0 K蔋^,d'[ ZD s~`B@Hf} T7nJmW5[YeEIƽ>ehJ}7o"95lr1'9;yDJ\S7rP[T5! n+0tƦh A'P5hXzn)~|A|b(4",IȍAC% ж-" Ȍ{Oc%z0E&C2MMxjL/ąx) }V+./ۗ۫,9p< |dޡ&(_2޹u7_ق7&|λ?gO3I|x6@kZ+l`]@Io74mMPы fu7 {`)H BжŋsW hT= u_^Eۼk& t4YTW@{DV} TLs΄/u[uWƾ`ŜBJoQMIĉmjo(% Jjym+\k yj:c):ZEH$JfB#1“ qX3 Bw?Q"PZ#t T4Jh)1d&&ȮV%4@ֱ6<Z /u4A #18򪵢B$I>ɨQy!zSDïf%aJ)@8LF4*QmbvKJ|bhP#D졕`V\xc v-i/'OrX`dfƐ(&Z3RRnz|CUmX2[Qz-%Ae9kGeD͒k~u@arsl8o.V>;C"qw|l(DR@*ź^Nbk<$5,Fls}:Bښ_g lS+n X]XjiQ+n\\.Yޣ6sja(f+O`+p@2!Ɇ[oQI7&F(mTFL8w~]$4wi*rMZoHFAd?wyp{{L?U|p. ؒBgi| ]51;p3\y[I]Lr>6'(r< &L9Ygn?agwvc2$Q0F K"=cΎyoq;?茏NjlE2ܥDiqU(N+5I>$SU.hD KʪDPe!M4 Q6x|[PزM,=`4Oo:-KsyFm&٧o-Uijko"lM]s5vvFMAڃ,Y>aW&Tm4N"J",KqM4ʜ0Ei-N2SxUd^I\%yɊ^ œ$zϞs)L1H oR ;)~{''K^k8_= U^{zmRZW5=|ԶEfݶ4F@і_􆾪W+Z]eB]dZ=gǼ(}*pg`xfsL0ύzi)$(4C A$,v7Rx-u| ж>2p"mR Xȃ`=x)ew.GPH@8:FJV8Ed0Q!$MRJT*)õ5T iM&SBpH!AEO4 Ot'&:"eײbԉT1'l]vP]f}".j?G'a0I $E. 5 \+/%!.Fo2cOZGocf.DB< 1j_|KLP1^s| G&)ͣSѐk 62A Tce?;!hX$|ǚʸ(=Ḛ.W:v!,7%nyN@'1GPELv ZIFP6p'ു4GH{D7uET(u9#SCIf $j 9׹7_-dKIH|gѧ\c3`Jߢ^lUfu F1rCpT>FE;ܣv`r'4V`;ȶew٣ڝ0N.಄kPX's]Ղ~:.1=ý)jx *'{lGm݆Iz}Re[9~!Rr><{݇ 7w8qږQ$&( { -s\ !Oxx+[68גqP e ANOt9MHW[![_m6mg'|L~˓y}cr9x~?f:P J2Ǻp՜8h**g9[]2}ZS+;2xO[7IeM 4uI\&% ;(MCOfҖޙjw.im5t#4 łE 2\pê.HT#Y6yTާ::D %*]rmv~||`Ԛ΄m A j8%RI$bw*.1y;$HI5j IDAT9xh]@vNJ%[)IG[R M"#wFtZT4"2$ B.P;t A8lU9JFU@Z i->8jC3v)i)Qix*fR6MR(b[ȮR)-/AB ('?^N"OB'm Ź J63AiΩu% )0*2^H$BQ]dv@@IuR'8g Ҁж1ϠT'[uAs&2B#[#B1 !&d@[Euζ"LN*frК`pH:⹢x積T[G<'K345B8l׿[&Y*0I4 "qڶ3{2`L4iR$\%<&97 SڦG?-b4ui 2=@k`4^LntF$!EQӓ-?foa> ju-Xցw}~!iR%|~>KU,9:[OSnlqkN∤iyM~1C~%7(8]b~RZ Mr|'~콅k&(Qe$wx>ypOyttRã)Is^ fͺ ܻ{%zLGcz-|~Np5A=æd} mGGLz QoMgoأ\X˛|$_gUMAQ=k=у|zYm`6r4f1?Hw|@Ysײ[ɰiJr^2Yϱ&^-ѩF 9THi9zuci,Ux)MIF YJT$a|5RUI=SO*%mIS-zCӊ@)H7oュ^*nMpc ,h&M]Sֱw<9TT>8>dGv&DtjS c}K)؝_crn~5u<9zh2ސxEqbEgr gk$ezWF>AhT49fMXT9ti̪^ի|U_/Jd/c8_FpeKP3N<$s}j?Ly:i~b\0R+] 1QI;gX-9՜Q?lbӟZ%'޽>?as,ҕ9&ymoYmK˙dD&p,3)k~ ZS;6da]XʢҌ[7n|OPYS!on,hmd@ 9;=);^i\]kq5?xQ?c6;dNImgd/<(_fsE {yϠ c9^$<go΍]BRoVlMRj۟?5435&BtReB*P %E] EIGSt)ɓ Fe$,)X _6zU7W@U}z}Yv_6yұ/11z|g-3 W/B/' cBT8Qbwxf#Kez 8G`"N)Yq"p$]d,m3!3+^0P|dcBw9"|YXJb:V:%mC}I.YPX]'e9aݚz]CӠu-µpƞbd'YO+e[HP&Dqxz qExG44RQ5&A4I1ZA1hZJtbH8^*XP!P9ǪNw\ydLj]dѶcj1SH:hP7GYg=- CCp BR{oWYD"Q:|tǸ _YqQH g[Q:Cp5\wAv,h65 .6v:w:L?r_oޡwpoAV]{ k5>455;t YT;?g|jWrxpJI,OOLw9=)ݦjEɧHa7OVF;4M@x|{>;k_gV90;>av{}Oq}ͬt1ۃ]d[1;3NI{'zhC]5y6[y26%sx> L(;Jup#(g8䌶ȇC[[lKΏlM٢ s#]N~'/Ju`4z^1/6lO`oaezm( >qɆs-o(mA9oȒ)H\}r}HS 7yr6#=m\vw_gKl[u]"dNSbC2T L'DlPzJD٩DH H(\Ѵ+$^( AERuq!2N@ƊR}ǰE=By*:xœ8.ZxBSC(_w" !UKyphԴX{9̊h#.p): M '#NcfpGXh f]*C@Y`4 Am/$4m0$os"2q[lE"u4[ .JpێmDjD5loG'|HoCѴ){;=;-'}hG,ǑPU'EIX3aFBm;o,5/ > ܸIQ>BO,[} c\ԛsipkȦixt+͌š&у1I$=ښhV+&(H1痟|J*&{7 z(Q+Po$q|-e]:GbHA>d~$4ɐRY  #fdOiɢklw9Ja]{I%)a4bE={ӧ,*9kb1[(6 9<)÷BpZ<ƩW/8[՚ X[dM$ZQ ~[RT hdI-hV7 G[SDجR0lѴ=C|h٪&dSY.lD"0kUop^}i+0T .xF)|bxzgǀNSMx8)Zyz,)^/U>>sϧg3c/YN-ʆٜ緿yw#v'i8<;fY,qv R8,P3t,7'RyR9R%,%xo fɪfS.جOi ٌ^p`%3W~z4_WꗍՋFm/nro*•[s#^|H^)}nhxO/]hC$*%ZC4b@ԉjeRKZ5gdR!Bt tJD э.ьFA>ir>PZA6v [wlf+e?PQVM{ 13בExoHP(kbDQ2A 'S4N)i[Xi#mpx|K\Ȗ1"W "Lde%i]KJ!3׍٘"IiNȴ&y̜^QbS |0IVƼSBx4 Ct]G4ascEVe|^R<+xnRx ށm I*!50TN+:]k,c 쟭6F*AK̨[UzO1(iZ'ؠ#7JiMcZC@M2bmC>0e>.{sR&bޫTe;W$B} d101 "RVVt;[{H!8t~So~zJ7xԶE:_s> n޹ƈY>ɣGU1lݼC>~F${SlDFg ӝowj{ԛO9YxMʇw)gH{9o?8|?e| 6װcx00o ?WLzS~u>3]Pl6qt:koǽ'͸m7˚bͺYϗ akӆ7(뒛:65fCL^:6|9.Yـ Yْ$R'IF,3 T~tH.10?~@fM]},wͽ^`F4ԘDɖa9`փg S#mҤ]!g0Xz?[B[κy3̺iJZ)[[78[Zb5Ji֭j 8F+) QqX8b'|l!~q+TסȀR+`qV *)JZGηx]zX20M55yA% y?euRSKˍ&Ŝ4Ns*F%ʫ!AA4+ usyY{eq%y(20h9eoы.KK@fy"WzR(1P].ԡICc+uc:#%K,[pBxO;"pR!'\Tx+^trYBfӂp ]t! PJ-δj]l#7b(tpa׶-u쫗2`9 _dZ Uqu5(݅U ]l U"J#!IkVmM$= -,4 ޶MӴj `LHz Zw*")C/%:VtP}d #"Cq`!XyI"w"s+p.H;(@Ŵ.x, 2|G#ϘGIkE@;F;G$4RE\I yٶJz7ol [lUEd* A>CzrC:q_y oosz6~w 8_ {C6Xyp&+Y vIda5F,ɪorNqMOOmqFҿN-<Т}Ll1#F;[/b\q=MjFoŲj(F)x[llfg -fP-u) ֢>,j(#Զ!?S;Ó'om(PBOY/W<zU$AKADQD^ Z㝤iJVՌhHY 8Z,XWKlDZMJOZDG1mUcj߫HVĸ$H*LUg1{҇Eڢ8# 4(y=ϓsy`.K@g&4*V4MŰc(¡ kZ,1ӂ^ቨHGHPbTDYWXS!{Cc8}1#0bvo` YL)G &'ZN="+?z1^1^k˩_=d^rHmLu%xLoI+ݙn{gq]I5RX"c IDAT [S! ʆgYYEۿDšPq:y>| vFaP1ـ*lzMqt;nN}0- d}zvb b|/|WW[>G{/ J/3_ tKf69ZK@s.$V΅ B)Y8p_FQKr-3鄧X@4J&x@ r*V ^ ևjCuAzk>2u( JliK&):ErXoOm^m[褲Hp!ĩ(HI"lD.kWJA^ G*LBlF H$W4: 3 GcϽeTR5MXplw{IZgv 53#Bza-)ʼuSybU*K r@*x[lֵJqqk(El@IU]'/Y9s$Z([Uni0m)?kxT9c^ymvʠH22d?LKFMN~}&ۻL)2KjEkWlFm4mf'IU4P_ ~;/2{R[j DT8/G:S2căV9?EX5 ~?%sV}H2MIcp"A'PZBQk-?;{{?b}Byo|SFyDRg{{pHm J Φ+z1+ODihHUZ2%9;M\Ws m 8Dڣ-$'2,6D)mD*IzIb̒=o(7w 5fcs̯|a7uU*7ǛT 0] z2`F^fWmM/#0dY0Tr9%Olt]Hau}Y3Hyb)%eAk+&M(c\AKV!& hچ$쁨W !aB(9RF !c@+؟c˟j4˳*cɕ+(h^oףX.NiB⼥t6"IM!O%p528@ ]mHuu >>ta-R aqh-|HކئWJ ̗NLTKAL` -um`::Sg^Dm3-TdA4ъ+BWU8J?Cl"RŹE:FKkZؐ CӚ3MP8(/xw.8@;h5"$ !Q En:㿃g|$Xopc3CA6ݱ5.xbd!Q:VmIi-E/Ҥq ee8(Z|CRIqC^kiA+.9Yaaڶ$8lʲ6i񎪪XP'8Tƚ\)4a&j'YR-$Zt  8^ ai`T8*F/gZ9~:WW_Ne>0w #^bNw3>5OJ D {$QF*=ي$ŚA,SzUG#X F}V>8%}dc--b*{,ݽE$2dQz6w3x^vHpB G1KH`z4'4de1AFcf%GD8ݺK`:k8=bJ mAp{AQ7NPU5H3+g9rEhAƂ7`oUT$><}aNbJ8 66 ɢxjψ2dB&S/ezx1x4_5C`{tݞo_r vgW K R_m7yQ*0k*ZwryZ#"\X=!K9\`h)/ i,)14VLHŁ8 6퀮8Ys OChAl$# 'JIAa,XmCqQ@`8º&#tyt#S~.r}%Mcf)|> auӄ`z}֔ՂX5)i0J /ٺ @X颥^-q5є+jZG,+ϸ89|K#GhH8%R9[6,KvF7X ߧv!ňjEYET, rrs&=c]J N]:T9f5>3AxtQ<I/e} ]Q`kaCWQ'!(XL,52I!Q uѶ%/8,(Ʉ 0QԆEP-ޚ ){?;0!iR)4"'$q6;6 `c3okj …ɐ*eII/K1ZET 28%EzT KP"@c.$2Kcd^ئ·F,LnĚq6rQ^c?0}!J@ηpG)=nQ-I% ҈DNY=FxV9RHRɄ$M#r$b5?|"<[JO7.,pdmvq:Jk6G%QChAҏSΎ>Ͱ gONi } e8IX/SjJ>~eg8/|8:yB>@;5Vu͵ۯsrGí}|fYW̋kĕíJrؽN=w"6;,Dim>WϾ~?dZe<1~b^k#UBPj6?lIбBg)|A$xдְGz=FeYĨ2֞v&Ql9lE9KkEh:jb$MӒƚ|JoΝ>lZprؐZiJr6_]F B[Q5KwEA 09+`}tg.l\̎$!-$MQY2?<"R xh0'q\x]4z#I2%0 pbU)шYp<`kczYG[+"/1Œ8)5~%)᠇JRH ֆ+/c2ew_|v .ru\yyNu|vzʍ&Y0pTŏ(EβxpMiώq$62Q>lzq1$FU/.lE>wу)gЛۼ?"7(gOx1x4_5"_,Z~⹏"4~||FF{ˆ^G9l Y>D)@B,mƀT8qD[# AΟ$[muH"Q,TkpʪG:tY^H".rHBhi~@3q ZB| [tݍJZ&YsѵB U|(C;1KH@7Aބ6%5yR"t`gC=UҥC9D[ H]f*CoHI 94'm`0F#1 1lݸ:O>KD Tss|ﳷyM=')gUl\łxt$OS\SQ: jSRshD&VkZ`2bY[ںFZ`&w_cu韰}x(""AXMU bɍYoS6x8A{#,'Oc\ !+ , #"PPSSFQbyƵ(;<:q{?gy|t^,)3#ϐ1RDلCtB)!I2Ζx0uMZ%%b˨d1;m[k W3zO MU ՜<IoĐgy/G[xwk@K"1R iO Mʪe$ 6,y:i-q P Ͷe1[d)bEcju!YQBJIvҔ%iY5-xT(Ya.e2/ϑ>`^ڞK$C)ŵ-֬{pfU/,]ǟG@U2"U4bt^S)-i< ,gO) 慁Ƴ}&1ZX1+'S^@Zjnu.߾3X=g0,n¯y6/~B›P-!T:xm@R9K]/q @6lKQ*tIp,ށW*0RlPup|牚.tQm>0=FUb|MsKpD'BvemW!p΁BWBpRpD ݇ ׶u-2J^ LΛN@$8._" |e:3TѸK ie]Dw΄aݖq I^9x%YG5JT Kvm˒YsıF) Vxwo1G?nqJ xo7K׷xgD<^WΎp*e0Sۖ\X5v~  YN/NpQ:=u]!VKL_`"rrM{vLQFb*LHLMI[q3Z[I`̯p&D!m%Te1'7Bpr:'q隝/9&IqRӿ'/ǖ!p=&IN3qpd"N?f<%N,g5{wyxo2ǘN98ogӒΛD@kh+>bpmU`5=|SlRWK^Wѩxuko2z<~xْ=%S%|H6يR!%viɣ'\GQDS1clٸ:Te=[ͭ_z(7 D0XҤ|uF3Kv#>h R֑648Bjq[wwfI2Ě[7o3| ^vÇh%qQ6V8zE=*yrpAoM[h7hTE$i>G IDATNX#$;[ P,5B1IDGd#06Ɲ$$zA*Jj`:=c<ܤfY ѱ籑`w[|UϷŬрijWGEúk=lbXEU1]-8=yD g'ElOjx{ux4_W>hhJPX1hh`x>USoڻ7v՚k=!}&7U_I/ $<Ɲyzx/S.OHcI-j9[7ޢl nď߱ţOΛq@:Ch^ϑ*aMB9bMJ[Tra3RPC~ɔrqWe U?LW:3/%ϞW<'1#-K҃ kyăWdQ4rBcFBYA;ǚ zX.4(!GwoVSzݝ;h)đgɃOO>_+B.s{??T<`\cҶ?T|y*x<π72/jN)z./dЛ) u8h494R*RVuU *(x9eGt`V|8P: \!B'ԁlzUh|׽(eE*qIq"1ZL/|fIt) ݛ"a( p݁"M 6b,]W9U Ac_L]|=Ƶu =RMvfAMaC  '"1]l |Fxux 2LA*>jm~T!2 G^vIt^$ u8ƄZBq)H#tA pB"2ZkAjR191rN{{T'i%֜g|yik|hm 58&"z>Y?|=fMS>-W\sD&xc#c#b)GTĻ[r 2-_ů?槟= y[] ϩl?'>cw,L#)?}tJuUm\ j5{7H{9uRGdLocVﱚdO[ٿK/ж-#}S~[`Z7̚l[3r󥷱U3_b8ColCOAp2/mM/R=|C`9xrSXm kAYjIh4?T Ŋ(ZxIQu2=>~$X.fTmj΢X(!YhME>a3.1Mv?L1)\Wv\`>gNOױ16gg MҌ+zB19"l80h3m鐳\^$.g;|8u9=;%s\ZZ%/`׌E_Y_a[x>| ʧ߆猁^^B@ZDcR.S HET: +&@MRb(͕QL. zbE;!;M,,2w!fO*uG.\Id}L 6DSȼ>D Pє2. :^I\(Khw$^hԙ-A6\zݽZB dHc( Gxkb^J .+:WU8f;BHYlOFPgqSFMJE{7˕31-;pG,<H\27} 9%igLŠq] m1h-W*5ޔR{KUPsD@@^^2qc6~yItq2`]pW 4 T'wD*klDP iMR@?u~bΟ+{=t$y=xAP)!MnJ4W`I|B}]n~7M=c4 P#ՂSR/Oa}x_/> TjY?O~w؜}H)A]pQM[J'8v{}AOyF6ج)dDYmɏoڬhǻ$OH|9Ij[{~s٬b4Et:|=bm h3<ajK9Ko^ɜNx󖧨 D(0!#V(3tes0.7rF]1KfKc[to+,c AoDJMhW|Z!񜯗y}xd] fUd΂^c:c)VHf9lєzkd/8+f''MM!^i4%4jj6e]-# :8z鐣7xxHދ>JsvЉ.7b2-Y|k0#_`'s=BkMh]k 1vIX.u o5|]R}`/S_/K@ Ӝ/1yK{_dG_~vzs`i4&yt~5 Zimh(1HkIxk^Bk L*x9V:^  Ѡ&x{ ~GOuuP(ADʔؽ]".IȲ6ДΊXTeZcC/JHdDk*#{jV[YT8DB|jTBVw^I4ޙؓm#R:Jceq@K9=R c,RheZQ4uq W%i4E ^b$N { E(!& 5BGP\<-Zz F){,UTIwckXfA`  4e&K2D"ׯ#JA>sGoah`?ƶ n{]v6w{h>52Huq#ˇ޻K۬xoP+Jq]Rm$Ō0ѧ?fMc6yGL2UN0F1O([x?,5˒`mͰ7a5[{=ˆmmȓZDS!}>3 Eͤ4c٢uAp%AdUQ7;GwjI՜ze3k~jhC]akL`g$I*9A$QRE#FC0BtB~ɠD4z_uAUp\)/+2)7EiM:LbhzUH*27fBFmuG Tf6Zp1\ \(]@" |ۙBRKy{UltW B K%xkg0cVA\𝔷fc6(ty{H>+4"xZBLIB xJ#q &6kt=!Xc'kI nq"CsRHƾVb1cUH g<5Qƭ謇@Lm+mP*,HPu5tq`IIWEJ7'߸7`k Ã)m1Զ[KxJefBzI_z;d2p1>*8"o3?kvGє" -Fy >ۚh[,Nϸ]߼);ǷV vS5m}Wzeh{QPmJ!:.ܿ{b+‡tâ(q@O$iζQʚ$$ k8vt0-ZfΙw( A(FPdydqLsBQ7;XgwC9Xdِ)'TmNv8)]zޘT EcXlHG#f;W)bAu,hSݟ@pFY8Qg#V %4$V-w?zKXqwTjG,X IQ=vCT˳QEh5YZfQ ]UÓij#8N @}r2_V"V"n`p}?c՜f;8{plvs6=@L؞02HMK4V s 3؜m/)A|P@88!=2"TAj"S 3^FD { RB)p+a )d;/P] ":p2:9ʊhSJ`XRu! ;&;G;>;8pps/\C"Sgt߹ǯq_?b,7>>g'mmɋ( !ѤOhJ?;mpՊcB?+fˇMrE+Vsm͍7!Qg>dc? ;?&#n|Ք` f"5b;'llg ~ o}G?$Qw=xkG5>'~@/q~y>¯*-Ō ƒ,ΗeC˳ڻxng '%^N"Bd$LGzm7G}Ӯܽx@&3v&,RIUFaaF5l/G7z=GTk֛ M)֔eEIу^,+O0MT"(HY??8;;{$S1<4qdR|!vCQZ!ej;>z|>#p IM=8Y )sو$ﳝtT.hտHǜCqUtǖPJu5|]AՋ ]O\KV~z{/`}{%|BŌ9p|J)NDwǗ IDAT@kӴ'EW&2j|442_$)& ^a=Hk @✍FU88!$^HP.:vll4"qVL Qj=讇T+PxYt!tI"oT! l!eVEn&9j^l e$1R$i HteZzI:vNm 2.zg)N*Ÿ:*5{Ax;g`("8!՝aS(sAU1Em i<t!!6n3dD4xUdh"Ċ@$NN^DAzOV%^$J*$" xjhӄ^[k9TTۖ` 8Z゠E=$cLۜǴΓiA2DR+ ThgJFg9MEVDj뒾4M$01?řo ׯqx&; XZt"Bʳ,/ilM ќ}ʃ>傽ےp.Iؚ7.{d~Gl3K/x;h|P;҄ʮH19?fC#.EG}B?!mY{#hʔإ'Qs>99x"g~qx.˳BQ48P%2vRm;Sj&MS, ۲d24 Q,%,eY#=X vu[c9шz~N,4Mk)+H4uSwx3-%nbh֔]Ι=&Ôizȸj٫/ٻ_ THT/>>m ͱ-O'HNe^'}::/3%Qi4Q|,2tF+II<e A"Rx o#6vFePQ}΃N׷P,tFpm41ʕ/(QnKoW$G.%:8pRG(%R"(BvY4~>hl#d ET.[H" !t\хJB ZBPGJE@"S).E!P빌_IvхWzO ʛњNO!JGК`-Na6NZHT| $(p! 139蚫rɰ P(H+)LΓL zRtDZwWJHkY0Hɲ$N HuA*55H/$ R$u}XeIDiqq0*"ИG_ƻG~k>xh)bi%:c׏h柲jJ SP-|su=`(ɊCC}}8uLl.(冀$-HW^RdYf7H52D*R09 5Iꪥv[DΦ I?Cw~oĝ/1~7>Ν_i-gMv]VlNfnB)=ϗOC+ql~N|%&H\X-5&&n. S Aγj ylhrLj5$G FYF XY(K7&Дkќ~ME=[h]N.NhGµ5 Y2T09 Af$>#uaXd:A in7Ȥ"Ib߸5Ao@"$Ԙr$>vXiYj6-y~`9iJ5ɔ{cLݐHj5c=RedڬfA2_RmKO3ͳ&=d6_&\e<|vO_?Ս؆/ѭAO@&w߿CzE :G%) co]c<'Ln.Q+F' ˺xzYSw ZPBSw4wTԛ)xk z7嗆X_S &1__7O#)p :i-I_obEt\?!# eh/X3]PBTERw{B!tJ"Ht*bY"#( W pm4J<2t!z9R$rEW:e XD9w ozl$~x[leղr?_'LoU_Ro\Mx|[ޡ7=<碙i[r aGrBI*ӤABMP)w1QI롶~N5tq.4\2!5Mds,)3C+j$ZE1 1&*q_D`[(}II>tGXT5/Ř_1>ѿ&)jF7ktpwخJ12 _i ٲYTH!I x֗ D"$'pRn4Hh%{LF#N/NZYQpi@xJ6<8}H,71('izCnXn oF;} qr <rx͗_]Ϗ 3,gYZ&d{X"%54!"~ 2Z^jFGoǤ2/JvSN_{dE8f9 41=bzt~^ח+*; Yz?óz)+6V}5XSSoilv ,Z8&)oX83֗9 3{ _|D/q|-޸kɈ`uz1-h  i-xzyt$N2Ֆ,KJ Q$Y `|!*_Vtu-Hf]\]щXGȘLiʆ:Z3L RkqXg meۖdZ31UW)~Ú_4-vE,Of9+g@ EeNO)͌/.?g0Y1@JW~Ԕ2x&;;8kl5-Kl0dJat]Rl,s\i-r98xgx@]@ MmMh@ Ƶ5O(('!)NɲkXΟ˺2vT>J |Nx'{<ɣOnlGTxJ? >Kh}E-YbOO1Nw5kf' G|ަAdsEc,q-Yͩ5j FhY> Rf$Y|~zKՃ/`/rȨ_Ulߋ_/ tuBD9L 6v!T %HM"RhZSA(h|@YeFʄ,4@#<@&#[^2ӺsW]&wlcҽCEg /ud1فCԘ(E4 ຬ+y$ctE˝sUr%R2uL|!J)Rij/D+D *AAXOzֶޣl?NI'g>tS= OO*!zQYW2B0`!<^ $BwS> YJ+1Q EnADW.1{z֒F  !248O!6QVm$#OT4UQdd,b1.FUJv٩=*hAcNi MeS~uk0 e0L?}k n֛o{_5%uyNu$SddCrꄦ\QB7r~q۷82OuL0̧|~.ozֱ{|! $6 x )99*4|}tg2K!rКOq}]^`ӓO̱eͦ1]^DF4+BTg Shvc%ᄃ㙥 Y֛H!P:5}.CybY E&dcwĴgԌY\\"{T%fa0(hV 5y- f[ҴqRu9,"+e}djy-8)iLM"ETƲ\.Lt讽A{/ wqYAe,i$-O%XYv.ʕi[R^8=O_>ԕgCgt[劷'ԶD3[CU#78e4ptkl4˒ۿՍBt5\kzK=t ^k6%/ɼ5|]0 WKj_0h}aEUӯ{e9/O-]#TE$U ZXEW%J?xt8bߧ8AF@D(IZG>`5ZpmRQ p6^neǢŹ8!it9-HcޥTxc$/NF5`F LK!P g[J:YEH2pYH1LRkSlD5:ͨ>>xl[11EU"u#r5:qoc$ ~Utcc:'QB@'h)XڴM4 c>% (! YӚZj%ZI zĈNBa-iIhдmdNZh`1-!`ԑ9p"j!(R MwJxOJ!C)ض 55F tƣ tq#Q2F AZCɴF!)=q?ǻ:'}fpxՂ>CThqnN?2k)秴mŲ=sv#[0)byD[Be\NV 9?ӻCQ F|3%X|AMY w1~3i-HhI"г,ɱ7no/oCv|s|tӻ?C7o_0(RHlUar=lY6[fmcvklbU"LH*<1"Mwư4H1`-Y2p+Tx@e,/1Պrfp|@[Fժ$ bȨ#ngHdV r' =ܣ)Oq5!r\m)=l\E`ö8M>׿;wI&pGyͷf9M9jɤ)/&4+p0ـrL% ^v~,xԄ|p|);{ #Ոr/\uG)"֗H’OBCw)SVGqV6H>{cD45۲ur2JFӣW|uhz5:| OE _U|ٺOfe=_>Hsҝ=h+~oZqǓp LMJ(.,|v=#\abʥ,HAMv@72Ni7ynƿ 9{pz$&w6pyݝ4QsMvm~qsrtxY5qrz:~NstnGd:-U3\aesvd9Cq`3e11<.PğWuTF3v5!6m<\G)2`=VJD}>1ZPfbbTUN%2Hց;<HʼdROdhK9i-In5(fn=HA5I 2f@v=VgZtNq*f\1v-AfzJ-#e5 ^f7f~y45/r<_ameW3/ۄ/|bۃ)Gp/*PREbS<º㤮(B*%)nbD"3jM_2Ð1chf:&V-jR2* H%'$xd(Sc h%p1&U[ Rݐz@ݶSߜ|N郤"nD}pڒm 1|)C)h$R*܂n67ɤ`pErV$ٟ2H6k!ƽtHQhm mԠ s&B ]d)օ֑('(  =[dZYI,C iRH9;lG3J cj˴1  W2SA@HgLXh#<$I6!5 ]*%i$E ( ɌI-#1`* UGJ R#:FJ9w=X_1Fego||>FK z۲|MEF0=i/5;7 p4d +9f'3n)s?1߿|?u៲Y1=t0" 8!Çw{,/ᵫd}>n5;p1o1g2ƟdC66eEy )0 h.lj4`~S\t($;#UiK) .pUNߕ!P;Vg-.pDemC(%y:X;o *lEK-uY15l1>DSP19 `{B_E\HMFdHA`Zƙb; ιd~x 4m? Nqp4rC99/X5h=Cd~x̸3)*2#h9byqisA>a2Nl e4ӷ-WQ]=Bj$Q]3bXT\ ˵w(&cDmmTA24Ș@.=KZa?amILh֑wӉ%Sh1n[33>GR]MWS%)S".Y0{"n:!3ih$BE䳐qU%2۲* ߳_"%bJ3̖ȕH 醀;LCI֫"d"2MEc2s\.Mt$='u5Lޥ]_"_?_g>u69]tvlr|#Mj/ѥp lrZFsnTrp8{k}t].8?9O~@Ϙpa@eq]_WvC4ggTķ 1`2 yz>PNwͽ?d}'wY-֬|O~1=[rΈ;6kx#"1'kds0p^%_HI>ɅD[K3iEZ#b$jtc pyxh8;?F5+o.{EQQ7F]M@؀R_.KGYlQу4CܻʠoXw=8=fT?c\ t"6ѭT}7>7 ni&):hQͦdyfqAQHQtM.r5Y\ mZsy9J |\z&/֦p+v`\N98ڣiW:2=.gx&YdW)yr orm>߿GW ')̌T7 m1Wo9YiEE6'(ß\~gfk |3Mʯ}/*+Sh'ߦ&dRd-2qB"%eR@Hz!*CVRxu  N R MFB@F*NQ"d(RѺZhT9N݅1B^&;<; [0);džf1`Lb՜25 IԊ D!F',RP?"r $O)~I$*֋TA`4#!TFohH%2ǬP 1D00. @HQR0 51"bs- ݀o3HM:yF,hAT5q)ƨ8VI:gmUIN'/uN!tv"-CE.jZQg9N 1B`T Y2>IA<[FlbkI\IA}%<=~`!`B纭z""1%*RN0 J\p{7,k>>??!]rm2%h0f2#d$KtyU65MgSnK%,/t);opA{zum\ bw,KLyX;ьwLg3B <;~(G\?d62޻h}Ƀݺ. g[>yᵯ3aZL1>,Pʰ{p%r~|!|1UU0 e>f1z]f󒪪ɳj4͑%Re2cPFӴL7 `6\K \>>KfE5'#%s29}5X7Kv'3L2޽9^6z٢NuCVQ$OY~`XאŒշ1YM G>Щ]Ω g}dFo֬7Kfu{ٲ[=rz#S<CJɳ%d 0 VRnOFV =8g㽣! U=MiO3)tьͰBGCe0/__`. }،1w-IO^I'gxйs>R& D uoȔ7 T "B?z[K~ #'SV9F$s jVHuJǧ< oDjcZKUن #$R$Y;P KAL}6gZk\dFc;QmAD 6u)Aj1B%X$D$A݈@C?3"Àp} 9Ah[iNGI!!Ċ$nCԘ(HAF Q2EJRR-HrzM3)m_MB}_sESՋ nȌ:7|QӀ "If˜DJEn+DH' H Gr:?adRd+yxG żVBMOUL; .{L'{t${y _;ɽ'Lf.[]785՜%g᷾!H KP&5:LSz۲nP&\gdyA5uM#tOŌ,qeYcwGQl0 ` {`']ohNbW>SdBetMC(!x,+"%^Hx:m[sSf UT9:Sm'Ħ#$/ Bh. }n/y0_v~IRzADXhݯ@=C fү0x_#l>=W@7L\.Nq8ۡqcx'l##z#ns]ӳ{:(\.Yͼh{D~G_;^^:j$Rm_|RkRlj8H+"ݽ=)-yA1xeiG"@ƞЯo$MK&1gys%/ bDRl"umJcZQp"20F XX Z) J AkM5cAJ8%R16À۲l%UT'9nA6hDr gVVEb4mOD2!R]̒48`R(;hڡX ` .0 ]FJRT%0x7 C)J9ڭµLJT$ڔ̦DMʒX[}>BB<zL, LJrPJC$ĈYO JP!1ITHoAnL CH "&s(EO= ɌL`}J@&"Xc1 60l;]3 A`6%7<~_wE!K~On~LF&7TՔq9!f}SbFl <8?= ;;<=_ 0 hGS.UeN5Wj2cgs6h%MKV&;St>U͆Rri4K&?b C3 gL)e } G7{~CVwxzv-{Sr$qE3x̸ܬLLtƠ+btIUO8*IgN3O٬.:H\xwg\ؖo_9з;?~>~`gR0G K3Yo97 |3׼> H<6C{k'P$_#}EHoly!nCxJ]b "/abM`#BS)"#8|HѶM,i8!1:IWOA;@|=cS` 17;V |L+bˈ)(򒡏(䒂 dR` ѻĴ*;dc!?iLz1|ZE:CHA]ep!U}D`1B(,RJIg-6,;Б5JD\DICAi gLlz}H#T ޸Jj۹-D!.}޶'!OMmkbk2eLu#B`-ZJ2dR!DK!IW1|Dv#yɷ*󸐼Aj2mJ I)D*)*hmp.N,`D!) EslZT)dUDgO9٘'ǼGa8[=ɘ@FQZ,XOۆ삝טg\>>9s1jA5ccWl6 YŽ32]qukv#@Go.V Esr-P璦ݺF9&* 2ج'{_P%}įW2gl.pM黎( pvqt~ G,Gd#Q_ל6) z.TEMe?B$+K?p,1y (\2't@kB33"&'xĐӪdc:E 2v=Ϩ@hͦۜIO^@AdT8S,΄7. ^*asy*s& 㺢R&/hdP }~HGSFlj+/m8۔=]5lVxFK#Q8/9w#Ȋ KbȸGWK Z% IDATSN21>:^ z޾mY,دS"g4q(g`|va(gG<;}ͼf~mHJJݫ.|PܗW2Af|+/RAxGyJ!n R-ʤʑ?SI:)!2R1LK!q@lRڪml,heӬɵaRUؐnS1^B4%.U h!L.ɪH7>8r!PBTꍐɵFD=,IYq% (EnȫqCTtB!В r"ɋniz@l.d"Xl"EHs qdQQY0:)Dp8fy5Q`d2#/*އ2x'ǨqpΓ' RhOeE\P%9y12SI|y_bSrB؜  ]-'@ph(2*;WPՂ+v/pH6]Ϫ3v=Jx!1a1czNJ=xgbTrzfrŽsz3oUhs7K߽۽N&G_7"j so/AK?L##`cJC{h&F+: 9c0§Pu ɱMXMWBGu yHFmÀ2NZJ]*?%}gSTvN*|T&ezCǕ>&vS0Pt@a<CtH!A.Iz)d3)!0.K!01:."W#KU18g,Kpl.NMƇ$ 3;,xF*t:r%i &ڐH Q!jSߦֆc8KV e>3r A$ ;aGO?ZTQYba)>H&ĆL C$M>`@T%Qn{?%dJ]"Dz\+&JbćȠ+V1Rg|$*L^L%ϕmA Do)rӊ 8ta;G6QeD]!T?׹3g?? KWo{ =G?dx₃?w86nu 8ϣ{yj֛:\߱Yvh7@p֍%vX aϵ]qW\Z6 uIe=e^alY_̉a<=򂷾M?mN~{|a&'\?;fuI6p˧d',.rf) ~ Eɸz㫔vB (=9)McPV9gzk|T1M$we ݬ;˼.YVзK| \.)ׯDHu;CkMZa8i..iϟ!oŵ뷸u=~p%xZ>%, (M)u5AHth$H-.l[?lg)ȶ:35#Rd9KG'ioPG@ ax?]H%Q)H$nok,$,9=F*"IACL2||^H-PJ#D&QJܶҥ2"~|W&G"p1P%pt.$!I^ZiLZx.&I*=H((E!IQDDGDдs8[VSPRT3b(IeRS N&Vsh2#ط("zx*'7?KGH5v2$Z:Om &GKIAK|q> J'C͑(鷟R2~yv*DŽy5ۡ(%MF" Ea(]b(mجNs{tUY-f'sxo]lvtljD=kѦ`rp>n|r#wƬzd4fwO;l5dsEVd{,ZI`)TEEF~OV n}gG#ޣZvv 6Xg'a^Gz'Adfl膞qU1^Cd>Y֠eFh.yA]1w)%Fd.> 2s\ L #H[+((0Z#CC j4f>1+GLI]QT5EQ0G(UH ( RBRi5 42SIHn@dCH DeQ#:P:C֔J@J4A nb9SDvs)AJ C$zOW"-S̢ضZ@]O:| C;l52#~ԚCP՘Y3K8Ѷ[Q*˓g<>?g(늬<)Ϙܾ@rzrB1v _-]dT裏#F8{3lc-wҷ-u:Ոv"『/(8|ٌgϹ21wخ6SGؘmtXm<{oݻ˭шP1r}}Ivtv *ָ-~4.xl'V(%h[>s.,lϢR5unzy0)nfD]kٟ\@(M9!4}KQUD7+UT1 [r".,}_H[ X6 d2LS&=1DWKrSt-C1sI 5u9}fwB$E]%) Ԋ/U⋟ZD|W~g_q"/GW[L!`b^%O9^"˜mѳ5'Wޝ1]?xQg>&茽Ɠ39==F| K͚%S|_ySkE˗/|vy_/7Ikoev^7W/}^f~y;zxf~~hd6Gj+`A 燘L {{{ݖ]-;ӞBe$i%y5 Z|o>-.80^eQn+KwlEt43 @)ɤ(*E^d*4dlmOPLgtuXޑ)βdLN\d4m;z?cdn-=j:C:/ثkn3zD]Tyb*kɍBJIkTV,8hwU#ۡ'HD2Dα.bEm1b9%"S3M,%Շ7Ь6+ڶoXۖ8Sj<(uZ kDMЊ $*zrP2y0&-|'tz6c4Ⱦ^W#d&UW@9JD2Ia=4JG%V\*dHJ+dB13 $5< 9UayU2فHFRe 8R#@I>JT!=M4Ұm YA5WmdzzW"tgٶKÿ֔O䣏U?qCh~dԒv\?e[hGU*G( 'Y`\稠8ͺmC'/[ou :/yx>bp M˻g#qMsz4⭷!t=DlЭB3Tsuq/7|D<ل< \]|G:ƫ t}`7 zAW(GZ*mKWl6-9AhFs&9ZJ\{7O5Hu5c:E: p,J K7cy#jlB!.(+ZqR2O;PfeAVh@= OQBW5!5<ϨʂuᝧA]wC$ 0ڛGd9rt6eobRstLJ4zA1!bTVyAghXf ņS '/*hF۾hMfLT2f`YqӼ`2!+d*&+<~wROM{`QR%_Ie%h)x+}<: Mw^1znjm[ѣ엏~Ƈ\XT<9Ԝ_c,| nٻ}޸_Y栅'W('{os{v?eb4߽͛hξ߯^^E׫)_wuo,~uo_ƛ>MEu%E;O^R"R BeêHybУ,McDD#Hi#,&Q(&HDFvk1Jht;# "Dض[ƅ!!F̠փ=L rBBԉږni:[ &+ !LeDk#D V~`$ PJ9&iRCG)# WRlCDdΔ(2uҠLb5GRE-5wءG"9Bֽ&aB H$TEv T=!hz@f:#WK"\u)n@cp( m٥> Ott, 79 :J&9j/ZC&: A.E25!zbFJn?N*iIPBswpzq/? >O$MƳC%qҵW36O>%^ :SܾFc## QM !'>IZGz0 (=6-V]s{ou mý[TZiG\\_R*G8V/NݦjZo'x!c`]Sns fcpy_11Thc"ösB/pkG szϰ^\>ǜvӲi-ٛ֌:16F yQ)Aṵ-f2'd$jl2ψ"$Ԉ%l&{G9ۦ,kN_r8c@`&bj5kmD,Q[QG3?اM[(iOrNj)u^j(3̧cl?$( ,esv}Im !3yDX6*v/Si_mbWoWW7e_LJ!{-y6XӶ?pvrEAEF O Rwg4/0cnc9m/,ȨTƸLorM  f#[ӳn|F z1~z5*D|+%^|̽o9 |z}_v77B57~2Q1XRA%dr%D}Bb@,Be 8 %> IDATJ-)!M1@@z !$J4LmVrʈQԒwH/qH(vM9*h# AYiڵHA'<=Vx/hbHÀq-Z+V@<'3=hbYE^($> TI7JPDEL +LHn4R&"~#PReYsXm-ʠzֆ& Yuݐm(nHyZ'PUB (Lt6c."dב! Z&e:K$a75:/(Eʲ4Z0{.J<}>,FTRLH.(BJI.&I<(V9T~'+?H>9?, -ZB8fCوZ nǂ뎫Śrj}爑,N%Cϓ:1- ɵDlvյYi8gy?b/./0@U#|tr^|OH//_qCٿ|ӟPD=U DQ1x6 Qysߧ.'|x D !dlk3y6'gTevO^N[_q y9"d#jYSk64g`шf!FcF㷰[LF#|9VK񜼬0!(Xu[ &<(eR|rGloY]a-%}dtx "}Fޮ@tCnb!8nCT&cW/hۖ[jq1sNfQUˀQi^3SSy')j*QyAh%&>N(@7}]/ rB\l0DLY qLjS$vB!zzD)wGfBϚ-!zY0cL,k'K?zo?@}ouoM}Soz%5_lp:f<_7h2o n&m/J!JCʖԆ-uZ; Վ;GSeP #Q"0J . VYIm4R$c)Ӷ!A~t;*T >|Ns%"Āu(Epp=ɤFp#d,VkNÙkbIn4ZkڮCr J |@EJ֒R)C׫56 P̠0pG1:˓N;TQf9RFD dbDzQ("dD@z1b}d D2T~`Zަ0\ # )tr,0J:E/%kJJOf5B4IQ(;iv Ӥ1[(- x1vRP . 0;'Y>X=a)%:K: Dw8ZZ *J@|DULM- RԐ>). >Dxx̏ޚsru>ao~@QYq G\]>hzw<1 aX7 w;oQ^|R\ٜj-*X,i;]w[$ާ,Vh]29pbq}s!D?sF)/ b_|{r+ |i4aݒ5­Ni }(5Q*?~]h%,+.7DSUM?Yyr~`<GvqfXQW{"j (\zͲɯqatVqvY 18Z |L>#b b,ڣߴ}G=Wڀud0lCwE?] j&)rG e901)J& 0$/%^@9$)EJ A$ 5=xۃHA*T&1R"d:ǢwST!BI4%$} l;d|g.\~݄""H/4VAӶHSM@H쎅1AH.l%2GǼ|PU?BVSȦwض:cjbqy(nX,W}|t501N5uk鬣m7|Usb%~rqAdUtnG ̄r)˫+>/wh4,xhc$s!F޳]_#veCrfuܽw[✃qu`}ubS=^6($RS rp|10ݿwW߰xOOs>{ޣ*ho-7 oMzc~Z]&QkkAݗAq@w7+f@Y^3=G1d9jL;0jUGD!) O &Jtw}2}-ٴ[zk1}ߦH"*&j'4ua l])2"Qrw8Yo{6v˪KF8!."|-MU۲j;ZgY7\i5BJVhZL`FX'@CցH(MU{;1"R2gy]p0*9CpێO~ nH.JNZ B*EҤF {wɄ4:`2m"| 9fZ%7aA,gSJVHC:"'Ty~H3Yk""ʘK6c{,}1dq]r20HTURU mO뒬$ELZDzs4ekwnZ9H"10RD  NrK(JP(͟ޟj} 4yo/v,AҺ4a]\"c/G#'l/"Cfɭx }ɯ?ŋg,K%mg tBoX'( UUR%bI^'t*hMZǭC=\Y-h-t C3ޛ DezCt<6{wYn.Y9Ko%B>g*]_U5&uS4u.yn TلLm8'j}c\@hZ%k^<}B\L'\ѬWAѯ +b6$͂0zZa%*A'ӡQQ}j&gC2^3 ݲm7, EۀeW #Wg,ۇwd9U1IY(ʚQ-ф%>nHKy9PmyO^ )SLֲip1Z/8;I:٬ZtSev.B*U@puuA ˋgH/\gd$ǯ8~n:.V_Ysܴv3TLZ%zUQd 9)\ui8@a7b)249iƈs R XD@bPvF ^$>-!"RRLi;֫;Fʠ&9HYIi$F,TeT -5g{ڦ!=Xs 1PhsyQqa(-yQ0H0$/*<# V\bR^US2/ȊrTc ~H'QvJ)#mGF` f^hnwg#f1٘bqm҅FbJn"2KQ*qrU {u 1By+% "_:Fr-P"i$FQi\*o %)&JIi4{ֆq2Mi$VdRˤTHZY4v2H#eEp!{Gw'o~Aa4 z}[_84.N0՘Bpu(5M{)P^gb{'G?6n<;5ɵlt`\׌)asEY)n;shz=ROpvq}:;x"cTMGN1ag۴,Wtd6e2MmG '%<$奖Gct&#]"*YjT+'h=(" q%SjDsuI^r]ή/rE,'W<{zb"ut2Kȼ%SO^A`;(FcfǀbTYl3rwxU łŋtWgOچZ)$.z,ΨM e<aaِa@k k-E?KNG=q{-e3RerfY"5wvtM~!?xu"%Te;@l;Kh-2nn*أmqym6L4xДiaY旀r"uUqFW|>1z;rvQFzJɦD-b|!o_[_ohl@;ri#קܹ}i {1sLAHn.#e*"t_!D$WCja8@3X7Do9ykL1i7Wx8|; *8{1/^>ޭz&Y,oH}z󓓔=/N"Ç\/N9;dw%:vAtF8yUF?x+VK..9:: Ψ,B&d4MB+ eF{UM7Xb UN7 n@@Ufm3ÔcL^,/7hMf\.W(Yk] [N^|$+ WC)͆)d^a)vkBQT)Vx#zl6ᣧ0*AȜnl[<5@zk3 ͚;G//)p0L gno*!l4j>}M5[r1}z^sM4_k4_WWxsw/5?}y[|ybeI[p_?#u0(f_# kIcN'Sm֜_^pc~ဏ; +h9*ZuM"u[v$Hf׆zXa#JI9\Ox1""&H1Y.BP(,>4'9CiMZ ̘%Ij<}!M p֭3|ЃK kɼE$Dr$Xd6.ȴEϦr٠]CMkE#mW2IʫEbDa01}4"{Og;l\/rʐGa IDAT4X:$Zc]"1E2- hѤx +ŰqURcbDCk?-dZ1$hȴ&d41FbpRw=6+l *q%$HCrdhU$B;\o{w8-D،AW9(A#! U5j:'$CԆjDpRIl-mQJB+Ȁ,I6В?i*EFc4YΩ2кx1sv.X^\2≯utFd}XϨĮwÃGpOw~Ýߢ_`bqmXmdvnH)9\r9(ƈ"AhKf ݸӚO|̝ۿ{_q-nx{?;wxp,%ZEv]K/<''MMp=,}'{6-NiB*tlMʰ>kF\;9g5cqrlpTv“KJ3*g|'쪖1#6>eR*^l*qx$*g%U^ b8x3| S[$kG(]ݭ;2Sк X?@{cg:N+ɕ[B'=>S棡2/$䬥ۆQ>!Rhل~ˇc; i|lrZxhvB ˆՔ"uU#cdZΨYNҠs|Fgff_>g>`"I8˸ cG!Ams,Nڢ>vLF3j>|!˾0 Կ^%~A_8 IXg|'Mu-|=Mb&i H|*)r7_5fi8s4s8?ʩClT`FCD+C"Q-^D6'ʐdehv3~HN]萰०=H QjML 2 h,'T$BGJ q=FJr2*霻rD\ Q C I5B(&E![EЧHiH貁(b2C*S"]F8 6&ZU+5MH Wr)Dnp%Aݲcsb`LF-r=A3+AJ)$""uI 3 HMzQjC2k:^B<@:&tf% xq}O`B;me !'oӴ5={o}!Ɉqc>rWt!&o_/93bNo7m<߳s}UsM.)5n7^-$-Uۇwo1J`c)m~~: 3 ..V\.GGg<I>`|W׉jŊiO<>3xUsjU*?狉 /7(r~HT8x!@H@bWU"l=~ dtF[ 0I҆e-m4x˪(,=PF)'EhkIT=}-ŰJp$&$ox*v6A(5$A5q olUj]?T!8rDT!mFC;qH~"&T8ɔBkzr9p$cLJO`R$=;.#*MD)98l@JP9O=De%1aR$&']qW%M 0`N$(CDŞ=fŌv?7@$uuM!Gbp~w 1 ,ϟl9'5x3L Hhڲ[ɏ?d<V JI ݎY\^RT.rPU{\ň`yLjTHX-Vszz8, 4}BOJT6!p:_|oqsVHUE\Ӈz:G/[t6F c%}\&aƍ[S'iirAc4f,F4kIB3-m9GOO)߮ ɣHꂮ]JnE19"j"'_88e\HV tQPU5Ufd&r4h́~G9;Ĺ- 1u!b\G Ow O<`ߺ qx4a2*ʡcZ x^i[و"{V @#X.)̈ )Jf?a\2OG5ž$d_67"wo<"5ooߺͳqۧ#n_NjVggo;od4h~HH]>w,NYhF9Fh#$lxĭk8U/u/׉u_}~v|\}I:_0ǾdJ!|4%-|LeՎɜ$=#\KHCUNh;RS {TJ`BDD] eMEg mƀ;vY^2-FE$ ckGJlf$ Oux繬h (lJ c`V$3DQF.V(4V .Ǔ|k;#EVk9\(4!Fˁ?jmњYfgRHh{ hFW}HG&ckALJ GH޵X-XKJ;l\@hR"|Z S)hPIјɢD]UҪM"1:lz78*AnA"?$vuӧܽ>?l=&3k[wdZ`j62s &'-gNY?vy->Ox#{$Qε#Lf\rM<.F5@ ]f4ݠ?.F"sںEDۑښ~E[C ')-b~l#kv&b̉i0ڮQ*єX(hbrB9$M`!amЖHgtR d)gn H]1 PjW7})24(I$y|_:ZS f Je 3jfuI"QLx'x;."1-W{ZװI1erpjfOhfzinal c,*=Q&2Y-Krc AGȎBG=h6s͟ WM%~$Hkx9ݢW.'Z g77?Bxv~е譧7Lo|w_pm6,yG?uO?='9_]b7osFxoskfY׉:|_1^x+ś_\Q|ա~___8x_5䙖)/vUD&F$]" BB"|@hc"D.*B:[)J8a k#"OyXZ|pUJ#d<.pCE[Z`tEfJQ^$l6{&^yAZ&ޱ۶H!ȑ$Q1RXeH1!$G;Θf9} LG߳ !fp[LՃvHj7$[KC0Җ}' rW|: U"XPBC"H 3]J=fń@)EyFfLCr&hkA#H4Ψ@)%\>0Ҋt`dTuHK)A=Yh%RR 'ғ4>'G0RR$@@);OeQPöCx2ftv-]߳1JQrK2D`A`Nq0gU\~!F#wS5e8`]{J}&q'ч3}Ih(qUEݶ͆l V/X->c_k&$Reqt̵o'?Rl:&;>z?\m>(mIݖ$,|v297=zO>C犉CE~{L'3U{ڶGg=$b2;Bqzqu{f -8'+\Jj>d6& uǨ,)'?;#''s[39s޻MfKd{w| 7nS Ip/Pgqx|}rGf3#d&izd}Jo`1+F09B3}o\׬5ۺECœG` bD9;ƅĮoy&y.VKfG\#;3\'PR%7n%5b\4m5,CiY%ikpU5`%!:i;µSo093*_ wwQptnݾ;}octwUDnosGi5wn<ϟ},c_ ]!쀋=~F <#ꠘ 'gXv,w >]u|xh/]<//~Z|AKsW'j|YBe/erw4b$R0)Gt>C 8X,@&6՞1HgD!غ~J^15iTdJ( ף<"LyN "m]6z/(DJRԽG$uS3dJ uSIjҚLgSB)YP!DB_i.I4r$ivG #w"$kٶ=.I3H ؇!cRѻh 8F3$@Ȳ0VxY7H%\$9]ReD<ڃH4GWH1hNc$3z@IODhMuh}G`I`@0"rj,O,'08HX)90ʑ5`R*BҫH()IQb%J4(H#C%In {lM'$c!]MLZA+E:lthjM%ZR{J-}ISo`)RB-?jhI-m헴Mä3.xw1*񽏰#GG o2Kbǧ7yH6в-Ŏgg\7@(QNxܑOI3]fdGbтH21Nya:)y\!bZ[rY_}?d(A-Cj&1!*RtU9j>^v:ܠ=:Pw E)=M;foRE|nz)Ն[E* ׫sF{'bƳd#ӒkSf:9&O~ +:11MDNNY*czPĮ6Lfs2[ЬBpj5gRg5o ƣ jCS02B 06GJ|>TbAgcmþUXݠ 1-e9\W,wk{khLdAI19$=iZZfV--gJS.h=EV⻞fc't͖$*p|z_l,~=Ϗ#%%wss|BBdXm sIW887nxΛo˳V/xpt1a]Bdts'e_-n-&*:{ݮa+}"u:^M^W:/š2ɯTEJJ)Ԕ('3n޾x|O[T!fCNAPqH@dH$^&;1فj\l`ЛGFcx<"aN'#ք8&\ ޳j:dH4(Y1z!JMZHA)yFP!IU8)E6(F}DaQ@yOjI})݆u)@+vMlojLףZ1ST6A5-l9=OrUdnͦHs6p<=`dj|9+YaA(Ml`y1FA>bbJ09bb\3<(Q9QD|c8xzOۭ\=c[o U)9];)Z./8IkLtMK{ý?m{O$"KH-Qf&OOR RX[@H]KiylG⥦wǠsmєkL$1T@ݒjSf%7?Ø qriWW"ev~W(,|ۿ)rC֊O|ɝskrz|xxM2? ͒-OΟS!sd>Eds =B&Ύ8qzK2bK9Wx׉JV3/K;W/]|Xq%5!"&M_o$cpMRE 0TDB"}K9J+p[FʠR0 "3%[Ũ%((1` ֤(׼`W77Tbt1mji$% ]GSJc( %$tL`@H!H =ZхHQhR,K BI(3dCZKB`X-;$st1 q L)2!EBpĻtVj#m8 #8!bZT$1|8pӆdH))A%1|nWx%F<>FQH!WCUlB¡&t]Hc%$ ^nS@.R$V%b>dZC1B)K%E0ˬU[aD\n{Suf89M|z1'P*˸޷(m{L7|õ7?}D|iꞷxUŋOɔ!4-X Պݮ;F6cOٞ?Z6-Bdv:b) 1}`qmSUp0B)d:gZolw5}ŋK 2E\bMgLH }[c"/K6gK,@47r߳k# TMhBm#[zl&In'ܹu࣯QEw{'6KLs0^ ! %?X 1,#+d V[̨A~p}Iځ{i,rx[bsіlƨ0*ǜӛ ^JВ#OsyhA6FT 3(/M4ǯH4//U/>7Չy;;,if`dE ŧ{v jp'4^cLsۘ3Ӭ7(GI o"2 >Sٴ5,?b6y9D?xl|&Fe<7XN9FOޤuGKg1O}6"IDŽ|@G?lJYC@7-.E2 !DLzOw"oH\;%7rIGQᜬȇ/ZG+R\CD|{Xy~ןsH_Y,&Pݒ=@GRJ^_@ -i-$MLQnr"YeDfjqEa`|*s=i[AR=YlggPX-ilE,PzMO?5N7tL3Lgn@郧:B(rV1;G=S7e24MM0xuڶv5E!9\"tbZM؟e9POg GL\j|vexJC') =ݎl5nv{m-<2U=!3{&9O=>2A,<9e>x|N뷈(pڌ4Fn߯|t YQpq.ŢKL2}ێ4uƒ_2?{Oasd۠ ?|.Z &ׯ?Y8\#Bh]!ĘW~Q"`Ťq{wxJqte _|W9wGb7K6Q~{՗g@Yl?*gNwGG_PL֊鴢H&$+¾X6S|Ac9U?Lk8McB0x)Bae(Lރ, R m0 %9 4pw\)KP$H"rT9|Z 2YK0JDUOLe1r5P i-smqJԖص߳ORtQIjך1H[@6}@ŜaqLɄ]7F\e^ =Łhc5328Kpz2HJ D`"yסQ`zNZk&nN(́bf%7SJ?3Ac)]N4v4PX4 dLGk6d5'!PBgSglδCDH\E14Bch\}8fxL;qFaD0+ nBTF2HKa-HQ=H ]dj)@T0-A rJ>r8}K#)Drh&䏾3;>)[sp'힃kD$%ۼ9?z5VK* ϟ}{-9/8;_$J-^(2:>|tʝG,芋oqxxo6!>D;qFߺ_:?H)W_{rzm +n]E|!DvtJ᝗qbg >yj-꿜3mAzɿkWkodc}Gm$Z~zvVVM'x/}bQ/qz=)a3| Mn΍xϿuYFun~e׫Ok4] &9CqWIqZJ $! a`ȑRI6tCGH4XlUӅH*G19]l:O"Z>&cf.`&&@JȔQR"ʨ!Rrf^̧su$( <]Kkk)w_Ti4 } ucXXK2v>2$A<4JkR7O6=]gA*yE`%l|`HZQcF1i>D4̬itv!!>DڔLT QiVVM8RRU&a&Qpư&8gPRsழ)FH dc4ZRi{Ot>Ѕ4nR39!(6g.-3k >$R51e(}N\LUV!%"c~>>F6?Gm5B)TXgQ]@[ՂkІkHg#U5s8%FQE5ӺB]Qu`R?~:?%/,~ׁln<54(7򔟼<ϋ/ޡnTUç-g۷qҠ nӥDo2iC5wDUkV4ݚ *9͜[׿!6lלܼs7^u=E ͏xp}../qKeԔ))q24KX-AjJ. DJ+ Ӧ"Bݾc1qMHqUе^r0_{O4TRDB$H*t-]{A%#|X6\<][ط;wb%J[S-2%Tf7V&HSWVH2}#JiW;LcDHv,I*rܢAdsdJ5%vtB%JI0#$g?3nКk7кF26b}tv@*[)%jsݞ<[st6=!BRmhk4'鱟Rh~2_fQx)gRpUŷ?๻2sޭ8Zr5CqEM%Jt%{y|zL\-iP䥗72sv!ł/锟Y^@`' XϺ=RHÀZB)Ӹ )R=H)11vÀCH!hF1* d8JES4ӆd!6TBPMF|'j%B1seCX706躞ZKjk''JĸM15]HE% 8=NPgu]Ǧ ؅{CO%4MU15P[S4ma \(HvЅ5 E@Q`b5}8=ftZhBD%4 r!P21JHc.hΨ+!p>%>}|lC"Rgޓy]7Csbȅ]HWS!_ Q@nF Z2dVHO CDqK{r&9 "E=3E)iM*,N)|L ޏ;FRh RRVj4A! scJ1s9pm6'7{kv ) Gh'xx7|0uvC]ncqp.$S0:FWnK_',ceutghR=/1]ߞѷ{=iw|b1ocmow;.}u[;єPFneCVS'ONppJ5}pY?1l.6礶EBZ|Rk1,*&  BbCJ(UOL 4FJJEt>#EUh,pZ3mf81tCfւ,=% JX,,3v3LBŒ,l|QWTuc\5>9gK2k'(c\Dm1)=o9>8DJPd)42,0Ռ6g39:BHbGfX!Y43T d? 8cF .)A=Y VRߒ-UC/Jvg/_j,V*;rZ=y̬Y ;54uŤBZyxŪ߼}?y &S'|~D:B97o|ZvLwnwߠ =n~o|ޛ }nE?ym3۩g@X} hy=y7;Σ>o:鉦foz$5NͲրς2m߳m)R(Q(H.Gm*TJEagi>',ShchzPK%)%uҀV!F#N"B0n//yٲny&m>qiSS! m*@G^p,SR Т0 1t=R(R{O[.T JP9Vx.C@j8B,BT% w欪 f| )3 t힒3ZY]A8)Iqt|B6$$] ()ї*DI6xq;RB3"iSƧ11¬ܘOYiC% #YThV3L%Lz^JJc]"JF!פ$BiZ=cH%:(y|C!F|p9?x\-zI9R+ACDfKvlږ>D=͖]gWW87; zwP\y $V<<=ݷ~Bc ^*)%Gw5?y-6;G;j/{xl={6À9r(Y3_(YPPOʨEa5Uޤ&(gO ܽw⇁ڼ< IDAT?>^ahG7`qF&VIյ#UirKBʱ{&h%](MKLr8JvӖ8Um1ZIe4I)cGuY^ İ%} 29t8mڞG(i4i() =)׍θxQ4)%Q$u;P0B3Y@hxW|G;,Y-DW- f:iJ%p9e~x ! 8ZCW4,L򀪪!" 4 s :Hì\~5QQLl$(GΒn}>6 $jԳцa4aaZ8m8=|bRW$ɳ0ZmKm!=oi=I;wEg|3fSvMv)|~[?ZX|`\2uq0_=ݞ V\[,9{opu|ݽI7c^sd{?=mycr6|o}owܽu7|4x%nf:N-oNO_՗g@Sπ?L_/w͏/<eI{R!H Dc4uX=HIO MYN'L*~;Rh@X{b|GHnGf_3n~ҚUSQ|d6G| >6D!)WRqH!\uHaŜYS3NTX/ -1ʹ'%T 7:0:bq ]SYǤv4M&qEX4!D%hP8b8mԀD| | ŤbB>D.0D:نυ!y:x</œ!1b!ІS6E&Yäv(% ʠXkRR&Sr > !IPFpV \I-VSJ&f7XCFBF-njŜ q28#CJlc`@} ,`ruL81=.f0DeVhcB"Bet'Le4!1RboeclŴ/?k ^vGK.˸0_K_cs<9{b8$7 k[!8}!'_B5妴Ďu{IۏM"BKG̏%¶0~9hXڎk>pxx7_<98%IM g 1er)d)+s(sA;qݱnY*@A/>xN[OPJQ\\.f(9#H9c!n?c ؀љOpnKrAlEg+HiMc#G(1rclE.MoxtǏ?xOwLQ/z~@ZfR۱9{Lۯ9<>!?N&sqcdZ&9C#rc+|#FIɴ@Lt9Q$ (!\]53[Jrrta*#NE SrPr@xL,|h=~)K8%qc^Rj)nL$ĕqd:m5%d./d`1 Rkś|DWFpm > ,~}R>L$so:\&p h1cZ;y!7OnG$O÷_r05ܾydN㭟 Ͻg9x7Y17ƫߦ -SFʞ _ hvVr~Ϲ/ 4:`3n+f1=J)N&xFKJ̭# ɤRYrRPR[\ F[#AHc<p("+E(#؉R51{aO.f "GTm a@ E,M30j@ak RnYow a'L>HG !+)3]jf.WQdYM:tVQDFL y,$#!|TH# 2vc2%$ ]8jm0F ]$9aQR&Q:+,)j1!RqX)R3%fe @Z*bT)115j =1vtAu? L]M)ŀk4ؤB2ݘcږfX)(BІIHAӶkj&)U]QìX̧5S8LEP05ypW[G֚X$P).D)0$S#BB{f )6hwӵ_ .78y}bط&7G{tÞykx#} ߳88:9!%8pvYGw~(r/0*Գ9z:GY˾̖'kfKCkW+]ӑaV)h0%`TlځbFH9I"R)TA.cbEFkHF)4A6GʌP nPWmX.WP&H޷.$*L`%"%| F JĜɒLM>DR'Oϰ֛s.[ċY.&zJ-$[K8 h;eh\Mm'1b}yI,SU !8&Mþc9saR͘8ߜB)bOAFk6 fB{EU>O1B)U Rc T$K91c#C23}HtÞ(4JѧOH9fR&5Vv1D]#%Jivsvv}H!r48`!?$zu._-|yuo)GGH`[(rBHFS8 1@FC ^x.'7ݯN1R!x;op0i/p{/«~w@U;vsS<g*|:~ZEW-_K~ɏ.:3 !a,J| ]GH!Ib2g?tQ94Մ8-1FC(WBQ[8ł0Q Om7fӺb5`3VCO+gzGZ#4X `mOlN q (*9!5`lW#]0a:#} ,,L,m-CN)3U4P`-F5l1S`j4(!1U$*@TYXNj&BE)W:FML䒙XKm>,3Cy(9a`2>&Vb$H`5vCcOXp"E(@ ` uS(yV4\&d6C$Sq$̮ TV3̼iJQW"C(>H>Li-- J10msGV6FS]H!FmoU2)d*&R2-EIaQ;?$zf1*DjW;?~͖o+3H5^.>{ rF5vf˓MΉŵ|;Qv2+%6̖вƝsDIV4S5$;#^wxvtLU׼pEE1Yœ-iGU5Ȃk7[Q5A#^H|̤ hEua! EjnnubJY$Dei&S>8}L=IvtJu" 1D͞i*4\<3, %C76*.3d0Qc$t-]ag3T3ŧI#:b% eIJeO8 _~nH jD1xQ19:~Ru'|~G)y C)̵$Ğ'[`GGdA(JH ! {O.ݰo_}=ܼH5oޥ;谣\<{+~Vl~?yO4ᔏW/_$>/>c< 3 Q M(QRUVk͔e=?9E3|:cG:V͔ʸBI=~O =STj^Qծ%&O =y!Yr6lDkVc*eXRMvF͖jM$0ʡH^N uh9Rr(24JBʙ@| ?x5֣ay6,8#yΏ vP_56~TX3?>G&/8 vC!r899&rIl.egh_Av$MMsɔÃ)1*ftlyDJּMoy&!5F)=ON $+ȑMG=u)168I)_e+҆t(b$r)ĔF2-uG b6z..Ĕh۞ǧ醎m#d ԕ#I];2082-Snѷ= 1QRf߶ >K! FJ)̜%$ X4ێPn}/.΁!4MJ岢-??G1ޝ9>n\; Z)t}@9þ#Kf9^m[zv&QX.1͔Y3''3Rج/qk9#BKՆ=G.mk|<=?gTv|~t2BY3 %!eytFz® hwP#(jdL*jcIٳ=9 x~r旡~|e(mxWѳwhx CGcj6X3Q21{9ϝܤr" GǸ!Xc膎GSdtruo]f^d>o`o _\=h>g[/Oկ4agPt#*Me4h& UTRcDP)2,m0֐$ 13EH!F*@U$&sD"GÎJb TF#b 䌌ERI0 32N@-Hșytܴ=+WFRc-GfHXm5#%u@UL rbDyNR+UNv"e3m qn,>(''8nB4Y%Z VLo9դ~7WEs2qx0:я9w!g "0`jϑ%b?ՖDAi9tqZ!Fs ({\uDcG3%BBm"PFR#G O rhI>AD֖)ddH=j2553=R4MEE|I^}E^y)әc50;8au4azrj{p=&dy>׎y|zeD]PU\BFte92n?zdu+ ha }M l UcV)SV5JQ m9}K >_rŗ99rd!*{N};`ԸaHJ\ql l@) 58k}rr ǂrNJj5~jvgHXo=V _rG$gYDSW, ..?W,N6Y$EwW5z 6HXE#`lAT7RPUTeUVfFFxxxtF#="2#A.gk"GGkh.}BXEfT.p۫kVXk*9;tRGS$bnJ=HAV#ɟܞ1q4&`G5iv)xu'_sOnXruJ>lt!9=P$zrf7 )㦁ߞ|ƉÜHں"\ rKW5ӌo٬kdJmO;Ј҅gv4mM,EB*ɋKadm终;ڠL)Rq*@J):]:ptms@aQki6i3 d Oc٬i#+y`ZTiy~m:\pǑe2؛+5dzK.o_hsϹd/ ~,~;w+ƻD]|x7dů<|VW}͗5/W c aq!~vlSDfޢ[F2Li*UzHaqY|yU mJ 6"xBX[$G7#Iw Ʈ1❧dtX[&胧2yPx $śń`$ޕYE-!Aj?ĸbB+kT 9\ RHTQ_ ~&ZQ[CQ䜰Z|Db&@Jrd 9y$a?# gVi /IOdSaۊ~2p) !bbGeSB' YsL0md,u%1DIx)cDlbIH2faE)9r qQUWD5J",cL-2YNٺEU7%DZRf#$9TiR}$TNBU7[Tx8&2@e-YY& @=ud2!l;/qb Ϟ.Oy؏81&}mg{GwwŽ5 I dwZ>pӒ`D$>#Y0@Wm>?ÿ1?C89jဟ3'o1O=aQY :p#Pd( U$Ĕ(] JB̢VII dJ~8 P]_`Zq|aw#0U);VyS%jbk',! ywo.٬Vl6Gw{( Z[NGHv}=FcoYȃo#f}Y#4@"lԏ˛rEU)|gs DEw1͡9#BJ$ m Iù%1"U?B#!fZptrg-gGmjR.>(RJ)f7RD놘"|s_*9Z4ZjH^\>Oc.^_UD]|boL~uͺ?_c}o}_~-'xmr ˼fLܣZv,ЦM&!JYhkzlޒB*7CLh-EfO OJJh0$琀d\2>NiMI$ZSB PWU+ "Z+Cֺ"xOLe9!RRh0H[DRn )'D Σ*KN9ՊiZ 6xQ PT 1؊J[\*I))p9#]'%h!HE!5D˂ +K[P/ `( BbI i |J(@:PYbR\BJLmBR Hlj6 /`LJ|`dJhB \trC,,BQ&)]$eIe+A $#BֈiFyӄO-%JdqCj "sdkew9jjP$k9^wowa9ϟ|v nds !W7lwW7thꚧ?)9Ό{4ʑբcs1~rbQUvٱO1&}=n}̋grrݷK?}B[r|t51yL71VrM%W[&tbW̶6cD(ȺAL%Ϟ"{TL!v;Y,ZFiF }I~ijт~3OUL#`Q>bsdJe{DXH]%8XEK%VNhkjV :vP[f-CDmw{)0ݣejnncuH{ts[!TnܲG@21,: 3O3)$ K N>6-YMv=09~>pyuI[[Vmw+k)DnoF\^13xȚ6yFP0 r.ŁJtN=\-iCr"K e R~ۜmM,8O>nٱZwx;mjna%Ȕ">d2Ry`~1X/jD!w )$O~juK[/ipYs ĉswj:. \$_c}ڛo\u Gc(ށ>"!T$C :ߡf7 (݌oKgAj”u<$HhD5QU#0 )vDz|»iQ?3EG'*1B}B&G̹@CyեՒP2 bstML%ѩ,shUYH*iQ<)8RLyOe .pNO1Foz7rΒJqq%'?YlW>*:jLݰٜaLH;S>}ziWX΁پ8mFd6U#a`:F*Fnn7lHZ\/:<^ݠ',YE;ssy^P"OJ3V#1.Yf&71ń#Rh],*"CXERfw{R3f89\H(H13΁~ޣfr%YRPұ9&nwTUf.`D5ZNӀQ8#UUtMTթ(!!nAFlUe9D{ M"az{ :'Bnj@w~fItԶvO3RB+s#ݻX)1ƲݢY,1`==jߡZ/爩j65Ym *BݶPl=kfl lتfE,3<3͑"ʝ{ '^~Ƣ[HtUo6 (RufȌPE+zl e ~7(kyx>~a7c[S_d:q׿8HV??ɏx>g'GHwiq] ƶ `3$!rf\HiƧH]-QJO#7O_KzEΆ; k~w.~wͷo?y˪_O~oٶxCxi#rhsӎ~%Le4>x2d$gMYcf-rdH%R!dmXjCu4d2s9jXCPR3OEȈ@+bb"CF*EMƱ,W)YZsI"&)L"-`bl-B(n#%D"J+(eSz}`Nߤ$e0T22` ت,cH$KC ) &'YX BRQ@g4Zә&Z4&IRL`ByƘ$#e3爯,Ue1EIE<@('=!+($(OFKJ'v^1#@}$q)R@j*!=k)pYsH)ÄEEx!mes&i"T\! 23Dpe >p%J,@U:ʄy"DȞIUmHQBmiƑh%2[f,Yv( )R_maG45gK֝$D~vIZ^%N=3Hx 1SNaw mP3$-*fGSV+'nOs.ֈ0Q(w-oZ.K%5?wE=â[[59ڦ]a):q@cFY֒"VHi > ~t1ZrfQYZZ fyfvDL麹Kၜ1ZGDN˕ŧHn1 #.2 TWs"Z*U̒#Қ,2uװ1@~fvp LNpTiTtP[M96,LVq6:㦉V)6tyh$T5"#4mBpGM)`YUK.PƲFTJTu[8M- 0A4x`\^3;6L!0̎E.@e nL Ɔ SLA> RL|O矼|GWaϞW~?}M;]lK4o8A$mU7,RND.TLx)sTVblEw7mbUᴕ͌#m-r3N K2L#TMe8Y.x~GCI򌒬WkƹF+ɲn9Gb"HDnM''Crha"()DfX6Js3٦m!UQl ~1J)9Q7Q8ɹhѼZ¤LKhLQ5atL1Qkucl*E7tJ:HZi[( kw9![r&(3H}̴UR`-,b*RJj-BYi> @}d)R(6'F$ȉ~N*Wԕe#Β3yESSIk0it4&cr"V!%jc*) gW@1d\"$&5\4~2QD#2s4[Nquu?hp0_^'zGfv{閖뫑!M]qPFXՊucwo`FĈL3ڊcHhYVvĩGLfO[F'{iGt{5X."s=0^3<@bsbxҮjbۋsL]4 Egl󟗮IR$uk؜!ft *1AKUDm$P|`"B+1TT! t?:eY؍1&mKJ~ݱZ",1Rt9c4Fl3GǃO49ga& BCΞtDQ"=>^VJr:^׸i&QU~777uCLg's=Oxp3./)Z|b w!n)r}shMUW==ūQ-"(!Y6\<]DDݚ烇xqev ϺG݂eď#BU +jSHы5s#ugY֬L#]$%hc)?ק 4|:oגίjђj>LkoK_C~˿»D]G]|Ax2;f稤5iB8kn?:qBbh0 wJHbHnGBδX)RZ jme}Җ24F?Q113r*~V&Jg$ 挐RЊG6M͝2S9ibi-ZdD,&EݗJZʃXQGĀQLΩL"@r;rȾ1u Wep/3S.0^u(L &›ui:MadəF /'TU-nv4R0mogl8zȃ|ZGvc`jKO?;=c^qvږcݓb3e*t2M= U eMp#D<~]%Y\_]4mKh2@<H64rC.n^B<(JmT)HSqb$`[8ApƳDKOJ.>s-EGQkCc-5,ecxpFzɢJU#~ZŠ䔐Jp}{n YPCc%}U, ~c)f\,'@ΉHΐd)8:^\_"GvCsc$>f./4puۛ[| ct =KG-S~ރ3%͢Rf!U2JJLan:\%M;~Om-ج7^_Y!-8eERO_;Xw+ں)Z1O]U/Pcٱnf'$кF -!d%΁"<sii<}ՋX*L)>,7%o|W/^KO!˞ x9ɗߴ\˦7yJ;xV|EruUTUƃ_-,RcgߣQMc T"Xm08Pgp/{wXZ뛞NB"q~s>Ќ>RlEr0 4J2ǃ4R!C`3h,n !Y (JՄdP#$cR솉AmNU8sB2Y L6`XB"2#C)e ) & JIr,n,S([!eNf1N)"(2A*HtRgGkjbV$Kŧmm˙1r>3 1%VadӶX,dh%(EPH2 78<-b! yJ(ELBSbQ%&YS EƤ#&iJ]*R")P=TDa0>"rD@-$:`H$YKdbpbN"D9plfo!'?0:1BkS‘]qtxh%D9"͑3Z)wNHZpuik] Ƚ.B9*DYAfQ^4I@ IDAT'N_T' >jufeZ) =ZG4BybS645O)K_ik %%JHNvx=Gwθ3`&+v\7ZsWFaj (mU}kibY:5ݜD&r9QEZя;ap-1'yQ 5,"=LUiȔP(b*MeJ&D<ًs*i)# T,h["T'>1^b;3)ޱ8ـ. (8MoNJsX,4bdPR0N#m0xW _V)OM:Oy,574cB/n@Є٬7~O?yG㳻0jeݐ9bL<)365qӄw %jlG(AJRack{>/ wQ_JdU߰,$K-9d!C~ۦ񫅾Ug<]km __nU̴Ə=}V܎a`FljݞXR Rj*\EnLE!s^j] )GRJ!2BH/6"D̔2S*01E|NE<8M@$⁝YLVFt Jnw=dEP$ni"أwD*$)S[Ck-'SL,E[BjUuʜ'\β(W53s" p9c4IJ2i$QH.*"xQt!bvO3h&X}ϔ2<3{Cf g H+uhgL9J!%Y 5Zx̉j!Dٳg*lZkXQרD:8.B2JcDGO7n"诖@4hcJn+tmiiT&NY R.T$9iB)AtKY׆+1Kx~~S뎜!HF6mۀRt]ݻ'75ϟry~Ν;'|O<,} 5lIYrCsc9 G .n! tk-s#9ZLGq+B%Q%ETİBd"8펮(h`"㳻 Cc.?Cj--H%VK'wX<8;/'twO}3kn3=!qز!gRb*\dJ!Lrm9h-ְ>)f[`G]SF;]5qf!%+C)ɢ g8r3)%"VHj ^46.$knG']]cD4ZtԫStU/kN6/_`e‡KRr\\9v[45ќmp>g\m/5g$0Zij7W$]V5X/ϑZcsHx3nnvhe鳦;ں2lT%n*6Xް,YLUت!:ӻw899T"#&x" i*Qgwe'SCW0⊷ _di+ͼ&gx_AЕM]Ik]ηt1}!$ _ :]ofZͺ_[wj1qi Rrd|pTS X~&)gSQL%QBH#1t"$Dn&3S׈فVuB"U9Rf<REtDK14*F<~$t@Jr(ib?L g"RhkΒHVKےdLS׆*&jp>sDTx*H[Y0 j(A nئH@d̢Eڶbg2 )g2B)2Љ\b 21$RMcWnZtd6y J'7(yTUTZY$a``@Kø 63}=۴93>vfm,/Yl2 M %-3̈bͼK!)oa!0l!Ixh`Xe 0C5f`0b3IIqaJ;C,V6ĐMa 9I iZ,I[`CW^|6^p8| >"[s18vl m }]lm5 ݎǟ8i] >9~ +_6,X;E@s <9Xobv~Dk|sd=4 9h籺!H0F KqSxȚ}d>ff0: h%ϑ)l3ӖEcSvv+ؽ?F$΁!G|g;,ihuS,- y\r 33Ml ]4m`8lC20$Ӗ3lqZi3v ~Ɖ#` Ed1S>nar9B73@L fVܭd噹b$MF stsV`7`8@'iz`u+[9":sHx [C"cq&G7? =Zz[C`nc1'@5 }yWY`y"'3$kk+Ms Hk2^B1Ӛp K8v8HZ:سl5lb~40pYdX8md.Z͙`<xa LpAmG6!f:&v~&x#-fla[g-$I a88%,U|: .c@N 8R32GOF~FDH4#&nN=fՂc 2ld7 ^8c[1L;hwK X.Khl( \;-]6.xjwhvm=\gy6@FVa*Gm.:tnv5f0DYiշF1w\GΎ`o13cױ}ض uy$2i6udM$0O0f#,=?cAx{p%N۝hZh4ȶְ:"iE H3t7q!tpQ }@23]ff1U$cq4Zm39 9f:v{Xib!4:u5 lE^`!I@:S\rmfol I 4贚34bnB0D$/ I,%N1F36̇>ghoC>֏f}+Ǐ#gFIcQl3A,:%$&ڝylnDgXO`sx,HZDޑKf906h'ʹ.zUl/LuG[~+6 Aq(w7>lmYFDL a:7>s,+wK/ʄUՏjXgWK9QF <'#jg^x/PQ |1R竷8"ұ5x1SB#NH-wf^\`:*Z33]׼+{?NܵFO K6&ϮbӶވfob I\RpaޟfDEDZmCcVO.9R!g Kxۿy9N'X~ZҲ`qK=oJq,L\jEҽFdʃ>j$͘2-wxp@s/NIp;g 7Y?FvB`^+3./o͹ĢBxk5LБq" w C(ga\L 3g9%]RYj13qѨcICw2t@b.]#TD,--[ny>5[_>s q4u:j#0j4#~W5>־hg M;bPםhG&Nɹzk1gf>ZBM>KS`fR`Llh:} 8UC A>xHRr)̙ g1ysӕi8 w"I׼gށ 8x$M1Nk-mQ^S.%dɲ1c n\\ W- MxB}BI_1HG]zsQ0J,7ӞV&ubK南0ipn;=C߲q>8}ˍk~\($LUV|YUQ&&07Z3#" ͈PnJf=T5ŗZMy8s`)rYI$X[*hN¦-apYN`3c|M$b/\0w6Mmw&4` wSnt&TJάh2+CR G;wzn˝$ ~g^}|?@I2!g6V.Viږl~MJ+($A\NמɒMl<]}HW}}#GCIR_j--8厗ImJX/7hD4lM{=rimT͟|17?TӉݡY aDK 㯚Si m+HdhbL)@,"@$!6$zSz;:NZKP#մȂAmaR(ܭG*xz*jކꌧ- 7'>ͣV;sUEx {A d3JR&uN>\EJ29@m:{nFÍ܄^Bsf 㚣,gfqy6- kx)rN>K`5lG Cɔa,SoQՍ\%,L;o \+UGܞxXg&0{#b?7Q73$X{bk~ vv;5"trQ7eFgTfĩgb+ O=p+c0PUjcKhziH'!49euʔ`jFUKϓ87M)Kekt`@Ө^pԄّQW$ Ë}ڻ Tt$B##uc0vߵ]V#2e3*9%7i*) ËzsG|d%8vw/ޅ +_fw!T[@E7g Ǭ{g|F`t޷\biT1sqfRD2!͈Ҫ@8ucIUI +At8:,{rtmӓ |]g_c!G[_VεPt4-or m,_Hgy+Rtc|&s19 -ƊkpF?W@Q`nԥi>5"j&n{c[xBuWS󘼼Qx%u Q7!XgcS#f XD,u4 k7~{ d-m$-N[=vq0(2gB%* 0$-V˝5TnNkG sD7F_-+ o($sD$ ͈aԹ=޵MΌwHfU a[i7 dP%{ηr/t_6YVC (Ⱦp^Xȟ2kS\BTLC`gTXI\ hmxaG_>L\i2-'ĪvF'M؝6d%*fyV :Q"sZq ŌGStM570,}B{(pߴ Jm2zi6$ nB; \z9_6mv}$3IB$YFxT*<W B7#w%{ C#Ksp{]ad..MujiMRg )|JQQn+s_zҫ$E"Hݍ-YFJ2E)ځ ϔe5H} `2ZBli&d78}c݉3IxɤeZOYSMhek>W U}tdCW}N1F$$?""H4#&H&OFED<[FZ2 iLM IDAT@% yJ8lR7a4 nhwkYf|G5] MVªwpo1jq>H7mqB # *ۢw;:e3 긥YOx!8qm7cFs3ES[XG7m>:4{Z)J_27sfuT[UDI 2UZHUgN4:,x䪶$FOU˯4JY.䝦1z=7jC3x]0 IHl(VaF'!jT#O6M խ R ]EDjD1jMuT,L^`5R|}jY@gP%ܻiE.h-G2}RkGÙҬ%rXWyQa ԀjSMz\^zª!JMNH߉EWҦHM'M jXkxS|響p`k? 8qS;L TpO_}ss'&34֓ΜTN4oF*뢘F2qEiۘ̂rlBO"9׹!^sJDLɵL3Fȩ\qݴځdݧ?ԛ^:M2/fFDxfĩE]V![˴:5ßk"DLulvDyû+}yX[Q=$F_~W"(\36y \>jb-fyLl@m• b\8\>".CRXZ?IxeFM'p%@%Q)%QmKE[F]B#iym B|ScۨVg]\ +%4I zx%L ?9ْHqEs܊'E 59`e5'}043ǖX;~wθ.)~z*UgU=y=BY8#3Ŋ fPkn/ 槾Up!AX礤:US==yXEd#U<,:k{t 7(:2|"+sLoyƫKRp]!*onǩFvG/ٳ /{EXY]ǯ8lhK^"f{Zy$2I8$lUF?QrHJb h\Q-c@$=GI븨Q)-٨6 @^a$2 /+b,Q !wzᘘi,\ǜ7|=ϵ\-Gwɟx_ܺ:78朖 nAo ٰ<ϊ2%) fh-!m4= A""@$(-7J +5 񲰣Q'?wFеWeW]}DUAp8WsM뺛Bouá *iCI>@:d繳fR\$Txw4IojYކ#xG~vi,qීF3m()EVCcI4thh`1Ɛ$̸'fcLШjii5t͜<gMY{=E.fKĪ_TV" WqQ8/ i̴\ajD"GQ4("x(UJpG#CUs qPCM%*X9饞 yAom۶BS$SF$ڮ.c3ï*ߪM,Ut5 N!t*?YWvz1tOBS8-aqy34"Ɍ8D3b"ԹT]2ן`$݁v'{4޺\b8:q:k- |1.$'zp_7yy\JsY'x(S Uk,M|lVA32Tq $a4ln9G`y}YGpRuY: CQmgfN8lȑj4wxj3Nv)dD99ıYjXyCݘ4kB rUF aZmFzY)LVܤ.ԩA6V:I2^;~ies*2"b2D15T/"XZo\ATFT̨Ƨf5(pWїDhWhm"JB:BÄK)ѺΗ? eKxYfFM@߻x ߌ︭"Se ^:Ta8AАnth ?~vpjVٴ!ˊ3"I2k\a1HfP9M//d;yx)9WtT7>eH,!rY.>qDC'ƂT۫Ϊe-Xs (.'H]$j)wn5>djHPMBep3V8NyM@P$G$yzw') {4U8H.W+ZBL.w߾:נێ$ 8d4ϒ 4<!ϳ &+BRO"l.뜦'B +,~W?3 þ\3$`g ؖouU%],CІ:/@qY<ˑ4RG<4c \'F<@ݯ)rI~T^="k8%fԵ%JHͬ7ʒs@unGnuE]%^I6Z`h8QO\fYݿXf ਹ[i;ylTA2?ϱ3gfTP4yO&Y Ȭq} "Zw݌8~/_Ukz{ȪyG9?D@ 8tl;42wrPF+Q5{Hx幧!pFE恿6 +# & xOw܊oKK8 (//qjX__}3!4MŒpNx.;Mg\x7!<Gj\5K:TI^Zy^\cj@\.[$JkJN3BDNX/Ƃ jkL99A-[8SmwSm5eFdhY`$Ԋe{a*%%kF捠6 Q&Hd3БRn`k#t?hC6V\AkvQv؈IfD#hJa9 SG;عq s~ @==Xu%X=b$hFL^4&%=13r&clY/qI?~5d?;*Y5Zsu۵̈́@85d1MrOvM9FFTUhFt1͟h#h$ݡNv-oι` WG@rJ}dzz.|~SX_ }gLvs\VZT5Fܶ-- 4+_"9}~!=/팦˹&ԚPJQLuREs lιUj:GIF]#R&jFsYiY651+>,T5Q`"&TL?I59ΔWN Ni]{NL;4_ /ƙs6ckD0o_eWކ<轥FdF3̈SH4#&BG>.@ͫB"vl΁29YGC8BrAg6dԷ*We}n}l(FS@Rډ񊦠I!޸#r6Dkħ k-O=c 9 0ṛpy ߔ㷮z} T&x_m ?Cap;fs\~&f E ulK0wC9r fPA}"m%Y3mW<њ|w&cysssoY_W209 _^/˖SHR[juVD1гst`gL#$XNH"SYI2(xvflLg\͹K|739K2Mq'Kݛ\n!f",KJ\gU+B;'zźl?FᤞpG_U(Rʟy~Wpǝw9K ~3/G>W BXS1 "ь -0gw 2|_j^Lj=,4}wI;Q <=ȧe hW.DB Tm1{}l97On#;<>D2.t}kbm N{y?G!dYVjR =pQ`mع8}v=K#5M_i ںN#RGv$a` 5-m=߽?8W K K{c=xk^=wގ;,>WhLbqV(.K;1DrqQ11$>Y%#X%MbLS=%zKuP!9v\'sA6 1Jʂ@*fLrQǥUU9]>zm0?'#'3M+ze;wλݻn?^}oN;k݈D3"͈w$Yq2' |bXHȌ:K;H.V•'!]R3?T?iV AN5մ[pM]|4Rx$ZC\ˊzΜ=~#Xoˇwexn:Ͽ_e,yiϿhO0pWr=N߂CՓEIN8m Ħ>rU˕431qgǛ*޳ 1`!!s_sͷ >ݧ;oO:O_)?c?n@xX _ZLSW2dO wLa] - /qu6ҤיlnSg9LRBv5%jp1)[S7.98^KHq6آo.ai;Q%40mkRcO7ûpM6IuDE$zNdz(;}x5VcUdOkKdV\wв3 RV|Ub:9im&D<~4xqUKZG˙8 vߺ 262 Z;;fO}+zW/E>;v 7zca􆙳ld"[;ñf܋o YX@}nE^w- jG>a4M=:cF)xP9IlͬR[cJ7|&wjX!Sm&jVIaT[j~䌦<( bk2M- V=+ĩ3:kɕњ3zNYu\(ATVw3{4NLwSMBl PoG77M5csϰGDH4#0`0|tjId1p=J}XQO& X YElG%^90j:2+.z[F7F%5[ۿ.x V`4:C`p;-ص{;&션m ߹n2KMu$cLʜVʞTu< fb8leKKxpmw!BWOQ/}aP^@tQFs$rJ! A6vR#T[,Ұغh6qw*:6Oy!G$LruB+&I"Le(J-rWT}f÷-n%-Hd",v+PE$!5֢YV޽)+k-:ܴ3IݹJϦ@g86~QrMxoE6/ҊTt<FDH4#7|\[ck*I~q]ox$s{p TLQZ94wsbĖR!}l`8)68z!Vpn!\׾ .,6,p,rx*gWY䵟еv] /=s4G€WZY+\.hZM`B*kɅ͍-$InX`I7o$ IDAT BgWO9)?~xV?Ɵ]k?qę}G㭩#P 6f HzK94 qo:Pox=faHWHI"hKaUen)\!ݙ- yW' IC>". ԧ<)i61-Uxكs4)RN6g2ovOwox[jǯ.udG$)8JȐyV4jNuCBkRs,Ϗ5 H ^AGTBkZ̧\S[:y }8wmx`h ih2wcO;o D租s1ڳ_/ᮻ(`}t@q4 A48#}deFLdpgGH f޵y}^mw.X^^ƫ^*L|xZ4ϖrPA;$ɄЅwԯ7!U4@u`dޅlghm!.Z*- K{9XE~|[[m s^ O߃n+8 pq a 3Q4WsS/9=6ˍ q%s߼=( 5ػg/nVpqA\{ݵ8sp!c@"YlQi״8 aeo͞=$Ta}Vދ]Iyդ;ܑyng :@ݍb0BQL$YרyfS_ړˤf\bl;Jjs朡O#Hcs#Vo.f l3%ƯZ^ 8H&m\rE/hT "b2D1|X!N2c<ɥUϕK^h)U8bSS;̇Ε 78K?M*l%U[{„7|"^Yd vmOw .CSv܆-&} dO4qv.M•Y{w/~?rdB*jιԎR3N4\W4Xo< `0G>aIH+1=@[-*˴ljϢ5Yugk5CEe*9k(^&&uE6k0%٤k#c3 x:8\%%RmDKzGYMbΒc[#nP?F3- [M^G$\s4[;8wY]k?s׽v6mtlef0 4ͳ<  O+ty^w'S&Xd *P'":дb 5ܫۓǵ0~݄s6}bu cؖ Η+gOi<>z40`{XK0<6o"}wx%qg?~WP9/(D#M<%HNYbk\;gE\AbZ/9kr1̲BZ:y^f;Rz?FM| ?QTr駑M]#i6i -'LEX]t 8a2+L\eLuJq&Xr. AtnYSIs0U&*(5;8: X9; SZKB?f:#"H4# GG'Ogn52t0w:rWO+!!":V_YZ=C[v4$&j?.m#$G3 2Zƙ8xf~M`y|e'N,Gi<gىn vbkslk.=c39qǡ>u!sMlRyf,t:0nZ'Ō K?jvwι?p?o%\x{@كUv:׶(VLw󘚣Eߑ&OdtI 4!΁{V4쭤1F$&_k s$riyKx K8i@ZfE|2][nX3uQlי_S:t]m\Xq|]dwvH1""ь ABjd2G2m1Db'IhuI] *)-*@}QM2 :y 2=Mv?|%T"Q[Ji |^HVE53\mþlv E#pqB?M`!kΠ3a`ǶE\g$ ǏSW˲ R`bwI pb HAHB C: ֦.qH!I\߀k6_a}G0?;%X޾ϻ<]! D*0e۝A;T!^{֩rR{xcXھ.,Hq3X?7w*)>i]z53OV8]lևMw2C YXXZZ:tPn$i]t.>BTa *;\t[q g7o&8xoƾpm,pWs|̤ֈuA =dX0YQpa,(mPDRt9$v^ngeY9[QuIh;3Nr:,ȥ=L:;9=9dS¶]ѬN=z 7|+zqď4nD1<\C6qd*!SC5ɬj=aLI( IfeQ}YE 0H9UUA ?)o' ?W۸d#;p8Ϟ\ľf}C€pmXf5.Si4W37ʊC/PiO_avsns{4 t'_p ~J4 9vkkN)vmԔe/c_w+dN '/ 5Z0ÍN88/ &4nUs9+ifY:im*H~;^bwZZ͉ShjmbTe9Va[ֆLzSRvݙ[rh5Knq:KhfgEDLhFLBX5m5uiҳNNW*+SM2Bo n#'y2<^WkYAܬ|F=,XO9n:ns6fxJ۳];3m}ܶ[Xo-?^m\[F G7~+_QSwqٷ,ːypr[-|3, 74Mյ%i)bV;A_9'pmrp{bϏ—{Yk#20GEvI+Q*U}]T,͈SH4#]Iʢd֓O5azH7VYka4[B>ߝoue-˷lYP}_΀l@3`!fڿ4_g3Qo/SfpHyZ]4MX-HԻ^Q&uKa$2+  WsqmBGԤp~rlոJ:5[j\۔^ͨ"jҪޅˎMj1E(M$]V0%ʈVJ,dA6?Xg6}8m٘[ZVFPj̈"͈飂ԅ>#iႤQOyϻjk$s|*:$%;1aurdҀBG 'F}3d,Ά噌gI_z"酩X4F:Sv0-Fn$*mMBHe[E$,A"M̨:% Rt뤒p*") Vn_j#i;ПhWRNIs,WgDYloE6Z~v^as{k:]>Ym;wf-cSPhFL5R@de4c~f naԧFfR#9חd4HK6v;[+X?y 1s3 K;ў[|õ4hFL &W?!G Guwު r󊡔M Ws ($q"X(P&&^5NQV"I4[>xlpِ4K?=;yŖ>#9BDsP:JIK"CUָ;C)S LbЖd"I4 RgzNh3'+fpŖc./tjun,~|Nf# 1߄Un˻3YR ul e⹴LˬxjncrȱEbVj?[W%t斐 Z_Aos rMis,Z9t斐32oZh͈)#͈ ȕ\ y{H$J1aׯqIf\~%ߒQO#ŒJ.Be ,k <B.}Ħ眹?gbmm_/j["љQMBa%l5@Zu2)ӦT@ gZVV8éMYlAMC& Pd!3Tck4oB 9CNxrH$ymvV?f64Ia+,c<%t/7ښ/ II$Wig6=^ը1Y8$r$Lsj1m;1mvUW75mV#"͈ߞOt C2Y'U[&s P#N@$p1H _UZns9[a\ n&4S<hx ,m)xΕ j>K^{n֍@<OG"wI2h׆02ÈhL,o|?qw%ĥg.J"dx+!eLJbV/gsB2#״p]ĐAla[>ZCTS"Չzj I{zgH&J!ZEeep3& OTZ^*c/55-Ίߤt jh6: w |t 9U`N'!EDH4# ͩ|#ud;jII287Jg)xU€o=F+%ss򧶶{ix^4aG++'5QYfmM9niY's4JlwF-(XbJ$!/c7%xM gNMݘ$@i)Æ'$[ ђWLjJf1 Jbo ==M4S8ɦkroecq\ 4]?D'Zns@EiL!>IlQUJ )IX/Mď#a""F@~ǭ? "5NDx!38t+sLz1 UUo]i>]kc+##[>[&ș zTAz :ɦD| " -ˬLUuE. 7d}Mh筟&pZt+Chsqa273ƸYk7uhzjfdw yŧGj^!|:ݝDDDf!B[KTdzGGPd֎%6!r󪗶_+ҩإ OҲa'\[<⿿}X]]%ufIR}'si q>ҟi;Ӫ IDATTeES_DĔfĔöDVd?9X?)&aa?4 I\mUa7%017~-VEq1}m{x cx ~+6ɵ?zze RfD_E/Dr uW~4pw(o LƏԶX S !a$IJ< \>I}JDBAnSfԃI6HŲ(oڔ-'ɷx cK*V- y J˩/YM$+xjM+ 3"͈ɿ`O92HX&Kn+7hFINEOm+~|VMTiӆsT \!6ŧ9?᠏8vTJȴ&dƨփ~FPDXB%|d,@h {ӧ#|!"3bRCkTKkME:z~d^f:o<;W*БY.1?DfDDDDDDDDDDDDTfDDDDDDDDDDDDTfDDDDDDDDDDDDTfDDDDDDDDDDDDTfDDDDDDDDDDDDTfDDDDDDDDDDDDTfDDDDDDDDDDDDTfDDDDDDDDDDDDTfDDDDDDDDDDDDTfDDDDDDDDDDDDTfDDDDDDDDDDDDTfDDDDDDDDDDDDTfDDDDDDDDDDDDTfDDDDDDDDDDDDTfDDDDDDDDDDDDTfDDDDDDDDDDDDTfDDDDDDDDDDDDTfDDDDDDDDDDDDTfDDDDDDDDDDDDTfDDDDDDDDDDDDTfDDDDDDDDDDDDTfDDDDDDDDDDDDTfDDDDDDDDDDDDTfDDDDDDDDDDDDTfDDDDDDDDDDDDTfDDDDDDDDDDDDTfDDDDDDDDDDDDTfDDDDDDDDDDDDTfĿH]׾5H7"""""""""G hFL}'}{ 7܀˿v4'Jڵk,Bԧ>o{׾vFDDDDDDDDD rzl0g޽{&j^2\| 8묳qM7ѣOvQ%{1}\}8vHq_wwsN|Z?~hx'ȍ(g8]x k;ؽ{7^|':,=W\uI7"""""""""G ql)C~x;99眃ZK.W_}5nF|k_b׮]xߍ/}K{~3{|_]w݅뮻o|p}ᬳ>waQ3#*(O0GMEvWj{2u6[neYmnꦹV*f)^rY5resp\f |?̹3g]=¶V\{ƒ%Ko>|xGe^~eK~ĉصk6N:wŷ~\|2d2+Wđ#GУG/={{nx`|C!&&ƍC>}0fTWWcŊHLLDii);va9s&W^?Pl6k׮hٲKn*wq@RRd2a޼yX,x0qD1ΝCBBFN:!11v0h 0|b˖-HIIAjj**59s ==S-oEERRRзo_!N6 1|6dN4 [` SRRlYZg4 8۶m?^DDDDDA|PRRСcƌAzz:Ν;Ғl6f,[ ?8:wJ@TTXp!nܸ(((k\իW#??DEEl6^uvo۴i=z|MXVTUUap!;k|2._5kP_DDDDD]gQfyoFV+^{< 8{lرfBΝ /R2\rmڴAtt;u ./_k׮!""ڵs~qq1b1zh"""""a$ڵ;wG'Oʮn:lڴ ~;n6L4 wy'x [NX.>>9""Bx:M&:vӧOBCC,DXXF+VYfX~вxE/g}VZ `ٰsNBPƙ3gPZZZghѢWe={6Zn 1c, puVm4؂!lΞ=0L9s&f3 4a&殻ˆ#`6]Zdff,/O>!Cc=zر#ЬY3|())S&tݶmV+-Z ;Ğ={PTTΝ;7G}kٳg_ 7t[9s?p/f xb1FXXV+̙UY [40͛7Gdd$BCCq1dggGFFo>;_5***пb֭GPP֬Yk׮{#G0sLlٲfL6 fCv[Ӏ?J6oތ'O"((FFFΝÌ3p1u½rK<PYY l߾w}7vUYgRy,fM8;;[$I~LJrJ 0?<֮]!"""F ""iJ~;%=@4iihYFh4P DDDDDDd(:KTk ]""""F-DDDDDDd(M""""""2&A ŠIDDDDDDb$""""""C1hct4ttht1M""""""j@gҹcwӤ?j'CS|$Tf*.k2п\t 6M|#$''nܸ|_쳡jj ˘f$%%l6 哛F[:L&]"66/^^ll,ڶm:BCCѭ[7TWWCݵkWDEEɮ 9[ZZja$ƺҥK1Сtf͚lÇf,Yv† 1c>sӧsf̘2]vÏ?M6W^.͘1VBHHlن UVˌ3_tyeq뭷⫯BVV-Zlܹ)]_Aox:ԮFyP׊M]9[ D x7YYYH- TƏx<>̙3/'L<´iӦՙPƍՇ;<ru^_-Z`Æ ŰaP\\ \z9`[qF|W1c?0qDO[}݇+WeqFM{gEaڵp80L޽_\A˲9h!"""pwwAaa!F!\ll,a2V>} &&F,ڵC>}жm[Meo׮\߾}Vaݯ_?yrr2BCC={E޽;<P۷G1`:uhP8>.]Bee%s9r$п[vX\\aWS, (0`߳gOjժ2J\snZ͛7GϞ=]I]==3ٳ ػw˲˗/GVTSO!//Cyy9s/,1L2N9вeK\|YqJz`|gp8Kpѣu5>kӦ uj>'-=eCǎݻwsySCϲjui99vS;fZN;ɈuYu^}mS^RG=\Ϟ=Yjj*Tޢx_(بQBlٲ#Gg}&̏ҥKѩS'TWW׹CmO>'xNBLL ۇw.aڵС*++Ѿ}{YbO=y⦛ns=/Rv٥K#ҥ VX!tDNN~al6u'22ѳgOTUUE5kvءiXbb"V^YfLOMM(q)]V;>OvZ :TP@AAN?͆] Anӱa8 ;wƦMdfǎ`Eyyyᅬ[7ovè4{>,Պ:{\m޼y(((ĉڛkCʛkZ]y)g_k1s9z*M6aʕ EEEP;Vų> xv mJ)c۶m 4EEE4h, l6Cի"-ucÆ #==op?VVVf͚l6#!!A?8x ;.].{YB7+WHOO./^9dj cƌ[o%?W\СCU;Ǯ]b C-v|<n [nBINNRRR\֩]wyG(ovv6, 4oҥ_5~' >xi9zW\Aff@֠Au-[)SYW_E~d;!j? ?ӧOG}^dL25c٘0a*++ob8qi@hh(^[BY=qӓR1b7<ZߋJ)o5Jui98+UZt̤=ڱ>t1h @Խ{߾})mSJm?#V+ 2d~mTUU 8}'2B h&.hѰX,q7- ǏǺuj;wNv}gΜoE׿b 8RRR0et7n@ޓrU\veZ^^<wPSSv;=8N> ְ}Oo0|?p<貜N'VZZ*M? ri9Μ9ŋ ڵk9/oIO=9s6 ]tAQQ`Xz5lʕ+Xp!Ν:DGr-maaam6>L>'OD~t'ۼy> i=233QTT$۝qY={q}#ECk^TV=סg?js~i9>|8/nMiRjZpc۱`r-;o> 8}j]PE6`6Ddldƍ.-mڴw܁-Zƍh޼KW1l2|'HOOC=c"==ںukXO>Gߞ={+v3r 4o\#q.]:iոkaԩ@%[Lgq{%e˖(,,4<[t)>c7n\s[2zZ}0dLjnZ}F_Ξ=RyɵS!kתS;Z˪vSm9_Ǐŋ{ѪU+>|s6cΝHNNƘ1c݋h<. 4/ul ?cǎő#GtCΝ;1j(|Xt)^z%DEExekjjw{n\v cǎEAAA?N8ł b˖-ۀ5\|ƌ3ɓ'4h<'N`֭4i `6pGwy/"##qy7_?:ٳxg㧟~Ν;]=zO<.={v|||w/#<<.\@ZZ>Ca&>555Xlz!کtյFkzg_j~K9_^w+Wy9%M)-(--c joC=$k6}vX0f~5$M ˙$˘T~2?:tn gرغuwUTTo߾/p={vڴi+Vd2a׮](//Z߸q111HKKíފ"̝;ץjo߾ѣrssҹsg,[ :uB~{n+E-܂8|طo͛#33m۶ŦMz¿oQ<|0N<4$%%axwy)TVVbرch ***0l0h{Uݶ)//Q^^Gܴ'Ob۷/H߿_Dž:d~a())x9ZnT߿/2v]r.կھI:-[ <<}EǎQXXwjG`(,,E={v%t{KLLD׮]]v{\pIII۷/ڷo^@YY㮧>'x999˫S}Ǖ+Wpw[nAaa!8*>If׿qz==v*]?|qS:ǔsqqbYM&Nu8Q'j竘ɢ"L<w^O?ߔ)]G˹lo´r$''㭷BMM bbbpٿ{!!!8kâ][p\2 AYfyfڟfa{,*#jhĉ5b7ضm=~ӵ)cD4XDm& 7Q; ijXP {4&ZRRʚdk@)cD ߣ=y08qÇ4t0`~mڴSO=AS:Ljo<~{ԋP\\ l6Xh `Z1aaڴi_q\?ZӔ1"?Q/GSn<@ޣIDDDDD I=42i:$c﹔ޓ{4ފ%"""""&Q1hj2PH&# ω03ͯ4mx첌nl6b&""""@a6a۝_;LW[نN[v';g$"""""_k3'yO4TZi[,kMM 7MDDDDD.((555kZhN 8YO:ϭ.]ŠIDDDDDK. r#ʅMR M=tΟ?_`77@ npڮnFK4J~.\qhhbS)X, ]pcU DJn4_,˛$Li&圿͒u͒&紲7tSQhh QlF˖-QYYr~~>յaV.jK?<4.dJètYf9{qq򐐐4ưIDDDDDX,hٲ%V⼼u*DR)7.h}j*N4~QQQZp86e˖ʗ׆Lg˥MЄ@ +]!iєL fA 3; DDDDDO-;)G6!S`)ך @}4>+ ٮ IWXqtGqKM&DJ)M'"""""mVR%vQYNm?PX[> ТD)Jå]fIҲ It+Ha$"""" EӈrڅVڢiG|B4"<2#.6RʢO[D#w&dMIw̪ݓIDDDDDM|R: !S)|\k&(hIؔ,~m )QҔZ$[ې6O5L}"#æ\kZؔS kM f< p:P ɭzk """"" ,zãeUD:+M󇮰 DDDDD0g=OZC#oI: """"I`6`M@ǐ嫰e?oZCMȄoB)5mFG_|J eTlLjpJDDDDDѡѨpw!,?"""""=A͟eD! DDDDDDz5H_IBDDDDDC&0hVDDDDD|"d"@U}9놈W} 0Pe:#"""""4T B/QS˧::dzXYc}]DDDDD4YSxDDDDDX]kJ!)V"""""O:`:5Ք_;Տ&,@DDDDDFiR= iRÔXwDDDDD$5v [IENDB`extension-manager-0.5.0/data/screenshot-details.png000066400000000000000000013530521457631363100224010ustar00rootroot00000000000000PNG  IHDR>sBIT|dtEXtSoftwaregnome-screenshot>&tEXtCreation Timemi 13 mar 2024 21:31:17>9 IDATxyWa6Vu6=ӳidY%o, |LpBb/>8Cr0$loXg/m.-6Gf~2UtLiuw{{@DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDSLawDDDDDӟLE KqQ1 RZf|k&o;M:gRؚIJDDDDDiFϙf62t auhvs=DDDDD4sL9]t""""")8C@mt=a_Mu S:lNS̩߈Ś M*{!3_,9-zWd9dZL{tz, ,oq;uj5'|dL]+B`hhJ4}ӗDEل\Zt T@ZڼZT:uTl{{b$""""Zzs=]/i}8NӌG*x7Xesͧ&??$=ܶL[D }єc":}-f;Ǟ/\ٖu,+QC|'3|*hVaN.;B|N.˵N曷\5 Z, jWe_T!DM]ŐH$: #w(PU@U+Hա+;:=NVz&8|ȓ)֗u!""""::0bx0`0<~E3=́2_v1_DچItfuq9z e6DDDDD4EQ5O,C,C F1`m\΀QJ[|흝34f###ÕP&w 4qݫE,u2]i 0[)EJC"ht!NzK-_UMvfs13JIzj:"""""rzE5v###u{=%+ԯL8eRsՄd׎)49moǞ={'bDDDDD5U^ff(1nc,*eTe``~;8.{オ\呹IbjI]SsJA nˆ~hmmUMyUW<Æp]w᪫h%S!hN b$""""/D.ܹA _"v؁Ί]>EX yn͛  ylkJ]q*U (;:ynWzU묙|;hkkŪ]׋6P(TVY{z&M=y{-gFsAxR~hnnƷl(ь*<O՗xtvJeR{4+gGNNB+VcUDDDDD3 ˜9\tVq^JY|všQ}Fʲ^oi:+4l:ǔIDDDDD45xުBq V7f)f= I32M,՚녦iÈb%xyq98M~X D0R:*UUiZ-zL_5DDDDD4ZMav&9M""""""4y'MGS:LIDDDDDDuAAAAj:);8.LǠIDDDDDDAAAAAAAAAAAAAAAAAAAAAAAA5C D`$CCDDDDT&ULJ OF1ݐS>dD:F1h 5 d>1hRŢN ap$ ]7&8U'DRHÐhmϣMvшREta MӐi {zhFl/x0hREF#1FAK cD'(DDDDDuA*?FR'Nu 'DDDDDuhREF#1Fu:I#Qaq>- ^*ݐ 'DDDDDuA*RK05=Ğw81#0 @U&P¬&[+dz%""""\ TCF^< %$NۓDOAG.,nwɧ"Lhmt| Q-0hҤ xq oK iLᨁјC}I_`V3]lQ1IWvDDDDD3&M !x85 *fMPD)A?uNgy@&JH RB Rv4i)ED QQMd-MH E &OAЯ+RP].C7 ̹D Q-1h҄RB7:":D QA@ȯٯ U45u^KPDFz%""""4i!T(H@@8n@:Cij:6̲RJ:0K:GtݩKJZK@U.$iڌ'wmӟK,2tngh4iHH\b(b sn}n'ҙ4w H%$' x5 Kr6}N)a@:z{{qu9SP;w..rlڴ Mx9gD"Gyo;G0 s6mڄ˗OvQjA&4$y!1KVglfftzR"KD1:|nFo*l@354 @__w^<3hoo=̟?7c<~ޜq8|0^{5?͛iӦI)'tL&L&aQ. .87IDJ iP!S&Rڛ#LW@7R5QaGt;Ğ$HHߎD"1Ez!s=!cR."HJh4x<ΐYea #7~ dA5gDQqadѱs|Ý4O<]dLq=U98Hp_@VY+WĂ F{n8q2{ի'3Ν;/bh:b 5fb^d8M))e ANzTRCf)ӛCSͿ-u,&e2hs$I˰o]wFߏC75\3ie%"Tvd2fT{椔L]$K& y;0MSy)D2iPZ3MUU\wu9Ahޞ={,n76g\!B4R|Hp\@HYL*׭¥(H8PYJ-&l J`vPE~&M8ͺp疽/xdzn7{;?|yssez0 ]vlقGyGEcc#nF|Sr,}?Oh"lٲO<9`0˗㳟,Ϣ/OwE[[/_˿ļy[oa֭8p<&,Z6l 7Ey"r6sbqS4i PDb8jgWHUh3u+~$s,X(̈́N :F:z˖-úup+[-ϻݍ^x;2>6~_[:oŻヒ_|[n׾q_"""rM(@X"/^i>X 뗅plX¦-6hPpǾ\,ӛ$Fz];L{B=}%dfR!=%dqy9!Gp+by/Z_}yCbRJٳ?Opmn~GH7rB׾޹s'o{DDDDbФ aHј@8l6=<_ jAē"1,jeg"r/HN<;|ۍ:k'į~+ ]tRxs>v>liz䢋.­ ! 7>q6oތ/~[I?x'rtw . o~?^7Q94iB$t`(b`8fT(OQOi]$xp X6WߎF RV3ҒKS/h]ӟt+;p뭷BӴ`?O<믿qx//95G>jdڛ͞uYXpaٟ?ׯ/]֝wޙ[n~;x5Sok.|>D"*i{*M#3zy鐹ay!K<oF4a 0<ӈ% .^Ղ̕Kk;!1;`V6L _W`RUԍ7V arڧ1`0M6Yƿ+D"x׳4MtTV\{g3=ڙkNۚ9GshhN${鱌94>(>DѪ,OuL~\G}݇;v{DĠIb(j{aD:Veذ"X#ObFv]GG'0Kb .ZBZet.YS2PqOS^ESRBiZW_}/@aӦMhll,.s Ɵ2Wh;sm!"¶mۆՕqMS#@8HQYĚ3&''xsspLOD=YXᘎCtٓBm~ 8}ٻwoΥ6ؙC$$3~|sNU\p Ïc44ݽ{7n,Y6lgV477#wUߏ[^s׋.z^i>x!"""bФJ%tZBX CJ~W?EBϽ4@,a`avG.Y݂}t}1RMTltx@gVף{ǰ{~+uko IDAT1ة??qF|򓟄i ~G?Qշa2)k?fnfڊ]O? طoWҺ>o|h'q嗣 nǏqDvRLCD4Xp!\.= ]ױtR}i;;v`pp7n۳?P7|3bv؁Ǐ# sN?`'IF<GGG֮]@ [kix<5CDàI5KgPG4(Zi"dN4È' K=eIh<)ΜX6/wc0tZgٍܹo^ziŋr,<ٽ{7vލ: \p6n܈t 3]]{iVڙfc}y kY:J$غukδRLCD4߿@8qv؁V̛7xgi.]d2p8 ۍ dfgggUUݍ`0v`׮]PUsNIeǏc4 ³>mq /P 9&[Uд K",~n0S  c`4iI^C$9!PDioLg@h'55͚~r--ÛO}qH_cBছn6Xy쯹暢|Σ(+U!|.z-7)P4DD?A~7da瞋u/ҧCdNW8쳱zj } 7܀K/^x! !pߏcǎaxއ /G?1<>Rvüyl2xzĖ-[phŋ#;͍7ވyg? EQzj|8100{lv:[a+VgQtP(~;ܹ'N@OOގs碫 hѢl|xpAtwwĉhiiŋf̙32o)R!"<OiX HwvqQlٲsŪU50Þ={ۋX,)ev sw}qX,cٳ={vZaФI=I$/ zNTE@s D@4}MsWΫtg,a@7UnHȞi_a۬JEvKU[UW]4^x!.Bqw}7nqW^y%ʊWl{oIr KW_}uIf̞=7tSYdr^y.C)R!".-O<:޽GÇq\uU9=g'D  ˺tI|ٳgcݺuq@G߉DMgf wN%>v,]nDХDҐPi5棩 T0$ ͯ*Dk .I{衇,Ee]6i!"pOOpYgAJmZ WBư7gφLBΰ_6,< BӧO){S%rرce*ToXI5!HF0KssYa 4z]4tNe h\ #IēFNOvg=.V4ó>kf͚N488={64MÑ#Gy0]W_j*~ +ikK^/FFF[oaʕ9ϗ,Y{… H$qF477'O֭[ qI;DFj@ܺC{(tχf{|_v-Ν Yh"`ĬYj*(" \B΃޽{100|ڵ8s!Ν;gi*i&tvv"cdd6m#t)E)a[f|yj{76ý׳mbx CG/䃫kG)v>P_=]GG4MKuPO@O6q`A-tםg>';L4lݺZ6""r'3Nf*vH%X\Z itfO)Ӕ5TᘁAN\); ͥಳ۰dnw n3fq8Ʊ( )KZWS+hm۶YB&e$"""I51AĩX3)%q/@6OH]߭bVȍ Chorȩ^;јYb*B Q)^pz6lP՞|ȊANJn0r;_33I2zb}P%s'fo8)^ yu8t"Cw_  ^E̙DDDDDǠI5V r[SL58v:-/`& ڽX<۟\!qj( `{&3_Ou :?/dUAj§!ùo|֮2hL+{ C4]"I 7H4p<6i)*Th.xgA@ TuB 6xة2yE3a337ǡ45pB7OH'*~ &CJ DDDDT:K5u0;(Cķ.  'C&Ԣfq- Z-ٯ4}v<ӓ] ""*wՄBk̊¯%2CQ$ ?rIODD4\.$IQT EQ4b|QM!i.hv!C "qXBB7#O.{yNе:3y5P[@2PTUE0>\.۷O=f͚P2FQl۶ G m6lݺr TUų>h4}c0 O=^x\|Xf 8qUW`o>8/!j 1l֐(x<] tjFnP3ڃt"X6K9pEE[W%*"{dfjEI5U)ДԥTFGGL$*x Seg}6Z[[ vZ455ĉ%zq饗b|Xv-0DZsNlڴ ~@ׯǁ.OUU\veؾ};:ݻwK/'9U(6[7@4FjJǃb45-CPK F$GuJDq]|D浖ug._WB¥^&h P]:i: Hqqb1 "L FSS4MC"زeKv0 .oΜ9Xt)~a\~:""\.6$s B h-_%D# pII<^vP %bn(]DS dtn`946UYߏx<~K,ѣGt@̘;w.v܉38a෿-t]/i`͚5x0|"؈?SO=5kGww7y\ve5 DDDD40h҄4 ͡(=ǺSYh.(B uLY0!LJ O\"0RnH+%T˙$@C0M;M 4MRX(† K/a۶mŋ-lذO?4>A,]%=yTUs=a~Y&4/_C1w\$ wyK.w-[WyTTJY(4`&M8!Bn7͐faH$8"(`D'Ʃ 7jYShE5YpS^:!""""4"BkMd !(JK)I$Icq1 0c8@LH…hԒhhmt=Ԇ`S#4kp19cФ5fF-347^ I47%E&'4$TEVorUpk!""""r#eH }XGRZsdjFn7n7|~?t]G2HiHEd/쬪*>"#0hRE Ǒԍ=!B%lkե55T}DDDDDAU;4|^j}j2hyl"""">M : դ ~6\M66y:ZpC7dE!TE@UU4&XDDDDDuA*&hьpaFF[26hn#&MUUl#$b U&U&U&U&U&U&U&U&U&U&U&U&U&U&U&U&U&U&U&U&U&U&Uk @Sۆ?!2 E(က0O'yl@% EUA%ԒW+e1 qٍ3m'H"Ǐ RD|5ւ*=SE(txT||4Kȼ?swe~/H~a2u~[!},a C!ad.n@B7L4ә57q23!4`*Fz{ 2wۥmWc^M7RA_pH+"W3@*UIM"cPM?R"LQI&ʚنO!ۖVa4,Ek'{WӢnMç`E~'}jy;;H!0]gzHoAZ>̟ }JJwc}i+sšxe.6I%(%|O(3M_yyK,a D1hRE4_K煦("{!,)-LP y$H@,@2~tbHE>DΗyQ"BiY̮#:p?)M.`-ODP,d"ƯLor{n}Ʒ!~0r- K 9L)͡1sPl:.[fہqfp1^B>!O,XDĕoqPmQtm<CJ(dK]q.>x˒Dz߇B"oAaYe|ԷtZNz淴>^fZ>-%Tڇ2m Pܶ >eo[8ǖ+,qS8- t)P$'M !SvR!na3jaD PƂ"Aְ/FaDԗC/s@vkfaBa` 2G zQwnvzv8LaVw8oJ-{TV=p cG||?a8ʙ:B:M8)\fk3M5ݴfuS5גZRKMicw,'Ǝ7$YIo)߻:)z"4=̌xBg`]tTUū/S0g 7X a}e%yyy"Bd-(&v-Ot>oȔ_lK(p,؂O1}\ZK5~-qUA*" եnUP/[C2$Edj~σp H7rk*|^#/IEE8._e:dd  uD27l@ 2J1HfEt4I|`/ Wdn_!s<1Rt|DX̓?PzNS`+' ;9 K`v[-%57tzo8[&j9NyôMskskPh,E~ѸDRNhH,s_nhy4]*$"\p) E Od? 3ij𡵱}h{'/sM}Y-5d6rK ,32e꜇`tdo6t{?E{Q{4?7Wztz֪c|gdc2k010CѺ~gq1|L'; +B^I=ԏ4:~?8dNaTUŜmOܐjmH|ˣ>]A*bHBQձ')SE`o8/=}PKa/:Vo9p4)-ĩA``xKî ]7 .Ua#,CH(P?틤6YtBfidiCA`QھJƵO>_Ppv^^-\9M-wۂwSLjbK*1lژLjm\Ù Os%dښΎ'dJi[6jv#s^<}7$\O_.E؎xBۥ0$I%٦Ê"aB\l~K%8kBݾ >Vя_>&n+bI=?gx^?kGc9|{ʀtNt:|z reK<s(g:)!J3Xhij1qlziF@ii[dRK's>+5hZ3cs8MaV>?J|q}o$ܚ> ]7 GqTb@1Ѐ.C#h '}gvzu-Mȇ$zIwS}=;J1hREPUUM IDAT&s"}ŠPq*9}CYKbKo쥋qYx[^݅3h$f4 o=ǭKj wk^V,^g^z S(]*MzUUcҘ_{𯮅~_$A2ULH< !X)2/#gD΢&'@YcN -9Y*6efFj) S'':1ҰZJr9DJkZښH{Gx]gaӪEX5?xgGpo\qR Xl>qsy5ka1*׬[Dg/h~.]׍_څ]ӃxF僛s7Ȼ%owfB54//o%]_~u%h UC[LAK \ct;Of+33+zZE8? T?J !1)sJ?/gX9|7:ZC57g/H$dECފ?s;F au!hܚwލȲxo鶯íi9_Ec9r U$VtLJ,?s>v;sz3vT?(| D15 x:MH&hl܅qcnG+-UUhl70H<-CURoZi*Vޗ70Lf750K,7u i[NN!̜T+d^Kylrk%vLXb4=w4^g~[k6ey6Sո[CR3M!0i P@0=έ,'OkVguv}O˱#U/c}jkϜζf:#1\eք'^ۇ=ˍ$_CpR#vb{B ;YFhc}'|67p[sa^GK-4Wph'El0V9-U#J8(fw65W_Gϱcn=i?,Hgik/Rl,mdbpceٗn+^3[1lf&|uEn H$傐CGa:n c?HeV1gN4MCcm!5H8%` @u)ۼ?A*jo@CBJ? X.P]:`HMCR7Õnv}k.G# GaT GpozN)EggkQ2Gܤa^tp-GZSXր2vho¶A0utgq[8L$fF5{fglV(; ,zrMu2}Ʀϝ)yrv%ePC'.`;oSʱKd/QbH/%&Sivs<Dme7_ڡ֌?=x0!ةA ٳ%y's^ 6!n%.l<1rcdaGaGx<ȔfDR I{w=TܾʬS /}[ck:ŗ?K&LI٤b٢{CIK. K_OeⱫO>W5) KElڍ׌_{&c#OGR>;r+`2 @tkE._]|5nR7ٽgƪX*<(TQy>CqY r\Zib4!>GSW￀9~?{9 %xM =͛4-&~G5<ԣؘMcNCHVk/lnh!l97Ǔ>oc<~ "|Wƒ#n/cܼŷ n޹'?1^~-.~s;[ƫ_}̆ݴ-MQKuv OIޮ<_ySDM 仔2o|CRu[]j6gJNq)'A di!5?@ӟ/Ԕv˦gsS˃w;^.?J)\"'ck6|5oGci^7×Ht[/s̛_ã9^{6ſMf/n <qA6C!@|O>};#Z!s>Ij$q:3䱃JeCO޵p9?{Q" ʝI8q b@ۺՐ2ai& qL.(4f~Yўen^ِAVx/_EkI ~oyoWm|9*xY/L6~X.ם#TF۞kDZNf)-*u\s|ϑ,=O9&W/_l: !-s򐻶REw/{^gJF!+Ϛq4M㥊/#iI*YIZ$[Lxֿhs]lX}0X<ފ{ʚ(P~ꉑyi"@ƴ Z][Z e,ۣMrǟ2ҶNḑR)$6|G?VxTr&snͩ"fsߊJJ6|/x⵷:X)5]QP}nsk-2'e"w?:'| o𱫗+'!bÚCAAGs#%-iy7vϘ]7;ktu\hm-0pr7}MΦ>_ d UUV Gl|>gQOj4o&%n߹>?ץ4N `f nleR5o> nZz]4j4G:i֘/}>.]&wV>+e۟R^zZQkՓ%\$rt)mB?8X4"lQFqAavЧ} ߹\iLH4p; `\Ƈw`UgN^ 'ҦTCWdS [ D짟ŵkW_`MR%`#N+)uH ,4TbO?c:ѷ3qʼܽ}vOA=Kqb 'wlfv 5 ]rRWڶ-~ßiZo}H#h#59ϱmlmn>~QDIBR dVN TLtb th{8af<g6݆QN}R;1y@o;ۍu7(,z1fOJ2;Dvي\Fe{@&rZTJ{oa}Lg X1WrLW+,;[V-+ӇJd Y7!ڨ*_`l@C2cc |H#@sӑjܽ{k*)7,t/IN`iu)e#uqm5{{dLW~iJX VAe4#iN.3u4IqLL^Lw̉ʁ4؏{L_7FCy+֙ly.WAtgZN 2K/]`iUD})<xwƎ&W_ePō:R@,D!2?ޜxk*syV=r !+.+,wg`b.XLToiQG4xuQXi$i0b֡ht*r 9Η?ɀL>@diCĽ$*4,i2 beؖR&7uL 5$n-NADM70P+69 (I0vא kRoGC 9nњq)*jWLj,3Bk 沉 mCm>J٩"TXv [&Pt><쵲 g| 50_~mYAa)at3~b@ tEIϏX6sڭa_crxg!BҐʶJI=ۈX/gTrM4)DGbh/39ʗ?y5?lH"-+g:dG_M #m0P$jm#l5@n`EOwEacFk|!)ڴZjڬnbd}6򉽴rc.)@џ'=k]BDY͘Kqoy4s6BV H"g]zRO 2k2|~卢x1 t|J*hJ kfcKQScWL!=7믾@|5ٹg" ] ?^sˆyiV b)?}xH%bJ׿Nq8yW)E.=3+,hRZF\Yjq$C:Hg@#T*Nb M# ;a,tKJ ^KAjApv(@Cbھ 66[NdnY!GZn%?|TS 6d<#UT+GLϽd!hssO(w2" ,yȌ+rgӚޯY* 7#yY=|`ʣf=x?[t˦ Z֒*mT ;`)(0ju.]4Tї3Ϫbp*b~wkd *(,GaA8>W4ih#\Z&/-^!D:i@QnӀb<3P ٴyݦ]1eeuob82bz5ÈGaq[gp̨X՚%iԺ]t6@3=q@K-K|7e$Z(T Lv.nrbr+5.,Tҭc'*3@%{\2s=w$A֋at&o:BkvhRY ң %֘]i0"]7Wc>' /u/'BL%fYlF|0BZpej73nI~A)A\= F}.kk̪տ4|JIc-Y/O 8ƙ|ig%2@sS /t6ЎQ\qɯ hej#i :1 9}xBlpn֗Dx#(Ut{7lwAzR: V dI2K qo%8=OJw5,"eY 8j,f<sp_RC'eqvf/dvKX5Y:NF;οTBpM9GF)ن=3s]UU э ؿn$q;'+vW_:?yYr?&9SYu6 fr@W/_wiEBuj`)m_~I$SOə.x,G (v8)H8/ &!5$ÁI@94`AaYgO3t65)kXy(a&n7vDLAĝjx RX2.p6C\VL@ٽ>/ 7܏KȨYĝ؟<[+{Pݽ)fV)4: \j: }:Visܿsoz<?+{а3&~TJ?`g{ wwn{me830K,i4ݹvF2(Sh%__h.o맵 ^>2YgdBrulB}b&$ b{/:E@Thh.0@63Hi#ܦM9d-d|9<ӛ쯍4qmxZQOt]=/WPW˻=ĝ0J{Fdi%S) cBj-G>k `(x?H4G:/IXIl= #LO ":Fe;FN{XOa"PF e߾RhFevE"QDDrg3K;zSJ22?)~PiN9ױYu{1C۶'{ߑ^aq|/kڦl:n}nvmIɽ ( so:&UbIk43G;]!_?C0S)vpOq˾% "iaT~Ht嘺хUR@?R-8feFE$__v; lvB z@$q0}{}$aM;@0Gdse>uz o6"..^̀ZVͮ8f7qtEֳOm[oc~tLYK X[8RNᦹ@`JAc 1]agm̘ir- *!~ϙX'܍i! _ IDATǁ#J!b&;S/%_3.G(i#)eT?+=S9ћ]tcjG8@A $$l}JنNG%ԃF2)C0ϛEEgDCq`6 Aa1LYC:^D6$;1bR9I6TU 2}_LS8<ݻm!_lnnBkmsc{{X,xꩧׯC)dsTUsvж8w{{{BUUN"\.q%{8::uH'+*y891l<]^ +}Ch$G-ؤDwfZz@'MX A%@}Lu,R7GmJߡ8K_BU`&'DA|"@f*pQI ?/'$7vF:Hbb2JKi;Kw78M>idk @e\*N$R.&FRv桛ufRGp/~)e᎜U,: YU, ,ũy`T0z2B 8dkDuDS:<<č7Ow?O~yl6l6/K|3r>~_@)6\y׮=… ԧ>7nxDZW_}[[[x晧[7oO>$nݺd+W'~h{aDDX.v(C+,9 CoJ&X~緿iF\%_D{ZOB[IB5l4ط[fYp9v/PRBN1w"A#wOG06fD ;-zV,Vw&2w.}NC##TݰMܮafst7q) Tt/S |MD k']^ zuS(w|~+6S4{[3䊬(tB@M}$ QAlvZq:M EM2zI)}m[ܽ{?{}>իWp5?o&|7?bĽ{w駟R 8<<37#>@s~Ýh>" vgi] &|8ZEs:Mc' iW6T[76y I)4Ne̶$iŢ@ii$V]?D)o;Nj}>?<'˗/+_2ob&fs R_WܹI}P8n4+XӺOK۶@Įeû:o:r{yǤ1nݺ-Bk=b>_`2`ooUUAkׯŋ8::ƒ0K?G̓GZW&dkdBx3ȯ̽@g>W»~7^E:g?ӈNP)5AIW !de MYhϘ4)@#-~}Fv];$i%cL]FDەG8#M6o&2KBb&k[ (gv"s3htz*+ y>$9QYPҝf׏Gc`z=B34?7>#ٳr`2){"th?X |& '$9g 22a$γ\3;GVչo^B܋4U)5M^{MX"Ĥ.Ru떏+iX. ;88aT֭[Ԗ.Kܼݽݹsӆb7oFiwi8i'9 AfY,Owi8lnn೟zR["NCI/7A|K9v &"'yvyw5>ϕ3(Y&װ~, #\i=5KsJYY(8@b8ǎP{V .2nLzxKI)h7HhtJ Q 8E|%NdڙXh֓؜֧@hA܆p!=9 ?*_nE&'J^rzOZ_^O@s0~ )k+"ne+(9T_4y <%)Ikc׿.<0|fc((=2C.lxvxQ|O`-o%6 ]i #(ҭBhC} #k4CKJzn;@)Kg6e $rK{\N[S# g;Bt1`~D"O+q0"Ix#Cft#!@sSaK]ȕJj"K<TYH : i4_5l JlfZHvhHioz=zW }v_N fżk@P5?#'oN8r_ fOJun#bx}iLjg^0(s`8!C5?s0G6S|6 Dޡm@c'kxy(nmHJ9VTm/=g#z3].3ZPyДm`yNmDmx"y8W !p4)De;4ZruKN E; 2G4ҙ4G:گQ}:؊HHc 1?rϝy8R-Q'Mmb0-tZNFT71`FU!H'8fGkt^Ն58Yu9>M`~+w*\ HYyg$6ϡi8>,=]RF:߬_~s|MX+w (IM|K L7\8.Dv-"u:]gBheZҶ{JU+tw50Ka@Dghvg]ܧqxo#mm?rg @1%! ͍'RМ!#ԕj'kin 8(Tyz0%ِw}%]\烇mt%OlLHsYtFktmjǙ]3Hht6| ' )$;7{UfS̨y˩RL8 ]k!<2n=VE0 2Zfx` `WͳՀW(O\/zw@=%ru%ASR*lzm Җy~~Eё(t20N-I@g)@Tv 2H\eU6_E@_6id}ZGA+&O*!.uAq'u^)]a%`f,OW?A])`~t`vuX0gz*Mwk5gHM^9¨DEz'v۴Wr%4PRq ͡Jcn5%"1 |,/I(ŊH_&A/(ˡ-ax@R-#t4͑NG6Z늅<7&|Xf,`kb_)71(* MkN4vzаhT׃Md+l^d_c"8#.?Ҫ'PR):OOIcPþZbʂ7@xKC ~oAaώ6&`'`j8i H?s@LQ,4[b`S[?؆hu+.f )8Xn,6tg8*QN5}&3#jgٙ t׮]cEZT8G:HT<cgs2Us1Ye'G Ϧc} WhЪ 4LaT**Ϙ8(jNBizPe_Y6 tרlz9E23YB>NRkJ&;OSl#cIo3!l\+!tIM)A̤FJ 8Ų)#Q4PtLVV?5 DiBۺut@sNDŽiτ'^$gԳKxۯlfG&Ji 잳f]׈l@(%)$Yu:; 1N3bp}&F]ehl! ͣ?C=F f~cgg/cy|mW1i&xa<&(1`cd`2}:ce4V-p'=z^Ԅ-ͭ(l(]b&,Ο;3ӭ$Th́(l9d/HjN5N@$Ut~4i#Hhqvhso@;peZLK_\Z TtDIT":37#S"(fّ-C΢MCS"VF("iz?CY`Ec3GMk2)9[^wr:a elY>pf-c`Zxry=l( qln6MWÈREʵ DGR"~Q sDO"|pn{_nv$"I׺Yr CYOt !.EO;}D(PvtQ?u+4'جJ{MUc|?s?6k'qT_ *cG |S 1E$lsܔDkJ~oiҊ>`Sn1T^IlLLY-`&>ȦLKG6GE RF:@sSQ| !v)[dx{pg(63 LH iUlžIǚ}\XBBk7";6 Ws'oaE4LyJkow݉Ş[c#)}8{Ɖd_cœKǗpz(]ZN;)A`\?|&`3@d_#tF4͑NG1`zeV=!iYmаxKwI IDAT֦=T),ldZ֖A&\+2 D Rd5j!F -soo;?) q/1 #B4C75Q~ 0΀J֢||ʕ-n˅OI>˓-<},pPn=q+"Џ?FH逥&cn =͔c*4-*.P%!<}XǢgb@ _q]TJ\G-бYDi"dlg@"OQ{>b.Ⱥzqy9C4 h#ed,4I1FJH6dprJ dH4RQl bk.DP/݀*L0 =[p:Ë!L{6H8=:ϔv!:ZƿT܇W 3Sw4rBTmV8P m7 0솇  ֙^ *bu jem^Z:M'S6DP r<TzeHO{/7l0;G3J7 ,9N(K`!OyAD_&-.t$ZIǤH^"F[f~ %k]yn 'h Tk#jOQD9O}5MQxp$ns?1#Ef @ MG6& qf; NxV!щ_0油 &t)eC~+ E~=# ˂y%?0&! {rgw,7uJرg=5i;cBZ鞡Fu@+)yPu0S?)HV T3YTʅ0]9iC{09ZF94G:%9_El1IR?1> 1gS) 1Z_{vc@XHYi-Ca"N)=0/n8+*(:()"TmqiRq]Fz(ȔtLh.oIYAqF)I ٔQA-$WYfT*Qqr/ 9+hZw:tW*үX j`CI#&瀜kK(S-Z%@S۵ 0k (W%ڭZ[<j1pr#WK<0yaܿ{[X.bDp;2>Kԥ~W H%%ȑ7.=I:{fzpd"}tiuƠ-Sp@r.H@6;OR8Su94G:yfvg*1l\t3ɒ G "ZoAk2s& ZI3&D3sD( boӁM8IsDS͘IX z"sٌO*'hL @Ezx}nxS#Jj2ßG,Kj4,MwIw(h~(9 ͢9MztB .3ѭ ëH8r |!OX";I@edv2iZ[৵9ׁJՊ{!ܹd$ DFf~ڳ^4ÜdNS?-|ow| m @3}JhB|+,hk 2SIXeJiD9ͽZcFKg+f O彛DEpxdX,F Gk8IN;o:b?bi$O#TS؄H.B,o—Q:&5 Hya>kA% Zw(i+a@%3J2 ZKVdZID**V bub"s:ʁGoai2M"Rm;fyZIjݦBQuQ)P.hǦpSX.NMdM ϕuNDA*ѲZTZ #%RK689x=3^:۳kJ"T_ ZX`U !µTʁUۘزw <I`w41~ܑ.2ig%L:){9'r10_,1<2Jbkea.ѥ=$:SLDE\M ^z~d-OHh`MNST> v2ݒӌ-!dZ62p NwKދ;ºGF9)IÿIgZMed m>Z31-y-*4+ A[0sF/MNp*@CkGu @՘\Gõ PuFcwѠam4 (V g\)|ekʨ-̉ xV6ocAhm\<~mj߇1QfUeMm)hh5VQZI3dPPQ3cll[4M ڜlͦG`,mК;1-k(ȡg+YwA)"`,̌T(BѦsR@EFojmRPx|frmX6 6`uUA3fILZmI ͽc.^}7q8n4R[hB=hs&4ڞ]ۈYJR;Rh+ET4m*4 eޝjVaR+h hR U0npxQZU ;3eըXYjpc留vDaޘ9>+ʚ[t޴1R wWxǪ_b|.m0?=R[iw[H&4'f-w-X`ğ0hl !I_+b6z V0t'x.^_E\Ase͞h,X{/rE֎cUz5/o @@mdqecT֎ PPPQIUDJ5mڌS'd#M|#! ¬2gv)ּ #R o2Z)k2cB Z@hꋥf o]u5j0f EʙXWg5֘kq;T߇ZTi +c J-%r} b&Kb0@q|9NӔ˳4ht:LDtYx1@.\2zTfQx1],sSL;0ea l&mHw$jRU(SG 4\ɾRPU >oB[Si\0fS ej+(* 7wpM̦lL' G Ψ-׬QU5&rlfBm+RFkanGʃJuJl*0̦mJ)Q%L'̦X,5ZI5K13Nꦫ.sy/;-͠բr5d56)hc Z754#PUhUM~!Q& }M[m4|qج+/[L |>^bK*b5ژ:Of |ߦ Ϥl5֘ ,5Q5™ S{AwmL < L~^֕jV!(~\ʣ)TYVc;h/4)}U]KLƜ _rӺ«oc[N+GB@@kam5@Z֜,6Bc3ń*(m,>*tka[f5܄9Ѫ [ ͘i6sfc`eKU*0 A " [2kCʄ ĕ *e5[\a`u -),Loe4JcJbLP2BSm69GKM-PO+5Z@TPʞMf-oQEt ס6Ocy:Z̘\gSBF7}^m9TKN!*j . iFiH"!?ZF?(Pǝ`C^@ FR9s(Ѿ2|R2ڠ?v3s^RUTG?R$f5ޟ=^6X)VUЋYzv`z*_z|8L Ӛp4fR8ڞ`2&ԕ-H?Lե5 R S6 u,-Tbi 3GUJy5?:QˬW*VWyMۢmL`J)9cFaw1+lL8= k*ZU otXIpI&U2QFX:-a֔_Zum91A#RV dq5JR5mV5I֚f*%Ly};nݙr>:ZϱF-4A6m5>nZrՄj &h݄oʰ9[SGUUUM*4p ; -2mPim3S)a9,15յN>jqsY"#ԨVSeֆQaˠ[jƆbACVISumZc{pw+t2r?phX#&=[`6]O?Ff|pZ;ƬVִӕ@hg&}*4)X1ZM"!15Wf@[)JhF۴I]abZkc[`;oX,ϱ7cg6BUUNjL'>_p0>9/yMQG[ RuUVvMCc@*f밨ufdlH'>ޜ`{6lbL'Ux.[3gU)T4ʚG4Ųyi{RhAxh2ehP\CP5VmM@n(5`af%cQ,W^@]cZ~iqk^B c^ׄ h;'V[d&WǩÅƍ~h0K5Fl}oxsRE@2[))|Lњu׹.4`SH,dvXik}aU (hZ럨9ւ5Jc56IcV1%lUE'_4A3f`r,F/Df0Md˜Ԍ¤tIe o`L[ք&V@Zְ'mn-6뻪̻̦5{\"Sh\7&(_V1WVjYOO"󞬖*W @Icٶ TkX MFAs~drxߩ0 GN ܦcZ${l|rN`)0Lc@uRk;MC IDATHhtF$`Ǚ9i<}yYMMe ;9LFgp #-Ǭ@.BVTWh7 ip` 8;F/X1L+m@ T֙[AV1ڽmtwiYm 4%!6&d4ُ,I="3RziPə4I-%@҃  @zIz$H3T nZ5]{ofFs3Vp4VeFdFzxw|C 1Yߦ})LsEZvAڔcȑ#M񢎸{99 K.;W;W'>m<I"UD|6!VSd hν۵AU:5kSq5@{E\z܉P 6]WUd(CBeBN EŘ" 1u$ ZyW0J eSa-`̓6kOn^̬{I; <Plb4(U[X?aGeId-L“a S\KrY\kD DI4 //pKmf[#!b]y="xŻ/z %5Kzo_7 #lB!@kVowMDƄ\Epg#FImJR݆fڱƼ,&ɧyfVac$dD_ey^bY{αlÆ1nhyk|䖔7PbX )&j]9]Sw19;pp|Z?Saa .6@`N=6)" m,ۦTaLBXӒq Y"A J"Ud SG Z"g7&p@cfRH15q;4姷} &+;Z!Eb4a&;`PrZ*cI|܂Gڢ srH\bMk=w}R\lb`\_?o~oK."]%.=ȹxj~#XZMrD(hHO/E-|WrP,PIRI4r ]7H΍a0Sΰ֨m- QDMX u!Kd da,l2'Sg%((573ܚ>RR)Z96E$h!4A4PHBCܻYY].N?oL]cd&NU㻐])*Fi~:)OUw7_i/|yj"{y~:&s3ҍzF%W`1bs,[F|wx4WWϔN|Xg/e6_?)*Ǡ <eEz.p^.͑{g!GZ{^Vtmd*mq#M'*eKNe^ a$*-TgKyY4-/)f"2j&ٳΊݏ㼌X%حp=k;Kךl(nh _@{@Xf%1&F"n*R̂\}r.7M)1H#5jmUN,|2 RٗD"BHzv}v;Z z؀MAnb[C:3kʈVc3o{?k,^%;_{ʿEKB$0kB0里KT]23$!j#Imm(ND1+W%dg\ 9S[ f6+S=!$_c Q`P \hTI!2а+1sXE3SNZ~Յ_EG)'@6uFg]??/ !=v=ȬKM74jM]yD8Tq-ҴX 8犩)n>^d@wȗ35NgPa7;P,\4^rF4`MbzWu;K/h>_܌lkW2h%f<wr{+[w`4IhzRm 6_wd/Lh&h\"S FR] !ȫΙ!2DO,ygf+ӂEsU_ȰuYŲ촳l]U9ijT_RQ!gS]{>qb`eҺo M5y ^u454V9Y[CZe^j37i8G2+٣XXLHXn{/9hU{ޣyFqZD\zͦ~׳sEW/&__|1Xjci-D7`Z 4g# '^V mV3E hqbR] '?ʘsUj&o{zO@&5ZLv~XtY߄yd){ّ`$J|=˙"<*O|k1"stޔlЖMf7t8Iowo;?9qGs 7ɿ;o ^xrb7{??cY*4f^SQRa%F ]\ Nu3]!F(%HmZM1 ӉL5PRTjT8΍g)Ǒ]aIi$ 61qoc֞_/JdHI96%;K 셗RѸPr")go\Ba8ֱ\/*%ZVuFs +r"t4W.~YxLɈEVDlj.YF҄c'JvFWupFAl?s/ʹX˓O =D!VzsRi޷1ӫ䴺6M9oUPc䢝? cse~@ݴ}yUUU#H+ !*IEai~&=xR"Z"JFeDDa9M 8&ifə9 KHz.c˯KͺUpsSY"@̬~'V3|7C~BIiz?lsm̼z]N3x,|H i 5;f 0UȑijW#V(m5IQ!34UfRGcl.֔崐R8x4 W޷bʓ)Pg9OКDԬ7-0ȓ!/WIE픘o#J2< s/p7.G!sdZR;wd`M=TkOc1oǥ1%8󝂱t Vu!<?}DpXK4F8Z(hAI) \@N&{ȳ+m1yd0$vngŪ BjT\"~@b= $Fhy@QSeʲT[SʴZՅYHVI(zs_^p>Uk[;5Εj@FfӚ|] B"!=Kһ*)JfA96hNq=nS_B_׻x'?VSYZDՑd̙,$Bζ~lz{cHȄ4w7 wy+,:z;A])dU0ҸC2afqGvrO^{E6&1wd*g9}fNk&HP,ιOSt4 {@3t\uv٨̬Pv󴠭SIm NJ< @ )%3hb?g׼uunƴͷ'aퟲӴ.]kޥIMv[*veU[Uﰞ+p&qH菴;X !="h`q/,4y2F4e2xVr7z6Dw#];yv ٙ|MKX]ü .z󟒯?#cq]3썤+k4#/N>PQ>gl?{Չ6-&Z8iӸx9UnZ">RfZq2Xc7Riƀ]\<(NjɯDg>:Wy7܁+&dliQB&mM9L%%rN)Wf׮1i~˜B!.sDdOFzVxjL. e4UfsR*Qٝ-4Sa3i4<&^JB(118=#u`٬ |RJ)@)T"ywAVVXӶe1sK;R|4xof U!eK_}~YQ{In彇QH1ŵ$H2u]*xKvK~ܕ*2E;͉xuvEo bt_#ϛ;㧄+`fFW(}f0W@a|űEc& m~soyn;,xHY|Vٗu]--l*'vhvqV]ot{iB#,3LL1@Ÿ3`!2-3Y*W/b,Aȟ}|Ci %pJ[>]w@Rns62<;hܹcl"^tZrDE 1k茩?fΒl0";Iˤ]afRy9]ۢGIcgssяQPKGċ5cjQȥy%hrhDo|1}[7-+}- S4T~^MΛ\/2\yvFHf}Y#OrD]*UMAXNLrbDO@֨%6q8d#5$U#\u܄Ơ LئoHl?.Df}e`p1"M5+O&_{2" ɜh$`lQ*IdJ#>(Ƙ"z4&'z"5#Vݴ-lhv}7]'oo_)s0߸z'apɹ?_}旟pdQA!*D XM+,I7K!52X"Ŏ< &̷=r'{棠*,44CX*,eI{zY#$hmL&BkmP!dCsf(ʣ}fr"f K&T BH90ЛIeٱ VCSNg1$"| kR RzeIZe-j U "HlN` mYJt+9U}UK2kX{lWGڧ~!w<@DCDBCC =\ë?1!eHMҳg٥C6!Iich{0W@a|UKk?写;"[^x//7U<Ή܋ZYs'3c_h6vORm:m&EH:Yn`/AI6/9`gZ1ZE?bJX%CY^֐rWM [6D gZN16F] ,>ʢ&+xf=L3z6ckL!}4+g%c 6d 8S[p,dR&bD4\ȸnWi*S Ĝ\ o_? ;ou8ʊf5{\PJafj 9QBv6TD<*?P`95J"3"B\r9Su) ] \Y`V[d>_W#6d S<)H`3 ) E{\{]CJn$<΁EhI]LsUnԸ]ҚܩАηxj2@m©6rqL(*g"ȠE ="FKo_&g\"mHrAm n6zow y/[g/oɟe_Lq RVVՊct#>[az?bDc";=yAݴv<@ajwYsa;BL3+[ RS Ube3ϛ3s6Llv'q,T`,ųaO$qr"EњSAc+*!4- x 6"9FN*PkEf٣8d7e 0Rl4_:S+y{q]cJgT++@+.'&l[g9FsφYs:{fvV"('FY.γoLwur7 )bfFR zSLq 1?GMZZ\/J;ogz;`l^$X_U9i9ߛf%P,5q$sS낮/1״᜿#^,u)"̵Ks10Ŝ. u`XcF]e*wIg47}tOS 0xƯn2o85l/h@.>v |7 BZُ5vKfun`m <}/_qgָ*q`iYZ=9ɇLE8nȸqnEI"+iʫPDƱ3FC\s$c kjr7UVl쁚d66L.(uB*w7^5)0kv*pCq_vRY>6#oHE>ېy\xN"q^iY]KmH82݌b]ۯM] gٚ*h8@iŲz_0J]#Wai,s㳩2a&H"~ڐE<KSR>s;7c ,j$ U8iմ MxjcQ!2̐#sm|2 .s{ή 21MXM2d,=¡ʛC*'1rH$U*Np>toL=i=el=Ykȉle}\rU۩cBķ2ier(!"W.<6^BNtIsPwB5mX!#*,/zJ_7;z/%'h%1Er(ukZtmMiR94^DkPW}$UW--p۱  lLA,Gg}NslNIb2;$BX*i$V O1j@ًm u. *m6v9eݰ,DjǵTXfnKunγ)U G7z?Icrgdfk;h}WAIk[;eYgȬfn4rkl6_l=?pI(q=/T}MPkxχxob7WBbfv^ R]vPiD8RkTæ0Ɵr<͇kF%_<=lsln ^jޥI7Z)n&UD2u^A%U8^`Ҙ:zjLr5֨)RSbtmj|@@C`Zf#O16*g>37h|wnTud3q'=ۿ 9 #< 9.ga\b1&hik㹟=wgxvoML4 r8KCqGϋnRWJHgv$l"@ɣ-L\l1\m3FixŮ# {`=7Qg r#xֶf*5㠃CN4)Kcv 2ZUfx\2߾H<-SJcg>* 1Ԋǥ)RRtWE彛O[9r /ce [cReL-J@-Ix:d1r}Z84ۏ Rd3D.^DD 2ʬvƦc&Ob`Ls mrL̍xLy(`ؘVc\Ĉ(UKeL L:M\>[]3:W?ً`r1ϼxBy 9GbylO/>ُyɧyPr$ɋUA) snmje5F,M}޶cZ-2dգ vOS./` b!ZY6%s_XkCH~IV C\]UZh抴 .h[ǪcL`@ Gc(aX!'_fMoUb.ܑV j%VrZ/恰07jb=iiL,gR1ueK!S w_Eb|ͪ0 b H(Ubr6ENe \u!D_Eミ5v^ )2$oyaiƨP֦Ů妑Vj=ܘf1#n|Ue"֓ס\bdG?vVUK9%Pncͻ?YuS2q69;˦UcxA&Rvyz0[tR"6!H[Qul`YknZ _ش<@a=h;ۘ;;`s2e6;oRt}slf> w)SpΦʡ CpC";o<noY\Ж#\h8JmJs2w*|~sG̘YU!!p;7>^x+BB!攺M`;7<**c فZzI_Kv0eV3AbsaxΛg[sG@U5ZpL'%cM(^33c)|:DglUSV/A8,5IsGjȖZ,M{;xhUju# [90q2I\̉WĩeK47~rEt1q!=>){xoZ5r7MYDANbF]1E޽Dx+gqQ EuȐkmj063b^H&=!U,+Ǔr9D{.E)T/`M˙vcW)LD )6$vr"icDT{SMg> xB37彘"a 1׉~?Ke@:~Wj{#~vG?1L#?䣟ԍ6`r̦=[I9mM.^Jqtr~ENe=dw0ڼq<НDQlsSEiӄHEɔܴ)ud)4&AmMBWW\f-`Bh {Oq.!̀jmkyF2/ \e87ԪN~-Mj>4fP kfk 4{>8BZŕU|* h5\W*]_tâ:[J&5sݠv?wÝ0W@a'kϭlL@OV.|܂I׺}IAy p{/r"qNֿab\]ϟs<(%3BHp\h3Ƅw;gu} YMe}C{,Qb-.916f!vI59˨7f>$${wEi͍RRۙO0]ܟ$G7vd1&yQ=a1!VV=1i퉋RRH]")u3 (C[1vg"[ynƍﳶ:Id $S3I2j"0jv!2bl}a9sSj9$<@Fwݼ-Ը \$-͸(N^I!cLr$wo^n%1qB⋑}6AG*}N_dί_Oyxg2pS{U~Q/ %[,{Tb Ն Ssf=*ðgm\]<2i XL]:,>sM :{̉#b^s&$Vg6r)1;qSZĉ;j33VG٬VuswvrZco柃&kh%9KTN U5ZoEHTȐvaѠRUT/]RW<>?ylf*g M{.vJ6>͔']l#`}˚9[nacEO8.sbxBia_")iF<!2Sf %I\E4U"_+>Ppad"diNGV5Pb`$n`lAA{7! ,MyyZ.%%*쇴TY߫y\lZGvU&[U ۬11+[z^Й~?_~Y_}.yݘy.slp EI4EHtH8d0[2RE3Z}.UkL*fUzV1f ݵ X9+Q3i4g0eSfbPK :\Db LtZh*9z!COj5R\ E bj7%k^:!K"Ly~(=3jWU*:H%svQ@G "G!p lF@rh1e.RЄs`ȅC]ɧ-_˅]4I<*. R ,}#ETe=.zp! + VQ=U^ޣ_:kUMkJNOf?U]t}řq.댣tJ.Aoae_ 8KCnњzт@Ml$^ Va:j秙Ϗ/g;rQ؏P*Km9FIY4bbo=ѫuHȾ;7Ðyi ~9𣛉YysTQIb"ǓS IȡVnBH\O)dW)Rx9xbR{PL3L/ؔlETIT9&.`v107+4GE.Kয়o_t9Yf=}ʢx3F.J cٕŐȝAL ɓuVX%Z9HG+G\Mdk湫I{00=KA)r|:9hV0z'J#EQo+ay%%b {>MnVdr1@}aȌawXHKJ!2HLA=n'ЀHIю0|ueA~U8{"RNX9u^9tkx)Vt[gvs2hdn̍.4Mh̋JlK4WaiU Gsy1 92fK2 _ ܊kUS@sW",xpZ*rl9]V6{^ٲ-7k؏׽ye_,,/@@6Dm$KV(eW}g޼y;b4Ƙ+b<崐{JgX֜?8DdɁDJKk:]K YW4xfnŌ=㙤Lt-gSs/T>u:f8] \_nl.lnʳ4`5D$|4Stust^k’CFZK6-1M>_8]ѯ&4.q,+ i4\z9\4-9=tLue>x UӁmc$fjfp{;~s]¬ ɹ21k㰘~x\Xraf,Fx;znΕ36Et1Ͼ2aܺmC>{8Sz;vi=+&rFL. a)MK3pOq *\ys,|T7c6)QHBζ!*U9, $0;c~fmr}ǷY"o^aϢk6y*j6!Ze 7s6!dl$jMVֆ4 0b䮚&/6?ջDc0mlsSa@D9MGrG&YQi;1%_ RPBі~@Lc0cu b:,c2CjE֊3qlk}$Ϳl>TmR;s ’9=3/wF?=j1- RjLaSdg~΁@ U.Dpuno2߷쟊Ɯ-t4aL4N1'v)_w[Eagcz2a$چLH 9aYa<2nwxtUOC:wp +e}ecBCAπ&[N\*)@Xu@ ^n@0œ%^јB2otB`״YEio衶#c^ԕۥz|Yy Xo۔m&smw7{2/uODpCos_S)K~:ͳ1pZ/`oTl-E[Ϗ& Ȓd1vs9r:RS/E@Rm 127e&ȡ6Kc)p## |0Z7r_ʉ=Df61y*Α7~NK5_jj)Shld?Y23uh;)a;:@H`+hp DW}vn$z2jkѰu3?ghZ^wu lhXuH`ufiFCV!3"@ 4%uÙ oͳ`1W7iVFWYϻnYNW/4_u=q:3q+FB=34 ;;cעOk'X-~݌Hxr<͇o8_6׾9/bpFu[79W<\nCTs9 Ѵr$)aNBJ8f.XWhs-8nM 4qc.ޏpo# \e.=B9ۦ'&^L\M6o0P+fi%+1V^⺓a0nXR|#v,Z=WݨRl7cY/NE.^N؎*1`iJzv:HCu jcTґw,^_cK]mX;hϿ?(X$sju37jYF Ѻ3-T9V%"!8Zm5 <: h) ]nCk?k܅yB#B$UCb_cTc*?>d`\XTthNT>cMКsю(4Fm:MTy: QRAhźp[ڷPFk&@w^غˁq0ݩj 8[k}߻fU$X>ZIniMhu4k-bXNqV*Dxt%> c;k!h3!&HuC0qJo[=ܡeRscO+HHɻQ[tʢz +F?<R[EiOs` )Xf6XI)F}5Y2ڪuÚMڴG?> lRkaQIx~=E\^]s91W$RJn(9\T%7gTR ڻ1z2]P5DΔ9/\MJz-gFuL;ήq;=/~X7v'V! BxD`b7|q4 xvnᣋWۑOv#c kbؿ/F&m*3-9Nz%:!x['>%&g]jA൚v-%$S2ßZbxsS"|{?[cgha74M(mw3Yg ڜN*(.f ,WDV84`_XV١KE+-X]a!WϗC"֍b<%.U.u"|AE"J#ƣm0ـK<~ēM⋣o3?Ǚ6f6!2ċcClHhMi&Tɨ[&` ?7xLߘoƗqTh ¾ƵJUaQ@*dr `]/Ͷj೴jyvaf/Qئ\w7yhBk1^1zD5QvHeHVA̬GOu51z7G]?/:Ls6n7%Cj SdE'qq-)+%ss3!sw 2.qf / 9U *I.9#M %_ޑrOnH>}B$nE݆Hzxz1ɣȓˉwF1 ]2SFU Eľnf4sMwN0f$Nup:D)z)qcܩ!?wf֡Ntj;лvQȪ\vF呾y뎵5nf"߿J|z/~tş>p_$.UPVpsi`^$ jlS][P+bC p.y4MSP*\ U<.! כȎHU$gn/1Y`HIX.Z컜}ܸkPn!77 (5xKÛ~.0b%֘=v_/N"O6!ǃ0ph0%zC!rc 1+]`ykR;3Jv\NfQ虬R4RF7 ^=7XW?z_')UHEѸɍ^ցZ]d|c$N+ɣEo`j^RWx%٢CvMP5bA; mOFzi>w47%Vu/k)x\EzQ*ĐVYJ0@9`  xNNB0pQQ}0w8떪Vj"0#6LOBh^:ݻd`|eEX-JE/6r4ՍJ`FqӪ\/o34EgyWV;W;S`mv$@ꌈbLV qm 0Tdީ;enn?]|i럆 l)(f?F 3zĴ_In}g׻46Z-xFz*$p \),x c$Nt0FusNQ2eXaͱo4࠵VkV*3jwYl.*Hq @h˜)@_*)W1W@yX^̞Kpr_7 1|"%r3p1F$nbl-oѪ.j4mbO//(p&>9s"ȡV£|oJ|:]-/n `TVnZDZ_Us?`\l7 B# 7rSqWӠA(ʹe ;s? T V9bJƥ(yzaLl.n%kԅQ4Ww3>uGu]8dQՕr+gtr,d%8fJl,T v409z {;ykvf8ޠWp8Ҏw왌3sa0 V,E1 \WZ,b`I7ۈŴ%{10WEE:XtTv0H @Qvf1zs*10 }0&qbpHau%6fBQX(ZWpZV214W8V&a$$:KLMXH.^gj(%9hW5kjSQ*}&^\'нorH{߽6uV;k5]I 3L *BB-DbQ(!R E[8<x4N#Wx ͯH0h>c7'v5.=5y›Zj_붣MwQ jXyg;^3|x*V#϶[]$ < F i Gik jiol/fhУa>Si!^ IDATl a`%;p4hǵT"1E ٦nM6H0DZ ɵs&mơ4\$Qs7G_!Ywۙd>?V~!p=E'L4FLnTsS܎ը!2`"GwW:_wKavMi7O@R*E  .?iV Gam2v:P(wUlQZH[g:Iܬ o /ogmiXwt9Rdv;]0Y7NV'Uª|7vK;UiMP^׌+blƄ./4oie))vb5Q Fk~dj;Fϥ_87@Fn;"" \f޳q)EXQZ rvݺw;~O<״a 0G!)f R&9/E:vy6#!/6AcЄVhssm$8 1 tɡ;o>ElkRR[io7f= `= !T?c +鹛a& n]mk湻o?Mm,3YO'4[:tW5o] W:ok霶R(15T#σ8|4ȏ[X*wb(fMͰˢ\Ax>EB0rfD5D1aG)١񋹱K%wbOAY!L܄c3 cűx[/4=`xT0\M&w?+SSW]/C8?: `vP2zM y+6swQvf*VJmDIM`bijxnhUAĀbsݪbכ[[No ‘:PWM#ӘHрh)ƨ̥"]ʬY,OR )5NV܊uM)mA%"j8%Bؚ2ysvWZN፡*Q*126JU|eTղZO&hQ4>)r ,Y bsYLUhx ZwKc߯oB<&\gohj5yzkLbp)ns^$Z͕;!ZA40x㻏3j軓W֟ok$WZw };2{`D|o[!0c"6`& 7sfAdκTI-wHlԶ'[]URlJA;1ւlshVjbpmc:N̵ Z3H5Cq!"6G۰LH)PgXGNTWJ>]S^υѡ&CW~/<'㒳.x SЩͭVM)z6jrnJ쒁3A8ݸSʀf[)` 榌i_Ur1KfM <Sb9PY8ˢ̌7֕ZZcJR>݊6N pQ3?O$)&ɾ86@j±5${¦gX*S7cwPn&ϯ )Bpm>9#wM(H`{NW>u`z6zW?;ъnrmn|apw|>ʢ<&X\ʵ-S$7r|hb7^^^2snSIE$ANywPDƈ{|m9iP?=nJ͞;"c-<WNQ!q.qKLҦ+x`V))Z)Q1E q':~3s9N$%oia(noG?Xa|4wz}/f\o4$}q~7 Ѿ:\ˎ!|w/sjt"l?C%bSSh\N#«Wns!1$iإȣ4=79r<#!&^/3Aa7 3A+A84vX&3a2N^7 c*ի,Etnx]5V2KEHcEs#7+ o SaV.y6rKSUn쫚j9)~WG~|W f:9!@%8=w|_ ڟ`Z33ޓ/ܪ>[n9RɥY4QnhQSmc} S.Om4i ~@ a%786Mw*7s< .>7rSHcf;~KvUnd]T]q Y!*tSED\m^SxUM\ e ll B(3QUS WCd(|qۙ8k\LLCY9ٹ .OZ3wZB4>k;-m6}|9rHkZ.upB)oZνnyUTM(%q+=NI$=)Fb VafL*ZOkl*6Q(1:bEQdr5'ZJ ]8ܬ7 lT3ʗC,9 8"QWbYɭEih͌w"t;Q|Rc)!ypmR{έP*i5.{r˽5zjֳkm h-r g-cr5F($Bmb2m/>sk&@h@ k6QlZa_\[3 |-cʰYZ*cԦzjีFuT+̕ wUy$> < G~~a;S33tVЭ.Qm6HwڵNA `t8؍aw@~ mf\ WDžspEG k8ZL5p[ǪlŲ@}8XlSTx4QxufnYvT-#P.%z4~:||ux:\;Op:vZ 5=u{V nkDspo|'ř8wU4цhݻ\"L'r2SjBg[̶^W;-`{Z7cJ `lL58p7P b)#3kըjYa'D MlB,M)̱Ts1ЍgֺZVQɨVr5GPR`1~Gd T"U!Yҩ͊2&ORLMwήR}f>M\bd-̷f^~~is7àzVCCCg9,ޯ=DSv %!Nsܜ.J5:*ψf0 S<ό5Is>»scr+û]H:Ӽ'~_,}nj10>?z v>u m_TBT̕O\ Xځwv-~Dbp̭(ҵ Z4jkZY[ 0%!bdiJb2`R]RZjы %f}'qx*h/9TJ!Yp/E Ev*lh vMEj\M`?oU!XZuCPlJ֬=.aIW/4v0.bl,N1",2FM [kŧՐmHzm%٦4{foB72Yvs_\Ut'BG4le=Wjo0=狘eqiׄuF$&T#I]+LSxm,2c1ܔ,(4 G76[2ExDvUJ1mxq;s,gSO|zvd; a?3婽#M:bڶ)>Qgusvo^~ÿ?ⓏGHcgZw'G?W7y vDr;~/ܾT#ח;N_me+9g C\)"9ö15*BHZs'Wu7F IZ(mHL1hB׷%.I;6 ߾q5(<΄`FD:T C Lb\+Ihͺf1XyY6)h| "Mg7K5ڜeD״QXr?ֳ?E|ח<8ip-xto+~~al!r3Ӌć]p?|(B1k/TEu(bObpvbAB0 dי_˭ͫY:LSTK1cQ3ş\}LQ1PK^?u Kmb 6J/)D r.BN?~15Gsޮښ} .|Ug-ŞgP1U%U.:ջqq;0v_:U}w ޴o2V3BEppt+X4FzIp0nvXwR #D?փ`$&\ 5["0a<͇k۝_O7H&4}O0xl)O&W$}*9^VNDu?IZsg0$@0L!Km?o~vCp" ږaK&$o$B F A,gVU[/ 8z3ynFQX Lᰵ4OlpdUsh 9QTY!eRhᦧ̴LeΓtJ.i&w6P=ԬM)򠿹U*^{9A388 HjG 2>X|-sRI8 KZhrV:GuMjyt~i_La vcucrj7Onf[knl!eoc.Uh^nJKsk_ppщr`lvPO⧷lj&c 5LZw*a }"8ϦҰ q7kshO=_|y88I1 R^`,8MAݖBث3z6SR P${mSdJ.fESq^#vk$S$RV]*ŵ^_bY&+n"9R[sۨRsw BԈ3ݫE]a+*YD.C5kِ:z9mDӵ5(%fj.|r-ET=VӸ~ܶy%{ӍZ 㰠6> =JLY~Pv'H~טIPɪQWEFv^b?ZWUy>J϶Y^r|> h]fORR&3?SC{o;2Z{C)X! k 75D00ՐYZW!48"A"4\b rN.Fo=qBBޠr4g ɶ ޤ$AfrIAL N|*W,H3ѿ{Hpm_d9eHy5Lf5Oq:e bXT25;'2 G*e|7-HN"=t{%[*x~!tllmFaQɗe[`}6s> s!VMJt Dx<v!1Xj(tIy UzLήj31qz^?s:Koh}Y6x"Q,ޮ~l0L m6UhPsJw+bɰz֐m؍3îB>tIT6„m8O0:꽰^+NK)om*)9m}E+j+X{K5w3DT[_jبA^ qgZW믹ͫH5O#V]v㮧g%gwlD5 j\Ee32lhNBf4Ɛ+m`.0LR6Ug3B3kHµeL1N+RZ6?!1);(LjNWTR^Jz,&BNIonRNB8sJEi\lhT6%Z2UZK!&7PR!u&UP?5ϋ3/%QX'u:oUz!X;|E{eWDhٹZQM:cpR{yp+Eo:xs^&85 djCբBgSֈ"4QExlPE#,<|0ps4j"~ZZ6ސX#P`o\J|sJR04M\UAϙx0vue'^ib^`Y7x#l\ucA1BJEa BQ H:K+kaA/8jhp13['᭎r fC]i&`cǨMБ7e<:633x|3&O=J5a8Zy㍟_s XbЕI&!%3ZE8^w|yn)f$㎇tp{9laZB]7ZfIRF)\umYq%Uz66ߢ^H\H)Y]L{^wZЊ;gU)PJ*7\S)u>_SXuq QuܣXHR-j417 V LLV-@, {C E%[dwl2]G[Qͯώ?gѲ~kQIRYԈ$SYƠ,0)жH:$:=WKGd:xޔ*9ɽ_ Uy>j hTSSg}ʳ'Ϲ1lۯ_u[Gk:?\{7jf,%eWcZ@zM85ԑMJzf2) k>"Ai,6:T VNS XtCk٬/(m8  .L(FzK ")C*}g;*`ǵa? Ub̥PR!0T˜3yߪ/ yqkP315x$Iu$εnD9XW꺏` CVح6n4t1(R l&t MKL9M:qxm`*=KZ,ZZ,${hF@gEXeFcxijNDG _Ҿ_0Do ]m]u!QMEBudmF QYɮf+5N&gQX/7>&5$Jnke-i 09z81ښjBuXX[l&ϼ!F.o,XLl =17>ٚ8JhQcE(YB6 xf{:3ޛj:H ?ow_2?uXtTͯQYAH6\=}sm\82:є w(X-|n7?k7Jm̥0۔GkW: SX_1[ rJEL}& eb6uJJ^PͤFX#5ߚ)wͼTRefޫTW13cn@))W$V粖\v[MvkVJ#7ـ:j0i:{j^^o-\~zM(F={WMyet'XJ&s̩ icƂØJ7&hj5]q)s֯ͫ׳XeiFSF;wwoԝYhE9?nkT]SG5{ڛnU*aN bAbfxKe,mp'v p1T+o8DnLݥHJM+&n7Q Qpke@bg 1H?@`fs JMJuM՝ٙ )ZpP˘- j̩ "l1ӧR h%Íki Ӣ#mk15>`b)a =霋UNUs+Ty_iխV̈́:8"qalFQFo8P`SN2LXR Je 7LI7׼x fX43&ڤ]ճ҈06ԥVdmҭj6S"U3 ?=T""!"O.z7=}G=;Fb-xNcrC\gVEml=ٻ6S)IYeVΩ9+q}v[tS50kF.T1$J 5ʠ z>LEj.4Vxi$n-:"[O.52 :k`92l2קWg C1Eİfvk9D)lQf'&)d0$-'9o/楣)w:=n^eK6m@u5$jjX;UC)4G5{&Bn8C̖!&4PExxbwƪЭW[Dqaݢ#y5?MW_¹nXG6Ĝɩ:sR<K*:(.Tڽs5nC,WB̙;4aB;]װ8-ئ8\ؔ 6'{r݅ =9xch47 8Б61a9<˶ ث!Q*yHeQFU&1?9[?)i/ʿ[<+MK{?gl, G|#U 5nH5=s8k4;ΩvK?7ӶjIEAj(j#d|a$uQ/e)Jj8VՇUb& Jfmr5պZ_WD)N5a5ލKd.{(a5 ^ٖW#;=qW?|DZ1$M*,F6|H"|GRNzw:YE-ƟgS> NF*ns6#.%Ux; sL=J]c5JհWUvRM \@NW4!Z:v}қۣ3E&Bw)Qn/vkqMT^1(g= |G|x}&kohlb'$J3 ޙ͉ˊ]YikFNk|RЧĦ )s%/6tUOJƒU< bF^q /9Ǟ~u)mhci* Rx5OT{2!XnE [Jh5q,NVdGca-يp9k5Ap x\xe<2OS"ɨQ0q! S˅!s'V}٠<Kk<޵S#1R\m e {`-Lfg_W^XVÙ]62*PO)B2^Y~fլ^c7j$Lqgk(F=1uq'OcӚo{ݯ k3N<&m`m6#~ƺ^!6(9K=VwڸI`:Jo*U\N)4ק 9) f5P$7$<~xʟ^~E~ջ CNq\hn+KZHOf 5EX;0nǬz`!cPB@6sb|GŋM3%)X 1jf}U$x'f?{M]]{kdŐ2Xk8#?W;=cuAf3N6B 3 &c.Kw>r* د?Gݧs"mv\T%kjXubm2jd䆶w?5*6R_ Z IDATb+պZj]5W듭K͢lEƩ4A1yJ)ڴ7qϢO5OŚ0{_ܾjU.Oc[}lKᢋ8Evk2 F2Y g1q`-0 "jXZy.<5p׬ƻXhN7KKRa0ByPGerRゔp| =.vwh 9z`F8 1bG f $t1ugW=#̧ /__`0ó *ig$y т"%$)"Op.UK!v͚z\Wj*])8HNY(9bv5;3H|nPMWB3 \QnDBpT(J@̓;GT+8m AffIW8jf fJE|ifghJ:SSx8j浪P(LG^6ᅃXͬѝ+NGd,:jU:;fGwq6R{T-DEj,fZ)u?Wem*D ?ӕ0=xosrw9}]z-ՉtGݽy8Y[E;~?z˙mXǷN1Y㰶,8o*EncPT0.dO s`%E^Iԓ8[=zro_[phɭGa'ރS|/R n 'Jյ:E)` z-?W'',OVLp0 |s_' 36%SrJ$C懂%᫉8U: ڤ}Em(hCS!~~)O{̦P">+eu^n/i@q 9&1sY՜^'L5*!̞rgS[DzK YqOZ$^)`I ;l ay)5ܘz^XNs4r|gF*U؅w}jKXx,+oӋ[y{b6p1(UO;R8{'1ִ|H턼w̎Y̩650QX ]*ty2n }VC)UWDkai5Rծ ѢQV5X@7dEddDN5s0LڥB/J?Հz)m)SgEjRpF:|f[ ܘN_eVQ8(l MYEp F$4H mS VXbN7> `OFkJue#y6km>똵SzN#}zbG XLouwOţ?`ł5{3M\4Pb$^)Y dlֽ=3/?`.4|os ܾvos6q͌SgqBpFLF%@G-&hi{g"$M%Y$Gt8 4no,aZ֪ Mui=> HXLQyO ozșm7l29glj>GB:[Ms b:ץ-Ƞvr}Lxg m`Ѵlkt"5|D4KaV{d:G,-T Rfe5olgWs[jj4sN.-0:&e?Yǂ։>'< 96]W*i1Ncxb`U 1xtQ)Ҷ!i'O9 MܴFvo# lMxX5iܮ)8YTyıˣIL1I5}9WDC,hQ)Yf""I05ZEkkj݌}4U4@k צq1$Sݞ:syTXN**rr3g01J[%Q6ڢMI[cvv"_F^xglG+x s3]n7=TEy}[8{wo Q4W?^sy띟3̏/p@u9_aMf:mHE 4(uàtlQk V9R&vRX)1ʑrܯaviZ&c8IQu^"L5 Ax8DDgџG_=kIܜ- &ġC&9q?7_-,p!& ?<ۜd̓ӁhXG`%刡h@~/y:qtIfrp1պZ|]5W-o9*CcL:pϧg|k|TOQtۏ^kR?8iRKfX8IfcGfҊoϦ{B,̛!#lq RxqްxbE[sҖA57\`8yG_kr[9۳ yWe6b:CFH `<P&a*{O!("zGʉb,TXJ-[x5i9*" djT &Jdōɔd-].<1ΆirҰ2O=1eLB0L&E`" '}*s2|p0)uhiYwWNh)s3 c6iA,']$RJ:ViՁb9F  ȴfXԝ2m,'m: V]"ͩE4y="TM'Yv1C,gxC)fKEU!Bi_3 Bc|s;RQbAYw! NӁd3BW)b.Ņ mjδ}9Ehk%'M`,N94;psQ44>Hn6xlh岙N8RuC~w{5i"X/-d7k2OXL8k<^asK&CNVH)X)60R?0jeaQMbe4JiXg@Wc {CXoVf jSQ!g 7D bUMdIxcqBG+aǏ:7!B0|3sm>ʄ/}z?u|>!Z>?-S{<W_m?gw_X/wefS֑?7Ͼ8<{gջτ! }H)2`@D}*VI1$L:F6bqa1`_G1֒Kx&~䌾u4W3J0OW6[5'<4+.9cqt E5[Lkxz:as`\l?Yݺ&J`)dB6dPl(mYh_.0^{?Z^>g6_5պZUy-sxs/XI,Gv;-Dvl69_4F;g?.GR^RdKazRuPРj1gJ]U*9TZ3Y.Rax5xl.<* Si5-=fbTUG7$u xS ?DD'976X j<ӉE2N:.xyAyy(RO*႖2$$ը ɣS )fmQ=5U8IfI whj]xGXλ>jjK %ZMXMBJz.5- l8_gx漥4U.Zu&rgb0( F2끦̬W5VgI$MsƜגzfZ59N齢!+}w16)g-T㠚i8ƈOՆ j 5"@|dXC[% 3F'ơܞYJ1$ R ^];5}9hzNM*#Fi&^s8[G}kD!5U+iK4R .s5>F3SQcL >mVkRk eʽOݭmL:&.F'ԝ;<9rƴdݹ+ nϯSL3[L9|ͣ'<|:F[HuNEѴT !4AMI9CםbK%iXpQDJm !+j/V(qRLgTF10fO~|B 0[w}c^<^=~ȃ~?KŸm޺wsװo}?w39q[2g~o1o>XGVXb,'VQPWRo6"Bp#"X͹QK1l ),YL~߶l aӟjDPvBzɣǤ=fm5:C)]E6|'M}ɔS5 ~+|xzΓtvP2C`(GU e-vO\?!x7L_f>Ĭ6`H9BJ!Ҷ1;|xop6e̙Mfg_&̓e_]j4'ZeO{TW#]*̮:3v;Rs.;>sgo@EVJ1x[m}W~@k-a1Z'ka-6&ԨjвY8SsTXZ)ܜ Md Zo92G;(NfRb;O2Kƴ 9]imΓK&utA R ֲ4>a8rehk`yF38s";4.g΋6)\ /¦Xɬj>1&SLTVwWu+זN.Ra '~`H`L5bXXyL,g Gs 4p^uM)Xd\BB54JH[JAUC%L SqjPba 1\)_yaY\ו^*>KtYu:oc*bhp5ҁVgzJ{)FMs&:K͒`B?`Tz4Yz;d3gլbsmM`;SA0Ms˗βNi?aQgX(2֜IFBSjTK>ڼH2'?FTve8Sq/E/wcפ4h̶7:2WT,-eǚb09/N#RI Cbճg-M 8ݾ͗?}ŋwOW^r#L'>8&MC.9)2 }Ll4 1ǏO1)fs)aFgԱSD#옗y萬4=ED&I)wYM>po  %/#ɒ1W^Gg=O~go˃Y wP <>d.J[ 盞Y`iZG ]YR@ 9 Fnzᄩшe&6l☮`AM6}G,qwq:u$ĢV3{/:緦C&1nR`xfC~i<7Ox?;%4 7tI~ʬu9;w :8DϟPVيhmN:aچYYn~ZW㬫Fj} &ٛ]&@"չ_mAl'F6Hr|lʶ:~ɮN^@uܽ|-3q S8h}VgI5YU.xMEt{h>a,Lp4֑a-%z:6}H93󞛇C6H8o[u8Yulwc臨$n:CJjڜ:ݬENZ&0f0k9Vs)q%AJ'e`e\gabi:hT&)t?ks l"{/_l,'Z瘶idˋ l&a9qB4\On!n28զm6`"皣jԌdу`ܴ~`73WQeSKaHRVwATw2].2NL7Zߝ&j eHRI35Q[ي :\q֐e5'ZzN"Q^!8E5sj ,Ģ,Skp-X,I D?2HQFXs k8X$m0Ie _ōEK#֕BJ(*"F2Ahn6m4E [pLKZ|NS#|FƖިHdf`ǿַ'LNND 6,ٻXLzuź1}Η>MI o^Ovsrp;߉PH%2/+y@E.rMNNNl:d("ӻ׉]{W0aڶl6 CQ4j$4ZwXq%G$[b;.M=o H(Rh#߈+h'"%H H`}˦;VuM7[U]dߑqUFu&Q+d4}#'l%vgjݿ]x nhTQvp1{ϟF+CUOcGm}B3BQ MRN?! PE "9 nB&&@UacT$Qb5 я] IDAT!gbNBd:4Wwq7¿z\Xy!0.&}^Jock?i[<5툺;a)clݣ_pRL?ANg_4 hImrЙB҇~g>)X? -ͳ51DwfZ_6nJ#S#\IgVǐRZ v8_*x.`ò+y}sZu˵GGXqa6c0J2H)Z) %$:wgX>VB\|Ԋ\@s¬ML3V,̦5J JPr7Z&FMٶ}@Ufpً'%B@c@>}Tl >]GdvcSdP9X]6އK)3 !ᅳQgS*fC2~p]q>:!&\t.ע<<Df쑌1XteDffcfF:6EZfN|:nƕYTDGЇ[/3ِei ,*N}$F82S="g3scb>E WD.dV-`1|yu!$F HHqf 1:935GDLqd(P, Uvkz82WPq)MkϘQ+ŵ%*[m1i\0P"9_mSfxK~G?Hbgݚ~v8$EM3îuTdNҬv,J@Q9ɝ}QԤh߼a[̨b)X =u8 QRנJpE@\=Zgywn컁"YfV9-:͋O0ɡ"Ć$vrWR0%g3f2XG$5vO^zK>~pfK~)]ӐLLj!m f!fYmAI*,QZ!֡|]#'Le 1[ 7 \G]5ѯm}~?7 ::zt&88sgԟ8]/H8qij{̗'???8O>Q~ܭ۬(+BpQԉ N?#f~C eZ+QW[y;ڸs\ޠRFIoIb[7 6v>ӫ}>z02{68ϱ|Ĭ.(ZOLySJCO0QI! .{"#RCl:zRŇ/ {Me|@Ƭ UEB*1D2d 4lA+Ns TSKdRTaKI$rbʒ!\|:> pY)$/7;F1jQ-p tS(6L%BĢRչ, I=$4)8Z!ejA!(=yB^r |y DRy{O ,* 2eӏܺpIZ}N&R|s3]Dą b}6NN?V*]b\siYއs!hbYozK8IX@,%bEg(Sdp]GH%Ha`X(ݹCQՔ/7mݼ머C#"L5Q ߧw=@yɪ( yrB;̎6;~K0. ͮ%"^>]G'-d=g r^34;̶ qrL1=Aobp(q ]\K#doB L!Xg!)n"[ouS$DsmKcPcoٯWtfz }ʰknWnMq| E=gezbZkdUӯ.W/)SK` PǨtńw~?ߵ,$zYRj}v܎:nJ:(nBKuUPD&MShKXP$YI2tCQMJJDkG# 9.3~!q_xvܳn-Fg68CQ}",m+iQ#Za'Lʌh%Y-њHŁ4P \4dD!DnHi"JGŨWY)aKam@6'P>N *\WT:3jEy)R0H_X_wF5Ff)OKv=>D c8;Z7TcedR=' U;^=FZ>RR(ˊoFVo7%TrR͐^l\CʂŝfS<_MJ7QL1\cLvaKbp4۞iM tѱ}~N@8]Q/O(*\\gi"TqMfo G8|ABe$ ,ON A= w'gG|퓻9rʛ_0L}t(޽O9{?fУgS;,gs;1z4| v-мq'W ʳ ؼd{.ys_gU+k2u2)oۇ@S$Rccd"FQK!J@Zp& Rl gYU ѡd^.C=Ku31lB_[%/6[BH9AdVk>jZ% n 1*w`-k2p ֑GԠ`*U9*KLzI>ǂH#`X7ɉSŠD$I)]nF"C`ZhXVQIdʟu9 >d#|R)_@:JQ~d }^]np sUp\ɵ]  BRB|s ߺ3gYjc5%J}ѝ *L*)!#,6XH#?e [S`VYvbF)le8.̩$;hϞ8k!hslK)aGPB ocG;Rt^̎\ZR6!%:^w"](:]]%h}ċI])L\)39qW޴\i̠MWi\ׄ!' ^΀ؔY{ÍǑ\ܮס׃TFcO7&!h=Lv18om:tT%Ӣg_WJv-ϾaZV %w?}8:nZժa컆}Ab2q`޲k:JFOaf3.PGOhW[Rp,_lJڗÎawUYS86Вlŋ'!prhz+ISg`q:1 -J)VAS:l-On(0 7=;η<]b:fG@cq~=Q})TLoXw o;TQxR)By~ϕY$H7]]d2/o77pb2Ubp.{Sȅ̛Ww/dg[En,Ь0yz ̀%ݏY8)55?6Px?ֽ{H$>mVO=>r1;'.Oxx2xr k~!RnIEv܎ȸ+ͧ ෼x#FyN$^AؼJVF^P6z[}))ޑ^=s l^6 q֯A$2}N@QF§HJt|3Zh*Hg#(Y|0J`kmD?$n< iZ_FXV 0O}O""\J$D*+T]S%T {e0#laQ )"R)QaDbplR ׉K4J`}T9t" vDJDބwu;'TWU|Cߓ"V#'b(8-5_?`}R2/$_6C<&A+X|@)P1$LhI UxSfd/=?RMchN%uY0+!H95FB'ĄB)cPf(|DKkx^c"#:y`v)2#qRg3o_`CGծ,kێ9g<}۳x@3 T0@ [MCP̑e@ oIҠ /;I9BM(EvCo1hEܬv+ڋ7LmYm["RLJ&~ mn;EH o=M P|"Fx1NN0Xv6@k0uM} 6)f\c1?jF54 "ҧHt=Zp4-i; ;ʕ(J\YJ+e J n,\KCLNflV;T2=uqtW7tHoyLa_RSA@]$)x ǕD^>}Ezئ=?g",JNpmH݊دƒ3vO/׾cow<[#1Þo~\,f,W|?DSsl{gr;n?lƇDwy^aenTmˍ{yw.3V`7!Yl5$2K͒RYnE+I]$L FQt fC**R/+DYµ0`pe)l"9PY!C 6eK!5!dOZ#OG5"IIT׽g5xE {3W0 }LdQk*5,SMB nL`&JEsDY'-x9;wTkyy}⤒,׾h#GFD* K1uiro?Qm{HP}D% sȵ($J$*>fya!"ĴĐ+[M$F6"J)f"Q(E5Mr(#-b:jrX2Wȫ0pݱ'oymv^#7;1<:_nO'^'7=o&',3#|Cf Hmmt>X`W4pӇ P 4r:a%FOHB9$!}OlP@*::4%}B7LR >yIytD])Hv\(M;0HUdM=)ZKRPfP>bZϟ{ɝ#>}@5QL&'w00 +ՖwTU̾~-CleZFw "Jf<>b!PZ!"g[$iޜ#)Cuvwe7M&4^l|5;uGK8H<SU|!i YH#؏;O]6][N Z1/ D$XhC\%I0Ĭ0<-U t105up4 {v]I+D!*GKE4n@Jhgx)I҈p~Z+DJsFoB yZG7$!*2yE/B8 8#Mq)iiG}f%̼%c &Di)r@)fu8LAh1Ne~ph-I2bSDaY%6|S)">@`̴ 2(Li<sHr@.VU*C@$ QQOgږ=l:ᛧGtEl#wupd䣳T+P0H"1׊RJruYL9K$xβ0`l^Bɜ)KlXP"&Xk"E&@ "7n&b).%, Z )#v0 ( lD~ӱX.(Lzp͆}?[gGt6ѹ~lLȡ,4?&$\ E] I<'HHAjHT eIp %Q)3ߡR#$T)1yu@K72W0.bC)TtV}cg/ADH88rT0ڡ9XhE"QDpH7y|ce%CRl^ ٶ pH?WaqKcV {8_,5ʰY]o݇o>1GGsGZ7Ha4-9[/$xǢYzJ)зGY^>grz|z6ϟH fExk[}L&[v@1K@90fk%Htz;;[vś?=YK ]ibl,QdZKEN%x{Sboז^ XEBCYkt]2l^tUC[urKbQ]C=AEbĮ%JIt, 'Mkb2Y :u Y3,\Ћc9vGTJ-MB۳KC7GՂ''|O'%i oV7/_e\yB0'.;oslCQHJ(fvgQ'D,Wqvr哧(kŖ,b"4#M~c?zrYP]p<::辧'bwhY|V!Jϩlwۣy;+z@^ <&V/^  ||B09E6NJtS+J$Vd6I]q6%fFev)@sc\4˺,}لeU[D+CeHhYbC`@(A)t!EI Ƈ,93Ig3RBh c s$(ƹCQiE1cSAh2>&|Ӳ(E b ( ɑ^#a]N%cd6i2 (IJЦ+)PMJzϧX|ܙ|2/E3)sSRd>(c.x I |u$ Γ<4n!xہB< BIlH3)N $ei ߼3RR *DK"6fRq;JY9RQW)檑Bt܃SS2q!r-K#(%CcVQ_<1 #KR\IJI̳"ň)`PZP«, +œ.p)gQcFBD)Pl6~O\`CeAr1>` 7~LjN2T%?^=GٔG?'Se<|\)R3Xǣup-/^Ŏ(kIx_O3D l>%)cĶT%CR =ó$8>>f*C j,Jc!Cbq)`mKQ-蜥mAj4Xׄ =ROLׯHEF@+n |vhq6[D,O)ч< ٜ'mG!jGu ]^?6ȼ&S4y%G T"zoh!sa/~FC{wRV+Ԥ`q S; ?)p<αS;buKX7|zF%,'g;[p;~kt;)\zސƾCd6} :oh6~yXH]Q)Li.pmB C%$Qi͠=]Rdߙ{D > Ipg:CPTZICDw &4X\ahU|JІ.Foz>'N`4]Lw=F)\XNJ^`NjA)>&LU M@H9vRB%$Zdy[*`ZƄ]ok#2ɥIP6$fp"8t% "5 ROu vQ2Aug)L\d)cmDWMCfaCΙ^l3 ̩B$&ZtYQڸF!F@ %dէ|9tTI\ 5 $lG#Ig͏/,"EN^(dڐPDDr\XyU42"1J董r d w7_3>k?W'|;>%|u>&^\J)ujo[~dRہٴ?{>9*xٵܽ{ʰoY64#ZvGyo}|~xhdN bnhGJ"S AjI=0_f?GAԜ̙Sb Nj.ϛ T\yR :,OOw=_ 85Y68_G%UMsqsedO. ݶϪY^,p-Rs9LїW$TwR`fK !M=!JS|'ٺ=Ώ!}>A!""m KַMWUk$5zhzR3Tl޴b6s<|G9k40~쯣yP:veAp iF_BDuo\^Url4&F:xEN$ʂTIRi /Xs#y=x!0h!r_1PL{9G-( ƈP$hyY!2:3>ɝG'~Ϗ^mݏhse~#DJ\y`VA=JJeY 9*,"3Y G #.+'BdƼ k -H) e1ǎR\#,b@o/{ocIz-VY{wB6Q ) l_ /g.4=FKD쥪2r=K,7n(ɓDFƉx_*#QZCZq!b DJRc\:F@ Daߘ< ]8w SPITb51EDŽJHBO 8SΊ$̯"7Knz^pZ+tg\rxtz! ,k[T΍} HP <Y=1]Y}>xt;#\4R`Ѳ\>dk68ϕRuHQ˚.\i{ps&+ dA].5 @R>Du9C'IHCK3sMd@t׿>  A J*f0!R6JF!$DsmR)q6hi4v. =,z6AD;nv.xû([ԅZ ˖[bǣ4푺d~vh꒷-ʲ7^'8 8.UL'ib`yRU70}GXkLjgOSh?3|~#7?|>Sk!y *[ ej>!mbi*RU/"G?GY[N>khMm8>mY a$1L F h]"Q֊Wj?cς>~~c/WE`HL.38g429ч@%ZhBR"T#,Kyj"CD .c6jO֠uT(΢SdWRK|CwPHboV`hNU!tp-X:cWrLG 0R2:BKE3a2@D0JXRMxb=. #&Ĵt1aC@ޱSJBp/J|@EH.Ұ5)hap~@ZKN/V,:tLf%K(TfJyx8)q"(-P!b"p5FݔPjH)Iޱ .QM Tm 4>DZ6ц(ۦ.1Z,Y!& 3q# Lj|,7y9+$RQi$RR/F UmK'"e`6H4`C KĘf>&bZ2فT)@! dsKm8ZyOTBIEJO1kU`;BLEVQ Q !FDt)T>/ ~Bz*[3e`2_`rLQ;׷h[_ui.>P*%OKB3)KlxJ[o3즽5Ba017tJ-pXShŕ{d[udp=E鴤"{o}"q}ecBr4}/<>O"w!Oh4:|2I tr,1RrvqFPaLAhY;K{a@u~!)5]!VJFX0uɤ"ܾJGъeHg,XkCG!똕@ 2 Hcspu0췘 >?G)%̈́7_g;l~7lN> 'CgA+֜dE|uԦ䗾;0:!]$WvflvGw=n&: vT2;S %9w-Dlpl"(Ŷ'TRqj=6DȚZq#2l ɜ#P@3*ncv)k SHÙVL ! c%8C씆4]`(|QJw,[JјҒ QPe6"|$3J(J QI T@k{)'K؄V>&R4FG.`e"ՉPYSs=uFdZb[JUj.t>֏] !v4If2%'R3[O<9qa*.+0#tKm[蒛h JG &G6Db*].v kCHiR#`N 3<W+aϏDX&[GuqO]ȼ`^pm2%5BJM?rp9=n17wC>_|7~zM{Og=jof'nSsveg-2&u0ETȹ˾#%0-k6=QL@7`$SkK 1VLLiz̦3& PMtQB֧Ő輐|fZ\ )YwL&5JJ6C@H|,RlBB IS6N1ϾIJD" ʔcg^TFEħ~(f"Bff B`$EMH* fS!fs IDAT!HE%]}.LT#Er,ֲ5L'D'D%Aƈ()BD2=8C(mWCLQdX&4Eɽ͆G>k=1 ִʱ%[B$| X!1"]8lS*1gPr ـi(']L@GJi! .lJ%c`17`p!OYi &5gh)p%q&'.@j)66DFƍ#UA nZ2,VLSȔnݹM|x!>`U5?=KIgDSc̯RmNy1I).[7]ɰ]QU>?O->O'7`6JBh ~ ijJ6bgEQ5 l QG (=: pehS`vԭx흷8yop{9Ș)%pdN,XNxtp3OI l.YQiDzN.)h^lƣSjõ[7 6m?f<:w.GG|'J؜pqdj]Re@hRܔ|=:"_^0$π;!f6(f$9jmnQ+fͮF+ ]`JIFʄ|C1VFm:6((%8R?5U|U_^B}!{ ӟTn~ ?l>xf9 96y>؜WrѦ- olrp /$cL)12wc D!Sk#p|4r)zi>҅HKd6N](%E*. J!5#h$"F(E-O(XU hBUr=b@1\+^ 25B.OX zH(-QbYι(SB,a(Niō𨗬-%)u"6 1ZA!%BIlKn< ,yv"${*GR=1y!16$h`\ LtHR͎!ArVVr~6.1W0-Cm|>]IAOLa˜wYie/|bI)"׎zFq龚 zP%$JB<,BlUscCn\By?8B $NϮyOºU uw+J t6ph#;F t}bGG'1KQy X^A &ܼ9ezew~]+?SEY<].8٩ M>%xOY3ܾ ͵97,|pZE^ߝ`fvѤ!ǔ&)&1N vhLQ[)gp.UO؄7>mnEXSNH RMxOB ]UDa*T= $]mGm$j-4oI.I :1[s1h!TtkMzܺIA"_\4l7GG?|ש c3UA.5ӺrU1&|ͬO]af _u꒏FvKirPSܺsJS%ֵyowXo8ݴٔ(5pI7q): ( k) UHPhTc)xN{4IYK*=?2>3{h#P󊡜>9C@Yﲝp1"8{>-FH‡Dh-q6)kHlNw| 12KZ ư[̿舼W hX///{//G G_|(~<͡}z^@}+)R4Abe0FaIa  Hapm !v6e3 #1EaXII($BR*z$R@% W1)BhUzz6.Z35dEߣB%Q  EU{VY)I֏"VRFE@P*eDMuV>q1Z6CcT6@@Dɠ%R)H.l@,qeΥд>CU.5;֊ .{!јa{j [$E+NtcweP6QGLTb#JZѐ8Wgd&O"ɜ\ mM8|K[k9:q(@^FZq\Jf0OS&DB""e7\Ǩ'&iԒ$w$353}%\B35i4?2 eeBSV$Z947wx8)Gk4^e&@)EjwJ; w4[[G߯6[GZ?0%~RAJt끮u>* ik7JW{Lʊ;bw2䌓 xG~@tqJcWgg\ŕ7ج 5WQ5 YU -AHF 7dRFzAő^;RU!O (DwnOBFR#t=JAj9za,5wgܣ7-N$of{mٹ~lA%!ugR(H.Fs2g{ޝsZ0θ..VlWGS+݃l)쌓3{ a}|ٹŰ`m֧K\:IRd!K=?3yP6z} ӑX+!eM-aQdD%dr.74XkcH1@c+jw ?ޢ5IsRЭl fTMCt/:2UB h @拷]K⹇/F~n}Jg(ϋĘI2!Cx. xσSY'7$pnB3-JZ8Z i2) TEɎ8[EK{ufRdmP]RЧU.`EJ9?t۞Dzt2AuIrԮ1ddu1/CD AgB+(cdw).'ɹeG$0 DD LTZS8qEVY[$ 2O#i0g6OR)QZI)X-1Dq%'Ek;3R:IE%%gk05Ew,|GK֣d 1'H!B%'9!R{Fb3cp?d=" .:)4M))gĈ&f@4 LZϝ`35Z(-%!C|l"ӊ1#)Dz9iiȠIdSEABq kF M)ӹ|.lՊђeɟeSbҊ$0. $(17xLjWk响% S%|J?/Ҩ {3_mhSM )~!eRg4o\<JCUj?'Y 8|cK=]Ve9^w$Gp~ef1r:8I* 1&nݸʷ79~)GrEش({ɪEW[0lp%b`W%|U_>|Dy?E{uIle4@l>~SV(SB!z@pޡԦ&]Z}DqE#R6ia)K(d9Xg,F@$IsF+dL>b % Եb>)9m{Q2qU%F(b9׈!& r>g&a)81U`,0)w:G#R%v Ƽ< cs&kUOO{RQ9)4j'X@Z^!X"-iS;tBES!GLJMu j\'«Qk#R˜s 'tlP*591ab6"kDLuvҍ)OȤx)HLV Ɣ(FcKZoi4DŽJ-QV6` Y+J>gn5>Q %!l^. jm`yq.G+#R̠Z h%y}VҲ7d`GP)B> >NLi%X(m͊s<\3x\\rAI֬9{{[^}!ͬblH;]2h[G )|=c dAl65"Ec3Bpur6ӚUk{{\يwt̽ssL_A};p->kO-_|[{̛?z[?;~t]"Ud~uVD@p-) \B$( HHLǏ Rnͣ#.-FdJ 2O…<:f;hXW58Sa׮re2gS_A?pe6G7 |tS~|^ۧ+.k|߲H6"ŭ}eZF |jf >/ftÏ (XS]Ll\It("{)&$gah^>Ŗzr?O:_,"Ͻ|?^O?_/}]}~`>m tMJ**H%ER B(QP(E9^+Ŷ.8; ARg(2X"FMb( S?l 2DtQm˛9.AZKnpeI. hR4RZfr.J ؘ)e!]]i$IA)G!$6>ผ6% BXF ba4BRR]`Pr L )KF&&JRqGì&RI޳TieXNikMs=}P I){eAԊ(!R)RGǺ0$^&OdΞ1&\4R7 >j X8s@. Mx(8yB:pCօIoǼ>]h/]tBNj?%Zf$Aт"JIHu^҆Ge"ay+p1"Eۆ4V#S*?Jgws>4Za#޳dJr6.ćLL#(6Ss>jj Hs߭tg.E&<=6 y\)j)N:~Εv$+lM AS?sBSNN@kæp#w0kruUb*oP%~keI!) de9GG g)O#CϨNٜ(|C5e擃s>Xo)PG~|!|מt%-&ĠaG;%"CɢoڎG ,B mMRB%ɰ+ʦ=JoWx9fkU˕/qw{^pM;]* OV'h*t{\/ػsYЃEO&랳?e].Vg=+F@Q݆bH뎓M*Tv$, F$-3G,QxΦ'`'i?œ&?dlӧ@=ELL9f2IO #!&`;!fuvK.rzv•;7fB=`9?9GW.$޳T_t^ի|U_ؿ/|_d/A<A&O->~^v]uJ0T*UEH%'N5i 4~ΊGDhBJ!a20M;NDT";I@"<*dRUi ])Kӆa"Ĕw6D]h'3*bޠSdp9g1xOi>Et]ǧ&ɺK L"C2,λRL,}mM;Gr\Ɏl$kE, ;^C׃-rIk#۵m,pdϋ!+5[uI#ۥI{cO zlVԳn`<γ%{&HŴ.QZ3-$WKvmPZHse]dBE60+Dvr8ed5}l6BPB V6?%J<s9|vvf#%B&!A CBb^i쐛Ɖac߭{Ĺ19#Ry jň {,EbybvN̂M,ۀVy*.SfsRgPB6;JNzV؟(!#7HLy1*aTIHM LLI-%߹f($#=>Ogg|l+%v&2 V?K](5_X,_cc3&LI]{L9]G?x-) wQ(!M̚9?8dgk7mJQ\aZO{xB7X./Tb{6cmo%+\˒a(vJ.6>ہk 'ɷz_mr)ߣv5'ʇ׮sxz9o'xx HQz2#B˂_7ˊepf)#w\q#飇 o~\1g'gDu{!&v6S)O?FIlgu~7Krgw{qu7CN5rm:5?};olN9}ڐkLw}p| Ta}G IDAT;ᑵ}sЅfR )KV ٌP*ĺE73!pp;o*˓|8|1Ys6=uM\jݿdd >O !HŐzT*j[iO޾K@v!&OKTkK̮rp! a^V+.tG&_*l@tO1|U_^Wsdm O|)f~1|Yj"28*+ER)*ZY1 .R2 !eLV;JDt;)o(g-N)$RlGAir&H#4JUjBqj-> !lCԒ Mc$ݰhj]L $Uۜ8X ED;5$(-؛Vx }#$RSϑ6Pnٯ5 NzO#yt.dH4Zd~RUUw-'vj*fpfm i﹦$+8gFdc=ub@LRHN0o dVf '`~9PKpP|ҔI>"zG*1:cw=ʰW@†ȇ0w Ť$#"&`w]JJ(1c27I.en!w4Zh%q>'cR82cZEf474%30bd11ǿm B2(4\ Cd ` Z#ϐrdf>\Q!2JH96UbxdVDӲ. R "Ci$ifsn)NgPc)G>{?Of{wFJhV6^RJ,?~G'']hػ+{yf@~wYn.!u|?ݛ mf*>|x4zXڛoFQ 7,>gmr=c̪".jBرA^Â% 4 ĪHԢDQeVVVVΙ1y6g`q YK??{ڻϞ3|~~NYkK2֍Jy;wG#ɯOO+Cv-T]1Ԛ#ևOQJ;ê!G9g,Oyv<㥂.5 WvNwP1O7{=#:ͣ*[`~čk)>`{o@'9:ٳ͂V0/Xg^E۱ժZG:TdiF[[f躎e`M]g;( 1l20f+kH#qT@{6Ri Ude="Xr-\Rp.@iſs~b]M7ns.w"^>ŊTmqwy7X>^=,7;ę_ =g?[ƒ$@hEUuճ:6E')ـnO?v{ZjFR ~/Yp׏L:0Msq^𳏸y#c}n??qx޸ys7=ޢrdbȧ'ehl?C9Δٓ02YuGH\SMKAO:k>PsP!IBAhcP̏L+yJX #)(E<DөU]@kEb}w)}zVz6OȶFѻMB܈h}`)B %2[O w1Z )PQed"GZS$TRȸ6l{㭭$uJ0T3DU/Klx_ 3سq%\D. .(se!%wn^ͫX屗p^ OX.O 8.wW(q5^cl Lb蓏߸CVhmgфgO' @q?O9$/B9c\U1XoJyAe_9y]+o<֕1[1[$a'&wf!ٽg-eՌO!5U-y' ~)|qpO:gܸ֑; + IGrx8cGwe4J9R|4_5tt±r`u)Ӏl=hݑl_Ղn$9s,OLv {Wԫ5yTPȰ;w/k/1{#tTUE ZA0Nb3?ѳS\gA(d("8$^(bwkueOΙw.6TB_-#|8__W3/<Q=)h= S5wq5eC$!8 8YukDU ApVO3 |F^ӵ @5H㰶UF5|~jvKOe~Q*| yY'K. z hVIQ<M=*=; H=`QZB)Q p8|1Eg .A; h; pSSgc;nȜ!u EKߔCj ˼xXpsk냂UcHZ{ѡ&ђƩb$LfHH`V[jPAP(|Y"]"bA`bP;vfX'u0*f#F`<;EƲmEJA53u@$MF7qw,8ւAYyedZ*NV[O%4:*ք*:0eFmPvh嗳%;A+Vbte IFwh6,ZEæDkto̪I)t[y1 %`:4d6<w>Ŀ-6P{Yk|2}Ξ-bToZQz[h@+D_ȖfgZR}}X`d$sEUw JYA0NDQ0Ql3H)YMscəIP2q<6E6}5Vzc$q|^wu΀t!_s\U3JSY mnOO{jv@9bzf8AxKז 2QVz㹆J$IFDj&Dzvox89Y†˙ƷɍTk_Yhp2NPTKň NxZ1`F1M Wz GEOkt)uo~yc[[diAkVV?$?[:&WVK250$^lOxgk[EF$<>3@<o #7_&ӂ{즌Ȱne)ٹG -ˣ>JP!oz|k({^l_0fU D#b !éG%Rkt"8b=37$ɵ+T Ë5 .G!iwz_At#_^%M_"_ R_uU] g]l^: VA hmH¹@sgy G47QJdR$IbUʇ )]$n>Sw ōQ,e' @jCEjU\>_״RR঳д akrDs $hg ԰W8EڎT:+X)4%Q\-+穬 o=5LKR-I,$rutb@&E eDSB*#L'c]xOG'5+!Iy!f<_.hN'h)'urvS{\~Huǟ)ksز,kREuX|Í[h(cS/_vA}tX;t\S&Üf"c9i篿sҴ}<0 s̕=~/H\2n{1317nHc]!-4l6%޹Ϸ_}#&|.ҢdT1j4f21<|poKjRsrzL1JamxNώJt:%j(-mmdkf)T~qc.-zJZ(=xQ^6.FCc\N FJB2 8'Gk"M5t-xSWqcVE9|@^^eg K;ӗC~b̝@_0$j ӫeBe;zuQ!z-7^jO(ҐLItCsPZ7,7;*ڸ&Yrɴi ]̥}yO-~𐡔Tᗮt^7m;Kp+/?7/ȯOzſߦ]LPe4{AjiѴD*MH!xd`m-I: riZ,([K*2m:$NzTCqBDtD;޲7rI$t07u&ц7 'l$ Q:(,m`Z]ɤBJtUG"|Vw^xJIHdhRK>FJ1$ 62b#N%F (`,"f m՚@dGM IDAT8;̑Iȕu$JdaMiy.p#7N(EN{ҞZ)Lv,%"[Q)#˴ƨDQ\˃5!bS49|pRrq,HdZDβRx([GzZ\`@g#q1s( 95:fm:LbY2@tAxpcUIAf 5l9..%Z0HԺ1D]f:`bhXUSy30̠:Bj&MđQ6p!=J\ʽLqVy2/q-3FOmqfjN6s&&l<8L {:yAS*cHU"Yk8r)F l@@׋aXZZϲ)In-O3RG ˦ՂKhŪh|4&L)dF:Ȍ OeDFD^ U)Lזl<N*ȕNoܥ(r[O@" >VT(m{ 5Aȕ"Wqa7NqTERCTmdπۢ)Rb: $ lZ*F&.;}{^;}Nu|4 z22"fFu4*_ mzTMp*.FQ:߻O>zY3v&C͒z51 * Z|0؃ӆ|g,$zñWلu䨃]$vK &ONSyEUuT|'bRYmEnH&Yo-7Inݥ9: ƬlH7! ]Ss| ]xSqc#(O%=-Mӑqؔ f!Ijl:K x$EPl)[CܻM!.3g`@ʾcs8W 3Y}ؔ4a}Dz Rx Ҕ8=nL 5^I ۰sN^:Rlwɰ-k͚9j< E{d6)wkx#j1#u@uKN|/.x.?_s/sa<_F_> U姯>O? ٍBh em1T3(qb6mxO ;K"cޢ(ޣ"3eQWtJ m^cVԓt`(-<Ϲd$0dkc81gL 6]t\FFQ!ҺbJfXMBd#&(gJ\\4Q < >'D*LnBVֽ!>v\K 3>%v.*!h5 l4udHz6x:'hlAD[$FJq:ۿ[=y y#i$tг(hE_֏EL`v.5ڎ ]? ?_+w.Yfg}L3K^"<*#ؔ]S1 Qhʕ5,Zxz s%< h$ UT6 VL!9r[7U`In''H`%UMD "=.)'KlOG<|bTP;~3 jR1yސSl <|tPdo,Gج]Fa^P=j8Ẕ]dlx:΀_ՇkLnؾzkHl#4>q"!I3[ӕ-mgPYN>Hq6'f`Kh6n[K]w$Z|lF8]WMҲY4GN ւQHe(, γ>>&n1{6 h)QL ^F{c,+s%_,6s By4cwkNlV's pma.z|tUҬ8kqM BrFpَA1f<| ڲLS0֞?ISCP7/_no^ _phW__+}5W{/ Z2fm% Y a4;FZk@h$B #":}w$04Ud C)82Ӵq"Ok@ic)gV5(He)MIF&V"Rږ4ͨ]u$1 ȁLII8nb|d((b EPyZLGa` ,jR)cnf@4VyBvk%eM|Sr >B eษPJ`byk{qjhN00k̫x˺#yiD=8yhThlcͩԂ7w Of9mYV d{sQW>{{WbTT}-hǃ( FE &BT-p_<##o#S\i<L!i 4]@$U垙5'gu7lRk.XE6w=q"$6_%uQҮ$ ` hjBHcr1' ć sT@*Ngrέ_s?>ߖs>\{^/GK b ZYA?OWCnFӂkn{o3[n^脝 QHа^ !USnmP3!eYlOG8yu$dM@&4#"y.fuyDg8ɒ+# !QΣ=#qrxl⍭]&]0/F4Ŷbe8PyM7czP]i6$Qr<IF 5r*Iݰu >XjAYv!ZH3;}_Pw%sl9R:L78IlOR lc9SktPRӬ7[;\Ӱ*ME('i7-U?*)qM/WEBb^,xF?)xvl{1HCC=;@u gϽ1_*=&W]z% ~5)^:+/5Ͼ-p6ϝ/p$B㠟 RBI^)e̹TBRYKM]tKuZE8Gnd&:6mIV6'HZ1PlZPh DYzƲ. Bچhm%8OYRmGK SHyƉ-!"0AP3%|QXWW@\IudS;O` ZG D+/!R#W8)X;6u"I50杧to## @rLSMw7l:E6rzֵ#1m#2+4" lX$g !jtCVlZ3Nw $[iPJX|&x<6B:f&}P(QhĆXJ0J+q#N&yܞ ԧRyl\[Ǭ\"ǨFTIĶG/W )%}YgjP\oe썆z@b~ E&IYAzW- SMbyVe?GO>}gT5gʵB&-# >ُw\ˋ'BF),Ϟ`ST֕-Xk>9Q6XwJx޺;surdiϏy|bw(j]ѹ<MPÂ@YR%~ϾgsÃǬOsM0f4gi:OWulKǎIٿE@iAwh"-ͳglJQxL"YGܸ3ae߿|)Xͭ|U6xV0C_64ֲ.+oٚؿzVL$t8tzmIJ)wn!+s`<=")ZX6v5C,k<ޮK"/ѭYP$&xTo|9ج*\?&MKУV N`{?#XENړ5kI). ˳͖IOl q~l!@ؼ,%\b3`h]Rssw-Z,Cslہ]F2v?i2.JP?{odǕ}~g宵 ܛTwnDxE;ƎDG'/8d[F-$ Ps9NV@$e'`U޼{ pg6>K.E8#mX2n1y>o?uL.y2#,ɍ7-?}'YK}P:bR(k1O%b0u5NBm$IwaCɳ"M-AЁV)2qC rm[ϕ2Rb*'Es´j`}Z.@S "CV,U.߇H-K]5 uưY‚iDI t+(E[ϰK/\4"0 #52 0m Eh!CO˽+**s-k:1}cȵ'KR->GhVǘ.H+JM"M?פsagYw}@Tq[KL^1!yJ{ ,Vp0m6#9Rkjrx2% jB#fEK3{Q):kLkG}W"PHafUd^If%I֧}]2ѩ"f"Z"Uәg$3Q&hyAgҁΚNB?v 1%6q(tRYEABgɃ$jo9xpO{zLJ|/#~'O~;lm;x0v>jΥ\̱-\z9\N&SyGf5O'Enݹ- %&8[N<8^.ܠ0#kȲ;׸ŵ ;/)' NYU X jQE C1S/h53ܻ} ?ߧ!e^Ƣi!FN+ڡ}lf(sņ'reiMd}LJRUt{_{,9E:ihýMBܬqP;/o[ |~ eݝјC&qԳcm6ahZSP *ל޽ U8U(4-5Hq*^c $?w.֒U6L+Iy;0jc#׆dMW38Gv4fC3l)/GZW-trRff&)pVLfS䑢 ^9/'???].(E=7dW_$xii\C9ء'dW$H#HRhcE$ ZS+D gSjuE+bhCur駷!E\}Y|e3Wӷ=8;=y?׳3^ǔr~ȴ5!Mt0dcӅЅtϴ!t[V#H4>x2Q6,]*_3-O}kɌbN*LZˡ*%R+#eΙ LB3fJ`^k yN<%6/.+S.yɗY'yO Þ⸆y˴"CkŢM]iŚU 0wu8! N떦i,jINCYɕJF$h-" H۩ρUL:)vսgJ[U2Q\(EWU/H#3Pې<hB`12,{l;b fǔeAz!+2!0ZqvnisrFkV-7ls|| o~>_w۳4Ǒw{z/>_Z$uͅC%BgGYpV%W+Z122ɔ`$]g֤nG'ZJ9Z}1$GbJ^E"^SXFt042ch-W IUhW-=9Ccpi.%>rưYa6]KK V(f7خB)p VcdEhpZ;/RI} ꌭ+YDVo>kWpAo|զzOGh >̖Z߅2=ӐgJT Q f2 G|:0}>|ty]?z$lh kqJ0j,:b#,+oqnQxX@nT)M&Әn3,,_,+֍(MRZOG+ǚ63y0] mCF`}qFMkۅg ڨMMZ,0=Qib,fΣlX(a-<F \%i ]?cf]FҬT6F.t V3)H-hg陌%)h,¢ 1,wlŲq4ѓEL( LCҤt=(b3MKW4"D/^ a*lXlmgwӜ04,8ɼEAu$6$L (lA|c UO;1)9v,}i_Z C'%La$HHV50*1VOA 3 cD$S=]QDQ^,!.W-< `W^sbyB:K,&r_L|˅|M aRCT\p|t̎f39G;?]r]_޿µK 6ܧ"ܹhXҸ)}-k֓0YTVFs-)֣CF&s9wn#ج"y A?:R>"}uUT[+%?!56YTϙ9![ 3^8:8L % hSh[CϪ<( J[h\ sꢒK89:& C"lRK!VڀHo ӴCZ 1d!][kYEf"Zx27vȥ zw$أlJMK켙/x&z1M<>,剿m`ʧHL5<6Uh0KdL뽜 .cd5 C (dFhcb(r 6BJlBa[fZ3rrKW!2( (b/48ZfX3 ZRKaya}rtC {MWCbgcAZB'CTJX*ThX<#8FBHLCZ&@1=gRh2IY@1>Vcuֆhs&IYR*ŕLE9BTawX)7BZ$ytE#XqQQf $2*(uz2/VޝhCJH_ne|=Z¼01m9ϗl J뮎<&bt Y(AT$-jGg<1i}Z4暺MOc<>@?2^.m-ubϥHLIEN^taA.aKՂ!t)G2Il+?m3];@e"H`LKs{!D4c%ϭ/q|$ODE/lJv6,K/ZpcB ~%_NWuiaZAlW!XQVdzvYeRhNg>|1pmo:J,'NeR\1&]\aiEUUdȺncA XLHo ӲtIӴՒzv> +{?d<| *2z=c wWv2{f'wx{7Y)v~un*usğ};xkmmqD"w \8.ۊH}20¯,^9Y^J E?w@)8tǍt O>Nؚ,G2oJlK-ZUqٟcbr\#E7]nRX-a2CtqDb?SpɄ[O=>u<wO '9{:|& _ 2x*5Ոgk$YX)84v@!RMpZaHA.+iUVhDf8]ƈ* X d(޳5QiPPGp:IW.2oQ<*Z jXXMa4UK<SfI D^Pټ"VuR68k=S >շ4V4DZhJ!EmLTYLN{L']T1BrĈaC*\'b&1H!0*FŹ&ME1*rQH۲èQaT-0%ž̀$Ԓ <gu+I`v21=A.y*MpZɍf6J7aNf1R$ii@[Ud*K>shV)j| Ӊ1?^T!3h%.c UC0&)ii.M#IϫDT@fJmS7f|*QUNrt/bjKSqL vSL8dr??x5(7aǭfl{4#)'Ӓь/}_RE\U|?ckm|/xugǟ}Ӛ̖G&rtvD(Z6F|:bL&hĕcLİj,}3k:9z x%>xҢTuHo)zI-&TTWq c),O4y${D6\\D!&Rt.7%-r W$vmd"cFBHI1Pd9 تb7غ}6'[h mĈXd]nb =!FmC:ˉj`)':!+<ǚN驭o̥` г,§sZYCiU8 $3qt Ŭ¢b=_2:UU$p: O4%8w Fİp)mBBE"aF$IgYXz]NALVЏe[Cfe Ģ!* fUdjBJU$wmD$ l^Z6X#u)JF( Y*EֱrլڐNG"W_%ެry :Vɏ_٢#i)2vlfWBBQ } :?ą{6/..t[kJ~yCρ>#y)r- eYbsc_qt&kW9>9d}ۀ9ۛs/z#^gvt֊~n(&Fi"jUET$bFWڈa]qpA).2I^-@uDa!Z)fEP e3,f8:;~Sofk|᷑> ~=|Q鴥y@0d uѯ>_p%>vDlV! WK Us41]ghPJ8 !(㟀 ℻9(NlgRL5;2=b;ᵽ]Z,Vu/Jg|6nNVDRnl,|'MC&c}Fh<ZcsmòDfVlb+^rm3fG,,ok  2qFlO>bPٻ͏~S~eY霿WBx߸͝-VUk:c?G&y3 ʜ͵Nx%ǭCi6/x{1m1]` 9/\ϭ/>ѧPKDb!RȲ#U{B{o\~F[T/gP\K&ISmMۤ@ "`{}P?@]{?&YtamEyzl~A`8Ŏ}|!>-ɥsB~$%GTLs`ynRHAtJ\R<9^"Z;*8-[idE30r_yR0!8(bַX͎3\]IdZBdF>"h\߽yV2|s||u硿;|cɳ Ym^7>S˧oThc)rEOcAg:pӪE0*_z CL]hNI#@5VLg[YV;u`=8gdFs~1Jf#)E2Ia(fԉ8sX+FԂqǞ @. ` (idY3.,$*3R@t^@\HV eHA aX*ZQTZWݤPJhnH$ Vm`֭bpuٔx:Ykĵ-⌽qaf:y"4{ӱnm3phYb |41v̷ ]@QZFu 3-XTBTj\N$lR@SEI^>bm]EF&Ѯ hDdؖ&bn!S&UUu 6֌ 7S}GHBLY#oO>`s>زO:l"Ȓ%^:Σ$^/y:@|^b_& кa> EkW,' ׯbKWܺ)m>6gS>}*Gh4+ (5U]FeN//W+[|a>/Q !Ҟbb/xzy?fYѯyg27^/OicD/mϨn}Gx%;/b{5` h3jN2~5y+ﰶxΟClw6-ޘUäiYr~! & ]^,dλgJ+#?+{_E8leַ,kGmSG첥ɘLΨ葯VL(cmz(ʂ,/h'6ˑ2G6>롴PqrCpD3;~I5(xȼwl|y%^”!Kz6)8M՚r!}PUoJ3uAN=4M#8~IVK|9>Y2?\D#t5[* bJ[lnJBԚ:ԋQUShZ`U7USlNo<=Ƿρ2}8|~߼&f |bofgSei'幤|9EP)PDG!ERV6Ř@hZ4 [ZN;Vi1. 1DJD5WBMq>Z-Ndg$_ޚsƤM",] F֕Xp!V/{;q0VhD߂RA\$!}J)b F]$/yY4>խ I:ʉ\J#>,%B.pGjhxQV { b5R!F(9.{u2uzRVGJdhxdȕ#[l%ZQE)^M1tH6JIyA#<*1K6 P-]$ך֥TE"Ltd%OYjE {O+d$rÕ[fV,]Hn>w*tJ ';su>DF%TAm<4mH<܆H\reY/ $}ڈkZ?qIP %7~~ zax[Ki(_d6vM@t2<=}Cj(3&CBh(uY[/`ӳ-mZll^ Nh ul9*ΎOXkcܻ0Є%8,xu{n~$bkwjeY XU/ }WoWMWn껯1_5WrMK\-<{//fYo;S^?xW^~+|ه|E5G ˏG:cY{\LSuí{x͛0ncg?|{a_qu7yAz ޸.ܿϭ?wΐ꘣k/<_rxpLQ+i!, >KA@I*&iD U,Mb#Mi`.SA(|kx $e5fo_b_#)2ƔنHnt +C%Qt(UJdtaIs +7,4.,ŪĜ*S:#,PZRHI`iiQL[FDV hQJGՁA4Y* wONe`@+/lK `є(΂cJ,ICz'֌N^ 9hѩw!kV0Fp*D63E\'PHf>@IJv!&eJb) w]J V砉mn?(LP|hȌbD IƥOT15%2!}ƙbc41Yq5t1uK MD؁瓤a$F/ebu…HT'4>&)4O*cSF4T.^0VRi`I6F)zFe:y'ILpds]iHwQZODI!1+YmIޥOL#11/n ª lf.%E>?t 9N9?ȥelABJIs9tc{S7^dumu;l ,)twwȝdϞmCfk/>JOҏJ"U <*Iȋd wd2=E{bjHFc yLhtٹ};$?z@iT78a5~)HH»}ʑKZ@na6h\} 8/ "|^jGg0fxgq+@ݼ8GOiw3Y\"`orN:$^t &$t%N3C> !).*x.ξfy^_7^/;f}{X2wg4lht1u#TY5c Jh-&ِ6>w |N,S3ǔ#I"w4U]˺ ``x}/SC!,S<>>-2Cޥz4 ;he?dQUI-B#hr)~cz{obBq$%]pÝ}g*0b]#.밬p.U]ڔk][9e@x֛^aIc }l:^G2SW(uʦXuŜW1x|qjz ^J6qY*ͭ~g3?}LSY K3u=z^oo^p䴯Bo2 XU՚"00i(ՊMx0@0VƑhP!p֡%O!i4QDO9+SXK7RU"@Xqn kFV'E#8^U NI"Gׅ@8Kb ƈ۴ v/&̫/NY%Qӈi%$IɛܘIS{M52ъ9 =8΋-Bʤ($v#.B9L)HD:H3%XՖ!I/7 eN])E =EZ,DniG!A 6: +c!󊎒B4"|sAtDRRb)(qP5-V֠çb8;9yiemCTƓ׆DIxHp,jC}|-}R:< uP]V2xMyp*tF*mmHi Zj^'$2u'B%9t#IQ/+RI*ļizU𒞖Ƙ1`eB"ebM'uz\KZRV*ZznkB鼸4e˶5szmU5RB/)%O =LQuw0!JRL$QBQ-20 <#Kb޿=={D7Inh.o4HmE;[FHŽg -ϟvIn &UM>~\7͊S=b^SW7H8HMh[S%y^Ry/>VDu]nݼ䈹,{xaP $_W V%gE(Hjw_<d़bݡy-dFeœBE+?"A!^J[Dv8zrs'9!` Y:bWDJ1ܺxk\a(/T+ kz}%~~|_~/ЗTBjըd@`%R* _S:C()Jb]ֵ颂5Q@=Ecȴ-`(P2))ı)Ԗa)R)\1Z4fCG!+OaU5;rcG;\'6+R|-WTNB؏5Mb|-@zrǶmXLHR,D:"i A kAބҵ"{!:p!:J(L[>·iau -$=T=J @:I Q7NN$T>S$FDLbµôCBƈFHeHm!%κFZ'K&5yMd11JekR-D1yh0jdבxD Cl0Q\Ap qdJxOiD&ͺV+d:B$һVLcXh]AUj߽:noaZd@X.V D87HcGRKQZkurX{0ןK.'Tw2X_ Kxuxq,sƺbfg.UQ2XOe ΀c!E>zo\*G [sNSJYg*?z->~~r[y(mںM3~ӿqBQX:;NJpgVH }1|b!?.^Zb8eZ7كsj<+MTRoI"MA;ϧfu*9E Wﰛs2#ۛ;\_I)I$|vΣG1{$0Dl_ypt˜'?#V˼b6Gj06lp֍-J{֚G_$4uIe&Ϻtcܡٽάg5|:+@ˠ/{~#)+ooWWG)R"TRH)X8KQUDB/m(kP ㈴+5XS8O3QӪjCp`#Ʊ,[ĊDr"0S<%iq -g՜76FtbMQ7t#EckᨽCZYY*{>zo{OUXpb1 Ɓ7(PBP h QeqDipcJCX/IbȔqY-d {*$^3DZ _nR9KSYRY"9P1Z,LѨ\,AxƅQ[:n-= 鵥Vr ڰkC'u“0A&Dz[a7e3A9s@aiZG?x?977ELrKxƣt+뙗[YP}JR IDAT lf")(8^!RmCP^Yj0QZO%RJ_u8fU谕Dk~ޝlVZ~j"i^9w)?co>obq~Nw3yQ2`0>,/P_;6lsLEE+LcH^R؊i٣/8:}ȳc,kԥ'~+*tv&0A7R^H,j Q M|du|xw$ݫ"ȳN%2S^ SR%7Y'nYxmttC@Zq ,%2s?rk!XאXo\Km%x!/K[KMInCt+ w 秼ݷy? p*JУ!h9R8W8邫%\a#2EelU Dm:3zj'e_v!J&{/VRMJ[#ͯ_ 27!{&H9K%ىtoph=]zZkV!'9*y0- yeCnCEtDiB'sxi\V:eCS5)WbI$%y)E%V IwsCb  |7\" ޸P$nTY阖a'f*2me(s Y"֖C γ-bI$0DwcEn Jx2VXh AJOW@Bm-E#B4C-W5%ImK)Z%!ӊ8V( H(C5(浃T)-P.UmFi5-@ ŵmmnJ "K׸ЧF2Xl V רYh JHf^JBxۦ%i{RǨW0"j@lB0eáfV6҈~^Yɶ6*.t}h-Ys.;3}kfօ>A #8aw0)˦'Q8ͤKnƵ$I$smIBUxtt,_mYܼj5G =D防)QVPBR[Ge xt:ۜ>b ] '8Xq0bvcuwtj,GN Ԝ͛;燌nJ6'H΀A5Sm6G?'Dq1!IɋX 9ۯ(VS[~wg)T圣 Ru-"n)jK'ݦ*gO1Ǐ &hP9秏xJ4Cws7vq1ϹyN1=yph7n^ì ClYlٻs+;=?zѽ'̦%:e?h^jAo|yw~ËlKdk`P|^}Kc>_(>[dʄ&ѡ+Q!rD&mjL ,-t$h;`GI}жrN(/g!([KZ 4TeUӑ$Bh ot%Yl*RPUC^/ A|mC% $ n{ڠr X5$Dx PZ˦A*TTYyAc<sv;)IYd` MZ^&ӎbE%MDž]EpZQ+A'kBPXS5˼#4α A7$v&ZbӦ!bFn#Ėt@(AdB̶j.>A3ʲ"LJ!1Y$ Ln,i@Q$ycR?H8)fUxHbYZPwID!.;<-ɢl:eZĉd`!ZOf;pmeneօ/@yIMmªnACBt*ٳi{~ҾDnSlviƵsځjXY_k6xj1ŶfI=6T:p!YԭwR'^;WQqg'$ѐ.eM;8)0ptrlAbF(lr{?G43F{72%"(f % }J FPؐ\4A/Gc> }ilZ%=l[pCSc=:0ڒݗE*P@/hsBz M[c@lF2li6!l]mC2\8r|v{R-vʯrQ;g]8_Z\?@rϨk |)2L1ZN/6K3qÿ*!V[N78yAvf3>XsF' IJ(%Έ;3oswC8"]1(?'ςx "/ W[MV)Y/)!p;"W8+ezp ޺Vd16ΟWd*ɓSgż֐NT !wa :=6ȷ*K>RCߞE^h۝&&9G= u@e^H&9 2%H~H㛒8bJr,$W*/'P6 5u5Xoh@5|Z&+k尯a 1~_u7%d" ɺejΫPQ9P@CXX$H#X*1шST8YGR7t](ϝh,ơQ7򎳼 V;lPBqx])8XrѾDgiDdiT*dc57q}hx eCKP6D>R(8F{K*o:^+kz}2o0_ ^e|Q_u̗>oH{~#_iZHkR9^K}`>;*dt;8"6H`3ju$>nDҹ:T)H ыT2<Ƌڰ2Yv{]Ƒq'9W)^(b!) !62+,$+[_;.^W qZSk9Jbyc` c4Zuw2΋[ދ9t08^ m*'U\փx16Kmfc{>~"ϙ.8qHQ׆$l`0`Uiggs64+7{4P8<5?zkrXYz]%.RK(vGx|pCe2\/lb4ӳc-nݦ \o0_qp.IoaGE gd,V9Wnf{ 5,!Ix`6_qj272/ 4^uMNq6]q|rA@//^~q{7C&>jaaCȚ*zMuko) ѷN\'5C'$Uɳ fsHsm{,+E{xpqLbp_ !1 *!H`'9e~V~s&'ڠ2hPN❡,;55|_O^.m@J/ cx| ,/Fl~e n+ q΃wd١q!3nev >H}$vM`Y74"ϴstI2)X|Ѝsx/G @)2Z`el$ km8,6hciA/bKELKqX)X%RmWeggIZHKKz}>9|LF-LS##/=h*"FBwvwB(IM=g989 esNw$8kde 7mxpvƃ ZsQ4Tmzqg-71'EE7,9=a=~%4qׄKKWEVUwuWZ`#A6$Hh` H IDATB 4I-33mUeHd2|&|5iq{$,e>$ e3lJ]5)<~sݜ#,6;j>~Fp<bf۬XSnɛ'c~9ߺ ^umY|Q뱽@4[zŘ^1maES6q1إWĬdbvy{qpRЮX/vJlxZr-~[cgA)G[ߣg9ӧ!M>uOxt-P|a :u|ss"O,dRsҵIp-=Gx^Yxv@.V[ ObI焦P. a0D[bl1 h2gRyma9Y]q8vx2o,x^\{j_g䋃>K<$o _6޼KO_׺rtO?B^O/_J)1:!4."RQ9| R )Ȕ\bd Sy6t bfH(ɥDкq&O]%tJݥG)+t;w8"[34Vl2(sShpR@_/ E+Jə BLRFfbBKT;B&#F"8B'ĻzX p*JO,a o#5jb<˪ޠD:2Phlk&Z3s|-=/d/T{d:3gGIA=JfzH'0S0S:źu( Z*pM4Q&YpY9L V"~0Rul 6Db ֥ $0P"EeF1Zъ XJd Au c9*e J"$\mQiUBĦ*>v:;=%kZE  Ru!>ײ‹\=q]"Q;;>>}i-FĂh[7 o*f%dʌ\~f6_BDDȃ0lٶeXzbam-P ps:|qE5}_ݿ]l̨1|Jx5|b$@m9wOns>v"FA?#!Mɦ16[fOٙ ƳT3v nbʜ{{tb9xgWpW; 2]}DY/>/l[|@'GƴMu)ZbT 77ac<0 q.y#2ݝPO||uG++^;(,SfK[]Q}7> V5%YwFz};6R *H2k#S$vuN?A=.N8}DYDIóG;bm{J~ Q-wqŸ<:%xm+:3ݧiutۿY2DTs"ugNrP[6u@vEV!sU "sdV"ڰ6Y+ES-ȳ^Y gOl=&ƛۅ.ۮr5f?ƫ+j|P/ƾ~_W2緉/Wξ?"?BMW}В$ :y_)R EydX+L޽:61 $B*(d ]l,7WF&j*BL~?-5wudBͶ尗sul#AD&b/ֱm>@DLƵ-Ɉ:je]7(1xuV֥CMMôuD!9ꗈ6RQy"#d e Uj/($"LSRj~&F iu%F FI.TrOt NXVAAtAI%ٶR*$YtTкzb mˬnض"3 ztA>?u}]zu|\R]_`_p~-Mg4o-iǤ( 8}'7 UP톇|_{}36X%x2$';4[zx::G L||;֨9EN/e<.QЬ6 ZTd345d#vP-YΘQՂE: ?,7 zܽMV/Q^W9)}xzG 5nvd>|fN^ 0> Ag 8)Jn sry/]y?7/4ڛ"|a.Х]`&絟S\G.6-% obaoY6g^tY1 |N[Y/h3garU ,# ctapnr?[b#|t^!!bg&KEW|5Y~eٯ~_5x˗nځ̗s 剳i%P*<ykbĐ*>6RZӆ3#+IA6u!S}}:HLkǪvxZNaX6 {(rv2QO*LfyG#y%ڀ ~4pqZ{ah@6KMHm2L2.- "S%+gt6 M.)Ⱥ ߕ9:(iBQQu1"  eF&az]ٻZ-dZd}L1uQ IA !T *(0B&TTJ@n62z$q/1絋d֘ĴөcA$7K!;* gg008^ \3]kHuzl\v5{\.\C )n抮c)4]KZ%$O~kw>F)2|הnuFXȦnX Z%5{X֎8jrנ[d3Z]jVݷ hv ojqXk&CɱSJ(rkyzi2.Ϙ/7ll I[=;ewwt[p{ON99x6*,&{6yP`v>-vK PD>(Izv#Z2v.ǿC3buvOΫuO#{ $)@蹊& *ׁC~cVۊ|2W_^ahkY/*bJ§5bG ;>"u@Y)Ak6jEkQ]O:Ŕf6#q|t`Nb-Wx4_53_tl/S,=} }/28s!~FH!H RZ(Si&DZDȻ ƈ-Rg`iR~U44H}HR&ebO /F6QjJM6 3z+Ȍ/%fk*Am-+m & en 6M<~ֵl]Ki26[՚B ^md#<-1Vi,.$\suK^fĆIA&淚S< K\?7eF0P\cOU'WLA)a_3#I!0mL`J 4DaThtF"IqT?3,z4?|R z R!ub< \ .u;OCV#y&pn-(~.] ASRfLr"0lH̫BL#T dd7kR[QF(JI9䗼r!-|6w=v2Ŷ8n-\"@ )J&T$B4ѷc8Z0櫚EiIcZ| u$P1+>$)Ɠ}GBeVO./Km5<۷)&#Gp1/goid<o, zebd”)7Tb;:h'KBeטqǯ!91j'3kv~U졌fwoLiT`Q>y̽fK.V[ sKtnELJDQ-݂ eF!+ՇWSb}6 n`kImק$6Ss:t+>nWy1"n̜@Jѻ!d$ gϰ'\X,+$;3( kvwYFY9d#r5*d6xB+R@@Pw_R,>ƴO1 z5x4_9e˞Q ,%/yZ Ɨ_Bbb1"uH*M["RJ|!Fl߬ZH)ZB.$H#H }ѓ *D8Bjl}61NH!#J#xo|n `Xuc]4 Ia1;|4^PHQ#M+X9cZL뚺isΰOz֭PIfP"U~,mQ${Ynhcm-#>r^3B}$SI!-!6c T &!Z.u}@dz6-=3[CtfAt 6DM,]׍OEFb X/"f %4B+"ݼFQ@/KZUv2)-u14cn=^&! QmH" :ӊ3n{]0$G.FΏy .}G:rRM݆S:_ Jϻc;xudjV(ӹ$>|Xήp>'?巿'0[*ɶe4Y/"%Ǵ6bq(*YՖeb],k\)DE[%~&ĝJP+5@'efbAOXΧctŒh;Hq?e`a<]ypu٦b/ߧ?< 7YTcfldݶWS=`8]?O>f''c~&+ ~6,3gWLJF3_'g|p8[f0ȸrx2[RـSuA82ϨmEt 1n/Kbi78&;ϻ#A?[|)H6U͢ǓOpmD\wy^q`D*kMjzE b12\&`ZsxxhX5ٌjD}frc_zds|^S{CyFHAt׈((t4x^oYZ:$VDXvvѾ] %֠5HO@)bH$*az-Jk1r8Z5!5>ƫ h_s|5:WHWۯϗt/zқ|/?8wnT>p O"s&bDmyCث&!N)"xS#'R!26{l:1>2D%%yJͼml-M@:ltTL1-U]%|6Ŕ vݷ^gocJh,Y55eQ ,7kH [+!n"zzV Į1s.""g|^g~q΃Ϋ@ 7- 1g?cE RvC%R=\By_rXw]k43x?lB ֲ 5 j[Gٻu e7>`X`x#NغY-MC2V9jݮ}0gH۰:j Dev_R[j @o˛{CZPmZ'?僋s -;uzw(cE3tѣih1Y WW.Rq=@4gUY‚JxnW4>p0s8Alٺ#'_t\rDx&kq ޠBŤٜ_s4qZlҴRXW0B: ޴ө2A`b 3azgni R)z=C)2zsA1Ȉ$R5lj| h_k|4e<ej%_`$Ɨ1/yb|}sɎeZ!OR Of IDATF 2R5A&S`MR}1?-)>3KMl[pڐ5;>F)J{=CJGKفAlRa}$ׂ($.$+%ԾLL!AcP8Kt1&v\NJM3k=>uOXx**W:r$> &FW6Ԯ"F$&Y䭕4^eyx5qqiT:]L@U#nW\}^Q?hYy~?K#Aw~Kwp34M_А< - DZO< M4S9ZPـ D I5QE-doĠ_$µ\/"EHR(_ Щ&rjvJ^ǿSFǸXq1Q>';x=) bTTrk C, ⣟.:' 7)bC7A0w+g7gg;e;1F (Āf+>8{G?L[1X 1樨*K $*:HL^bBOXn7Sw*n .TS5bpoӺgԀ. 1r1[^ϓFO89Ml-ѐ]-z(-QfLƻ}WS|aGe< 9_6TM`|7 s?&\vN>)7ڋST!00pxڦówN{tBb^PڵY'ъAhjE0~?Yn-1HN߸&>49ZS|9k74%~GALhl:[KU;jl=_])t(gbRZ!:F^yg[$u"ME}Om 1$ef %bIp Q|]bB`h$qcc4HZBJ#*x}g+x5^7^W||)k/$_l "2|ϹD"M5mR 624AhG"0:ylH϶+1"xQ4RjƥtB.&G*g9[WLME"x6*%OI}@ȌBJޡC$G UlLCFvegZ\.O Jr_ق"цQ;,ᦡrɃh]:Sax ;#eCB (T;)SR$S!ډnB $EIQ`#76Fj@m ` !˱Ն9JK&ĨdgT;Y 2.4Hb B. iI^dJkEB^R'~klj81".KkM2SO L Id)'GL_Ot`˿~>^1{d/ytyՎ;BdcC3"\B)x"y]`cH@r}aJ&xe8G%e)H}Z)LAb'!$63ϒ?1{8oi]͠衚9ՊA5y똏.g,gԫrrCҶݽ C!(LD(>jwAȼZOs.j5՜}!M]cJ;ܧg|ŭ!*˰}['pwg) Ddq1_TmxptTzzJ,˂mEFځl{rH<;]N>n<\Er5TKdoַ'~LB mR[>lFyQ ״G"vQg$beY}zDAW+ԋ 6u7&\lPL7K/ɊmYTP ^жz[sC拊6hXl6mْ֞-cGa<U 2#M8V%nkVWAhT^MFFӛ2~||vSYw)p⳨5>gA#!jkfrid.-.}X'Jmxx.9Vѳ:{fU1 8~0ж5yo@z#2bc0nѽ5eQWx4_7ħs/j~֩Uߧaw/z/ތJhdX# g`$^T0Lt:4lc R`Ĉ&fk%cdLl ߒ$kT)S-b$EY6: F+\غz2UQ#Kv}b{45mZzZἣ$m+30`z=j+,r[6he4 f UaaBжMY5y''¦% ʜɯ(d{OmC⦴'nłzjQ2`n#{Dz3[V̜Ch2/+{=E$+4Ʊ}RZi#Ol%4O9!22GPbb:,U4}ª;2@r"F"" .&%#O8ׂS k#Sɼ釼kKV'ƽ1Qt}R|QQ%ߡ[?S uD'^sn"7G!|{6Fa]Jo6 lL ;UrYYVM J͸*SPW#F ZTdQ1Z3AiErFHQhzG?cuR Ζ +/l"=&;/0eZdp^^p7s{!肳O]]lV[Mﰍ wjM(eMZ ٳsۿ #M{M֭EEULC9Xk8YAS ->Z1AbegƠgWV3 KpF8bQȰfuSbVx׿O #1:AVPڠ&P aspi%\obfyR]5||~Ied}AZ9&Jy[Ʒ~^|e5#E|W%e'53=@\(yoшޠFopX/״}L52lN/i`<7xAۚ0_>!dn~!1A 7/f:_y6cAC  ۷LqS~Ćj[Q چ(AHԊu؋AHl㩶+_Qh-Ɋl5\ cZyBhY՗˜^VB82%Z3< +]^W+j|k58P╯ͯ8ZϿX]\5#dl=z6CLD@P$ 1f*Bu{bAHm!mc CRZIX"a/ EEn5*ԉ\Y.֚qaJѴHӃdu^S.חD!fkdpyY0*2&yF:ڲlZl Zb"XK R(¹- !:x#Qx*$APcb$B|hZO)ԽԊҨCUt޾ۻ6b-mِ Un#F,65 ҮWfKx̙~ɓOAPf=}G.RFhGzetp1?LܺeVۖiYpswQ3o6a:f[[Ɯ>JM3Thƛeb|khB$ E۲jde͛^N۴䦠muK;\cϭ9_6M6_E/W^ޛ鴡11 ilf4.Ȳ"@XhrEF *%툓PNftyK( }irVmG FtE-lehߪ~pWȗCMįuzj*]/Mj_U_Rl_^>R灥oH@`=*¨> B=wD͑!QHz"N$G|"\ fF|T"QxGZqML.!T#\a4F͚5%R ]brеX\sCp$rdץ|H`%F .x:(d3&ZK']q12 Ѻz.B 9yL:GDjbQ(JJl$>b2{#lB 0R$uL9Rap>2tfAU%>2b< R&ibkJ#8-RIJP*L'%MɱXErh{k=u2 Oª44Jqx)Ht[04Ѹ֖\K!`X(^oBr;-4;8 r !!ˈ#?PG} {%hN,ػ%'Er̈́LSMIg\KOo:&L{bz>}>C)%B+ԝ! 3IFYr#xTlk! u} /~|h{kWnpk]J)?ǜ>kdoN13^ai{rg!/bzG_PyDkv&3Lrt~NtPpeZlVumX+ͥ53G^h8|~h:g%:$خEOIeu["#7@+Ƀ9ѰGcZ= o =zV<ݴL 2~7|t!"(e:R""mN4J R9A4J*Vtݲ5^Dj,; HϹ@!%Jq1>&&F]ʿ@$"71*yI8a@sv"V&Q.иD S) gY;:QF"{& < >$).l.I\ Lo${B@+RJ:(l=-s-p̛sms86xZ6}lr_@LLI&C Vvmʍ-X>}b6)2Aroqަd!"ADa΁ d=γ(8tlZ!MrR2Rp>o-a dzjkЭqUt}{-9z<:+ݽ(Wr0pֶvvC]w@YQl moO9'Ɔ+1,iʚfob հ8dxk+{WȕaT'd4w&'F Bc7 ˏwŃt=VSχXo015?/y=ʼݫWx{6=F+n>?~pOۆ9z{kV<<ްWH:*{1{W)gǬ݆\ xbc<%?p;LFo&GL]1rtMk eF5p)[T<';llEE)k3s=/lqN=c7 *Y :F-ޝ2ޥ2#k !#M Z])C-@EVǏXO9\>rȺ]Qt|dm1 ](sRWu/9ӋAܽ^/o_(ȣgϢLb΢[OUJ6]U+ 4ڔi )+ D!MDXmiSa%\ El9ʳ%#7,}6ֱV8$gҕ4MFDL"B*έfˌ?^`Ws&2~Ǭ!.Xnd͚eݲ:5)ݐK[B@xdEd|T;9_-9:7۟ߌv'5e5cT S<'fv/18.J&e8|yŜGwQSps|c4s \!֬7/xBF=xȻWLS[|Gi|rtFt 2s6y.s X~V0MQ.Pw-! ZifkN7u8Fk[=a:㼝.ΞY.0SN䃊>O[ēQ+D1|g4!`]⌣)!x\a_?f8_/?cgk-ie9?Y5lOw*dt##"Dž@(zIn4(b>r6vQ`U(G7=.[q(hO7CIF^G6<,s_`]rrυXce<*0!59T(H`J@P5ޭv u> ,2YN~z 4_o]w~=<-_a"%y _9|xg/92/^5':eG>/%tlŹ\HJ0"i|~AIRqF:9fJb JQ{! ez<.s+:%X):5ueJƐn@BARÓ!2MYhںa$5YqEb[u1x Q+DbDf"+(mG6LÊpr͓c @u+!x||Lerβ:icDfJF]9Js*%Xu/gIKn.ZY2F!!p;(ߺuBrɘHQZOO,c]wqδԊiJ1,5Wdғ#84GEaq Ɂ:My5y>o} ƻCMJqm\?jQJa&SfNώ1*+2,:].qˤ|1;sW/F\*f-b>~>sߤOp??kx*?2J [{cգܾR|o\}p!D7:#W?c}vOZ޸>uǟ? vrt]]KAe1"2v/gQk:tk( zX" AlV.N rҊ\K(cnݠ( 1j\l,/y]+5|]]B////_ߗ1d0 ag[t=U/d:ɕ鐭sHhTIO()HٗxiB$`b"2M„"=Q&[C2Jk䤇INL0,g-4u [ f8b: <֥/Iėd0"7zRp(/!df)ʼnVpa-;x#XVYqVinvGAp^J*Y4U*3x!=UR4E (NCr%1|,J2!H3a6 k(y8^oި`UTZZ3(D5*Lh63<.i7R3γssE" LƧ͉X{*4I*ͦ ,P'ԒTJtBIVg"hAL!2.462ʒQ "%(@~GHhgKF \ݤL҆dzU]`+b;çOodfJ'.bOLk0Zbo 5Y(*9( 72Q$҅#$4z'gX⺖S>/m_7EXqQg\yt7`}[H$97w&l ɸ"A/%nW(n^6GSpJۓ-3D1 M)Vm?ƵR4+:s~_'&n6oDƍGGǼ{IJ[g4stY5a#-xIQBh5Ycbd\;P6DD-FkBg:s){G6 YI0C/P[&7PG?/~AW[ڼ#h4avT1o˽/Y"dZkl3]G*ŧSlW5b62<:~L&CNm*2u,lC@om;tZ{n:Hڦ|vHL`[ʲ#2YlΟ $c\,\e`I^xA6" g狻lMI BW%Aj Y#pmls3 XP!)FHwƟ0tuy۞g vGXw\ᬥMb]6f0c4F0vu.^b/?o?s)X/O_e|WA@>|e٘*{fi}v'0Ywi{cO%n֣@JE|Hj"FJ%DYw[2 {IDЅbCNud{#JI ,wErbd)2ñښ*( I8u;|08QRr\ln9@ڎwY:iB W/(!Ѕ  A 匄dv$6`Zf0N$"}h!C%BZAΩCʕFpBbG:wWćD)hV8(F4dKi;)f?W4.0BP+t>EI)᠔<<;5U&i'\ ROז(,1tْiEeJ4iHIs&}L:d=@痕 O9)djHcS]_<]L>$=G|) uE@;"^ ^o*KF*cT(Xz*F6"0\S.kު2ֶe"]I4WW^{gI,qJU`Z.UB>mp|\s Ely}I9"nkpb@c m\#%#Ix 9o_A%=a0!%&xmw톷}Ng2u Rt\`0(VMt0&`młUg1<|Eɕ6%8Znm[HSp}wT|j=!d%M-l:P$B.]:l"&vzkZ,6rެaYmAoxu@$ҵBi&eYd*Ah8{[o"FEؙsʻ ;g\,(-ȍrsGMΪiq"Rl g: ɤ6Α3_[ $:ܺۮJQf3ay1B;r-=|q*Jxab|xkA!*+l,N6&LH$tA,%M@n(( 1R,ӨjL}ž#ߺNolҖǏ8rɌr0K~]뷬ן[o@}_y/~yz/r\ϣ.A_Q.BD$Hd2ɵ =@b?q-tr !U$:dE4[R$\&SCbdYr`w5BDާ/%QJ9iB44kp"!iCЄ"cGHY\. ͕рi2)/WB^S Gsrޣ\)2Ek#ӑL mfֱlZi"kzOKe2-dZ) :4$VAf(I%I RG(RDMRxՃՍ9tuXVTK-خJ XJK*CHe>FqCX pSMR[f46 6).UvgGEd F ~Kk+dLgĦ *LBR,w%+q>+Ik=UĔBqI ){ƧLy6J%{o}8!ؤ͕$|DC"K"g֫Udb$H,g%*eux<rDԸnMk7+GхWi˝~+w^ZQHĚ'5'h|LFۜ. mjs,8#uNYxs4eӬYkOgo>`47ob75?ڻjQs^RojV#>OXOP. TNg[ۜ>eq`77aTy||m:yLuǓO0fܘn[N>ҭDa0QXAɖdQ6k:(Ոr:i0 4~lΎJ7Bb8x"WͦL}x{'Oxr~5SBY7OL2*2x0m!dX2(4SXkY-\1FF%꾴:d8w~Dty)h/"ίl 2 EˮϮfB!]kg $*TaXSĦE65CX)J.`W@eU AH^11M6Edɉ] 8g<݊o\=9·Y ɦk!h-ku7hW71Oz:ˬg˲L^/8B )lDj@ Dmr5\Hr}D%Hs~ hCQ"=G%)GDi|즌QA7(cY7}EqLrXi:)P"dF fh`Z2 ؚÇfE`0cMnsW7+ddZ$d9B M.QEn 7\4Bz0MB)f%ԭǹ|E+(}}bgOTrT\@"HL9B1  F'BK2%@P!> 6ԅ LSi\J8j"" H$DmQ![ EdP2-h|`+1b$S #5"MdOSJ/$: ,ej]wzAeԉc:OKU O1ň&i_]S@aWZ%3O(萨!Q T39ۖJH8hMI,Rq N.!кX&F֋H"N(C佃1!<ºzuWr5[4'!ۿ|qJ9dwG?$7Ҷ+o{Uthd 1gG=w?"QP 1:g<;7Ɣe=>%\%[ℭ>ηt]:g]pw[4+S>䟽|{̏ϙ +t G3LVpp_s',5YnfS|?X/{;3v?X/p%L)L>@Ă|![ΖT`jJ|b--kbfXfkpX`.( mc&t|$׊;OYO>3wge{zmm".gڂ#"APPE(G /%JB1@kdH)1Qĕ VOXȪ5h;w "K.qup-uZ~z 4_o]M_iկZs/O5_PÉg("L Qt}xP R04MM6}!jAM?=LُmL׵H§]ջD2ׁB>@iH:sDB)J'@cFN5Dz:pLR4B (ޝV̗NNۆsS`?FiC茈jl$w ;Φi&Σfng&4yAFklQӱrJxw75cVD"O56F"MmP }ZA25#E2|j\@KI<4AmlK@>3t5J^: kRzDnX6.Jˢ1/&ȳ=*Y25!$㥤ϊTRJ>uh)($W']|3Ug !J GDT=KرQ\/5{ps6ӧvw/Vl@1!C֌ 5exɏͦds>ztAQ*n\[oBA'q>Э =+nLw~%R,GjTEu D`j'Ykw_7= +b`\ !=@uhF!`gq~(ſ|}n_㇧'YkbH^ѝ;Ȩٙma!d-6mJ DaY6w~ΕҰ3FI(tI"QXNu IDATük5|]U2.yTw-SݻpƤ+biT1'N1RP* $_[ZSZM`GL`2OkTL@!iPqq4Ty#E۹ERC$3+t6P-EQ\D/W,g;!b.xT.iBr}&9('Eɠ("zG#BHS;@Pw(IucȤINah)RS%K  lOΤ$T.#VDfjYX 1ŖTZ4m S<:c2 j2m)*Eh!XvR>;E@#,Q6*HRk2]B{Ih=4ΣBFф@6҄HebEL22A&Uv>p q!i !LI("m.l~Hò IZR$Ha$Ze?E"u@c9l{dnwRddJdi8 <2՚MUS ;R ,/_J#[aΣখ ea{!{rU/qߢ(yD.~_r.=⣓;<:?$=ۛkGesLڡJ'cܧ׽Z_jFDDF$uN_xd}'wLK.WTM0ᛚpȧDz}CQyhO;y1u;8d>KmvoswԚIbZƙC>::,)e%E=nc`&x^!)4Zj6U+ oRv5ND\\sP #htB c *Oؤi,uS?yA*ԧ<_9@|246>Nn E-5Ր"x S`bb@V)lH5֨əŘmpKaQPdQ{Iuzߥ﮹ Z*P1RFA>g3 L 0=|2/W lj// ^HRv[F DhMՁi=ȘmH\1%v>66E@DHPt$UX!%#EJB4caS]RGcI >Rq@l"ֱ]x6[kKT $Y^2V7;1RJQ= yvNҺEFm@H'5CٶrT+i'׊HY#1gq6TZH4oTS}",_ ")C9MNnȔd,|@ 4\- `hw 8jJ8NQiCjhM 𬬥9f! X@xZ3|R(A!akCj{D3lCb/H T"ub<|`Zhdt{2.i~Г}d I̙zZB{2))Bz^b Q E_"Dz/IA ת FWηlkB/2:Z H2NGJEUg".m"F%v`%l.EzNgXf/?zI|Z>=?j{C&neC&njG#2ȼ7<|H'&\/8*$>bҊ|}s7շ? ݊O Q:P_#-r]%]:G9Jz\Tn8w0!0rLU|V+& T'2@3S.#Na9myk88tZ YZ% ˎ?=v5 cs2XOaY+Dʓ:1C-ykR#S-zE+#2TZj-yQv6ոD")Om Lm^:bɟ80h-1R1NUZXd}8OdJ1M>w39BPd R1.y!2tz}FyB@T$mtTU%d {H}?ث 3ר BYfVgXBF +:NS Fh}g2 `R|p6⣇tKZ$y.*ҺH Ql䇯p8)S6uo9AG1ZrчGmޢOy=.O|.FIn?0ܣu%+ybfɿc>AGgL(v%o\Cnϲ> 71RnGmWdFsk6gF.Po71.(3/8yd\킦m[,n3'+)1Q4dEgي j`yyFD <^ X^>$ꏈB;#܋\2`!kA`;MW!f%%YSf '<>~̺j " +GQ_c#_ȇ+J^c|Nڐ%2^=?_fŀY>hU0 f9z/m5Bax|fq!zb ˂q9+1hCв(Ԙvrs1uaUY].!Hzީpu22/"z&V=OSh[MȜelJw-(MrJ<&vl@U/l`g7pLhk3Cspuɗ hJ&Szt`0%x/ ^{5+|5O˂/Si/z_{ h8?9=/< }? 5)/UHY/U*%FAi)N3R4U2ňD$$>iq[{Ϻu2C=Ip ]JSH Í)4&.J2D.;d'3UwՖiilζf8IEglGCF>s2RZ2Ccux*EYs%!I0nQ~-A %%fJI(]`gq \7 F锖%4<.FQ%`Mq2mĄ$o}+JG\ DCm}Dyߧ/'6#) C+z?GjȔ"t/n]BHɳ3C(f`"uH΢URD`Cbc`{⍝q:븩<bTRK\C1)9xo_^mX|Cn1?{|?f{#WLg;4r>6v&"][ڂ&~O`rE7dIe縼}r 9|@}; h7dŔB+drꄏpzkw FhF\7So,?~BcRJw'TWpdI^HjZ?#aWԶd>zV |V|Ǝ2跿!#r1r4e><Aw{m|থN2I%ۦŅ@y| hmPz'ΐn}ge;^Oؘ!nc&ŀ{LЈeC>2 w\.NO~Ǜ-7mf ud>1O3v'p䢱LyNXr)dw|{GwQ<:řcrڮi:dk F(؟a&" n7LG%?`k2Dş]sRھJ f9vAys)GĶ%# ݶ"`D$vkʂ!Vn&P0qT78d1.!CBgtA+ot?!k:|˫y5_7U"/;⫏2_&ɔRSb6%> IDATw/ %1"ҹ$,dJl} pJ$]A9D>[dIs%g=QN˲ݹRݩV7l\ɝEuvvEokb.ճ+%{HqVܞLB(t1E`>,9Zd l!`)ʂUY@5 <ZQi}dZHRj64BfF,9"Oy$p:EKɷpX:X):#/Do7.n-; JAc7X 3Żevmi|yMP^^蓭vI6넠ABgM qC,O2α* /(>$#2I?c'B @b0$߲)(#S}*U)*&kqb8m&6$&@ɫOA;RcQY z:m.֞}Ar\d|oýSϧV="y "z("s ݷy!E9g& ;3nSm,?b6wd h+ˣgܾc.O8a>j*-~ 5c`O] kh5DrI<{ 2DltLh!'rq!!c Fcbu qaBt٩ggdmё~W`<Ý\-ymƣY(aUqrOi5&\G씕oipd刡03í;G!Rѹ5Of 9Wꂛ쐷vo⚋՚ |Hv,[Mo6͖6Kq6 #c6-U0z@tNrΦ2LO}F>&מ_b_BI&{# MfQ1 #CB (ZlY^\'N%,֌9bU4u<:F)f4HQbAh4gا࿚WM|5h>5˿_"Er/>sL|_I^DAEȥڧ\K>#8R(eQ:rB&?wSiCL#RIHn W4eeSwcq)eYhćH>| x%Q=%&0PT U UZXRƀ62^ӯ)G&jS@?OBD)p!c+eY'}oHmP 6B4]Dd#8m"3hR✧I P =k[ 1BK:8x֜ _{gO_x p*&;;tMC!<ڢO}a;l7׈8wdX w TrT_]Z=f: Xڽr|?NwQE6ՖhRg4)wf{ddgkFeGjqf)`[6xf61 vК (m21gMa9vΗ>}Q3FTгiԭVlVo:/"ækyp c aa-&,95q}Vg A*Zbe- O6iJ*R-S}F@z9Qk40)2JRuc@$W$1UHXV&!)J:I{y4B`f;F`l0} dHi$6i4  tڴ#2U(DV!"l KT#Bȍf ܀[;\u`z#ٶ&p<:J^!qQ]MhdZM`h SeR <0֥E\e<12ؘT$7Dp!r܃z6tb_o11=@@JEt'Y6}Hitz4ljlY 8蚎,FF9{a9fF1VIj>mP &*Ac_ع"ɍ?`oO3BRd%*t5I{d;&  h.l^fِlo-ky| 'cNO>bwf\\=ڱ+(G ; ^pWq"}ípcۚ[!)9:Fvw8=xR\>_:ͷ|h7O9ɯ8+Vێ8>c`{\<#8|$ؚءu WoQy0Myxv1Ww{}zK}\d"j\/.d vK{uţrydY5l*hdS9AJ IQ7-YJ"#dqdwG㙍ƔB,ێ)؟<'||}T9 Hܝ ׋-Ҕl,RșeCV2{Uj*P(9.vkY4]` T]x%4RdX밶#xw(nŪBtCb§3T]W"g`Ϝ|?/2O3!s<}Xw}teSm#Bu68ٱio,:fhB6fp"^J|Ȑ:9;HƦ.r)QN@*LEdkXv D爀.-`h,\y߱,]׀va2d1ҹ DQMUH$!$l;>|tIz^mY[hm L˒`iZ1eۺ T1+Йb6SF#BL37gk]q1dR R(}eo|(J"F2(u"lt38ݴ Xu,Kq.@#Dх>8ݶʜR)02Iم')Eȴna8$DeYpl[(td(7)VktaDĆhCO0=.yokYw2}NJy5'jsR \ ˵bY9k(KY 26x` '>E$% 2'79%H "&5DgB2V; &shYhױ7{g?cq}Э7=Cx] kJ#suqe'E݆U k}T 2Xy0jYmtVη_`BJ4w͆&%?Jڦ!,5V4lD|c)q"uARD 9I26ವZATAHAh5v$-t-@BL "CjE }ZKMRRHެ9_.ɕ&@mǶ#uF#ME)p1^oi"$~4:Lƒ A䍳1P(ID"`8]`"+q Xn14HKX$P.uk p>2V:v8jQLce'i]`x&בRs8aIզpLI.DmJݥ]tޣdLIEdj{XT+$Zi!"eɵ 2%(ì֝e5J!=t=01%N>>5=탭mx z (^&ʗ#FȞW‰'S$>z^|:@!W\&D>z#*W"Vx(gi%ܹT5d7{ UJBz8h<;[;dZ>eh>|] /B/g.+>JHA'.m%T PbF+.xDGV }+𺐞1'(iOJ ZNkhϤMb9l+I,sdS 6@^C~ =Q VDR bI6lí1R&l6 =;!=^lBRŪK 5R F:U\[UCHlAdJQAS Y r)!wɹ [?bxM|D4kp|l?y[E{g{ggd ]Z^`%E@s%~#>`_jC\H|'/h6c bF6ۢk;+˯ox=F#Hwsr1r.-Mzݦ8RB a/>KkE|wLKikrݛ]f@+C=*33SRlmt3ʹ[K٘e;E%߸1.* /rr]|sl.WK-ϹX^1o6G;޽,auUcm)ܾ9Aлl:ȋ hJD\E p' $jjƧP3߲JaO/@__ؐOGɌ|.5Thy;zGKMkT^aa4EȱMC4̲]sZIh1uz4Q w=1(ԶGLɄGk}ݿy>@^+1_Ó`2?usﱝlau(p7I{ X@!$ )"W3HJ!d<}7u5ҩgЧ 9nE1[3ĐBZR燤z|H*R`P(Im/qα5Evc,xc}5{\O z."uLmeaF3V=},ɀ"ڞMHeCbDSMK\$3\6-&GHuH,R:F!t$yFYY 1Z}d`uchl<\tl.UźscU਍u%hCD[V.`I7!X Iu("PiͲM;Ei*$@bd /X;RH>|R3*4f`~eJXǪx^"c(TFObue!1=JJP)5t`gÛ/.~x?m:{H_1U5}ײ.7 ]g)Br"}TIVo{ D 0 h:GF3qZ<8b[&-L1f*>h{?#./,b`RcJ,S3x]CdS_Qbr%g8*2knoMx xʂ\w.<<5guoHZpC45AZ20A, PV#J:,Oڱ OƟeA?}~2s4}W 1 z*45o`oڦ (74ݚn/5Y3L' 7Iz+rqa4mB l ٌ9|y4e2 7'N ~̯:? &4?]> (#)%N#HuH&bJAP1Reu!hO £ćHNib9׊rHt> LM*=v`UsXڥ~!8D8(5Oc,K#MR K -BIE,$Z@g{J7,C ert魧s3Hi{ZHf%L"뚀]LvJsCh*%"upv6Pd.b!cD (s鵍ZG!(qEkiu\FV j?8*vz^IVmBp46+)$.m   6BIQv8t}bo'E" lLOYɤDs)q> ɔDK|$TMŁ`]z7dWA$(lΆb .HiZ T4ɺc%V҂ aaQJbkK[7 *Jԝ yL/JJRX@盞{&9?gYwͭn5ۥ3=rl֬|oS}w_b,OslyxzAYɳH{EA7Kzro"dxQZa2h2,<H^[$Zt> ۵I2uO}l:u?'3FY /SLn!Gvw_>| . |k} vR*nc/, \d5Aw89?ip/i^ i֗ံ#oܸ 8лpv(T>w߼?|AgkeN~HkkTm7[Q#|ntJ=N1-?/nbGm~#; g3f5t)o؍[[,[}0%f\1LؙOJw4݆uko`z1Tw.v8w~x1O./-'1ćf[]zcp(ǯqc 2)5F2mBK~"~øL q/s9 @si ~OdQo% !(E2e-JmӮ7ľFdnM b]9m^^@JT^֠$1EnB̷W#sC,,()8߶y>s|~%6_?L7A?Ӽh^.zAh6$CpCr)E6xD2> Lظ@a$ִ1`c 0J<cH'1In'ZuH iDd,U"fc|"r&BP/#lC] D `t%BT+$uA-9)Dz)v0 z(4NT.uZvbq(5)T$ӥVB$WX-#GaÇTB`@ v\(7(ȴ†N$LJ`S>5YwS(e] '#iGYr)SJ"-5QFn27̤R(*v|LwԲOaO"ILLnQKTt,[>X$q K-d~بrFIE|ԎMe&p6T U"Z ZXi8Ul.j[TZR*BSBSeaCd;ttǔا Yn}ۭ F/~̣9YchTMttd{,gx9Gxq}n_BE)qz6'cdpcv͂quzxk-*te4eZS<:luR'g8KB 8];PLFḧ́ 2N/N}vySSK魛QA,IG#݆Y1hWKꂉ~?~E5_w_Ȃ~1z7#/>+zͧfL A&C .zHP"0"i%'cJ]pKHEUe"9H')u"h1kK"RP$upsJ14.] ٮr(Yg4+bDM:V32eRt}x)cDKCT5ReKB{X-u\RVZ&ci nl:B!Ʌ\\;O6!KR,5cPvt2I=r%!]W XKLa] *I5XK&E$D,t)' (BFA<롓qbLXkk쳔:ULQC{Ղq1 Juw=U)4MlL?wkmiL;2HAR A牭R0SHuq`'NLZgL( 1)|Px Qg~{\\UbwES旿5KL@E`ph2coo#l{bGaf4=wI//Z,S _ܺō5k%9G"4<4wUmSMv moTzzck-avbq+vG`]G\a]b"1dZ32ښ>:B Ԃqz"UdE!"dB*LfI/ONLD@tkQ^0%,OߒeoRsi[h2+=乶}=Z*O,x :=lqLBb,) M>+k5jhQ\6=r`Rt6ҭW.4WAh]$jBgRH3LֳZ]C>U>bwbH"pi1uX+ȠJCm,qw]=te~'!:rدv寃U??Ίr,JBLST@kd*FIE-WChFy)$jytv;&25X$'ňG:Cli*,Z9LiZuͲR/HIir c w޲ tq(@@6P{B"}P;bo2f;6]C6FZX>ZlFJʠG1ӫOm=&%"++ZEB%ZBLƈ 2l?TX+J)ƹEV) x9MMrl83'3B+'K`%t]`$%%:OAS֦Sv"Ҹ|D͔d)d2Ճ>IdJszH8zb(ܓr`c:K-CS dZ YREoѬ嚭*l Q0K ë9Z1&Pc4s HU,K)1Jr6={mug?cogx7?wpvυ?p j:KQ1V n W4<޻w[B_Dˬ.~ﰊ/hzqoWho|\އ/#ng||1?>#34Vc{El1=WY.V,7=/|~xyEc^`gg3/`~~65 |/ W5; ɿeZY&D_ф7%]޿`TQvxOl\a+%$1ROMѫh)0RчHz)A&]6z;d!1uJ)2~:ɟBTpvXgX0rZ階uش5 PFsO(!1!b%dHvd >uF[DpchH4BjӌTE T]lw-V "vhJ*4LE֫5IAo{΀~Q"RX3=Ӻ'JE7?Vs%)@+I&& )ȸdF@0@ 1B&"3ZVg޶,r\'okL<լD1B34S$O7!)LU'9.N2V1YfIo#;FqLh2∈"{3\CUu禍^9|L5'b`"N$ lǘ|ȢsOYړ^B_Kb0߹|L)y~sVJetȤXv=|/N f`Z(FZIAc=󰵸Cp.¼d. 򝝊c6Oe#n$797oZw?{?i*{}>oqr7,{=p?l,XoӞp✝cBt)-'uM<'\\/W8}Q Ymt_ ɏpdJ^mBG<8*KmOՌ[px}@~uh|_޹PT(GQ>Z~(4[jwȣoɏ.z=CKeL?ps6軷я/x5z$)+ BkG|qq9Νd! \̓ޱ;OLX&CL"ϘT9YQ[6}flݡ9s<^#8يi oreؙNm㣏?d*:[cFYMzfw{(P]]7TU?boz<M:N)LNg=A6ܵ-o{u "jN9a:g\lDPLǚԶFvsz>7s|~u@V/ ϲ|ZӗȔ63u*'%6'ߝI'bwӅTAb Gfx*8,GS%:F&Rt;"E % JDd[M(赦R@̛&Bj&ePdJ* pZ 3Ck.&d!1̛QHKi6`1Zoq)>ykq}GT=*ʧ6$0~B" 5HJ՞E瘕qQJ"{ApC{׾`l,eFU&(T"˔F:@bIR<(KBF26y|\u!*H n .^ZQFP DBa Rk2p+&2=}hJ$aQ2՘!L\.g):ڤC m$S"J<Rg$R&z"9U"x?q&+d9J&Pc>,fzڐ$kS٬%9V2MGrCn- YTK6%8X YDY4SR7|@!*B(4..yW:cr«2AOC~CtYKDb6:5G?DAo1*TAZlדUmdqufb&\r~W,_+ DX"3M9zWP'<9 -,U9ytA TC6Ws/P8y, >BX_1H):b5_rxnc/ Kg!мtG91Eӏx'qQr79b_\a](+ACX !DB2G+eΨ0㊃7xdC˚/ AEXF@z\T^j}@)(JM[X cɧL4| -/qe^mꋋA* SnS5͂6Ԩ2MN۬ȕ=٤p!4]bDjALiSZUEgOCWu0е\׬i_K rʪBٖ*0ٜc SQ6fEC,"¸B;O&G,y<4d e~3“Tx<`E&fG {dxx o >| [JoY=9|>]WۡA_2?>uggi "y|X!>x)H,Pg=h#"tK3t&", P4c.;KD|kp1%Z$CyI"R- L& dT Jk\6`xGhTC䪵{GaEZ} uںd#e4J2$](&yFf LsH ~e7@ A5HQW%"J \Y$jV!fZл8<@K<=PYRi`(3M7$2bu aHNaA}h9hO_.亦E0I΃"\ȹO[ ׯ88>m;HϼnW& K"[wsy.7_ɽ7,K~wz >1\U*EVb "h! @Bj#h%m(DHbKM82+#gp'-gfTJEvof3߹|̏OO wةw9[?^sܽNɬEޫc'1%^.0_,x[!é*bORp|moy`dww's2V3i4[ Uׄ &bz²?F2ޒ9y^o͐|Jf%;1\ Ǔc~'(+¼ƍZɳQ C 0T4)B dZcʌi\`e=b6'D,:>yʝD^]=5k>.G5g+sYxhk3s@!U Y l!yYB*$ZZz;/bb:GcҰZ#f8`zq]N8lnp|`>sqFcoT#HiD}9>`,8;T^OT/Rf,+0l~\g}0~ދ RH(Qn>4CRDCL&h!.)yi~GO LF%YuF:$:&MAJͼ; zǢo r,K/D u[ri!(I2)(rC!6\Yd2j]5ZbfD'ȓ1PeMLe&NZ z٭*{UQ(Mad!5d,Pr4֒Z< MA4)deLm[5Z B KV&Pz6 h>LW`S&##491kEy4ll%ײ怌kV9FJyJ]#1R$`fIAȸQm/$wB,-CQZ`$ 4UKUKV*#G~-#?wo7 vE5 ;qټd܄rP`]n?|.Yqv!C{l02.5(cnwK)hg^#7c:Y:ۜ.Nȹyߠ]91nm۳w! ]\`ʂ~xKJ3mqZ0].?w.XN~#S7%kYpzz̝]fOݹ뇯/J7ބi9w^8;~b/7;;g\^S骣W[Ƶe`&]zv{O[.H;FX`'x|.Ya0I:GYbgm;a]D8Y(aPieX4(:!#χrxxٜ-gDע [rJfhT-O9]4Nΰopo1u4*'Wm3%5S~sE*Zo+v.N#=p4{ǠwώP^3\/Ѽ~؇ sWK9ӟkC@*ڠ Ef^ZHzg[_^)"Ie Ĭe4ɐRҬL& mZ*  ZɎВ(mMMF5} 8ʁTXf$D_36&kn1̬U5)hԂ*J+JIIg'B +g"RE|HJI*ǀuܐs\+l,s.Hƹ$ɳiF2-ÌQ\3ϖ#k}d ZxpTRRdHTCf\Tr?2+AFzLzdi=Rxy.$%:6|;'Gr6gWܺa `ji.qm)P!1N~-6l@$R 5FBjF#h,(ɬ쏳$5Af8Sv`^>p{oy{<<;C~&Y5f\@Gc&3>kv|ÒGsno wtC:㕽첳dzcT`Sddr5ABRl9Q̈z_ڂN,οt |c.ր){MS>sܤVԵlކGC8hij' ;7aXQugGs>yqg:cBhs,l`vo;oΠ)!Ղfqwɬw#"BDfON!;v6g\9,IBąt f#b<"+tsΞk앎V\S)]J/h\SOH|`^ŜTdޫȼ(Kàڠ>̨:\g6vpBMRv84z0hghOSt+c]fgْU_}yzY/맮@eW:k™)@_2K_K6|/Q-BjZ1Q&&BC%sLT<E``[ }f2.HvUE$XI2z@ĵѻP%"xjTd4> &֠ș8G9 FksͥkH89J`\ܒ>8TEXzHnrN-"7T$,&wR!{VP[(iX[ყ1wR9z2-r@J%Qߗ [Q$RU1b.gֲ֑8cp6*{G9BjMnL'"$WU)'GA1+);rJd8Yz}u(3[a8߱ULFuU%}Q)6j=\@:ne҆Gt D> BR L\ OƝJ'Z"gG%>7pxKTeq>)L2IE[ 11N.&'桖ZzʥN!q`$Y]Pek=eGi BH=9# 8yrp̓]^{ j̹m}L Fr6e]p|ѲX3 ^y>ČXcَs w舶'Ml 伧qfgBxٟ7A-SNosfv_yCMq'?$k.K2;?f$2x$Ь,aw37npg<|YϻU/}k9>wknBPf$[O~'Ptvncsy' Uò,JNR 5)izp٢c>kYѐBԚlr6A2̖S& Z7xz|onL܊]Qeh!rb4~rJ/8=|ٰ9|ih{ 6cw8C Sd)}A! ifŌ<@%Qi~>yYnnr&x </+Y! +Kk\h"Kk@)\e\VWg~Q9K ~1z<0w,[b0%U]2_LȕGde3[DwWPGM=hec+d%Yqqvd1rp6YjvuYd%|Y?S05,?4 uE,"0eE詅)>C ȕav\9tBJ% t!=])U w1bH!I^$$Q1-SYlF=3 5 djM KJӺȬʳBSjD]Q9bK$gsubl)$E!(1YRh/AeZgmw=*YMV!BHfQUI6"F53XhL/\Dƀ\I P`K)%hmX4lP ȍh~AV@%$i!i1,;Kn2istEEh\*2ʢ28;5CYZrwG%Ccd:VYuB+ X-$U&A *O,C\|ZHFv)Һfv|9? 7~_N>?Mju=k/(" tp>"D-!5ko 5k/Tj/C \a rzFZض.Ř8!R䌀ʈ+ЬLF#5Qbq?[,3ooy z{;>Ҷ=_ggg|K&ǍvQq:`0QY V%vClԒ*MF@dZy̓Ї3zYC(L2 6M~p#Φ3>VMy?-bOe9%TlCLG ,ѭT:2+Td>IbY;?]p1PoECdHa޾A=cMF.Κg$XC?f>so|: >IAYѹEp7nyˢi )3e?LNQ_z>//{+_\+zy+VT`qǨxtLgd(#!Eapn !/sAY`A Xٞf6e3͔a1(kvAW`_'h4rCCfS)4(m@F6/nV^)%|Yǂis_pEKWIkm^=_Ͽ`b&G2X" $1&ɣJԙ\ا07 OR)RX "EV464fc`aQn׆B=.Uƫ_"^LRV8צQ IDAT+jxe3iO/pγl{yf)3IGm@P4}H#C .e !ȕ"Kkq>9*(.ӳ#EPeuA dFD.h밝!DA׶9G%Y.e:1!B.d\oA׿I.z8%v~_g|{{?qWr36r!!\;*VeJ`DXt2m9dXѣDTR0.ԕqkG#BVsEN{1:OsFjm0T+Ũ!itE(.*76kO(2z!66Jw.I}F>~{ ]u#.|:ACsx]s-0 OAso3G( ۶^b)&z㖛!3]};vߧ=,qҡy!7_%42!{urC !Jy[ϗLXRcHob_;lD즍"mےGt풣9O۞zMބvGۆ0ei~Nkc͂!l[/34bצ1Ωۯ݊b:_r{ C9) n#ZMK X.fT-!Swx!'EJjȢRz) P2;N'FQC9"(٨ rQWdf@Im4'fA*֜Φٮ٘RWq:՚~f0z-){r ,/լf\?Xeiښ= !,.&Sd>"(TGUYuicS>BȠ(1ûU=/XgT Jk24O5[h݂N.;_^)%|YJ3חf/I*~ry̿L_7et1_A!ک !3\'?x}H:]QpwQArQĺ1kR x,dh(kcT:F+Gqy,BFZ#cʷ,;u}y3W̳eî!q>e g":V+%;# XʤJ+LLJ@)KɤJsBѢfnB [7K-pBprш;c&oxv2]NeeI] ȳ.@ 0<;~|2wY<EURAS+ŭqǓNsb /}7 lMQHl0O:cuq(یUAxLge)q6 |w>oݾ&0ޣYbKn!4!@:a:=WnRA] o6w_47_rs`##]0C3Λ9ONCVՈsgKs`gmS*>~zQoʭ G| KrHB E{,Ud$-Ysv$P320jy9g<~&OgDKIz6o[HY19?'^!TPg 6)eS^ehQӯMTFe4"D|OqFeN2UQ]-g4G[;yF x>b 繘WJ&W@cLg_=5! *k;[gOȫaE= =3y<{gstEY6KVO3;>Z:E4",)cp[l9GsRc(!_8|`Tq2[ND^O^/^{揩 d/'}ҒO#muc"J$˵DĪ)!(eu#&q12L'@!\4}`1ː1>-y6V]r-9qm}Ĩ=q'Z732)eR)\ &G2(US E@ Z QF!2â@:K[_H0RDBdZ#AU8 CLYB4?Ѥ똜J6$@]$ / i3@$m{˪K&6F˔*RS$ y)dP!Y N8_̹xLk|d`k>l2)ࢳd =:O>tI"2c#QdҰ7.XYA\ʭTJйròs<[%5 v>#: Hz\d!0. N1J,AUe?_y|rkk:`VΪ|Ĩ5SѸf\r*,ןE<`c$XF٬Ҍt6P嚭"=-$EN% ,bdRJBpoH.RjI>[l?!>t1c~[_˕ee{-~+ t֡rÇhm M{{<~vƻ QlZϝ]fIzvFj ܺxM *}=dEAQV7hVgP)PiCB )d>mӀfdf$,s5qs'g>CHpEUR2(YN$FDlEZMi}K67nRCN<>9!A0Cȵa{c qU1dRq:1*0uM"H$”ܸuy`;ý;x= kd8DBDWM> ?Ê`S<7%\sc9sR0YI%oT iWYbrGAoxz#9m:èTN0P֑wa$㣊\@uMiv{*Uy,ԦKyR?c^6,+ ^|xs2~Aŷ? f!OrǀyL\JSC)|Lw.C SIHdLR V0226R+|}vBub c]I.Rk hV hy3r%98Ksl*Z&/ BpY.ezR(P|RY!"S ).OBLNJUzx@-O :eQd*4E%ɰ$XѢ3C KSlk9F>R!S-+7Y z s]!4 55dzR Zlp<2_͹w탃5˪A !F# ,缷,.83y;2EM恑Q:erlr#\rzB0UU> 2z%_#J #(  b~z>MZh==bJ[#H.kʡHJ1I\@+H7/rAQNu)ϓHoyXH`thDtP Ɂ1z#HJTBޘM9Mn )Te2W6J`W/[4GU`cLhMC׮N0ظͫ ~vG8zl^\#@Gӭp}1w )Iq ?@NCߤer}fsf)]Q5_{Og1q6:JTӣ G80w%+=ƻ=b5g'Lxzq3ؼk(B6s^auaʈgOwz턪1d:Cg'4w)B FkMmG!94p1xhx\2 YYLs9q>ixS mli1&+AkDEuE#1Zl1er~xE,WueR2Y^E6#iVJ=h.+v9N([L=G=˹H9WKݫ%Cy *xHqUuR\?F&SL>yߜR /;.fooTiG{70@*AЖigEbyE:b`2!XUED#ildAe`Ǖ3oe^͗Z?3ȼϹ/Lŏ)KI|!yg4tk?qp"Ҩ5t}#kjm<"֋IbA# Ѭڎ`Q4E2)77t͂b TA 2=siC$W0KwgSv%ʉz!$FNd£46@`uXNnv| I1"bc$R)I2Y[fB1uc[!L|`1V`<3FA,zYM.Cy, L-(3E-.$a@I:Xa]S)%F+,5!B):L@rSf ,*;o˿JD&M^ SI/gU47bPR`FTg1؅:m,B`ҧ<ȓiܨrX`)BDASɼ>p1tF77?1f?%WU0Y.cGꃀ iLBkZ@[GkZkF@EeTF]i><%C:"7!6FF@eUӓȌa4S5h "C)I;Fn\ȢYW,#rA۵Lsaf$s|Ԉ䌷j 3΢F*yI\C>^9D@k *ĥAsy\:RG ,|ݜJbḤ9 ;-Y}pf<`]kg=ISbY&Z{D4%fVRm8y0R9Gm jIYHL@$!a']wH(}!&QHIzC]>tvPy CB6.jJUXaD MXQDGNU?xՒǗ8x̝/HBP'YQU%BHLLg)R|ЌKv-H+aJ=F]l zoV)F")uKO2ѷ-H*t!z0aoG5ry>x!q{5H9yd kKM=ۇ@Q ->" NOp".W7pM'dR?>jp!XmtX2g1vzq]/;gdF|סDਮ*M"qZh<[nࠡMi-I\jE0wGIɪ[8[MxEN 5¹YrpvAJ%08dBZl֪,RRQۀuv srSssQL9,Ɠ(E¦,oRkE uihC 1E,ӧO,Kb5b2`Q>g IDATskht]I Yb-)V)*Lim9R9Gm7 {"IZQR9H W>$6BX B@YJƅB OS76x=,1t"66w)!f($6o%B۲ )s-9D!yUp5,[$צ !o6EJ J߼wo/?v_;\_cq1N=>zG(Mu(_ퟱyG[0gFf~]ɣG\] Tow|_18aZSO/3cC #W Y2[Eјo }Fg,D_+]p}!;G,nnPuIY޽{3*c2r;jlgSa`mDsOYB̲ہ 11}-)9e-9%rN#Jzd AD`Y.V nط[˂dGy l@kh^,{)W9>EOvar {S4m Fltd4BD80I M"Kxh1hR5{ձ}F8yQm4^I z,/^ڷԯj=/f6"u[q4CWbbHze?kyR ~ud^h.=M%^Y?d>=M;N'<Έ!K'uE^"UEbzKz^1^OWyL!&R"Q+H B0T^}H (Ip>vv+O PRR T.!3>2rƄ}o1׋h YZgGq lv~ʉ1cXanyX@s!xy|d܀Ҹzn"D@Fc9|Ňva:x&9ybY@ڥ,z ,Be#}^֕ʒZv ,rqoO1k +څO]:A#2x&(vu"77TIE!5CH;&Rs]5o5#S#ئDnbf!  #JAQ8"B'&.-Px.a9_ЇDT"~SHN%e'dHRLNq7Ѣܑa(!sņKj7lHbW/R@ 0J Sd@ E\֓_B6=nZJ ƅw#~u?7o'=3s.?cs>F Z5~ :~{{Ez9Wrܹ=n.뒫K|%L8y}ƣC {>j=O e MM]WT+oWB >R>GG"+fdް_> ޺/~􈛳?`<3Ky3dֆٔcsfb@$hm”\Rv9q>!3F̪gR7?{TJ|S%8_[L)n''wwߠ?jl3йHZuVd5D" dv=ֲ̏@if#R'}GTM5v;`z["%XPZB-e{5=9{unV\\ kΞ~6%Eӆ;ý9 AShkV]KSՐqYb -F CSW *[ ]bLTݢbTh|x4K;A}4M^-_m:N[W;9oInw_K͖RMϠEO0;LjL04S|%x Ćzz;$穅! Jk:ZБ)^\zRln֢ R(F*Ony=@Qg1JcLy[د0˧ ^_@~5p> F!S`d9C"r ;0î{P6R:29D< DڥF|HYlx=-tz;,%dn;d4d/(Vl$eiu}n`pv:xvôihʊ#g}ήϧAKw sRH C٣:#b"I;wL&3l@@*CIu!R* >XHV8w2lB`9m(V#Zw9^ ل( 6RNVJGh8gIv@]&wd 2!t|r~}@$$NFJ9J`H!0 BKpdYwyή@ eb;ԅƨEJ@ %Fg1Ƅ -Uƈ6 +ݽqZgٓlvdA}N%\m=Hr@ȁ\1FbOﮫz;B4^H2,SX%cxl{FFe5Kwyx /Xod'|sppB?d>.Q͔n1FwxλD; z{ k͊~k)G-KN­\=Ŗx+~{9)֮8czhDGmJL4uC]^~ KVU>۲\?/01i H>ɸRG|K?B#l4gلfZ.(Y gMq8i3n 5F;t%Q@;lY-m74* g"Q j;R\QHˎ AR({( CU}DiVdi2ё(;zͺ@(FE&I~OR:vu|u!v-Bvkb!(ADK4I?[BUאDa!@#(zAUHip)bX(ufɷE!NRNNɸ1:.jx"牺hIZ"J2XH'yl&$!2>3)e`*WIS|\oZљ=,$ (Ĩʉ|?D#=(!uf1! u >;@#!dp$!m% @u"a]x}cdTh֝cYXj`m#d[G=nsee7~M)Rg<&#h=>oSjߴ3;*3o_5?gs'O-&!tk7kި 3bg"vc^,!?2@;ļ9t*%bA22n; RF5ބzFYWbmvөAY39>aĔ௞|Nz]%y{ymʋ[M!ըBS̈́땤HRPjMv zjV=b,(Jl<§nkF,n Rځ%&ߣԒRT(SrTTF0tkz~I?=FW'ǃo$[W*ȼ$ξ|s C ƀB2Dksϟ)n}ZȼY*% ֱc-iU댑P)'~>wp(PD; \ZKEDêw8)fY!dS8ߣVQ(dbJr@+A"hy8(zˎvӱ="zb 3 Zްi7 pxuX MuOPnڲ@MR"A4Hﰀ"\s LM$ O٨*5_So$Rʌ2sWKH~r!{ٿMiX'<%)v ÐlÖԭ͎11` !RDDGU6]*O.xj'ayQMiHV]f\/J&ꐽZ2kWD"UsPO:Oc$V .`T [ӕ{Zdϫ9$[;oH@ ZHDr_g4u!dv?FP~S\CJh)ѻZ6m:t5Hs 6dmQ;M4M!Qgxhj#fFg_|}tbzDRg-}I?Owx;bc-q#WKz7|@7x!i%EAZH,WE=vd:GR7y!3!Pn|f`x͓Ohfx}ģ'u{,==e4hS찂RGbg项&`cuC{%1:TJe+D nKp4ԓ{g|pI5gw(&A[ ,7Vnưl)Uמأ,JoͲ?rw$!haܰܮYFI! 5׋CgiҜ\ǁsn˂vhq]u׳Պ!%tq ]>V?/7oNͯSk!n}Έn?W d%רd@1BEzR +FrPA(CKR(r卽Y7-.uzIݢ-{,2 I=QW$&9d@wz^@WaO"g}w% [ d~ҋo=o+lj&TNUhCRB=>ݢ7DRKDHxH1\u-BAnȲO5`]fybZAH(-I)3s)Ft tֱ{ڮ5v-۞~(=Kk9ΘЌ={ gF@~O?ъV2qP<`5v}@a`q!f57W_!t*`{1KeOX*MLQF{)31.4[.'zܬJJey]P OBƝ3&!H !$v"-FqZ (i@xjmB7 A ƳCc$i@Bt6R,^v-˺hͮP'Bf#ɡHh BdQ)0bt.wrj8`(e2OY׊7{e$>X0Ͽd0r ~$G &󞍋;&/`sdkCB2ٱ'F`ZjEBdiO)`FȬ,+rRoD`\jgUO>y~/%~ 󃻜޻lZKN;&=[p[Rbustv4Uh5۬Үᆁǟ|3<8>@s8|H,xW+NOiϙ)S՘ҰM?);SPUes=4Ԕar2oo>[3!@L8kT$i]mh!q>rnyzh ٫k݂w&3/ F%(T?w_<<9oYoZ+g{tR+ЃJګ 5) $Qܚ,fqeA(JϦڱjIQ(tG5u}~뒢܇n N"5)brgK.rI3̦;x%(Ĩ,/N!*%BSc,>9hg1Eg2>dȵSϮ.M1t,~Ѽ>U~H+mou\Zp ~[.BѦch?f"v-!"&D9ХSm)1A57kKiYPxS,F IRbS "QBe~`vhYGr=1xl,[0ʊЇtXDqgp<,&av5&/Zj2MI]1j>"D1撢j h xP BԹ Rc7K98dQ?zzɣǸnˣGPf'?"o(}`dQU#d}ճ/Q7<.M3_ ԼY8:9E5'L pâuܛ$nje{vhoqw&6*_/}O%{(KRshh#>XwuB,#ՆqC6p"kPKFGc$%up=)9}.M-ٜ Q&A;CpC]36(11a[f> _s%JU!P0p`N !x_~{B.Z Y/8>GC !0jf,ح^]{d/Nё埥L&: @;x&Fzh:(jRQSGĦ]e_ bLgI=a6mRE@<Oؿ` gϞp}Ư;?iqz^O@G< ǟygξ 2l%/ʯo:&cL__"e^- yH O &vѡD" +)G) R1o-c[EC0]0J#zO %B"D hgݵء{ V^Āmv9p!9Uհ1*}p-{DYo(!(tAL8͸$fSI#"jخ}K=D;ۿQ귑maeC=IiM- R!$B~Rk Xx:PMsXlM]jl#"mV-%}DR dF\'rp$28!%"z MpA5>Tlu$%hcQ'H!$E*S7ˢ(P 1v 6X,*<I>mG?gf8(F.ZƇ|v|8_d˘zǧϟ~Gg 3) z $Ռ/HTspSB\}1hlBt4L gCngk=?3/BJx8;߱xDX?L2 wY-5g,mf4ڐP=ʌqI7kp18RTS8#!dw=QKdHr8q&D{F ~u]|Lck8~'ȲД%ݡxv4wKIu电ۈ ~.E*#q),ZScs~d639\"}]/~='5j0Cu[f冶mOf $8b;IQ| @&yٻ-v=-E,,ϡW__|]'>='f"eX*UV {wL0)%jZElTpxB;)QPyl]O1 OV[ ou5|= 8jwe,WN~d[^ۧ7Wsr> *CQF|ń"!1R4mƀH6CG8xPg:?dwJU)|ݣ1R %Mgz")A!v t=G"x>(t jhtMmj:l~K*xDYKUi A*R%Q1xUԔu}#h%ɶ= AT~yZGtֲ\-Q)ĤAJzk1Kls@!œKgT$(@*ˢmrvփʪiHI4W!''Mit~ٝWKɬ*)zP]P+v4*Reƶ$QL~QBPklyBR]̵:R 2ٔJg/ TZR(P Q`u(v=0H9#Ɯ,dNHI$fיr8p1"IJ1rOMͦ%g^@4xdo{ȳ7,;~{:Cn)ʩXbHZ--2 th@?a؆mؖխ'U5gfp9g _+$✈8gַ#'v6qUz|qP9e%Bp||`W- $_k(k׀ /|76pVbµg5pe.dِ9lZvZ&a(?΃W|g iP/ c^5̹y\~IpEOWw'L^v0J"\C e \t 3\O?v.9md1--mW̜eMBs7.b470CǛfu)=aܽoiry5ONK'6Zo`ݶ|#}˔9*ŇwO#+KttX1_̨ELtZKuIa^(`L )·ٲSc֭l! +6p>1U1RawMۭY,:NNIz?(xɵ! R)ڶ'F| llqW|U1X}|n/?Y%C ;'LJ`C12*.(Gc="!BFԍw(<ώ9>b{Ϫwa6_ (D::Bxoy x53W.V|UL\~S|Is&=(ҵKϓp*mXz6LN g$(M MN0 2_-'q*GSrF< ] V~tL!R+f}OuFz"3bDʔ-)#95rL:gխ 5Zʢd8f<^ѻ 46q]C*B9ObLzoɃg4aUt!CdKh1Zp kmj& Ōn5c0b\4 DcI%1ɌHA [Eơwt2)S<,{)L'ȵ ZJ@I bmn[h.zڮ ٥lL-aB  Oq34"@JxpYqɸМ1R'%.D둝eRFd%|u̿6xRUƅd{:N"$BoM! D11HH!td$b'mgR&/BQ*b)%U1J)Ek+^2xˣ&5cdВY]Qm4;, 㠓WK䝋F ̀䯸y2%՜d?bWov\#EF冶;*2|vBēnI7xh^Ovb>|rSnqE-ĝ,׸V 1'ZJ>˪$Hk,n UXqbwqUҭ9z!o)̐zur1'.C2C2h3:d/ oyڢA5Eu[JUb$)?z5=~)j{t;`zb9 %G|)wwz`x2$| H{2)ŭf dX7k^.j4+;<_|&W('W)gclw %D\rO}2<kL{I}xj2Mb.\#/ R*EbFve ՘+):c ihǪ嫯>Ed/ߢaE15a4ҎH[c~L8 RxLnbQJi?3\<~:؈re$j5˓%USdbj}De sv* nIeg-NBcrSQ!Zhz;. } vw#͏?}H1^1y]w@u}:ۀd͞Dr>_Z PWJh_ݫdƗmtf4{6c1ii1͛% H@GOSO/h9B9 ˗ȼ…mkWD$zG#Z)Φc2őޢF~sDp\mĵ-NO,E5AI$FQa01 ޽0ARX%!7מ"15LQ 3IGֱi'ӂ$-T ZHdSyt͚9]bQVM L˻H1P[0a{Y2 ~A+,bU?L^QST&Eيf|߿I9v)KdB4 }' Z3[zŭKyB ic>OYjy !6c>Gtn;gmܲ=÷߾]'qOXΨ7xcSWW~ᜢ3!ˇ!ҟ."Ω[r@/$kkm8\ ɇ*y g0 .Z*Б '\ۻ_~!x:p-%;qHɜsg͂يA5*J.nv;eY6yuDjAın^u ж Pq[(3o-;StM׶Z=b|$Seff L哨gX(^•O{6f@|:GK->C%ˈVczi5 ,dh;8#-K`heh,El=t'w>l~~}9 @Y$x!Q2ʤg%x %-kɉ#+zkSw2M" I'H91 #.ΥK%p]Ad"Xbн)\:|=AU"O }O[dVlcPd)%FhFh@R2 :+R] 5T)4ޓ9(TPju8Ȕbi"޲\$g`<YV#!zTLHEjMZ槇H Ș-RJ&YnUamC;QFrdB" Mh@ɥqG2#L5͵`* JT$"e(qI<$SIV.{ą퓴؈4B,6F)2f|SlJu)mąd:9{VZ F#"8_-99~H}\]i';̕ymP/o;5gMLQ6{ـoWZg{7n'jETԫ3QZcnFVᜥ_X/Y!xl;G4)*m36ƣMOo3ɇxߠd<ȹ]+=)ʕorLՊ)rPPHa4˳9xǺ !dh\d0¶pr>Cz39 XV, ʲb}vlrF_&Ng4_Ep3(0UFH"I$:FMvf<ѻJ@@aX2!A!SߤwxU"tF$1wZ0&"X"p(PxBr@(H P X mc|k1udi}V.v5Qh ŪQT]:䍛oseoA6o|?7|λ>WwyO>}#޼n?LJdlo14:t* #:ypz¼nـ>z:x]> R0Ng,Z )5~Et7>;7ٞD.l~orSwfNϩg!߻h0J!w8::Ȳ^PH[s|p2XΩ82e>ũs IDATuKZv;gqzz!g+ɺ̛۷ sHUIqţc&uG_~L*Ύ9\9w>!cw9۬\).]DI?3{YAa4UUX[c:NG%,\>`Y;Y{ؘt;lwM&{mxp)%%bwuX8.C2ĆH|P8s*R gF"4#/w5ADrv^يd0( 1*#2b2uyh`33.L^k;|H?1 o#p^鼮;kY d`^/d_FxJp "3C>BmnB&`70RH&&cD19qZ1G-J*Hj9!,O|F(SdH P&0z . cbRc@ zt8>5l!$(@D !Cz[61TL! Z%1=uK{խ6iO٘͆.Ťz#9 HL9^j|r1%D :u1C(=ޯA)B !h$(uFU GhO BGA;IJ#Yu[Esβe7+IlCl.t(H3YA)n3MPYk*͗,!sk<0$@aeP@vLbq )g$y \gk.>ĆjXYO+l&\S'X#%l g]HIr1ZcdRATb4R|kۀ{ϠT)AnnZDIDcqA3dgWKh{ǥUܵgs>wo<|g|/ٻq|JfB1jţM/S & sv'-]/!u+W6`TtȰ*u{8Ӷ5wؿtO?DvMl9,j6%o(U Td[\ۿ ~˿#vKn_E)ƙF}Ϡjhpa8(CiԆ]:9|}ƹ;g~N!.B$Jy, rB\ɡ`k6]ƱEWcɱ?2#e NNDNg<3=sx3 Q<ҞGrH&/ѶTX-F; )޳gD`o{2I9b6;Dbus}#ۈs^3T+;ْ<ڮ![)w?{ukQD~Wfž'm~۳Y>|||t |>7h7g,"a7adiQ*9cnaDHF,!#\H!D!I,$e@", @p&㰉1'hK]ʖ2Z>C72Slz=ʤsi/|Ot ȏ7ƀp`(h{@6ׇ" Br8 .~NRo+ Lkqf2)t}#*4Я3R!drDN!A2DS$yJ3R |G*GDO(Q LbQ8{,+(&{ 1b2R!M=)Psq"fr`3e=CÇ89= (QF3TMMa4AE4B LDLM #JKPf$wE14)lp(B>и@u2R#{Tߪi;F!Lmg3'(ƥJDRPi eb*αlsHz9-MB$ܼͽ_'rJyB8=ewEݬ_`-&c`TyG\aw ]_aZn`/sA5h=^nGh xݛ)uFE1dZ sZ>=fصek LihVFyp#g98-1 X4kVMlJ*gY65fGZ;!'{4;G%yC =,0 ,ӬDąOӷ,9;m|XȜ vuJ6Z8$BF-3,VKdɴagzQN1* gl]D bDɜ,>F yS/9iQżmo׼uyj2DDtk¢1(ނ]ӯ[u}z 4_7h~ 2|/1Vu1kB^'P ;[2cG&45NC̫t *6 $xaEfcF5iARL^RgtuK } 咏?7n}̜0M,+֧N?C5S&i1D{tt͜4]f w Մ(ѣ/瘢ɝy\&'ܼpm/Gf9qznfN(3 w~ ;,gKƃf~̥阾S4(3?Gh*#9YW8;cv~L1(8=v\t 0m.o!b1ZMΖؐg:Y ˾A w8kᔣ+.lMy4_lj^n ptV..pWxۨ|=M8<~hf_|񐳺 M)iRQ*AY{ `Z#Al]cݮR 92t>sWIt3ė/x!QF~)6قM!iF$R6QJ dDZLؤd袥$D}> FjBt@U2"#zW*hz"i/ ,"S" 舛B$Db2)C $GPm6RFm>7 7ߘO.B;b0`3Ȓ)QzmĮg6gSg)@dyA`YP !RdEI_ mք #pLEz ]O!u Dr ~l&Eܸw 1B]V#S-cf[ R$h|di 2â)U!EHI G3rW)óާN"[l,4>~即lL>(#5uzbZH<5XY7 Lf$-;2?'\>1OG?.1~tkWn#~FG Gc.]"+ Η\6| ޸]>j|uF;_11X5֋֫#\2R5}NX'X=1_cg<ʍ7=z~_}B=ӝ\ܺ;ȶc\5j f”*+99oh(p1y>M>$/# uQR`zD2OYAQ2"NDh7H?$sMDEO-!;##RjP T1E!קAJG4 )qR%SL)tslz*{zk !|%Tb:9C@j116N:<>ֳ :RH`|y QjCFDHًI*x*#QmdZnR1)50FtOXLO!4emOӴ,KZi RB{BlzU$ 5_ p6b*x@ 9C ڥN)/$'w-dudtP)4CʦӪ r!vA A5ΓIņ=1R !rFQKAebcd-4!|PF u"Ly|ͅAAg=J&FJH R$41Re27 saX{Kg);Z0 m2~?TlI`}?z&圿yt4cxߧwJwx.r1^uloȹ)! kl1CIC1Ŕ#~!5Efn#K ̈́Z%۷oam[bd o^gw| vjÜs_ݽ]Jxx{.&uPQڥзJ˶%7;6h 7'WOn: _f5㳲<1Ze>]/J)έ9ǷT]_ЊK?Y$ם/GYYU(E$==mIm#YۘFIom( d1FRk4C& HB-g]p= cP%#{p8[w)]rogJӴ N(-ols{ib [gs:b^6TE<5Dx]_^_EBI Q'~@Qv ?+́ X9^p2+@^8s8ȳV8hP"2; :䴊j" :^}PPښDFdTAU 9*.TbsB915 d&,ֶ1{SLP:MHZpkqRgӃ >ʍMd{JJv/2~il:i`ίGxIPi!$H&}"2nBM5*PȒ t4D@YB]$١I$ڠL{ZpR>K1Xk!CBIm 8ƞX.n&hscDU)X}d[chROfjP,Qg^x!AeUAfTSc ԭE(E"B,ǫٺ`$/a Q$ڲn[.Ѫ<VvTJTgud 2j%Y6VpDLMU3k-ga̲ܽj㇐`[Dr_}!^Λoq\Q]D6 wD3nbm]R z>i:~eLz\U$}6vJ,U >=_0ݻ,sgLRE]cHb{gO85~ṱ]N>=dco޻'ώ'G?j*,1NhsLm)MwP:\h[\';,gf͓Os[^锺1>Ne~\-8$gyKdJ,X\2MVuxti`28;[,ZC@HtD/HT MɒvQ6k |y!s'"M8zYqc٫ؔ1\ x/vS:4hBMg63???h9dgJkfŊ͡@*Gc >f] L  xLB,N(e9Gu߽^*.")>#c}qW}?go/L~h>fV&|7nd_\w]Ёq.ʒmٯĪ)In}t8A!]z~Qor0l2Z|g,6ZL*K9GEJ1pY.8;?*q3*iA((! +E%Q,3NuiS@ewg.[:uMOʼnW#-C\W5 g-۴$c/3~_xVroʰ!59}z]s|xM!wf 'ݷ&L\K-d(g)\.o%*}'OǮCN28+CޯK?SΎInh,|h<` o7P&#%]// ֓7(vYG6P&+׋ fu ;ǜ]TUQgZ{{5EUxƺ\E-'˒_ys@S)O-׎rԍ.+d]e96+@Pr]7dqo.nӬ+>=9|W?%㧄9eddYXMEϭA uFQ/d@4ހˋCX_{3F<$^;dLr_00`v0lZs!GGT+ů~¥L>Z!{SY,áJߺ˲XFt)ݚme9MS6 ZI6є8*V1JS.%y؁/ ϥ~\7EUs\= ,&Ϫ#t֞/ç(lA3jxޛ"ٳ'loD nTɔy ..*^h/U_or?yAՓ*PY9$3@/o,g)` 4u--J"#+bωn[ <4> DI]>&\,-x,\dO )hFi Pm[oPNL!!@ݑq:8Rzjl s[P?Eʀ Gn17ed|(:BbƐ%9Rxgկ'Btgm@y?lb҆ADX 1ld9.8RXJHhZ[4lݒN 0JZ7P, SjM . RR@/5e)ʑLR$*=E;ͬhi-&TmKQV"ĉֱ)O1|9Ϻm(痨,ep.'՜Ӌ$ 4gzțE9B9~Gw{_g>;g3x=nZ2c'of9eϞ?o͝7ԁ^Q^iA.,G~7iKG"N^,+ya[<=z'?|ueU=TCUMp>Zw{o5X2mcl[S,WLB(ǟQ..19.z['<9>e<.P) c&= rsxҲ\  1x:*OMzFfn bS6 r3lӌi8[f?\. }lYt`nmnjZo1]}rL4N >^K:]#Ixv=.无4HO[.x5Rkօ^_0nqhIRNkcH$ϧ% 'Msju _~9A7$/T&(}q!>^7@n$)Ij;PU+!?}!bc{y#ou:ILu5I,v ZbLcjt M9-mPRw@u} Hߣ9he//JxEOzys.fBfd2;SH4p'.v @T A`d:2HD8SOcC9:Ogc >F?Xp:*"\nZ#lC;Vχ2MhNR  YE$I :9!c6چzR1V lM&ř%G #jJP ~[UXJH@kCM]ZG\ʆg!;j@ G&JEGF2UE:pʠE%ցj!NJH|1_Tn2c7@RvYD'(ˉƤ$ĸBp1|L<mH S45<>?Ci_WW% KeޭwY\i;byyFGהOȺHI -^iâdi[91H EepQ7ӪbU+A RIemC}wӄjA :a0fRN.1yƲj)Ko'<#s6ustp}bn gL.Ȭ^ ;lnKR Y_^Xo{DHf9bNAc;_6>d3rhM߬{ybvLB肼\F#$쳮='Z1ihд 6 EKSQ IN$$Mms~OZyMTh\,*L2)CT +uy&M&yv%O}¬ko~;;\>)+qMܱ1gQ[7iG)2b-1WxzLv1f%;S|yNo<60oloQu{eR۔-W%M#ۂ cp~vNQV ߂ړdX ,c;IӔa?g*"0[, Hi/K(rc.dIB?3ml16l^=.ؘ ʰnNosSz)o&L+鋲Xq}۾d1W/ӗ{ ݘ|ɰox]z>'sڙeٚ$G|!Owog5BX m.M[T"Y u='.h %Rch/UW= m۸_^yW|A&/ėM%L>Öz5õ7HBuVkËs]@vBG'N^|˩$JtT+ݶcݴG|ISM]6.'Yc˒=.#ڭ }2&9UɇVGj`X8{Hmf°oQҠ=xvdsM>|S/ Ɣ˒}$SUiD UͣLjHCˠ7Bh03= Q6x|&'Heí$J?}h4agktJ[8H:LڣKZij[ֈYS+#KsOoU+ UMjH-$%R\r~eLɌos9p*{2$efYfE^jr̘%z RN3cY7k_?Й bJL 1:ALR|GPYG!ld$(5qJ0=ѰH5q2+PՋa]tC%!XDSmoJ2Nb,A2%I mു4GH{D7uET(u5#sCIAQ$,#7 ZAyɟ} L/.R6&! ow8:+`L_qc{L ŒɆ?*W,~E=;ݛ"W0/ &bmǫw'X1{w#ۖ&Ogﳱ=a8r]&e ;.gGs]Cv~6~!=Ý)j]G1d x^T-No}8c<9{˃' 9q,ۖQ$&P { -O8YJbcʐ'<9 ŪŻεd*h'FcƄ gdD=DN%Vȴƭ7pEmK>)#2eǯOkf#ɩ*lLYǛ7y_!c ),!s W8tAb$ QYv6f4 AzRY$!M]^,H}p! 3IiK.GlnMpĻ@]HՊgYy 2\۰Ų^$FA<*S.X؆]Lޔތ.6ޜ~>7~yXm>0@Ejxk¦ф E5휽vwxӟ 3~+?.Z#i|p4IqA#uF,嗊+@5-6n/{]kTߡGf;ի6#^ZLj\%о (" tbˌ_4>8%RA$bw*.1x̼D8jC3v)i)Qix*f IDATR6MR(b[ȮR)-&AB ('/D'Χo\%NVUP4R:TJLǒ]t g/$^x2;] SE:\i@hQNAfPxN: ѹjX€EJAhk":g`&'h39eQhM0 8 x{CEPQ]E۽#\\ʂBD MI%J#L uiHx̞  B& Mk 7Iaqa¿o9mS?\\b4ui!2Gk`4LP:G#HuJb]ӓ-?fa>4 ZRӻ<Ii.yܾ{,ATsiw=c[lyFl~y[FKr9#Ƀ`m\]6EyG8(Y#GG?CH Ogx&yjN3tPŊU $LyyKO>9Ԯk@x Edsųc&(v7&Xqҳ3Q.;_'5 ;XKlf]viWTxGf7u$PΑ1)Fs<!ꚥ,:'q-!˺Ř diAQ4rM]*CkjɐCP7iR{Nd̀ME'nᔢJR)<<%M ^4?Xd9.n⃥^*nMpG(Dss)[,.} $/%oّ| "Q9fs+cmK)؞_Cnrq5u<=>d4swg=mxs<يEqzH4X-hR}ШiKbEW9ti^5|]_nϵx_pҍ pcWdy Hv_\Z_|Ť3bbD+] 1QI;gXE^tuPR>b ])WEQl' (qϿ?#*F9BDޏ s m FDt]oBrd;,6SC F⣆ aos޸σ?,ow4MA!NXRw6G,KH"d2fqa:lQ"d7'$ME'klpzaZy6,eB HL-F;*p@,ع}ІOwyGIo?a䗌}aW3Q?l|`޻㟰\e'Ompkg "]_b;;gY5b-y/$ӌG]n'41dAzb8%LhNzjVkKSYTqZZ.g+ֳ *Ӝ~L3;b-V͌1MI ha6dk`4{byWWdacXqیGG3>`ٞP ԢF#W-ŌhL>dkk %g˟So1_`C)i1 g zI/cL/Ѓ%ג2F{g T_[)Al MK],٘\Ԓ7?ewj?4356BtRED*P %wWIGSt)ɓ Fe$,{`ެYs_8z]w@u}z}QW>}Iʝ|f/Zee_ab{- ?`ߠPgd8*D4h:v1E)bT3RNDH%| *uFi8I7Y;K,붉̙ڎQj(>21ZK|d H%1S+C!ƾHA$,(tb|v׉AuYv;wX^4(i]p-:8'(FJI"3Qr^^F"d|8oQ5 TuMR$2h&)Fk6;MKN VW+@E+**X!`;n>bH  z~=ʘ*mSԢc֧ t *! %n* H>z14:- [ !&i iG% IWee]kWKCGsfvlCH3z"l[@\ϿB8e  cAip1Զ;׹֑=>B U۷vb1卷 ??x7iܒVCESEHwِ1No@JN]10NI3p{y.?C'c̔;ZǺ&ytglmpJHLڣVx&uWcM>);ws86%st:>)Ld]&9UE[4p ǘQpǷmSL76(V .OVlLr|M`ȶ:ao5C()W%ѐ| 3ڰ9yY&}>E!!6đ&=[*P5!KR͚tɭ;#o9aicrm~ n$vy9MƯ ᘦ,l@g<9˂uబ.=y>6t!u P-9f*(BA7{+>gkv7י6шLɒ(²v0OO/~r80CMp4Mq8wP5VP@[l>Yy32|;qRir&/P*"uHe|./$I N ራ;1EQQ%#NiGK//@z/.&0y /Jl@E"M&LG 4g{5MI8>=䃇e;nhK!hmWX[GYwDB518aCݙXgHqMڶ`UilͺutMA(5$vEɋ;@|q[E#/ L/x9?{S`ً=LeG 9iCiOjXBl T*0lAԞPr!oK(d b!)%r]KiFHPcPBdXK!޹a ;9r Ttp'hRPp/Q( _ض>S1u!00sڇ ФCHRA/;xC!dtޑ:*ùKaJ%Ҍ$J5'2UwS"h :3 A "}M3Xc0]KgBp! <.H\(.$8 Y/Bn_#~(!JS?RHQ"-dF^p"\ЙD"ֻPrƬ M]ܚ&f81gY2Ƞ Fl/N20 >T8 mmv=*Ŋ$!Jkտ?tȇ ;[<믾&g@ƨd KK[?`9,+łlRx@]^1cپƢ\{?Ļ$u:e>dZh[L9gcX?6wNS2H:FB:ˈ?.Yk= Hɣas{w@gvޤ] M6fQ.Td>>&5ӝk 9JO}o ;~qiX~`9(")Ef68:㜦,`koIxxOi-Dio[ʇXa'(Ci]>B&ӔqvjC1mX+j1*ʺ40U՚xlFK!mgF|g%\A[)D3TWHIxa %W1ִXOgTŒ逭tP5k:(K$kxlxH>|"}[< в,q]2v2IYqP vɪ "MQ-(GtMYpeoKVR/|y4_W/;y6=_6eyRg<%O}*LOBP{Ok wOXޯN(3YaO*‡?ODZbhxBOLzT<$=0n=8k4= q*j= j9p:3; . :t):Ce+4%cN2(BIC Z<u':ȷęFv>RX@d,řA~,)L>\7tc8F'ijMS40Ƚt#2W \0Ifh=FSBlF!w-M͚QXUmy⑈X]x+8$Y0>NA"Zӈ\ex0gڵ&MSF:"3%YH#tT *~gL:sxZc0Ƅɾ7#I5-Cޣ):Jq`LK62S:l_{p#B߫TeT$B]i=g1 0 RVV[o})9?3?=a$|=ʮf!kNMiL]ec??`=Zw\&kcf{ٌGa6dTS l0uGfNRf[`ֻx5ᓟw9iuk^$#~_G8𳏙\jݫa+SQሆ{821oKvw7OAXv|ƧqKʢ}T\tacs`HXn%pH(Í5ڣݫXmti>,-gC }-<>9]dS%+>%v+SQX wx6,NIҌ2<5I> )Q1?`U4\Ҕ뜬 @)M"4Y;C0cDx˚,%#V~Ɲ;LCíPTȀRkZ`qV *ɩZ+ZO'7y]zX2_1m5 EI>% 0e}H&4Ns*F$O!AA4K yQ{iq)y(2ш5QR"Z !,0(M%5d$W{^u9R()􉷭sa6-"o^k]k !=9P!8|ook/_Ooq|~uƣ 8_c6POyx&kYvIle5E,jL0rNqmɣ;?5`:>˺1 n;r`ڊtx&N'zh3d7_¦cH%_]3_"[seG!X7ȵlX"[? [7$ iStB}z;`w8x}kY-X{l_N\g>ׯlw4y5f-xd1]Cl_yXe bQ3ؘG qMK60 [t @1NļGLv7_r }9]Xs-VuK NJdccB<1?YrdI= t,*XͲ1L!|ѐƖ GCgxx[$ P,5G z8IR5QQI$m[&c* VMC-'4frIQMiiA41ݒ& r0VCL6" ׿ɪ)(QVlNdv Nػ 6Ƀ;mI 5m IDATlhVbMX-(n\}6Q"2!4 Qdc%>Ydg{GW|W?Ϋr泺Oxyw-BRtD/]Y|E&DCjI%(ۑILln0n|0R z41u zLF2p <>*mGF~u>3dYQuK42~kܞ1"o9c|5G%Y:%FtCJt8'4pL:a~zH I3ƛa6@%1ă:Xm<PK ){ QgwGT{s-,,PNjP" 4v!}`^zΘ/6D@:U۶C^*@(T!G(P20HRЮ!±^Jvpd1W_ec*͊^5WFc4]]0n*lluD4 ??o+_R[Vj @8_ 5dģN4?FXK~?孯K笛{Dd+{𽟰>"Ǽ79<"W)hc{{xLc J NN c6T-҄ɘdJ` vf -bK"Еړ 6|"$p'Ib%\۞}>Qop5>jqUo:q7%M].nL7pZT#2`F^fWm "0dY8TjuJ$وӢb01o B?YAFŚnyL,-PGNj"<-}r.-ч(pj@v ZG`p!1SD8ײR(c|Hk"˜Zd;ch;<| " Zh&BdZ!>A46mVwL-$t=uNlft,F{QLSBduZ$AIN1$}qPv=H (ҡO3Xo q0pu$8Ucd5;fICdPGk:rҘևh g Jyhӡ&tJ+zu>MSC렮Ē_~g:O8|:/ r< M9>~eZ%F(L1ruLL7oSk#\ {xcF+fibn`"!шO{?9[o|A>,C&y5+YY6c~!{fT.C0Ư2?h2Oyd4cB2n(IX=!K9\bh) i,0ƴVLHŁ8 .큮8NYZ= B1= , )gIO J# :i}qֆKZ:qHzxOm+K}ArU:RR*CM8鐴cŶe1aCXƜ=p!( dqLdv&EO,T >ϗs}pQoĽɝK} ߝ 1J!K4*R$:"(<1Tig)$ qDq҇:AtR!uL4ݚЦ!f_7[LR8 YJ Ge]`d`s< 0 @a]:,J:BfQyw_O?1) QQ 6Mq zIUe OmlSo Y'#'YUk"(I>&T =nϮ5byHƼy흿ٮD?cY"l-RљDE Q:dfIMhlm]9_՘E m&E@j8ͨh~9/xonۿϹu64JݹB]mJ ^qjl:ANJٌIeD]/x.$Fy0·i:!d(1%Lˊ5189|tPyJ笻kMMs`6x465eY#dBU}$QD"#PhUw-1:*J$K~c,iCO33\K^^\ZK< 8>gjOSw-U&K$J^sU`kXP->e!;(c 9\8Tޥkm=iKN}vw6Ɇ)rɒCe\}lCZSQ}3/|y4_WWygeG]/B>{Qz4.0O䲗vLN 2o 4RS6Ts(5R ks(A*!14Q1E RtU#U"TV@XO!^4!B]1A2+Df* H? c*5* gCRЃm>xtQ<I/es }Q`kaCgWQ/!(XL,52I!Q uu%/8,(Ʉ 0Q6nePޚ )>{0!ZR)"'$q6?7 `g3<4 ρ!UU Abt>ԋ,eq&J0XAC]r=n /~x_q:d}GwXڕ=Mޭ9G㭫<`,ʊ=l^\w'RѹH'ޤ\#էlDlvXvYSZx-[Iv[\d wqrZr%7M]iJr(H.#렫;ܲ$F]UGH\+\ 22̹7<"IBZ4Hڲ"#ͧB,<Yc/7p G,B%rV#?ĵ-f+,5Nq$2P>=|$}6c!IG,9]|z'T3̈mzT]̃p b^̗@|֊\CߚKg!EBX'z ӛ oBk|RRy*gq@ Y¼/4G ;5iZ3^Kt"b43̹:'yDNp5?At;;\{W9ٚqiqt-:I"MtmüPiD4]gY,8'QBGe՚m M>^tblŪtMѕlK̦\ݽrk(B[ ՚h*W\m 6Y>Bhl3?: r4Ƶ"8Ȓ3rBٜulwnsn]Y ]`.eHm.r0E(q, s*kH8L`bh:zI\3{TUuy>u%reV Nyp£JFzAG4ހd0Fbȳ|7ywkAK"1t-iϦMc" ֶ,%y:i-qhJP Ͷc9_d)rMk^֮(! $vite6<s~:P<phhL BV4g#VGT՜:@پ*-,eqO ˣS^̋h4MV{rϿJpBn?)#;JO mq/Q,QӅN>su,LjKuma;GX/d_5(!U+ #} n(dP Iw'4gU)sVJ!R$i%"Thp) O)Ai}kl:8AbBPiT<ֆi:u]t]ӄM' xЂbj 6=h\%4ڪiP̄*8e$XYK#%@'vUE,9Xqa+Q{e_qcdko|7 ^?-5Jͦ4 &VU]#G#D3\'%r8FxOԈ 3X*N8HTL 7?<5\ M?-vv_$QH[& uUrLfPb,G'/W89ӂ/9Eݐ8)xx/8^}׈c1xOI$8dr{w r&:@8:buLY\^zU){t=n})99I DW@W#Fߦ M6GGMcO(]t9\7~GLG|SnwlE[/x^JSV 1]ײ^Ԯa+J3Ւ?do1Oȣ*0Clٸ:ՊT4e=[#_ڊ7F"4zi-iOoq侑̛kZWR{qpւ/ZI!N IDATӌ4*O!/%SǘUݚ Hےl)ڈ*zbMK&͒yΔskh @ E9$+d¡9zo{酿W\Khd! "$4htwUwUuU13啕 (ۋG{yiC*b[TUb .W\a<,\ag0|Րތ u?B}5_KFs@V|>+}ه<&Oŧ7yJE٭ E۔!uvoiXH}!RwKMpR}d(\xCJC!:Ŵxc]dR!dLc[gN B J4`=J!$,,#ne#O+<pT'Q(Sп]n9v =R"]۹wW B \mPJИmB_ nzB 1QqvB.X;"{24 .2y/*A{ ޹ΰa"HguEX(k+kQic錞the [5XG F'@hrU=I\] Nۂ0ҏ4[=]Hs|Z1L1g%_lpoqB3Vغb[7-\d*IHtHzɦS{FYݯ}Ek)-np8LFY@P0$joqeo',ޥjvƞ]JQE*A]Q{c.9?f \k|_v8#;^45j'._m'$;ʍyxr7)7礱5?d)[õ+o[vw_s=d0$Α]ZaR%\|v1}r^2ɸa|x׾Hw8[wg|ȃ}7n|s$Į?acB(XT52M9X,7Mjܬyi-%9јy%G('kiJHd̍Ek*vo-4=v}W䛒E b.jp'$iL[ш8%)B ˶Y\fXWl+mQ JzFǟڞ z/('W1s>Xdz\fSγ"O^"}>'1m~vuL$1?ޝعb;;÷d]4rJcBBš X4 3Dc&Wh~ R43g _-_%5|] Z>e/^}>E_3_2f7y<>πVɋz<{yt봑h ~]#x:IT9RaBA_ِE3HG ¡Rv8cRp,ִ`$8Jz0VN\Pyvaب8g3>]O"!:tlyz zad\xӀwyV#mC|H)9{|#$D:Ɖ-e΁!tԺ? ߇` P. PKx2%}[ՏLQpurJeB)D `pZK3 YhMqVkpWG 6xK3o8!g,74]W25(6s[\yɘ(9;~@E4 &G.oNM,qn̎128EaDDYm0:l%8kqEI2|#oU7-yB[|!U^-`-`zw?b0aC%)mMU֫ t09|ِ Hl6D %!udsvbyB,_ Wv)ƻ\UEY}nmÛd1G;3~D/JIe֓T5˳\y u;gH"OI<\=S|SwDfxM.Or.Bݓ̧mQlsD)qC%Ն8ےe)pDaxؗ^QލE>Ѷumqh1dWߣ9+$ߥ4?dGH?GG9;}c>AHe:9$Y"]C$-9C*nbВF2ݟ}{]5|]R^KT.^-7jg=׋lo<$P1X}Dj qD[#uZ NVJ0ԡSJ HF ? \d6XIJ)Gh8C3'iv !{RGINzd#{4;!@JM)ҘZ!ee%8>w |,"|;Rg1-!n}CkAr+aօQ@:tpZ-p yi*ېhmVg !b;70t/xgC5AVbSFMJ6l H͙wt8șm:p0;hmw#t6To QSw=c*2MC[6Z/MC7RA]д eP9CYH_sD9/@^\a&l4M 9dL c^sA^]!J`kcZ`Џ޼?o2_.!L;Y^N$2ce1xS[:'czE)Hc J'1紦%sC>oagΰ3RjpH^r|vW oyo>s cm:dRsr ~gGLT4%6%Q[!E/g3^usv-yhT1xȏλDـ=2u0YΉDKYHAz3qϏx{Yb 7D:T"' )2z]E0kX37+6 7rM$ d1 0ƢHjwoQk$͊7.W%2Юs$ag:p݃K& 8$e 9 Rb.:T8RL;6U״%_`'Id0'lhg柙ÇD`$$V&Azq8G* ?-(^~:ĕB =4k^ .5qubSش):a}v;dA>xk~̯S_/|/9_b􋟗ȎT,~=Qc2΁3BJ#dl|pTJJ !F9A) 2QgXuAn+`P ]#]zt!A2-%RTM>D\j(F IB>h M3(Bx1>%$WR@5s'6 e)ּt~gBF:A=l)R* J lV-2HҔO?'I'3·#x*ۋ3%F)pXIz='?1hc:Iut:VNvqM_6_{b 3w*F*Aq~9/v}gOoѮ.?458e;o|Co4a}otG$C|b!fH!'wnky}lB)ܻŻ(uUR˒uQ,PAG aDl(Ekȷ[PQ' @1^{V+{!g]xR#"tɷ||7hLwp`Zô?0"1-SxʤIcWOKe~zU!(+..NZ`m4-%@-&׿[_.wrulP*?4 08[6?dʨ"_9?źÐ> 7>yr%7-urhy(/_yp+ n>|~:/E@*>".Xt*dlV4Mp` klxdC:o1OuEE%U0yi#D!JUGTyk_̕RbܱqA DJ0('B4L'R o @=].Q<38.M]hxPlvθI%AiĪ.Ӛ*oT:V:Hc!T]L|H1a4d\69ع72Hێ9qmE*aCK"12x4>M)7.%!'6kZVHka0>fֈ(;C0c)N)iB_+!U萱* ¶ik 5a :!PAFD!caj :*ǘ T P:`I{IWYL-W'߸5-t>ƴ,6mk2w0mEe149.w9[TuSuM9!eN~ɽau6g_#vi˒8􈶭8"dq, 63 atxhf}J9EyK%'h'R5R lDsWgvx?Zєk,ONsD5re򪢩ak7\4X%ҪKF(XnwNEǟ~l6eY|vSXhb8h eEFd$['j`6`=W+h U^lLSM׆$<|z I[U5MicbNU(c4blKs kKl[Cl[8䘲 Tg-5(7١0썩۲@,UжJģw JEEb\pݖ @'o@E97 %TɈ5=ܦD MKe0P-^"bV#`o4!4jˎʃ8]qq H"b!3$a *| gj|Y QZ4HW!i 7wBrzm);9#&}9xاn[tEi/9%Cz4C>dKG nշ)/N_x]z 4_ׯTJwꕎn_q/z-AOgy9egR7vF!iA( x,R'xd* 5JAC -9 L-v2 Op&R`.$z,J! ?zM!iCpH.GR '= )nޭFH(qu6$XeEt)BJg0RuKN}qpoTZ'Z5:!Z#!|E qsM> &nTAAɉ]+ 2X^]`Mxth-¹'> %s!2 Ȱ=bA$m:s"!um4,qJ8 Sj!-uRӈ sc AcJaL֠tJ(12B Ĉ(ĺԭ*5LEZ߽˯|?(pCOqzO{ߢmAeG)ь&}kG; U|)Zvvce-Nʬίg_הt`T\6Ir3gc={G}'TD!;7'LF\گN[ #)s[IԚdQ, +>O oDJ|1Wo|iwtm~ښϺs\bG҄!gwCܺ/ .s^! Yh!kờ(LvI{)]FxF0R|[GZjkWٲQO.u~D&L'/bIw`Uk"㈵[411CʲU ɘQGqH-[O$$~]N/ج^5ވ:*khS"lKTf@'1uiƒ$ewof zVlIWj@65bVCDTk$IGO^VpLG:Kd'uT,NY=>Tܽ{ e:ݥ$uK6pSH+A,://yS(Snp um;Q?Ïǥ):&wKҮXK>''+euyNmgUF:~rrx!{6OX[P/nu^z$ )/dEWZWW(d_|GW!'{,Ř`#Šப"h2pQ]5K|C/|dNo.Z#UHrk (D`B$:@ $`c;6 JQUzBִv5U>}!RPyx &~Pl2pG'h^l d`E!RҐ.H#qk|Ë%Wኜp!)/57O(S /xۿh|2ߒSzqDi٘U6{}v% \a|ClN'4ΰ;:`uCfW9i`[ȨZCK(rD*l}3{w\xΩv+&.f;Eh4[W7(mЋ59YQ u9eYbXT,cJ(J\T5kY-AڊyUዒQ19m5l$a+fMMgTjC8YU^ s(Ua9]˨!sviJ >Kv6VlʂD h#Fe ~%XZ1xA6yd`lӹs*0"ilžL(j>t\хB kq"z uThl60BR %˰|R,;u\:s՚NO!Jqya& ZHT$6BޫH|W̫$YJ"A)|R/*xCoqH'+5:,&IRHГ:3+ ւ: ԦE: :ER.ǃQHJ #uF!40ԋؖlvfs >9A3e_cgw $_|1?|O\:mݞw-I "GJ]QhHz͕GH53E-Kb1ٿ 5Tm%UПR%VlKϘFop'<<͛ߠn wMw/cssFW!ԌuUw,+g>X5q?%.kA%lm8'n, UŊ^z X- y+9xhņq"Vn͗FI3Xȋɜ+ OnC]R'8cM15iKlS4c)!Qu !N8!r[WSU[YF#Z F\!( }U z"!1mEohypGYl2#8+^"M {Xk1eA$Z38hYn.M@Fw޻jMT/:EE1>w~v){.Q]K4 T<ƈB}ɪhd;x-Ȳypx\K풽kkjoؗ/ ϱp_Mb5_1O#)p:ܨ-"lbpv&8F$ <k ( TXoqRw[: өt Sdpw``Ӂ9 AE8{v}s"1qI=3HwDJ!ֵHpU0-*֨$ iBJ**IT~Wc,ΠDZiR8N Zq.O{t w5d.F!} Ye8}tcNed+#kOB$q BkEnmpȕ{JjAl0x@wH΍qm4dO3$&S(V]/BKIwDȃ'ڃ<,$QJ&$Z JpQ-օP0Λض_5?vMbcwm!Պko}a/a:-VH.eoxa}ymk~F1*/O(jkzJhLP# ^+l?fQ"C4ჟ}[E^{Gʆu.qgq08xjJbq:s mσ/AryZo-):GXmk o(w%•: )$Q` t:@)>J7ņ;Mbw|hq0Z8!2R5hc)7LDEs/ alhV [QCD:asq~ Rxw%Oft&~pD<{)#j2g:q_; K2/pu .W!wsV+z]_VoQˎ/;K<#{O{{ݯ_=r9/{+U}/˞{/N{"4㸇M&DFjD (&8oQ"z9J+\SGGJ(H=u$*=(#tz _mǼ>#y ¶aLع·M".8:Qm]Lzgmu` Üeص#UgN f1JUk!I]l *(( o:#(Bv-^JTl4)i q7-ny4-@ ZB'y M0X`C8O$YQ֣&Hu01ZɭE hD1B`u`zXVeQ5lphp,[Ki,yUaZC eܜ}?GG4%'gs`o~  ٥6? d'2El5 MryA\?[?cst8Ml{m.^ܸ h`0coz^vDc2Mfm uHkI$eAA%)$ ̿t0``MJD`lK HvSm8HK?KvqiZcX5fgBQU-.(Q', iiI`:Ji 'bƃi~F]7Ś}|vy5^wB$ ;vw A(O Rlqʸft5rqNQm8+ +oIMN^],c҆goc5's>y?u]O}v,$SR{~S\ѸXt?" 'ӯa cL:CͮS N/Ѓ}w{}n u+Em._f^Pڲf0$tC%)wKv^ߴ~_Mp6^"U^3owRɗCrȨi/[N '10` VlB/$B H 93T4 5ZEXQbMd2"5S Γ*m̴]ׇsukB6,E7$D ;p:r&;^pmH^:]˝s^Kȕa͚:3;igDR-Kvv'8NW%8JURJU.r\uR+iDzlK5Pqp=rn '7W}ZLJA ۻ 1(Ȉx}TF *E dQй&"I 1"B@K<"%隭مB>J<1zQSXLW"2FbH1ZA dp!OtnIS!ՊjT"u9Y(_+SoD+賃!&ZK:l\HӋ@#HShz6MC#F@\%[J&R)F&"Sl۝ZiHP *p6rnRl/-v&zH{!{o35/>]gxm|mh7'Clc1O.AlY.m4֣Pw89}»ߦywpίhw.kFb[ێyv/@ 5yr~ruhc5K6CQ5BZsvWeUUE5qq֣SkYZvvN{CΖ'| fCɈ 9%WT; .5!&imIߔTÂV+CpQ9x!H<'Hnn}B\$ ش0KI|Q[Vz$ŨmZ֝MvyFitPi-Bhf{GvA5rp||hDzC( (mmb~ӇDŽ8BQf?DnU 3d~fX3t9f8wG`Dd-zCw"';tF!!|,ѮG%m)#H9M mRj]|^XGd%;.;):dUE>OreL&ξ8yOϼvBgPℾ]!uEm [p@ _{$f |34[ KjS_z_;*vݫo2iB^D%:DžyJxU$A*\ O)C@ ;|"C}bDb&=l[`;G6-IE+[-9e)t@*."&PJ1|R+$"¤:}Zl:3r뙂jRɫbsIa5e hr %w #:gd2V2\vh[tB ~@:춒m_%BgG'>yl9mMq`2!~WEɭO7c{G `eSjw)'TMbפKK4*֚JTI-9c גh}bz:L$8Ĉr Ń۪4C3J7ۯTk-]&y+#1XboMG[#X[ۀ29Q2U A#ZCȵF!)O~k;/bT|☾oXtɘQ3P9:  ͓%r$8=9/s( a<ʃGЮV>Y)GhH۴tc4 S0'9rS6u:n@.O~%g'so}ʝ;k6`^}i F,JDXn{&$JA9 êHTLe)5x|g t'/MXoDO\+#b099erb@3f49 ƚoڰ\n0[#QWR)RhF#rܿ“em!1b1BWRӶ,Ji־!.rlnS 1JJ$vvǟ%뾥ҚX0 bnt麞xf$4]~5}_3x/ud՞P`{p4!pmz!'_.kJ]0X,La4m͇Spq/OjUNqVR=`ݓ9G;\1casoxscL\prГ1რ\FʌfKGx'Ȳ{WxcQt]Kkj@*=Lesͼ/?oWWl%/˶~Yxuܯ VFdl4t߆|"1> mO=rdF8<Ā8Dn+P,MZcKh!$j"QeAT r ,v;C*P)\.`;69@|*һ~ل ݔ)q(Dd$ Q21!8BH (A $KRHHc1]@i=gM Q ozۯ1N>єZPH\pE6xZ߱6p$o}"8umC!J Z] n(|F"%ilRDɤ$L :3`"t!1È)$IJG|ؘ$R e-6@Vx) a}@憢Ss=c!Y:r2>U27%6Lʒɍ:Z L6D6ȟpH/~#qvzʟz9g.?C sf`w ~=R<>~rCt!k;{Ht '\:9v֒9eQ2ݹj~{_Ղ~~쌮^sz|#&{.KF KF U ѥcew,;N IDAT2u\t/~#!nvM_a{ K9nǿd2)t O -Ý4%,]|Bog#c$ym?%Rij6`ӴClgqx"cԊLga] E7+&HUT"#I|>`S0Kƃ "2c2VlV+l.X/@ NJ6=Z 3`B-#e5-^f7f~y44/r<_bmEW3/;ۄ/|bہ)Gp/*PREbSh=º㤮(B*%S).EJg6mu*e !b !͖uLZԤdTD%'$x{d(Sc h%p1~*-[)O=nɩϩ#}Vmn[[ >!phs>mÓ$#G+ۻ 2F2)h!\!}$*I / 1=FlkdHq'!(<cZ}l<5hCI:CJu!u$ }#JB gBxO6'69Fp`e>5"M _5۟sU?bZc&{cEpB .2 d: ׿rnG^L6?b׹wwZN]_UdeHdRJK>Q5N1H!P;Vg-.pDfemC)EF<BKtGxIQϠ*lEK-b<%/d}]LhCɓ#.s@%%v$-V]jȐ2Ųs3gvx4M#NwkrC99/Xh=ExyfTRk8崾 0%F62x隆KW(c\>Bj$QYӻb4ZR 8gSX5ok"g9Y?/2נWgAH)ȍdyG4͊:6Gt5[RAfl[>wPl@>`DFoܺ3Ο>?@hE=ZIzqbq-_~ţ7f8ovK}75:_x~k_WIYf12C 䑌Z AA PS؁Txݍ,%JCQ8c"߬xoQG"@lԯdP%A**r]K5t˵pl 2%w"H2^听*,wVdttM7Hwxk*e*ɱA&0bbԢη! H%5mH=!z xaTLj\Ee*=KaeRd m*HHtf>{IC7x6'-86i-5:RnZhP2.Y:3z!$_z5E \"11%1'"h=2Z)t)m_H> U%(Q*S- +Pb r!=E +R"$xRѬֈɫ:˱aw_01*ΏQu[CIE2;E1 )<<5f٧d]}+{شâw^_C+,=ak;jpzİ(9;ho/p*Ȧc;GZSMٟ]@W[fK\q57X&N₢*Bu5Ch7d]9劾1۴hR)r@}xPN.Wڔ)N G{͊\G&% ORSkB}2݊5%O 1'{wɰ|p*Lq1,rrLi/q:e \Td}Ҝ={׽7f^;om"/U~|;{ǀWh_\~/!}،1w>Z=,֏Mu9ݢR<\hޠQBSY\r~~WK)O[3_YǔՐ,hmtFB]`k_y37@neݗ>Hl\<Ǘ=ދfW̗d=yfvgH?1&Zb@4$)d)ԥ,Bat$ƞ:"AV)ExRf(S q[oAgX')R{ۢb!z"+SHD8B'%$.:II S$P-\7]m-IL[<.x1J&kH5(T"EJTt|2*ɣAd` Ru߸;"0bD$] J)7kFl@khl JM1("FԶ.%H1\~$HwN(80;b /NvYe2ޣU%O/P~tʝO ,\5|x^Q5l5'w8/Osx:wQX\!5R e9Ȫ"f21Xm_G|n<:1 Y-dVq;\zX\:Fϟ 娢ק(#iyY0=!9z$#dZ4}gS,Dj612b^745n0EF =cZ: J~ g^oNkj4b`2wr&7F*輤<:Ka` !|$Nj%^(:L&:۰njP&\gdyA5t=uE#ObJpeY-(=6Md(,.vONAP.}'D`=&h`=QB(YWD"JL13rXdF4瘎&YE fЭ0x?@l:./Nq8ݡ~@G|9N2C#'_=7qtؽvь/\zo&U |V&%R(!bGcL'`hPX%$Jdb 7O"|H鶒kTdFJ&M vJT,{˓α{:距Ph nj͒BWbk=yw{ߠ%?'׿a U5aTnEY!ǔ#&!zCf8<|pi9݇\}d}OWv' 6yݠ9,_s`@VfrΆMd^7deAar{il@fMTc%zx:dl12 ]}ݣk|ۿv7揸yrv {rJ$QE{̘o֌#:Y:o19o^sh7\} {2G|ǔ@!D`tצ;l)uXXO=B\TCƓk6 !ESjDiV+.K2c( Cf*+hG`P ɴ- $!u{ ( f|@wc1BB@Ā vq_,yt򹸠.}闝ߞYO=y#zOwvηcT_as i#dŔ69Yə+x.p>W.#Bt ?E׳3.pz#͜z~FV +򷼆7fܼowׇg~3x k䲯 m}>-mRQW3T DB:'pKX7X"~%$؈Рe@ĔDm+4RFmK5NHNUSЎ 6_$lXp}KmLβUBSŊ2b("J& lc%ؾC)C.1m%!:䘾OObD ChEGxA:R0 ;>"0قIS!w VQBa@|H`u-oJD\DICAigLlz}H#T ޸Jj۹-D"6}߶'!OMmkbdr(GFH07 #Z:eȤB* C1cD&#jD"&ߪ4B>!h5+Q 2$hztHST"0SMZ\ XAb{K IY(J#dXkjjv9ε#cfՈjƮljfӊ12ȾƵ/쌆\>__Ю.ؙscg5&(,!Z & JJ6x gݜ01QI'\8{pbwşS%]įW<=sZɘX?+K7?^6!N,-Z &*Ӫ?)Kio~pv[''|pYSN躦@C>OQՀ;žޡ_ҶO؜3Y.kAo|@RNtmKny8`2#жX#!f\a0p:[*T^0* 65;Qu,"YYR {Z@E-)sMs|t! |GO I=1JL[&]t "h1?}JeR̆3z75VJhBM6"4 *8sZ͒,/MB6 T3 **afNpBog4 O(*ɴp&J&˂k)ˌY6\U QѴK\&#W$Υ MۧI&Y)<&!Rki;qYFSYq% (ElȫQCTB!А r"ɋ󶧮;@)d"Xl EHsdQPY0:)Dp8y5Q`h2%/*>2x WȌ$+K 0x£ǷB<||SАM A\?bT 2㽯}=d*(tΓh%LFh 6Xx4~+1[ S޽."J21ÂZ֫͂|8s<#Zlwܧ2nx[ -SrY,TyIk;NBf*ɝQ O) 1as7\ǴAp x[fk"-}\f Uə'gT"`f\qCyNoŕoGb5(p!]E vXw ;z1.SQVC|ې q|v¸P*!\Mh G4ic\;<" i;>u(b<Ԇ!w %So{4uذ*-UUhQ(EQϥ>*/~ѳZ[BO %deE=lRO dQS*Ggd\D5\p=CxCi;Ve:wo_ߣNj9pQ3qa=zd,U\{EʮH6 /5+pOp1 f-U٩/k7q3{2+?sSanf?g4כ>QK. #T:W^W;|+.]d/ϣF^2w=??^ }`t"Y;bLnxOm4hEy:`&C*N&9v4t$FSF%ӟ@Q͖<$`aC̀2 NZJYJZ֣ml<*ŮXRa!uDbp4Ud "sDQh RdP)KҦ\:|Ytm%TQ"W#KU:18g,Kplw.NNƇ$ 3:xF*4r%; &ڐ6B`UM 1$qVx#1| =;73$lK<| |hR]De*P!EbW!6d"Gd#*r)!S"=!RߛH#׊R!U2I[ >CdA^L%KR쯔mAtD:o)rӊ 84aG[o ʆ(Bܘo~O>&j՛џ?x`Ѭl@)Lops\_,8U'Ӧd]Ӭdrd;U3',rF5)ٻqx)M_r` QRuf9޽N?R5d1+\q,/8{lpgܺ'&ly{pxOstcYõ evCԫ oLNZb%ːF\Oiꆓ2[lz%yQYɳr3`t|Ɲ7)oOkpS369Y?-▋/XrlVg l5% R!CU)uҤ6teŹ\<~;#*SPVJRlmbqxgQ7k2镬W+Gθqt !5A T4YOc zՐ(%ѐnl]S `4\,p%yn60 ]Y w͐9*U=SlnӺZ:2}ќƝ7\OR}efh:{h%vA ~Iz90m]g_6w;AkMZaێ ifsꋧ[wv6o?w.czG|ɲTG7?a֧*KnL&?{mz-׮?I`-lU;Ol`={UW@U_/R-{Η%3@f|ȌL{ўR4h̤cqޣ‹HmrX 6סΥd!YF 5J`o6j9 Z"]"{s}Z?!ZW#)E)Nξ/R#F҆>>ޣjj1f2 {mkZxx}ӹm W:?d:`e.8:{ih1Y_`JHUTQOgZpk?}L=fUf )8}zבI1Έ M2*ƣk,c88 ˶h"esb^+PLzyo\u]lVȸo0|' N%QN?cmBq^!?3bE5M0Ȣbx`t?{-nDO/ΈZ⺖3u#uA,qAQHi)%Z .s>CfTV5AԛUc2 TUfM='xtr./[OӺ:=##PE/+ߣmۤ,4zi)L!ZXO}mr'w-L.gk;ʨ;G&̰;(Ba6Zt;DIPuIZ2%H !Zb E %c$Wޱu=s㞑 3` A!Ĭŀ KjAIZs8@ nRgH}*8{| $>qR!Ex PRbaNd` MH l q!غJ JI"}@ɤG?Φ}J FꂘX"$e]0]KTPM3jkQ A)E.$JeNȵZ*V1$*3=6$g-6d>deo4Rf8)#wIgPL m 38j+f!x@r,ï$"aA"nM{WKs)*I $E^n%Ff5s)M3cv-{VkD'F9C iX-^ 5Ώ17Jl4%Fh[t-z[ {C){}DHfpv+j-mV\MRAgZr.ijw?,p1"^XWdeݬEAf7ẖaX(M&\ɕuyY>HF@:ʊ2s݋_wM njK&7吇>㽏8kՑU9@Ȼa^O(M__#ru2"?DU $'3-6hw.Hep"S»AQ*dئ,Z(>(!T%*EAOe$qlʐ2UC]Y("Txtxbt]u (ֱ5 ipe.q1T  %hW!CGpHMε_[70q/4uP9}>㟱^h|᭛fTGw ;_o&S'{akt͖nٮ;|py ogls>{7fpx a`,΢sbC JpYηLx͟)ͦ^fƵUv RDOpߥW)7^A߃9Y>]Mn6 ^c8S/OMA P%,z9Cf9-"9|..-QXX&3ַH5o [d4Z>3/0"dzKkz g)(";CꦡKhMG2[8~ۓ}.֘,GH zJ9qfv|!RrL}65OQ( ]QҶ9Y$??9&֫ "Rt(z=jA ۆGW8g<2'KlcʊaUqZ e FHBDѫǟp ֫%b(2'2`˶ټew`dM=>W^JΟ~'~?SƑ{=&idßA x9ڲⵛ,|==EۖI?bDzA6=b<<-nd哏qRչWuY?d<̼Z믦s߃wk6;˜%qWf+UMwpށH-Ȕg(ΦF7;0ڰi-ֶ!t $h"U/tRTʼRkMRkIv\nkΧ)RcmHYnקEXt(ȅIvQ6Z#B#dB6O1@=G:Hl?ewa J"#$()3f3-'pЛ1`2z\h V<~#QRL}}>CB\/GuGz霍 C!{Zl39uFvEf=oϐBQKO@pm+1zG\}s~+}ߣU?xtj #D ]LΡ -7X?b^3d\0 7PY"g e}d0JU T9 :Ty2ږ*'s13`^C昳{vI^VD暲SB+p@iƜlF֏9ǜ`zp6;hdCIO0 $`D(2Ct9Эt]MQZ&glimꏌY^e^k2X9K۬9NX,Wg3ZW3.3jeYIsYVtu9?ytr<ĹvE Mm<|P,6K ވ^^_ g ]k;`0!s=cXoWd&)D٬!2ݵ}!W\˾^ܼL%Q?Ő!{d:"=,c9i7)*g] Ywnd]#mG9BrȨT 9L΍Q`8> ȫ)?diU{%f]W,#K=v:>33<3_V Fzhߩ Tz3s"׾ar2o 2_z/N!S&e b:K @xbD@@(MB!L'YQPBCԒ(RilD B꽔PB+i[: AeĘ䈥AļY@@>H+.DQ!m`Qʢ@$IQFOZ!:Yq-Z+QkbtxP:%> dU.8H}~v+!@II N* IDATXEL +LHn4RKr\<{UF@I:VW]2h@>H64M]26AiR4Ed 8K*ŚB[ #b@E1]DΑ:B.MtέIFLNjh!6!r/!EOc-1eQJPRѓl'dzxT_9"B!TwFWJ $BG$m4EUw/j׿#DQF VzU!bs0=d]/9u@o'+`Wǯcbu\vH_ 'sۢ>wt1kV* `]p㍷d8ncz}2Ug4Ҹwy__+_'޸ßW9W -Z)SD٧9G[Gx8>;ec=o&rspDYKlG I֫n޹U_"ɃL3t Qe=gorlz` shEskl0%#>5AFa*>Kf\9gp Wt톼>=٣вi2+lkbH9ޣ?M*_a[α\e )GyDz٢mo-(eR|r0!x<,ϞPtv5fA(#sDC?ckv"&AGӬ)Èd' ꌺ ZW9*<8~qXW =iwɤFp#̗+1 rRuе69h1(D`#RXhC.&irtfRS:k;)j/i} 0WYFH1 bFyOζPF}ڶD 1bzp}{˨9:Ja ̷-G)tr,0Jigֻ$z=J<v&PR}2!w@- Aׅ,2LLcvQZ9p.J@FHAsFH9z!eNJİ !)2)%^1R!!1KQd¤2  ć(Be!6TT>I{jAb࿼soO98㋇3pEe8鏎XCfg SWr=|3ڮaXmCV୻#wymG 7_xA5Ĵ*L{})x<_ArZ@tl\etpXup:pb>)r\"-?1-9={̻?C6;`|"_֛-OkQzDxt {Ctg.(ױ>bNpnMHFxz1Ⴁ#jŃL]ҫ&">G(\K' "ņ'‚Ѹt[Ϣ DdDPyATuM6S#U[VOg<}}cܼvA^ b_ KKJ:j" w5"dS&C*igOxm!'$'{!m5])d`4[X`t:(Z(}T4WD=~tu<lCf9MU7l"͊iQJ#%h f4&ښӗ ^&;).]rϮY1D3n[4aud44T̉Ebp@6٣SOh4b?!MΪٲ]>ea dfk2})X`n~'3\,ts֫xW+~Y_O]~9/ma%q4ߞ} ªmPF/~;_JњHp\-$yZlI;'Ne0:uu|$mh $FKH1:(&{}a,oc2A)De2Y!ee$UsY 7yF7`]l$! MK;V-ɕbj R) "d!hV{tZbeI^yI:Dض7/InE,"x"BDg2!:Ǽx䠚IʬI%vYy&LL>EDLba|HRԇ &\I2AjZM] R"PH3dcQe"] t!DL|\]mhpH. ˨<"e&t\nǰRUDeb> Ap.$ 2eDb5!S4&bU@ry|TF_}=Ǔ'_CGȯ?>2 ]c[w]P\X/?ϟ"JVtk%*)Msj5Zxu\N:mjQkaq6gvgc%,g{)Y5@z4 '7̐'_p >=~zٓ'?Q|2s %@! zR*v eq9~< p,6KM{q} b-35zXU̗rϰ|Ln^z|A/ F倽Svz9cXpp1:R0-_c͛R[y,sut6иk\7=d1_}LGfbuAdL3#+ \JCJȍƵ][^a7;)r bDgU&Er8?ۈvc *B:V͆Pm;NgsFلZV%"zrμ0yL% F#%>xt%3)KF8=?Akt m (2}mj":G0_$x/ǯѽG_鳷RIF ȱg=FgPD Ol7}MNNsVO/ɓ vXX?]?.y/g1׮dr r?xU+~U z|a͗tl1y9Au$0Wm Zɵ!pMͰ0ن@e4uKEjD³16e''nq+Juޥ\2.&c}v=UR_LQ ^w-, |KvRCzz Ы*z2vduk%'4w ]xhҖfM d(⣿ithDgm-RIj@IE E>iA3;T:S{W22``Rzc5ex] Ű LE{#>>#͖oq]y|CONif3.Nq1m׈ϻ?3yΛY·{>|u噽WbwKLUHdwm/yu./1ޣ~Ȉ׊ mȳzKf%{$#"Y""BkD(ĘS#M/sheBw,u[c*%2( b *{lDHmGIJX'uv9RT ,e͚7k_ 7tBLp)"(LEW)lmndd-~ hBNĮP JIZK n{&ٮLYӞr΄$%Q E8aw KvՒZj3x3֜] AlwU;3+++k{p =>D*ۏE6%xOqi凜 %uf5B]?$J'ƾih0Ul@fI"M 41Te\KDgUiC3:u!}7>CB>W }#x3T (M7{O1Rh=x*j럷 =(}N=hdnxpO?Z`kkɅ"Mq?&}~Bܝ1+R?t6k>{LT#6SkBLʷ&v&Phiǿ9 sQ&锠$^.ދ; Oz'YoHζ7^BO8[ H86g(҂b3»SbU:J3ūZ 3.u-0GW EKSS޽K^4k6 W-O\"a`Y0ٙU7dZڈc0tJNNnrz"KQEAYi}3WS#Ŭsd)YJ):8!gW sCUIV*7T%JKT-MY18g-nY]@{ܾuvuISlTh% 'Zo-u4E"v@}pY&T͒a:~#w(BOn Q1a4?k4ϙz/y~LI" Q¼|@;QTJl"CzOyuoo1>D L^'{t2AZ'egƯ>|z!x.Osjλ`8Y_|p<$K/y/^zhWl_dT}_)= >|~BnG](c15%JJdIB"iX*A }(!I !nDvU':)5.4CdFYV^MX[PR(E1dQ진\Xe[@&P\FҐ(8+&D*(߫6-]ybuY12HR"I.>gB@Ҍg>{y++:zfMB#RI b#銵D Z$"J+u輧%"fO0MH0dRbhT}1p#UBDDfȤ@v="C1Dy a! 0RKG&cC@@zֲ4:Rm4MkYF( )*atHԒ$x7VD$adO7!]l#S A*Apz3;;Cz?{G($5[zBnԀպD@眝?.f&SRtoNX.f+'s; ֭7 d$gM9?C.x!yxĭ(Pkƣ]bȯ~GA?o(v)?kEB()K"cYQo#e1꒨$QtV@7+BXᛊf$65d`)MSwAbE-,>^\01r\bΘsn6O8}Md[^Q7# *˓'H0i^1B<}p&;/)DѫB`׎iMG#EN}ymUѪd5Y@}}ίט%Trw9>y-4.t\.:<ێ{<}JgTY1XO5XAv-JF D&֒iMU1I]WsQ挊A=~H6)^9t)!FQ2*FHa3ڲC6;hd*͆u]E2 gB|&O7_}E˔fEhyK9}7c[}_ۿ&tݣ;|Ʉx 6RLxя-W_?b'Ǵm̓'OI4 0.3T՚q1bⓋgxPn ~Zl4_׫Ϫ|?GeUˠ?w/9o}nU`>_d~v?[ĶQ&#MRNq}ux2!Uе5> bhjvĮ%O 9Z+뎦(mj*_lN0:!A$CC΁N FDbsJ .@jf;r5>h)2eDqSyOthMm-w rCl$#)i'JI:۲hZj0idj UZ&޻yVJ1  o@)z|\0DK B'zB[\Vs`z6Wȴ'ydijkJ3(&!}>'3* \ҵ%˒ﰸ|uwAk=O?twյ^#N[Cfɺڐ E:3OBMcK<H9E&C־c<)v)FmєmdqfEAdyA!0.&a,$Ҡ3=\XoTFg9I>gg4hEarm@b 5{o2;8AUnmCzNZF vf``.PY[~Wk>s0B/㔉$!EB3>f~;G){?h W%Q_ oڻQ8gX λ03f; 9dTKV NgsL>9{HY[vs~zhYQ?9/|s pl|2_>Ҡ!Y]YS&!λ?$IZy-OU )bD*gݪ 0̇fobŀ't+Dܲ]o8ޟq|tmL>÷_dR'fYQvk,#$/P5XT# l\*d@YLwN8&:KIi|G:]2,i[1~De4d|X:єKtd}hiEY"ƎҌA[w̆qtf4Q*$}Tɭ[\/ gB|`RhVsvMq#F*񮦫DoۡKT kyw0z A#/ɟZSӒxzx-{kF'fg 1>9FtVfȲ{W_3th%0βyzvݲ9Ė$IyzqՂWdoe^Z|Y_>OEd/j>{/@eJg||+Ő߫<)vv)k;B'$"!PDؔ%$I9bFuvrrӶ=-^FFRa%*IHAM `^vخEEft#QJ#Kh~2@*mzuTk ]jJ5T=f[TTo>FF)DiTIFZD׏? 'Z^c}ڶc{ k4UMHF>;Yw`LǶhg<}CW3 W׌&Gԫxt Uxq?`$BGyqI>xtv̶Ldwc՚9&7$3lDYnS SHZs:|FhK4fNE@#ڊ}_}[x2a e 4O?~5,][|k[Ow~A8Ɠ!:DEרW)vSn uU!bF\0aZmz[Ҵ QhvKCɝ[/ѡlH nF>Ër K4Ϟ^02̇TG"Y̯yNY;IJjR\2.؛fbmbg>teFF>`B^w#Z]˃gٶF[tR!3#F9Ir;+M0ZKӏ"Y,XWrSJ?oD U딿fq])`O[#%߹)nĺfQ;Vpڻ#vx 1]av5 2ju[$#+4w8 Ul4_ׯ[9뾰ki9~3l20>*'i$5 !yҔĀv"-fCk|U9 kuoQ1"/5QJ<\%5miu-Ն4+,ä HH<{ŐD BH)Xu!*AfA<<%jBiy}Ʒ>ɬHo8F)|xZȶ]O inB*A&up.Ѕ@&X~du:͈QBK"e$Cy1/+ 4G<@&oTrhDfR4E,IK09M%+=?߳|L1eEJι:ޮ}f+\|l2&E>ַx["~򐓻ۯ=rqfscd'<wfro˝o|jozY_^6/k֋`? |c>~} !K̯R$Bsk4b2_C(a˖F!$5yoR E}3ľ9V @ W\'#6 lhCIZK=HAPV -34ΑƀV *z2CENцHkMyNa iѐT#iڮcb0 =aa )A$bAzhC>ap&ah;F>Za14E!FÏ6.(|?Ɋ Qh(eI4Պ9CG_?Tt<$ߧ j!Oa*o:N(vw v&'(_rx198d+?7wO~2_~zCƣ g喦Fslsc}d>Ŝdt:BAIMh,$JjF)ۮd>㻖DiKip"g[:U52ti Yβ32beF]09gr"Q1!"*KɓFTF#f W_7F1~85)vRMKMrBEApk%"Ub"#%BRp9KݕƓCa?_g\ڿh,>U4nǝ8L ;s 8ޝ)ڀ|DYو[\?# wFG|q~&lv[ov)&SW3_ynO"׭/R`i_t=:Џ>Z8 A@$QDTkiXkQȪR΄ k|ZZS"<#TI|%a;t)mEDD@S ,#{U12JSEJUW l4&(LrҚTbD7*Q,u(Q"oHzߤVI1bemд-r!p$atXf:FYPAyAJTwGmhl`l4zH}U10ZLAH,Lin IVF)u!zv`"uPB@j4RКmJѸ@ W- MC-I;{=2Dw%Hdj:cb$QSzJt$I"(SQ7)Rb$'p#v-*J #h(H\[b@ƈVqnJٖ$847%ZR,9J5] HHVM6i_!Q7H N~\_]д5vNS׌!^} "d3)5o.RH>4p OqַA(8St2t!c8NHs{3ʮ%?`2C~/|Tb7}..|>8cƹ!tGrSR)"{ʺf4B(E[#+;1\FA68֕jk" b[V5LcI5nj:(Ԋ`=kEg%C1]ٺ>p\pp4&>࠭*ƣ} <} )جؒk+q88gؒH"Mb4!Mr%Z$Y$PfZLp0bS`)#T?dsHΘjU Y75F>!x0c gtC޼ TPDԠ a"vLvv =Z&LY 5'wI\Q7[vp0#zA{:z d (,Mʆ$Es:?m& F/? +3g/Z()ys{G(g#))XxJ3d&iVjʽ{og}n:`~uΫ9?@#&l׾m9㳇z**XƓͦJzY_T/͗_lw8K<W&uR^Xyr|xHYlKBp $pՖC@Fmɲ(58oQ3.g rr!|+jCeLdBet1G{(m-)ҜΔn:QYvGcڦ~s eא$MSZgg0oTi1YJjߓYm6', ;|5/Z-|~_T~t@sR<`woޚrv>;?awzl:)7AKPGKuM;9BNQUtvt8a j@z1<r/e}^6/kV|I7~'~q|N|D׫_~WdC(~ ԍkg4Dc,KzoT'k(FS4CjӕY,ٝs 9<ӝoU,dOj-Y6Z0`C_dˀeȒ-MddYígȘ8Mɪ.yr^k c(P FR$ @F`w#ʔV} L'lF5]?NlE?BN)GVíҴm;eI)O(J+CH~H A$H c fA[J0B=U]$-1Ii$VIaWQ2ݎ. j$a!$A32OέQZ6݈U2L8JȂR1 eURepEbp@"BJ}F}ωu2Rh&Z$HSS+Bp#^(Bʖ 1bt%JP9G@P RdzHSƘ91ƌԖh̜ 8CT)Nʢ2AzHjq!)1PHNc`6'fEɼ(ى)%jKV B$Rri@H !HA]0c"gVѫwn $mY{86>:֔{Knnyrx{t|cow*coaW}DY:c%8\u<}ӓ8\Ljt/yf76iyOahv w_S_pla{Wr{]& 1NCk fbQC$&g+̀TK3|J캞E8ȜrQ:XPs8y) \D]rp&NxzB ׾̣G\WUrC>(z=PZˊ7X? / |AgS ?ɟmYG*>mM? W0D?p! :҂eiIeTeJcen bB0{r h# )aR$ ERiB͎Q %-:Tm"SW5 0I @Ma8m@KbNE# 〈 ˢ@iCY2%!Jڐs@+EȉvH1b4>00 BHG8ZSC?Bȭ8p* )k3EFBJ ]J0"F)Ӓ I&=71JMh$5[e$~ dA;¡" As( K)Mc )BUY2H'2GƠǒېOEQ&tUEJ't"aSKQWSL qk[Uxm9nGZbA 2L= AVbr dt"a4R*P(ID?83))ܾoAŜl HB[M Z+/ۇ<{!>>攦MmC4Z<| f6,Vtݗj|^[wHQ'EZ?{r U I<Y֐eVX ^STF_Ӈ$]}DrGe B>ܓmz~;G<\\SI݀B A{h xvT{GX` =R;HUd28r:mro.:2+jvcٛה9fnGr1+8^-9\,8nl{Xi"\E0qĭS_Rеg}cke ~$v/qH!COzҠŔ'c(k| :%vg k'Ǒ?`Ls86?NQD2î0\^>GKRN(x!,f{ d'wOR~\3|>!٠* i;ؿ> /!r` #X+o.?C(-޸ ?ֿo͵_r;\reD+3i@c5-IK-0JDfUβv4_kr7-ۡe-NI?-fSVgEIjՕA b7z\. A"Y B5gM7E\e^ = žk嶣њhI"ON9s{2HJ t(9(mN]zNNZkjWcňji<)os%73r>3*9ҤHe,mI>b,$Qm7T`I>"HAJENRƧ36%! `!2C"sv$*!ch\y0exDT6 cH R/tr0AZRHkAjF$)NPJ zJb=(CZP>@U3;΍CRu{sp|rf)jQs"l[/=b vE9nDŽ0#/RrR3H"ܼ~Yg؜]2t-KYq||e9gXѵ "xrL#Dي{0_Ngx5C*˳'2Ė ׿|R-9><٣&!ޏ2T79u;7^5 O|lF?6B& ۀs%V@ʒAʈ4 !sv)pJ1~$ ӵ)jtʄhʘEp 93 |N LR]0scGP[K 2VQJ1#RHs켧#>^Usd#DISWa^]xϦX9jڶ'ML,6 cR2$N$B"Vh|$>J'IeQr I0W /@5C7 I$}LXQRR)FN"%B!&V( :K榠c5#qQRNYy8HH6X%!D<|u7P@qCP6d!b[OUR\xq2u}"Rir4BQZOnB31Az<vnK/臄+ N{ԯ>_F^Ero՚׸hذwE8aTlv W/ЛrvgO(:/0D4nH #fbXr~rGT9O_)v='ƌՊLby>L]n_v2HPJp8cony BClJbÝMlV&?-(#!f*W"ds&bѷ0/5osryƒǏz1 ^"׈QC}߯i.2d5nE~{4G]V 9\-Cw5a!:g63HNi␄3ų.qu*<=}JUy ̺9c\( 19C$y4s̬FR B*rVn,Zl.Nsܼ2ͦbm{E':GfA;lHꙥ3d bcYwX{i\<㠜S:Kԫ_qz-חKԸby^epUv~dzp{oɞֈGU< !20,`"kC#3.&I>0#X>e1PN .9O=R{ d "O9㐸R8QRarV3qP)2$ %Z0R·/LΉ'D~r!jCTzw0es"*M53#aDP+d-2QI \_.ǫNwR߹KFNޣKCWb΍WHmyX!wfk|].JǽrR{'}u&ٽ " /ů:Z0п~qNӉ웑XHc11@5B6OF4)B#U]QV50 H YF b6@ IFҏmQȜS A]6JrN Ti$eԮbj[XMNhlmRH~ I4lIҚ 0Ň@m؎s1Bd`_7H.$r0'](zPr NdjG2!hzO]HXXIb`2Ni!aDN*1Zb$JM)!y&}(q`GH51zT&/4GF(hC".K㤠`Un.K:?Ieiu=QqӢS1HjI0Pr:?AU !!̮oٍVRCAFq`(pB| -u )R8ca((JJu oZtiRHQX34e+wnc|8s*)9x˯n5rQ6rm^qK\^\<ͻ&=ʊяX@K^b.%$G$4T9:/.Y-1G2ohn1a臁F(MkYV5{U!%$*F Pd2e6KbBx" bmn8}>zzHJG%e]`7FD B#'&9At0آdT2b* gJRf0WRL Uc9O!cW| HF2Sf_#9șRb`u#XLJט)C</BxY0-[9ɎBlCe9&ׯ17bحr9g$7_}pn " 6͎e^n.-W:C۵f* !T3}(MMb91z=+%Г$Z5g9 ,K~GQavnDHsH8\9%fI1cl):K,5 }bs69/V%#o@ď;&?yg4~{W7z uϫU~xNLt3n&ŊSԅAH)ǎ7_w!J-m]+Գ9$GOrr~[o~0Y޽؎=^+<~! ~x^~ /ʒ"AOzq> qRڐ"} ZGR|NNNKDe+Ba0dPCG{yAK" }#J@*Od&c\@"DЎ.[VI*82m9Ǒ9a^DljIY:L]} ʘD"xȠ! z=UE!=)3SBI^D>j;,B*vK3U5F)tS(a +mG ( !)x CB)H#!0S $AdvLJȪ()$×@={EEJ!h4pj\vHs4cߡ\ 4gA*>w{/q9fKr(? {Kn2J {>F +볇ܿ[Cu=8rqѭkNcS ۿcsW)`oq S:Gr|Vg%vJx|f+oA]m;}k'W#>$R)2Q\̼Ph%vS,l>Ř#bq"93/i]rxx3I9#fuvD1x[89۲ 0#smoI="Į Գ HYEҘ!LU~ס':îo #0Jsf=g۶AbIYsqqƟ|sVsn^;8 4EGt lζ9Sv;%Uӆ=qd!6rF]WCCY7}OӘz8jA̙fWTp-RI7knGJ<}5zУSB-ܽKAeVeF8X,\x1qq" ͆΍$@W5;L*h'(\#%2<-m/8?N#?HgW1'yrWb@}`ao>LjDH!E8KeJsW+f.r>oݸ7onÇB P۟q}^~9 /S+ mYlȯL֧)|q}>?> 3M@'U_!1tf2Ӊu`Y/ -]C)UQ(c4r(8[rIUSohɕ0!Y%d@F8αrv]($q! D%yʳT@ά۞R (mǑ>LHжDYPXMFJ[R #5gMh) 9&:?eQ)r@[ː" 2&fJk Y !%<)zfF#˂#35er ASdna.[4B@vD& KʉiR%$p` 1dB7N)SLO}Z)/D4!E $^ ! KM2>J v)SV%Ҝ# G W#A+ d4J"II V3ĢJQc)1N}A~iƑZ*6FҏH-J3 G?Bm"!6"END5-R2-YI_bY:Ͽ "=~a9Nb˟*y͖o_9V&D#W 90r8 jf7nt~0$e`~ǨWHE NҠji3}r`#T҂G0o|?yxfq=o=;5ȯ|?վz 4__S*/5'N8s`SP'{m-B(2؋"mG8!) e@LLE:65( HEc@ }ܲc#Kk_rCJ||VJ(4"EFhYrAPrhMZQv$,JB;QN[ )nLG AcZԈF;fZV82p"0=0"LZ '֊9@,+|Dm034YAf+jEa! .j5k)Ea%0b(\U >&,"˜A;D)QV_?*J`!sxZqb{by!$9Ts2r&)I 횪KÍ3iRY'@P5:P7ͭV"IlA~1M^@)L i@8~ijr|%VKyq\X`1;8]?c\} vF#يh/z/}lsDwP2(tw>u`,]?iwYFΟ=D[chg5ȲKa9o{)=)Hștcib`1TIX\C~jEJ\$msmzQRXݞVK8b8$hQ3SsVQ$"QB2M!&RNH-J(BPbxl?!wu]@J=0{6\G^۬QobC~o6_k1)2__lʧ+p1ۮ6h!:"iƈ'F?RdiX19a!13EH\BNb9#DJ c)gVK̭fș,k`I)DIU47).gi n }͹ 'r.,1kZsd#EIव$ J Ρ$Ӓq,j1R-%. )APEɅ"Z!emJȂ+>I6ơ|2F- m1ZJI-91ŞiYh{RR"HTVfŢ D^ S̜C;յ^` 7?w|8\Xrx2c~z1OgvxL#/>~­Ǽx~Dnݚ4\BFtc9}MÄ.lu{,%='w{cŶtip5^c5EjzT'~il=Ev|GN3M7vR+(:3 j O*P)Jo"Btrq(g R4NCX5݉Q\dӲ=ˮEz1a_qvy͝cFg<~aJtmrWP#V U2B ֗W,Km fJ 9yƘ9 DQ|v̬{s!?#CfӚQiW->>bd3  1f30 4g`CJ2M~G?\n}qdF]9=) tM}:ņk ?9X5Ȝ9=Pl>!NnA#*&nZv 5TW }|AXPn#o2%}!gmd./qJ1 ӻW/0팦q}(c/gi/_VW _4perg|O[zvWr 9X99X]G<ɂT o~Ã[l/G"ߥv<&^95|]\}k/|/:?1|?̗98fHqB<@K̬jkB`),rHJ@iuĘB@ MZM,0y4k1vIHG&UW2>V=4MLGJ4SJl"$)07N[bZk.wɏ MIKRئAJv1PJ9#K!gJdƌҬV4֐aid 2(~ 9FXAʡ5 c4InB(A)0z)PA)a;G.aY\AMnI9(.&}P60F"K:I;w+)xi-B'V$ CH;32V(% $\qV&LjQy!@*ɘ51 R:akfEdWھVrrrR㐴*V%./"HSђ@ɺ bdaBdQ󄕪F]@I5ZŇľdL5M6!EFU )ߣ@eסa;Mxw`i4Z i!2\NaL4N=M8ݡ:xra`9_J#3i9~Cc-HrJ=q?FBX&,tC8iH9YBccaM}vs~"XaR Lų{RRA#>7u~hK6ƴ7bE Zhu&-+( wknj!͛B}qytus IDAT!ЗHkJRJLQ +$/(鄮Z mH7N+ !14K&PRGJA>~()!)j$LjB2LS JATB20M3L7q74Sel6[霮:TZk|!`µP  ֑rLX J5꠬IFk$6乾~bvRhF1ϋ 2Ȁwwÿ;UТBO{|PUMKPر\*(S<=;gs~Ⴃ;$x#k~g?bL7nC3r *81%W^/,yJCs~Wf|˾dWobHZ61V!0 24B[5V"&O q"kKH o  )G૶J;C"H)㬣D {~"Ԇ=BWT֊<{P20K(" ɬ]1q-|XH!OiżZ{lDIE ZB1L )$m7c2H͐ }1J3okr @c'F/؛y5E2ZcDpI12UB J n:ZX #$4ZRȢq1I5je4 mIdĔRv : JaQӧL?fF(nJܸV|N3kiAdѬ7i(3rPk8%&rҰNv % uӎx`ei&K{ղjixٱTy#Lh #CHBc ݎ*cȥ`@ZhѬA_U$L2dN"e6R ;-"x]?áGmيv!y~kNHGh\uŸM8ג heiEDkr6cFQFC7oЍ:Xo0%wy򓿤;>Ëx|t]q\yf3챓b⚂`ѭ^lnsby=Цk^) ss$9:hIHfFC,Hm޾s~ͿOWw2d~_f/Y7RYϞ<7[c-|Au)~cF<6Ve=VYB )~$?֛oж|g~sv~M;;dfVCc4[LIr{F* u^FAW+fLs%ǾWt9_ R@؀)Eb5'Phgۺ{T ~B6H)@2˜36ئe#A`szbC&mB01Oq%>81BSBAfO*Rc]ȩВHK>”@H1,$YH"`,}锢USae1`Dʛ\JҺ FB sqd"DA֪vn1tR mLp,1etTk_ {+ )4; CFkvRwIPPM#uRƈ # (X2R*UR"9RBYE.:.% "g:%栖B]eR̬)7u<Xj%|#ڹ!X˦dxrJh1M)4ul'?'n0l=͋gm3N ZQ8pF9RI1 s}cuPO7% 95zuL)mDu.gtHE#,W(cXo/[,~dL 1$Sh-B"Bc%E;ńQVjF%9)vhkbgg-R*Dl/7ѣ[<9rw'RFh4$ tf{솁Mp2)#sT(!@&lY# D.ӎUKvHe=B.5 [0;~b2s~4ֱlㄔ#O{ΞO}+%X ZW%>咻ߦuٗq ]ck *AuU69kI)"b3;;`}Ff4u;XRB?MS><J2O.1dfeo-(B)ɪ[1dA(B 2 PS}(k.gOR$Dɯ d?/鳕V{p{%P$1xe!@ AA+bR;/ج'BN4nR8^Z? >kb21w_U5|]T}k/yītx\KP~ӼG--qO(]M M6vt5i)p0[0D+R>EdmXhӲ2x(L ibi[рW4 %5XM()@+yL C=)< a4YIdrQ8]]vFJV%V%Pj)kR)C G %W TYQ--ak$ " %y>F#c^VWX!Sf"3 .Ƈim4ZzS3k(HnV)DaSIgqbEIE =FNBu5]hs4z6 iX'l&D،'R+`"VNd#B)0Ȯ1RԈa* !BkD I!d(cBd (UvB*0 q9K`T {@(u'SYm#fE5'O ~bQroLG<3.0ծWvq0ElD?{Z Jja>[5w c ];[b9evc"!eR*(+7:O@1ZKaluͥ>oBJ70Ld20L!6 @) t^7[IGwnWW$g ~i!)|NhX8,T*eHn ͬe2S8v1psd{DzvΣ[:*4awNΆ-Q4Js9 X4!R8)CJDA*8>L"8v=Wg-c[s$1H0{\)ATWR!`` (#kkl5e)r$ 4Z2JԂ]B r0K"%ZJ2 %rEU~dq)erJKyCB%`680M0L$s1II@!|.5j%T7\nن(@*)ӊJm[N[w<Gn9]\GjK'cNˁG8>O8.[hFqx1oFhDJ\{\}!& t{@"{t*qu3¸aqp8nI~ab?fV' (\sR{}{tˆT`}~i܍F(a`].WB$.\(INo佟% hqx-6BqER@(!2D rPRadͅT}u٢bl2#~X,K Ba%_7]I%Mɰ&b*λ?JS$ N"A8`B6^"u +b $ ?4ds-i#wOÏoó;y)gY.\`ܹ{OȜ^8\~X][<hOHUiK5}ҳ'[ ln8nW̪i9N(IV;Ӱ6HzffY-W,#āY,HR" YW͟N_d~9_B} 6B,nzRAoxR"}:/5|]_k/y'/ 2伯#U/)Y2g胻$iu0_.Yj~MӲZ8Ғe k-]Һ a8ZT k0aRhDI )Ryȱȣgs-AIڣ EAOU#@tAj'NF ޹{ {Y6 +*OE #dF1\""&d lZ_2eخXS !SbbN3B5$D:UH2tg?ȘiFp޳G*p"uCfKຮ҅MgPxQ]9[-()`f'fb&T*6ZI΢(Qdf#mJmw\DN+1Z[/C7Y8CJ!  ra}U'' Y@2i !d,` JY)rAU!@IlB`{CVZ + M)4"phfs\a#߱sX_u nUMT 盉zǓg} c9. 9bj: 0!;MʙKﰜT=Jw1Ӟ #3yCaˋKcuԂ BpݿOX9_qpxH^#Ąט4%!$QH;gX;$X#@YOVBfH,7.Rj i10jԵ-ѬZ-vÞmcZ@ΐA˄ъ|ռTf^3;pJ./Z)杹a=&v}ϦNiR,0FSqVu [e 'Yɥ1ۏ^oAw0F6wY,8^ͱi)r)i4lټx/~#[f H=͚8 aX8'|L1'i4]e !#,n'Z܌R\]# 8[_b9G┥Q+ GC6}_6!q~N۝2zJ.$4y4v(ƞ(11w}l)mYiO770|+7s\ |79ĦΦ(7KWˆW^u=/7믧^KޛFے\wxsMJRUIBK0 ,*Mcش,ū{uvelucMq{@ !T  fTI%Tt?̈Ȉ<2^ϖ<12rcqXp$Z˸C <2^R6,5Uj=|slc{أ??`т^ssz4?5r 7{q T,5[)2BxOC?w;g {=H? $< ~,2(z$#1ٛΙ܌6ݝ#K<] b 3 6&DIJAI4s~6J"GIJ}#zGz,L邐 Ix"c EDdn; e}3/Mۤd3,Ҕc8$^E'3G#d D~ UI,c/`.$Q$#F$dDQBH Ŝ~oy}f\۝e'$)c_@ebAd Bf)/q I%,Qe|$&$RHRE!]&I >a"dJ' GBсLLL!^eLzEd)"ƈ7SHbշמS-y+LgIsgN"/?}/?#}fɳ8{s_`g\r9d4Xr⋜AA? =$w@FUgx?fck'[lOዄ0d)O~JElND{ATf,f $~K8XĤHxYOWH !$%F|=}^ x!Y~ŐLa4O3fW} qɓ 8brjY z=Bl>ib?._yɄhid fiӽ=z8ϙݸkc4YLNH/k gAɕ7IE@loms0AsgR͛D>/K$I`H?b/wf\"'αEo8 ω _ C| |?#K$"B^^b)?9x+-7-0[O%qC"! ,a)+Y,54ݬ8; 7k@sM/][WI{SFDӢ-|UJɍf1oսA0 '#Q*F=Za+SOF,< '1g73Bg Bfdqfr؏C|᱿;c,xaJ`#˸7eIBL _Ea z!ѐٌ$MxB{>$cAI>B` <O ~t@3 >^'MSH10d{8d=Q2{4MrH`I3 l51!$S@{EfxIGg@z,."$.BJ^bnf$IL,N3zA@"%S&#ƃX$?HI™Gxx2}A,hlN6O"dM9#x©sy' > ǹńXz?^}vG z^@L4y/& 8a{9HȖ$B B b0g:r Kan )||N'zxAڨ#<J XOF}D'}3 8ʥi >#Sԃ$K2e2 νJ$xJ8"\Iy,J+=0Ðx"IXD1B0"#)i!Btt3xkHQq<'1AH?~n)S$^EG{LHȄb <_#<ސ~~{gx (c4C>R9 <|!Yd)8Z^';}aHw`8")E/Mc%A/ ɯI|$QD(A@e/RA؟zq0McCHt@  ӈt H4!J&L^[1X,xWү iWC\Ƅ,-s\I^|2s,b[ 6N H#0D lm27@/L {}i°^C{diF/,.ϔ |̘g^zL1q3B`8;Ke&[1Ȃmmd>{>a(g'XD>łx˗HH2 FͭMN:E.1S'7 nx<3o0xoDHt:#Hz1{-ݸB\ɀ[oL@L6O dFIpDƉ B40 釽q327 y"I|?$ i' CrW?,C$) xy Sҽ<E%,(Ώ~rBsX%ju'+5k:!zdڮj>F1 Jo0tTe./C ,!2% f@/Xfhhx>Ya@ k7ei% "I!8@ OW^K,3-L=YFqT (r:>$<(ːIB(MY$XD1"A?@$Mhyi@2CN~/3#d~!*@Ɍ, Àᰇb1!|("NS2/ ri!bAKH/נ8y2gDA#L!MIO*3de) I%B" Ięd qF z='{Erml?ƅWonūI;7 Ww#d*pƜpDDA8PeIG1`#]LKY̧<7/!'y\~$Ia@:c7N~I1==.npU4%^G 3$C>xds] Nϰ8QDH8%Ṛ|@&}j9l#'wFvS̑"d:̏荸w d"nf.\ccẠYn|y.{חWQLO0cWfd|~u(dRYow_4B5gX\L)aE|xEkZQXiv9[,m smwQV2S\vfϺ9&Cv+X^v PxD!>ʟ2~95wf]ǻos\>I-u$Yʑ_E9">VU_]EtbKloRl(y˲ jՕX}ȹ#t0N,(o9 =N@*W(ˮ[P:GpU_y`,^eY^XTYA!1*By)}&*Eۥ:wYI.L Y6#lGq^{tir :gaY6{͵fiZ-y"¥qwH5LkPYg4K/sMRY0G$;t,1zD>+]~^W<:pІ?u>˄%k)]= /x;{|\MP$MmVVQ{K*U, WHeoj AsT? %uy\Qᕦ\mɶʐ݁Ն,axA,TBǬzZbuk96dUN-ipRo UU3l8QʗOK-Nע*`#n2 -9״.k:2a5)tn ̇bZV["G}.udT꩙au 2.(B lL1ӕ0-.ano5Ʉ fii+Mvq.jlcS>V*ARk˺^SiyDͬRU/=51Sߓ~дgz#뜮O| m4*e/~i9Q6H%[)u޴WQ @|7wOޮ¾ @HKd!'4oiMkzIpm@u@v^jźZEI%11#i7Q ڣ*x:U8Ԣ Ԛ ԙl']G-2ko)>V-d*+]hϊXIJr]롃OVQ%r6ܲ5@O]KmoZgXDQ,4gP{R tb}&!YIiTIcCɥ`*;j9f?*c/4*2e}|,FYUP2B;o 3TJHhy(śi[_[iXN( ?;S,ƟT-"[Tg+p8Q˶4v & lڵsMJk {WY .Zzd{P\<6љ*wUŕa\rH*(>`aMgc"7=TRZy:S.nJل_UhdTZ9 t*bi6-Qxi-f1'Ư}wv}lq%,`2i"iaH)ߥR4`RATvHe58 20^6R?elɪ"L_iy#S[ŌSaM׻BΗuTNPPAtjzarI\S2x߷"\ͭiW+ّu ,hHdӪX@sn)^3m܆ڊ<$L\K^gϦmfqzq zWBw*Vs'j|0]˛.GhJfoF.T<)qN6 ls6]a[tDPQ!'L/~=ERWf×덩š*,1D gsTPtTd sA]%$K&JK˯TEzf]J4~;2@I9BdX3ᬞyN;g&_XE4igӬVZ[XYk1’ݘ?-߷fjEsDrRhyZ5hhյ!Lr̶R'86ەvAP}|*h[em,t͛#iX@8/2k\؄bwUר4P6 \5]`n'wjmtxaWmx/}(@"Ա~avHL\5-.nl%ToqbVi2[NWqM5~R:uX~U\] pwrny1vZþAU3ZhVk>{JJ=ZIP2őVj5JE*dǦh4vj sMDk:ê om]ANV^#p63ePG a 6;ƯY-G"CQeMZI]3cWKz;;Z1Me)Ճ1A񐵕aSϯ:Yrs$B<~ޖmߢUMc6j׬$ӦM(;Me^xdUP*擦g dCls> JvH.MYVweJT*poD**e@a+\\Y um9CvgӋS5BhJIDdU]l4D$Y)T1Nw> Z]i:evM*E R*&sUYaE?³ s뼚o>RIeDaҬUt9365ޭLYsTe+Yh=-:f.sLSW*/ IDATl-wL+LgkZhht SO,NE8@G^hY;Ȇ)U:Nj3ЋmzC\A`(Vlj3ڼUWSH(aD)1βaJESh.F{a,VJ.[՟zRf|摇~1Rk-Ieei:% LL,ZٜVysZTWU YY*L)3D.Lr )*>xd\"Os]J,seھ(4@h5GիYxfȦwQ+O%NqQ@fc3݂ 6M E]Jv0x8ThhMkzi 4t$ꈅEZqJC6D8SZoWb4w4O\+^/.lKT~(E-~o[쪼hqjPէbZJ֋*k])Phwţ2UTRnoLTc؊7[鷉ݪT"ܹGYB"UIZL]2Umf?G:oߝȀo6|n:I~&2S۩LRX4 bB$+I@uT1Si !`}5YEj m}iUDL)J3!ꂨVpj u9 6VA 2/fϺ59h 4RW"~<6&{IJ.vV` :jƣe!$kQ}tN}0[=y4Q Yv G͓TGAm"+A ɻjh\@La!0yo׼h)ٹ.SAm]XJS_iyɨM(]QxTz^ۂ(Ushf[g]̲LK[<[OfW"*^U%rg@rcۢ3)Mj^KRy5}`ӼO(]XLbsK TkSy7@8+#Ŗ5鈴k:>괶/֌O]Lؓ8WP%wir3Ju֒P*@yV?/[5+;I`hG&Y~# & [A(UlO5@sMC2)4P{iVMg ]?|M9 {fеҚ˶%9jn)TypSȬrsZ5Ϲ6YJuC2ˬ-5%#M-û zjrsHm-a4۴R]h֯*uMd `ch,Mj>4x0Im!/L$ghT5`hִ % “y&7DAl3q5.ج6$ʓ_'ґr,mq{W jK-kxXm(ECloSwO:ձd0?`23zNStJ2ݽpx F5\1h$CmΌzیPE/{v~tIۜ"kbn+JZ:Ӓu-$-OU‘GSi%hpGE"g\#ur5+ HwHmL"&YDy][8W]哿I8Llh \6LjmnYyKʣ4Js<|z=}.]>&9l\VJih3|6,IgQ_.`,fS9iYbVJ*W̔E ?WU zuZKU-A ؊wBW%G_vGut?/#Ph\Q]%f^y͆TRf7d8bAkk@sMG.?IOc&݁4aKwdwims8o&tܘRW;:ZֶV@@q0/`SԑpyWwƥMv%@o5iLܐ61 e+McI[x8w<3PsŻv ߚlyQ7=UUy3l϶a"\y~Ӓ7+|g0ߙT@iLMͬ@ ̒f}~<fi2e]X.1.moz-wr/>}1q][U* \Wڴ:OZJ5@fQ4M}vSFuL43i gk.[.WJZo:~KSl*\UuT,,Md,G)} KZ%V#Am`u$PSC6YaIPeUYe8$Ԝn w"lak@sMG &|%wݗ|W PLt# Wu}S2k~q. ]"%:aHXm渆χeI&b,lEilKԩ,!G 5}O[hYQΡjf5gjW [倣P~-qK}vPDл\y@RAh󔹔:\ӚFkc.3OTNT̬Ƨޙ$:@_MD[ym:h;0&)v# =07.eZ da2 M4j+QDC׻(GY^MR` ^:hy ƫtCfp f][i~fSۤ3Af+L4>\"f/[wV֡{UyŠU8f}34cV -%+L5rqbCz5(k:uhYk8jWu{6`g/z=.Jtv:r45:>D(TWD#Qc[PJ;ɥ`No~cC HxKEƭɘoۛBß!8sqc?>!tZȚF&KUjmS¶6y۾_fu;۹[g3>(Hvf%KY,iIYڵt* 25o վ-KФŠҳl&^kŪ8ȜQ5\7buUyrVB?k huԸzDVm.@l`& {]䭼ڜ&oNu9u򗾟,Pw;Ik@sMG TY]^1mAAu\$b7tK=atɓuu%Y 0TW(ܐmRX׵1h(VS jڞ^l . יw\n6NWi-@=8HW_s' VL6Qp50 nbB_3kzMƲË_;n?e<|wyi^R~/8ne.a"rfF-/eSlQ0~$.ג-A@=;nLh`SI) QTU`ڙM3XWi-U|73BxKrfqԻ7eiB,[6r,u_tՋh'C`SoQmPVtGW\[RNkw/㟳rPco|7?{4i1eѬ)]ӚBkQ *-(W|6~|v^ߚsĊ (rAU 5||dcѥ!rOS*8%':o!˻ͩtVۮ_ ^#c{v珟H/Lj 8#ޜp Ͱ=wʷ|+{4]jth'ʥ(8y{K'5B~'$>8{{6?A=UklB_f{k'/"[-|Wܭ|w|'r+=(?vʃׯ4ٲPA%wY+΀Ը8߫,U/whz/"Ku3kTo%Llg[W%=r5U }zRs61J@VeT/\)jŧ `Go1~Vbߚ̙ ??PxV=3g:@sM/+暎\O+.Z ѤF![;>tMbŸAfLNAcj* ZLpMim\2R@f;~,[M8ߋ]fk!ɀ߾|k?A׆|ټͿK^_x{§c4{ٽs_t3pC 7 ZV9-#3@$ 绾,$MMkj&!WJO{﹗Ʌϝ~[#?.]䣿Kyǝ< % >ERYW;2d+eyDK4U&u&ޖM3U %LRjJͦn DŽlݴ67ɐxeMyrG~s -V{;|;}R۸iB/Zi̵7|3mۜpٱ5I5\ӑz:1ve28rbu؍fjn\A(מiY4:lZ$urEzwT#&١:]n*O޵w FЇoxE4>?}}w_]Cz%xY$7qdigs.Yj -o:'y3fY B{Na@gP(?A"Zpp#}Q7ʩTਗ਼˜Tjd1˰2YS3+)-͔:fsQ0VX=#Yo)g4o,uMI*bY_K$8a 2'W\,y[^RݽY$^(NJvj ig@wh6t vViuʣ;?g:rאϰiM5\ӱR34–lh$R G5xdUAgNxX5WG]89MЖ^}uvN=g+S.% ތ[B1  au+ bO j$&)I0 w|#[[\x}siTT/}ZQq lUʬ^ MTvR(vFSTSyW(H.S AeuWa%X6EUO?*ՈWTcV'מ4^ fUoZIJ fކ7ZQ N7Mxo?` lH6F3ӗ*[b1#||}~';}~Q-]VѬu?s h \ӴX<|aIwH}x+^ɿ?˅c9w~|/{=< ?[6 xlCVThSL-MokN{5Mt8dZC)]04E9;*mW`Sri,(?.G&{tqi 4t$+MɑNHTт\]:*JXnB8']ߥQS҆"\EkKc]ZZa o+*j=RU&5Op?݈藿w!7}{ 9uܘ 1zz=^][`-2y 8RG Lig>llk[sY:._ٳgxeܧ?Y̙Ӽ?hesrj#-wִ#hIx\h WuDd6uRsC$7@f&pfRr8$,q {ttI=$DK_(g~RK xd V#Akit4Z5\fZ&Lfsc<4K-^Xby+فz{V+%W-JMsg?χV4X9&%p[{;ɩ)jH?ts#H=H=Ήn|' i+O?dwpryK!u9>W/(iZg@.K}o~4K@|Ig? ?'2up[\g6ќT-EoT՝Uf]Ī(Wm(/(i:klƑOX}݈j*Mfa4[QqTRyUF:[h6\H?u\5r~@Y]߂ZtaH/#V,R  Ƽ?Rw'r^K/w}u@uпƗk:FZ5Ȯ` LbY d6O#)t9pkRiotG``ٰB]z_DUjeKYޖ=i"nI> 6!l 5mCyE-'"d{ɵ1ri^NNyW~hX:%S!D{xNYbOjR;gE묲AbHRfԊRi]]fY(pTi*5hW]OWh0Q+3[@f.ƱWT]*f6uTGrbfU,z: d̫WDq(`**,ٔR浅 >wɇ[S]LabJ0!Q tDpkKpky8|'DK-] '%7״5\1 ع#ÂOkvе27GZ+|h̢.VW&%U-]KV.9o[NCbM}f6_e_<ϧ93O1Sd;=n f<ogx#^LumN|K}~ɑ!KMOKaYY 2qRT!#ozÛ\x9>?}?ȫS~ {"{??? />a3:k c4515G++M?OR&9pnbc*2נ. d񨶏2_^,x. *!TyVMtPS[+k!?@g(RWn8\R-f0 !ۛ-_Kyoׯ_W"#/Ez~RqTLfT ;-@6: AChI\7@5wqmsr瘌|ۿS'OqgS|Û;ɽ />Ѯ3=Tk4['i6\$ lb3*TvMWuil9Qa^,4-.~l $s&l (C oOKͭej=Y"[V}=MCwrRu*KTJa?1fwSI áv6>`8zUB=5暎L&BA.{.PђV_#lܙh 5^q}&Piq(L&VHK+.m7lٚs[4{^8}Ɠ9~ eRHyyh? w,M}<3G?D:XzyOByH<gJlmm?.泹#<5~)EQT~>H~>H)yKԿ)nvzļ}iκ?oćř]I\hMcsLWBE kP5k8Š JQQVA~oӕey|i:[Jh^ +[exm䨫^ جfc4KRc^'~_?[^Ӛk:92Y?̶X1^2PȊ 9 ,50w.W+ڃn `\X'~ƿ8e̟{CF~$\|b7, ^?X$\  #?ⵧĆwYHF$?GӠl<k(f $ Bт_A|XhףPţ/*j=BXAk+Q+**^\ Q@ HA96#;xQ\$ޒ}(++7]) E7kׯگ釦X,U[xyTWUa^KjdB͜~03!U B񆬆4LgPZh3:nZpγBVSkjF+ UY(} 9Bkxc.ʆMmiժV}e}m٪٬bAR#!=d55@ȮYLNbސ7JËtL}CT$|-C?g{zKIM/KZKfklj9p[?>&eUܡZf%~z0baU5X۲ kVGQI4a=w@ ;/݈|P׼U1}~Ć/>#/@8t?!qS+Wqo&dg#9I8#Gp4ZbO5gF:#;r;c_gɋ]O)fy" Is.˫Z^o?(I Db 5ތk@6/f' 8{ e(DY(uzxD(~}xS;S EP(>s\$?hi7ŰVvǛCfd9QSSv+z rѪMa\yŠI)? 2}O euv!.`/b7>S5"0L4 cΎɲSlz)җ>&u֒y~GKVDS*ENy]pJmLz]$eL%E&~6,n [ߜ/I`N#.2nm&H¦٘SnN?) B!٣JԲ#'4"$-TJ¦$mRmG1 Y3G&4;x9E0[ Zh@*_oF_'Ek9eHA| 牂] maqn}p &;lbФ@f2st6?uSp5)OZNO%d:m$O2t"#9v{ui] PBa@մ/cT ?q1 TV4G0jNM=yGT;xjGfXh( 7M)W"AQB SR_R?$V[XW-pRs<(;j7+D3Qm V{'8o& gͿkLkR՘kmw{j(Bh"&&j5xUPMԖAZȅYQi';ɺz5I.lF"ؿ k6tZmH[JˮjL &OwN_׾jCdAl|J+ؐcJvmf^By#:.; A|:TTN~29 Gu׆ۜd\}pu:c> '`9GN#patʒNxSsLjƈ$|jc7?B(@H !KЦvzŴbkIjClJ7 7IC2'XÈoISD9O9#>EπByBM\#j8^މf|D׎ZQe_|؋slW^6yjaEP s:"35Jϻњen6"m 1P4)`O @Y˧83뉛3~v>Ofn%< A]y`QSZZ/Xʼ[y9bJ,_D@}r]L]RE3TA9l! q+8<|ume]D}; -%w dVa'e&N-fW̅g}P,CBш zLe$V2"N1Z'puMU- 5uӷSh,A^ ϼeB̅h,P.f7N?Qx3YU/3Pݮnlua?>uδme"xt+6iU6u74U5>J-_[1U[djXM*H*+PSS16 #@4%2Z!U[ KM1hR $8omf}L >]!\l NQm[Α$˹0~\PCyeӲ:#h&P j$W8'8rqޠ~(+;.EeQ-iTSΘd;4ZĵfpJSl%Tk8 5(CܪxĖklM!no!@$3+T}BæPuBk _f֐i*'6PZ4零Vf|+ĵbK~W5*|m0-|!RMLpͦ~1aRɗ{&ca‘ 9MM)tKr{:QJA 2!{hQS 6!~C[]&C$qǐi>9i'26bVEUZu #Xf8O e<J85Z&NDMפ% )~Ιz||*|*sJ&"lIq Q#v=bXv"JE .,JhATч gW1.!(`XSIg !CQǴY1*Hl5}`JD:#o l}L)*ަo,bemyox6㭔)=5dV^ݻ`5X'u'DX*ӆΙ]⣫DiY^k b^(ײp4k*vӑNP=;q1V™vjncv6^6XjYg*]UIX4i/]ZmZZ+yȄWx\S72ZgOD d xi~}ܼ}\f5bTOmGE3 ma7Yiw ҂595oMnzL~V9dz68s^ަmuK~Z}I.ùMǥjASi]e1|&u,rePkk0o/СC ;5K YigBl\q @1+戊^cne[r,y>^Ot-5~"?pbR&Tg"IkjF:ьָnp#<0VbXh*OSM+"Z8Һ=sʪkǓ0=D?1y93e5PW_ͰSX?9a:V:G l_,ƽy6w?A~"2o.^&?)s=-h @der "H;>s ؏iv FQ0O{túukM8x᪮3enhbQeѯ/TyUo⩅LUoG |(ixGq,;!%@zJS_~U{|a"DOD\>0eq%Bo=հ?Ӫ b}QOvpgm%>-PҦ-%"C`i4!Yuz)2st~%>a2d¤bФ(/27/(M~lfjЅfZtL+z+AUF28 Xg=}jۺ^x.jdC-S#aiV-/f Ui^(K7HS2[LRZcUbXj~-a3ա'T}mM\7Yn\~Mvrk`!QhҰ=!0>j*_ ia)YV.MH!l&U Ö)Kސ\@t4Oۗ4Cx&A=BDL}V6! (޺s5/FkK.秒K`qf(**#k,UK?zOᥪ_ϽvpP w^~ؒMN,mv'[o"MN etg:1WR.- v#!S1O!ZNr|-w됅]MCMvuΉqL\{lݯcI6ѐ,/:.:-:x9 xa_u)+DzOp|-v dՐ^{6fWUU}zy1@_@*k;M"""""" &AŠIDDDDDDb$"""""@1hQ4(P DDDDDD(M"""""" &AŠIDDDDDDb$"""""@1hQ4(P DDDDDD(M"""""" &AŠIDDDDDDb$"""""@1hQ4(P DDDDDD(M"""""" &AŠIDDDDDDbФcs=K/˖-k%""""jJ" … P8pgcܸqF fۇe˖5-[ft#FlDDDDDk4)0h@QQ>3<?~<6oЋgpw/}~z<3׿t hR`.bwݻ˗/ /BL:CFFFC/&`>|x.QS IiѱcG?GϞ=qM7aǎx 5}5k;D" 8z+:t7|())ݻnC.]EEExb„ =z4&O5k`UVcǎ;woʔ)'OFAAf̘^zIo;fL̈́ׯ_SNxi ;wԗ8S0a{0'Oƍ/bܹX~=Eȑ#1iҤF&駟s9+Ww}w_j~>6n܈W^yhSLۑ={b޽Xj~;׿ѣGѲeKȑ#e7nW^˻~\wuD"Fغu+?_p5CvI&-Z@,úun:{o}JL8_Z[[W^y-[ 7ĉ&]=rJl۶ *~i%\j\y(,,N; ۷oG(¿/=UVV"33.=zÆ ?,ڵ ٖe{pgx¢EF1}t7oJ\s5ѯ_?̜9uzӦMCee%~aԩţ>ŋ~3deeYh'{1hQQim۶bڵ ( >C,]m۶!''Gѻ{+`ǎz,--E~~>`ʔ)zP˳Aaر8纼wqZhp8[nPغuu߿~#ɓ'# ##wy' ۷o73ekڵØ1cw=o""""MJ;-Hg VDжm[<x_믿_{x衇?wqNz[j߿%%%߹s';vԻkmڴCw^UcXRODDDD4) l2@|]v8餓^r%5j+|x7駟bK q'̇_WVV}@]iTTTЭ[q`YJr|ǘ2e jjjpACz0G>|Xm6a <z+9@II t7_O)-s=fϞX,ۣ{֭[]]]8<=l/AUUTU̙3Q[[<M""""jvXIYh-[X,2矯_{q뭷bʕ;v,~򓟠EEEXhjjjp5נm۶֭&CE$-܂'|~)FN:~o~ãE1zhjJ_ɓ'߿?222pA;yyyx7 B;`ҥ rD"s=)-+QcàIFii)(zݻck$ c̙شi֬YváCF1fY[lA8i Æ 3۷Ǽy}vݻz~Sd >صkz &wӦM /~Ν;q'K7bms 7|3zҲ5FJLOqy-v {u:b]UUYIɓfw_ЋCDDDDDFF`ebjLUת{nv $"""""@1hQ4(PF(x&Q4(P DDDDDD(M"""""" &AŠIDDDDDDjA3gՃfac$"""""ĠIڵkQTT:Xv-M6$gCO+ٽ{7*** b֭طoc7 M*b~@ѣشi:$_PP`;.}0ڵk-lb;Zcƍؽ{_id//LJtjbSJY=ݐ۬>7Rߟ%T1hR`,YI&'t&M޽{iӦaŊIO<5|׼}&N3g$Zl2 1sL?Շ?pcܸqi͝;W:.~ƭފ. @UUlٲQ̟$˖D2sN$M ġCoDnn.-[&n(**ʯwv_VV|㏎˲w^{n>w^lڴɵ7| ~bn:MPQQjl޼W}a˖-N={fYk׮Ν;6q-Z~,YXv-[i7Ѯ]}vxX UUUشi^:k,z꩸뮻вeK@vv6n 2^|D$֛6m4?p@Jon4yf˥L7o_m(HMFS4BP]^zs8/۷wv܉h4,na޼y8w^O=ajp سg233g3wrxg#{xqYgv؁)Szڴi4h^{5a<vJKKCaӦMđ#GCaȐ!oߎo>_̙!Cફ5m3m4;_~9VX)Ι3޽ibwÇD0c tűL{ k.wq(**m݆qٖy}rrrl;W\i?-wiit^m}AV槝v>*^~ed +7ވѣGo߾K"33 ,{;vLΝғ5?ヒP(y… _SZZ-Aqȑضmi?Cii)Nwu{pykO3|8"hP@˖-?h."ۇ;.y9>xY~yyy5kҽ_rt:~rq+ 9vsf/negu֣FɓQQQեK~r<~ՈFЩS'Z X p_|郶m`YJYII ֬Y .зo_n˗/Me>L䓤⦛n2>ŋcҤIz_s5h׮>S*u]N&Vos=`nv_K.;x oz+DЪU+=z}ȑԏ?s5\p8,ΦM/رC:ԩS/E+oFѣG;`vzY; K.Mxt0KXTAs^Ӳ뜶Y*egu}AlقJ?7icD"ذa`ʕ曑_뿤OT駙,֣?P֭[P>.!6sߥK|xGвeK\veꪫ7o0|o^KӦMiЭW^صkWP\ ⤰HİޡP={ݻ]k.\m۶C`mdٳONpO?tp2:(;;Cs'y~W*rS]tA8Ǝ;ЩS'رc1vXO:>kp뭷'K 7pSYYx/3Zh!]Jcƣ>3f7*Ie"/'?21@nnn ˾g{O9G" ouf^z)}]̜9[ֻgeek׮Xdβ+W"''G.R̞=~;J3Ruq7 ֯_իW^֫X,GzL>>xIu;vpbIDATx,?du rs.^˱MegGI&!aɒ%4ͼcСX`=\t9996l?/(ٳ&*RJvڅ|_[lb u裏k3kZjѣGcڴi(**ܵG(2:yv˖-XdѣXz5#>''Go e]^^o~kMff&Mos̑+fuv;"//e<۝.^曖gc/,X`y&hII fΜnI$6bؽ{7JO˟Z뵸No{]$ѥKDQ\NǾyyyyyyO>X ?8  7i׮VZٳgOk>}3t }郓O>w.\\zæ<oӧOGii):wW_}\p.]]w݅޽{c={ļyh"t}l ~\ò~۷oG=0` ~"5dzعs'֭[VZkUW]ehrWPPΝ;"EQ į4xٗ0< &q͘Tbyut`A3$>d>$EUUUD]wug5X,#F`֬Y܉`qq1 ,_<;7?Ǐt911@1o,8cB4QؼGnvk ,6#\IDDD}vj꘼qW_}޽{7ٔQ$OcF3k2 ""޽;,XMݚ5kl2q())/G};1F(Ҩ3Oc~fADSO=3Q-qQnn."|Mt ӧO>⦱shLǚci#jup_)OH/$PhQCsFSNVrjS|M&ѬG~ (B(J,}GDDDDDTG^a[t ܦLuaUUK_<""""""o;H@lChV.'kb555<Η(iaע)@  4Z4P?~t\X&&h"52Ne*g̘1w%""""tP%6cƌ*r94 MFB 8L4|ءV3kڵ֕bƍ01S¦R@44V۷oߥKSX_""""""]QQџwpfh蠙~W$Ȼ,ulZݻwuƍ-BQƍ޽Z<5$AC&zP_gԪ53g,pРA-222zy\v""""""Ç~/#B 2&ԘȚ_7)h:g~؄V+^)Fdw}]os?H(UUMW '""""&FQ%555ٳz֬Y+|MS[# 濲f\٨D#pv5b:$ #^)̐^aP4-/땮$""""s \b=5Jj33USZqZv63S Ikުi a>qEu IDDDDty \Esxhk/5i 6]A3(F1T"cQP*={DDDDDم3&11&0TZJ̠%6tst8USwF3$M-d8BSɠIDDDDty shՌj4[4LY8F0a6!ax&BxC&QdNocb# L4A3 t'LMaŐG&3dS FN݉rk6+k>k4?V6ùæ*m1h:q pY+FSL50Lm\)0usàIDDDDx ]؅H SMmICx鹚0@5{57="f""""-==RsBIT|dtEXtSoftwaregnome-screenshot>&tEXtCreation Timemi 13 mar 2024 21:26:54c+8 IDATxy|u$i^. *Y\@NXdW߮z.^(׊***h>AMCHz>#3iB|3#F]W gua)0 D L~`>rjv4ِVCVS !|5m^":pFjy".tFZ pDL`)a8#!6Tw=pWW[!0f8{e~P9a810YY vT a8-HYQ@e۾P VŰ SW%V3,fj"|VĪWf}Nu0kPu.Ρl>!B}fT6Uv 54U^ mݬ @3}C]>yU .lUݐYi}~3y3RvoX2U(&l֧TYـQiPUI{mPeجOA2uj 0+ݶ>324Ȳqaʐj %Z}NᩢXΰ !4t=Yf~`Z<};3bf] 5ufM `YaOUfuCfE2ez9ħ.be&AuW5d N Z=DPϯ $Έ uj"dA U%hána6{Ьn0kTV@d 2&f(LV4?+6DЬlk!_UYQ}9_9w~KenV%lVC2uWQg6 @x- /p uجA3.BfEJ* ԝ@-]`dm >Vfj m~|hP KH@-fkջV4+e*!3浬*N tϽiV#lZ݅V6Vbq( 5z{w 6?e:mUTJ v-[*Sﲼ`[j+X՚Y2L@)`i.WvUlE]z+T\M{N]^Yufiլ͚PiL[in۶mAN6iv?rG%())&##cUzznIE,`m>O˦Z7V/Kbh:l~UԚi39'_ȴ{bƶmf͚MlWXn[nn ffSTTv?r ?Kjti>ES~/V&hOA3X`N m>!.)sιt3??^XXXM(66UPPp֭[+ .3`s RѠY]BC f2]ekuުYG v9I޷Ӣ8y7].jqqqr:2 Nʾ (//C.K͛߰w޻KG۫{Zi ZE@-V⛕(tZhӦM{vnWRRp8a0 9%$$())Iv;WT^aal6mڴiu^Y.ϥ*2UQc_Tj2hz)NkwkftӦM2ШQ#9*pQFu] @*..VӦMJ$ 3,Ju>]g fH;MV#dF á pe;oJZSSALA`CY jN±TEi84T!t7 jVVҺ齦;pjٚ4Xs""nWLLp8dhs*))QQQ U݁Cnl6[S?_eBN Sҽy6Ii|c`9\[ v]{l6EGG+::Z *((PnnngiNLiF#נYU|@hbccX8N9Negg+??ߊj6|ջXU4C[6M^zFs=W7ֱc?hɒ%裏ĩ P8%$$T2 :WIuUVM j e`;a6KMaiԩZbn馺 jA۶mWgռysEEEyPjjRSSO?iڵzաCZ63_vF&7MUIY8`Pg͛s=5kxoٲESNŚwwjС딖Vg^z>lIR>}qFI-W6]=\]r%CZh:s5x`Qv{\tVu$P3﹘#цp AwYa+Pյk jϨQ$Iw}|M5J _W2g֪Uh„ {5bĈ9sx]VmڴQ֭w. Cǎ 111AYF[lѝwީcǎI5j|PݺuS߾}]rJ8:;˗k׀ŋ_,ӷo_M8Qvrss{nu]4tPI+"˥ /P7֤I͛+33S+W /t:uM7_~JLL'|RJG9s|eee]s$/$5mTG)ѣG=]˖:|4ixo޼Y˖-Szzƌt?^v]7xF֭[+--MO?V^-IzwյkW?^7nڵkÇ+==]5҆ aM0A ug(''Giii9snMC Qbb6lؠ￟@ $A޽[]v՜9s4sLzJ;vԞ={*,A3dzYWAZ^e$9RWzzu릉'j۶mZvZjzH999z͛+;;[V/B;w$o߾_uVu]\s /Tx@)))ꫯ.H?&M$ۭ{GSjj8>-7$Ox+sן^.Hv$W^Zf֬YAIC˗߰a'|U~$O ѣGմir4mT۲eK޽:v?_:u{2:묳d_zҥKTsϞ=޽v?P|h~?QYYY6l6nܨzJ;w.Wf߾}=R>\*= P\\B󢢢OE,]G$h6 @؉ X-:}P;vL5vX 0@5eOJ_[3</RKuܸqr߯VZIRMS,Y}>bĈr]vez'|8rv$ 43dvYn咤3gX_VX!IeV\YСC5k ^6M)))JKKg ޽s !@W\q^x}j޼uw+--M[lQ׮]Gw֐!Cjm$ۭ3fhѢEӧ,YM8QO<&N-]TZґ#G4sJ>m4)))IJG fΝ5`ڶm"͝;׳ܷ~L{Zv򔗗m۶K.Ն x [N999;wokZh,Y-[*!!A7|s.(ȳgyRSSu뭷zZ/g̘–Z+[8#!h@[oy͠ 6L:p|I[N*Eǎշo_5J_~;꫺u/Pzz;I;wnf]yZ~IgϞCiذa0aӵc!4]~wﮢ"/wpZO?z7tI}˖-9sfp Ǐ֬YBz{7oנA4`}5kvYriժUꪫ<^QiKg.]<Woѣ9ro>%Iw8QFiڳg~> TXX]'ѣ~GW65׼74m{ߗa>G"zk-ZXZ޳>[ڈ!Yx˖-:uZikf%\#Fk׮jҤ233e-YD˖-24%SN鴴̂?~<5jM6-%u3+sN4_|eS4U4 jAK]M@FG4p^0!M+pV4(md0 r);;۲򲳳+24󕓓SrrrrNS=To2U} 7;@x˫Vfvvv}vsXe!FUTT*((Pnn.e.fX%qi2 >"rtq*&&Fr8Ntt*))QQQ #)`u9i\.9|F(\˫a#V VAAA]W5c @4"yyy*))jb%%% @%{d(JVVa3(++h:p2Xr)##Cqqqr: fLӔRAA-TAj ,ܻ&RM"1h2pq&&4"h,EX A`)&RMK4"h,EX A`)&RMK4"h,EX A`)&RMu]&Il6{8i4Mv9Nn0 Q P˥Brve$yfSTT$Pyyyr\p"4~%QBB z/&&FQaa!(Mt:PaJLLa*((Lm{-(!!A1112MXV6!v&"Aa4Mn=0+MD#h"99κ%NQA#h"ln"**JnT Aa;  gKev`7M3&HD&–iaAzjW^y^z%h'ݞ}ِ^]-曺jm}WaКǐV@{w5wr\.WH8qڵk5T رVE"Xqqrrr! t٪YJh#E"w3]RQW.)3u 3\pnFuAGъ+ZϟիWO>:묳w^=ڼys6|| Ilӟ#FI&ڲe}Q߿Deql 6%$8`II]dvttZ~ 4z$11Q<|I}jѢEKzjܸ&N(á[ӧOף><árӊr+hС7n^uMLzO_~e]?;$++ծ];p|EGGk„ :uv%I?ŋZrexﰸ,gJ)n8?QόU1jx#]ڶP_Ot5 ^$3!Y7\ '&P*%wڴi.\J/ֆ $Izl6^|EHtC[pfϞp͛駟'?O>|8ಡv{߿_nd9rk֭:,] L,m4q^nX|Vj(N;cZ9[aEfXsuA%jԨI┕%ӧ{1bf͚M6o]{pQ4UT?ضfn/&TXXh< .~I3+[5˛srLOn-< _իWkڴi5R~ZZsnݺtYoVw&O /P͛7ׁ[VꫯO?nMcu8[Um~7IfԹsgOWZ#-9iJʅLocz%KIn׉ND] ?~bcc5~)^%\ɓ'm۶j۶n&}Zp$SNш#Լys9NuMRII^{5M>]{nW˖-չs, -[,X~I3g:ժU+Viނm<}.]())Ir233~zKWZ\dnti U eJԈ$%tV7tJEEEIԄ[jڴi5vX_ǏK}y9_^9?u@wՉs2MK7Lv7LҒd iu:hLR3Ghon[n[-Zr/vZr7o֔)SP}fkWd'Z%y^)CZ9G!#2vYr:$&QFڴiSIْ\J|MInǦcy=k~>$eB_.PB$wy5^PNZ3vY :QvR' A_B*UKreEwI)=Ӕie0C@}EO^fU5O8SUpGD~iܹ.~z}W5vPעiyɥ-&b-Z(e4zx z:K,+pvIi4k@x hAرcCZXoV Ɗ޶fgY@:h֯_)))5ZP_GS'gHo RK-@8p`Hle`ua0l:UJ7dehIMpDJכoVeJGHCd$].?P]~@%&#c: A ͛=/..$] 5Ҹqtuש}u]zn릛ng̘arjEIMph7ֺ*ֺL- q]X@q&)SWdN4I6MnQ߰a~U8M0Aorssk}8Y޽m6mٲE6ֵ@wxt[iϧRa,4fv ӡMQc4TioʈaK髤CIM4`M[yk̬֭/kʕ˳\T]&M::Z#FŋuuA]v^y\jQFiɒ%:|bccUPP 0rJeeetjܸq矵NYYYI~ʕ+ժU+]qzeSNѱc/riǎJNNuȑ u1s9K/֭EynVfߡ죪/::Z]v{=9rD۷WB>v7n,ޱlPÇuꩧz`C:,vt8ݻRr@l{sݞz8p@YYYjѢ4Mm۶-`*:&^vu1IΝ;կ_??~G*PQU֗ 0ci_-Z(=== dϞ=4hNd222.n@Ǣ*ea2~+5(U/)F>D3e2ea;qަaOLKAtK92HRe;tl'\2!h@YYeۧŋ-4MOǏ+:K. [n?&**RVcbb<[˖-5d\RJJJRtttyJBbuvr>1.S1yU}>l6[H- VTeGϕuJMM駟XرJ4]AP2SeTFBY\Rv20>P 6LK.U^^=\<%&&JerN?t?4yTZZ/_&M(&&2W֭ղeKIR6mdقĄZ$4,$СCJNNllRrrTbV_mGewNsuС*2U=&ʾCƪw7o~ߖ*~fڲeKrv;^$m߾];v~;ܹ3v@ev~:0ʵP.hDX3M3>G] 6t*//OvҾ}4vXݻWo5`s9Zx,Y(%%EEEEڼy/))I\pdٴn:[&??_˖-СCeە%KTتJ999Zb.R+??_˗/׮]Ծ}{]wu޽{+4+[i򔑑ṼDuo^{Vaa>CTzLBQ}hUUY_~~>S 6Ln[tyw>u())QJJ5j-Ysm޼Ycƌђ%KM}9rD :~VPߪU︸[V||u~oP-:@$JyFټ=/{lyOѣǺ`lsrj֬G 42)K.D!n9rD69QFڴiSIْ\J|MInǦcy=k~>IJ_9E2 oԕiFwc%%%ac ʀ!P[:,/ ~H9[aP u]4`t-[uDBZ4hDX*u\' @ <"gM^ͦ\Fga4Mz"h"4\.Ւ9ވM_l6 SU~3BX3 Cif)//On[t5a4Megg |A$ h"Myl+>>^NPAArssrʵ`4 {6MnǏ+77W111a|p:aLTIITXX(%0ʅL"R4l6,Pn)//PoqD&"FهsYWZl.aHDDD). ޡ(nwD*&"> "Aq1RMK4"h,EX A`)&RMK4"h,EX A`)&RMK4"h,EX A`)&RMK4"hh𒓓\MD?}'D2G]W@z!1B#GԎ;:ZrMs.@;w$:"Aرcu]\.jD&Ai:34͜9SYYYmݦ!C(11Q6l߯{J]N-[t3F?~|޼y.]|]tE… SOUX{W#F$-YD.K:uRRRf̘e˖:z>c=!Ui˫vx={FYf_Tv+33S7o_|vR߬,m޼Yݻ$noԨQԺuk駟ի-9YYYڏA B6m4w\?~\oNZl?g]xZbrrr4rH%''+tꪫ$Iw+]1ch޽ڳgRRR4}tm޼YWZe˖yg}Q*9h ڵK}RRRt 7HgNm?!ChڻwR>`6m҂ t_~>}/^[Ѻ; J=u5hǎ/5tP ?~6nXc hN?t9mܸQ=JJJ<:u꤁j͚56mTڂ6|pz_<6l4m4UJJV^~|.]#FhΜ9s4p@rڵӊ+t4+nI2dۧJ%%%뮻t׆\.,X =zǴl2r)Z`֬Y#I~2ǧ*W֭5n8+TIIƌ|P'O>[NHCDD6JiaÆiƍ5oNLT^^^zZqL"DX3MS۶mSbb6mڨ_~:|%IҬY4d=lJIIQZZ\.>leddhݞ%:޽[;v,wmq@Wnѣbcczj}Ȑ|=hw-I0`%I]t۷ok/_ovJ򉉉JaJ4h"=czu/WFFzxy2MSgyx [N999>|$iΝ:x~m?^-Ғ%KԲeK%$$omV?I]+WԳ>HDEEgϞOZffڴizOzlwء7gϞz., HH?TܹS _۶mСCUTTs熴ʮ ТqF;Vk׮inݺi֭e˖ItQ9R'O߯?\t}irݚJJJtk˕;k,>|XǏWΝOz^vϘ1C}ZjSO=UӧOסC*ܞaÆiĈnv]wq=xp8CnNYp|*ڿnf׀kўVޚX'@$[t(G֨Q#mڴlI.I%>$c뱼{5_^L?|2!E`)&RMK4"h,EX A`)&RMK9@Mru]l 4qLӔir:na2 '.K*.. "Avn+..N111u]IJͦ(IRaarhD!h""J~^LLBZ7Q{e!t*!!20(0TPP;[2QBBbbbdf]WAalB&w MD&–ir݊ {a(66VnGDXs8r:u] K8N9 GDrݞ"ETTnw]W&RYw "M"4>xv{]WReogM57M-4AhZ~֮]_3gTttgkԨQX|"eV6M]w^z%ZJnW.or IDATlٳgkҥZj^}U]y啕_]claКǐVhy=3VΝu]wnk5']v?Qoʌ3<#ө{N{駟ɓ'k2e>RY_|vQzs]wGzSO)**J:uRNNZMsD׺uokȐ!u]Z5zh5nX^{ %I{//ސzg-߰aԳgO]s5LOMM|]ҤVRB)ɰc钊Rv6H_^Zh]vGW^:uҗ_~y3gjZlNJ?iҤI袋vZ~WEiz'ԺukO*Svg}V+WԂ tyݦ &hYHÕ;n8[Nڶ2 Zp?4oz˅L_׼yjժGE`@в̾?Kxl)!Ӕ̲MƉE:2Kf-A&>}o߾4h믿zjܸ&N(á[ӧOף>^{Mqqq'uԯ_?q*((Ќ34w\3FA*I&9r?k޽/Wqqg5kL?dڷo[VzO_{GGUntرrv=Cڹs^zrNڵkW+ڇ7ԩS5i$۷Q`5v:>$fe'a4=Y!CJ"wdlga]TM4hvx =裺Kt:S{1 Cv?{wUy6~{lY @6vDMF J@@[V[Ѣ+u?}iqRWZ BBF! !Ȗ}!d09GflLȄs.3眹>Ly.\$Fxx87EqfۣBt+&ߺ(2utt]Cj2ܗWCSH}a / $~z EjE76ɝIp]wOsv٦X @UU>CLqFř[0 &ЩСC 4'N%555sQYYdgaa!0|p~򓟰l2f3~~~dgg-Ñ#G\s]wq 7 _"GFFq4Ms.7sBѝ裟"빈{0u)y,'!M` $[=YM芊>9/܄H)jeʕvmDEE,4]]RQ͞=2^b*ASSSCuuu۫2F^dh4_igΜq>K8TUfٷodƌN$TZZJqq17|Bۨ՝BB>ZČQn=3$Kzfc+6ϕaB\2tVFJJJEcMzWnn.V!{܈#TU%""V7V^C=gܹL:O>Vlg;w^xٳgl˗CvwRsy]cƌaΝܹ1c\oᲺZۊfIA0A&2BStkٌlG?%**9oSBxx80L`Tʲe˘7oG`0ܠcĈjeƍ;Ë/Hbb"lݺAqd?>l2{;v,߿׿yka4IKK㷿|ֶ7-*++yկ~c=F9y$9cͭc .d,^ıcl2QNBB]w*<{￟ &㏣i=֭sګl#ꫯ*_`-?R4}^>>ڵ t\B5; hu4 mXPnח%\QQ5k(,,tӧOw֭"S;B!DgN>>#:7oF4&Mįko999Ѕl9ՄxW֌\Z_{ ң)B:F#s%))͛73o?K}~~<^rGf^^yyyғ)D3B!育Ѵa4gvh.J>OGEAQT6%gsllܛujWyI:ӕוKgvhi/!_C1bf~f qH $$+&N[NVVe}Ըe jҨ!..M6+Bt?WG?kO`BAG6~ $2ܛ>uȮŬO=Pf874oСcHNN&77cyrR?#&.V|"FE[7EB{sYkCP^({ohNCwL!.)4EW_QPP&SDAATUU9FN_tvd2o>JJJmޓfshCCCIKKl6ϪU8<<'OD4 $??9ŬY8qΝGdjkk[l~ҥKurA9{,-~F,KUW]KKK믿I&dΟ?ȑ#aժU-~s(C^_bNTTMEW  Mŀz1ߌRn,EuN>MII }uZc`hzŠPJKK),,grצ>MӜfff2qb_{I||sݻwP\\Q|EHH.\pS MFNNGuGmmm1Zj<4Mɱ:ڡmޓ֎>*++ׯVRΜ9l?]ם׮ssiFѣG<ܷv)))q߉'f_h7|b{D4g;vqqy㨨V5w>#&DyP@a! 0ܣU:UN L5xŚ 4Y\J)%teFcnx!'' 6:I/dm8R/_`!CZuu\Y,GMMMy\uUh˱?֖zO\(h/:?~^zQVV|sm}v l67,]-Bbb"ӻwonV^|;QUUo1-rB\J2QJ7b?Q.^poD Rd )dYm<+88___PZF#L&~.?у!CKd2}Q~Ν#44`QU5Vc#WU_nn.aaa_ ;;I&w*Fk~)\'-G6.++gϞ;wrNٳ'>Jqqs&ҋ/㉎t?΁?~<_=6l`˖-~ IJJB4*++]n^Տlݺ'i"DuU߅ ]xJ3eؾ}{bt엢UѣDGGeV^M)++#--h\ϑCVVdΜ9TVVl3Ș1cCUURSS⦛nW^y8}Ͷǹs9r$gΜ!??K9Fֶmp>#B)yԝxJ+ש59;; RDפiѷoN0 WTxSNTN/5 r0 <,^Cs4???M٩!D.G # ѽhz{\F[7+BF6nHdd$'Ovud4kٵkqBB&L୷b=I~_ҥK`̙,_^uzg^x1fϞ믿``l61'?c_bm&z 6e,XwBoD?1°u`"Sqn(ul`$\u/z+co!B Mѭ|͌;X^z%IHHhW̅ sN{1&{c=[oŽӧIHH_~=3:uVoA.:+Ao8ky뭷.9ƍYv$$$/&NȒ%K(..`ӦML6 ݻwMdd$&00AO*@MM >({/<?8۶mcҥdf *))aٲe:tK2}tO^^ӦMcԩ</^+ҤT!p>y؋Lsb&2BdfױJ6}]^s((&}.Vx0/!+Rhn-119񏏏wuO?4`ΝomuMӜ|7Ç޽{hEiZYl+V &&x>_bƹs稬ۛ*~!`4vB=uL}7SX\OB M 0í,QʦrtEE Dʗ`nBWdvV+WNTTa(B!99BX IDATp1l1FJJ ?8nMpT^^?nnLB\\\E!DہEf-LKz7[d6`iyfRokbF0Z!.)4hYt5VYYɠAݻ gРA1ɰYWjkk),,lЋJnn.VY !ZƌΝ;ٹs'cƌ 'z0}V31ʿQfIAًd !.)4E昩l6ӣG~ӟEJJ ϧ s| SN%$$p?8'H555ڵsfyO3zh߿?<b]lc pӸ=?Bqy2k,˜1cŒ3 l@ԯ'eK*2fg?{Ϧ>n*hJ@YY<3KX!C;/Hvv6[n_~%d^u^~f?3SUUő#Gx'8u[d1YlGfڣc!Oll,*__ r-[c}~c' \,@^0BGY}mh4ӛ-6}||>}:!!!X,YJ M!~1lذB.aѢE &dO?ԹâE:.!s}[DS&JJJ Os{/AAAa,DW%]ٳg3f ŝB+;7FMGhT ֮],6Ef`` ]J-DW#B!D`7٧]v`K|fAc mR+**Xf bs"sݺuRd a'7B!bӧgyt]ghƤI7 '' :#ʚSà Vs= =B4Cz4B!Xhdܹ$%%yf͛lvn?~|&S|*G-Zjhhuuu]TBNq)2339|0 ޽z\֬Y|QU A׃O_QFyO#7s. `B-=֭I:KEE\9 xyyqܹ,TZ{~sfs%=z'/i[Wp)NW?~!.vIbb"999|'TWWSUUʕ+aŊ_d)y(}]{ٰ7%rej (ƺYd@B1j(bfqYRSS۳gO6/pj+ @PQA5 (Ek2a̼WL-aњL`)CI)hՠA7nwf׮]l6, #F?9| .\9p!JJ./B!}lر5|||5k}AAA~$&&w_|ѣOOEHH؇7 :`l62ydN:šC9r$>>>|Mb*BLL C A4Μ9CJJnvPN> @ˋ"pN8pJxx8111L&8y$xF, 'NW^ 222/[m'xǏV1sL(((ߟd 3glBq\@Es7V1n 4EZ>5]@χb?ՀbB1z2svȾf q9H) ɓYti7ѣ,YZL&(--gҤI,Y3rHbbbXj >Yh6fc0P.] k꫹[IHHLJ;UVQVVƨQ;v,[nu{hh(iiifYjϟGɓhFQQ}vb֬Y8qf2طo%%%n;x`vEnn.p}1x`DZcǤBN{ѯ~ (: j;RQP5]1kFk/4j~3JA}B\.RhnKu 8}4%%%۷Mu ={|{ng1VZZ c7nϟw>T?Od2( -..ח8N8~ʹB2338/ʡf rCee%j:̙38.:iFѣG/9ϵ|u]g֭ //+WzB!.(y0Q~`QM*Zwަ L5xŚ 4Y\J)%teFcnk˗{>?4L s(K.eDFFr-$'5GjjjaÆ -ؘ(h/:?~^zQVVFpp0v۷o@f3ҎiZ6BJ2QJw^bp_D Rd ):RUydpp0烽3TVVb2  ,, ȑ# 6Cr1f8~8 b\z!Ck217^.++gϞ;wrNٳ'}: L:#XB!5cg' DgZf nu6ܹGvpf5tPƍǮ]l_$**ŋoc2kpB%B!.[xb {(̙3IٿFj피&NM7ă>HEEs}fff#2 #/=@:jB6A%}"DgB x뭷ؾ};Gv?2!!{۷GvSO=ņ زe ,ۻzUU3gV"997xP}?g^}U_W| ִìYXr%}YHLLGqBQc=Uv,==Pd;nZ Ey}@p"Dw&֌F# nυ ٹs'=|8< >3gow߭',,~ٳgμyoGrr2cǎmpell,۶mk6J ӧǏgMGx3g555L&nʸqS\\}E9tvmNKBStkw;vhp1bsƍYv-TUUt x)--e„ neڴi|/^L\\\ؽ{7Ξ@ftXj_=\s ?شi 3g?W^!++l?KLL {`00|p/>pEčwʽ /xW8z(lݺA(LJ B!dI8уAu?{2e/߇@R_HSx>LًPt0}׃9 !Z"hn-117|o֭8;5Moan0`:16"lGuu5_|ƍİw^p5k0g^y&Oybd 籸` $[=YM芊>9/܄H)D4PvGoٳ)++kk$''裏xbbccINNn9+V`ݺu<3PXXdł 4Ms[oGbb"'rxJKK)..ovl-7pdUUm6ƾ}8p 3f; !ĕL>ZČQn<|iZo"̼Bt u({0G!DsdCDD'Nhu{nn.V6ݻ gРA1a%%%$%%1qD5ϙ3g !VUꫯodذax/_C=Dxx[[vv+Ν^`ٗB!\c:hm+21ʟg&V[k H@ M!کHn&xG%%%6e˖1oCqN>vƍy爌$00~gAiɼ ڵ9dzb =ҥK:t( ;p(Jc~3p@|||i2mZZ|/2s݄BLj{% I}j2L2 ۣ !BSvp}>,֭n`ܹ\xѭK,aٲe̟?m۶{q׺Ɍ=l)++-׿ݻwk|ro\?;guhl6~ &{???wq)pBN8ŋIJJ$ k'$$pA^}Un?!5Cf;'Sjy,. Dj.;.g!DQVSk|slwIPT#(GW\r,OOo?#5Vrbk `7@-`ktZe2׿Qo;ͬk;E>BtaǏg߾}Rd !\z3jccGf{c `0nk*ďBta&L`ǎBϽIޫfX0Os6^ * NRQp9Ϙ}zz,W!:)4ǰaعsgg"3xHޫǿ2/UCy`jBL>`8y.ķ _]/ٳg3fLB!:=k(JNE30ޓi-:ÁQSQ;+X<5=]h !B9A뮣YPnXĂr}9?>~Yd\a{c9 UI)B!BvȩXr\[U} aZ (ͤrB!}x:]NϏqkG"~~~<O} O]zBHB!h%w#(*[᳹e66EQԺy_y$S!DB!S E=RAE{ɹ^r.PT#u9 !:BtO>d>+(W2:EGSQl؛7ܼ%l؛bfm{ !Ds4E_4nXEQ3g{ᄏlӇ1cлwoL&%%%|g6p5j}b`8{,t !; d/Y&̛{)D1YP 8A M!:2 DGGp-k˚!%%sΡ( AAA\p_{РA7ݻwk.l6#FO>!SG o@JFTUC3je12Ά0BZ56{>ьPJ3QPz3 Vmm-\} z.Gɉ'.[2~x6oLQQs}^^^7^\_]]MZZ555űiӦE!ďϷWSQ `0rY w܏M_i mddWb֧EQMF3Rv9H!Dھ}sW]u '&66___HII!//xΜ9÷~ ۛݻwӿbbb򢨨d***͡gϞ6(2[* j駟6x]ٻw/'N ::`Z '&&DYY'O$==oшf#22/GOEHH{aСcHNN&77ɓ's):l/9QŊ IDAT_Ǐ(|:ucWUI&ѧOl6;v ''EGGOrr23g6xvm)wE!~t.V|"FE (h e}j6cdNT `ىz#.қ) nR @TTwn7L2HKKc >W_k!##6oG}DNNcǎuC@@@Ėdbԩ|,]M65k4:u*_644,f3lٲ?`4M@zAii)K,Ѻ동L&Xt)gҤI|$$$pabbbફr3l09oYl[neҤIX,᫯'_|'Ol6{ҫW/-±cǚڵ|m!RGI[؎h&R (#ьjo^&7W>G=Bt)4Eo>F)))mRXXOEEAAA>}=zKϞ=l/qqqL6A9 TTT}NhKp lpiq>>>TVVҷo_V+hƙ3g@u4Ms.gddP[[댡is¢cǎQ]]lcǎ9ԩS兿?P\\5MsCnn.eee۷cwxӧ)))iyuVNJxxx?28jq]G-ʗ/z2Wեknp>b@Q({((Mu7UA-?zz QR^IL!.+:+|V+w}7˖-k`04ud2Q[[, bq^[SSCNN6lp1 0ӧOoKX,*++]>'""}5( 닢(Npp0ǏW^kIcMdȐ!x{{7(xSՆ4ZL&co.7шiئiZ][z/k][(Diu+r$%R"SN!=BݻI۹s u% GUU~\} OOie:޺7vcDzѲѽTTTc(4MC4٩tySNTgomXҥ4i. '|wy+?{wU5 3 (u-,Yjٞ^o7w֭,3Mܮ" " ;00|gp"z>3g|s=""jKrss!Jo'''>}z(RzZFZFe|6}d;L-\c&R0}t#L(v؁޽{cĉ_шhR*E-.L4&$&&"11ٳ'8=&1.\hp%"""j8蛈DDDDDDDDDDDDDhRVPP!Q-L4MkDWVV!5 hhhhhhhhhhhhhhd"'i>ZWUzi/VSd4a4P(}I0yd >Æ C>}Bs΅RDffUrd2 &ђuY.H0h ܺu w<(1Td2k2vw{ED5^kT00zG2,,[VMjΝ;իW/Ğ={V1{lիbJMMENN:ƍkV-iѢEXnJFºuZ-?;ZVnЧO3~Z k֬A^2Քo[逸kIDD-&KzZj8pN8:vQzbruu-n[`n5a88* sss+^*w`` JJJ% ///\tIX[[[\vlX%;v+RSSRL-:t0 <[]o},?Ǝ  4P;X*k8::yyyB{} 776{pUѫW/9sj ˗!ѭ[7dggիWa˼yٰrkb;v-ʲvZIΉ7&Dt:~d2?aaa-LC!)) ?`"** 5jҤI8p9"kIDD6mڄG7|( 8;;c׮]u?|pt ¨Q0sL]zvvv9r$~G`Ĉ>>xz)ҥKG}JLN%K ##㶸DII \]]ڵk[_L)+ ׯ?  .Ç`-„! .Dff&-`m;X*vbHOO;Μ9_|gee'Z-<==e٪U|rto 7yFxyy>>>Xjph4B&aѢEHNNnk4 AAA|}}`ӦM`=sXt)JKK7|k,KmWPPФ`CDDDM"尳B@~_ c0ydDGG2 W^EEE***2R) -[=&Y=/^gBbll,u^zYuL&àA/ ??gy|24 㑝 HHH<0 Xf ,X]vh4wҥ nK4/_b5 ?QQQXv-hD|Ŋ_7|Xlaɒ%kFN ,C}1YU >s|׷%{A@@l2O}maopmʬ充 bƌHII{;_W\{~رgϞCm* aaa0 x駱l2x饗 J_ }T*J%BCCa0裏bٲeرc˭:5IAj1k,pY_Kj|<'""M"* EEEpuuD"?~O?4&O,ܿYPP ̛7&MP Eh4[̄U:;;C&QUUl2L())AUUlll{쁭-FTf~:88`O!= . ??#FJOFN0d8q p[<6m>t:@^^ dMYJW?lܸѪ6k4-՜xP=CT*0{bC3$py\|]vm94&[n/5** ?ݻݻwl[n?7+S.Z7nG}$ ݴi222b5󜈈MjrnnnHHHz(7n(2_닾}bԩ~:o.$-1h>=LDTjzQZK p5_m?___TUU%IIIѣG#::ػw/ +V0;7K=~~~0qF75e͜9ݻw /`}i4-D<> +Wwl۶ ?c=ǼyZ=z@&kC<5MiRTTT4G>ܹs˪KSysΉ=L4iiiJD@@~:@FFNjbnL[cIYY"##K/'sssk0b<g[[WTW 67eM5z쉱cǚ .XU;HDDd=.^GAA233ߛJA!<<PHHH͛7T*ѣGBP;v۷ocA&!77yyyz2 qqqhmV^F 6`ŊpttDnn.#//iii>|8Ο?+W4S}eոq/_իWDZcbJJJCƍ8{UmQvֶEC14ԥsXx1?L0õNMM\.;#?1sLdffB*7ߴ:h.^[aa!FE!-- f… pIʲv^,4Iukr{A]R`4a4P(}˗qq?~qqq8<]&$p9̙3ZN<)aN=@)=]S_+YgctUkRW~sHTL4HT .?vDDDDDMM""""""M""""""M""""""M""""""M""""""M""""""M""""""M""""""M""""""M""""""M""""""M""""""M""""""M""""""M""""""M""""""M""""""M""""""M""""""M""""""MjWf̘I&YC!,,;w. bMR)̙M6!>>wOϊ+ 矇?>V!o;zj7ol=bem݋(AaԨQؿ?0yd#?? /qV&+HKK}ghì7S&aȑٳ'r9\XTUUfϞSNO>Add$ѵkW1;vDyy9s8DI$o߾Gff&<a+WK.pwwGII y[ mT'B EEE8u˜hq:KNrr2 H p899~ƍ|&M•+Wi&deeSL۷oGJJJq >=z@dd$6l^3g z0rH>|k֬AVV&O|۰߶btpuud2 6 %&;W\RZVRP_~ZFii);ݻsE?yyyd2^ 9W&aРA8pQRR(( 4 ߏlj$$$@RťHlG?n @bb"~mxxxK.Ezz:[;\""""j&vG goܸ=z ))I DFN JY9YYYf y!55.\- Lf69PUUzjTUUFVsݱb |G(--_Ɗ+b_͝ݎ&KIII Cн{w qƍh.h4_/틩Sؾ}md2H$$ IDATHRza^7)J|8y$6ol-++ /6[gɓw8J""""R {{{ 0UUUݺu ={O?{pppmbzr 5޻L&_zlp/// <{#QaIRee%]pa15!!T*EYo۷/`cc___TUU =x"Ǝ OOO#<<jiii&J" K.D"I}Q < w}kך%DDDD6q,[ɸfNp8:: MR=z 44 EEEرct:cbbSB*"==lo[Ͷ7yyyxxb(J$''c$"""GHZ&DDDDTN#7v(m ?+X"_*iZ N!"""z1ĝ^D4F$%eI.&DDDDTL2[ ۖeL4N>l1l[1$""":qvٖö{M""""""M""""""M""""""M"""Z; "fvDDDDuQTx's(//GJJ ֬Y8Qڼy3z0AZZmۆFekk \Z g%T*ܹ Zxj= gtw ڻ }z u%(KLBǟ8dFDc&ݕR)>,^...8s JKK1x`-[}w^bO>Qe;8q>h4HIIAJJ ***yې7yPY CpBգ{kED"c&ݕz!C !! ,3j[޷z eee}O?Exx8L`0`֬Y-V**D*?K0t7嗯vhD$"h]N,mllFjgg˗c߾}8~8>Sx{{ 6!;>c#Əزe Ν;pqq믿ݻwԩSطo^}U(Jx9rx°i&ohM9Y1D4F\J@ߵöpȤ`hB,9 >+[HLp d{~ȤW ay`a}~a%tD1eL4tETTTΝ;/# l?fBRRbccO>RԪֈtͪz8 /jׯcJ;w.~iƪU͛7#&&nݲ\&^=>yhr|>KI(ѡ3HL׬8v44ҡ芮^CQۣ2'ARD]cOoܿk!͍ p"1b4 Q8b"q,ݕrssdkիϟsb߾}xw8q/"P= σ>___ֻ===ݪ8PVVJ\z=pك/@rr2@VcܸqB;wFTTBBBg5G׮]!qiZ :Iچ_8aƚ (_zkx(ǥKR;[M[_h:6JtyS38v[JKģ(|'̀Q׬)$F=:*Pz{"kOPꘈM"""kc̙1b&M1c`08t`ذaxqNNNwJ%T*222鄞ͦ۷o_̞= #$ #11n˜1cp1;v k֬ARRr7wEj R~`vu ?̎qvzJ@ʜcub# ={;^⸓p ['t3"w[ݎ&ՌFX 2k֬A}v:]r1YYYPTnСC!Hpe@qqqu됕7|°\kaڴi3g"""0n8;O<~wimE/bpnu:?۵X12i֐F# KswDyFɩp91џ8J666ӧm ??0 ի &*++n ???,]z_}XUnͰVӉz [[[=z(**bz?inn.>CL0k׮T*Epp-z0Hn+A"A ^}Q_u5ezզNIt3 I\G vQS8rwDFcD^GJ#FիtT* i&b˖-9s&~'޽pppҥK^+V ׯr9>#^KkMNNC=e˖oxacc&I%ƒ%Kp[Gyy9Ǝ BOk[s|{{i3 9a_}wp@⳯4Pي*+~9.F #zLD{4讔7֭[ DΝqE°w}W^ѯ_?jH$[2aL4 :u¡C0k,lذl矱k.tӧOG@@NfΜݻ'Nļy`0{رc"v+0*@^Le+o?\{ z-^/W\$>*6nLkxn9Sj~5ϪS1bbMyMIM~l\,,!(((J`0`0C!""}V6gm+8[`XVVTڨG O ֲֻd&M_0uF j/Ś}o.&&&&&Iضt/cIDDDDuʔy-mK2&DDDDT3 &C-mK2&DDDDTh&2 S]vQ֪lL*N6yk@DDDDw|waրF荐vPm3 dRD"ZQQ[SHTL4HTL4HTL4HTL4HTuڴHtr9L`jӼ[;""""vD¡DDDDDD$*&DDDDDD$*&DDDDDD$*&DDDDDD$*&DDDDDD$*&DDDDDD$*&DDDDDD$*&DDDDDD$*&DDDDDD$*&DDDDDD$*&DDDDDD$*yk@ZV\|Ƿmq%Mw^_bY G?7nX֭[ѹs:Ϝ9Vא+Wbر^\૯BeehQD GARRΙ3R f͚W^jܲe >3( bŊdn""""`Id/E5M$Z-z=Z:qqq_ѢuQP(`ooR \L"zt:hZj!jEL4~Î;2 .ĸq JqqmllxbDDD@TXj4MJ3g&M\p|vڅiiiDwwwGjjs=!''k׮Ş={ĉѯ_?,_ >/""JRXg4a4Dd2d2J%jq֭&KDɀ]尳Ր{Ckŋl ooơ7_%K4)  ""˗/ǓO>J|Yt)+<裸x"V^:X,oС1bBCC&L7l2̚5 v›o 2V\#G`…pB΋mpssBKk^bR*pssQأIڌ30cƌFP(#gAJJ w_J”)S0ydk{]O<ŋ o6"##o?'`ȑ;v,~ҥ >#`iӰj*ׯɓѻwoIval"""T 777(J!q40`zoooRdee8{,$ F`0Z6YDڵYgҹsgHR$'' LT*Ś5k`r9T*U\.7HG.]u \p~~~4=g{{{ W^Z}wwf aÆȑ#8r v뷳F464 & U1Q0$j$Zݻwcӧ:u^خqF,Yd@```ڱcwpuu+"axoEEzA ,JBll2e2  1zh!66ppp? ''''53%44=1sL(J(J̜9ޘ5k(?|ZN ߤ$Fpp0/zY&V"j9:K/?DII vލ,aujꫯظq#Fbɒ%x!_|QǷ eЩS'\x-BUUy<#`ҥBg}~-‰'pС&P?T*/lmضmP};Ųep̚2G2Gg BP(M$^֕'i`td]W5˲ZZ{.!IDDìYK/YbqvvF`0пnhm۶ܹsJD{-Zrss9!msrrӧ(n`l4YgLdºumDDDDmБ#G媪*|8q"&LO?Ԭtߖ`ڛ٫W/իW>c1f̘{ ucooG}TD-cIDDD 6l5k~z磠?#+a+Ңw7hYVm1[Mf1ٴǴi$^Dyw&ٳgmDEE !!!xw[,L&:vAr;t"1v܉BawәkSNGdd5L4ڸsL"vΚ[jזô;qu)//o&$ӧOd"??4MIt`IDDD7Ev„ cѣbzaTrM;4Zغu+dsڴiBm6&Dx"""6ĉ~0|hݻa00~x<3}cĦ`cc̄(fffR%:Iǩjl߾ӧOGN=DG r9-Z;wbXd  =,,EcjrRRh嚖%MLcn͜'hA0 >g`0ƍ-Z$ N:fjԩSflfߒ&%j7Vì_r]jZ/\^М_@RZ;""V\t > 8~8^xܼy[n5%z VTT 00YeFEE!;;RRDDS֭[RE=gj=^;Maaْ֛!:K?cd2-Z"XҔVw\u%"ˑ#G?#++ +Z-***/ ++ 6mj$=5H$Tڵ  JBEEbccxgp@"HOOb?~<ܠp!deeAR d20o<$''w8v0d9sj>>> JJJctxg OOOz8V@@<<<7oǠAnkkRF+W0թS'5 * jQQQPu#"H$ BXp?"+J!̒L1{3ؓIt1ѤvܹsF=lBĉm6]v7n6oތ <#FѵkW=z7oބBI|t'Nagg/"&&:u*֭['<ԩS˃p\0ВիW GGGcݺu///CP`„ ؼy3nݺz iii0 (((+rssaccxo߾?~<֭[[na ͛ԩSfm`m{զǎkufw]^6668y$<L<;wD^^PQQDRu#"WH$FhT*fٷ I6kf=DwѤv`0 ??bEooo ݸqCH% IDATR0j(L2]tmexyyX(ڵk(//GN8jܼy%%%pwwvur1bT*шD!DuhZb dddc4a0/_6³ꋣ)mm֧63umz{(++h4BZ^DDmYMrXQQ<塼: !!z2dz߬7o"''I&Q+a&s9kJuZYY,DFF[L& !m l\.`"""BBPX;c&Q=J%Pnݺ(VjTjvH^T*rssꄨ>Ia+*** LoooP8;;#;;>}:򗿠CpvvF`` PUUը/6V]mh`ccoooGlL f껮\/KLy&XH$F_7"vd}QMzh4߿> rrr_dsNaȐ!q9saaa۷/"##w^32 عsY/?j{nahNÐ!C䄊 ܹ:ǓO> Fz ݋-[%%%ǐ!C`kkۤzG6F}mzAL0j칶0`222[gY{]5M˒q[UUFF_7"{GG)O:ɺگ5ke;Y<'{  kLgBmI'OFii)a55ܖZGnnp*mNNN8}Ptލ &0lv3ZXW{.QMvbǎݻ7&N( 5&!""""Mv$11OİY"""";&&&&&&&J5GAAAk@DDDDD0Ѥ6cǎrss[;fY""""""M""""""M""""""M""""""M""""""M""""""M""""""M""""""M""""""M""""""M""""""MjV\_~x lmm+>>ח_~Yoܹq ѽ`޼yoQ>[n_|aN߁興,&DwHUUZ; "";NPJr2EtjPըlzaL4 J1gL4 ...p>dggcΜ9?> <<۶m|:d2.\qA*unH$ȑ#/ƍŋRÇcժUh4QcJRXg4a4Dd2d2J%jq-[H hR&agg~ ,ȑ#|rTTT_|3gbƍop謥*++= ^{ O?پ޿ꫯ̓\.Ǜo%K4)%""j.WWW888ܖX.["fT*憲2V.5&k3f3GP'ŋ x47xwQ_@$algh: j`+[vu2֙SF3:2 K Uj"(%6dsG;'={ɞ?3;{r.u}9?nvٳGꫯF(mҵ^%KDH|I=M@VnM4I~?*.{jllTMM$OԿo}r\ ÎMIÇemf=裧ooo.766Lw'|>;ϒ3 dSz%מ+y۴lYX,5s}l0 ɓ'+93a/J(A7t~_&>5kd/ƍSMM М9stRG]~>Cng=qℎ?hN:tPt~ZڵbI}%,aIe9lZgK2 Xg]0 7M8p %-<44\/VKK?~0 jyXw^]oQTVVjm4qgY՚>}N^:%\2jSO=g}V===:r䈞{9/n{3:AyBFu-T'+++S}}.]3lVVVjҥjhhH9ň jXBzᇵyfmذ!<0j[ϖ-[&@F"r>u۷o}ݗ Gkܖ!d:uJ֭SOOO4l.]42ׯ_OFP(0nMpX2 C\snG=2iPH^Wt:i'P(46llJ @E577GtwhӦMjmm]w%ݾ`% FwX涜2ks"nuwwSb P8 0>g0 ߿?} Ν;uW]Ν;GMd ig.K~Weu֗ze766$b!"3UUU+ľ}g}z衇tYgiڴi~[?եu֍3U^^}v``@fJ-[Sn[n[.˱ u GʔSN9zȝruvv>%iPRXayȻyY1c,_cY;kxtwd-2b״JK[[֬Y_T0^xu]}iݺuu) ?F^}fd<q\:v옆]7lؠkת7񽽽Zv6l=>2d)`PGu=h)jhhО={jnnڵkGU588 j ڻwok8ȑ#0a;wԻᆱ&͞=[SNUMM4Cijf0Çn@r(Yn[W^yro諯$׫YUUUon]xjll˵w^m޼YӦMU^^#Gh۶m:u,߯cǎE/&IZ`|>zzzР~Zlۛ7o}M:UϗUooK}Gw2B!}ZjU;S_|F]*-ZHǏQGGz뭘Zڵs;GlĉZpeIJX(%.Ka7n*++A185Dfuxiƍь3xb=ڹsf̘۷KꪫK/W]t.RZx֯_M>]3f̐$Ӷ}ߐ$^{5M2E|jiiK/'Nnӗ_~)0tСCsw>zztرQס_z{{U^^oQN]k^xxl׿׫%KhӦM:|***400 ˕X(E.KpXǏzv3G3̦6#r }4v_0#Iڳg-Z$I2e?WMMM8qbB1eUUUi…Hxaرc]0TVV&Ԩq2v2^vk'5;NJ 9dž_~ۆ;[sw\21>"=r >R*yv$PuԔ)ST__/I:unwގ@ ĠKgqfΜ)|1zژ4i~l|ƍSggl2]}ժѸq4k,}J|i``@Vi#| چǣsFyĻsw]}RccꤑrtnPjx/ M_Jy<iӦM!,Xo}[ڸq6mڤ h޼yG}/B-Z$0KnmV܆l۽{͛W_}Uk׮մi۫v͛7O1ʝ|ݻWӧO-ܢ~8p `,m)//\zԽfv8YC---Rm6sRExJ'Ӟ+y۴l6{F=#a^3w< 0 ɓ'+iֵ^{.K,Q__v6=x㌴u֌MrAGRLt\ef%(sN.f\(Y`TB TCB4 @ɛLOA)֋YdM.s4Ò\rȑ#IB=h5P/0aBC Ȟf<6t6/6(,S A{064)_Pf_Hu$\uǔ=6*uyHX_2j0݅ -0"IH9Xt8fs=~81Ò>'hȤH%^vI%_F*m%{ҝaBCCC;^ļ^vJ Jvl2N9 P q9K4,?zzz4dUOOiMr^*xoF^Ý sE0GZ:53/j4,?~bdJQEEpwwqrUS 5hٕ#sY:*RL  n[ 4l֚KdZQ4DŽeMJ̱}/c5ѱ5 JT6K=ܣߑ|>mjooW{{z-YF˗/wn[+Wk_|Q3gLX[nI񨪪JPO[% ]EӮoXy)eͰ$W % Yg#={񚚚 c ?+VдivuWyy.b\Rzg%KhܹeN8V{ΥMwN]bUQQ1~~S4,/`p$c24*͡5  K:ѱӆK444$0d9$ylhhH'Oɓ'yf[oM;huYX_x≌ (^>O*++HaB!A fs&szz2 g a !Jrg(i] qvda9koWW 'Mtiee\It0ja :3nFz>$s9ӟŋK."z뭚>}96=Z|~K.rjժU>={4n8M$ Fre`[rF}A\.S.k0#>uL3d ) }5٩UALl.˻u+c1{Ln>mzw~2K[ɜWK 9Hp -6M/keܖbT;rfM>XmTՔQɴ7#&?&P \v!6ML:q9f*h:cᲄT>/օuhᑪJcUOes]8E0YsLt YLnj\W4xYgز\tf$dM׍'d\hj[cU4cO؇As,g@kB+lzFcN^x@Kb;i}N5lCX2V53վGqMWi>T4VLlsY*ȱnSK dCW{B]Ȕ%Xj'Qr^'ӡ(MQPIDATQ'Cbc="%fy PDAnrfX3Yš9%{~itEӉᳱHviX£yL)Nt"<@q"P%3u8zkZ&~*llW5ck i7l{2 |Һ^qBfYpLPд6khl`cK@I5ūHk!3Ѷx1 ENXDaӺ-^cMғ(cIلNkBݺX&# y2#ZLf1.u\<®]سN/`*A;6^?Ϲ|h*fmvK%`ڞܷ d*PTJ0jXOY6SUM6e ɜ(dݽky5lVy4'3T6"hx}PZd%dk/^]96cjLW(UT'p2hN m7`(=vX1"m/ J]fD{/_ʽT<$;v08y_XOKRf cfQ gNcW!S4$ v?';OPD:2zLZ}Y.ff}F[NK6\&`&FLAJgm/+ri,a/g`k30YnU3뜸&D K:ĺT5\'f[$[>SUtsD('grM%Xۖ/@J5tmsqɧ0鰙gdk %>E2Yg q0 td*ǍZ-۟| Xk3oj>LdPҩMTl=b$P 93h TRiljp 8 y2UezHӟ R j45/C ( STD(#IL¼*ڵ2 "d@U\@ve+LT\U+Q )!|p޿%y@ALa@+P: >`Fk0+P|&`FB +sPX.\R+s:`Fr*s%,[u f,{\|05v\;$@;IENDB`extension-manager-0.5.0/data/screenshot-installed.png000066400000000000000000001655041457631363100227350ustar00rootroot00000000000000PNG  IHDR>sBIT|dtEXtSoftwaregnome-screenshot>&tEXtCreation Timemi 13 mar 2024 21:27:32d]X IDATxy|SU'K&m^@"ʪ "pQ~*n2Ό#22ǺP6Ak,?l2iHҴMܜ{mȓs9!@ SE86*B 0 hi!jG )l5}P?5WCG%gx/'Bgx Gx f3ZmCuu qc:lrGZf,7i諉p3S4\QYx|ԎB`4CbLX RѨo2bXBhŘ SW%V3&f3j"U-އ"`5N]\C g}B >35Uج*Llf}=Nj'gG\Uc 1@U7dV'`1Py9݉'RvoX2DU(&l֧TYـ2֧ h]'Z:#Ya>ԥ!3TLwtԎʄP#Vf٪MhHf$5pMt4plجCf5Ϊ4[#J3qk8&lu@ɐYYSlD9.Z,k2+8"luJЬnȬ(`Vl]?52TE6\XL$hFqU feӪVO/+P3f]A0}CX4 U 0XP _Q7٘=hV7d 5TVm@|tO*LV|W6l6Yh`XA+gEM vU:õ^.u*a޶jvs|FZpĆon`3X \L4#2.dVԊik2f0QT7hj l \po&[ofvkfp[C a ,4[3\ 5bzתYfeV%dU! ĿpS 6=B[+A\r(4*,HU@K짩,@d@^u ~eۛ?ur՚Y2L@)`i([3, /XTZ=~?AZ:~w5MfmhքLC@4K˔)Sz233L1>`0<Qͱc6[+zݒe0 e?=-kTZ$Zje20YVQk1k2L_+uʔ)gM0>hJJJL>=.I~ -rh*ȵ R>pf <0\?6L$knn?E%2 ;vWYtMw+L 5@*XL fi d*u&�iӦTq#Gpi͑TXgfjjh )Ao4f%rss#dM>{$[@14y3 FkhuZ3w2q`kf϶ꪫfB4n˖-;0Z/kb:@Fl`C]i(]['OԔbv9κ l6+11QVa%%% 5j4]eSx*fSjĠ@5Hk5&s T:ɓ'"d .KǏWaa!!39Nr\S%%%]7yVe _yU%[*j>tUwٿZ˨Q.F} |fq:ϯjbXYdOE0MeƠaYكOoU+T\\LȌCNSu] @*j@d,554cF] H!NF9_k6gW~p ^U@ ,{ `5k+FB& WN`h@L s rnT.Kn/cFL&%$$(11Q&S'0 4~.{.p@h[u %Xx ʩ>sFISӺg\.BTqr*--UQQe٪8˲ ]:,^Lgͪ }4@%%%*((kvvRRRj6wb-hF9T`n-[Koщ':h0`0oEEE*** ve٪ZDL"hͬj"tEZf8]doi7s-pTq ~F˟5k.\kVcƌmTM4Gѷ~r:hʪպ@,JKf(UmٴX,=%,nI/T{וc, |.p[_Vt-Wz 3|hu]԰v1^؝bwjswkΝ7o222]/.)&!ڡC*))I ֭[~Z#Gȑ#TF}v#օ^g}V7pF!#F_G֭[裏j̙v5j;ldLWժUZCgϞUz]NNt8NwpeVޞZ m*XǠY Hzcĉ ܐ!C|;u?ϵX׿jժU:u::GXl֭[5p@)KҠA|kXB]vYD۸p8qFXB?>{+)LnWu$H3I`h6fbЬ YBfڳtRIC=믿^K,?~;[|^K.8h7N)))***ҕW^СCjٲeZ&9duIO<$I'OO?;vhaˮ@j9%feTСCu%())I6lPii vmu6mڤzKfәg{LVZ%I뮻d2h"8qBs֭[O?)==]}ըQdX"WIIfϞs՝wީ͛K5c mڴIIIIjԨQ _Kz%I:v233˭Yl67n'N$OW˖-pBlR3f̐oŋСCjӦƍ.H4vXjҥvJ9;ɓ'5x`uEӦMӺu4k,޽[jӦ&OTkڴiZv ԥKM8@ "]jҪU+}W4i{9 =#ڹs8j] >fXհ Xx7o,m߾]o>lu]G%''+nѣG޽{E]vIM639眣;v4z3h˖-իl6VZ?zWd0s)''Gm۶Ufʹq=FɓRyS}}O86V^$n->eggK^x͟?_ڵSϞ=fM8,\}ҥ 7n 7ܠm۶w:x~ahС:rڧ{L999ӧtRM4Is̡/ U4h3<zH{ѤId0{n5o\O?tʎPF : Т ŋt:ha2dfn*O}k)!!A믿;v{ڷoN=\3Ffݻ.RZJ#G]iZo;pƎ-[D4wڥ>L\px ڵk'uj֬^z%fM6M~a>IKKO?+++K8߷_vi>|߯nAocN;roCi:묳4gf-\P'Oܹs}As/poˤTΞ={t:եKu]~{mذAݻws='rXBﯰ@ݨOݡE&M4e_ؔf͚g-ˣ*e#ӛF bg/٬k&uN.\X4jH s9Gk!k׮RRR~ztMteddرc9v/XzرcXlrrrb p  /['112%iΝrѣ{*ڽ{$鬳駟/Rn[7ouk˖-*--֭[uiUVСRSSj* 4H=oT\͛7gϞٳVX!@urt$$$D|G-mcfibԂ "Zl6뮫6GKKKӌ3Kׯך5kvZK.<|P͛7߯VZiĈuK.{=׼ys_ZUmZnL)S[l~B)ͦѣG>З_~Yc[\\,t2 ӧ͛?~ڴi>L+WԮ]4l0IRzz͛yiժUZ|V\^{70GnKVVV@Oư-?&MKb߾}z5eʔSU~R,.pzjȐ!ꪫWŋG|ce5nXƍٳ5l0y<m߾] bn[nҥo\^'VZh4jΝJOO駟%$$O$}g"ie j^xZt5jŋ+''G/VFtR]pRYkf~ǏKe8֭[K֯_/!Iڰa<ڷo[o߾JHHP׮]էOIԩS}gz5iD{>vmrںuڴi#ѨoVjժm}p*~L{gqۧZe#>Z4i ;V\s> ٌ={gU.]d|]X㬳5c C7|4i"]gG*kujԨ:_]Æ ;_E鷿맣GH<ڴiN:髯ҽޫVZiյvLjhɓ5n8mݺUvl6͛ &h޼yl9r>LM|x״mVzƍ5zheggk͚5JHH(w]pΝZݺujjUvv;l6_ܝ;w'P׮]ۮ];5mT]wϟ;C ґ#GTXXX nFݹsڶm~z9e=~yY _x| g<Mhzf]4N222rJYf;խ[7IW_;wjӦMZxz_W'h袋Nes9N:U-R׮]Oy|wI&Zr}eee);;[GA?^~eرCE?MVkǥ&eeei̙zG}ӝ맴nwQtkv&[L8TAjfVk]WA=+8b6Z4L1u4Qd2bvٌQfYdPEMVX: g"h*fL AP"h *& "h *& "h *& "h *& "h *s]W PUAq0 Z#P3&Jy7w(IႤ`(YЉxCD\x<5o4 {?8/y!vK\.JKKv}.xhhTBBL&oyCD\ h"^z<9N9FYV%$${ /KKKU\\,."kn2n<v$)--Mf30 2L2LJJJT~~Ne0|_6$2].JJJddz2PQQ$u%l"4sB̔4@l2*(( l"n@epj2@JJJj]`EM$$%''uytIEMČo\.RSSNє*!Un95MokCӲ\.Z5I9aͦRB&bA1YrbubZ47}1ve4+ h]*4X§t$/Jx?eMz۷o_m޼ט1cG}T]v=6~^p8TRRz2l0͙3ֶ@}Ck&b+Tou=[f2"z̙3o>M?Ν;롇RVVV(ћ G{KHX[ \ڶDןg&^]R6&P_~Y&M Z^ii-X,2L3f-[yiȑzWվ}{]s5SVǏkԩ3g4r޻ IDAT}tM4I[W_}U֭Ӕ)SdZK/i„ mbӳ> XbpKU)IoB 2h^ Q QGT޽ըQ#5j\aa,X?X &hҤI!￯ܲɓ'kРAJHHc={W[~;d"~zzƌs=Wtkڷo<O} p84w\j׮$驧UW]5khQ 䗸Ǣ܊)<U]R'۪-41仔{/%Q24k75VjRϨMiӦvaÆw޺Խ{wI޽{vuwq:*, M-ܢ'|s2d>=Sj֬Yu#ݾܦYYYZ***RǎC[tjӞ={-@쩙YւqΩiZ:^4ZԿM/I׌U|y Fm[;飚Fn@l"h$%%EǏ?eyaaҤ4uTmݺU}|AuU󟕚*I;wohNZְUuPn9n\rabb =BU-x LuK-LuNE'ydҶK'?+Fy42/飿5R~핓s?i=.B=䓚5kV^Çe˖lZzuw^o~)S(??Nw?Zo8 xnFk[ر&HʅLú˛Hn<o+#x%@~[z뭷jqiѢEzWo>۷OSNr-R`@ .ÇURR[j*==]fYG/M6rСC M`@7!'|RG֨QԡC⋾6o\8*m_} dtgUnn;^xAٳgTon,nqKR5["y\xz#ub ]g2RY͚pyi6m͛'ժ?_oo|XB Ժuk=scǎUbb^x|xD떖w߭:Sjc/hwFnd;ˆS(K hhJKK;DnBBn8U 5Vvn^M/U G V׮]#^w˖-5Z^3,QGS̆gV}BIJ>Q6A: -@{Wk׮MPf'EDd0`0j:xgpj2IL4XM-"ժ[otʲ37 $d FhҴe]޴e%I2uIiSXCDչsr~b[ޥKZ'N֜9sw޺Nr4mڴ)o[TPn eYZ4 >|H\"Yn>$,=SiD5hfΜ򹚸&^wz;/۪HQQΝ[oUѹ&ճi&uI;wͼku-HuvvIdVX͒`Ykdc֟>^R{ QY{e0ttq{ a AE7|5jk֬ѹ瞫̨jjlQ-Uw1_ \^T×kO d:kS[΁YjNM4O 6lј[%k#hr ڶmrQuo;FWv;Mzc k4M)AydᦃZqy.锩Y4G__ӂ`LldQ)z2f#hulӦM:y(˥yS^^ymVW_}~GYFv]7W^yE۷v5`yx.\KKKpB]}j֬$ǣ(--M%%%zնm[l2SnZZZsj?o:4`8p@ ,رcrBɓJOOرce2t9hԴi I%tG}'3fk>|fe}1v>#p jҤݫݻwG|vZobAu릦Mj޽u2(X0ٽ{ _o5hРJE(Թ8+]K<]}'͍Ul4H 2c4`%HFy &yf 4 &&ui[{)2fe@- u!C4{l5k:(//OZbT\.TvM_F/dggkɒ% hʕj۶mЖUu{7駟Sw: 5mTԪU+eddСC:3BPZj˗Pt:U) 5KUCk+}9ZEn=`G&\i0~ nW\ժRIe?j?*skIO?5k֬J˫$U9w$XlRyyy:t$Z W;·Raa֟U4v$cǎjyP"TY.K[l z\hllVBBdXdX|Vl_hD̊7{\kTU\\dmVYYY7oN;4eff /ԪU_jСkj*bsj߾};vL7nTAA\.z쩤rXV]~Zl\.RRRtWWjI)))˴h"%$$j.Svw^͙3GVUvZfe5 V7n&~Dzݫ͛7+11QW_}fs^$U9wrrrXYV 77Lu89O2TAAx#F 52)O>Dj׮]]W@T4kb{yyyJIIl]ZFͰX,=%KrIrHrݗc2OeCHu1ǿH.vU6m*znyM$ EoFmڴB/ #\.\.9nȑ#2X,2LB'36uL&G#ywr8bA1*r ;vL2 UM"7,ۭ"@vl6ЉXBDLd2dXt uH'Nz]&N32JJJұct:ըQ"@N<'O*))If\Y&bA1`004=fV TTTƍ+!!N Nii=*-( @N&b|ur::p,5jDFmuvnɓr8JLLTbb,uMVMo){4r::vn_o-dߔm-_89M w+-`SY%d"4MnfSXFD 0ԥ`sc'XGDL %vF Xx@D 6OJB&Aq?\. 6D 7M7pa7sP}(99YK.դI4g\ʼh"IRV]:x駟m۶i̙ر.߿/h^r%:쳥n֭S֭uyi۶mz뭷dX4~T~ڵk-Zh͚5?I ǝ;w֍7ި'jӦM5k.r/Qiiq~FR`^x͟?_ڵSϞ=fM8QӧOW.]}NA ž={t:եKu]2kÆ ޽{9lP+Vh:3|z9shڶm.}7nEժ ۿnFmܸ1Y~KڵkբE ͚5KfY_{UXU=6L_O>nfoT%)~VT:t,X:Ks̑l… 5yd͝;m> .`0CJMMժU4h KGVvv#IڼyzY'OOLL,2?w}Æ SFFFzZ:u+CRw}W;vɓ'xtĉh=*I֭/$%Kf;d͟?_;v$s=ժWΝ;vգG~8P'Oݻ˭[ 4ӒeZuy< s-[Tzz͛yiժUZ|V\^{ux\YYYVs'Nٳ-8p`Ƞ/u+\:v$o^/w޺լY3l@Rm߾] hYKOOׁ4c vm<ڵSΝ}v~jӦ-[g&Ot͝;Wo.S۶mg4OE_۶mիW/mܸu͚5JHHИ1c"^e ohDܹ^}UuMӗ_~:hԩ߿Tʗ%K7ߔhĉիW/Iĉ5aF͝;W_}l6<OCE5di…ڵk.~2Zx5`rs=jܸ?qE?I\r>O4iRZJ~i7\.9Y)55UC.rZ5k9L囇 xes\j"4sP1,76ML4&bHޛbDbhzo,b A1 vhWT?hOI7_;&]g9o裏k׮ڵzkF/oQF?vJJJV^2+[oۭٳgk̘1۷F^xA˰a4gΜ֭l/_+Էo_9RϯTBMs@~Ρ5\*o7t~p(77WO=n&N:9sۧɓ'כ2KKKu]wD&LP֭sN͘1C#Fkf͚ET֥^:T|/_^ժU?s*11QtigϞ;v^y+[dl٢wy7$eggG}[UCk+}9ZEn)fT |E})ABYÇնmې_~wqQU{?{00\䎊T/i^N8X=S^u,\]Γff0%,KKhuL< "eC3 yg=kZ{B3L 46 3Yhң):3j(V+_~%w>/_NQQWb,Z8L&Sa{W^h4瓘Ky%Xr%=z୷bѢE$''b? .0hРgذahFff&nq{^O?^x9ocV+/&,,G}VYyy9͞6,**7dժUkʛz_! (b4 -ETPP8Y ɾBxmvԙ3gxygضm$&&^S]&-[GPP'%%טf֬YÒ%K G,]DZZZeѢE <???͛GAAٵ;wӥK.^Z{Ob1i$FMxW(--瞫Wٳg4p |||1hРۣWGS!:+6pML M٬L3䩞7'O噁Lf^=͇LW;,hGStjJKKٺu+*#F ::EueffbxˮX,&gnbԚ@h42x`Μ9C߾},o})z= oa6)))G-jk+--妛nj$sZV zkj5\m=+o}u:3YYNYj!^<>·n޺zGv۝ 7xo4Epf9 7V\cB4FM!_pС'Չښ5kv5f͆j  C-К>>>x{{sUIҥKX, :UUիWEհ\20rHΜ9H???Fkm`.o}u:X L+ '0kC 6|E4t*gK,"hhk2tV:|}}]6h4rZtwwwRSSbطCBB8r}f###ff͚ի=tAAAlٲ{ٳgգGl6ǏoKZѡs'''rGZ5:ryQ'22HϿdy 4,ɬiH/NM|ľ˜!hNb`61_r!&NU=j999djȐ!lݺsΑË/Hee%zssV+ddd׵kW9¹s(++ݝ3fl2222(,,$!!???"""-oΖzb޼yٳ .pY{riZ6uuy{{3~x^~e233)--%--݈ϟs=WR789sa~'OIKKsZl#MIMMeڵ~z***`v&w*qnh 4+Sz^SYmH/}:+: 6aJHHH/qK/ĩSHHH=K.eуI&Jz!\]]IHH //???Νky]wo>fϞ͈#… yxgX,=_>tl www}~mVXٳgӧƍoMrr2SNmxG$,,^x{?rJ{KUb ֯_Λoۗ{ǡ6jצB4&55 b_Zl߾}L>AOHH **b9kvYޓ٬<>ί5>>ΏO\FQd}Nz:J!ĵpoa-Oif>ƾۺ::?fsz+S\G5gY4 Պb>lR<<QN}Zn7iY!D%B_ֹO駟sN~Z7Mc.~fe쀆Mcx +ZTƍ裏RSii)֭҄5DS!ٿ?>ʼyߟ9sԚ;!!M':Sפz^͛7`ת>5\lYrlX'11dDp0b!:&I4B!:ŋך箻w̔)Siii,^)*9pThU^[:*KwO<}t|}})((`͵&x3Llܸ$B!\Kv ?h:MZnw}rE)++d2i&.]D@@{/Fq H)B,[,۶mwL}QQQm{[Jyu W+N4|Wcni9sLx"6mb\t I2"˛!Bt0cƌw.0uTEaǎ[}Y,>.Č y;W֌ܟcrMus=i& 'SHB!Dj߶X,L2ɓ'ka6C̙өTIg̘1۷==|ʚLEC%G?#|[TK%GW Bd#H)DM!@ZZzZh42qN5ƧO?O>w}̝;WWW֬YCIII3qN?9Dg< -!UzTEK?,̻lMYUuaXoMsV!DHm //_L=-( lOu۸4fΜY+9ruu%""ݻ6mZvvl~,X,ws@炂 l=ǖMDO@^b!#clI? (:Cx@TUL!I4Eeؾ};.\@3~zkvZy.\]x"-- n:Ǵi'55Ʉ&Lk׮}7l|b٘8q"zjsssIMMw9{f^㩧`2pww箻5DFhBXMoA˫wM5xxx4CCUzz:#FݝRSSۛ}2tP:bA79nGΝ;),,jm{ǀnciO? a„ 9r~L&ϟkQSufGuhh(yyW'3f 'O$??NwAnݚƚ\gđ؄ח[lGQ*U4l V[%=MUj/(E:c7$:DStj#G$00L7ocksNf͚7d޽L4SNEn0$%%qwSO7o6Ѳ[nV=Ն FLL 'N/ >>***O{  33~ESYYIRRӦM#((2~buV hXM^b0j(|}}]kce'&Lh0877f3̞=.]nUU  psT=|ۛr֮]K~޽;Clgr9QbL 6 m۶kњF?'ѣGۉۛ#Gٳk9q$6!DX<ه૒kT@PPTr5Tm*CA6h*:UVoDUU:DStZ@޽%??^d/_Vk@߾}9x 5ZVkSSuΝ;t۷o7fE~|Ϟ=ĦsiOjoi[l!886Nkڥk׮okn{O0dgg၏!!!$/)|TUbp\dugxx}vݻwӯ_zGEUUn&ۣ&?'uzϞ=x{{۟]cS{Zi,6!D u#2ԍcf~(l3g *)*aA zuE]M0mV444TUzrscӈN`J)!~X,t:]l6[wuu%88ᄏlzfUU,s$k巿mSN5;uՍLQn?ΨQ0 qhɵ7AͲޓbhihNMP|BCC(,,'|ϙ8q"b6*As]ԩS;v{(pQfΜi#QMů{]57uis֒HS !_x`_R4l66;]mj|'T'5{1iB#SnNfd2{T{gF#BUKqq1ݺu˜:u *++Gݻs9rrr4 &Rݻw'77|26v]5u֍/s#FУGmhX]h=i:궱EEEt///ٱcqqn\\\QF#]vjh"TTTTP^^N , 9wy=j7PQQ%[5c!DT3QTU^^ \L!ڏhNKӑ˗qsscWI :3}tnvmۆh> 3f %%t C 1=wɓٵkVOOOMF˨JjFI&sNTU%00~}4z]5yzzڏsqqh4r:vܸq|'޽'Z44C68p LGBCCdժUFzhgV+_SXXȎ;q6>|^zTsR3YuXoo!:bm8!yԧ4]sZc_Guym]m}^f9)e4MjbX(..v~JVwyw/֭[[o9,KJJزe siP!%Uvv6]tAg˕َ`0DW+`Slux^ArjWw1=B:f̘cHNNu/eLL}b:u>}qQRRz^ֽBt(t $B4 <g{'B!:I4Ehh4r뭷2{l?~l֮]NϏoCB5C9e9SPIQ s waH07ƒ =a2tVΟ?O~-4i??~8cƌ?>㩧"::ԫ#..G!**| ֭[OTT< .]Oi IDAT/B:}yZV+fs5y}?8*++?ԩS_B;Y.+]pV&g$hh6l6%gro1+3 ;YB$Sۿ?{%55m۶C%Kͻː!Cb ,X-[իqqqdgg+fΞ=?Obbbػw/rjj*~{z Dhh(>(>ϟwK.ēO>̠AXh,_V^͇~HNNzC!DlGX_ 'X34fVMpfXwe;.9)!dΜ9O?m*Gsƌ{mM7>Ν;y`|DFFRVVƱc4h8qZ {=6mć~?Onv͛GXX1x`͛͛Φk׮lٲd{gѢE,ZC!DrNL0J2A^̩Cfz]e+*C^EEa!g.ZX>/7gzDStj[ꫯ2bΛocT/}_p !;={0h =z4uww'..XXv-cժUd`~`F#dffbxQłdvB9M]٣٘:ċ[Wn:y3Fw",gފ tblBȟt<СC9tPRUaϞ=Ȱٺz=&Lߦ[nڵsyyyfHJJb9ኄBtvaied`YW7ogdЬhrmaB\h QoˁFN>]k_{'Jdd$gϞ9rްt:quumݻNjj"Bq߿H"##ٿu?l>Q0Ue5 lVN`H2k 'j}?91N!DC$bl6c6)../СCL8ɱ'C a֭;w^|ED:m`0>|xѣGIHH撕ŻǛtܹ8pJ~~>cGB!T֮]Knn.ׯ ֯_Onn.k׮n#S>ĹjTMcePkJ2ԡU=6V;;V!D=r6l &,,'K:u~߳tRfϞM=4i%֘yzKT !!<8p o{v=:;w}⢺QB'55 b_Zl߾}L>HHHpx4̵8kvYޓ٬<>ί5>>ΏO\FQd}Nz4?Gqmqv}J355}TW?e6[y:-ӪѰZX, i𮛬,f͚Ů]+Xvm1 , 66bYR}WWa%6 ӆxoR-UOm<1)lt^Gӡ(}^s9_>\O jlSy5ʩOk`_8m HIIaԨQd !5; O>$~);w駟5q4NLlVp`fqF># )--eݺu$&&:)b!:.I4 >3Əa!ؿ?>ʼyߟ9sOt3Nz^͛7`ת>5\lYrlX'11dDp0b!:&I4ymO!./5]wU)SطXxqSTjsਖѪz5_Q^}8ӧKAA7okM&7nn,DG%@HHϯ!!skE}݇//^$112L&6mҥKpb4$B!̲ej"m۶z/fůWѼp/\TMucsK͙3gŋٴi7oҥKs=H)DYD!3f {}wQS( ;v୷޲fw6%fV9fcokݝ{M6QPP =B4@z4B!:Tb7dʔ)L<^{ nRRR4!!j)H=~i5\HU1_R!=]v%((Hz2h$B!P=PSU={i,QanNQEAQTwg.[H:(Dj=Jwwwxbccqwwou|BH)BEGG|r,X@RRHX` l r2$ (*:Vku}+v偪EeX/7l>I4Ek]SYGp-|MG~!,%88ٳgꊛ?ƶyY[=SR5GSQl=K\Kl=Q9^B4O&B8ry***ٓ\]Bƌþ}n3܃͇M*Tt:M_3;·EO_DqqE.D7($B!I4:}4{%22(z=9r5k0{l<=l1h Y[T!~AOE Z9RsUax)2vw1DwŠsrހ09tou$B44fΜYkWWW"""0 ޽iӦ]׸ BѼ3XϽ *@[7=FJ{ኅ2R%,ꂪ7 3QUUz3$fc\p^1VZZڵkyGpvcdddpm1poJ^ ƌɓ'GqwЭ[7ӧ ȑ#࡚֚iO? a„ kf1qDz@VViiiTTTOLL Szz:#FݝRSSۛ}2tP:b;wRXXj%<{7P44U\M$UlzЬ 'E1՛& J, FJrssM馛0`@UTTP^^N&u֍˗/s)®\wLJ"wرb8~87p...`4ڵ+V\t:5cSZu|L6 www=lB!:zz=...`00 d ~GStZ:t._ӧOGObС_ӧsm6F#MN ХKFcW_QRRj%"">1...̘11 2׺$==ɓ'3k,!""t틁ɪU0x-T#F %%G#88>=z'B+Јjv6wr|c_)SŜ9sؼy3qqqlݺ)qf]B!q@t}Oڧ7bܸqxmsCrrrxk_7[Tnsss#660ϓ}Wwy/W^y5k`0?>L4Z{nlh6V^Mrr2/֭c֪jxbxG[t~!Y?/pVj\jh M^iz؇q8?ȲQhNmƍ;oϘ1{w03C%((?g5[n2زe >,~~~1|RRRj_7H8v8q{0͚5G5k0}ttR8̚5kXd уKb2HKKc̘1XV{;?3g0vXٳhV/ lJsYV{=?1p@4iR[MxW(--sB!s.ɉjUU%6+Sx@>y'M{S=yyf Sx٪P4621 \)9p.!3=Se|գ(}[UUnf233-fۏX,Lرcٳg "--ѣG79ӓ3gj*,YBrr2ׯw\NNքGFs&NIMMeᤤ0vXpz*馛iabɡΝ;1!p ؋'S&;u󡛷ޑݼutvg<)E$wMQ9Y ؄M!ڀNk zHJJb5{ `L0_f͆j`0;K{n&MU9z=>>>W_5@}9r$]ti0B:vaied`YW7ogdЬhrmaB\h J/^$11־cǎѯ_f˻w;->odd$gϞ9ra6m;w$..cBBB8r}f###Pn8t?-9s֣Gl6Ǐo`^z%VZPB/1NpYM5ҫŵ`ln>lbߏeNSI4h!_5/_wޡ &4[;w.:j_kV X|9Çwx{wy^z5XΌ3Xl=TU^x=-XȜ9sذa?YYY|$LJ4Mk66oooƏ/Lff&՛6""sϑP !h_8BI}LyMIfY#:Գgjg*GM!Zӓ;e˖1}t=oC=s%!!qc'iNLL thl5ooo1 .d̘1<\r_ֽwy'999zmKG׳b {1>s~a͛ǦM`cccO˧4Я_?yLš5k|rs3|p?R^.S !Dk5;,WlVffHV983^!D]8>>˫Wol2魼NqU/UݣaZX,ۇR8^f̘qM孑ŬYصk=B!H)f+Kl 9ڥ[w%(ۼyb5uJ;gQxўx6hKdggӥKz=:EQT_1  `,u~jζVck>QN}Zn7իVM!:F%IBv]ىܛ;z5ˮuKXy`E6Gϖrfb@M!:>ǷwB!:3Ϋz^͛]VMU}jxm+Wds ʀL&ܘ0a]ve۶mՋpaʈ$++4***'&&f/**BJ2X}؇*9rR"##k]oMhh(999hFtt4}im6۷o… zƏOppp;p`Z裏0aukצq]MXuhPPѪG 6E-ؒ@Ӫ^sNT EGU]1›ESt` qȸѩO?7|È#f$&L@||b0h N8a?ĉSZZΝ;6m?0ݻj&6x*++IJJ"::y1mڴZZ,nʰaׯLrr2SLhPXX@qq1>>>cΜ9cO=Ms9<== h4ڿH5Mc˖-J0၏5~!UUOX ֻwo (//??zרw7ϟoګ ח&_( wy'[nٳr-i]vB_P7z0Gz1+~*y^ (:UJ6J#;Co&nl͸D%I@ΊN/((Ȗ-[yxT?KJB] &H /XV[VJ Ċ  HDL2Y~9 dBN3眹} L& $ z쉌 1Ba` PSSDBDFF4Oq,@Jݻ7._&gZNR)d2vk[=eeezrféSOOϛ]Ο?R>jEVVE˯=bnQ[GHēO>E!!!j6m Ў.]DZ6hO3h4~a<3殬Z ?MݏcWYYE_Ē%Kp6*nmͷ3kϨۓ M#d2(Jh4cر1b,[LL ;<ߺg|nU{~ӎ796n܈6*n7n'ڎIDDbYC S}b 55/^bADDF Bz*=2xxx 22{ԩS8w  NM6aȐ!@AA&N0lڴ D6mB~p%qqq DZZ~GK0p@]f!-- u~\v F\\EiH$&&bd4 |_ii)ѽ{wϟ?N[yy9 ѷo_a]~~>F#!62gϞ-*AMMSEEE8y$rrrpI ,,6U[dggɓ'hl-hW]]#00/..Fqq17gϢGPZ\pn6Ο?Hfdee!((@CmAAzJV;ƴX,D׮]#lw'ƊQVV={BTU۩Tl霈BL&?***ɨٳaZo> ..F;wѣѻwobp?ͅFٳcƌȑ#,)) 3g΄NCZZn݊ `С0LĄ |cǐ'BPȑ#غu+~_C&5kt:RSSk.,X0Qw<{駘?>{=++++… PT0 x饗0j(ڵ x77l؀:xa0`X ˱j*^WMM ^u>}:ѽ{m.O~ O|'9r$Z,XvZ;XjuyP*ؾ};r9JKK]m.'bUTT`ٲexG+n9͵ܹsQZZ {\n;4Ӯ1>c hek_z%h{ꩧ0qD 443 Ƿ~ TO?k׮koZXl>童?Ʉ;v@*믿ڵk1qDwً* [lkkj󜈈k4z6 7o'|O>vd!44سgrrrUUUorX:7D`ǵ%UUUZNx* )N\.G}}}kJBBF#> 4fΛ7S^}ᩧΛ7>>>8r =zh2l41x`ĉPPP >?uaΝxꩧ{]wm)'wbF,_#FٳjִۜڒfXVfS+" wEFFڵk7| =pǏ 0hJ||<2337 ?SLBBBV̙3ѭ[7$'':VS<'""GbAii)_̙#9H$>}:rss;w"44'OQ/bH$N3ilfju*d2Y1 O1d2̟?}wӧO㥗^nJB~~>P:tqqqHJJB||kugޖs"" MN7aZP(~5P9z=t:l64^ٳg} +4 m|t h(~ eҤI׿{=]Vd2֩d2 x3b ))If^0X,Fy6bM>۷o_W^ڭBޝ6mᎶcpB̚5 IIIꫯw^?qٓ\^^K_&ؚ:u*Z}D.Fll,9;vj",, SN [kܹ9s[B}o]v_|1c8M4~x?;(H3_bQTTDrݬjsիQ]]a޼yGxx8=gϞ-\, /~!&&)(lܸwFHH V[5ݶh)~6MG}#F@a޽ n|={b`ʕʼn'!["$$Wv;h_S˽1___plٲ !C܊3HDDX_̝$-,7Fˍ^z6'u uFf6Ĉ#0b >D=\^Aaذa>>Xvv6,XO1b,Y" n)Ή`0@RA*B*B"8:^{m=kg4<;.Ų+O "J.4\JIC,oe2Rxtهl6l6X,fTUU9vi& 8M"""3d2RP ^tZe85*J'hPu(p5DDDDDD$*DDDDDD$*NDt={vG@DDDDtCأIDDDDDDbIDDDDDDbIDDDDDDbIDDDDDDbIDDDDDDbIDDDDDDbIDDDDDDbIDDDDDDbIDDDDDDbIDDDDDDbIDDDDDDbIDDDDDDbIDDDDDDbIDDDDDDbIDDDDDDbIDDDDDDbIDDDDDDbIDDDDDDbIDDDDDDbIDDDDDDwtD7Ӷm۠V1a„޽^^^5jT;11}AtttĿXVl޼}M IDATzf1pfs=xh:4w""""j;h%** YYYX,N- ^v;vDDtno%lj'xb|gxᇱn:8p@g͚5wƲe:4o""""{4ҫW/}:N<Çcر®]m6x L>߿fODDDDmB(* aaa|SyeLłT\x=z4 `ӦM2d222PPP'",, W^ѣGQVVDFF{3p@lHKKCFFjkkXt:a\v F\\orTz` !・))),4:9;NTT233aـ 333)쓜*̞=sAee%RRRٳx ш;w_~xG1i$ի<;K.aĉ3gd2n* 뭭Ejj*FGy]vŮ]Y>}}x{{vłǏ$""""1Ф;NDDL&PT°YɄtB111rSc\.GMM V+zJ&Z,|8r9Q]] VC6{MɄ˗/#%%& 8qXG8rvՊ0!ّ#Go>3mٲ8{,>#FDEE'DBBBeLDDDDb/wIZXv\'uXanm_5Z7z2Lmddd`HNNΝ;1iҤv;T*-tًWR)n7{JNأIDDD"aZz!X|9}[ޒ~am۶_ƾ} ,@ll,o6̙qa̙_L&!nBB&Od>G?L6 K.EuusKZQwDY_^B~P-O_KvLP!,# !w@uðj K#n?[7F}3\:fo{EhFBnIZFzz:Ν{YYYNO–-[ѣG#55aZpU;vXaX,ZRpt cǎfCbb">(((+ӧ#66j^^^n˭Dѷ~)hvZx-ӹt~qq\= MB<3 "$;HZX ]{G(^^3|6s=jA9`?P(F[ccchRZ?]CgԥKZ ֭ŋqF|7n}Y~ñrJͅhlv{XX[yxxxzfYYY3f o>E@;~(>dȋl&|K Þ}(~!vC 򈞰UWk\_3`3l+~EGaN1X~}! FvNDsEDDDwhѣGg}兤$L8{/~ *sMcؽfE+(~)ձ=zMl-+a)Xny#z聩S6l؀/IIIؿ?8>s#­t ?; yЌEdXuSP+N1gf\y%Z/R`5um;͘I sn?ArDD$""[U}}=~?zL .CP999Xnd2p;qZ{8'{Ett4|||[8^OشiϟՊ47[bb;?dp X82_6 ZeKI-cc2 C5d0 v6[Dt`&ݒ;`ŋ _|ѥKL2[nœO>ǣz_Zޔz r8wf3/^,\kN\FGy۷?P||9r$|MDGG>ej@u&xam! 'J/cԟIЌC0KW L|=a?kE% 2AP$""[RXX̙N#77k& }gOB*bƍHOOVfsk+}كR=ׯܹsi)̙31aoAff& Gyr{ATTƍl,^غu+\???|wظq#R).]Zlx-ϲ/X'26h(Y՟&B͸8N`,_tO[@Le#';B܉'iaqa]}}YhYd2<&il6l6X,fTUU! #""E nkr:r2 V"Q*1X=X-pXgsrS-$""""""Q$""""""Q$""""""Q$""""""Q$""""""Q$"""&INŶ M""""jOTGpb팅&5I=NŶ M""""jivCŽNݰ$"""fyŦQwtDDDDtkc wtZDOԓgO&Xh[/dDDnY"""""" M"""""" M"""""" M"""""" M""""""gNS """"FXhR).;;S j%""""""Q$""""""Q$""""""Q$""""""Q$""""""Q$""""""Q$""""""Q$""""""Q$""""""Q$""""""Q$""""""Q;:b 瞻n۰acٳgcҤIXpX& #G֭[ѭ[7s1cܾetx-Yb;L&C׮]1n8,^JRѝ&ƌ}wƍZD;v ?ZVcΚ5 K,dBzz:^}UXV7э`IŋK\BRRA&ӳ]eP(hhpbΜ9ؿlF0jfR * *JcXhG̙31m4b?O޽Gvڿ ш1cgJՊO>۷oGyy9!!!Bn<ۇϣGX|9V"K{ݺu8tеkW<4iS[̟?~-N>UV{iyUUU5.0%ֲlX,X,Cee%j5t:4 %ɀV__-ywz uYz5rss駟bƍźun(>ǪUa(J<ӨYj/^/ ŋQ]]2^JJ >$رc-Z4va͚5شiLW^yW^ub ?o輈VZZBfjbj:=l6C uuu(**BYY(}Ѥ;ڗ_~/U1L/~z/b׮]^[o駟˱|VkÆ  xW 99?O>,>3gμ.fVV.]*JزepYm>(mۆs9MJ4m4V+PWW'V:PTl6h4Bף R6M=Q__.]@*e? Bhkr٦j:MuUXV`q\40L0L'N >>~~~͛QYY}0-Z<|00/D$''ߔ\Q8:Mz鄉VUU%zL"rơD7og}:SLq*-ZJ5k֠~~~X`۷ql2]`6q=`ݺu0"OOOWo 4> x6m¦M/޽{c͚5B%Kȑ#1vl%""jOIIIXlV+~mmGԩSk׬Yv˥B(//&ChF#IԎںxI5~ط_ۗe卞L&Sjϓn"a38fUUU;Y{|ѝ!11)=͛nf:AAA-((@UUr0#X#ZoUR?jrRTD7{4h4VΙ IDAT(++5_=zࡇ‚ CARaÆ x펛u";T*E@@<<< ˡT*?#++˭[fdeeR\.}Z(y$jD"W^mQPP޽{S["99fr*T*bbbT*qL2Ecb;nqDBP*"((6 @õ׮]CXXjf3 JKK \JR BThTҥgKD`Iw,Պ{"//Vk׮Œ%K/Ȥ$Fd2 1]dFc@^^W^2e ^Zqơk׮ͅfC\\z!sNC.cر ^Ǟ={PVVł`>}Azz:F~!55jERR퍈}8qf3r9}]DFFhu%B&W moWm*HP\\}6k"** םbn݊E L>]tիWb…0Pooo!11zBpp0EA& EULL L&[̙3:ׯGϞ=Neee l=___={;wģ> oooז>/ǶiS\H$ۋ3rH$t`^Gmm-L&, l6PhL(2 T*4 oaBԁXh5*YV0G* !!!1cF]0LhSCl6C&{E||jM7z- ~Gsi5yGPPrssYwaZuVT*\.T(P*„?12aIt{`&Q34 &L={@*k׮( L6 Djj*J%(DGG8s f̘'b߾}X,Ĕ)SzȮ^cǎARaʔ)l|2 ZԩS!W?FAhhh}B'bٸv|||T ˣq6MHH;h/ iiiG```mhZ\i=_BFVnDDYBޛ~DԹ/ٝxI5~ط_ۗe{w$Uu}==K 3&$.Fb)$1!$SVԲRr*1yX(*5<%)cEbD`a@gf^?Υo~]=PoιL5>oO׉, !~uvvPgBͤ͛7F^zidXq/h MMMLd]6+juwXWRRELչYz#׫>AB![p8t:UZZrnz#h 7xChZfV^-Izw4w\=I#g[o@ +b ݻWK.֪U|rײe"ۍo.^X'NК5k_R˗/O)6uuuI!0p2 aUMM.@6lؠ 6iڵZjƍ'Iկ~3gjǎ>}zzGu5iz5~xI/~ mݺUr?rk-[DH=M@VA?~\p U[[*⿠~_^WGr: l ե>qr: & {=mɓ# "n.":t(sIҧ~`08/>`0Ǒ/e/ǓpC8dHK#%˥*׫=8NaW}FaKyb#hq|>AᮬLeee#<1B0Vs{MM$iڵN$M===%U^^ǏKvvY cJY FҪ? y1c>j(UVV1: ݻu/ݻ~SN+iTWWÇ+Dsڮg&GeefϞ\~۵dkʔ)#Fh߾}:zWx2 E1sL=c멧PX].n-_\;?0ȝF[N---Z~^^֯_[N;vJ]:;;##jkkaSWWZA[, O7M-_<2nЮ]t7kҤIo{Z&4i{9I/3U.+RݒdoСC֦W_}uG6lP[[ 9s^_0P ."Y&Ldm|e\qF}ڴi͛`07CÆ ӼyvsZW У P`Ⱦ曧c\wW't:#a0JɨM7ݤ}ڸq^}UuttAs%d(0]v/Gw̙3p8uV=쳑̲[iiz{{%I===\gSۡ4*++5w\mܸQmmmDO&A566F~V\+WFwyP(Ryyp8t ۂ'=c_jL_>NSÆ SUU\.GСC =СC裏TVV&eي Rڪg===ڱcn{2e׿Uf͒й瞛d 2}{ȑ# %ky;V Lu)I.K*++Sii造nجgaHAV0oAM>=2qc(ǣ ]uU1b{=W^ѹ瞫Yfȑ#ڱc^4c UUUEz:t|>_jllSCCZ[[uKey{ѤITYY9Ouuu:st%~\.~i?y=b wyjmmG۶mS{{&L+"jXUkfXmU?>L۷oQeenIJXL\.F>Lr:SKKN%tD*--劼fjjjAmĉ1c8wyG?яkΜ96l<7xCz&O+ȑ#u)m۶M ,P]]ݫ;wjڴiz74o< 6L'|"Izڲeˀm$YwתESLӖ-[t7V?>Ȑv >5J---:v$EE.jUy4d8qBFRMM6mڤ[S'Nп/}*--MzvkĈ g 2{61^G6XYX#G92n__BPJ1(:N\Ƚ*++L3(B&PLnzV Puuf͚4io߮_sٳ}vٳGeeeuykնmt:5bD7n;3"ᰴԲ|+ڳgz-X@Gѐ!C4eٳGQz7NK/$ۭ3<3mJVz{{S_җkjn7sZ]cgW_7|SrݺS6LA19ܛo?ɉ爳l\43ß0m||{ҼNdQ )<&Scǎuݭ^{M-͛USSK/428(,hժU;3X+xA_hjjRmmmdr$m&Y)++"KR@/2|6d.úPue++J&ݪ~Vٳh˖-Nf̘FuYu!  =h2+ d_꿿pԩ ;aM0r{(}[߲R,ЇΚ2tY3Ma j,lUHA3t]98P GP -h `0*,OALd| v17ni~ ۬IeW+Pޞ*T!4߃f H^}}}`;Ǔ* {R.yyml^76X(,S A{064c)0(2J!h?X!Ir8U`!b躼fwд║K R$Ɛ=-Q;.\h&z1VYPc~@gK2(2"WA3FKwӆJ?~gD&"씓DR\^xo/H23aӻq#g(ۜ%^>y/n4Y "PH@@~_;vl`&rDC#lAQfRҡfem[Bf4AX㚣K.=Xt%ych٧ j4n@u#ٿsP_En~G͚sL=*glcд7~j_+5;qĭA[l~a[|kɚdvq8r:*--Uyynm=y'{!d9p*#S=xy6ڲ}fZcQ ܹO<~ǷTVV9N!ƃNx}}}iIҾ}קSJ=ƍӨQ$I_-$ݻWorJmݺU׾k͚5OvZutthʔ)ε{n_zd]YYl٢ T}}}ztR[NͺKTZZ*I;UUU{NO=?|_^>kjΝ5kVܲ$iƍZx^|E0a|ͨrwDw?\_>H]O<_|Q+VuYgiĈiW:qℼ^igS Ed_xTRR"VU^^H1lO*ѣGtҥ3g;w~?1`et,!tf4ݠa|3òӰO4; ÏAqJWxaθ=ǖf /sϦ,E ܟ9Φ{fd6+iBku|x_X@J$pYM4 Xlg6|֎kih1ZaSH|a0?;3k0ho=gά&1?FA}hGfSD)KK{4>DК{4h.@2P {T i DYoV.hh6O{5ek i5l{2 VybXz3U@Aj[*a3X2ǖH“lH#mxb]Cd+6v m¥|k >X9ZE4/dZvl"2>PIO/DZ04`b/VP<žyXSqձo}cՌͪRqz0mWg_"z )C*쟴l%z5dؔ)H&rl&rPp$ULXհYq4Pٰdfb +l&25XuRtA36lLaW/UT' 3h m7( lEO]fX{/_̽x#IvI6`TOKRf aȽTWi:dxas;-^1i=F!+eW:,p)h2A(!OddﯤR {>3VɄDϚ\t{53Ύ6uH,I;%[ɇ@d:n&oD{ cT/f"_3&,cm˗ VL8StLٚ(@aI6<&OQLxYtB\> %/0q| G'`omX yP1de*l&=@aH7hB8Xe#R1Vɹ|Rv-rݡѮpw!S_}>lP˧!y2U@a('$kP̰B ]<@!D  Zo X!SUBlٕW0!SrUBn3U+V )߯! F~1K**€Vl`(VX @)6`F¥` aZ䧢a9| k"X@;ˠ F,k x}0:(~IP?zG:qIENDB`extension-manager-0.5.0/meson.build000066400000000000000000000026721457631363100173220ustar00rootroot00000000000000project('extension-manager', 'c', version: '0.5.0', meson_version: '>= 0.59.0', default_options: [ 'warning_level=2', 'c_std=gnu11', ], ) i18n = import('i18n') if get_option('development') app_id = 'com.mattjakeman.ExtensionManager.Devel' vcs_tag = run_command('git', 'rev-parse', '--short', 'HEAD', check: false).stdout().strip() if vcs_tag == '' version_suffix = '-devel' else version_suffix = '-@0@'.format(vcs_tag) endif else app_id = 'com.mattjakeman.ExtensionManager' version_suffix = '' endif config_h = configuration_data() config_h.set_quoted('APP_VERSION', meson.project_version() + version_suffix) config_h.set_quoted('GETTEXT_PACKAGE', 'extension-manager') config_h.set_quoted('LOCALEDIR', join_paths(get_option('prefix'), get_option('localedir'))) config_h.set_quoted('APP_ID', app_id) config_h.set_quoted('PKG_NAME', get_option('package')) config_h.set_quoted('PKG_DISTRIBUTOR', get_option('distributor')) config_h.set10('IS_OFFICIAL', get_option('official')) config_h.set10('WITH_BACKTRACE', get_option('backtrace')) configure_file( output: 'exm-config.h', configuration: config_h, ) add_project_arguments([ '-I' + meson.project_build_root(), '-Werror=implicit-function-declaration', ], language: 'c') subdir('data') subdir('src') subdir('po') gnome.post_install( glib_compile_schemas: true, gtk_update_icon_cache: true, update_desktop_database: true ) extension-manager-0.5.0/meson_options.txt000066400000000000000000000012121457631363100206020ustar00rootroot00000000000000option('development', type: 'boolean', value: false, description: 'Produce a development build') option('official', type: 'boolean', value: false, description: 'Whether this is an official upstream package') option('backtrace', type: 'boolean', value: true, description: 'Whether the package is built with backtrace support') # Will be shown in error messages option('package', type: 'string', value: 'Unknown Package', description: 'The package format being built (e.g. "Flatpak")') option('distributor', type: 'string', value: 'Unknown Author', description: 'The package distributor (e.g. "Your Name ")')extension-manager-0.5.0/po/000077500000000000000000000000001457631363100155675ustar00rootroot00000000000000extension-manager-0.5.0/po/LINGUAS000066400000000000000000000001621457631363100166130ustar00rootroot00000000000000ar ca cs da de el es et fa fr hr hu id_ID it ja ko nb nl nn oc pl pt pt_BR ru_RU sv ta tr uk vi_VN zh_CN zh_TW hi extension-manager-0.5.0/po/POTFILES000066400000000000000000000024061457631363100167410ustar00rootroot00000000000000data/com.mattjakeman.ExtensionManager.desktop.in.in data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in src/exm-application.c src/exm-backtrace.c src/exm-browse-page.blp src/exm-browse-page.c src/exm-comment-dialog.blp src/exm-comment-dialog.c src/exm-comment-tile.blp src/exm-comment-tile.c src/exm-detail-view.blp src/exm-detail-view.c src/exm-error-dialog.blp src/exm-error-dialog.c src/exm-extension-row.blp src/exm-extension-row.c src/exm-info-bar.blp src/exm-info-bar.c src/exm-info-bar-item.blp src/exm-info-bar-item.c src/exm-install-button.c src/exm-installed-page.blp src/exm-installed-page.c src/exm-rating.blp src/exm-rating.c src/exm-screenshot.blp src/exm-screenshot.c src/exm-screenshot-view.blp src/exm-screenshot-view.c src/exm-search-row.blp src/exm-search-row.c src/exm-upgrade-assistant.blp src/exm-upgrade-assistant.c src/exm-upgrade-result.c src/exm-utils.c src/exm-window.blp src/exm-window.c src/exm-zoom-picture.c src/local/exm-extension.c src/local/exm-manager.c src/local/shell-dbus-interface.c src/main.c src/web/exm-comment-provider.c src/web/exm-data-provider.c src/web/exm-image-resolver.c src/web/exm-request-handler.c src/web/exm-search-provider.c src/web/model/exm-comment.c src/web/model/exm-search-result.c src/web/model/exm-shell-version-map.c extension-manager-0.5.0/po/README.md000066400000000000000000000263171457631363100170570ustar00rootroot00000000000000# Translating Extension Manager Contributions to translations are always welcome! There are two ways to translate Extension Manager, via Weblate or manually, choose your favorite. > [!TIP] > Use Weblate if you don't know which one to choose. ## Via Weblate We use Weblate - an open source continuous localisation tool - for translation management. Access to Hosted Weblate is kindly provided free of charge to the Extension Manager project.

Translation status

## Manually If you are totally new to GTK software translation (or software development in general), fear not! The entire process is explained below in as much detail as possible. If you have any trouble, please [get in touch](/README.md#-community). If you already have experience with translating GTK applications, remember that Extension Manager is written in C. You will need to rebuild it every time you make a change to the `po` files. ### How to add new translation 1. You need software to translate Extension Manager (in this case, we will use [POEdit](https://poedit.net/)) and [GNOME Builder](https://apps.gnome.org/Builder/) to build and test your translation. 2. Clone Extension Manager repository to your device. * *Using git:* ```bash git clone git@github.com:mjakeman/extension-manager.git ``` * *Using Github:* 1. Click green button `Code`. ![](screenshots/_19.png) 2. In opened menu click `Download ZIP`. ![](screenshots/_20.png) 3. Save it in your `~/` home folder. 4. Unpack archive with archive manager of your choice. 5. Rename folder that will be unpacked from archive to `extension-manager`. * *Using GNOME Builder:* 1. Run GNOME Builder. 2. Click `Clone Repository` button at the bottom. ![](screenshots/_1.png) 3. In `Repository URL` paste: `https://github.com/mjakeman/extension-manager` 4. Set `Location` to `~/` 5. Click `Clone Repository` and wait until it's done. ![](screenshots/_2.png) You can leave GNOME Builder open as we will use it again later. 3. You need the `pot` file that lies inside `./po` folder. Make sure that the [pot file is up-to-date](#regenerate-pot-files) before proceeding. 4. Open it with POEditor. 5. Click on button at the bottom of window `Create a new translation`. ![](screenshots/_3.png) 6. Select your desired language. ![](screenshots/_4.png) 7. Press `Ctrl+S` or `File` > `Save` to save new file, place it inside `./po` folder with filename that POEdit gave you. 8. Open `./po/LINGUAS` file with any text editor, and add there locale code of your language. For example, if you want to add Ukrainian translation, POEdit will suggest you filename `uk.po`, so in `LINGUAS` file, you need to add `uk`. And, please, keep locale codes in alphabetical order. But sometimes, you might want to specify a variant for your language. For example, for Russian in Russia Federation, you need to set locale to `ru_RU`, instead of just `ru`. You can learn more about locales [here](https://www.gnu.org/software/gettext/manual/html_node/Locale-Names.html). 9. Translate Extension Manager! 10. [Test your translation](#how-to-test-translation). ### How to test translation After you have finished your translation, you will want to test it. The easiest way to do so is to use [GNOME Builder](https://apps.gnome.org/Builder/). If you chose to clone the repository using GNOME Builder in [How to add new translation](#how-to-add-new-translation) and have not closed the GNOME Builder window, skip to step 4. 1. If you haven't already install [GNOME Builder](https://apps.gnome.org/Builder/), install it now. 2. Open GNOME Builder. 3. Click on button at the bottom of window `Select a Folder...` and pick folder with Extension Manager source [that we cloned before](#how-to-add-new-translation). ![](screenshots/_5.png) 4. In top-center, click on button with `triangle pointing down`. ![](screenshots/_6.png) 5. In opened menu pick `Rebuild`. ![](screenshots/_7.png) 6. Wait until you get `Build succeeded` in upper-center text box. ![](screenshots/_8.png) 7. Click on button with `triangle pointing down` in upper-center. ![](screenshots/_9.png) 8. In opened menu pick `Install`. ![](screenshots/_10.png) 9. Open `New Runtime Terminal`. With `Ctrl+Alt+T` shortcut or click `+` button in top-left corner and pick `New Runtime Terminal`. ![](screenshots/_11.png) ![](screenshots/_12.png) 10. In opened terminal, you need to force locale that you want to test. Usually, it will match locale name of your `po` file or it might require to specify your regional code. For example, to force application in Ukrainian language, you need to type: ```bash LC_ALL=uk_UA.UTF-8 ``` Where you need to replace `uk_UA` with your desired locale. You can learn more about locales [here](https://www.gnu.org/software/gettext/manual/html_node/Locale-Names.html). ![](screenshots/_13.png) 11. Run `extension-manager` to run Extension Manager, which would use locale that you want to test. ![](screenshots/_14.png) Once you have finished your changes, you need to refresh the application so it will apply changes to translation. To do so: 1. Stop current running Extension Manager with `Ctrl+C` in terminal or simply close Extension Manager window. 2. Then click on button on `top-center` with `triangle pointing down` in GNOME Builder. ![](screenshots/_15.png) 3. In opened menu pick `Rebuild`. ![](screenshots/_16.png) 4. Wait until GNOME Builder rebuild Extension Manager. ![](screenshots/_17.png) 5. Now close this terminal with: ```bash exit ``` Or just click `cross symbol` on tab with this terminal. ![](screenshots/_18.png) 6. After that, repeat instructions from [How to test translation](#how-to-test-translation) section, starting from step 7. Do this every time, when you do some changes to `po` file to see them in Extension Manager. ## How to update existing translation If you want to update the translation that someone else already did: 1. Try to contact original translator. You might find their contact info in top of `po` file of translation that you want to update (if you will open it via any text editor) or in `translator-credits` and ask them about changes in translation. 2. If you can't contact them for some reasons or they don't respond, then just translate on your own. 3. [Re-generate pot file](#regenerate-pot-files). 4. Open `po` file that you want to update with POEditor. 5. In top menu click `Translation`. ![](screenshots/_21.png) 6. In opened menu pick `Update from POT file…`, and then pick `pot` file that you re-generated earlier. ![](screenshots/_22.png) 7. If you wish, don't forget to add yourself to `translator-credits` (*DON'T REMOVE PREVIOUS TRANSLATORS THERE*, just add your credit on newline) and in top of `po` file via text editor. 8. [Send pull request](#how-to-contribute-your-translation). Try to be consistent with choices that previous translator did, unless they contradict other GTK/GNOME applications translated terms or you think that your translation will suit better. ### How to contribute your translation If you think that you done with translating, it's time to send your translation as pull request to developers of Extension Manager! This part might be tricky to someone who not familiar with software development and Github, so if you don't understand something, you can contact [community/developers here](/README.md#-community), where you will get help! 1. Make sure, that you have account on [Github](https://github.com/). And if not, create one. 2. Also make sure, that you know some basics about how to make pull requests: [How to make pull request from fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork) and [How to create fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks). 3. Upload changes that you make in your local copy of repository to your Github fork. If you already know how to use git, this can be done like this: ```bash cd extension-manager git commit -m "I translated Extension Manager!" git push ``` If not, you could use Github interface to do so: 1. Open your fork on Github, navigate to `./po` folder. 2. Click `Add file` then `Upload files` and pick your translated `po` file and `LINGUAS` (in case if you added new translation. For updates to existing translation you don't need to send `LINGUAS`). 3. Make sure that everything is correct, there are no typos in translation, mistakes, you didn't upload wrong files by accident, etc. 4. Open [pull request](https://github.com/mjakeman/extension-manager/compare) to Extension Manager repository against your fork. ### Tips about translating 1. Try to be consistent in your translation with other GTK/GNOME applications. Pick same terms, use same accelerators, etc. 2. Always test your translation before opening pull request. 3. Open your `po` file with any text editor, not with POEdit, and in top most of file you will find some placeholder info for your translation. Please, fill it, if you can. Take as example `uk.po` file. 4. `translator-credits` is optional and if you are not comfortable with sharing your alias, email or link, then leave it as-is. Also, if there are credits for other translators, please, don't remove them. Just add your credit info on newline. If you want to put email, do this: `your_alias ` And if you want to place link: `your_alias https://example.com` You can check if you input everything correctly in `About` dialog of Extension Manager. ### Regenerate POT files If you want to regenerate the `pot` file (i.e. when it hasn't been updated in a while), there are a few steps that need to be followed: * *Using GNOME Builder:* 1. Open GNOME builder. 2. Open `New Runtime Terminal` with `Ctrl+Alt+T` or click `plus button` in top-left corner and pick `New Runtime Terminal` ![](screenshots/_23.png) ![](screenshots/_24.png) 3. And replace contents of `POTFILES` with output of `print-source-files.sh`. ```bash cd extension-manager/po ./print-source-files.sh > ./POTFILES ``` ![](screenshots/_25.png) 4. Go to the build directory (typically `_build`, but whichever you specified when running meson) and initialize it. Like this: ```bash cd cd extension-manager mkdir ./_build cd ./_build meson ``` ![](screenshots/_26.png) 5. Now meson is initialized and you can re-generate `pot` file. Like this: ```bash meson compile extension-manager-pot ``` ![](screenshots/_27.png) 6. Now close this terminal with: ```bash exit ``` Or just click `cross symbol` on tab with this terminal. ![](screenshots/_28.png) * *Without GNOME Builder:* 1. Make sure that you have `meson` and `gettext` utilities installed on your system. Refer to your distribution package manager. 2. Go to `po` directory and run `print-source-files.sh`. ```bash cd extension-manager/po ./print-source-files.sh > ./POTFILES ``` 3. Go to the build directory (typically `_build`, but whichever you specified when running meson) and initialize it. Like this: ```bash cd extension-manager mkdir ./_build cd ./_build meson ``` 4. Now meson is initialized and you can re-generate `pot` file. Like this: ```bash meson compile extension-manager-pot ```extension-manager-0.5.0/po/ar.po000066400000000000000000000446421457631363100165430ustar00rootroot00000000000000# Arabic translations for extension-manager package. # Copyright (C) YEAR THE extension-manager'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # Omar TS , 2022. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2024-03-15 22:30+0000\n" "Last-Translator: Omar TS \n" "Language-Team: Arabic \n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" "X-Generator: Weblate 5.5-dev\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "مدير الإضافة" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 msgid "Manage GNOME Shell Extensions" msgstr "إدارة إضافات جنوم شل" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 msgid "extension;manager;shell;" msgstr "extension;manager;إضافة;مدير;شل;" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "تصفح، تثبيت، وإدارة إضافات جنوم شل" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "أداة مساعدة لتصفح وتثبيت إضافات جنوم شل." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "الميزات:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "تصفح extension.gnome.org داخل التطبيق مباشرة" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "إدارة الإضافات التي قمت بتثبيتها بالفعل" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "أداة لإدارة إضافات جنوم شل" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "تصفح، تثبيت، وإدارة إضافات جنوم شل." #: src/exm-application.c:177 msgid "translator-credits" msgstr "Omar TS " #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "بحث عن الإضافات" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "أدخل كلمة أساسية للبحث في \"extensions.gnome.org\" عن إضافات جنوم شل." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "الصلة" #: src/exm-browse-page.blp:31 msgctxt "Sort search results" msgid "Downloads" msgstr "تنزيلات" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "الأخيرة" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "الاسم" #: src/exm-browse-page.blp:61 msgid "_Load More Results" msgstr "_عرض المزيد من النتائج" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "لا توجد نتائج" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "مثال “%s”" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "تعليقات" #: src/exm-comment-dialog.blp:37 msgid "Loading Comments" msgstr "تحميل التعليقات" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "حصل خطأ" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "المؤلف" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "تكبير" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "تصغير" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "رجوع إلى العرض" #: src/exm-detail-view.blp:106 msgid "Loading Details" msgstr "تحميل التفاصيل" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "تكبير الصورة" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "وصف" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "الروابط" #: src/exm-detail-view.blp:232 msgid "Homepage" msgstr "الصفحة الرئيسية" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "عرض على الإضافات" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "مراجعات المستخدم" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "لا توجد تعليقات." #: src/exm-detail-view.blp:319 msgid "_Show All Reviews" msgstr "_أظهر جميع التقييمات" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "تقرير خطأ" #: src/exm-error-dialog.blp:29 msgid "An unexpected error occurred in Extension Manager." msgstr "حدث خطأ غير متوقع في مدير الإضافة." #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 msgid "_Copy to Clipboard" msgstr "_نسخ إلى الحافظة" #: src/exm-error-dialog.blp:64 msgid "_New Issue" msgstr "_مشكلة جديدة" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "منسوخ" #: src/exm-error-dialog.c:179 msgid "Please open a new issue and attach the following information:" msgstr "يرجى فتح مشكلة جديدة وإرفاق المعلومات التالية:" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" "أنت تستخدم إصدارًا خاصًا بجهة خارجية من Extension Manager. الرجاء اتصل بموزع الحزمة (%s) أولاً قبل جاري تقديم مشكلة. " "تأكد من إرفاق المعلومات التالية:" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "فتح تفضيلات الإضافة" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "حدث خطأ أثناء تحميل هذه الإضافة" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "هذه الإضافة غير متوافقة مع إصدارك الحالي من جنوم" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "يتوفر إصدار أحدث من هذه الإضافة" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "الإصدار" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "خطأ" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "عرض التفاصيل" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "حذف" #: src/exm-info-bar.blp:13 msgctxt "Number of downloads" msgid "Downloads" msgstr "التنزيلات" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "غير مدعوم" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "هذه الإضافة غير متوافقة مع إصدارك الحالي من جنوم." #: src/exm-install-button.c:115 msgid "Install" msgstr "تثبيت" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "مثبت" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "استخدام الإضافات" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "إضافات قد تسبب مشاكل في الأداء والاستقرار." #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "إضافات المستخدم المثبتة" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "إضافات النظام" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "تحديثات متوفرة" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "خروج" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "0 إضافة سيتم تحديثها عند الدخول التالي ." msgstr[1] "سيتم تحديث إضافة واحدة عند تسجيل الدخول التالي." msgstr[2] "%d إضافات سيتم تحديثها عند الدخول التالي ." msgstr[3] "%d إضافات سيتم تحديثها عند الدخول التالي ." msgstr[4] "%d إضافة سيتم تحديثها عند الدخول التالي ." msgstr[5] "%d إضافة سيتم تحديثها عند الدخول التالي ." #: src/exm-installed-page.c:340 msgid "Browse" msgstr "تصفح" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "لا توجد إضافات للمستخدم مثبتة." #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "لا توجد إضافات للنظام مثبتة." #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "مساعد الترقية" #: src/exm-upgrade-assistant.blp:47 msgid "_Check Compatibility" msgstr "_فحص التوافق" #: src/exm-upgrade-assistant.c:176 #, c-format msgid "Checked %d/%d Extensions" msgstr "تم التحقق مِنْ %d/%d مِنَ الإضافات" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "%d%% متوافق" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" "جنوم %s يدعم %d من اصل %d من الإضافات المثبتة على النظام." #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "مدعوم" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "يتوفر إصدار مدعوم من هذه الإضافة." #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "لا يتوفر إصدار مدعوم من هذه الإضافة." #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "مجهول" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" "لا يتم استضافة هذه الإضافة على extensions.gnome.org. لا يمكن تحديد توافقها." #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" "أنت تشغل حاليا جنوم %s. حدد إصدارا من جنوم أدناه وتحقق مما إذا كانت " "إضافاتك ستظل متاحة." #: src/exm-window.blp:42 msgid "Main Menu" msgstr "القائمة الرئيسية" #: src/exm-window.blp:55 msgctxt "Navigation" msgid "_Installed" msgstr "_مثبت" #: src/exm-window.blp:64 msgctxt "Navigation" msgid "_Browse" msgstr "_تصفح" #: src/exm-window.blp:102 msgid "Sort _Enabled First" msgstr "فرز_ المفعل أولا" #: src/exm-window.blp:103 msgid "_Show Unsupported" msgstr "_عرض غير المدعومة" #: src/exm-window.blp:106 msgid "_Upgrade Assistant" msgstr "_مساعد الترقية" #: src/exm-window.blp:107 msgid "_About Extension Manager" msgstr "_حول مدير الإضافة" #: src/exm-window.c:179 msgid "Uninstall Extension?" msgstr "إلغاء تثبيت الإضافة؟" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" "لن يكون من الممكن الوصول إلى ميزات الامتداد ووظائفه بعد الآن. هل أنت متأكد " "أنك تريد إلغاء التثبيت؟" #: src/exm-window.c:183 msgid "_No" msgstr "_لا" #: src/exm-window.c:184 msgid "_Yes" msgstr "_نعم" #: src/exm-window.c:253 msgid "Unsupported Extension" msgstr "إضافة غير مدعومة" #: src/exm-window.c:254 msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "هذه الإضافة لا تدعم إصدار جنوم شل الخاص بك. قد يسبب ذلك أخطاء في حالة " "التثبيت." #: src/exm-window.c:257 msgid "_Install Anyway" msgstr "_تثبيت على اي حال" #: src/exm-window.c:258 msgid "_Go Back" msgstr "_رجوع إلى الخلف" #: src/exm-window.c:365 msgid "An error occurred." msgstr "حدث خطأ." #: src/exm-window.c:366 msgid "Details" msgstr "تفاصيل" #~ msgid "Loading…" #~ msgstr "جار التحميل…" #~ msgid "@app_title@" #~ msgstr "@app_title@" #~ msgid "HOTFIX: Fix broken 'recent' and 'popularity' search filters" #~ msgstr "" #~ "الإصلاح العاجل: إصلاح عوامل تصفية البحث \"الحديثة\" و\"الرائجة\" المعطلة" #~ msgid "Various stability and correctness fixes" #~ msgstr "إصلاحات الاستقرار والتصويب المختلفة" #~ msgid "Translation updates" #~ msgstr "تحديثات الترجمة" #~ msgid "Upgrade Assistant scroll fix" #~ msgstr "إصلاح تمرير مساعد الترقية" #~ msgid "Pixel perfect app icon" #~ msgstr "بكسل أيقونة التطبيق المثالي" #~ msgid "Official snap support" #~ msgstr "دعم سناب الرسمي" #~ msgid "Improved error log generation" #~ msgstr "تحسين إنشاء سجل الأخطاء" #~ msgid "Fully adaptive mobile-friendly user interface" #~ msgstr "واجهة مستخدم متوافقة تماما مع الأجهزة المحمولة" #~ msgid "Paginated search results" #~ msgstr "نتائج البحث المرقّمة" #~ msgid "Upgrade Assistant for checking extension compatibility" #~ msgstr "مساعد الترقية للتحقق من توافق الإضافات" #~ msgid "Unsupported extensions are hidden by default" #~ msgstr "يتم إخفاء الإضافات غير المتوافقة بشكل افتراضي" #~ msgid "Overhauled error and crash reporting" #~ msgstr "الإبلاغ عن الأخطاء والأعطال التي تم إصلاحها" #~ msgid "Full-screen image viewer" #~ msgstr "عارض الصور بملء الشاشة" #~ msgid "Handles new gnome-extensions:// URI scheme" #~ msgstr "يتعامل مع مخطط URI gnome-extensions:// الجديد" #~ msgid "Randomised extension suggestions" #~ msgstr "اقتراحات الإضافات العشوائية" #~ msgid "Performance and stability" #~ msgstr "الأداء والاستقرار" #~ msgid "Various bug fixes" #~ msgstr "إصلاحات الأخطاء المختلفة" #~ msgid "Remove release notes dialog" #~ msgstr "إزالة مربع حوار ملاحظات الإصدار" #~ msgid "Fix special characters in installed extension listings" #~ msgstr "إصلاح الأحرف الخاصة في قائمة الإضافات المثبتة" #~ msgid "The second feature update to extension-manager. Highlights include:" #~ msgstr "تحديث الميزات الثاني لمدير الإضافة. ومن أبرز ما جاء فيها:" #~ msgid "View comments and reviews" #~ msgstr "عرض التعليقات والمراجعات" #~ msgid "Support for in-app updates" #~ msgstr "دعم التحديثات داخل التطبيق" #~ msgid "Better handling errors and out-of-date extensions" #~ msgstr "معالجة أفضل للأخطاء والإضافات القديمة" #~ msgid "Allow installing 'unsupported' extensions" #~ msgstr "السماح بتثبيت إضافات \"غير مدعومة\"" #~ msgid "Display release notes on first run" #~ msgstr "عرض ملاحظات الإصدار عند التشغيل الأول" #~ msgid "New app icon" #~ msgstr "أيقونة التطبيق الجديد" #~ msgid "Optionally sort extensions by enabled status" #~ msgstr "اختياريا فرز الإضافات حسب حالة التمكين" #~ msgid "Fix special characters in search results" #~ msgstr "إصلاح الأحرف الخاصة في نتائج البحث" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "" #~ "يعمل على إصلاح العطل الذي يحدث أحيانًا أثناء إلغاء تثبيت إحدى الإضافات" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "أول تحديث للميزة لمدير الإضافة. ومن أبرز ما جاء فيها:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "مظهر داكن ودعم لتجاوز نظام ألوان النظام" #~ msgid "Shows screenshots in extension listings" #~ msgstr "يظهر لقطات في قوائم الإضافة" #~ msgid "Shell version compatibility check" #~ msgstr "التحقق من توافق إصدار شل" #~ msgid "Localised into seven languages" #~ msgstr "مترجمة إلى سبع لغات" #~ msgid "Sort search results" #~ msgstr "فرز نتائج البحث" #~ msgid "Global extension on/off toggle" #~ msgstr "تبديل تشغيل / إيقاف الإضافة العام" #~ msgid "Displays user and system extensions separately" #~ msgstr "يعرض إضافات المستخدم والنظام بشكل منفصل" #~ msgid "Extension Manager (Development)" #~ msgstr "مدير الإضافة (التطوير)" extension-manager-0.5.0/po/ca.po000066400000000000000000000337761457631363100165320ustar00rootroot00000000000000# Catalan translations for extension-manager package. # Copyright (C) 2022 THE extension-manager'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # Automatically generated as es, copied and adapted as ca, 2022. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2022-01-27 13:24+0100\n" "Last-Translator: Ícar N. S. \n" "Language-Team: none\n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.0.1\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "Gestor d'extensions" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 #, fuzzy #| msgid "A utility for managing GNOME Shell Extensions" msgid "Manage GNOME Shell Extensions" msgstr "Una utilitat per gestionar les extensions del GNOME Shell" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 #, fuzzy #| msgid "Extension Manager" msgid "extension;manager;shell;" msgstr "Gestor d'extensions" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 #, fuzzy #| msgid "A utility for managing GNOME Shell Extensions" msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "Una utilitat per gestionar les extensions del GNOME Shell" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "Una utilitat per navegar i instal·lar les extensions del GNOME Shell." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "Característiques:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "Explora extensions.gnome.org dins de l'aplicació" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "Gestiones les extensions que ja tens instal·lades" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "Una utilitat per gestionar les extensions del GNOME Shell" #: src/exm-application.c:175 #, fuzzy #| msgid "A utility for managing GNOME Shell Extensions" msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "Una utilitat per gestionar les extensions del GNOME Shell" #: src/exm-application.c:177 msgid "translator-credits" msgstr "Ícar N. S. " #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "Cerca extensions" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "" "Introduïu una paraula clau per cercar a «extensions.gnome.org» extensions " "del GNOME Shell." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "" #: src/exm-browse-page.blp:31 #, fuzzy #| msgid "Downloads" msgctxt "Sort search results" msgid "Downloads" msgstr "Baixades" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "Recent" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "Nom" #: src/exm-browse-page.blp:61 msgid "_Load More Results" msgstr "" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "No s'ha trobat cap resultat" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "" #: src/exm-comment-dialog.blp:37 msgid "Loading Comments" msgstr "" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "S'ha produït un error" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "" #: src/exm-detail-view.blp:106 #, fuzzy #| msgid "See Details" msgid "Loading Details" msgstr "Vegeu els detalls" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "Descripció" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "Enllaços" #: src/exm-detail-view.blp:232 #, fuzzy #| msgid "Project Homepage" msgid "Homepage" msgstr "Pàgina principal del projecte" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "Visualitza a les extensions" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "" #: src/exm-detail-view.blp:319 msgid "_Show All Reviews" msgstr "" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "" #: src/exm-error-dialog.blp:29 msgid "An unexpected error occurred in Extension Manager." msgstr "" #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 msgid "_Copy to Clipboard" msgstr "" #: src/exm-error-dialog.blp:64 msgid "_New Issue" msgstr "" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "" #: src/exm-error-dialog.c:179 msgid "Please open a new issue and attach the following information:" msgstr "" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "" #: src/exm-extension-row.blp:58 #, fuzzy #| msgid "This extension is incompatible with your current version of GNOME." msgid "This extension is incompatible with your current version of GNOME" msgstr "" "Aquesta extensió és incompatible amb la vostra versió actual del GNOME." #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "Vegeu els detalls" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "Elimina" #: src/exm-info-bar.blp:13 #, fuzzy #| msgid "Downloads" msgctxt "Number of downloads" msgid "Downloads" msgstr "Baixades" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "No compatible" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "" "Aquesta extensió és incompatible amb la vostra versió actual del GNOME." #: src/exm-install-button.c:115 msgid "Install" msgstr "Instal·la" #: src/exm-install-button.c:120 #, fuzzy #| msgid "Installed" msgctxt "State" msgid "Installed" msgstr "Instal·lat" #: src/exm-installed-page.blp:33 #, fuzzy #| msgid "System Extensions" msgid "Use Extensions" msgstr "Extensions del sistema" #: src/exm-installed-page.blp:34 #, fuzzy #| msgid "Performance and stability" msgid "Extensions can cause performance and stability issues." msgstr "Rendiment i estabilitat" #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "Extensions instal·lades per l'usuari" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "Extensions del sistema" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "" msgstr[1] "" #: src/exm-installed-page.c:340 msgid "Browse" msgstr "Navega" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "" #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 #, fuzzy #| msgid "Displays user and system extensions separately" msgid "There are no system extensions installed." msgstr "Mostra les extensions d'usuari i sistema per separat" #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "" #: src/exm-upgrade-assistant.blp:47 msgid "_Check Compatibility" msgstr "" #: src/exm-upgrade-assistant.c:176 #, fuzzy, c-format #| msgid "Search for extensions" msgid "Checked %d/%d Extensions" msgstr "Cerca extensions" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" #: src/exm-upgrade-assistant.c:512 #, fuzzy #| msgid "Unsupported" msgid "Supported" msgstr "No compatible" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "" #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "" #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" #: src/exm-window.blp:42 msgid "Main Menu" msgstr "" #: src/exm-window.blp:55 #, fuzzy #| msgid "Installed" msgctxt "Navigation" msgid "_Installed" msgstr "Instal·lat" #: src/exm-window.blp:64 #, fuzzy #| msgid "Browse" msgctxt "Navigation" msgid "_Browse" msgstr "Navega" #: src/exm-window.blp:102 msgid "Sort _Enabled First" msgstr "" #: src/exm-window.blp:103 #, fuzzy #| msgid "Unsupported" msgid "_Show Unsupported" msgstr "No compatible" #: src/exm-window.blp:106 msgid "_Upgrade Assistant" msgstr "" #: src/exm-window.blp:107 #, fuzzy #| msgid "About Extension Manager" msgid "_About Extension Manager" msgstr "Quant al gestor d'extensions" #: src/exm-window.c:179 #, fuzzy #| msgid "User-Installed Extensions" msgid "Uninstall Extension?" msgstr "Extensions instal·lades per l'usuari" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" #: src/exm-window.c:183 msgid "_No" msgstr "" #: src/exm-window.c:184 msgid "_Yes" msgstr "" #: src/exm-window.c:253 #, fuzzy #| msgid "Supported Versions" msgid "Unsupported Extension" msgstr "Versions compatibles" #: src/exm-window.c:254 msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" #: src/exm-window.c:257 #, fuzzy #| msgid "Install" msgid "_Install Anyway" msgstr "Instal·la" #: src/exm-window.c:258 msgid "_Go Back" msgstr "" #: src/exm-window.c:365 #, fuzzy #| msgid "An Error Occurred" msgid "An error occurred." msgstr "S'ha produït un error" #: src/exm-window.c:366 #, fuzzy #| msgid "See Details" msgid "Details" msgstr "Vegeu els detalls" #~ msgid "Loading…" #~ msgstr "Carregant…" #~ msgid "Matthew Jakeman" #~ msgstr "Matthew Jakeman" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "" #~ "Corregeix una fallada que de vegades ocorre quan es desinstal·la una " #~ "extensió" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "La primera actualització de la funció al gestor d'extensions. Els " #~ "ressaltats inclouen:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "Tema fosc i suport per substituir l'esquema de color del sistema" #~ msgid "Shows screenshots in extension listings" #~ msgstr "Mostra les captures de pantalla als llistats d'extensions" #~ msgid "Shell version compatibility check" #~ msgstr "Comprovació de compatibilitat de la versió del Shell" #~ msgid "Localised into seven languages" #~ msgstr "Traduït en més de set idiomes" #~ msgid "Sort search results" #~ msgstr "Ordena els resultats de la cerca" #~ msgid "Global extension on/off toggle" #~ msgstr "Activa/desactiva les extensions globalment" #~ msgid "Colour Scheme Preference" #~ msgstr "Preferències de l'esquema de colors" #~ msgid "" #~ "Whether to follow the system colour scheme or force either light or dark " #~ "mode." #~ msgstr "" #~ "Si s'ha de seguir l'esquema de color del sistema o forçar el mode clar o " #~ "fosc." #~ msgid "" #~ "A very simple tool for browsing, downloading, and managing GNOME shell " #~ "extensions." #~ msgstr "" #~ "Una eina molt senzilla per navegar, descarregar i gestionar les " #~ "extensions del Shell del GNOME." #~ msgid "e.g. \"Blur my Shell\"" #~ msgstr "p. ex. «Blur my Shell»" #~ msgid "Popularity" #~ msgstr "Popularitat" #~ msgid "Theme" #~ msgstr "Tema" #~ msgid "Follow System" #~ msgstr "Segueix el sistema" #~ msgid "Light" #~ msgstr "Clar" #~ msgid "Dark" #~ msgstr "Fosc" #~ msgid "Keyboard Shortcuts" #~ msgstr "Dreceres de teclat" #~ msgid "Are you sure you want to uninstall?" #~ msgstr "Confirmes que vols desinstal·lar-la?" #~ msgctxt "shortcut window" #~ msgid "General" #~ msgstr "General" #~ msgctxt "shortcut window" #~ msgid "Show Shortcuts" #~ msgstr "Mostra les dreceres" #~ msgctxt "shortcut window" #~ msgid "Quit" #~ msgstr "Surt" extension-manager-0.5.0/po/cs.po000066400000000000000000000377071457631363100165520ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # Vojtěch Perník , 2022. # vikdevelop https://github.com/vikdevelop # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2022-02-09 20:48+0100\n" "Last-Translator: vikdevelop https://github.com/vikdevelop\n" "Language-Team: Czech\n" "Language: cs_CZ\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: Poedit 3.3.1\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "Správce rozšíření" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 #, fuzzy #| msgid "A utility for managing GNOME Shell Extensions" msgid "Manage GNOME Shell Extensions" msgstr "Jednoduchý správce rozšíření GNOME Shellu" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 #, fuzzy #| msgid "Extension Manager" msgid "extension;manager;shell;" msgstr "Správce rozšíření" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 #, fuzzy #| msgid "Browse, install, and manage GNOME Shell Extensions." msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "Procházet, instalovat a spravovat rozšíření GNOME Shellu." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "" "Jednoduchá aplikace, jež vám usnadní procházení a instalaci rozšíření GNOME " "Shellu." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "Funkce:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "Procházejte web extensions.gnome.org přímo v aplikaci" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "Spravujte rozšíření, která již máte nainstalovaná" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "Jednoduchý správce rozšíření GNOME Shellu" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "Procházet, instalovat a spravovat rozšíření GNOME Shellu." #: src/exm-application.c:177 #, fuzzy msgid "translator-credits" msgstr "" "Vojtěch Perník \n" "vikdevelop https://github.com/vikdevelop" #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "Hledat rozšíření" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "" "Zadejte klíčové slovo k vyhledávání rozšíření GNOME Shellu na „extensions." "gnome.org“." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "" #: src/exm-browse-page.blp:31 #, fuzzy #| msgid "Downloads" msgctxt "Sort search results" msgid "Downloads" msgstr "Počet stažení" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "Poslední vydané" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "Jméno" #: src/exm-browse-page.blp:61 #, fuzzy #| msgid "Load More Results" msgid "_Load More Results" msgstr "Získat více výsledků" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "Nebyly nalezeny žádné výsledky" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "např. “%s”" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "Komentáře" #: src/exm-comment-dialog.blp:37 #, fuzzy #| msgid "Comments" msgid "Loading Comments" msgstr "Komentáře" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "Nastala chyba" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "Přiblížit" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "Oddálit" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "Zpět na zobrazení" #: src/exm-detail-view.blp:106 #, fuzzy #| msgid "Details" msgid "Loading Details" msgstr "Podrobnosti" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "Zvětšit obrázek" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "Popis" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "" #: src/exm-detail-view.blp:232 msgid "Homepage" msgstr "" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "Zobrazit na webu" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "Uživatelské recenze" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "" #: src/exm-detail-view.blp:319 #, fuzzy #| msgid "Show All Reviews" msgid "_Show All Reviews" msgstr "Zobrazit věechny recenze" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "Nahlásit chybu" #: src/exm-error-dialog.blp:29 #, fuzzy #| msgid "" #| "An unexpected error occurred in Extension Manager. Please open a new " #| "issue and attach the following information:" msgid "An unexpected error occurred in Extension Manager." msgstr "" "Ve Správci rozšíření došlo k neočekávané chybě. Otevřete prosím nový problém " "a připojte následující informace:" #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 #, fuzzy #| msgid "Copy to Clipboard" msgid "_Copy to Clipboard" msgstr "Zkopírovat do schránky" #: src/exm-error-dialog.blp:64 #, fuzzy #| msgid "New Issue" msgid "_New Issue" msgstr "Nový problém" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "Zkopírováno" #: src/exm-error-dialog.c:179 #, fuzzy #| msgid "" #| "An unexpected error occurred in Extension Manager. Please open a new " #| "issue and attach the following information:" msgid "Please open a new issue and attach the following information:" msgstr "" "Ve Správci rozšíření došlo k neočekávané chybě. Otevřete prosím nový problém " "a připojte následující informace:" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "Otevřít předvolby rozšíření" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "Při načítání tohoto rozšíření došlo k chybě" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "Toto rozšíření je nekompatibilní s vaší verzí prostředí GNOME" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "Je dostupná novější verze tohoto rozšíření" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "Verze" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "Chyba" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "Zobrazit podrobnosti" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "Odinstalovat" #: src/exm-info-bar.blp:13 #, fuzzy #| msgid "Downloads" msgctxt "Number of downloads" msgid "Downloads" msgstr "Počet stažení" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "Nepodporované" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "Toto rozšíření není kompatibilní s vaší současnou verzí GNOME." #: src/exm-install-button.c:115 msgid "Install" msgstr "Nainstalovat" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "Nainstalované" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "Použít rozšíření" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "Rozšíření mohou způsobit problémy s výkonem a stabilitou." #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "Uživatelská rozšíření" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "Systémová rozšíření" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "Aktualizace jsou k dispozici" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "Odhlásit se" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "Jedno rozšíření bude aktualizováno po příštím přihlášení." msgstr[1] "%d rozšíření bude aktulizováno po příštím přihlášení." msgstr[2] "%d rozšíření bude aktulizováno po příštím přihlášení." #: src/exm-installed-page.c:340 msgid "Browse" msgstr "Procházet" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "Nejsou nainstalována žádná uživatelská rozšíření." #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "Nejsou nainstalována žádná systémová rozšíření." #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "Asistent pro povýšení" #: src/exm-upgrade-assistant.blp:47 #, fuzzy #| msgid "Check Compatibility" msgid "_Check Compatibility" msgstr "Zkontrolovat kompatibilitu" #: src/exm-upgrade-assistant.c:176 #, fuzzy, c-format #| msgid "Search for extensions" msgid "Checked %d/%d Extensions" msgstr "Hledat rozšíření" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" "GNOME %s podporuje %d z %d rozšíření aktuálně nainstalovaných " "v systému." #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "Podporováno" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "Existuje kompatibilní verze tohoto rozšíření." #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "Žádná kompatibilní verze tohoto rozšíření neexistuje." #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "Neznámé" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" "Toto rozšíření není hostováno na webu extensions.gnome.org. Jeho " "kompatibilitu nelze zaručit." #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" "Právě používáte GNOME %s. Níže vyberte verzi prostředí GNOME a " "zkontrolujte, zda budou vaše rozšíření nadále k dispozici." #: src/exm-window.blp:42 msgid "Main Menu" msgstr "" #: src/exm-window.blp:55 #, fuzzy #| msgctxt "Navigation" #| msgid "Installed" msgctxt "Navigation" msgid "_Installed" msgstr "Nainstalováno" #: src/exm-window.blp:64 #, fuzzy #| msgid "Browse" msgctxt "Navigation" msgid "_Browse" msgstr "Procházet" #: src/exm-window.blp:102 #, fuzzy #| msgid "Sort Enabled First" msgid "Sort _Enabled First" msgstr "Třídění povoleno jako první" #: src/exm-window.blp:103 #, fuzzy #| msgid "Show Unsupported" msgid "_Show Unsupported" msgstr "Zobrazit nepodporované" #: src/exm-window.blp:106 #, fuzzy #| msgid "Upgrade Assistant" msgid "_Upgrade Assistant" msgstr "Asistent pro povýšení" #: src/exm-window.blp:107 #, fuzzy #| msgid "About Extension Manager" msgid "_About Extension Manager" msgstr "O Správci rozšíření" #: src/exm-window.c:179 #, fuzzy #| msgid "User-Installed Extensions" msgid "Uninstall Extension?" msgstr "Uživatelská rozšíření" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" #: src/exm-window.c:183 msgid "_No" msgstr "" #: src/exm-window.c:184 msgid "_Yes" msgstr "" #: src/exm-window.c:253 #, fuzzy #| msgid "Use Extensions" msgid "Unsupported Extension" msgstr "Použít rozšíření" #: src/exm-window.c:254 #, fuzzy #| msgid "" #| "This extension does not support your GNOME Shell version.\n" #| "Would you like to install anyway?" msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "Toto rozšíření nepodporuje vaši verzi prostředí GNOME Shell.\n" "Chcete jej přesto nainstalovat?" #: src/exm-window.c:257 #, fuzzy #| msgid "Install" msgid "_Install Anyway" msgstr "Nainstalovat" #: src/exm-window.c:258 msgid "_Go Back" msgstr "" #: src/exm-window.c:365 msgid "An error occurred." msgstr "Nastala chyba." #: src/exm-window.c:366 msgid "Details" msgstr "Podrobnosti" #~ msgid "Loading…" #~ msgstr "Načítání…" #~ msgid "@app_title@" #~ msgstr "Správce rozšíření" #~ msgid "Fully adaptive mobile-friendly user interface" #~ msgstr "Plně adaptivní uživatelské rozhraní pro mobilní zařízení" #~ msgid "Performance and stability" #~ msgstr "Zlepšení výkonu a stability" #~ msgid "Translation updates" #~ msgstr "Aktualizace překladů" #~ msgid "Various bug fixes" #~ msgstr "Opravy různých chyb" #~ msgid "Remove release notes dialog" #~ msgstr "Odstraněn dialog s poznámkami k vydání" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "Opravuje občasné padání aplikace při odinstalaci rozšíření" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "První aktualizace s novými funkcemi. Mezi hlavní novinky patří:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "" #~ "Tmavý režim a podpora pro jeho upřednostnění před barevným schématem " #~ "systému" #~ msgid "Shows screenshots in extension listings" #~ msgstr "Zobrazování snímků obrazovky v seznamu rozšíření" #~ msgid "Shell version compatibility check" #~ msgstr "Kontrola kompatibility s aktuální verzí Shellu" #~ msgid "Localised into seven languages" #~ msgstr "Přeloženo do sedmi jazyků" #~ msgid "Sort search results" #~ msgstr "Filtrování výsledků vyhledávání" #~ msgid "Global extension on/off toggle" #~ msgstr "Globální přepínač pro všechna rozšíření najednou" #~ msgid "Displays user and system extensions separately" #~ msgstr "Zobrazení uživatelských a systémových rozšíření zvlášť" #~ msgid "Extension Manager (Development)" #~ msgstr "Správce rozšíření (vývojářská verze)" #~ msgid "Popularity" #~ msgstr "Popularita" #~ msgid "Supported Versions" #~ msgstr "Podporované verze" #~ msgctxt "Navigation" #~ msgid "Browse" #~ msgstr "Procházet" #~ msgid "Theme" #~ msgstr "Téma" #~ msgid "Follow System" #~ msgstr "Podle systému" #~ msgid "Light" #~ msgstr "Světlé" #~ msgid "Dark" #~ msgstr "Tmavé" #~ msgid "Are you sure you want to uninstall?" #~ msgstr "Jste si jisti, že chcete rozšíření odinstalovat?" extension-manager-0.5.0/po/da.po000066400000000000000000000405731457631363100165240ustar00rootroot00000000000000# Danish translation of Extension Manager. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # ExponentActivity ***@***.***, 2022. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2022-04-06 08:59+0200\n" "Last-Translator: \n" "Language-Team: \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.0.1\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "Udvidelsesadministrering" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 #, fuzzy #| msgid "A utility for managing GNOME Shell Extensions" msgid "Manage GNOME Shell Extensions" msgstr "Et værktøj til at administrere GNOME Skaludvidelser" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 #, fuzzy #| msgid "Extension Manager" msgid "extension;manager;shell;" msgstr "Udvidelsesadministrering" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 #, fuzzy #| msgid "A utility for managing GNOME Shell Extensions" msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "Et værktøj til at administrere GNOME Skaludvidelser" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "Et værktøj til at gennemse og installere GNOME Skaludvidelser." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "Funktioner:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "Gennemse extensions.gnome.org inde i app'en" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "Administrer de udvidelser du allerede har installeret" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "Et værktøj til at administrere GNOME Skaludvidelser" #: src/exm-application.c:175 #, fuzzy #| msgid "A utility for managing GNOME Shell Extensions" msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "Et værktøj til at administrere GNOME Skaludvidelser" #: src/exm-application.c:177 msgid "translator-credits" msgstr "ExponentActivity" #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "Søg efter udvidelser" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "" "Indtast et nøgleord fo at søge på 'extensions.gnome.org ' efter GNOME " "Skaludvidelser." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "" #: src/exm-browse-page.blp:31 #, fuzzy #| msgid "Downloads" msgctxt "Sort search results" msgid "Downloads" msgstr "Hentninger" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "Nylig" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "Navn" #: src/exm-browse-page.blp:61 msgid "_Load More Results" msgstr "" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "Ingen Resultater Fundet" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "" #: src/exm-comment-dialog.blp:37 msgid "Loading Comments" msgstr "" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "En Fejl Opstod" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "" #: src/exm-detail-view.blp:63 #, fuzzy #| msgid "Log Out" msgid "Zoom Out" msgstr "Log Ud" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "" #: src/exm-detail-view.blp:106 #, fuzzy #| msgid "See Details" msgid "Loading Details" msgstr "Se Detaljer" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "Beskrivelse" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "Links" #: src/exm-detail-view.blp:232 #, fuzzy #| msgid "Project Homepage" msgid "Homepage" msgstr "Projekt Hjemmeside" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "Se på Extensions" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "Bruger Anmeldelser" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "" #: src/exm-detail-view.blp:319 #, fuzzy #| msgid "Show All Reviews" msgid "_Show All Reviews" msgstr "Vis alle anmeldelser" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "" #: src/exm-error-dialog.blp:29 #, fuzzy #| msgid "An error occurred while loading this extension" msgid "An unexpected error occurred in Extension Manager." msgstr "Der opstod en fejl mens udvidelsen blev indlæst" #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 msgid "_Copy to Clipboard" msgstr "" #: src/exm-error-dialog.blp:64 msgid "_New Issue" msgstr "" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "" #: src/exm-error-dialog.c:179 msgid "Please open a new issue and attach the following information:" msgstr "" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "Der opstod en fejl mens udvidelsen blev indlæst" #: src/exm-extension-row.blp:58 #, fuzzy #| msgid "This extension is incompatible with your current version of GNOME." msgid "This extension is incompatible with your current version of GNOME" msgstr "Denne udvidelse er inkompatibel med din nuværende version af GNOME." #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "En nyere version af denne udvidelse er tilgængelig" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "Version" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "Fejl" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "Se Detaljer" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "Fjern" #: src/exm-info-bar.blp:13 #, fuzzy #| msgid "Downloads" msgctxt "Number of downloads" msgid "Downloads" msgstr "Hentninger" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "Ikke Understøttet" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "Denne udvidelse er inkompatibel med din nuværende version af GNOME." #: src/exm-install-button.c:115 msgid "Install" msgstr "Installér" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "Installeret" #: src/exm-installed-page.blp:33 #, fuzzy #| msgid "System Extensions" msgid "Use Extensions" msgstr "Systeminstallerede Udvidelser" #: src/exm-installed-page.blp:34 #, fuzzy #| msgid "Performance and stability" msgid "Extensions can cause performance and stability issues." msgstr "Ydelse og stabilitet" #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "Brugerinstallerede Udvidelser" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "Systeminstallerede Udvidelser" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "Opdateringer er tilgængelige" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "Log Ud" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "En udvidelse vil blive opdateret når du logger ind igen." msgstr[1] "%d udvidelser vil blive opdateret når du logger ind igen." #: src/exm-installed-page.c:340 #, fuzzy #| msgctxt "Navigation" #| msgid "Browse" msgid "Browse" msgstr "Gennemse" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "" #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 #, fuzzy #| msgid "Displays user and system extensions separately" msgid "There are no system extensions installed." msgstr "Vis bruger- og systemudvidelser seperat" #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "" #: src/exm-upgrade-assistant.blp:47 msgid "_Check Compatibility" msgstr "" #: src/exm-upgrade-assistant.c:176 #, fuzzy, c-format #| msgid "Search for extensions" msgid "Checked %d/%d Extensions" msgstr "Søg efter udvidelser" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" #: src/exm-upgrade-assistant.c:512 #, fuzzy #| msgid "Unsupported" msgid "Supported" msgstr "Ikke Understøttet" #: src/exm-upgrade-assistant.c:514 #, fuzzy #| msgid "A newer version of this extension is available" msgid "A compatible version of the extension exists." msgstr "En nyere version af denne udvidelse er tilgængelig" #: src/exm-upgrade-assistant.c:518 #, fuzzy #| msgid "A newer version of this extension is available" msgid "No compatible version of the extension exists." msgstr "En nyere version af denne udvidelse er tilgængelig" #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" #: src/exm-window.blp:42 msgid "Main Menu" msgstr "" #: src/exm-window.blp:55 #, fuzzy #| msgctxt "Navigation" #| msgid "Installed" msgctxt "Navigation" msgid "_Installed" msgstr "Installeret" #: src/exm-window.blp:64 #, fuzzy #| msgctxt "Navigation" #| msgid "Browse" msgctxt "Navigation" msgid "_Browse" msgstr "Gennemse" #: src/exm-window.blp:102 #, fuzzy #| msgid "Sort Enabled First" msgid "Sort _Enabled First" msgstr "Sortér først efter aktiverede" #: src/exm-window.blp:103 #, fuzzy #| msgid "Unsupported" msgid "_Show Unsupported" msgstr "Ikke Understøttet" #: src/exm-window.blp:106 msgid "_Upgrade Assistant" msgstr "" #: src/exm-window.blp:107 #, fuzzy #| msgid "About Extension Manager" msgid "_About Extension Manager" msgstr "Om Udvidelsesadministrering" #: src/exm-window.c:179 #, fuzzy #| msgid "User-Installed Extensions" msgid "Uninstall Extension?" msgstr "Brugerinstallerede Udvidelser" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" #: src/exm-window.c:183 msgid "_No" msgstr "" #: src/exm-window.c:184 msgid "_Yes" msgstr "" #: src/exm-window.c:253 #, fuzzy #| msgid "Supported Versions" msgid "Unsupported Extension" msgstr "Understøttede Versioner" #: src/exm-window.c:254 #, fuzzy #| msgid "" #| "This extension does not support your GNOME Shell version.\n" #| "Would you like to install anyway?" msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "Denne udvidelse understøtter ikke din GNOME Skalversion.\n" "Vil du installerer den alligevel?" #: src/exm-window.c:257 #, fuzzy #| msgid "Install" msgid "_Install Anyway" msgstr "Installér" #: src/exm-window.c:258 msgid "_Go Back" msgstr "" #: src/exm-window.c:365 #, fuzzy #| msgid "An Error Occurred" msgid "An error occurred." msgstr "En Fejl Opstod" #: src/exm-window.c:366 #, fuzzy #| msgid "See Details" msgid "Details" msgstr "Se Detaljer" #~ msgid "Loading…" #~ msgstr "Indlæser…" #~ msgid "@app_title@" #~ msgstr "@app_title@" #~ msgid "The second feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Den første funktionsodpatering til Udvidelsesadministrering. " #~ "Højdepunkterne inkluderer:" #~ msgid "View comments and reviews" #~ msgstr "Se kommentarer og anmeldelser" #~ msgid "Support for in-app updates" #~ msgstr "Understøttelse af opdateringer i app'en" #~ msgid "Better handling errors and out-of-date extensions" #~ msgstr "Bedre håndtering af fejl og forældede udvidelser" #~ msgid "Allow installing 'unsupported' extensions" #~ msgstr "Tillad installtion af \"ikke-understøttede\" udvidelser" #~ msgid "Display release notes on first run" #~ msgstr "Vis udgivelsesnoter første gang programmet åbnes" #~ msgid "New app icon" #~ msgstr "Nyt app-ikon" #~ msgid "Optionally sort extensions by enabled status" #~ msgstr "Mulighed for at sortere udvidelser efter om de er aktiverede" #~ msgid "Translation updates" #~ msgstr "Oversættelses opdateringer" #~ msgid "Fix special characters in search results" #~ msgstr "Fiks specielle tegn i søgeresultater" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "" #~ "Fikser et crash der nogle gange opstår når man afinstallerer en udvidelse" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Den første funktionsodpatering til Udvidelsesadministrering. Højdepunkter " #~ "inkluderer:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "Mørkt tema og understøttelse af at omgå systemets farveskema" #~ msgid "Shows screenshots in extension listings" #~ msgstr "Vis skærmbilleder i udvidelses kataloget" #~ msgid "Shell version compatibility check" #~ msgstr "Skalversion kompatibilitetstjek" #~ msgid "Localised into seven languages" #~ msgstr "Oversat til syv sprog" #~ msgid "Sort search results" #~ msgstr "Sortér søgeresultater" #~ msgid "Global extension on/off toggle" #~ msgstr "Global tænd/sluk af udvidelser" #~ msgid "Extension Manager (Development)" #~ msgstr "Udvidelsesadministrering (Udvikling)" #~ msgid "" #~ "A very simple tool for browsing, downloading, and managing GNOME shell " #~ "extensions." #~ msgstr "" #~ "Et meget simpelt værktøj til at gennemse, hente og administrerer GNOME " #~ "skaludvidelser." #~ msgid "e.g. \"Blur my Shell\"" #~ msgstr "f.eks. \"Blur my Shell\"" #~ msgid "Popularity" #~ msgstr "Popularitet" #~ msgid "Release Notes" #~ msgstr "Udgivelsesnoter" #~ msgid "Theme" #~ msgstr "Tema" #~ msgid "Follow System" #~ msgstr "Følg System" #~ msgid "Light" #~ msgstr "Lys" #~ msgid "Dark" #~ msgstr "Mørk" #~ msgid "Are you sure you want to uninstall?" #~ msgstr "Er du sikker på du vil afinstallere?" #~ msgid "What's New" #~ msgstr "Hvad er Nyt" #~ msgid "View Release Notes" #~ msgstr "Se Udgivelsesnoter" #, c-format #~ msgid "" #~ "This is your first time using Extension Manager %s.\n" #~ "Would you like to see the release notes?" #~ msgstr "" #~ "Det er første gang du bruger Udvidelsesadministrering %s.\n" #~ "Vil du se udgivelsesnoterne?" #~ msgid "Matthew Jakeman" #~ msgstr "Matthew Jakeman" #~ msgid "Colour Scheme Preference" #~ msgstr "Farveskema Præferance" #~ msgid "" #~ "Whether to follow the system colour scheme or force either light or dark " #~ "mode." #~ msgstr "" #~ "Hvorvidt systemets farveskema skal følges eller om enten lyst eller mørkt " #~ "tema skal gennemtvinges." #~ msgid "Keyboard Shortcuts" #~ msgstr "Tastatur Genveje" #~ msgctxt "shortcut window" #~ msgid "General" #~ msgstr "Generelt" #~ msgctxt "shortcut window" #~ msgid "Show Shortcuts" #~ msgstr "Vis Genveje" #~ msgctxt "shortcut window" #~ msgid "Quit" #~ msgstr "Afslut" extension-manager-0.5.0/po/de.po000066400000000000000000000424661457631363100165330ustar00rootroot00000000000000# German translations for extension-manager package. # Copyright (C) 2022 Matthew Jakeman # This file is distributed under the same license as the extension-manager package. # Antifallobst , 2022. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2023-11-16 15:35+0100\n" "Last-Translator: Gabriel Brand \n" "Language-Team: \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.3.1\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "Erweiterungs-Manager" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 msgid "Manage GNOME Shell Extensions" msgstr "GNOME-Shell-Erweiterungen verwalten" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 #, fuzzy #| msgid "extension;manager;" msgid "extension;manager;shell;" msgstr "extension;manager;" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "Suchen, installieren und verwalten Sie GNOME-Shell-Erweiterungen" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "" "Ein Programm zum Suchen und Installieren von GNOME-Shell-Erweiterungen." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "Funktionen:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "Durchstöbern Sie extensions.gnome.org direkt in der Anwendung" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "Verwalten Sie bereits installierte Erweiterungen" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "Ein Programm zum Verwalten von GNOME-Shell-Erweiterungen" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "Suchen, installieren und verwalten Sie GNOME-Shell-Erweiterungen." #: src/exm-application.c:177 msgid "translator-credits" msgstr "" "Lauri Jouaux \n" "Gabriel Brand " #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "Suchen Sie nach Erweiterungen" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "" "Geben Sie einen Suchbegriff ein, um auf »extensions.gnome.org« nach GNOME-" "Shell-Erweiterungen zu suchen." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "Relevanz" #: src/exm-browse-page.blp:31 #, fuzzy #| msgid "Downloads" msgctxt "Sort search results" msgid "Downloads" msgstr "Downloads" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "Aktualität" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "Name" #: src/exm-browse-page.blp:61 msgid "_Load More Results" msgstr "Weitere Ergebnisse _laden" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "Keine Ergebnisse gefunden" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "z.B. »%s«" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "Kommentare" #: src/exm-comment-dialog.blp:37 #, fuzzy #| msgid "Comments" msgid "Loading Comments" msgstr "Kommentare" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "Ein Fehler ist aufgetreten" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "Vergrößern" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "Verkleinern" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "Zurück zur Detailansicht" #: src/exm-detail-view.blp:106 #, fuzzy #| msgid "Details" msgid "Loading Details" msgstr "Details" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "Bild vergrößern" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "Beschreibung" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "Links" #: src/exm-detail-view.blp:232 msgid "Homepage" msgstr "Homepage" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "Auf »GNOME Extensions« anzeigen" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "Benutzerrezensionen" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "Es sind keine Kommentare vorhanden." #: src/exm-detail-view.blp:319 msgid "_Show All Reviews" msgstr "Alle Rezensionen _anzeigen" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "Fehlerbericht" #: src/exm-error-dialog.blp:29 msgid "An unexpected error occurred in Extension Manager." msgstr "Ein unerwarteter Fehler ist im Erweiterungs-Manager aufgetreten." #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 msgid "_Copy to Clipboard" msgstr "In die Zwischenablage _kopieren" #: src/exm-error-dialog.blp:64 msgid "_New Issue" msgstr "_Neues Ticket" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "Kopiert" #: src/exm-error-dialog.c:179 msgid "Please open a new issue and attach the following information:" msgstr "" "Bitte öffnen Sie ein neues Ticket und hängen Sie folgende Information an:" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" "Sie verwenden eine Drittanbieterversion von Erweiterungs-Manager. Bitte " "kontaktieren Sie zuerst den Paketanbieter (%s), " "bevor Sie ein Problem melden. Bitte fügen Sie die folgenden Informationen " "bei:" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "Einstellungen der Erweiterung öffnen" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "Beim Laden dieser Erweiterung ist ein Fehler aufgetreten" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "Diese Erweiterung ist inkompatibel mit ihrer aktuellen GNOME-Version" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "Eine neuere Version dieser Erweiterung ist verfügbar" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "Version" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "Fehler" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "Details anzeigen" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "Entfernen" #: src/exm-info-bar.blp:13 #, fuzzy #| msgid "Downloads" msgctxt "Number of downloads" msgid "Downloads" msgstr "Downloads" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "Nicht unterstützt" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "Diese Erweiterung ist inkompatibel mit ihrer aktuellen GNOME-Version." #: src/exm-install-button.c:115 msgid "Install" msgstr "Installieren" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "Installiert" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "Erweiterungen verwenden" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "Erweiterungen können Leistungs- und Stabilitätsprobleme verursachen." #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "Benutzerinstallierte Erweiterungen" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "Systemerweiterungen" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "Updates sind verfügbar" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "Abmelden" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "Eine Erweiterung wird bei der nächsten Anmeldung aktualisiert." msgstr[1] "%d Erweiterungen werden bei der nächsten Anmeldung aktualisiert." #: src/exm-installed-page.c:340 msgid "Browse" msgstr "Suchen" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "Es sind keine Benutzererweiterungen installiert." #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "Es sind keine Systemerweiterungen installiert." #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "Upgrade-Assistent" #: src/exm-upgrade-assistant.blp:47 msgid "_Check Compatibility" msgstr "Kompatibilität _überprüfen" #: src/exm-upgrade-assistant.c:176 #, fuzzy, c-format #| msgid "Checked %d/%d extensions" msgid "Checked %d/%d Extensions" msgstr "%d/%d Erweiterungen überprüft" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "%d%% Kompatibel" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" "GNOME %s unterstützt %d von %d der derzeit auf dem System " "installierten Erweiterungen." #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "Unterstützt" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "Es gibt eine kompatible Version der Erweiterung." #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "Es gibt keine kompatible Version der Erweiterung." #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "Unbekannt" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" "Diese Erweiterung wird nicht auf extensions.gnome.org gehostet. Ihre " "Kompatibilität kann nicht bestimmt werden." #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" "Sie verwenden derzeit GNOME %s. Wählen Sie unten eine Version von " "GNOME aus und prüfen Sie, ob Ihre Erweiterungen weiterhin verfügbar sein " "werden." #: src/exm-window.blp:42 msgid "Main Menu" msgstr "Hauptmenü" #: src/exm-window.blp:55 msgctxt "Navigation" msgid "_Installed" msgstr "_Installiert" #: src/exm-window.blp:64 msgctxt "Navigation" msgid "_Browse" msgstr "_Suchen" #: src/exm-window.blp:102 #, fuzzy #| msgid "Sort Enabled First" msgid "Sort _Enabled First" msgstr "Aktivierte zuerst anzeigen" #: src/exm-window.blp:103 #, fuzzy #| msgid "Show Unsupported" msgid "_Show Unsupported" msgstr "Nicht unterstützte anzeigen" #: src/exm-window.blp:106 #, fuzzy #| msgid "Upgrade Assistant" msgid "_Upgrade Assistant" msgstr "Upgrade-Assistent" #: src/exm-window.blp:107 #, fuzzy #| msgid "About Extension Manager" msgid "_About Extension Manager" msgstr "Info zu Erweiterungs-Manager" #: src/exm-window.c:179 msgid "Uninstall Extension?" msgstr "Erweiterung deinstallieren?" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" "Die Merkmale und Funktionen der Erweiterung sind dann nicht mehr zugänglich. " "Sind Sie sicher, dass Sie sie deinstallieren möchten?" #: src/exm-window.c:183 msgid "_No" msgstr "_Nein" #: src/exm-window.c:184 msgid "_Yes" msgstr "_Ja" #: src/exm-window.c:253 msgid "Unsupported Extension" msgstr "Nicht unterstützte Erweiterung" #: src/exm-window.c:254 msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "Diese Erweiterung unterstützt Ihre GNOME-Shell-Version nicht. Sie kann bei " "der Installation Fehler verursachen." #: src/exm-window.c:257 msgid "_Install Anyway" msgstr "Trotzdem _installieren" #: src/exm-window.c:258 msgid "_Go Back" msgstr "_Zurückgehen" #: src/exm-window.c:365 msgid "An error occurred." msgstr "Ein Fehler ist aufgetreten." #: src/exm-window.c:366 msgid "Details" msgstr "Details" #~ msgid "Loading…" #~ msgstr "Laden…" #~ msgid "@app_title@" #~ msgstr "@app_title@" #~ msgid "HOTFIX: Fix broken 'recent' and 'popularity' search filters" #~ msgstr "" #~ "HOTFIX: Fehlerhafte Suchfilter »Aktualität« und »Beliebtheit« behoben" #~ msgid "Various stability and correctness fixes" #~ msgstr "Verschiedene Stabilitäts- und Fehlerkorrekturen" #~ msgid "Translation updates" #~ msgstr "Aktualisierte Übersetzungen" #~ msgid "Upgrade Assistant scroll fix" #~ msgstr "Upgrade-Assistent: Korrektur des Bildlaufs" #~ msgid "Pixel perfect app icon" #~ msgstr "Pixelgenaues Anwendungssymbol" #~ msgid "Official snap support" #~ msgstr "Offizielle Snap-Unterstützung" #~ msgid "Improved error log generation" #~ msgstr "Verbesserte Erstellung von Fehlerprotokollen" #~ msgid "Fully adaptive mobile-friendly user interface" #~ msgstr "Vollständig anpassbare, mobilfreundliche Benutzeroberfläche" #~ msgid "Paginated search results" #~ msgstr "Paginierte Suchergebnisse" #~ msgid "Upgrade Assistant for checking extension compatibility" #~ msgstr "" #~ "Upgrade-Assistent zur Überprüfung der Kompatibilität von Erweiterungen" #~ msgid "Unsupported extensions are hidden by default" #~ msgstr "Nicht unterstützte Erweiterungen werden standardmäßig ausgeblendet" #~ msgid "Overhauled error and crash reporting" #~ msgstr "Überarbeitete Fehler- und Absturzberichte" #~ msgid "Full-screen image viewer" #~ msgstr "Vollbild-Bildbetrachter" #~ msgid "Handles new gnome-extensions:// URI scheme" #~ msgstr "Unterstützt das neue gnome-extensions:// URI-Schema" #~ msgid "Randomised extension suggestions" #~ msgstr "Zufällige Erweiterungsvorschläge" #~ msgid "Performance and stability" #~ msgstr "Leistung und Stabilität" #~ msgid "Various bug fixes" #~ msgstr "Verschiedene Fehlerbehebungen" #~ msgid "Remove release notes dialog" #~ msgstr "Dialog für Versionshinweise entfernt" #~ msgid "Fix special characters in installed extension listings" #~ msgstr "Sonderzeichen in der Liste der installierten Erweiterungen behoben" #~ msgid "The second feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Das zweite Funktionsupdate für Erweiterungs-Manager. Höhepunkte sind:" #~ msgid "View comments and reviews" #~ msgstr "Kommentare und Rezensionen anzeigen" #~ msgid "Support for in-app updates" #~ msgstr "Unterstützung für Updates in der Anwendung" #~ msgid "Better handling errors and out-of-date extensions" #~ msgstr "Besserer Umgang mit Fehlern und veralteten Erweiterungen" #~ msgid "Allow installing 'unsupported' extensions" #~ msgstr "Installation von „nicht unterstützten“ Erweiterungen zulassen" #~ msgid "Display release notes on first run" #~ msgstr "Versionshinweise beim ersten Start anzeigen" #~ msgid "New app icon" #~ msgstr "Neues Anwendungssymbol" #~ msgid "Optionally sort extensions by enabled status" #~ msgstr "Optionales Sortieren von Erweiterungen nach Aktivierungsstatus" #~ msgid "Fix special characters in search results" #~ msgstr "Sonderzeichen in Suchergebnissen behoben" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "" #~ "Behebt einen Absturz, welcher manchmal beim Deinstallieren einer " #~ "Erweiterung auftritt" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Das erste Funktionsupdate für Erweiterungs-Manager. Höhepunkte sind:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "" #~ "Dunkles Thema und Unterstützung für das Überschreiben des " #~ "Systemfarbschemas" #~ msgid "Shows screenshots in extension listings" #~ msgstr "Bildschirmfotos im Erweitungseintrag anzeigen" #~ msgid "Shell version compatibility check" #~ msgstr "Kompatibilitätsprüfung der Shell-Version" #~ msgid "Localised into seven languages" #~ msgstr "Übersetzt in sieben Sprachen" #~ msgid "Sort search results" #~ msgstr "Suchergebnisse sortieren" #~ msgid "Global extension on/off toggle" #~ msgstr "Globaler Ein-/Ausschalter für Erweiterungen" #~ msgid "Displays user and system extensions separately" #~ msgstr "Benutzer- und Systemerweiterungen getrennt anzeigen" #~ msgid "Popularity" #~ msgstr "Beliebtheit" #~ msgid "Extension Manager (Development)" #~ msgstr "Erweiterungs-Manager (Entwicklung)" extension-manager-0.5.0/po/el.po000066400000000000000000000537431457631363100165430ustar00rootroot00000000000000# LANGUAGE translations for extension-manager package. # Copyright (C) YEAR THE extension-manager'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2024-03-16 18:50+0000\n" "Last-Translator: Dimitris Aspetakis \n" "Language-Team: Greek \n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.5-dev\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "Διαχειριστής Επεκτάσεων" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 msgid "Manage GNOME Shell Extensions" msgstr "Διαχείριση επεκτάσεων του γραφικού κελύφους GNOME" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 msgid "extension;manager;shell;" msgstr "επέκταση;διαχειριστής;γραφικό κέλυφος;" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "" "Αναζήτηση, εγκατάσταση και διαχείριση των επεκτάσεων του γραφικού κελύφους " "GNOME" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "" "Εργαλείο για την περιήγηση και την εγκατάσταση επεκτάσεων για το γραφικό " "κέλυφος GNOME." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "Χαρακτηριστικά:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "Περιηγηθείτε το extensions.gnome.org μέσα από την εφαρμογή" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "Κάντε διαχείριση των ήδη εγκατεστημένων επεκτάσεων σας" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "" "Ένα εργαλείο για την διαχείριση των επεκτάσεων του γραφικού κελύφους GNOME" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "" "Αναζήτηση, εγκατάσταση και διαχείριση των επεκτάσεων του γραφικού κελύφους " "GNOME." #: src/exm-application.c:177 msgid "translator-credits" msgstr "Καραχάλιος-Στάγκας Αθανάσιος-Νεκτάριος <1xlzgeu2y@mozmail.com>" #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "Αναζητήστε επεκτάσεις" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "" "Βάλτε μια λέξη κλειδί για να ψάξετε στο 'extensions.gnome.org' για " "επεκτάσεις για το γραφικό κέλυφος GNOME." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "Συνάφεια" #: src/exm-browse-page.blp:31 msgctxt "Sort search results" msgid "Downloads" msgstr "Λήψεις" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "Πρόσφατα" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "Όνομα" #: src/exm-browse-page.blp:61 msgid "_Load More Results" msgstr "_Φόρτωση περισσότερων αποτελεσμάτων" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "Δεν βρεθήκαν αποτελέσματα" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "π.χ. “%s”" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "Σχόλια" #: src/exm-comment-dialog.blp:37 msgid "Loading Comments" msgstr "Φόρτωση Σχολίων" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "Προέκυψε σφάλμα" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "Συγγραφέας" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "Μεγέθυνση" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "Σμίκρυνση" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "Επιστροφή στην προβολή" #: src/exm-detail-view.blp:106 msgid "Loading Details" msgstr "Φόρτωση Λεπτομερειών" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "Μεγέθυνση εικόνας" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "Περιγραφή" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "Σύνδεσμοι" #: src/exm-detail-view.blp:232 msgid "Homepage" msgstr "Αρχική Σελίδα" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "Δείτε στης Επεκτάσεις" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "Κριτικές Χρηστών" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "Δεν υπάρχουν σχόλια." #: src/exm-detail-view.blp:319 msgid "_Show All Reviews" msgstr "_Προβολή Όλων των Κριτικών" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "Αναφορά σφάλματος" #: src/exm-error-dialog.blp:29 msgid "An unexpected error occurred in Extension Manager." msgstr "Προέκυψε ένα απροσδόκητο σφάλμα στην εφαρμογή Διαχείριση Επεκτάσεων." #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 msgid "_Copy to Clipboard" msgstr "_Αντιγραφή στο Πρόχειρο" #: src/exm-error-dialog.blp:64 msgid "_New Issue" msgstr "_Νέο Θέμα" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "Αντιγραμμένο" #: src/exm-error-dialog.c:179 msgid "Please open a new issue and attach the following information:" msgstr "" "Παρακαλούμε ανοίξτε ένα νέο θέμα και επισυνάψτε τις ακόλουθες πληροφορίες:" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" "Χρησιμοποιείτε ένα build τρίτων για την εφαρμογή Διαχειριστής Επεκτάσεων. " "Παρακαλούμε επικοινωνείστε με τον διανομέα του πακέτου " "(%s) πρώτα πριν υποβάλετε ένα θέμα. Σιγουρευτείτε πως θα επισυνάψετε " "τις ακόλουθες πληροφορίες:" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "Ανοίξτε τις προτιμήσεις επέκτασης" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "Προέκυψε σφάλμα κατά την φόρτωση της επέκτασης" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "Αυτή η επέκταση είναι μη συμβατή με την τρέχουσα εκδοσή GNOME" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "Μια νεότερη εκδοσή αυτής της επέκτασης είναι διαθέσιμη" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "Έκδοση" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "Σφάλμα" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "Δείτε Λεπτομέρειες" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "Αφαίρεση" #: src/exm-info-bar.blp:13 msgctxt "Number of downloads" msgid "Downloads" msgstr "Λήψεις" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "Δεν Υποστηρίζεται" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "Αυτή η επέκταση είναι μη συμβατή με την τρέχουσα εκδοσή GNOME." #: src/exm-install-button.c:115 msgid "Install" msgstr "Εγκατάστασή" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "Εγκατεστημένη" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "Χρήση επεκτάσεων" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "" "Οι επεκτάσεις μπορεί να προκαλέσουν προβλήματα απόδοσης και σταθερότητας." #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "Εγκατεστημένες Επεκτάσεις Χρήστη" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "Επεκτάσεις Συστήματος" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "Διαθέσιμες Ενημερώσεις" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "Αποσύνδεση" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "Μια επέκταση θα αναβαθμιστεί την επόμενη φόρα που θα συνδεθείτε." msgstr[1] "%d επέκτασής θα αναβαθμιστούν την επόμενη φόρα που θα συνδεθείτε." #: src/exm-installed-page.c:340 msgid "Browse" msgstr "Περιήγηση" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "Δεν υπάρχουν εγκατεστημένες επεκτάσεις χρήστη." #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "Δεν υπάρχουν εγκατεστημένες επεκτάσεις συστήματος." #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "Βοηθός αναβάθμισης" #: src/exm-upgrade-assistant.blp:47 msgid "_Check Compatibility" msgstr "_Έλεγχος Συμβατότητας" #: src/exm-upgrade-assistant.c:176 #, c-format msgid "Checked %d/%d Extensions" msgstr "Ελέγχθηκαν %d/%d Επεκτάσεις" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "%d%% Συμβατότητα" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" "Τα GNOME %s υποστηρίζουν %d από τις %d επεκτάσεις που είναι " "εγκατεστημένες στο σύστημα." #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "Υποστηρίζεται" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "Υπάρχει συμβατή έκδοση της επέκτασης." #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "Δεν υπάρχει συμβατή έκδοση της επέκτασης." #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "Άγνωστο" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" "Αυτή η επέκταση δεν φιλοξενείται στο extensions.gnome.org. Η συμβατότητά της " "δεν μπορεί να προσδιοριστεί." #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" "Αυτή τη στιγμή εκτελείτε το GNOME %s. Επιλέξτε μια έκδοση του GNOME " "παρακάτω και ελέγξτε αν οι επεκτάσεις σας θα συνεχίσουν να είναι διαθέσιμες." #: src/exm-window.blp:42 msgid "Main Menu" msgstr "Κυρίως Μενού" #: src/exm-window.blp:55 msgctxt "Navigation" msgid "_Installed" msgstr "_Εγκατεστημένες" #: src/exm-window.blp:64 msgctxt "Navigation" msgid "_Browse" msgstr "_Περιήγηση" #: src/exm-window.blp:102 msgid "Sort _Enabled First" msgstr "Ταξινόμηση Πρώτα _Ενεργοποιημένων Επεκτάσεων" #: src/exm-window.blp:103 msgid "_Show Unsupported" msgstr "_Εμφάνιση Μη-Υποστηριζόμενων" #: src/exm-window.blp:106 msgid "_Upgrade Assistant" msgstr "_Βοηθός Αναβάθμισης" #: src/exm-window.blp:107 msgid "_About Extension Manager" msgstr "_Περί Διαχειριστή Επεκτάσεων" #: src/exm-window.c:179 msgid "Uninstall Extension?" msgstr "Απεγκατάσταση Επέκτασης?" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" "Τα χαρακτηριστικά και η λειτουργικότητα της επέκτασης δε θα είναι πλέον " "διαθέσιμα. Είστε σίγουροι πως θέλετε να απεγκατασταθεί;" #: src/exm-window.c:183 msgid "_No" msgstr "_Όχι" #: src/exm-window.c:184 msgid "_Yes" msgstr "_Ναι" #: src/exm-window.c:253 msgid "Unsupported Extension" msgstr "Μη-υποστηριζόμενη Επέκταση" #: src/exm-window.c:254 msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "Αυτή η επέκταση δεν υποστηρίζεται από την τρέχουσα έκδοση GNOME του " "συστήματός σας. Μπορεί να προκαλέσει προβλήματα αν εγκατασταθεί." #: src/exm-window.c:257 msgid "_Install Anyway" msgstr "_Εγκατάσταση Ούτως ή Άλλως" #: src/exm-window.c:258 msgid "_Go Back" msgstr "_Επιστροφή" #: src/exm-window.c:365 msgid "An error occurred." msgstr "Προέκυψε σφάλμα." #: src/exm-window.c:366 msgid "Details" msgstr "Λεπτομέρειες" #~ msgid "Loading…" #~ msgstr "Φορτώνει…" #~ msgid "@app_title@" #~ msgstr "@app_title@" #~ msgid "Fully adaptive mobile-friendly user interface" #~ msgstr "Πλήρως προσαρμόσιμη και φιλική προς τα κινητά διεπαφή χρήστη" #~ msgid "Paginated search results" #~ msgstr "Αποτελέσματα αναζήτησης σελιδοποιημένα" #~ msgid "Upgrade Assistant for checking extension compatibility" #~ msgstr "Βοηθός αναβαθμίσεων για τον έλεγχο της συμβατότητας των επεκτάσεων" #~ msgid "Unsupported extensions are hidden by default" #~ msgstr "Οι μη υποστηριζόμενες επεκτάσεις αποκρύπτονται από προεπιλογή" #~ msgid "Overhauled error and crash reporting" #~ msgstr "Αναθεωρημένη αναφορά σφαλμάτων και συντριβών" #~ msgid "Full-screen image viewer" #~ msgstr "Πρόγραμμα προβολής εικόνων πλήρους οθόνης" #~ msgid "Handles new gnome-extensions:// URI scheme" #~ msgstr "Χειρίζεται νέο σχήμα URI gnome-extensions://" #~ msgid "Randomised extension suggestions" #~ msgstr "Τυχαίες προτάσεις επεκτάσεων" #~ msgid "Performance and stability" #~ msgstr "Αποδοτικότητα και σταθερότητα" #~ msgid "Translation updates" #~ msgstr "Ενημερώσεις μεταφράσεων" #~ msgid "Various bug fixes" #~ msgstr "Διάφορες διορθώσεις σφαλμάτων" #~ msgid "Remove release notes dialog" #~ msgstr "Κατάργηση διαλόγου σημειώσεων Ενημέρωσης" #~ msgid "Fix special characters in installed extension listings" #~ msgstr "Διόρθωση ειδικών χαρακτήρων στις λίστες εγκατεστημένων επεκτάσεων" #~ msgid "The second feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Η δεύτερη ενημέρωση χαρακτηριστικών του Διαχειριστή Επεκτάσεων." #~ "Επισημασμένες περιλαμβάνοντα:" #~ msgid "View comments and reviews" #~ msgstr "Δείτε σχόλια και κριτικές" #~ msgid "Support for in-app updates" #~ msgstr "Υποστήριξη για ενημερώσεις μέσα από την εφαρμογή" #~ msgid "Better handling errors and out-of-date extensions" #~ msgstr "Καλλίτερη αντιμετώπιση σφαλμάτων και απαρχαιωμένων επεκτάσεων" #~ msgid "Allow installing 'unsupported' extensions" #~ msgstr "Δυνατότητα Εγκατάστασης μη \"υποστηριζόμενων\" επεκτάσεων" #~ msgid "Display release notes on first run" #~ msgstr "Εμφάνισε τοις σημείωσης εκδόσεις κατά την πρώτη εκκίνηση" #~ msgid "New app icon" #~ msgstr "Νέο εικονίδιο εφαρμογης" #~ msgid "Optionally sort extensions by enabled status" #~ msgstr "Προαιρετική ταξινόμηση επεκτάσεων κατά κατάσταση ενεργοποιήσεις" #~ msgid "Fix special characters in search results" #~ msgstr "Διόρθωση ειδικών χαρακτήρων στα αποτελέσματα αναζήτησής" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "" #~ "Διόρθωση σφάλματος που μερικές φόρες συμβαίνει κατά την απεγκατάσταση " #~ "επεκτάσεων" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Η πρώτη ενημέρωση χαρακτηριστικών του Διαχειριστή Επεκτάσεων." #~ "Επισημασμένες:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "" #~ "Σκοτεινό θέμα και υποστήριξη παρέμβασης σχηματικού χρώματος συστήματος" #~ msgid "Shows screenshots in extension listings" #~ msgstr "Δείχνει στιγμιότυπα στην λίστα επεκτάσεων" #~ msgid "Shell version compatibility check" #~ msgstr "Έλεγχος συμβατότητας έκδοσης γραφικού κελύφους" #~ msgid "Localised into seven languages" #~ msgstr "Μεταφρασμένο σε εφτά γλωσσες" #~ msgid "Sort search results" #~ msgstr "Ταξινόμηση αποτελεσμάτων αναζήτησης" #~ msgid "Global extension on/off toggle" #~ msgstr "Καθολικός on/off διακόπτης επεκτάσεων" #~ msgid "Displays user and system extensions separately" #~ msgstr "Απεικονίζει επέκτασης χρήστη και συστήματος ξεχωριστά" #~ msgid "Extension Manager (Development)" #~ msgstr "Διαχειριστής Επεκτάσεων (Ανάπτυξη)" #~ msgid "Popularity" #~ msgstr "Δημοτικότητα" #~ msgid "Supported Versions" #~ msgstr "Υποστηριζόμενες Εκδόσεις" #~ msgctxt "Navigation" #~ msgid "Browse" #~ msgstr "Περιήγηση" #~ msgid "Theme" #~ msgstr "Θέμα" #~ msgid "Follow System" #~ msgstr "Συστήματος" #~ msgid "Light" #~ msgstr "Φωτεινό" #~ msgid "Dark" #~ msgstr "Σκοτεινό" #~ msgid "Are you sure you want to uninstall?" #~ msgstr "Είστε σίγουρος για την απεγκατάσταση ;" #~ msgid "" #~ "A very simple tool for browsing, downloading, and managing GNOME shell " #~ "extensions." #~ msgstr "" #~ "Ένα απλό εργαλείο για την περιήγηση λήψη και διαχείριση επεκτάσεων του " #~ "γραφικού κελύφους GNOME." #~ msgid "e.g. \"Blur my Shell\"" #~ msgstr "π.χ \"Blur my Shell\"" #~ msgid "What's New" #~ msgstr "Νέα" #~ msgid "View Release Notes" #~ msgstr "Δείτε της Σημειώσεις Ενημέρωσης" #, c-format #~ msgid "" #~ "This is your first time using Extension Manager %s.\n" #~ "Would you like to see the release notes?" #~ msgstr "" #~ "Αυτή είναι η πρώτη σας φόρα που χρησιμοποιείτε των Διαχειριστή " #~ "Επεκτάσεων %s.\n" #~ "Θα θέλατε να δείτε της σημειώσεις ενημερώσεις;" extension-manager-0.5.0/po/es.po000066400000000000000000000417731457631363100165520ustar00rootroot00000000000000# Spanish translations for extension-manager package. # Copyright (C) 2022 THE extension-manager'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # Óscar Fernández Díaz , 2022-2023. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2024-03-13 20:01+0000\n" "Last-Translator: Óscar Fernández Díaz \n" "Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.5-dev\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "Gestor de extensiones" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 msgid "Manage GNOME Shell Extensions" msgstr "Gestionar extensiones de GNOME Shell" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 msgid "extension;manager;shell;" msgstr "extension;manager;shell;" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "Explorar, instalar y gestionar extensiones de GNOME Shell" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "Una utilidad para buscar e instalar extensiones de GNOME Shell." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "Características:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "Explore extensions.gnome.org dentro de la aplicación" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "Gestione las extensiones que ya tiene instaladas" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "Una utilidad para gestionar las extensiones de GNOME Shell" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "Explorar, instalar y gestionar las extensiones de GNOME Shell." #: src/exm-application.c:177 msgid "translator-credits" msgstr "Óscar Fernández Díaz " #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "Buscar extensiones" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "" "Introduzca una palabra clave para buscar extensiones de GNOME Shell en " "'extensions.gnome.org'." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "Relevancia" #: src/exm-browse-page.blp:31 msgctxt "Sort search results" msgid "Downloads" msgstr "Descargas" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "Recientes" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "Nombre" #: src/exm-browse-page.blp:61 msgid "_Load More Results" msgstr "_Cargar más resultados" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "No se han encontrado resultados" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "ej. “%s”" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "Comentarios" #: src/exm-comment-dialog.blp:37 msgid "Loading Comments" msgstr "Cargando comentarios" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "Se ha producido un error" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "Autor" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "Ampliar" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "Reducir" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "Volver a la vista" #: src/exm-detail-view.blp:106 msgid "Loading Details" msgstr "Cargando detalles" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "Ampliar la imagen" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "Descripción" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "Enlaces" #: src/exm-detail-view.blp:232 msgid "Homepage" msgstr "Página de inicio" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "Ver en Extensiones" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "Opiniones de usuarios" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "No hay comentarios." #: src/exm-detail-view.blp:319 msgid "_Show All Reviews" msgstr "_Mostrar todas las opiniones" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "Informe de error" #: src/exm-error-dialog.blp:29 msgid "An unexpected error occurred in Extension Manager." msgstr "Se ha producido un error inesperado en Gestor de extensiones." #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 msgid "_Copy to Clipboard" msgstr "_Copiar al portapapeles" #: src/exm-error-dialog.blp:64 msgid "_New Issue" msgstr "Incidencia _nueva" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "Copiado" #: src/exm-error-dialog.c:179 msgid "Please open a new issue and attach the following information:" msgstr "" "Por favor, abra una incidencia nueva y adjunte la siguiente información:" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" "Está usando una compilación de Gestor de extensiones de terceros. Por favor, " "antes de abrir una incidencia, contacte con (%s), " "distribuidor del paquete, primero. Asegúrese de adjuntar la siguiente " "información:" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "Abrir las preferencias de la extensión" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "Se ha producido un error al cargar esta extensión" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "Esta extensión es incompatible con su versión actual de GNOME" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "Existe una versión más reciente de esta extensión" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "Versión" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "Error" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "Ver detalles" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "Eliminar" #: src/exm-info-bar.blp:13 msgctxt "Number of downloads" msgid "Downloads" msgstr "Descargas" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "No soportada" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "Esta extensión es incompatible con su versión actual de GNOME." #: src/exm-install-button.c:115 msgid "Install" msgstr "Instalar" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "Instalada" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "Usar extensiones" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "Las extensiones pueden causar problemas de rendimiento y estabilidad." #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "Extensiones instaladas por el usuario" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "Extensiones del sistema" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "Actualizaciones disponibles" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "Cerrar sesión" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "Una extensión se actualizará en el próximo inicio de sesión." msgstr[1] "%d extensiones se actualizarán en el próximo inicio de sesión." #: src/exm-installed-page.c:340 msgid "Browse" msgstr "Explorar" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "No hay extensiones de usuario instaladas." #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "No hay extensiones del sistema instaladas." #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "Asistente de actualización" #: src/exm-upgrade-assistant.blp:47 msgid "_Check Compatibility" msgstr "_Comprobar compatibilidad" #: src/exm-upgrade-assistant.c:176 #, c-format msgid "Checked %d/%d Extensions" msgstr "Comprobadas %d/%d extensiones" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "%d%% compatible" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" "GNOME %s soporta %d de %d de las extensiones actualmente " "instaladas en el sistema." #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "Soportada" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "Existe una versión compatible de la extensión." #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "No existe ninguna versión compatible de la extensión." #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "Desconocido" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" "Esta extensión no está alojada en extensions.gnome.org. No se puede " "determinar su compatibilidad." #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" "Actualmente está ejecutando GNOME %s. Seleccione una versión de GNOME " "a continuación y compruebe si sus extensiones seguirán estando disponibles." #: src/exm-window.blp:42 msgid "Main Menu" msgstr "Menú principal" #: src/exm-window.blp:55 msgctxt "Navigation" msgid "_Installed" msgstr "_Instaladas" #: src/exm-window.blp:64 msgctxt "Navigation" msgid "_Browse" msgstr "_Explorar" #: src/exm-window.blp:102 msgid "Sort _Enabled First" msgstr "_Ordenar por activadas" #: src/exm-window.blp:103 msgid "_Show Unsupported" msgstr "Mostrar no _soportadas" #: src/exm-window.blp:106 msgid "_Upgrade Assistant" msgstr "Asistente de ac_tualización" #: src/exm-window.blp:107 msgid "_About Extension Manager" msgstr "_Acerca de Gestor de extensiones" #: src/exm-window.c:179 msgid "Uninstall Extension?" msgstr "¿Desinstalar la extensión?" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" "Las características y funcionalidades de la extensión dejarán de ser " "accesibles. ¿Está seguro de que desea desinstalarla?" #: src/exm-window.c:183 msgid "_No" msgstr "_No" #: src/exm-window.c:184 msgid "_Yes" msgstr "_Sí" #: src/exm-window.c:253 msgid "Unsupported Extension" msgstr "Extensión no soportada" #: src/exm-window.c:254 msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "Esta extensión no soporta su versión de GNOME Shell. Puede causar errores si " "se instala." #: src/exm-window.c:257 msgid "_Install Anyway" msgstr "_Instalar de todos modos" #: src/exm-window.c:258 msgid "_Go Back" msgstr "_Volver" #: src/exm-window.c:365 msgid "An error occurred." msgstr "Se ha producido un error." #: src/exm-window.c:366 msgid "Details" msgstr "Detalles" #~ msgid "Loading…" #~ msgstr "Cargando…" #~ msgid "@app_title@" #~ msgstr "@app_title@" #~ msgid "Extensions" #~ msgstr "Extensiones" #~ msgid "Shell" #~ msgstr "Shell" #~ msgid "Translation updates" #~ msgstr "Actualización de las traducciones" #~ msgid "Upgrade Assistant scroll fix" #~ msgstr "Corrección del desplazamiento del Asistente de actualización" #~ msgid "Pixel perfect app icon" #~ msgstr "Icono de la aplicación perfectamente pixelado" #~ msgid "Official snap support" #~ msgstr "Soporte oficial de snap" #~ msgid "Improved error log generation" #~ msgstr "Mejora de la generación de registros de errores" #~ msgid "Fully adaptive mobile-friendly user interface" #~ msgstr "Interfaz de usuario adaptable a dispositivos móviles" #~ msgid "Paginated search results" #~ msgstr "Resultados de búsqueda paginados" #~ msgid "Upgrade Assistant for checking extension compatibility" #~ msgstr "" #~ "Asistente de actualización para comprobar la compatibilidad de las " #~ "extensiones" #~ msgid "Unsupported extensions are hidden by default" #~ msgstr "Las extensiones no soportadas se ocultan de forma predeterminada" #~ msgid "Overhauled error and crash reporting" #~ msgstr "Mejora de los informes de errores y fallos" #~ msgid "Full-screen image viewer" #~ msgstr "Visor de imágenes a pantalla completa" #~ msgid "Handles new gnome-extensions:// URI scheme" #~ msgstr "Gestiona el nuevo esquema URI gnome-extensions://" #~ msgid "Randomised extension suggestions" #~ msgstr "Sugerencias de extensiones aleatoria" #~ msgid "Performance and stability" #~ msgstr "Rendimiento y estabilidad" #~ msgid "Various bug fixes" #~ msgstr "Varias correcciones de errores" #~ msgid "Remove release notes dialog" #~ msgstr "Eliminado el diálogo de notas de la versión" #~ msgid "Fix special characters in installed extension listings" #~ msgstr "" #~ "Corregidos los caracteres especiales en los listados de extensiones " #~ "instaladas" #~ msgid "The second feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "La segunda actualización de las funciones del Gestor de extensiones. Lo " #~ "más destacado es:" #~ msgid "View comments and reviews" #~ msgstr "Ver comentarios y opiniones" #~ msgid "Support for in-app updates" #~ msgstr "Soporte para las actualizaciones en la aplicación" #~ msgid "Better handling errors and out-of-date extensions" #~ msgstr "Mejor gestión de los errores y de las extensiones obsoletas" #~ msgid "Allow installing 'unsupported' extensions" #~ msgstr "Permitir la instalación de extensiones \"no soportadas\"." #~ msgid "Display release notes on first run" #~ msgstr "Mostrar las notas de la versión en la primera ejecución" #~ msgid "New app icon" #~ msgstr "Nuevo icono de la aplicación" #~ msgid "Optionally sort extensions by enabled status" #~ msgstr "Opcionalmente, ordenar las extensiones por su estado de activación" #~ msgid "Fix special characters in search results" #~ msgstr "Corregidos los caracteres especiales en los resultados de búsqueda" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "" #~ "Corrige un fallo que a veces se produce al desinstalar una extensión" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "La primera actualización de las características del Gestor de " #~ "extensiones. Lo más destacado es:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "Tema oscuro y soporte para anular el esquema de colores del sistema" #~ msgid "Shows screenshots in extension listings" #~ msgstr "Muestra capturas de pantalla en los listados de extensiones" #~ msgid "Shell version compatibility check" #~ msgstr "Comprobación de la compatibilidad de la versión de Shell" #~ msgid "Localised into seven languages" #~ msgstr "Traducida a siete idiomas" #~ msgid "Sort search results" #~ msgstr "Ordenar los resultados de la búsqueda" #~ msgid "Global extension on/off toggle" #~ msgstr "Conmutador global de extensiones" #~ msgid "Displays user and system extensions separately" #~ msgstr "Muestra las extensiones del usuario y del sistema por separado" #~ msgid "Popularity" #~ msgstr "Popularidad" #~ msgid "Supported Versions" #~ msgstr "Versiones soportadas" #~ msgid "Extension Manager (Development)" #~ msgstr "Gestor de extensiones (Desarrollo)" extension-manager-0.5.0/po/et.po000066400000000000000000000407731457631363100165520ustar00rootroot00000000000000# Estonian translations for extension-manager package. # Copyright (C) YEAR THE extension-manager'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # Henri , 2022. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2022-10-16 01:40+0300\n" "Last-Translator: Henri \n" "Language-Team: \n" "Language: et\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.1.1\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "Laiendushaldur" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 #, fuzzy #| msgid "A utility for managing GNOME Shell Extensions" msgid "Manage GNOME Shell Extensions" msgstr "GNOME töölaua laienduste haldamiseks tööriist" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 #, fuzzy #| msgid "Extension Manager" msgid "extension;manager;shell;" msgstr "Laiendushaldur" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 #, fuzzy #| msgid "Browse, install, and manage GNOME Shell Extensions." msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "Sirvi, paigalda ja halda GNOME töölaua laiendusi." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "GNOME töölaua laienduste sirvimiseks ning paigaldamiseks tööriist." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "Funktsioonid:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "Sirvi extensions.gnome.org kohe rakenduse seest" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "Halda laiendusi, mis sul on paigaldatud" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "GNOME töölaua laienduste haldamiseks tööriist" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "Sirvi, paigalda ja halda GNOME töölaua laiendusi." #: src/exm-application.c:177 msgid "translator-credits" msgstr "Henri " #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "Otsi laiendusi" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "Kirjuta märksõna, et „extensions.gnome.org“i laiendusi otsida." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "" #: src/exm-browse-page.blp:31 #, fuzzy #| msgid "Downloads" msgctxt "Sort search results" msgid "Downloads" msgstr "Allalaadimisi" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "Hiljutine" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "Nimi" #: src/exm-browse-page.blp:61 #, fuzzy #| msgid "Load More Results" msgid "_Load More Results" msgstr "Rohkem" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "Tulemusi ei leitud" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "nt „%s”" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "Kommentaarid" #: src/exm-comment-dialog.blp:37 #, fuzzy #| msgid "Comments" msgid "Loading Comments" msgstr "Kommentaarid" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "Tekkis viga" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "Suurenda" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "Vähenda" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "Tagasi" #: src/exm-detail-view.blp:106 #, fuzzy #| msgid "Details" msgid "Loading Details" msgstr "Üksikasjad" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "Suurenda pilt" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "Kirjeldus" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "" #: src/exm-detail-view.blp:232 #, fuzzy #| msgid "Project Homepage" msgid "Homepage" msgstr "Projekti koduleht" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "Vaata veebileheküljel" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "Kasutaja arvustused" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "" #: src/exm-detail-view.blp:319 #, fuzzy #| msgid "Show All Reviews" msgid "_Show All Reviews" msgstr "Näita kõiki arvustusi" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "Veaaruanne" #: src/exm-error-dialog.blp:29 #, fuzzy #| msgid "" #| "An unexpected error occurred in Extension Manager. Please open a new " #| "issue and attach the following information:" msgid "An unexpected error occurred in Extension Manager." msgstr "" "Ootamatu viga tekkis. Palun esita uus veaaruanne (issue) ja lisa sinna " "järgnevat informatsiooni:" #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 #, fuzzy #| msgid "Copy to Clipboard" msgid "_Copy to Clipboard" msgstr "Kopeeri" #: src/exm-error-dialog.blp:64 #, fuzzy #| msgid "New Issue" msgid "_New Issue" msgstr "Uus veaaruanne" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "Kopeeritud" #: src/exm-error-dialog.c:179 #, fuzzy #| msgid "" #| "An unexpected error occurred in Extension Manager. Please open a new " #| "issue and attach the following information:" msgid "Please open a new issue and attach the following information:" msgstr "" "Ootamatu viga tekkis. Palun esita uus veaaruanne (issue) ja lisa sinna " "järgnevat informatsiooni:" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "Ava laienduse eelistused" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "Laienduse laadimine ebaõnnestus" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "Laiendus ei ühildu sinu praeguse GNOME versiooniga" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "Uus laienduse versioon on saadaval" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "Versioon" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "Viga" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "Kuva üksikasju" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "Eemalda" #: src/exm-info-bar.blp:13 #, fuzzy #| msgid "Downloads" msgctxt "Number of downloads" msgid "Downloads" msgstr "Allalaadimisi" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "Toetamata" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "Laiendus ei ühildu sinu praeguse GNOME versiooniga." #: src/exm-install-button.c:115 msgid "Install" msgstr "Paigalda" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "Paigaldatud" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "Laienduste kasutamine" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "Laiendused võivad tekitada süsteemis probleeme." #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "Kasutaja paigaldatud laiendused" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "Süsteemi laiendused" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "Uuendused on saadaval" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "Logi välja" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "Üks laiendus uuendatakse järgmisel sisselogimisel." msgstr[1] "%d laiendust uuendatakse järgmisel sisselogimisel." #: src/exm-installed-page.c:340 msgid "Browse" msgstr "Sirvi" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "Pole ühtegi kasutaja laiendust installeeritud." #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "Süsteemi laiendused puuduvad." #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "Uuenduste abiline" #: src/exm-upgrade-assistant.blp:47 #, fuzzy #| msgid "Check Compatibility" msgid "_Check Compatibility" msgstr "Kontrolli ühilduvust" #: src/exm-upgrade-assistant.c:176 #, fuzzy, c-format #| msgid "Search for extensions" msgid "Checked %d/%d Extensions" msgstr "Otsi laiendusi" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "GNOME %s toetab %d-st %d süsteemi paigaldatud laiendust." #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "Toetamata" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "Ühilduv versioon on saadaval." #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "Ühtki ühildavat versiooni pole saadaval." #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "Teadmata" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" "See laiendus ei ole extension.gnome.org'il üleval. Selle ühilduvust ei saa " "kindlaks määrata." #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" "Kasutad praegu GNOME %s. Vali ühest GNOME'i versioonidest ja " "kontrolli, kas sinu laiendused ühilduvad sellega." #: src/exm-window.blp:42 msgid "Main Menu" msgstr "" #: src/exm-window.blp:55 #, fuzzy #| msgctxt "Navigation" #| msgid "Installed" msgctxt "Navigation" msgid "_Installed" msgstr "Paigaldatud" #: src/exm-window.blp:64 #, fuzzy #| msgid "Browse" msgctxt "Navigation" msgid "_Browse" msgstr "Sirvi" #: src/exm-window.blp:102 #, fuzzy #| msgid "Sort Enabled First" msgid "Sort _Enabled First" msgstr "Näita lubatud laiendused esimesena" #: src/exm-window.blp:103 #, fuzzy #| msgid "Show Unsupported" msgid "_Show Unsupported" msgstr "Näita toetamata laiendusi" #: src/exm-window.blp:106 #, fuzzy #| msgid "Upgrade Assistant" msgid "_Upgrade Assistant" msgstr "Uuenduste abiline" #: src/exm-window.blp:107 #, fuzzy #| msgid "About Extension Manager" msgid "_About Extension Manager" msgstr "Teave" #: src/exm-window.c:179 #, fuzzy #| msgid "User-Installed Extensions" msgid "Uninstall Extension?" msgstr "Kasutaja paigaldatud laiendused" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" #: src/exm-window.c:183 msgid "_No" msgstr "" #: src/exm-window.c:184 msgid "_Yes" msgstr "" #: src/exm-window.c:253 #, fuzzy #| msgid "Use Extensions" msgid "Unsupported Extension" msgstr "Laienduste kasutamine" #: src/exm-window.c:254 #, fuzzy #| msgid "" #| "This extension does not support your GNOME Shell version.\n" #| "Would you like to install anyway?" msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "See laiendus ei toeta sinu GNOME versiooni.\n" "Kas soovid siiski paigaldada laienduse?" #: src/exm-window.c:257 #, fuzzy #| msgid "Install" msgid "_Install Anyway" msgstr "Paigalda" #: src/exm-window.c:258 msgid "_Go Back" msgstr "" #: src/exm-window.c:365 msgid "An error occurred." msgstr "Tekkis viga." #: src/exm-window.c:366 msgid "Details" msgstr "Üksikasjad" #~ msgid "Loading…" #~ msgstr "Laadimine…" #~ msgid "@app_title@" #~ msgstr "Laiendushaldur" #~ msgid "Translation updates" #~ msgstr "Tõlkeuuendused" #~ msgid "Various bug fixes" #~ msgstr "Veaparandused" #~ msgid "Performance and stability" #~ msgstr "Stabiilsuse ning jõudluse laiendused" #~ msgid "Remove release notes dialog" #~ msgstr "Uuenduste logi eemaldatud" #~ msgid "Fix special characters in installed extension listings" #~ msgstr "Erilise tähe parandused paigaldatud laienduse loetelus" #~ msgid "The second feature update to extension-manager. Highlights include:" #~ msgstr "Teine suur uuendus extension-manager'ile. Peamised uuendused:" #~ msgid "View comments and reviews" #~ msgstr "Vaata kommentaare ning arvustusi" #~ msgid "Support for in-app updates" #~ msgstr "Rakenduse sisese uuenduse tugi" #~ msgid "Better handling errors and out-of-date extensions" #~ msgstr "Vea ning vananenud laienduste parandused" #~ msgid "Allow installing 'unsupported' extensions" #~ msgstr "Lubatud „toetamata“ laienduste paigaldamine" #~ msgid "Display release notes on first run" #~ msgstr "Näita uuenduste logi esimesel käivitamisel" #~ msgid "New app icon" #~ msgstr "Uus rakenduse ikoon" #~ msgid "Optionally sort extensions by enabled status" #~ msgstr "Valikuliselt sorteeri laiendused lubatud staatusega" #~ msgid "Fix special characters in search results" #~ msgstr "Erilise tähe parandused otsinguvastustes" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "Laienduse eemaldamisel krahh parandatud" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "Esimene suur uuendus extension-manager'ile. Peamised uuendused:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "Tume teema ning valik ignoreerida süsteemi vaikeseadet" #~ msgid "Shows screenshots in extension listings" #~ msgstr "Kuvatõmmise näitamine laienduste sirvijas" #~ msgid "Shell version compatibility check" #~ msgstr "Töölaua versiooni ühilduvuskontroll" #~ msgid "Localised into seven languages" #~ msgstr "Tõlgitud 7 keelde" #~ msgid "Sort search results" #~ msgstr "Otsinguvastuste sorteerimine" #~ msgid "Global extension on/off toggle" #~ msgstr "Globaalne laienduste sisse/välja lüliti" #~ msgid "Displays user and system extensions separately" #~ msgstr "Kasutaja ja süsteemi laienduste eraldi näitamine" #~ msgid "Extension Manager (Development)" #~ msgstr "Laiendushaldur (Arendajale)" #~ msgid "Popularity" #~ msgstr "Populaarsus" #~ msgid "Supported Versions" #~ msgstr "Toetatud versioonid" #~ msgctxt "Navigation" #~ msgid "Browse" #~ msgstr "Sirvi" #~ msgid "Theme" #~ msgstr "Teema" #~ msgid "Follow System" #~ msgstr "Süsteemi välimus" #~ msgid "Light" #~ msgstr "Hele teema" #~ msgid "Dark" #~ msgstr "Tume teema" #~ msgid "Are you sure you want to uninstall?" #~ msgstr "Kas oled kindel, et tahad eemaldada laienduse?" #~ msgid "" #~ "A very simple tool for browsing, downloading, and managing GNOME shell " #~ "extensions." #~ msgstr "" #~ "Lihtne tööriist GNOME töölaua laienduste sirvimiseks, paigaldamiseks ning " #~ "haldamiseks." #~ msgid "e.g. \"Blur my Shell\"" #~ msgstr "näiteks „Blur my Shell“" #~ msgid "What's New" #~ msgstr "Mis on uut" #~ msgid "View Release Notes" #~ msgstr "Vaata uuenduste logi" #, fuzzy, c-format #~ msgid "" #~ "This is your first time using Extension Manager %s.\n" #~ "Would you like to see the release notes?" #~ msgstr "" #~ "See on sinu esimene kord kasutades Laiendushaldurit %s.\n" #~ "Kas soovid vaadata mis on uut?" extension-manager-0.5.0/po/extension-manager.pot000066400000000000000000000225701457631363100217450ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 msgid "Manage GNOME Shell Extensions" msgstr "" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 msgid "extension;manager;shell;" msgstr "" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "" #: src/exm-application.c:177 msgid "translator-credits" msgstr "" #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "" #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "" #: src/exm-browse-page.blp:31 msgctxt "Sort search results" msgid "Downloads" msgstr "" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "" #: src/exm-browse-page.blp:61 msgid "_Load More Results" msgstr "" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "" #: src/exm-comment-dialog.blp:37 msgid "Loading Comments" msgstr "" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "" #: src/exm-detail-view.blp:106 msgid "Loading Details" msgstr "" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "" #: src/exm-detail-view.blp:232 msgid "Homepage" msgstr "" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "" #: src/exm-detail-view.blp:319 msgid "_Show All Reviews" msgstr "" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "" #: src/exm-error-dialog.blp:29 msgid "An unexpected error occurred in Extension Manager." msgstr "" #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 msgid "_Copy to Clipboard" msgstr "" #: src/exm-error-dialog.blp:64 msgid "_New Issue" msgstr "" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "" #: src/exm-error-dialog.c:179 msgid "Please open a new issue and attach the following information:" msgstr "" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "" #: src/exm-info-bar.blp:13 msgctxt "Number of downloads" msgid "Downloads" msgstr "" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "" #: src/exm-install-button.c:115 msgid "Install" msgstr "" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "" #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "" msgstr[1] "" #: src/exm-installed-page.c:340 msgid "Browse" msgstr "" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "" #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "" #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "" #: src/exm-upgrade-assistant.blp:47 msgid "_Check Compatibility" msgstr "" #: src/exm-upgrade-assistant.c:176 #, c-format msgid "Checked %d/%d Extensions" msgstr "" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "" #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "" #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" #: src/exm-window.blp:42 msgid "Main Menu" msgstr "" #: src/exm-window.blp:55 msgctxt "Navigation" msgid "_Installed" msgstr "" #: src/exm-window.blp:64 msgctxt "Navigation" msgid "_Browse" msgstr "" #: src/exm-window.blp:102 msgid "Sort _Enabled First" msgstr "" #: src/exm-window.blp:103 msgid "_Show Unsupported" msgstr "" #: src/exm-window.blp:106 msgid "_Upgrade Assistant" msgstr "" #: src/exm-window.blp:107 msgid "_About Extension Manager" msgstr "" #: src/exm-window.c:179 msgid "Uninstall Extension?" msgstr "" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" #: src/exm-window.c:183 msgid "_No" msgstr "" #: src/exm-window.c:184 msgid "_Yes" msgstr "" #: src/exm-window.c:253 msgid "Unsupported Extension" msgstr "" #: src/exm-window.c:254 msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" #: src/exm-window.c:257 msgid "_Install Anyway" msgstr "" #: src/exm-window.c:258 msgid "_Go Back" msgstr "" #: src/exm-window.c:365 msgid "An error occurred." msgstr "" #: src/exm-window.c:366 msgid "Details" msgstr "" extension-manager-0.5.0/po/fa.po000066400000000000000000000467661457631363100165400ustar00rootroot00000000000000# LANGUAGE translations for extension-manager package. # Copyright (C) YEAR THE extension-manager'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # nima fanni asl , 2022. # Mobin , 2022. # seyed eshagh moghim shahidani , 2022. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2022-10-17 13:19+0330\n" "Last-Translator: eshagh \n" "Language-Team: https://matrix.to/#/#persian_translation:tchncs.de\n" "Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n==0 || n==1);\n" "X-Generator: Poedit 3.0.1\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "مدیر افزونه‌ها" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 #, fuzzy #| msgid "A utility for managing GNOME Shell Extensions" msgid "Manage GNOME Shell Extensions" msgstr "یک ابزار برای مدیریت افزونه‌های گنوم" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 #, fuzzy #| msgid "Extension Manager" msgid "extension;manager;shell;" msgstr "مدیر افزونه‌ها" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 #, fuzzy #| msgid "Browse, install, and manage GNOME Shell Extensions." msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "مرور، نصب و مدیریت افزونه‌های گنوم." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "ابزاری برای مرور و نصب افزونه‌های گنوم." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "قابلیت‌ها:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "مرور افزونه‌ها از extensions.gnome.org در خود برنامه" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "مدیریت افزونه‌های نصب شده" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "یک ابزار برای مدیریت افزونه‌های گنوم" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "مرور، نصب و مدیریت افزونه‌های گنوم." #: src/exm-application.c:177 msgid "translator-credits" msgstr "" "نیما قنی اصل \n" "مبین آیدین فر \n" "سید اسحاق مقیم شهیدانی " #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "جست‌وجو برای افزونه‌ها" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "" "یک کلیدواژه برای جست‌وجوی افزونه‌های گنوم در «extensions.gnome.org» وارد کنید." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "" #: src/exm-browse-page.blp:31 #, fuzzy #| msgid "Downloads" msgctxt "Sort search results" msgid "Downloads" msgstr "بارگیری" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "تازه" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "نام" #: src/exm-browse-page.blp:61 #, fuzzy #| msgid "Load More Results" msgid "_Load More Results" msgstr "بار کردن نتایج بیشتر" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "هیچ نتیجه‌ای یافت نشد" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "برای مثال «%s»" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "بازبینی‌ها" #: src/exm-comment-dialog.blp:37 #, fuzzy #| msgid "Comments" msgid "Loading Comments" msgstr "بازبینی‌ها" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "مشکلی رخ داد" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "بزرگ‌نمایی" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "کوچک‌نمایی" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "بازگشت به نمایش" #: src/exm-detail-view.blp:106 #, fuzzy #| msgid "Details" msgid "Loading Details" msgstr "جزییات" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "بزرگ کردن تصویر" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "توضیحات" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "" #: src/exm-detail-view.blp:232 #, fuzzy #| msgid "Project Homepage" msgid "Homepage" msgstr "صفحه اصلی پروژه" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "دیدن در افزونه‌ها" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "بازبینی‌های کاربران" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "" #: src/exm-detail-view.blp:319 #, fuzzy #| msgid "Show All Reviews" msgid "_Show All Reviews" msgstr "نمایش همهٔ بازبینی‌ها" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "گزارش مشکل" #: src/exm-error-dialog.blp:29 #, fuzzy #| msgid "" #| "An unexpected error occurred in Extension Manager. Please open a new " #| "issue and attach the following information:" msgid "An unexpected error occurred in Extension Manager." msgstr "" "یک خطای غیرمنتظره در مدیر افزونه‌ها رخ داد. لطفاً یک اشکال جدید باز کنید و " "اطلاعات زیر را پیوست کنید:" #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 #, fuzzy #| msgid "Copy to Clipboard" msgid "_Copy to Clipboard" msgstr "رونوشت به تخته‌گیره" #: src/exm-error-dialog.blp:64 #, fuzzy #| msgid "New Issue" msgid "_New Issue" msgstr "اشکال جدید" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "رونوشت شد" #: src/exm-error-dialog.c:179 #, fuzzy #| msgid "" #| "An unexpected error occurred in Extension Manager. Please open a new " #| "issue and attach the following information:" msgid "Please open a new issue and attach the following information:" msgstr "" "یک خطای غیرمنتظره در مدیر افزونه‌ها رخ داد. لطفاً یک اشکال جدید باز کنید و " "اطلاعات زیر را پیوست کنید:" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "گشودن ترجیحات افزونه" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "مشکلی در بار کردن افزونه رخ داد" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "این افزونه با نگارش کنونی پوستهٔ گنوم شما سازگار نیست" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "نگارش جدیدی از این افزونه موجود است" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "نگارش" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "خطا" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "دیدن جزییات" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "برداشتن" #: src/exm-info-bar.blp:13 #, fuzzy #| msgid "Downloads" msgctxt "Number of downloads" msgid "Downloads" msgstr "بارگیری" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "پشتیبانی نشده" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "این افزونه با نگارش کنونی پوستهٔ گنوم شما سازگار نیست." #: src/exm-install-button.c:115 msgid "Install" msgstr "نصب" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "نصب شده" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "استفاده از افزونه‌ها" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "افزونه‌ها می‌توانند باعث مشکلات عملکرد و پایداری شوند." #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "افزونه‌های نصب شده توسط کاربر" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "افزونه‌های سامانه" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "به‌روز رسانی‌ها موجود هستند" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "خروج" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "تعداد %Id افزونه در ورود بعدی به‌روز رسانی خواهند شد." msgstr[1] "یک افزونه در ورود بعدی به‌روز رسانی خواهد شد." #: src/exm-installed-page.c:340 msgid "Browse" msgstr "مرور" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "هیچ افزونه‌ای توسط کاربر نصب نشده است." #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "هیچ افزونه‌ای توسط سامانه نصب نشده است." #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "دستیار ارتقاء" #: src/exm-upgrade-assistant.blp:47 #, fuzzy #| msgid "Check Compatibility" msgid "_Check Compatibility" msgstr "بررسی سازگاری" #: src/exm-upgrade-assistant.c:176 #, fuzzy, c-format #| msgid "Search for extensions" msgid "Checked %d/%d Extensions" msgstr "جست‌وجو برای افزونه‌ها" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" "گنوم %s تعداد %d عدد از %d عدد افزونهٔ نصب شده در سامانه را " "پشتیبانی می‌کند." #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "پشتیبانی شده" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "یک نگارش سازگار از این افزونه موجود است." #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "هیچ نگارش سازگاری از این افزونه موجود نیست." #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "نامعلوم" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" "این افزونه در extensions.gnome.org میزبانی نمی‌شود. سازگاری آن را نمی‌توان " "تعیین کرد." #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" "شما هم‌اکنون گنوم %s را اجرا می‌کنید. یکی از نگارش‌های گنوم را در زیر " "برگزینید و بررسی کنید که آیا افزونه‌هایتان همچنان در دسترس خواهند بود." #: src/exm-window.blp:42 msgid "Main Menu" msgstr "" #: src/exm-window.blp:55 #, fuzzy #| msgctxt "Navigation" #| msgid "Installed" msgctxt "Navigation" msgid "_Installed" msgstr "نصب شده" #: src/exm-window.blp:64 #, fuzzy #| msgid "Browse" msgctxt "Navigation" msgid "_Browse" msgstr "مرور" #: src/exm-window.blp:102 #, fuzzy #| msgid "Sort Enabled First" msgid "Sort _Enabled First" msgstr "مرتب‌سازی افزونه‌های فعّال در ابتدا" #: src/exm-window.blp:103 #, fuzzy #| msgid "Show Unsupported" msgid "_Show Unsupported" msgstr "نمایش پشتیبانی نشده‌ها" #: src/exm-window.blp:106 #, fuzzy #| msgid "Upgrade Assistant" msgid "_Upgrade Assistant" msgstr "دستیار ارتقاء" #: src/exm-window.blp:107 #, fuzzy #| msgid "About Extension Manager" msgid "_About Extension Manager" msgstr "دربارهٔ مدیر افزونه‌ها" #: src/exm-window.c:179 #, fuzzy #| msgid "User-Installed Extensions" msgid "Uninstall Extension?" msgstr "افزونه‌های نصب شده توسط کاربر" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" #: src/exm-window.c:183 msgid "_No" msgstr "" #: src/exm-window.c:184 msgid "_Yes" msgstr "" #: src/exm-window.c:253 #, fuzzy #| msgid "Use Extensions" msgid "Unsupported Extension" msgstr "استفاده از افزونه‌ها" #: src/exm-window.c:254 #, fuzzy #| msgid "" #| "This extension does not support your GNOME Shell version.\n" #| "Would you like to install anyway?" msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "این افزونه با نگارش کنونی پوستهٔ گنوم شما سازگار نیست.\n" "به هر حال نصب شود؟" #: src/exm-window.c:257 #, fuzzy #| msgid "Install" msgid "_Install Anyway" msgstr "نصب" #: src/exm-window.c:258 msgid "_Go Back" msgstr "" #: src/exm-window.c:365 msgid "An error occurred." msgstr "خطایی رخ داد." #: src/exm-window.c:366 msgid "Details" msgstr "جزییات" #~ msgid "Loading…" #~ msgstr "در حال بار کردن…" #~ msgid "@app_title@" #~ msgstr "مدیر افزونه‌ها" #~ msgid "Translation updates" #~ msgstr "به‌روز رسانی‌های ترجمه" #~ msgid "Various bug fixes" #~ msgstr "رفع اشکال‌های مختلف" #~ msgid "Performance and stability" #~ msgstr "عملکرد و پایداری" #~ msgid "Remove release notes dialog" #~ msgstr "برداشتن گفت‌وگوی یادداشت‌های انتشار" #~ msgid "Fix special characters in installed extension listings" #~ msgstr "تصحیح نویسه‌های خاص در فهرست افزونه‌های نصب شده" #~ msgid "The second feature update to extension-manager. Highlights include:" #~ msgstr "دومین به‌روز رسانی ویژگی به مدیر افزونه‌ها. نکات برجسته عبارتند از:" #~ msgid "View comments and reviews" #~ msgstr "دیدن نظرات" #~ msgid "Support for in-app updates" #~ msgstr "پشتیبانی از بروزرسانی درون برنامه‌ای" #~ msgid "Better handling errors and out-of-date extensions" #~ msgstr "مدیریت بهتر خطاها و افزونه‌های منسوخ" #~ msgid "Allow installing 'unsupported' extensions" #~ msgstr "اجازه به نصب افزونه‌های «پشتیبانی نشده»" #~ msgid "Display release notes on first run" #~ msgstr "نمایش یادداشت‌های انتشار در اولین اجرا" #~ msgid "New app icon" #~ msgstr "نقشک جدید برنامه" #~ msgid "Optionally sort extensions by enabled status" #~ msgstr "مرتب‌سازی افزونه‌ها بر اساس فعّال بودن" #~ msgid "Fix special characters in search results" #~ msgstr "تصحیح نویسه‌های خاص در نتایج جست‌و‌جو" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "برطرف کردن خرابی‌های که بعد از حذف برخی افزونه‌ها رخ می‌دهد" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "اولین به‌روز رسانی ویژگی به مدیر افزونه‌ها. نکات برجسته عبارتند از:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "تم تیره و پشتیبانی از نادیده گرفتن طرح رنگ سامانه" #~ msgid "Shows screenshots in extension listings" #~ msgstr "نمایش نماگرفت‌ها در صفحه افزونه‌ها" #~ msgid "Shell version compatibility check" #~ msgstr "بررسی سازگاری با نگارش پوستهٔ گنوم" #~ msgid "Localised into seven languages" #~ msgstr "ترجمه شدن به هفت زبان" #~ msgid "Sort search results" #~ msgstr "مرتب‌سازی نتایج جست‌وجو" #~ msgid "Global extension on/off toggle" #~ msgstr "روشن یا خاموش کردن سراسری افزونه" #~ msgid "Displays user and system extensions separately" #~ msgstr "نمایش افزونه‌های کاربر و سامانه به صورت جداگانه" #~ msgid "Extension Manager (Development)" #~ msgstr "مدیر افزونه‌ها (در حال توسعه)" #~ msgid "Popularity" #~ msgstr "محبوبیت" #~ msgid "Supported Versions" #~ msgstr "نگارش‌های پشتیبانی شده" #~ msgctxt "Navigation" #~ msgid "Browse" #~ msgstr "مرور" #~ msgid "Theme" #~ msgstr "زمینه" #~ msgid "Follow System" #~ msgstr "پیروی از زمینهٔ سامانه" #~ msgid "Light" #~ msgstr "روشن" #~ msgid "Dark" #~ msgstr "تاریک" #~ msgid "Are you sure you want to uninstall?" #~ msgstr "آیا مطمئنید که می‌خواهید حذفش کنید؟" #~ msgid "" #~ "A very simple tool for browsing, downloading, and managing GNOME shell " #~ "extensions." #~ msgstr "یک ابزار خیلی ساده برای مرور، بارگیری و مدیریت افزونه‌های گنوم." #~ msgid "e.g. \"Blur my Shell\"" #~ msgstr "مثلا: «Persian calendar»" #~ msgid "What's New" #~ msgstr "چه چیزی تازه است" #~ msgid "View Release Notes" #~ msgstr "دیدن یادداشت‌های انتشار" #, c-format #~ msgid "" #~ "This is your first time using Extension Manager %s.\n" #~ "Would you like to see the release notes?" #~ msgstr "" #~ "این اولین بار است که دارید از مدیر افزونه ها %s استفاده می‌کنید.\n" #~ "آیا می‌خواهید یادداشت‌های انتشار را ببینید؟" extension-manager-0.5.0/po/fr.po000066400000000000000000000461561457631363100165520ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # FIRST AUTHOR , YEAR. # Irénée THIRION , 2022-2023. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2024-03-16 18:50+0000\n" "Last-Translator: gnomelibre \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 5.5-dev\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "Gestionnaire d’extensions" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 msgid "Manage GNOME Shell Extensions" msgstr "Gérez les extensions GNOME Shell" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 msgid "extension;manager;shell;" msgstr "extensions;gestionnaire;manager;shell;" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "Parcourez, installez et gérez les extensions GNOME Shell" # fdsf #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "Un outil pour parcourir et installer les extensions GNOME Shell." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "Caractéristiques :" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "Utilisez directement extensions.gnome.org dans l’application" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "Gérez les extensions que vous avez déjà installées" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "Un outil pour gérer les extensions GNOME Shell" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "Parcourez, installez et gérez les extensions GNOME Shell." #: src/exm-application.c:177 msgid "translator-credits" msgstr "" "PaxtonGround\n" "Geoffrey Coulaud \n" "Irénée Thirion " #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "Recherche d’extensions" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "" "Saisissez un mot-clé pour rechercher les extensions de GNOME Shell sur le " "site 'extensions.gnome.org'." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "Pertinence" #: src/exm-browse-page.blp:31 #, fuzzy #| msgid "Downloads" msgctxt "Sort search results" msgid "Downloads" msgstr "Téléchargements" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "Récent" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "Nom" #: src/exm-browse-page.blp:61 msgid "_Load More Results" msgstr "_Charger plus de résultats" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "Aucun résultat trouvé" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "par ex. « %s »" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "Commentaires" #: src/exm-comment-dialog.blp:37 msgid "Loading Comments" msgstr "Chargement des commentaires" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "Une erreur s’est produite" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "Auteur" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "Zoomer" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "Dézoomer" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "Retourner à l’aperçu" #: src/exm-detail-view.blp:106 msgid "Loading Details" msgstr "Chargement des détails" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "Agrandir l’image" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "Description" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "Liens" #: src/exm-detail-view.blp:232 msgid "Homepage" msgstr "Page d’accueil" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "Voir sur Extensions" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "Avis utilisateurs" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "Aucun commentaire" #: src/exm-detail-view.blp:319 msgid "_Show All Reviews" msgstr "_Montrer tous les avis" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "Signalement d’erreurs" #: src/exm-error-dialog.blp:29 msgid "An unexpected error occurred in Extension Manager." msgstr "Une erreur inattendue s’est produite dans Gestionnaire d’Extensions." #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 msgid "_Copy to Clipboard" msgstr "_Copier vers le presse-papiers" #: src/exm-error-dialog.blp:64 msgid "_New Issue" msgstr "_Nouveau problème" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "Copié" #: src/exm-error-dialog.c:179 msgid "Please open a new issue and attach the following information:" msgstr "" "Merci de signaler un nouveau problème et d’y joindre les informations " "suivantes :" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" "Vous utilisez une version tierce de Gestionnaire d’Extensions. Veuillez " "d’abord contacter le distributeur du paquet (%s) avant " " de signaler tout problème. Veillez à joindre les informations " "suivantes :" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "Ouvrir les paramètres de l’extension" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "Une erreur s’est produite durant le chargement de cette extension" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "Cette extension est incompatible avec votre version actuelle de GNOME" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "Une nouvelle version de cette extension est disponible" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "Version" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "Erreur" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "Voir les détails" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "Enlever" #: src/exm-info-bar.blp:13 #, fuzzy #| msgid "Downloads" msgctxt "Number of downloads" msgid "Downloads" msgstr "Téléchargements" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "Non supporté" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "Cette extension est incompatible avec votre version actuelle de GNOME." #: src/exm-install-button.c:115 msgid "Install" msgstr "Installer" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "Installée" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "Activer les extensions" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "" "Les extensions peuvent causer des problèmes de performance et de stabilité." #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "Installées manuellement" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "Intégrées" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "Des mises à jour sont disponibles" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "Se déconnecter" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "Une extension sera mise à jour à la prochaine connexion." msgstr[1] "%d extensions seront mises à jour à la prochaine connexion." #: src/exm-installed-page.c:340 msgid "Browse" msgstr "Parcourir" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "Aucune extension manuellement installée." #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "Aucune extension intégrée installée." #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "Assistant de mise à jour" #: src/exm-upgrade-assistant.blp:47 msgid "_Check Compatibility" msgstr "_Vérifier la compatibilité" #: src/exm-upgrade-assistant.c:176 #, fuzzy, c-format #| msgid "Checked %d/%d extensions" msgid "Checked %d/%d Extensions" msgstr "%d/%d extensions vérifiées" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "%d%% compatible(s)" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" "GNOME %s prend en charge %d des %d extensions actuellement " "installées sur le système." #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "Pris en charge" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "Une version compatible de cette extension existe." #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "Aucune version compatible de cette extension n’existe." #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "Inconnu" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" "Cette extension n’est pas hébergée sur extensions.gnome.org. Sa " "compatibilité ne peut pas être déterminée." #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" "Vous utilisez actuellement GNOME %s. Sélectionnez une version de " "GNOME ci-dessous et vérifiez si vos extensions seront toujours disponibles." #: src/exm-window.blp:42 msgid "Main Menu" msgstr "Menu principal" #: src/exm-window.blp:55 msgctxt "Navigation" msgid "_Installed" msgstr "_Installées" #: src/exm-window.blp:64 msgctxt "Navigation" msgid "_Browse" msgstr "_Parcourir" #: src/exm-window.blp:102 #, fuzzy #| msgid "Sort Enabled First" msgid "Sort _Enabled First" msgstr "Extensions activées en premier" #: src/exm-window.blp:103 #, fuzzy #| msgid "Show Unsupported" msgid "_Show Unsupported" msgstr "Afficher les extensions non prises en charge" #: src/exm-window.blp:106 #, fuzzy #| msgid "Upgrade Assistant" msgid "_Upgrade Assistant" msgstr "Assistant de mise à jour" #: src/exm-window.blp:107 #, fuzzy #| msgid "About Extension Manager" msgid "_About Extension Manager" msgstr "À propos de Gestionnaire d’extensions" #: src/exm-window.c:179 msgid "Uninstall Extension?" msgstr "Désinstaller l’extension ?" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" "Les fonctionnalités de l’extension ne seront plus accessibles. Êtes-vous sûr " "de vouloir la désinstaller ?" #: src/exm-window.c:183 msgid "_No" msgstr "_Non" #: src/exm-window.c:184 msgid "_Yes" msgstr "_Oui" #: src/exm-window.c:253 msgid "Unsupported Extension" msgstr "Extension non prise en charge" #: src/exm-window.c:254 msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "Cette extension ne prend pas en charge votre version de GNOME Shell. Son " "installation pourrait produire des erreurs." #: src/exm-window.c:257 msgid "_Install Anyway" msgstr "_Installer quand même" #: src/exm-window.c:258 msgid "_Go Back" msgstr "_Retour" #: src/exm-window.c:365 msgid "An error occurred." msgstr "Une erreur s’est produite." #: src/exm-window.c:366 msgid "Details" msgstr "Détails" #~ msgid "Loading…" #~ msgstr "Chargement…" #~ msgid "@app_title@" #~ msgstr "@app_title@" #~ msgid "HOTFIX: Fix broken 'recent' and 'popularity' search filters" #~ msgstr "" #~ "CORRECTIF : les filtres 'récent' et 'popularité' fonctionnent à nouveau" #~ msgid "Various stability and correctness fixes" #~ msgstr "Diverses améliorations de stabilité et de fiabilité" #~ msgid "Translation updates" #~ msgstr "Mise à jour des traductions" #~ msgid "Upgrade Assistant scroll fix" #~ msgstr "Correction du défilement de l’assistant de mise à jour" #~ msgid "Pixel perfect app icon" #~ msgstr "Icône d’application peaufinée au pixel près" #~ msgid "Official snap support" #~ msgstr "Prise en charge officielle du format snap" #~ msgid "Improved error log generation" #~ msgstr "Génération de journaux de débogage améliorée" #~ msgid "Fully adaptive mobile-friendly user interface" #~ msgstr "Interface utilisateur entièrement adaptable au format mobile" #~ msgid "Paginated search results" #~ msgstr "Résultats de recherche paginés" #~ msgid "Upgrade Assistant for checking extension compatibility" #~ msgstr "" #~ "Assistant de mise à jour pour vérifier la compatibilité des extensions" #~ msgid "Unsupported extensions are hidden by default" #~ msgstr "Les extensions non prises en charge sont masquées par défaut" #~ msgid "Overhauled error and crash reporting" #~ msgstr "Signalement de plantages et d’erreurs retravaillé" #~ msgid "Full-screen image viewer" #~ msgstr "Visionneur d’images en plein écran" #~ msgid "Handles new gnome-extensions:// URI scheme" #~ msgstr "Gestion du nouveau schéma URI gnome-extensions://" #~ msgid "Randomised extension suggestions" #~ msgstr "Suggestions d’extensions randomisées" #~ msgid "Performance and stability" #~ msgstr "Performance et stabilité" #~ msgid "Various bug fixes" #~ msgstr "Diverses corrections de bogues" #~ msgid "Remove release notes dialog" #~ msgstr "Suppression de la fenêtre de dialogue des notes de version" #~ msgid "Fix special characters in installed extension listings" #~ msgstr "" #~ "Correction des caractères spéciaux dans la liste des extensions installées" #~ msgid "The second feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Seconde mise à jour des fonctionnalités de Gestionnaire d’extensions. " #~ "Points forts :" #~ msgid "View comments and reviews" #~ msgstr "Afficher les commentaires et avis" #~ msgid "Support for in-app updates" #~ msgstr "Prise en charge des mises à jour dans l’application" #~ msgid "Better handling errors and out-of-date extensions" #~ msgstr "Meilleure gestion des erreurs et des extensions obsolètes" #~ msgid "Allow installing 'unsupported' extensions" #~ msgstr "Permettre d’installer des extensions 'non supportées'" #~ msgid "Display release notes on first run" #~ msgstr "Affichage des notes de version au premier lancement" #~ msgid "New app icon" #~ msgstr "Nouvelle icône d’application" #~ msgid "Optionally sort extensions by enabled status" #~ msgstr "Trier optionnellement les extensions par leur état d’activation" #~ msgid "Fix special characters in search results" #~ msgstr "Correction des caractères spéciaux dans les résultats de recherche" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "" #~ "Correction d’un plantage se produisant parfois lors de la désinstallation " #~ "d’une extension" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Première mise à jour des fonctionnalités de Gestionnaire d’extensions. " #~ "Points forts :" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "Thème sombre et prise en charge du Mode Automatique" #~ msgid "Shows screenshots in extension listings" #~ msgstr "Affichage de captures d’écran dans les fiches d’extensions" #~ msgid "Shell version compatibility check" #~ msgstr "Vérification de la compatibilité avec votre versions du shell" #~ msgid "Localised into seven languages" #~ msgstr "Traduction en sept langues" #~ msgid "Sort search results" #~ msgstr "Tri des résultats de recherche" #~ msgid "Global extension on/off toggle" #~ msgstr "Activation / désactivation de Gestionnaire d’extensions" #~ msgid "Displays user and system extensions separately" #~ msgstr "Séparation des extensions installées manuellement et intégrées" #~ msgid "Popularity" #~ msgstr "Popularité" #~ msgid "Extension Manager (Development)" #~ msgstr "Gestionnaire d’extensions (Développement)" #~ msgid "Supported Versions" #~ msgstr "Versions supportées" #~ msgctxt "Navigation" #~ msgid "Browse" #~ msgstr "Parcourir" #~ msgid "Are you sure you want to uninstall?" #~ msgstr "Êtes-vous sûr de vouloir désinstaller ?" #~ msgid "Theme" #~ msgstr "Thème" #~ msgid "Follow System" #~ msgstr "Automatique" #~ msgid "Light" #~ msgstr "Clair" #~ msgid "Dark" #~ msgstr "Foncé" #~ msgid "" #~ "A very simple tool for browsing, downloading, and managing GNOME shell " #~ "extensions." #~ msgstr "" #~ "Un outil pour parcourir, installer et gérer simplement les extensions " #~ "GNOME Shell." #~ msgid "e.g. \"Blur my Shell\"" #~ msgstr "Par exemple, « Blur my Shell »" #~ msgid "What's New" #~ msgstr "Quoi de neuf" #~ msgid "View Release Notes" #~ msgstr "Voir les notes de version" #, c-format #~ msgid "" #~ "This is your first time using Extension Manager %s.\n" #~ "Would you like to see the release notes?" #~ msgstr "" #~ "C’est votre première utilisation deGestionnaire d’extensions %s.\n" #~ "Voulez-vous voir les notes de version ?" #~ msgid "Matthew Jakeman" #~ msgstr "Matthew Jakeman" #~ msgid "Colour Scheme Preference" #~ msgstr "Préférence de couleurs" #~ msgid "" #~ "Whether to follow the system colour scheme or force either light or dark " #~ "mode." #~ msgstr "Mode automatique ou forcer le Thème clair/foncé." #~ msgid "Installed" #~ msgstr "Installée" extension-manager-0.5.0/po/hi.po000066400000000000000000000405351457631363100165360ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2024-03-13 20:01+0000\n" "Last-Translator: Scrambled777 \n" "Language-Team: Hindi \n" "Language: hi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 5.5-dev\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "Extension Manager" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 msgid "Manage GNOME Shell Extensions" msgstr "GNOME Shell एक्सटेंशन प्रबंधित करें" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 msgid "extension;manager;shell;" msgstr "विस्तार;प्रबंधक;शैल;" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "GNOME Shell एक्सटेंशन ब्राउज़ करें, इंस्टॉल करें और प्रबंधित करें" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "GNOME Shell एक्सटेंशन ब्राउज़ करने और स्थापित करने के लिए एक उपयोगिता।" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "विशेषताएँ:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "ऐप के ठीक अंदर extensions.gnome.org ब्राउज़ करें" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "आपके द्वारा पहले से इंस्टॉल किए गए एक्सटेंशन प्रबंधित करें" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "GNOME Shell एक्सटेंशन के प्रबंधन के लिए एक उपयोगिता" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "GNOME Shell एक्सटेंशन ब्राउज़ करें, इंस्टॉल करें और प्रबंधित करें।" #: src/exm-application.c:177 msgid "translator-credits" msgstr "Scrambled777 " #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "एक्सटेंशन खोजें" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "" "GNOME Shell एक्सटेंशन के लिए 'extensions.gnome.org' खोजने के लिए एक कीवर्ड दर्ज करें।" #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "प्रासंगिकता" #: src/exm-browse-page.blp:31 msgctxt "Sort search results" msgid "Downloads" msgstr "डाउनलोड" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "हालिया" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "नाम" #: src/exm-browse-page.blp:61 msgid "_Load More Results" msgstr "_अधिक परिणाम लोड करें" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "कोई परिणाम नहीं मिला" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "जैसे “%s”" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "टिप्पणियाँ" #: src/exm-comment-dialog.blp:37 msgid "Loading Comments" msgstr "टिप्पणियाँ लोड हो रही हैं" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "एक त्रुटि हुई" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "लेखक" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "ज़ूम इन" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "ज़ूम आउट" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "दृश्य पर वापस जाएँ" #: src/exm-detail-view.blp:106 msgid "Loading Details" msgstr "विवरण लोड हो रहा है" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "छवि बड़ा करें" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "विवरण" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "लिंक" #: src/exm-detail-view.blp:232 msgid "Homepage" msgstr "मुखपृष्ठ" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "एक्सटेंशन पर देखें" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "उपयोगकर्ता समीक्षा" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "कोई टिप्पणियाँ नहीं हैं।" #: src/exm-detail-view.blp:319 msgid "_Show All Reviews" msgstr "_सभी समीक्षाएँ दिखाएँ" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "त्रुटि रिपोर्ट" #: src/exm-error-dialog.blp:29 msgid "An unexpected error occurred in Extension Manager." msgstr "Extension Manager में एक अप्रत्याशित त्रुटि उत्पन्न हुई।" #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 msgid "_Copy to Clipboard" msgstr "_क्लिपबोर्ड पर कॉपी करें" #: src/exm-error-dialog.blp:64 msgid "_New Issue" msgstr "_नया मुद्दा" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "कॉपी किया गया" #: src/exm-error-dialog.c:179 msgid "Please open a new issue and attach the following information:" msgstr "कृपया एक नया अंक खोलें और निम्नलिखित जानकारी संलग्न करें:" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" "आप Extension Manager के तृतीय-पक्ष बिल्ड का उपयोग कर रहे हैं। कृपया समस्या दर्ज करने से " "पहले पहले पैकेज वितरक (%s) से संपर्क करें। निम्नलिखित " "जानकारी संलग्न करना सुनिश्चित करें:" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "एक्सटेंशन प्राथमिकताएँ खोलें" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "इस एक्सटेंशन को लोड करते समय एक त्रुटि उत्पन्न हुई" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "यह एक्सटेंशन आपके GNOME के वर्तमान संस्करण के साथ असंगत है" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "इस एक्सटेंशन का एक नया संस्करण उपलब्ध है" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "संस्करण" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "त्रुटि" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "विवरण देखें" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "हटाएँ" #: src/exm-info-bar.blp:13 msgctxt "Number of downloads" msgid "Downloads" msgstr "डाउनलोड" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "असमर्थित" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "यह एक्सटेंशन आपके GNOME के वर्तमान संस्करण के साथ असंगत है।" #: src/exm-install-button.c:115 msgid "Install" msgstr "इंस्टॉल" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "इंस्टॉल किया" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "एक्सटेंशन का उपयोग करें" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "एक्सटेंशन प्रदर्शन और स्थिरता संबंधी समस्याएं पैदा कर सकते हैं।" #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "उपयोगकर्ता-स्थापित एक्सटेंशन" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "सिस्टम एक्सटेंशन" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "अपडेट उपलब्ध हैं" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "लॉग आउट" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "अगले लॉगिन पर एक एक्सटेंशन अपडेट किया जाएगा।" msgstr[1] "%d एक्सटेंशन अगले लॉगिन पर अपडेट किए जाएंगे।" #: src/exm-installed-page.c:340 msgid "Browse" msgstr "ब्राउज़" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "कोई उपयोगकर्ता एक्सटेंशन इंस्टॉल नहीं हैं।" #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "कोई सिस्टम एक्सटेंशन स्थापित नहीं हैं।" #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "अपग्रेड सहायक" #: src/exm-upgrade-assistant.blp:47 msgid "_Check Compatibility" msgstr "_संगतता जांचें" #: src/exm-upgrade-assistant.c:176 #, c-format msgid "Checked %d/%d Extensions" msgstr "%d/%d एक्सटेंशन की जाँच की गई" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "%d%% संगत" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" "GNOME %s सिस्टम पर वर्तमान में स्थापित एक्सटेंशनों में से %d में से %d का " "समर्थन करता है।" #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "समर्थित" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "एक्सटेंशन का एक संगत संस्करण मौजूद है।" #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "एक्सटेंशन का कोई संगत संस्करण मौजूद नहीं है।" #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "अज्ञात" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" "यह एक्सटेंशन extensions.gnome.org पर होस्ट नहीं किया गया है। इसकी अनुकूलता निर्धारित " "नहीं की जा सकती।" #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" "आप वर्तमान में GNOME %s चला रहे हैं। नीचे GNOME का एक संस्करण चुनें और जांचें कि क्या " "आपके एक्सटेंशन उपलब्ध रहेंगे।" #: src/exm-window.blp:42 msgid "Main Menu" msgstr "मुख्य मेन्यू" #: src/exm-window.blp:55 msgctxt "Navigation" msgid "_Installed" msgstr "_इंस्टॉल किया गया" #: src/exm-window.blp:64 msgctxt "Navigation" msgid "_Browse" msgstr "_ब्राउज़" #: src/exm-window.blp:102 msgid "Sort _Enabled First" msgstr "_पहले सक्षम को क्रमबद्ध करें" #: src/exm-window.blp:103 msgid "_Show Unsupported" msgstr "_असमर्थित दिखाएँ" #: src/exm-window.blp:106 msgid "_Upgrade Assistant" msgstr "_अपग्रेड सहायक" #: src/exm-window.blp:107 msgid "_About Extension Manager" msgstr "_Extension Manager के बारे में" #: src/exm-window.c:179 msgid "Uninstall Extension?" msgstr "Extension अनइंस्टॉल करें?" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" "एक्सटेंशन की सुविधाएं और कार्यक्षमता अब पहुंच योग्य नहीं होंगी. क्या आप स्थापना रद्द करना " "चाहते हैं?" #: src/exm-window.c:183 msgid "_No" msgstr "_नहीं" #: src/exm-window.c:184 msgid "_Yes" msgstr "_हाँ" #: src/exm-window.c:253 msgid "Unsupported Extension" msgstr "असमर्थित एक्सटेंशन" #: src/exm-window.c:254 msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "यह एक्सटेंशन आपके GNOME Shell संस्करण का समर्थन नहीं करता है. स्थापित होने पर यह त्रुटियाँ " "उत्पन्न कर सकता है।" #: src/exm-window.c:257 msgid "_Install Anyway" msgstr "_फिर भी इंस्टॉल करें" #: src/exm-window.c:258 msgid "_Go Back" msgstr "_वापस जाएँ" #: src/exm-window.c:365 msgid "An error occurred." msgstr "एक त्रुटि हुई।" #: src/exm-window.c:366 msgid "Details" msgstr "विवरण" #~ msgid "Loading…" #~ msgstr "लोड हो रहा है…" extension-manager-0.5.0/po/hr.po000066400000000000000000000422561457631363100165510ustar00rootroot00000000000000# Croatian translations for extension-manager package. # Copyright (C) YEAR THE extension-manager'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # gogo , 2022. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2022-09-27 21:31+0200\n" "Last-Translator: gogo \n" "Language-Team: Croatian\n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" "X-Generator: Poedit 3.0.1\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "Upravitelj proširenja" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 #, fuzzy #| msgid "A utility for managing GNOME Shell Extensions" msgid "Manage GNOME Shell Extensions" msgstr "Pomagalo za upravljanje proširenjima GNOME ljuske" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 #, fuzzy #| msgid "Extension Manager" msgid "extension;manager;shell;" msgstr "Upravitelj proširenja" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 #, fuzzy #| msgid "Browse, install, and manage GNOME Shell Extensions." msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "Pregledavajte, instalirajte i upravljajte proširenjima GNOME ljuske." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "Pomagalo za pregledavanje i instalaciju proširenja GNOME ljuske." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "Značajke:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "Pregledavajte extensions.gnome.org unutar aplikacije" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "Upravljajte već instaliranim proširenjima" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "Pomagalo za upravljanje proširenjima GNOME ljuske" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "Pregledavajte, instalirajte i upravljajte proširenjima GNOME ljuske." #: src/exm-application.c:177 msgid "translator-credits" msgstr "gogo " #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "Pretraga proširenja" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "" "Upišite ključnu riječ 'extensions.gnome.org' pretrage za proširenja GNOME " "ljuske." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "" #: src/exm-browse-page.blp:31 #, fuzzy #| msgid "Downloads" msgctxt "Sort search results" msgid "Downloads" msgstr "Preuzimanje" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "Nedavno" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "Naziv" #: src/exm-browse-page.blp:61 #, fuzzy #| msgid "Load More Results" msgid "_Load More Results" msgstr "Učitaj više rezultata" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "Nema pronađenih rezultata" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "npr. “%s”" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "Komentari" #: src/exm-comment-dialog.blp:37 #, fuzzy #| msgid "Comments" msgid "Loading Comments" msgstr "Komentari" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "Greška se dogodila" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "Uvećaj" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "Umanji" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "Vrati u prikaz" #: src/exm-detail-view.blp:106 #, fuzzy #| msgid "Details" msgid "Loading Details" msgstr "Pojedinosti" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "Uvećaj sliku" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "Opis" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "" #: src/exm-detail-view.blp:232 #, fuzzy #| msgid "Project Homepage" msgid "Homepage" msgstr "Naslovnica projekta" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "Pogledajte na Proširenjima" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "Korisničke recenzije" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "" #: src/exm-detail-view.blp:319 #, fuzzy #| msgid "Show All Reviews" msgid "_Show All Reviews" msgstr "Prikaži sve recenzije" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "Prijavak greške" #: src/exm-error-dialog.blp:29 #, fuzzy #| msgid "" #| "An unexpected error occurred in Extension Manager. Please open a new " #| "issue and attach the following information:" msgid "An unexpected error occurred in Extension Manager." msgstr "" "Dogodila se neočekivana greška u Upravitelju proširenja. Otvorite novi " "prijavak greške i dodajte sljedeće informacije:" #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 #, fuzzy #| msgid "Copy to Clipboard" msgid "_Copy to Clipboard" msgstr "Kopiraj u međuspremnik" #: src/exm-error-dialog.blp:64 #, fuzzy #| msgid "New Issue" msgid "_New Issue" msgstr "Novi problem" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "Kopirano" #: src/exm-error-dialog.c:179 #, fuzzy #| msgid "" #| "An unexpected error occurred in Extension Manager. Please open a new " #| "issue and attach the following information:" msgid "Please open a new issue and attach the following information:" msgstr "" "Dogodila se neočekivana greška u Upravitelju proširenja. Otvorite novi " "prijavak greške i dodajte sljedeće informacije:" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "Otvori osobitosti proširenja" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "Greška se dogodila pri učitavanju ovog proširenja" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "Ovo proširenje je nekompatibilno s trenutnim GNOME izdanjem" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "Dostupna je nova inačica ovog proširenja" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "Inačica" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "Greška" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "Pogledajte pojedinosti" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "Ukloni" #: src/exm-info-bar.blp:13 #, fuzzy #| msgid "Downloads" msgctxt "Number of downloads" msgid "Downloads" msgstr "Preuzimanje" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "Nepodržano" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "Ovo proširenje je nekompatibilno s trenutnim GNOME izdanjem." #: src/exm-install-button.c:115 msgid "Install" msgstr "Instaliraj" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "Instalirano" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "Proširenja u upotrebi" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "Proširenja mogu uzrokovati probleme s performansama i stabilnosti." #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "Korisnički instalirana proširenja" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "Proširenja sustava" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "Dostupne su nadopune" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "Odjava" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "%d proširenje će se nadopuniti pri sljedećoj prijavi." msgstr[1] "%d proširenja će se nadopuniti pri sljedećoj prijavi." msgstr[2] "%d proširenja će se nadopuniti pri sljedećoj prijavi." #: src/exm-installed-page.c:340 msgid "Browse" msgstr "Pregledaj" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "Nema instaliranih proširenja od strane korisnika." #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "Nema instaliranih proširenja od strane sustava." #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "Pomoćnik nadogradnje" #: src/exm-upgrade-assistant.blp:47 #, fuzzy #| msgid "Check Compatibility" msgid "_Check Compatibility" msgstr "Provjeri kompatibilnost" #: src/exm-upgrade-assistant.c:176 #, fuzzy, c-format #| msgid "Search for extensions" msgid "Checked %d/%d Extensions" msgstr "Pretraga proširenja" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" "GNOME %s podržava %d od %d trenutno instaliranih proširenja na " "sustavu." #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "Podržano" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "Postoji kompatibilna inačica proširenja." #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "Ne postoji kompatibilna inačica proširenja." #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "Napoznato" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" "Ovo proširenje nije objavljeno na extensions.gnome.org. Njegova " "kompatibilnost se ne može odrediti." #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" "Trenutno koristite GNOME %s. U nastavku odaberite GNOME izdanje i " "provjerite hoće li vaša proširenja i dalje biti dostupna." #: src/exm-window.blp:42 msgid "Main Menu" msgstr "" #: src/exm-window.blp:55 #, fuzzy #| msgctxt "Navigation" #| msgid "Installed" msgctxt "Navigation" msgid "_Installed" msgstr "Instalirano" #: src/exm-window.blp:64 #, fuzzy #| msgid "Browse" msgctxt "Navigation" msgid "_Browse" msgstr "Pregledaj" #: src/exm-window.blp:102 #, fuzzy #| msgid "Sort Enabled First" msgid "Sort _Enabled First" msgstr "Omogući razvrstavanje prvo" #: src/exm-window.blp:103 #, fuzzy #| msgid "Show Unsupported" msgid "_Show Unsupported" msgstr "Prikaži nepodržana" #: src/exm-window.blp:106 #, fuzzy #| msgid "Upgrade Assistant" msgid "_Upgrade Assistant" msgstr "Pomoćnik nadogradnje" #: src/exm-window.blp:107 #, fuzzy #| msgid "About Extension Manager" msgid "_About Extension Manager" msgstr "O Upravitelju proširenja" #: src/exm-window.c:179 #, fuzzy #| msgid "User-Installed Extensions" msgid "Uninstall Extension?" msgstr "Korisnički instalirana proširenja" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" #: src/exm-window.c:183 msgid "_No" msgstr "" #: src/exm-window.c:184 msgid "_Yes" msgstr "" #: src/exm-window.c:253 #, fuzzy #| msgid "Use Extensions" msgid "Unsupported Extension" msgstr "Proširenja u upotrebi" #: src/exm-window.c:254 #, fuzzy #| msgid "" #| "This extension does not support your GNOME Shell version.\n" #| "Would you like to install anyway?" msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "Ovo proširenje ne podržava vaše izdanje GNOME ljuske.\n" "Želite li ga unatoč tome instalirati?" #: src/exm-window.c:257 #, fuzzy #| msgid "Install" msgid "_Install Anyway" msgstr "Instaliraj" #: src/exm-window.c:258 msgid "_Go Back" msgstr "" #: src/exm-window.c:365 msgid "An error occurred." msgstr "Greška se dogodila." #: src/exm-window.c:366 msgid "Details" msgstr "Pojedinosti" #~ msgid "Loading…" #~ msgstr "Učitavanje…" #~ msgid "@app_title@" #~ msgstr "@app_title@" #~ msgid "Translation updates" #~ msgstr "Nadopune prijevoda" #~ msgid "Various bug fixes" #~ msgstr "Razni popravci grešaka" #~ msgid "Performance and stability" #~ msgstr "Performanse i stabilnost" #~ msgid "Remove release notes dialog" #~ msgstr "Uklonjen je dijalog bilješka izdanja" #~ msgid "Fix special characters in installed extension listings" #~ msgstr "Popravljeni su posebni znakovi u popisu instaliranih proširenja" #~ msgid "The second feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Druga nadopuna značajki za upravitelja proširenjima. Promjene uključuju:" #~ msgid "View comments and reviews" #~ msgstr "Prikaz komentara i recenzija" #~ msgid "Support for in-app updates" #~ msgstr "Podrška za nadopune u aplikaciji" #~ msgid "Better handling errors and out-of-date extensions" #~ msgstr "Bolje rukovanje greškama i zastarjelim proširenjima" #~ msgid "Allow installing 'unsupported' extensions" #~ msgstr "Omogućavanje instalacije 'nepodržanih' proširenja" #~ msgid "Display release notes on first run" #~ msgstr "Prikaz bilješka izdanja pri prvom pokretanju" #~ msgid "New app icon" #~ msgstr "Nova ikona aplikacije" #~ msgid "Optionally sort extensions by enabled status" #~ msgstr "Neobavezno razvrstavanje proširenja prema omogućenom stanju" #~ msgid "Fix special characters in search results" #~ msgstr "Popravljeni su posebni znakovi u rezultatima pretrage" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "Popravljeno je povremeno rušenje pri instalaciji proširenja" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Prva nadopuna značajki za upravitelja proširenjima. Promjene uključuju:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "Tamnu temu i podršku za zaobilaženje sheme boja sustava" #~ msgid "Shows screenshots in extension listings" #~ msgstr "Prikaz snimki zaslona u popisu proširenja" #~ msgid "Shell version compatibility check" #~ msgstr "Provjera kompatibilnosti inačice ljuske" #~ msgid "Localised into seven languages" #~ msgstr "Lokalizacija u sedam jezika" #~ msgid "Sort search results" #~ msgstr "Razvrstavanje rezultata pretrage" #~ msgid "Global extension on/off toggle" #~ msgstr "Uklj/Isklj globalno proširenje" #~ msgid "Displays user and system extensions separately" #~ msgstr "Zaseban prikaz proširenja korisnika i sustava" #~ msgid "Extension Manager (Development)" #~ msgstr "Upravitelj proširenja (Razvojna inačica)" #~ msgid "Popularity" #~ msgstr "Popularnost" #~ msgid "Supported Versions" #~ msgstr "Podržana izdanja" #~ msgctxt "Navigation" #~ msgid "Browse" #~ msgstr "Pregledaj" #~ msgid "Theme" #~ msgstr "Tema" #~ msgid "Follow System" #~ msgstr "Izgled sustava" #~ msgid "Light" #~ msgstr "Svjetla" #~ msgid "Dark" #~ msgstr "Tamna" #~ msgid "Are you sure you want to uninstall?" #~ msgstr "Sigurno želite ukloniti?" #~ msgid "" #~ "A very simple tool for browsing, downloading, and managing GNOME shell " #~ "extensions." #~ msgstr "" #~ "Jednostavan alat za pregledavanje, preuzimanje i upravljanje proširenjima " #~ "GNOME ljuske." #~ msgid "e.g. \"Blur my Shell\"" #~ msgstr "npr. \"Blur my Shell\"" #~ msgid "What's New" #~ msgstr "Što je novo" #~ msgid "View Release Notes" #~ msgstr "Pogledajte bilješke izdanja" #, c-format #~ msgid "" #~ "This is your first time using Extension Manager %s.\n" #~ "Would you like to see the release notes?" #~ msgstr "" #~ "Ovo je vaše prvo korištenje Upravitelja proširenja %s.\n" #~ "Želite li pogledati bilješke izdanja?" extension-manager-0.5.0/po/hu.po000066400000000000000000000315441457631363100165520ustar00rootroot00000000000000# Hungarian translation for extension-manager package. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # ViBE , 2023-2024. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2024-03-16 18:50+0000\n" "Last-Translator: rdbende \n" "Language-Team: Hungarian \n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.5-dev\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "Kiterjesztés-kezelő" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 msgid "Manage GNOME Shell Extensions" msgstr "GNOME Shell kiterjesztések kezelése" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 msgid "extension;manager;shell;" msgstr "extension;manager;gnome;shell;bővítmény;" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "GNOME Shell kiterjesztések kezelése egy helyen" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "Egy GNOME Shell kiterjesztéseket kezelő alkalmazás." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "Funkciók:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "extensions.gnome.org kiterjesztések böngészése" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "Telepített kiterjesztések kezelése" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "Alkalmazás GNOME Shell kiterjesztések kezeléséhez" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "GNOME Shell kiterjesztések kezelése egy helyen." #: src/exm-application.c:177 msgid "translator-credits" msgstr "" "ViBE \n" "Dévényi Benedek " #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "Kiterjesztések keresése" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "" "Írjon be kulcsszavakat az 'extensions.gnome.org' gyűjteményében való GNOME " "Shell kiterjesztések kereséséhez." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "Relevancia" #: src/exm-browse-page.blp:31 msgctxt "Sort search results" msgid "Downloads" msgstr "Letöltések" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "Legutóbbi" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "Név" #: src/exm-browse-page.blp:61 msgid "_Load More Results" msgstr "További találatok _betöltése" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "Nincs találat" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "például „%s”" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "Megjegyzések" #: src/exm-comment-dialog.blp:37 msgid "Loading Comments" msgstr "Megjegyzések betöltése" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "Hiba történt" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "Készítő" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "Nagyítás" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "Kicsinyítés" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "Visszatérés a részletekhez" #: src/exm-detail-view.blp:106 msgid "Loading Details" msgstr "Részletek betöltése" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "Kép nagyítása" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "Leírás" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "Hivatkozások" #: src/exm-detail-view.blp:232 msgid "Homepage" msgstr "Honlap" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "Megtekintés böngészőben" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "Felhasználói értékelések" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "Nincsenek értékelések." #: src/exm-detail-view.blp:319 msgid "_Show All Reviews" msgstr "_Összes értékelés megtekintése" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "Hiba jelentése" #: src/exm-error-dialog.blp:29 msgid "An unexpected error occurred in Extension Manager." msgstr "Nem várt kivétel történt a kiterjesztés-kezelőben." #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 msgid "_Copy to Clipboard" msgstr "_Másolás vágólapra" #: src/exm-error-dialog.blp:64 msgid "_New Issue" msgstr "_Jelentés" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "Vágólapra másolva" #: src/exm-error-dialog.c:179 msgid "Please open a new issue and attach the following information:" msgstr "Kérem, nyisson egy új hibajelentést és adja meg az alábbi részleteket:" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" "Ön a kiterjesztés-kezelő egy harmadik fél által karbantartott változatát " "használja. Kérem, először a(z) (%s) karbantartóval " "vegye fel a kapcsolatot mielőtt hibát jelent be! Az alábbi részletek " "mellékelése szükséges:" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "Kiterjesztés beállításainak megnyitása" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "Hiba történt a kiterjesztés betöltése során" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "Ez a kiterjesztés nem kompatibilis a telepített GNOME verzióval" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "Frissítés érhető el a kiterejesztéshez" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "Verzió" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "Hiba" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "Részletek megtekintése" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "Eltávolítás" #: src/exm-info-bar.blp:13 msgctxt "Number of downloads" msgid "Downloads" msgstr "Letöltve" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "Nem támogatott" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "Ez a kiterjesztés nem kompatibilis a telepített GNOME verzióval." #: src/exm-install-button.c:115 msgid "Install" msgstr "Telepítés" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "Telepített" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "Kiterjesztések engedélyezése" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "Egyes kiterjesztések használata teljesítmény-csökkenést okozhat." #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "Felhasználó által telepített" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "Előtelepített" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "Frissítés érhető el" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "Kijelentkezés" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "" "Egy kiterjesztés frissítése ütemezve van a következő bejelentkezéskor." msgstr[1] "" "%d kiterjesztés frissítése ütemezve van a következő bejelentkezéskor." #: src/exm-installed-page.c:340 msgid "Browse" msgstr "Böngészés" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "Nincs felhasználó által telepített kiterjesztés." #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "Nincs előtelepített kiterjesztés." #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "Frissítési segéd" #: src/exm-upgrade-assistant.blp:47 msgid "_Check Compatibility" msgstr "_Kompatibilitás ellenőrzése" #: src/exm-upgrade-assistant.c:176 #, c-format msgid "Checked %d/%d Extensions" msgstr "%d/%d kiterjesztés ellenőrizve" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "%d%% kompatibilis" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" "A GNOME %s jelenleg %d kiterjesztést támogat a jelenlegi " "rendszerre telepített %d kiterjesztésből." #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "Támogatott" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "Elérhető kompatibilis változat." #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "Jelenleg nem elérhető kompatibilis változat." #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "Ismeretlen" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" "A kiterjesztés nem az extensions.gnome.org-ról származik. A kompatibilitás " "megállapítása nem lehetséges." #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" "A rendszeren jelenleg a GNOME %sverziója fut. A lenti listán " "kiválaszthatod és ellenőrizheted, hogy az egyes kiterjesztések mely " "verziókkal kompatibilisek." #: src/exm-window.blp:42 msgid "Main Menu" msgstr "Menü" #: src/exm-window.blp:55 msgctxt "Navigation" msgid "_Installed" msgstr "T_elepített" #: src/exm-window.blp:64 msgctxt "Navigation" msgid "_Browse" msgstr "_Tallózás" #: src/exm-window.blp:102 msgid "Sort _Enabled First" msgstr "_Rendezés állapot szerint" #: src/exm-window.blp:103 msgid "_Show Unsupported" msgstr "Nem _támogatottak megjelenítése" #: src/exm-window.blp:106 msgid "_Upgrade Assistant" msgstr "_Frissítési segéd" #: src/exm-window.blp:107 msgid "_About Extension Manager" msgstr "A Kiterjesztés-kezelő _névjegye" #: src/exm-window.c:179 msgid "Uninstall Extension?" msgstr "Eltávolítja a kiterjesztést?" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" "Az eltávolítást követően a kiterjesztés funkciói nem lesznek a továbbiakban " "elérhetőek. Folytatja?" #: src/exm-window.c:183 msgid "_No" msgstr "_Nem" #: src/exm-window.c:184 msgid "_Yes" msgstr "_Igen" #: src/exm-window.c:253 msgid "Unsupported Extension" msgstr "Nem támogatott kiterjesztés" #: src/exm-window.c:254 msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "Ez a kiterjesztés nem kompatibilis a telepített GNOME verzióval. Használata " "hibákat okozhat." #: src/exm-window.c:257 msgid "_Install Anyway" msgstr "_Telepítés mindenképp" #: src/exm-window.c:258 msgid "_Go Back" msgstr "_Vissza" #: src/exm-window.c:365 msgid "An error occurred." msgstr "Hiba történt." #: src/exm-window.c:366 msgid "Details" msgstr "Részletek" #~ msgid "Loading…" #~ msgstr "Betöltés…" extension-manager-0.5.0/po/id_ID.po000066400000000000000000000330451457631363100171040ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2022-02-26 22:41+0700\n" "Last-Translator: \n" "Language-Team: \n" "Language: id_ID\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 3.0.1\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "Pengelola Ekstensi" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 #, fuzzy #| msgid "A utility for managing GNOME Shell Extensions" msgid "Manage GNOME Shell Extensions" msgstr "Sebuah alat untuk mengelola Ekstensi GNOME Shell" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 #, fuzzy #| msgid "Extension Manager" msgid "extension;manager;shell;" msgstr "Pengelola Ekstensi" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 #, fuzzy #| msgid "A utility for managing GNOME Shell Extensions" msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "Sebuah alat untuk mengelola Ekstensi GNOME Shell" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "Sebuah alat untuk menjelajah dan memasang Ekstensi GNOME Shell." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "Fitur:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "Jelajah extensions.gnome.org di dalam aplikasi" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "Kelola ekstensi yang telah Anda pasang" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "Sebuah alat untuk mengelola Ekstensi GNOME Shell" #: src/exm-application.c:175 #, fuzzy #| msgid "A utility for managing GNOME Shell Extensions" msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "Sebuah alat untuk mengelola Ekstensi GNOME Shell" #: src/exm-application.c:177 msgid "translator-credits" msgstr "neko " #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "Cari ekstensi" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "" "Masukan kata kunci untuk mencari 'extensions.gnome.org' untuk Ekstensi Shell " "GNOME." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "" #: src/exm-browse-page.blp:31 #, fuzzy #| msgid "Downloads" msgctxt "Sort search results" msgid "Downloads" msgstr "Unduhan" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "Terkini" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "Nama" #: src/exm-browse-page.blp:61 msgid "_Load More Results" msgstr "" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "Tidak Ada Hasil Yang Ditemukan" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "" #: src/exm-comment-dialog.blp:37 msgid "Loading Comments" msgstr "" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "Sebuah Error Terjadi" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "" #: src/exm-detail-view.blp:106 #, fuzzy #| msgid "See Details" msgid "Loading Details" msgstr "Lihat Detail" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "Deskripsi" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "Tautan" #: src/exm-detail-view.blp:232 #, fuzzy #| msgid "Project Homepage" msgid "Homepage" msgstr "Beranda Proyek" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "Lihat dalam Extensions" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "" #: src/exm-detail-view.blp:319 msgid "_Show All Reviews" msgstr "" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "" #: src/exm-error-dialog.blp:29 msgid "An unexpected error occurred in Extension Manager." msgstr "" #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 msgid "_Copy to Clipboard" msgstr "" #: src/exm-error-dialog.blp:64 msgid "_New Issue" msgstr "" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "" #: src/exm-error-dialog.c:179 msgid "Please open a new issue and attach the following information:" msgstr "" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "" #: src/exm-extension-row.blp:58 #, fuzzy #| msgid "This extension is incompatible with your current version of GNOME." msgid "This extension is incompatible with your current version of GNOME" msgstr "Ekstensi ini tidak cocok untuk versi GNOME kamu." #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "Lihat Detail" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "Hapus" #: src/exm-info-bar.blp:13 #, fuzzy #| msgid "Downloads" msgctxt "Number of downloads" msgid "Downloads" msgstr "Unduhan" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "Tidak didukung" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "Ekstensi ini tidak cocok untuk versi GNOME kamu." #: src/exm-install-button.c:115 msgid "Install" msgstr "Pasang" #: src/exm-install-button.c:120 #, fuzzy #| msgid "Installed" msgctxt "State" msgid "Installed" msgstr "Terpasang" #: src/exm-installed-page.blp:33 #, fuzzy #| msgid "System Extensions" msgid "Use Extensions" msgstr "Ekstensi Sistem" #: src/exm-installed-page.blp:34 #, fuzzy #| msgid "Performance and stability" msgid "Extensions can cause performance and stability issues." msgstr "Performa dan stabilitas" #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "Ekstensi Yang Dipasang Pengguna" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "Ekstensi Sistem" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "" #: src/exm-installed-page.c:340 msgid "Browse" msgstr "Jelajah" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "" #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 #, fuzzy #| msgid "Displays user and system extensions separately" msgid "There are no system extensions installed." msgstr "Tampilkan ekstensi pengguna dan sistem secara terpisah" #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "" #: src/exm-upgrade-assistant.blp:47 msgid "_Check Compatibility" msgstr "" #: src/exm-upgrade-assistant.c:176 #, fuzzy, c-format #| msgid "Search for extensions" msgid "Checked %d/%d Extensions" msgstr "Cari ekstensi" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" #: src/exm-upgrade-assistant.c:512 #, fuzzy #| msgid "Unsupported" msgid "Supported" msgstr "Tidak didukung" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "" #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "" #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" #: src/exm-window.blp:42 msgid "Main Menu" msgstr "" #: src/exm-window.blp:55 #, fuzzy #| msgid "Installed" msgctxt "Navigation" msgid "_Installed" msgstr "Terpasang" #: src/exm-window.blp:64 #, fuzzy #| msgid "Browse" msgctxt "Navigation" msgid "_Browse" msgstr "Jelajah" #: src/exm-window.blp:102 msgid "Sort _Enabled First" msgstr "" #: src/exm-window.blp:103 #, fuzzy #| msgid "Unsupported" msgid "_Show Unsupported" msgstr "Tidak didukung" #: src/exm-window.blp:106 msgid "_Upgrade Assistant" msgstr "" #: src/exm-window.blp:107 #, fuzzy #| msgid "About Extension Manager" msgid "_About Extension Manager" msgstr "Tentang Pengelola Ekstensi" #: src/exm-window.c:179 #, fuzzy #| msgid "User-Installed Extensions" msgid "Uninstall Extension?" msgstr "Ekstensi Yang Dipasang Pengguna" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" #: src/exm-window.c:183 msgid "_No" msgstr "" #: src/exm-window.c:184 msgid "_Yes" msgstr "" #: src/exm-window.c:253 #, fuzzy #| msgid "Supported Versions" msgid "Unsupported Extension" msgstr "Versi Yang Didukung" #: src/exm-window.c:254 msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" #: src/exm-window.c:257 #, fuzzy #| msgid "Install" msgid "_Install Anyway" msgstr "Pasang" #: src/exm-window.c:258 msgid "_Go Back" msgstr "" #: src/exm-window.c:365 #, fuzzy #| msgid "An Error Occurred" msgid "An error occurred." msgstr "Sebuah Error Terjadi" #: src/exm-window.c:366 #, fuzzy #| msgid "See Details" msgid "Details" msgstr "Lihat Detail" #~ msgid "Loading…" #~ msgstr "Memuat…" #~ msgid "Matthew Jakeman" #~ msgstr "Matthew Jakeman" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "" #~ "Memperbaiki crash yang kadang terjadi selama mencopot sebuah ekstensi" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "Pembaruan fitur pertama ke pengelola ekstensi. Sorotan meliputi:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "Tema gelap dan dukungan untuk mengesampingkan skema warna sistem" #~ msgid "Shows screenshots in extension listings" #~ msgstr "Tampilkan tangkapan layar di cantuman ekstensi" #~ msgid "Shell version compatibility check" #~ msgstr "Pengecekan kecocokan versi shell" #~ msgid "Localised into seven languages" #~ msgstr "Dilokalisasi ke tujuh bahasa" #~ msgid "Sort search results" #~ msgstr "Menyortir hasil pencarian" #~ msgid "Global extension on/off toggle" #~ msgstr "Pengalih aktif/nonaktif ekstensi global" #~ msgid "Colour Scheme Preference" #~ msgstr "Preferensi Skema Warna" #~ msgid "" #~ "Whether to follow the system colour scheme or force either light or dark " #~ "mode." #~ msgstr "" #~ "Apakah akan mengikuti skema warna sistem atau memaksa mode terang atau " #~ "gelap." #~ msgid "" #~ "A very simple tool for browsing, downloading, and managing GNOME shell " #~ "extensions." #~ msgstr "" #~ "Sebuah alat yang sangat sederhana untuk menjelajah, mengunduh, dan " #~ "mengelola ekstensi shell GNOME." #~ msgid "e.g. \"Blur my Shell\"" #~ msgstr "contoh \"Blur my Shell\"" #~ msgid "Popularity" #~ msgstr "Kepopuleran" #~ msgid "Theme" #~ msgstr "Tema" #~ msgid "Follow System" #~ msgstr "Ikuti Sistem" #~ msgid "Light" #~ msgstr "Terang" #~ msgid "Dark" #~ msgstr "Gelap" #~ msgid "Keyboard Shortcuts" #~ msgstr "Pintasan Keyboard" #~ msgid "Are you sure you want to uninstall?" #~ msgstr "Apa Anda yakin Anda ingin mencopot?" #~ msgctxt "shortcut window" #~ msgid "General" #~ msgstr "Umum" #~ msgctxt "shortcut window" #~ msgid "Show Shortcuts" #~ msgstr "Tunjukan Pintasan" #~ msgctxt "shortcut window" #~ msgid "Quit" #~ msgstr "Keluar" extension-manager-0.5.0/po/it.po000066400000000000000000000421271457631363100165510ustar00rootroot00000000000000# Italian translation for extension-manager. # Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # musiclover , 2022. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2022-09-25 13:46+0200\n" "Last-Translator: musiclover \n" "Language-Team: \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.1\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "Gestore di estensioni" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 #, fuzzy #| msgid "A utility for managing GNOME Shell Extensions" msgid "Manage GNOME Shell Extensions" msgstr "Uno strumento per gestire le estensioni di GNOME" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 #, fuzzy #| msgid "Extension Manager" msgid "extension;manager;shell;" msgstr "Gestore di estensioni" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 #, fuzzy #| msgid "Browse, install, and manage GNOME Shell Extensions." msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "Sfoglia, installa e gestisci le estensioni di GNOME." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "Uno strumento per cercare e installare estensioni per GNOME." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "Funzionalità:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "Sfoglia extensions.gnome.org direttamente nell'applicazione" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "Gestisci le estensioni già installate" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "Uno strumento per gestire le estensioni di GNOME" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "Sfoglia, installa e gestisci le estensioni di GNOME." #: src/exm-application.c:177 msgid "translator-credits" msgstr "Musiclover382 " #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "Cerca estensioni" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "Inserire un termine per cercare estensioni su 'extensions.gnome.org'." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "" #: src/exm-browse-page.blp:31 #, fuzzy #| msgid "Downloads" msgctxt "Sort search results" msgid "Downloads" msgstr "Scaricamenti" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "Recenti" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "Nome" #: src/exm-browse-page.blp:61 #, fuzzy #| msgid "Load More Results" msgid "_Load More Results" msgstr "Altro" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "Nessun risultato" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "es. “%s”" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "Commenti" #: src/exm-comment-dialog.blp:37 #, fuzzy #| msgid "Comments" msgid "Loading Comments" msgstr "Commenti" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "Si è verificato un errore" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "Ingrandisci" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "Rimpicciolisci" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "Esci" #: src/exm-detail-view.blp:106 #, fuzzy #| msgid "Details" msgid "Loading Details" msgstr "Dettagli" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "Ingrandisci immagine" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "Descrizione" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "" #: src/exm-detail-view.blp:232 #, fuzzy #| msgid "Project Homepage" msgid "Homepage" msgstr "Sito web" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "Pagina di GNOME Extensions" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "Recensioni" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "" #: src/exm-detail-view.blp:319 #, fuzzy #| msgid "Show All Reviews" msgid "_Show All Reviews" msgstr "Mostra tutte le recensioni" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "Errore" #: src/exm-error-dialog.blp:29 #, fuzzy #| msgid "" #| "An unexpected error occurred in Extension Manager. Please open a new " #| "issue and attach the following information:" msgid "An unexpected error occurred in Extension Manager." msgstr "" "Si è verificato un errore imprevisto in Gestore di estensioni. Segnalare il " "problema agli sviluppatori includendo le seguenti informazioni:" #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 #, fuzzy #| msgid "Copy to Clipboard" msgid "_Copy to Clipboard" msgstr "Copia" #: src/exm-error-dialog.blp:64 #, fuzzy #| msgid "New Issue" msgid "_New Issue" msgstr "Segnala" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "Copiato" #: src/exm-error-dialog.c:179 #, fuzzy #| msgid "" #| "An unexpected error occurred in Extension Manager. Please open a new " #| "issue and attach the following information:" msgid "Please open a new issue and attach the following information:" msgstr "" "Si è verificato un errore imprevisto in Gestore di estensioni. Segnalare il " "problema agli sviluppatori includendo le seguenti informazioni:" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "Apri le preferenze dell'estensione" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "Si è verificato un errore durante il caricamento dell'estensione" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "L'estensione non è compatibile con la versione attuale di GNOME" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "È disponibile una nuova versione di questa estensione" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "Versione" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "Errore" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "Dettagli" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "Rimuovi" #: src/exm-info-bar.blp:13 #, fuzzy #| msgid "Downloads" msgctxt "Number of downloads" msgid "Downloads" msgstr "Scaricamenti" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "Non compatibile" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "L'estensione non è compatibile con la versione attuale di GNOME." #: src/exm-install-button.c:115 msgid "Install" msgstr "Installa" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "Installata" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "Estensioni" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "Le estensioni possono causare problemi di prestazioni e stabilità." #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "Estensioni installate dall'utente" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "Estensioni integrate" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "Aggiornamenti disponibili" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "Termina sessione" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "Un'estensione sarà aggiornata al prossimo accesso." msgstr[1] "%d estensioni saranno aggiornate al prossimo accesso." #: src/exm-installed-page.c:340 msgid "Browse" msgstr "Sfoglia" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "Nessuna estensione installata manualmente." #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "Nessuna estensione integrata." #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "Assistente di aggiornamento" #: src/exm-upgrade-assistant.blp:47 #, fuzzy #| msgid "Check Compatibility" msgid "_Check Compatibility" msgstr "Verifica compatibilità" #: src/exm-upgrade-assistant.c:176 #, fuzzy, c-format #| msgid "Search for extensions" msgid "Checked %d/%d Extensions" msgstr "Cerca estensioni" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" "GNOME %s è compatibile con %d delle %d estensioni installate." #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "Compatibile" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "È disponibile una versione compatibile di questa estensione." #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "Non è disponibile una versione compatibile di questa estensione." #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "Sconosciuta" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" "Questa estensione non è distribuita su extensions.gnome.org. Non è possibile " "verificarne la compatibilità." #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" "Attualmente stai usando GNOME %s. Selezionare un'altra versione di " "GNOME per verificare se le estensioni installate saranno ancora disponibili." #: src/exm-window.blp:42 msgid "Main Menu" msgstr "" #: src/exm-window.blp:55 #, fuzzy #| msgctxt "Navigation" #| msgid "Installed" msgctxt "Navigation" msgid "_Installed" msgstr "Installate" #: src/exm-window.blp:64 #, fuzzy #| msgid "Browse" msgctxt "Navigation" msgid "_Browse" msgstr "Sfoglia" #: src/exm-window.blp:102 #, fuzzy #| msgid "Sort Enabled First" msgid "Sort _Enabled First" msgstr "Prima estensioni attive" #: src/exm-window.blp:103 #, fuzzy #| msgid "Show Unsupported" msgid "_Show Unsupported" msgstr "Mostra non compatibili" #: src/exm-window.blp:106 #, fuzzy #| msgid "Upgrade Assistant" msgid "_Upgrade Assistant" msgstr "Assistente di aggiornamento" #: src/exm-window.blp:107 #, fuzzy #| msgid "About Extension Manager" msgid "_About Extension Manager" msgstr "Informazioni" #: src/exm-window.c:179 #, fuzzy #| msgid "User-Installed Extensions" msgid "Uninstall Extension?" msgstr "Estensioni installate dall'utente" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" #: src/exm-window.c:183 msgid "_No" msgstr "" #: src/exm-window.c:184 msgid "_Yes" msgstr "" #: src/exm-window.c:253 #, fuzzy #| msgid "Use Extensions" msgid "Unsupported Extension" msgstr "Estensioni" #: src/exm-window.c:254 #, fuzzy #| msgid "" #| "This extension does not support your GNOME Shell version.\n" #| "Would you like to install anyway?" msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "Questa estensione non supporta la versione installata di GNOME.\n" "Installarla comunque?" #: src/exm-window.c:257 #, fuzzy #| msgid "Install" msgid "_Install Anyway" msgstr "Installa" #: src/exm-window.c:258 msgid "_Go Back" msgstr "" #: src/exm-window.c:365 msgid "An error occurred." msgstr "Si è verificato un errore." #: src/exm-window.c:366 msgid "Details" msgstr "Dettagli" #~ msgid "Loading…" #~ msgstr "Caricamento…" #~ msgid "@app_title@" #~ msgstr "@app_title@" #~ msgid "Translation updates" #~ msgstr "Traduzioni aggiornate" #~ msgid "Various bug fixes" #~ msgstr "Varie correzioni" #~ msgid "Performance and stability" #~ msgstr "Miglioramenti di prestazioni e stabilità" #~ msgid "Remove release notes dialog" #~ msgstr "Rimossa la notifica delle note di rilascio" #~ msgid "Fix special characters in installed extension listings" #~ msgstr "" #~ "Corretta visualizzazione di caratteri speciali nelle estensioni installate" #~ msgid "The second feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Il secondo aggiornamento che aggiunge funzionalità a Gestore di " #~ "estensioni, tra cui:" #~ msgid "View comments and reviews" #~ msgstr "Visualizza commenti e recensioni" #~ msgid "Support for in-app updates" #~ msgstr "Aggiornamenti all'interno dell'applicazione" #~ msgid "Better handling errors and out-of-date extensions" #~ msgstr "Migliore gestione degli errore e delle estensioni obsolete" #~ msgid "Allow installing 'unsupported' extensions" #~ msgstr "Possibilità di installare estensioni \"non supportate\"" #~ msgid "Display release notes on first run" #~ msgstr "Mostra le novità al primo avvio" #~ msgid "New app icon" #~ msgstr "Nuova icona" #~ msgid "Optionally sort extensions by enabled status" #~ msgstr "Opzione per ordinare prima le estensioni attive" #~ msgid "Fix special characters in search results" #~ msgstr "" #~ "Corretta visualizzazione di caratteri speciali nei risultati di ricerca" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "" #~ "Corretto un arresto anomalo durante la disinstallazione di estensioni" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Il primo aggiornamento che aggiunge funzionalità a Gestore di estensioni, " #~ "tra cui:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "Supporto per il tema scuro e per sovrascrivere il tema di sistema" #~ msgid "Shows screenshots in extension listings" #~ msgstr "Mostra le immagini nella lista delle estensioni" #~ msgid "Shell version compatibility check" #~ msgstr "Controllo di compatibilità con la versione di GNOME" #~ msgid "Localised into seven languages" #~ msgstr "Traduzione in sette lingue" #~ msgid "Sort search results" #~ msgstr "Ordinamento dei risultati di ricerca" #~ msgid "Global extension on/off toggle" #~ msgstr "Interruttore globale per le estensioni" #~ msgid "Displays user and system extensions separately" #~ msgstr "" #~ "Mostra separatamente le estensioni integrate e quelle installate " #~ "dall'utente" #~ msgid "Extension Manager (Development)" #~ msgstr "Gestore di estensioni (Development)" #~ msgid "Popularity" #~ msgstr "Popolarità" #~ msgid "Supported Versions" #~ msgstr "Versioni compatibili" #~ msgctxt "Navigation" #~ msgid "Browse" #~ msgstr "Sfoglia" #~ msgid "Theme" #~ msgstr "Tema" #~ msgid "Follow System" #~ msgstr "Sistema" #~ msgid "Light" #~ msgstr "Chiaro" #~ msgid "Dark" #~ msgstr "Scuro" #~ msgid "Are you sure you want to uninstall?" #~ msgstr "Disinstallare l'estensione?" #~ msgid "" #~ "A very simple tool for browsing, downloading, and managing GNOME shell " #~ "extensions." #~ msgstr "" #~ "Uno strumento molto semplice per cercare, scaricare e gestire le " #~ "estensioni di GNOME." #~ msgid "e.g. \"Blur my Shell\"" #~ msgstr "es. \"Blur my Shell\"" #~ msgid "What's New" #~ msgstr "Novità" #~ msgid "View Release Notes" #~ msgstr "Note di rilascio" #, c-format #~ msgid "" #~ "This is your first time using Extension Manager %s.\n" #~ "Would you like to see the release notes?" #~ msgstr "" #~ "È la prima volta che utilizzi Gestore di estensioni %s.\n" #~ "Vuoi leggere le note di rilascio?" extension-manager-0.5.0/po/ja.po000066400000000000000000000421401457631363100165220ustar00rootroot00000000000000# Japanese translations for extension-manager package. # Copyright (C) 2022 extension-manager'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # 小山田 純 , 2022. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2024-03-16 08:50+0000\n" "Last-Translator: Ryo Nakano \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 5.5-dev\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "Extension Manager" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 msgid "Manage GNOME Shell Extensions" msgstr "GNOME Shell 拡張機能 を管理します" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 msgid "extension;manager;shell;" msgstr "extension;manager;shell;" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "GNOME Shell 拡張機能 を検索、インストール、管理します" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "GNOME Shell 拡張機能 を探せてインストールできるユーティリティです。" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "機能:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "アプリ内で extensions.gnome.org を探索できます" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "今までにインストールした拡張機能も管理できます" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "GNOME Shell 拡張機能 を管理するユーティリティ" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "GNOME Shell 拡張機能 を検索、インストール、管理します。" #: src/exm-application.c:177 msgid "translator-credits" msgstr "" "小山田 純 \n" "Ryo Nakano " #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "拡張機能を検索" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "" "キーワードを入力すると extensions.gnome.org にある\n" "GNOME Shell 拡張機能を検索できます。" #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "関連度順" #: src/exm-browse-page.blp:31 msgctxt "Sort search results" msgid "Downloads" msgstr "ダウンロード数順" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "更新順" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "名前順" #: src/exm-browse-page.blp:61 msgid "_Load More Results" msgstr "結果をさらに表示(_L)" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "結果はありません" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "例 “%s”" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "コメント" #: src/exm-comment-dialog.blp:37 msgid "Loading Comments" msgstr "コメントを読み込み中" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "エラーが発生しました" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "作者" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "拡大" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "縮小" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "画像の拡大表示を閉じる" #: src/exm-detail-view.blp:106 msgid "Loading Details" msgstr "詳細を読み込み中" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "画像を拡大表示" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "説明" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "リンク" #: src/exm-detail-view.blp:232 msgid "Homepage" msgstr "ホームページ" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "この拡張機能を extensions.gnome.org で表示" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "レビュー" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "コメントはありません。" #: src/exm-detail-view.blp:319 msgid "_Show All Reviews" msgstr "すべてのレビューを表示(_S)" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "エラーを報告" #: src/exm-error-dialog.blp:29 msgid "An unexpected error occurred in Extension Manager." msgstr "Extension Manager で予期しないエラーが発生しました。" #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 msgid "_Copy to Clipboard" msgstr "クリップボードにコピー(_C)" #: src/exm-error-dialog.blp:64 msgid "_New Issue" msgstr "問題を報告(_N)" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "コピーしました" #: src/exm-error-dialog.c:179 msgid "Please open a new issue and attach the following information:" msgstr "問題を報告して、以下の情報を添付してください:" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" "お使いの Extension Manager は非公式ビルドです。不具合を報告する前に、まずはパッケージ頒布者 (%s) に連絡してください。その" "際、以下の情報を添付してください:" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "拡張機能の設定を開く" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "この拡張機能の読み込み中にエラーが発生しました" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "この拡張機能は、お使いの GNOME のバージョンには、対応していません" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "この拡張機能にアップデートがあります" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "バージョン" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "エラー" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "詳細" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "削除" #: src/exm-info-bar.blp:13 msgctxt "Number of downloads" msgid "Downloads" msgstr "ダウンロード数" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "非対応" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "この拡張機能は、お使いの GNOME のバージョンには、対応していません。" #: src/exm-install-button.c:115 msgid "Install" msgstr "インストール" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "インストール済み" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "GNOME Shell 拡張機能 を使う" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "拡張機能を使うと、動作が安定しなくなるかもしれません。" #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "ユーザーがインストールした拡張機能" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "システムの拡張機能" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "アップデートがあります" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "ログアウト" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "%d個の拡張機能が次回ログイン時にアップデートされます。" #: src/exm-installed-page.c:340 msgid "Browse" msgstr "探す" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "ユーザーがインストールした拡張機能はありません。" #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "システムの拡張機能はありません。" #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "アップグレードアシスタント" #: src/exm-upgrade-assistant.blp:47 msgid "_Check Compatibility" msgstr "互換性を確認(_C)" #: src/exm-upgrade-assistant.c:176 #, c-format msgid "Checked %d/%d Extensions" msgstr "%d/%d の拡張機能を確認済み" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "%d%% 完了" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "GNOME %s には、%d/%d個 の拡張機能が対応しています。" #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "対応" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "この拡張機能は、指定した GNOME のバージョンとの互換性があります。" #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "この拡張機能は、指定した GNOME のバージョンとの互換性がありません。" #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "不明" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" "この拡張機能は、extensions.gnome.org でホストされていません。そのため互換性が" "あるかを判断できません。" #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" "このシステムは GNOME %s を実行しています。プルダウンメニューから " "GNOME のバージョンを選んで、今使っている拡張機能がそのバージョンでも使えるか" "を確認できます。" #: src/exm-window.blp:42 msgid "Main Menu" msgstr "メインメニュー" #: src/exm-window.blp:55 msgctxt "Navigation" msgid "_Installed" msgstr "インストール済(_I)" #: src/exm-window.blp:64 msgctxt "Navigation" msgid "_Browse" msgstr "探す(_B)" #: src/exm-window.blp:102 msgid "Sort _Enabled First" msgstr "有効な拡張機能を優先表示(_E)" #: src/exm-window.blp:103 msgid "_Show Unsupported" msgstr "非対応の拡張機能も検索結果に表示(_U)" #: src/exm-window.blp:106 msgid "_Upgrade Assistant" msgstr "アップグレードアシスタント(_U)" #: src/exm-window.blp:107 msgid "_About Extension Manager" msgstr "Extension Manager について(_A)" #: src/exm-window.c:179 msgid "Uninstall Extension?" msgstr "拡張機能を削除しますか?" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "この拡張機能を利用できなくなります。削除しますか?" #: src/exm-window.c:183 msgid "_No" msgstr "いいえ(_N)" #: src/exm-window.c:184 msgid "_Yes" msgstr "はい(_Y)" #: src/exm-window.c:253 msgid "Unsupported Extension" msgstr "非対応の拡張機能" #: src/exm-window.c:254 msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "この拡張機能は、この GNOME Shell のバージョンに対応していません。インストール" "すると、エラーが発生する可能性があります。" #: src/exm-window.c:257 msgid "_Install Anyway" msgstr "強制的にインストール(_I)" #: src/exm-window.c:258 msgid "_Go Back" msgstr "戻る(_G)" #: src/exm-window.c:365 msgid "An error occurred." msgstr "エラーが発生しました。" #: src/exm-window.c:366 msgid "Details" msgstr "詳細" #~ msgid "Loading…" #~ msgstr "読み込み中…" #~ msgid "@app_title@" #~ msgstr "@app_title@" #~ msgid "Translation updates" #~ msgstr "翻訳のアップデート" #~ msgid "Various bug fixes" #~ msgstr "様々なバグ修正" #~ msgid "Performance and stability" #~ msgstr "パフォーマンスと安定性の向上" #~ msgid "Remove release notes dialog" #~ msgstr "リリースノートダイアログを廃止" #~ msgid "Fix special characters in installed extension listings" #~ msgstr "追加済み拡張機能のリストの特殊文字に関する修正" #~ msgid "The second feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Extension Manager の2回目の機能アップデートです。主な内容は次のとおりで" #~ "す :" #~ msgid "View comments and reviews" #~ msgstr "拡張機能のレビューが読めるように" #~ msgid "Support for in-app updates" #~ msgstr "このアプリからの拡張機能のアップデートが可能に" #~ msgid "Better handling errors and out-of-date extensions" #~ msgstr "エラーや古い拡張機能への対応を強化" #~ msgid "Allow installing 'unsupported' extensions" #~ msgstr "" #~ "使用している GNOME Shell のバージョンに未対応の拡張機能もインストール可能" #~ "に" #~ msgid "Display release notes on first run" #~ msgstr "リリースノートをアップデート後に表示" #~ msgid "New app icon" #~ msgstr "アプリのアイコンを変更" #~ msgid "Optionally sort extensions by enabled status" #~ msgstr "" #~ "追加済のタブにおいて、有効になっている拡張機能が上に表示されるオプションが" #~ "追加" #~ msgid "Fix special characters in search results" #~ msgstr "検索結果の特殊文字に関する修正" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "拡張機能の削除中に、クラッシュする問題を修正しました" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Extension Manager の初めてのアップデートです。主な内容は次のとおりです :" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "" #~ "ダークテーマを追加し、システムのライト・ダークテーマに合わせることができる" #~ "ようになりました" #~ msgid "Shows screenshots in extension listings" #~ msgstr "拡張機能のスクリーンショットを、見られるようになりました" #~ msgid "Shell version compatibility check" #~ msgstr "" #~ "拡張機能が対応しているGNOMEShellのバージョンが、わかるようになりました" #~ msgid "Localised into seven languages" #~ msgstr "7言語に翻訳されました" #~ msgid "Sort search results" #~ msgstr "検索結果の並べ替えが、できるようになりました" #~ msgid "Global extension on/off toggle" #~ msgstr "すべての拡張機能をOFFにできる、トグルスイッチが追加されました" #~ msgid "Displays user and system extensions separately" #~ msgstr "拡張機能の開発者の名前を、表示するようになりました" #~ msgid "Extension Manager (Development)" #~ msgstr "Extension Manager (開発版)" #~ msgid "Popularity" #~ msgstr "人気順" #~ msgid "Supported Versions" #~ msgstr "対応するGNOMEのバージョン" #~ msgctxt "Navigation" #~ msgid "Browse" #~ msgstr "探す" #~ msgid "Theme" #~ msgstr "テーマ" #~ msgid "Follow System" #~ msgstr "システムのテーマ" #~ msgid "Light" #~ msgstr "ライトテーマ" #~ msgid "Dark" #~ msgstr "ダークテーマ" #~ msgid "Are you sure you want to uninstall?" #~ msgstr "この拡張機能を削除しますか?" extension-manager-0.5.0/po/ko.po000066400000000000000000000412671457631363100165520ustar00rootroot00000000000000# Copyright (C) 2023 Matthew Jakeman # This file is distributed under the same license as the extension-manager package. # Ensup Choi , 2023. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2023-12-11 15:20+0900\n" "Last-Translator: Ensup Choi \n" "Language-Team: \n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 3.4\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "확장 관리자" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 msgid "Manage GNOME Shell Extensions" msgstr "GNOME Shell 확장 관리" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 #, fuzzy #| msgid "extension;manager;" msgid "extension;manager;shell;" msgstr "extension;manager;" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "GNOME Shell 확장을 검색, 설치, 관리합니다" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "GNOME Shell 확장 검색과 설치를 위한 프로그램." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "특징:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "앱 내에서 extensions.gnome.org를 검색할 수 있습니다" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "이미 설치한 확장 관리" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "GNOME Shell 확장 관리를 위한 프로그램" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "GNOME Shell 확장을 검색, 설치, 관리합니다." #: src/exm-application.c:177 msgid "translator-credits" msgstr "Ensup Choi " #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "확장 검색" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "" "'extensions.gnome.org '에서 GNOME Shell 확장을 검색하려면 키워드를 입력합니" "다." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "관련성" #: src/exm-browse-page.blp:31 msgctxt "Sort search results" msgid "Downloads" msgstr "다운로드순" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "최근순" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "이름순" #: src/exm-browse-page.blp:61 msgid "_Load More Results" msgstr "_더 많은 결과 로드" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "결과 없음" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "예를 들어, “%s”" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "댓글" #: src/exm-comment-dialog.blp:37 #, fuzzy #| msgid "Comments" msgid "Loading Comments" msgstr "댓글" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "오류가 발생했습니다" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "저자" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "줌 인" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "줌 아웃" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "보기로 돌아가기" #: src/exm-detail-view.blp:106 #, fuzzy #| msgid "Details" msgid "Loading Details" msgstr "세부 사항" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "이미지 확대" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "설명" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "링크" #: src/exm-detail-view.blp:232 msgid "Homepage" msgstr "홈페이지" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "확장 보기" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "사용자 리뷰" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "댓글이 없습니다." #: src/exm-detail-view.blp:319 msgid "_Show All Reviews" msgstr "_모든 리뷰 보기" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "오류 보고" #: src/exm-error-dialog.blp:29 msgid "An unexpected error occurred in Extension Manager." msgstr "확장 관리자에서 예상하지 못한 오류가 발생했습니다." #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 msgid "_Copy to Clipboard" msgstr "_클립보드에 붙여넣기" #: src/exm-error-dialog.blp:64 msgid "_New Issue" msgstr "_새 이슈" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "복사됨" #: src/exm-error-dialog.c:179 msgid "Please open a new issue and attach the following information:" msgstr "새 이슈를 열고 다음 정보를 첨부하십시오:" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" "확장 관리자의 타사 빌드를 사용하고 있습니다. 문제를 제기하기 전에 먼저 패키지 배포업체 (%s)에 문의하십시오. 다음 정보를 첨부" "해야 합니다:" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "확장 환경설정 열기" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "이 확장을 불러오는 중 오류가 발생했습니다" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "이 확장은 사용자의 현재 GNOME 버전과 호환되지 않습니다" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "이 확장의 새 버전이 사용 가능합니다" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "버전" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "오류" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "세부 사항 보기" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "제거" #: src/exm-info-bar.blp:13 msgctxt "Number of downloads" msgid "Downloads" msgstr "다운로드수" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "지원 안됨" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "이 확장은 현재 GNOME 버전과 호환되지 않습니다." #: src/exm-install-button.c:115 msgid "Install" msgstr "설치" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "설치됨" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "확장 사용" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "확장 사용은 성능과 안정성 문제를 일으킬 수 있습니다." #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "사용자 설치 확장" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "시스템 확장" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "업데이트 가능" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "로그아웃" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "%d개의 확장이 다음 로그인시에 업데이트됩니다." #: src/exm-installed-page.c:340 msgid "Browse" msgstr "찾아보기" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "사용자 확장이 설치되지 않았습니다." #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "시스템 확장이 설치되지 않았습니다." #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "업그레이드 도우미" #: src/exm-upgrade-assistant.blp:47 msgid "_Check Compatibility" msgstr "_호한성 확인" #: src/exm-upgrade-assistant.c:176 #, fuzzy, c-format #| msgid "Checked %d/%d extensions" msgid "Checked %d/%d Extensions" msgstr "%d/%d 확장 확인됨" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "%d%% 호환됨" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" "GNOME %s은(는) 현재 시스템에 설치된 확장 프로그램 중 %d 중 %d>를 지" "원합니다." #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "지원됨" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "호환되는 버전의 확장이 있습니다." #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "호환되는 버전의 확장이 없습니다." #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "알 수 없음" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" "이 확장은 extensions.gnome.org에 호스트 되지 않았습니다. 호환성을 확인할 수 " "없습니다." #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" "현재 GNOME %s을 사용중 입니다. 아래 GNOME 버전을 선택하고 확장 기능을 " "계속 사용할 수 있는지 확인합니다." #: src/exm-window.blp:42 msgid "Main Menu" msgstr "메인 메뉴" #: src/exm-window.blp:55 msgctxt "Navigation" msgid "_Installed" msgstr "_설치된 확장" #: src/exm-window.blp:64 msgctxt "Navigation" msgid "_Browse" msgstr "_확장 검색" #: src/exm-window.blp:102 #, fuzzy #| msgid "Sort Enabled First" msgid "Sort _Enabled First" msgstr "활성화된 것부터 정렬" #: src/exm-window.blp:103 #, fuzzy #| msgid "Show Unsupported" msgid "_Show Unsupported" msgstr "지원되지 않는 확장 표시" #: src/exm-window.blp:106 #, fuzzy #| msgid "Upgrade Assistant" msgid "_Upgrade Assistant" msgstr "업그레이드 도우미" #: src/exm-window.blp:107 #, fuzzy #| msgid "About Extension Manager" msgid "_About Extension Manager" msgstr "확장 관리자에 대하여" #: src/exm-window.c:179 msgid "Uninstall Extension?" msgstr "확장을 제거할까요?" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" "확장 프로그램의 특징과 기능에 더 이상 액세스할 수 없게 됩니다. 정말 제거하시" "겠습니까?" #: src/exm-window.c:183 msgid "_No" msgstr "_아니오" #: src/exm-window.c:184 msgid "_Yes" msgstr "_예" #: src/exm-window.c:253 msgid "Unsupported Extension" msgstr "지원되지 않는 확장" #: src/exm-window.c:254 msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "이 확장을 사용자의 GNOME Shell 버전을 지원하지 않습니다. 설치할 시 오류를 일" "으킬 수 있습니다." #: src/exm-window.c:257 msgid "_Install Anyway" msgstr "_아무튼 설치" #: src/exm-window.c:258 msgid "_Go Back" msgstr "_돌아가기" #: src/exm-window.c:365 msgid "An error occurred." msgstr "오류가 발생했습니다." #: src/exm-window.c:366 msgid "Details" msgstr "세부 사항" #~ msgid "Loading…" #~ msgstr "로딩중…" #~ msgid "@app_title@" #~ msgstr "@app_title@" #~ msgid "HOTFIX: Fix broken 'recent' and 'popularity' search filters" #~ msgstr "HOTFIX: 고장난 '최근순'과 '인기순' 검색 필터 고침" #~ msgid "Various stability and correctness fixes" #~ msgstr "다양한 안정성과 정확성 고침" #~ msgid "Translation updates" #~ msgstr "번역 업데이트" #~ msgid "Upgrade Assistant scroll fix" #~ msgstr "업그레이드 도우미 고침" #~ msgid "Pixel perfect app icon" #~ msgstr "완벽한 픽셀 앱 아이콘" #~ msgid "Official snap support" #~ msgstr "공식 Snap 지원" #~ msgid "Improved error log generation" #~ msgstr "개선된 오류 로그 생성" #~ msgid "Fully adaptive mobile-friendly user interface" #~ msgstr "적응형 모바일 친화적인 사용자 인터페이스" #~ msgid "Paginated search results" #~ msgstr "페이지 매겨진 검색 결과" #~ msgid "Upgrade Assistant for checking extension compatibility" #~ msgstr "확장 프로그램 호환성 확인을 위한 업그레이드 도우미" #~ msgid "Unsupported extensions are hidden by default" #~ msgstr "지원되지 않는 확장은 기본적으로 숨겨져 있습니다" #~ msgid "Overhauled error and crash reporting" #~ msgstr "오류 및 충돌 보고 검사" #~ msgid "Full-screen image viewer" #~ msgstr "전체화면 이미지 뷰어" #~ msgid "Handles new gnome-extensions:// URI scheme" #~ msgstr "새 gnome-extensions:// URI scheme 처리" #~ msgid "Randomised extension suggestions" #~ msgstr "랜덤 확장 추천" #~ msgid "Performance and stability" #~ msgstr "성능과 안정성" #~ msgid "Various bug fixes" #~ msgstr "다양한 버그 고침" #~ msgid "Remove release notes dialog" #~ msgstr "릴리스 노트 대화 상자 제거" #~ msgid "Fix special characters in installed extension listings" #~ msgstr "설치된 확장 목록에서 특수 문자 수정" #~ msgid "The second feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "확장 관리자에 대한 두 번째 기능 업데이트입니다. 하이라이트는 다음과 같습니" #~ "다:" #~ msgid "View comments and reviews" #~ msgstr "댓글과 리뷰 보기" #~ msgid "Support for in-app updates" #~ msgstr "인앱 업데이트 지원" #~ msgid "Better handling errors and out-of-date extensions" #~ msgstr "오류 및 오래된 확장 처리 능력 향상" #~ msgid "Allow installing 'unsupported' extensions" #~ msgstr "'지원되지 않는' 확장 설치 허용" #~ msgid "Display release notes on first run" #~ msgstr "첫 실행시 릴리즈 노트 띄우기" #~ msgid "New app icon" #~ msgstr "새 앱 아이콘" #~ msgid "Optionally sort extensions by enabled status" #~ msgstr "선택적으로 사용 가능한 상태별로 확장 정렬" #~ msgid "Fix special characters in search results" #~ msgstr "검색 결과에서 특수 문자 수정" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "확장을 제거하는 동안 종종 발생하는 충돌을 수정합니다" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "확장 관리자에 대한 첫 번째 기능 업데이트입니다. 하이라이트는 다음을 포함합" #~ "니다:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "어두운 테마와 시스템 색상 체계를 무시하기 위한 지원" #~ msgid "Shows screenshots in extension listings" #~ msgstr "확장 목록에 스크린샷을 표시합니다" #~ msgid "Shell version compatibility check" #~ msgstr "Shell 버전 호한성 체크" #~ msgid "Localised into seven languages" #~ msgstr "일곱 언어로 현지화되었습니다" #~ msgid "Sort search results" #~ msgstr "검색 결과 정렬" #~ msgid "Global extension on/off toggle" #~ msgstr "전역 확장 on/off 토글" #~ msgid "Displays user and system extensions separately" #~ msgstr "사용자 및 시스템 확장을 별도로 표시합니다" #~ msgid "Extension Manager (Development)" #~ msgstr "확장 관리자 (개발 버전)" extension-manager-0.5.0/po/meson.build000066400000000000000000000000621457631363100177270ustar00rootroot00000000000000i18n.gettext('extension-manager', preset: 'glib') extension-manager-0.5.0/po/nb.po000066400000000000000000000400561457631363100165330ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # FIRST AUTHOR , YEAR. # John Erling Blad , 2022. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2024-03-16 23:09+0000\n" "Last-Translator: Brage Fuglseth \n" "Language-Team: Norwegian Bokmål \n" "Language: nb\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.5-dev\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "Extension Manager" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 msgid "Manage GNOME Shell Extensions" msgstr "Installer og administrer utvidelser" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 msgid "extension;manager;shell;" msgstr "" "utvidelser;utvidelsesbehandling;utvidelseshåndtering;utvidelsesadministrering" ";GNOME;shell;skall;" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "Installer og administrer utvidelser" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "" "Ønsker du å endre oppførselen eller utseendet til GNOME-systemet ditt? Det " "kan du gjøre med utvidelser." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "Med Extension Manager er det lett å komme i gang:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "Utforsk og last ned nye utvidelser" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "Administrer og still inn allerede installerte utvidelser" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "Installer og administrer utvidelser" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "Installer og administrer utvidelser" #: src/exm-application.c:177 msgid "translator-credits" msgstr "Brage Fuglseth https://bragefuglseth.dev" #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "Søk etter utvidelser" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "Begynn å skrive for å søke etter utvidelser på extensions.gnome.org." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "Relevans" #: src/exm-browse-page.blp:31 msgctxt "Sort search results" msgid "Downloads" msgstr "Nedlastinger" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "Nylighet" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "Navn" #: src/exm-browse-page.blp:61 msgid "_Load More Results" msgstr "_Last inn mer" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "Ingen treff" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "F.eks. «%s»" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "Anmeldelser" #: src/exm-comment-dialog.blp:37 msgid "Loading Comments" msgstr "Laster inn anmeldelser" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "Noe gikk galt" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "Utvikler" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "Forstørr" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "Forminsk" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "Gå tilbake" #: src/exm-detail-view.blp:106 msgid "Loading Details" msgstr "Laster inn informasjon" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "Forstørr bilde" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "Beskrivelse" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "Lenker" #: src/exm-detail-view.blp:232 msgid "Homepage" msgstr "Nettsted" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "Side på extensions.gnome.org" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "Anmeldelser" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "Det er ingen anmeldelser ennå." #: src/exm-detail-view.blp:319 msgid "_Show All Reviews" msgstr "_Vis alle anmeldelser" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "Feilmelding" #: src/exm-error-dialog.blp:29 msgid "An unexpected error occurred in Extension Manager." msgstr "Noe gikk galt med Extension Manager." #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 msgid "_Copy to Clipboard" msgstr "_Kopier" #: src/exm-error-dialog.blp:64 msgid "_New Issue" msgstr "_Ny sak" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "Kopiert" #: src/exm-error-dialog.c:179 msgid "Please open a new issue and attach the following information:" msgstr "Åpne en ny sak og oppgi følgende informasjon:" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" "Du bruker en uoffisielt distribuert versjon av Extension Manager. Kontakt leverandøren av pakken (%s) først før du " "åpner en ny sak. Oppgi følgende informasjon:" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "Åpne innstillinger" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "Noe gikk galt under innlastingen" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "Denne utvidelsen er inkompatibel med GNOME-versjonen din" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "En nyere versjon av denne utvidelsen er tilgjengelig" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "Versjon" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "Feil" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "Se detaljer" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "Fjern" #: src/exm-info-bar.blp:13 msgctxt "Number of downloads" msgid "Downloads" msgstr "Nedlastinger" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "Støttes ikke" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "Denne utvidelsen er inkompatibel med GNOME-versjonen din" #: src/exm-install-button.c:115 msgid "Install" msgstr "Installer" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "Installert" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "Bruk utvidelser" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "Utvidelser kan skape problemer med ytelse og stabilitet." #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "Installert" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "System" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "Oppdateringer tilgjengelig" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "Logg ut" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "1 utvidelse vil oppdateres ved neste innlogging" msgstr[1] "%d utvidelser vil oppdateres ved neste innlogging" #: src/exm-installed-page.c:340 msgid "Browse" msgstr "Utforsk" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "Ingen utvidelser installert." #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "Ingen systemutvidelser." #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "Oppdateringssjekk" #: src/exm-upgrade-assistant.blp:47 msgid "_Check Compatibility" msgstr "_Sjekk kompatibilitet" #: src/exm-upgrade-assistant.c:176 #, c-format msgid "Checked %d/%d Extensions" msgstr "Sjekker %d/%d" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "%d %% kompatibelt" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" "GNOME %s støtter %d av %d nåværende utvidelser på systemet." #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "Støttet" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "Utvidelsen har en kompatibel versjon" #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "Utvidelsen har ikke en kompatibel versjon" #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "Ukjent" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" "Denne utvidelsen er ikke fra extensions.gnome.org. Kompabiliteten kan ikke " "sjekkes." #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" "Du bruker GNOME %s. Velg en GNOME-versjon under for å sjekke om " "utvidelsene dine fortsatt er tilgjengelige." #: src/exm-window.blp:42 msgid "Main Menu" msgstr "Hovedmeny" #: src/exm-window.blp:55 msgctxt "Navigation" msgid "_Installed" msgstr "_Installert" #: src/exm-window.blp:64 msgctxt "Navigation" msgid "_Browse" msgstr "_Utforsk" #: src/exm-window.blp:102 msgid "Sort _Enabled First" msgstr "Vis _påslåtte først" #: src/exm-window.blp:103 msgid "_Show Unsupported" msgstr "Vis _ustøttede" #: src/exm-window.blp:106 msgid "_Upgrade Assistant" msgstr "Oppdaterings_sjekk" #: src/exm-window.blp:107 msgid "_About Extension Manager" msgstr "_Om Extension Manager" #: src/exm-window.c:179 msgid "Uninstall Extension?" msgstr "Fjerne utvidelse?" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" "Utvidelsens funksjoner kommer til å fjernes fra systemet, og vil ikke være " "tilgjengelige lenger" #: src/exm-window.c:183 msgid "_No" msgstr "_Avbryt" #: src/exm-window.c:184 msgid "_Yes" msgstr "_Fjern" #: src/exm-window.c:253 msgid "Unsupported Extension" msgstr "Ustøttet utvidelse" #: src/exm-window.c:254 msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "Denne utvidelsen støtter ikke GNOME-versjonen din. Den kan skape problemer " "hvis den installeres." #: src/exm-window.c:257 msgid "_Install Anyway" msgstr "_Installer" #: src/exm-window.c:258 msgid "_Go Back" msgstr "_Avbryt" #: src/exm-window.c:365 msgid "An error occurred." msgstr "Noe gikk galt." #: src/exm-window.c:366 msgid "Details" msgstr "Informasjon" #~ msgid "Loading…" #~ msgstr "Laster inn…" #~ msgid "@app_title@" #~ msgstr "@app_title@" #~ msgid "Translation updates" #~ msgstr "Oversettelsesoppdateringer" #~ msgid "Various bug fixes" #~ msgstr "Ulike feilrettinger" #~ msgid "Performance and stability" #~ msgstr "Ytelse og stabilitet" #~ msgid "Remove release notes dialog" #~ msgstr "Fjern dialogboksen for versjonsnotater" #~ msgid "Fix special characters in installed extension listings" #~ msgstr "Rett opp spesialtegn i installerte utvidelsesoppføringer" #~ msgid "The second feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Den andre funksjonsoppdateringen til Utvidelsesadministrasjon. " #~ "Høydepunkter inkluderer:" #~ msgid "View comments and reviews" #~ msgstr "Se kommentarer og anmeldelser" #~ msgid "Support for in-app updates" #~ msgstr "Støtte for oppdateringer i appen" #~ msgid "Better handling errors and out-of-date extensions" #~ msgstr "Bedre håndtering av feil og utdaterte utvidelser" #~ msgid "Allow installing 'unsupported' extensions" #~ msgstr "Tillat installasjon av 'ustøttede' utvidelser" #~ msgid "Display release notes on first run" #~ msgstr "Vis utgivelsesnotater ved første kjøring" #~ msgid "New app icon" #~ msgstr "Nytt app-ikon" #~ msgid "Optionally sort extensions by enabled status" #~ msgstr "Valgfri sortering av utvidelser etter aktivert status" #~ msgid "Fix special characters in search results" #~ msgstr "Rett opp spesialtegn i søkeresultater" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "" #~ "Fikser et krasj som noen ganger opptrer under under avinstallering av en " #~ "utvidelse" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Den første funksjonsoppdateringen til Utvidelsesadministrasjon. " #~ "Høydepunkter inkluderer:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "Mørkt tema og støtte for å overstyre systemets fargeskjema" #~ msgid "Shows screenshots in extension listings" #~ msgstr "Vis skjermskudd i listingen av utvidelser" #~ msgid "Shell version compatibility check" #~ msgstr "Kompatibilitetssjekk av skallversjon" #~ msgid "Localised into seven languages" #~ msgstr "Lokalisert til syv språk" #~ msgid "Sort search results" #~ msgstr "Sorter søkeresultatene" #~ msgid "Global extension on/off toggle" #~ msgstr "Global av/på for utvidelser" #~ msgid "Displays user and system extensions separately" #~ msgstr "Vis bruker- og systemutvidelser separat" #~ msgid "Extension Manager (Development)" #~ msgstr "Utvidelsesadministrering (Utvikling)" #~ msgid "Popularity" #~ msgstr "Popularitet" #~ msgid "Supported Versions" #~ msgstr "Støttede versjoner" #~ msgctxt "Navigation" #~ msgid "Browse" #~ msgstr "Bla" #~ msgid "Theme" #~ msgstr "Tema" #~ msgid "Follow System" #~ msgstr "Følg systemet" #~ msgid "Light" #~ msgstr "Lyst" #~ msgid "Dark" #~ msgstr "Mørkt" #~ msgid "Are you sure you want to uninstall?" #~ msgstr "Er du sikker på at du ønsker å avinstallere?" #~ msgid "Matthew Jakeman" #~ msgstr "Matthew Jakeman" #~ msgid "Colour Scheme Preference" #~ msgstr "Preferanse for fargevalg" #~ msgid "" #~ "Whether to follow the system colour scheme or force either light or dark " #~ "mode." #~ msgstr "" #~ "Om systemets fargeskjema følges, eller om lys eller mørk modus brukes." #~ msgid "" #~ "A very simple tool for browsing, downloading, and managing GNOME shell " #~ "extensions." #~ msgstr "" #~ "Et veldig enkelt verktøy for å bla gjennom, laste ned og administrere " #~ "GNOME-skallutvidelser." #~ msgid "e.g. \"Blur my Shell\"" #~ msgstr "e.g. «Tilslør skallet mitt»" #~ msgid "Keyboard Shortcuts" #~ msgstr "Tastatursnarveier" #~ msgctxt "shortcut window" #~ msgid "General" #~ msgstr "Generelt" #~ msgctxt "shortcut window" #~ msgid "Show Shortcuts" #~ msgstr "Vis snarveier" #~ msgctxt "shortcut window" #~ msgid "Quit" #~ msgstr "Avslutt" extension-manager-0.5.0/po/nl.po000066400000000000000000000440131457631363100165420ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2024-03-17 11:07+0000\n" "Last-Translator: Philip Goto \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.5-dev\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "Uitbreidings­beheer" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 msgid "Manage GNOME Shell Extensions" msgstr "Beheer GNOME Shell-uitbreidingen" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 msgid "extension;manager;shell;" msgstr "extension;manager;shell;uitbreiding;extensie;beheer;" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "Ontdek, installeer en beheer GNOME Shell-uitbreidingen" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "" "Een app voor het ontdekken en installeren van GNOME Shell-uitbreidingen." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "Functies:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "" "Blader door uitbreidingen van extensions.gnome.org recht­streeks in de app" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "Beheer de reeds geïnstalleerde uitbreidingen" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "Een app voor het beheren van GNOME Shell-uitbreidingen" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "Ontdek, installeer en beheer GNOME Shell-uitbreidingen." #: src/exm-application.c:177 msgid "translator-credits" msgstr "" "Heimen Stoffels \n" "Philip Goto https://philipgoto.nl/" #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "Zoeken naar uitbreidingen" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "" "Voer een zoekterm in om ‘extensions.gnome.org’ te doorzoeken op GNOME Shell-" "uitbreidingen." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "Relevantie" #: src/exm-browse-page.blp:31 msgctxt "Sort search results" msgid "Downloads" msgstr "Downloads" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "Recent" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "Naam" #: src/exm-browse-page.blp:61 msgid "_Load More Results" msgstr "_Meer resultaten laden" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "Geen resultaten gevonden" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "bijv. ‘%s’" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "Opmerkingen" #: src/exm-comment-dialog.blp:37 msgid "Loading Comments" msgstr "Opmerkingen laden" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "Er is een fout opgetreden" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "Auteur" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "Inzoomen" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "Uitzoomen" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "Terug naar weergave" #: src/exm-detail-view.blp:106 msgid "Loading Details" msgstr "Details laden" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "Afbeelding vergroten" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "Omschrijving" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "Links" #: src/exm-detail-view.blp:232 msgid "Homepage" msgstr "Start­pagina" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "Uitbreidings­pagina openen" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "Beoordelingen" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "Er zijn geen opmerkingen." #: src/exm-detail-view.blp:319 msgid "_Show All Reviews" msgstr "_Alle beoordelingen tonen" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "Fout­melding" #: src/exm-error-dialog.blp:29 msgid "An unexpected error occurred in Extension Manager." msgstr "Er is een onverwachte fout opgetreden in Uitbreidings­beheer." #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 msgid "_Copy to Clipboard" msgstr "_Kopiëren naar klem­bord" #: src/exm-error-dialog.blp:64 msgid "_New Issue" msgstr "_Nieuwe issue" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "Gekopieerd" #: src/exm-error-dialog.c:179 msgid "Please open a new issue and attach the following information:" msgstr "Open een nieuwe issue en voeg de volgende informatie toe:" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" "U gebruikt een build van Uitbreidings­beheer van derden. Neem eerst contact op met de pakket­distributeur (%s) voordat u " "een probleem indient. Zorg ervoor dat u de volgende informatie bijvoegt:" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "Uitbreidings­voorkeuren openen" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "Er is een fout opgetreden tijdens het laden" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "Deze uitbreiding is niet compatibel met uw huidige versie van GNOME" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "Er is een nieuwe versie beschikbaar" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "Versie" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "Fout" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "Details tonen" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "Verwijderen" #: src/exm-info-bar.blp:13 msgctxt "Number of downloads" msgid "Downloads" msgstr "Downloads" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "Niet-ondersteund" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "Deze uitbreiding is niet compatibel met uw huidige versie van GNOME." #: src/exm-install-button.c:115 msgid "Install" msgstr "Installeren" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "Geïnstalleerd" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "Uitbreidingen gebruiken" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "" "Let op: uitbreidingen kunnen de prestaties en stabiliteit van uw systeem " "beïnvloeden." #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "Zelf-geïnstalleerde uitbreidingen" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "Systeem­uitbreidingen" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "Er zijn updates beschikbaar" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "Uitloggen" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "Na de volgende aanmelding wordt er één uitbreiding bijgewerkt." msgstr[1] "Na de volgende aanmelding worden er %d uitbreidingen bijgewerkt." #: src/exm-installed-page.c:340 msgid "Browse" msgstr "Ontdekken" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "Er zijn geen zelf-geïnstalleerde uitbreidingen geïnstalleerd." #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "Er zijn geen systeem­uitbreidingen geïnstalleerd." #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "Bijwerk­assistent" #: src/exm-upgrade-assistant.blp:47 msgid "_Check Compatibility" msgstr "_Compatibiliteit controleren" #: src/exm-upgrade-assistant.c:176 #, c-format msgid "Checked %d/%d Extensions" msgstr "%d/%d uitbreidingen gecontroleerd" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "%d%% Compatibel" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" "GNOME %s ondersteunt %d van de %d de op uw systeem aanwezige " "uitbreidingen." #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "Ondersteund" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "Er is een compatibele versie van deze uitbreiding beschikbaar." #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "Er is geen compatibele versie van deze uitbreiding beschikbaar." #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "Onbekend" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" "Deze uitbreiding is niet beschikbaar op extensions.gnome.org, waardoor de " "compatibiliteit niet kan worden vastgesteld." #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" "U gebruikt momenteel GNOME %s. Kies hieronder een GNOME-versie en " "controleer of uw uitbreidingen nog beschikbaar zijn." #: src/exm-window.blp:42 msgid "Main Menu" msgstr "Hoofd­menu" #: src/exm-window.blp:55 msgctxt "Navigation" msgid "_Installed" msgstr "_Geïnstalleerd" #: src/exm-window.blp:64 msgctxt "Navigation" msgid "_Browse" msgstr "_Bladeren" #: src/exm-window.blp:102 msgid "Sort _Enabled First" msgstr "_Ingeschakelde bovenaan tonen" #: src/exm-window.blp:103 msgid "_Show Unsupported" msgstr "_Niet-ondersteunde tonen" #: src/exm-window.blp:106 msgid "_Upgrade Assistant" msgstr "_Bijwerk­assistent" #: src/exm-window.blp:107 msgid "_About Extension Manager" msgstr "_Over Uitbreidings­beheer" #: src/exm-window.c:179 msgid "Uninstall Extension?" msgstr "Uitbreiding verwijderen?" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" "De functionaliteit van de uitbreiding zal niet langer toegankelijk zijn. " "Weet u zeker dat u deze wilt verwijderen?" #: src/exm-window.c:183 msgid "_No" msgstr "_Nee" #: src/exm-window.c:184 msgid "_Yes" msgstr "_Ja" #: src/exm-window.c:253 msgid "Unsupported Extension" msgstr "Niet-ondersteunde uitbreiding" #: src/exm-window.c:254 msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "Deze uitbreiding is niet compatibel met uw huidige GNOME Shell-versie. Er " "kunnen fouten optreden als u deze installeert." #: src/exm-window.c:257 msgid "_Install Anyway" msgstr "Toch _installeren" #: src/exm-window.c:258 msgid "_Go Back" msgstr "_Terug" #: src/exm-window.c:365 msgid "An error occurred." msgstr "Er is een fout opgetreden." #: src/exm-window.c:366 msgid "Details" msgstr "Details" #~ msgid "Loading…" #~ msgstr "Bezig met laden…" #~ msgid "@app_title@" #~ msgstr "@app_title@" #~ msgid "Fully adaptive mobile-friendly user interface" #~ msgstr "Volledig adaptieve, mobielvriendelijke gebruikersinterface" #~ msgid "Paginated search results" #~ msgstr "Zoekresultaten op meerdere pagina's" #~ msgid "Upgrade Assistant for checking extension compatibility" #~ msgstr "" #~ "Upgrade-assistent voor het controleren op uitbreidingscompatibiliteit" #~ msgid "Unsupported extensions are hidden by default" #~ msgstr "Niet-ondersteunde uitbreidingen worden standaard verborgen" #~ msgid "Overhauled error and crash reporting" #~ msgstr "Fout- en crashrapportering herzien" #~ msgid "Full-screen image viewer" #~ msgstr "Afbeeldingen bekijken in volledig scherm" #~ msgid "Handles new gnome-extensions:// URI scheme" #~ msgstr "Ondersteunt het nieuwe URI-schema gnome-extensions://" #~ msgid "Randomised extension suggestions" #~ msgstr "Willekeurige uitbreidingssuggesties" #~ msgid "Performance and stability" #~ msgstr "Verbeterde prestaties en stabiliteit" #~ msgid "Translation updates" #~ msgstr "Bijgewerkte vertalingen" #~ msgid "Various bug fixes" #~ msgstr "Verschillende bugs opgelost" #~ msgid "Remove release notes dialog" #~ msgstr "Het wijzigingslogvenster wordt niet meer getoond" #~ msgid "Fix special characters in installed extension listings" #~ msgstr "Opgelost: speciale tekens werden niet goed getoond op lijsten" #~ msgid "The second feature update to extension-manager. Highlights include:" #~ msgstr "De tweede grote update van Uitbreidingsbeheer. Kenmerken:" #~ msgid "View comments and reviews" #~ msgstr "Lees reacties en beoordelingen" #~ msgid "Support for in-app updates" #~ msgstr "Ondersteuning voor updates" #~ msgid "Better handling errors and out-of-date extensions" #~ msgstr "Betere afhandeling van foutmeldingen en verouderde uitbreidingen" #~ msgid "Allow installing 'unsupported' extensions" #~ msgstr "" #~ "Ondersteuning voor het installeren van niet-ondersteunde uitbreidingen" #~ msgid "Display release notes on first run" #~ msgstr "Het wijzigingslog wordt voortaan getoond na updates" #~ msgid "New app icon" #~ msgstr "Nieuw toepassingspictogram" #~ msgid "Optionally sort extensions by enabled status" #~ msgstr "Toon geïnstalleerde uitbreidingen bovenaan (optioneel)" #~ msgid "Fix special characters in search results" #~ msgstr "" #~ "Opgelost: speciale tekens werden niet goed getoond in zoekresultaten" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "Opgelost: clash tijdens het verwijderen van een uitbreiding" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "De eerste grote update van Uitbreidingsbeheer. Kenmerken:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "" #~ "Ondersteuning voor donkere thema's en het afdwingen van een eigen thema" #~ msgid "Shows screenshots in extension listings" #~ msgstr "Er worden voortaan schermfoto's getoond bij uitbreidingen" #~ msgid "Shell version compatibility check" #~ msgstr "Nieuw: Shell-versiecontrole i.v.m. compatibiliteit" #~ msgid "Localised into seven languages" #~ msgstr "Vertaald naar zeven talen" #~ msgid "Sort search results" #~ msgstr "Zoekresultaten kunnen worden gesorteerd" #~ msgid "Global extension on/off toggle" #~ msgstr "Globale aan-/uitknop" #~ msgid "Displays user and system extensions separately" #~ msgstr "Zelf-geïnstalleerde en systeemuitbreidingen worden apart getoond" #~ msgid "Extension Manager (Development)" #~ msgstr "Uitbreidingsbeheer (ontwikkeling)" #~ msgid "Popularity" #~ msgstr "Populariteit" #~ msgid "Supported Versions" #~ msgstr "Ondersteunde versies" #~ msgctxt "Navigation" #~ msgid "Browse" #~ msgstr "Ontdekken" #~ msgid "Theme" #~ msgstr "Thema" #~ msgid "Follow System" #~ msgstr "Systeemthema" #~ msgid "Light" #~ msgstr "Licht" #~ msgid "Dark" #~ msgstr "Donker" #~ msgid "Are you sure you want to uninstall?" #~ msgstr "Weet u zeker dat u deze uitbreiding wilt verwijderen?" #~ msgid "" #~ "A very simple tool for browsing, downloading, and managing GNOME shell " #~ "extensions." #~ msgstr "" #~ "Een eenvoudige toepassing voor het ontdekken, installeren en beheren van " #~ "GNOME Shell-uitbreidingen." #~ msgid "e.g. \"Blur my Shell\"" #~ msgstr "bijv. ‘Blur my Shell’" #~ msgid "What's New" #~ msgstr "Wijzigingslog" #~ msgid "View Release Notes" #~ msgstr "Wijzigingslog bekijken" #, c-format #~ msgid "" #~ "This is your first time using Extension Manager %s.\n" #~ "Would you like to see the release notes?" #~ msgstr "" #~ "Dit is de eerste keer dat u Uitbreidingsbeheer %s opent.\n" #~ "Wilt u het wijzigingslog bekijken?" #~ msgid "Matthew Jakeman" #~ msgstr "Matthew Jakeman" #~ msgid "Colour Scheme Preference" #~ msgstr "Themavoorkeur" #~ msgid "" #~ "Whether to follow the system colour scheme or force either light or dark " #~ "mode." #~ msgstr "" #~ "Of het systeemthema moet worden gebruikt of dat een eigen thema wordt " #~ "gekozen." #~ msgid "Keyboard Shortcuts" #~ msgstr "Sneltoetsen" #~ msgctxt "shortcut window" #~ msgid "General" #~ msgstr "Algemeen" #~ msgctxt "shortcut window" #~ msgid "Show Shortcuts" #~ msgstr "Sneltoetsen tonen" #~ msgctxt "shortcut window" #~ msgid "Quit" #~ msgstr "Afsluiten" #~ msgid "Go to Page" #~ msgstr "Ga naar pagina" extension-manager-0.5.0/po/nn.po000066400000000000000000000334671457631363100165570ustar00rootroot00000000000000# Norwegian Nynorsk translation for extension-manager package. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # John Erling Blad , 2022. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2022-02-23 16:48+0100\n" "Last-Translator: John Erling Blad \n" "Language-Team: \n" "Language: nn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "Utvidelsesadministrasjon" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 #, fuzzy #| msgid "A utility for managing GNOME Shell Extensions" msgid "Manage GNOME Shell Extensions" msgstr "Eit verktøy for administrering av GNOME Skallutvidelser" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 #, fuzzy #| msgid "Extension Manager" msgid "extension;manager;shell;" msgstr "Utvidelsesadministrasjon" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 #, fuzzy #| msgid "A utility for managing GNOME Shell Extensions" msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "Eit verktøy for administrering av GNOME Skallutvidelser" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "Eit verktøy for å bla gjennom og installera GNOME Skallutvidelser." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "Funksjonar:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "Bla gjennom «extensions.gnome.org» inne i appen" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "Administrer utvidingane du allereie har installert" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "Eit verktøy for administrering av GNOME Skallutvidelser" #: src/exm-application.c:175 #, fuzzy #| msgid "A utility for managing GNOME Shell Extensions" msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "Eit verktøy for administrering av GNOME Skallutvidelser" #: src/exm-application.c:177 msgid "translator-credits" msgstr "John Erling Blad" #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "Søk etter utvidingar" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "" "Skriv inn eit nøkkelord for å søka på «extensions.gnome.org» etter GNOME " "Skalutvidingar." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "" #: src/exm-browse-page.blp:31 #, fuzzy #| msgid "Downloads" msgctxt "Sort search results" msgid "Downloads" msgstr "Nedlastingar" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "Nyleg" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "Namn" #: src/exm-browse-page.blp:61 msgid "_Load More Results" msgstr "" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "Fann ingen resultat" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "" #: src/exm-comment-dialog.blp:37 msgid "Loading Comments" msgstr "" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "Ein feil oppstod" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "" #: src/exm-detail-view.blp:106 #, fuzzy #| msgid "See Details" msgid "Loading Details" msgstr "Sjå detaljar" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "Skildring" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "Lenker" #: src/exm-detail-view.blp:232 #, fuzzy #| msgid "Project Homepage" msgid "Homepage" msgstr "Heimesida for prosjektet" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "Sjå på utvidingar" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "" #: src/exm-detail-view.blp:319 msgid "_Show All Reviews" msgstr "" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "" #: src/exm-error-dialog.blp:29 msgid "An unexpected error occurred in Extension Manager." msgstr "" #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 msgid "_Copy to Clipboard" msgstr "" #: src/exm-error-dialog.blp:64 msgid "_New Issue" msgstr "" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "" #: src/exm-error-dialog.c:179 msgid "Please open a new issue and attach the following information:" msgstr "" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "" #: src/exm-extension-row.blp:58 #, fuzzy #| msgid "This extension is incompatible with your current version of GNOME." msgid "This extension is incompatible with your current version of GNOME" msgstr "" "Denne utvidinga er ikke-kompatibel med den noverande versjonen din av GNOME." #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "Sjå detaljar" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "Fjern" #: src/exm-info-bar.blp:13 #, fuzzy #| msgid "Downloads" msgctxt "Number of downloads" msgid "Downloads" msgstr "Nedlastingar" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "Ikkje støtta" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "" "Denne utvidinga er ikke-kompatibel med den noverande versjonen din av GNOME." #: src/exm-install-button.c:115 msgid "Install" msgstr "Installer" #: src/exm-install-button.c:120 #, fuzzy #| msgid "Installed" msgctxt "State" msgid "Installed" msgstr "Installert" #: src/exm-installed-page.blp:33 #, fuzzy #| msgid "System Extensions" msgid "Use Extensions" msgstr "Systemutvidingar" #: src/exm-installed-page.blp:34 #, fuzzy #| msgid "Performance and stability" msgid "Extensions can cause performance and stability issues." msgstr "Yting og stabilitet" #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "Brukarinstallerte utvidingar" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "Systemutvidingar" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "" msgstr[1] "" #: src/exm-installed-page.c:340 msgid "Browse" msgstr "Bla" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "" #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 #, fuzzy #| msgid "Displays user and system extensions separately" msgid "There are no system extensions installed." msgstr "Vis brukar- og systemutvidingar separat" #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "" #: src/exm-upgrade-assistant.blp:47 msgid "_Check Compatibility" msgstr "" #: src/exm-upgrade-assistant.c:176 #, fuzzy, c-format #| msgid "Search for extensions" msgid "Checked %d/%d Extensions" msgstr "Søk etter utvidingar" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" #: src/exm-upgrade-assistant.c:512 #, fuzzy #| msgid "Unsupported" msgid "Supported" msgstr "Ikkje støtta" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "" #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "" #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" #: src/exm-window.blp:42 msgid "Main Menu" msgstr "" #: src/exm-window.blp:55 #, fuzzy #| msgid "Installed" msgctxt "Navigation" msgid "_Installed" msgstr "Installert" #: src/exm-window.blp:64 #, fuzzy #| msgid "Browse" msgctxt "Navigation" msgid "_Browse" msgstr "Bla" #: src/exm-window.blp:102 msgid "Sort _Enabled First" msgstr "" #: src/exm-window.blp:103 #, fuzzy #| msgid "Unsupported" msgid "_Show Unsupported" msgstr "Ikkje støtta" #: src/exm-window.blp:106 msgid "_Upgrade Assistant" msgstr "" #: src/exm-window.blp:107 #, fuzzy #| msgid "About Extension Manager" msgid "_About Extension Manager" msgstr "Om Utvidelsesadministrasjon" #: src/exm-window.c:179 #, fuzzy #| msgid "User-Installed Extensions" msgid "Uninstall Extension?" msgstr "Brukarinstallerte utvidingar" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" #: src/exm-window.c:183 msgid "_No" msgstr "" #: src/exm-window.c:184 msgid "_Yes" msgstr "" #: src/exm-window.c:253 #, fuzzy #| msgid "Supported Versions" msgid "Unsupported Extension" msgstr "Støtta versjonar" #: src/exm-window.c:254 msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" #: src/exm-window.c:257 #, fuzzy #| msgid "Install" msgid "_Install Anyway" msgstr "Installer" #: src/exm-window.c:258 msgid "_Go Back" msgstr "" #: src/exm-window.c:365 #, fuzzy #| msgid "An Error Occurred" msgid "An error occurred." msgstr "Ein feil oppstod" #: src/exm-window.c:366 #, fuzzy #| msgid "See Details" msgid "Details" msgstr "Sjå detaljar" #~ msgid "Loading…" #~ msgstr "Laster inn…" #~ msgid "Matthew Jakeman" #~ msgstr "Matthew Jakeman" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "" #~ "Fiksar eit krasj som nokon gangar opptrer under under avinstallering av " #~ "ein utviding" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Den første funksjonsoppdateringa til Utvidelsesadministrasjon. Høgdepunkt " #~ "inkluderer:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "Mørk drakt og trygd for å overstyra fargeskjemaet til systemet" #~ msgid "Shows screenshots in extension listings" #~ msgstr "Vis skjermskot i listinga av utvidingar" #~ msgid "Shell version compatibility check" #~ msgstr "Kompatibilitetssjekk av skalversjon" #~ msgid "Localised into seven languages" #~ msgstr "Lokalisert til sju språk" #~ msgid "Sort search results" #~ msgstr "Sorter søkeresultatane" #~ msgid "Global extension on/off toggle" #~ msgstr "Global av/på for utvidingar" #~ msgid "Colour Scheme Preference" #~ msgstr "Preferanse for fargeval" #~ msgid "" #~ "Whether to follow the system colour scheme or force either light or dark " #~ "mode." #~ msgstr "" #~ "Om fargeskjemaet til systemet blir følgt, eller om lys eller mørk modus " #~ "blir brukt." #~ msgid "" #~ "A very simple tool for browsing, downloading, and managing GNOME shell " #~ "extensions." #~ msgstr "" #~ "Eit veldig enkelt verktøy for å bla gjennom, lasta ned og administrera " #~ "GNOME-skalutvidingar." #~ msgid "e.g. \"Blur my Shell\"" #~ msgstr "e.g. «Tilslør skalet mitt»" #~ msgid "Popularity" #~ msgstr "Popularitet" #~ msgid "Theme" #~ msgstr "Drakt" #~ msgid "Follow System" #~ msgstr "Følg systemet" #~ msgid "Light" #~ msgstr "Lyst" #~ msgid "Dark" #~ msgstr "Mørkt" #~ msgid "Keyboard Shortcuts" #~ msgstr "Tastatursnarvegar" #~ msgid "Are you sure you want to uninstall?" #~ msgstr "Er du sikker på at du ønsker å avinstallere?" #~ msgctxt "shortcut window" #~ msgid "General" #~ msgstr "Allment" #~ msgctxt "shortcut window" #~ msgid "Show Shortcuts" #~ msgstr "Vis snarvegar" #~ msgctxt "shortcut window" #~ msgid "Quit" #~ msgstr "Avslutt" extension-manager-0.5.0/po/oc.po000066400000000000000000000460461457631363100165420ustar00rootroot00000000000000# Occitan translation for Extension-manager per GNOME Shell. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # Quentin PAGÈS , 2022. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2023-11-27 19:05+0100\n" "Last-Translator: Quentin PAGÈS\n" "Language-Team: \n" "Language: oc\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Poedit 3.4.1\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "Gestionari d’extensions" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 msgid "Manage GNOME Shell Extensions" msgstr "Gerir las extensions GNOME Shell" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 #, fuzzy #| msgid "extension;manager;" msgid "extension;manager;shell;" msgstr "extension;gestionari;" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "Percórrer, installar e gerir las extensions GNOME Shell" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "Un utilitari per percórrer e installar las extensions GNOME Shell." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "Foncionalitats :" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "Percórrer extensions.gnome.org d’una aplicacion estant" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "Gerissètz las extensions qu’avètz ja installadas" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "Un utilitari per gerir las extensions GNOME Shell" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "Percórrer, installar e gerir las extensions GNOME Shell." #: src/exm-application.c:177 msgid "translator-credits" msgstr "Quentin PAGÈS" #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "Cercar d’extensions" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "" "Picatz un mot clau per cercar per « extensions.gnome.org » e trobar " "d’extensions GNOME Shell." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "Pertinéncia" #: src/exm-browse-page.blp:31 msgctxt "Sort search results" msgid "Downloads" msgstr "Telecargaments" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "Recentas" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "Nom" #: src/exm-browse-page.blp:61 msgid "_Load More Results" msgstr "_Cargar mai de resultats" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "Cap de resultat pas trobat" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "ex. « %s »" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "Comentaris " #: src/exm-comment-dialog.blp:37 #, fuzzy #| msgid "Comments" msgid "Loading Comments" msgstr "Comentaris " #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "Una error s'es producha" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "Autor" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "Zoom Avant" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "Zoom arrièr" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "Tornar a la vista" #: src/exm-detail-view.blp:106 #, fuzzy #| msgid "Details" msgid "Loading Details" msgstr "Detalhs" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "Agrandir l'imatge" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "Descripcion" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "Ligams" #: src/exm-detail-view.blp:232 msgid "Homepage" msgstr "Pagina d’acuèlh" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "Veire sus Extensions" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "Avises dels utilizaires" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "Cap de comentari." #: src/exm-detail-view.blp:319 msgid "_Show All Reviews" msgstr "_Afichar totes los avises" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "Rapòrt d’error" #: src/exm-error-dialog.blp:29 msgid "An unexpected error occurred in Extension Manager." msgstr "Una error inesperada se's producha dins lo Gestionari d’extensions." #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 msgid "_Copy to Clipboard" msgstr "_Copiar al quichapapièrs" #: src/exm-error-dialog.blp:64 msgid "_New Issue" msgstr "_Anomalia novèla" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "Copiat" #: src/exm-error-dialog.c:179 msgid "Please open a new issue and attach the following information:" msgstr "" "Se vos plai dobrissètz un senhalament d’anomalia amb las informacions " "seguentas :" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" "Utilizatz una compilcacion tèrça d'Extension Manager. Mercés de contactar lo distribuidor de paquets (%s) per començar abans de senhalar una anomalia. Asseguratz-vos de juntar las " "informacions seguentas :" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "Dobrir las preferéncias de l’extension" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "I a aguda una error al moment de cargar l'extension" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "Aquesta extension es incompatibla amb vòstra version actuala de GNOME" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "Una version mai novèla d’aquesta extension es disponibla" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "Version" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "Error" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "Veire los detalhs" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "Suprimir" #: src/exm-info-bar.blp:13 msgctxt "Number of downloads" msgid "Downloads" msgstr "Telecargaments" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "Pas presa en carga" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "Aquesta extension es pas compatibla amb vòstra version de GNOME." #: src/exm-install-button.c:115 msgid "Install" msgstr "Installar" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "Installada" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "Utilizar las extensions" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "Las extensions pòdon causar problèmas de performança e d’estabilitat." #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "Extensions installadas per l’utilizaire" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "Extensions sistèma" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "Mesas a jorn disponiblas" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "Se desconnectar" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "Una extension serà mesa a jorn a la connexion venenta." msgstr[1] "%d extensions seràn mesas a jorn a la connexion venenta." #: src/exm-installed-page.c:340 msgid "Browse" msgstr "Percórrer" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "I a pas cap d’aplicacion utilizaire pas installada." #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "I a pas cap d’aplicacion sistèma pas installada." #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "Assistent de mesa a nivèl" #: src/exm-upgrade-assistant.blp:47 msgid "_Check Compatibility" msgstr "_Verificar la compatibilitat" #: src/exm-upgrade-assistant.c:176 #, fuzzy, c-format #| msgid "Checked %d/%d extensions" msgid "Checked %d/%d Extensions" msgstr "%d/%d extensions verificadas" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "Compatibla %d%% " #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" "GNOME %s pren en carga %d de %d de las extensions actualament " "installadas sul sistèma." #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "Pas presa en carga" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "Una version compatibla de l’extension existís." #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "Cap de version compatibla de l’extension existís pas." #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "Desconeguts" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" "Aquesta extensions es pas albergada a extensions.gnome.org. Se pòt pas " "determinar sa compatibilitat." #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" "Sètz pas a executar GNOME %s. Seleccionat una version de GNOME çai-" "jos e verificatz que vòstras extensions tendràn d’èsser disponiblas." #: src/exm-window.blp:42 msgid "Main Menu" msgstr "Menú principal" #: src/exm-window.blp:55 msgctxt "Navigation" msgid "_Installed" msgstr "Installada" #: src/exm-window.blp:64 msgctxt "Navigation" msgid "_Browse" msgstr "Percórrer" #: src/exm-window.blp:102 #, fuzzy #| msgid "Sort Enabled First" msgid "Sort _Enabled First" msgstr "Las activadas en primièr" #: src/exm-window.blp:103 #, fuzzy #| msgid "Show Unsupported" msgid "_Show Unsupported" msgstr "Afichar çò pas pres en carga" #: src/exm-window.blp:106 #, fuzzy #| msgid "Upgrade Assistant" msgid "_Upgrade Assistant" msgstr "Assistent de mesa a nivèl" #: src/exm-window.blp:107 #, fuzzy #| msgid "About Extension Manager" msgid "_About Extension Manager" msgstr "A prepaus del gestionari d’extensions" #: src/exm-window.c:179 msgid "Uninstall Extension?" msgstr "Desinstallar l’extension ?" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" "La foncions e foncionalitats d’aquesta extension seràn pas mai accessiblas. " "Volètz vertadièrament la desinstallar ?" #: src/exm-window.c:183 msgid "_No" msgstr "_Non" #: src/exm-window.c:184 msgid "_Yes" msgstr "_Òc" #: src/exm-window.c:253 msgid "Unsupported Extension" msgstr "Extension non suportada" #: src/exm-window.c:254 msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "Aquesta extension es pas presa en carga per vòstre version de GNOME Shell. " "Son installacion pòt menar a de problèmas." #: src/exm-window.c:257 msgid "_Install Anyway" msgstr "_Installar malgrat tot" #: src/exm-window.c:258 msgid "_Go Back" msgstr "_Retorn" #: src/exm-window.c:365 msgid "An error occurred." msgstr "Una error s'es producha" #: src/exm-window.c:366 msgid "Details" msgstr "Detalhs" #~ msgid "Loading…" #~ msgstr "Cargament…" #~ msgid "@app_title@" #~ msgstr "@app_title@" #~ msgid "HOTFIX: Fix broken 'recent' and 'popularity' search filters" #~ msgstr "Correccion urgenta : filtres 'recent' e 'popularitat' copats" #~ msgid "Various stability and correctness fixes" #~ msgstr "Correccions de mantuna instabilitat" #~ msgid "Translation updates" #~ msgstr "Mesas a jorn de las traduccions" #~ msgid "Upgrade Assistant scroll fix" #~ msgstr "Defilament de l'assistent de mesa a nivèl corregit" #~ msgid "Pixel perfect app icon" #~ msgstr "Icòna d'aplicacion Pixel perfect" #~ msgid "Official snap support" #~ msgstr "Presa en carga oficiala de snap" #~ msgid "Improved error log generation" #~ msgstr "Generacion dels logs d'errors amelhorada" #~ msgid "Fully adaptive mobile-friendly user interface" #~ msgstr "" #~ "Interfàcia utilizaire complètament adaptativa e de bon utilizar al mobil" #~ msgid "Paginated search results" #~ msgstr "Dividir los resultats per pagina" #~ msgid "Upgrade Assistant for checking extension compatibility" #~ msgstr "" #~ "Assistent de mesa a nivèl per verificar la compatibilitat de las " #~ "extensions" #~ msgid "Unsupported extensions are hidden by default" #~ msgstr "Las extensions pas presas en carga son rescondudas per defaut" #~ msgid "Overhauled error and crash reporting" #~ msgstr "Correccion d’errors e senhalaments d’avarias" #~ msgid "Full-screen image viewer" #~ msgstr "Visionador d'imatges en plen ecran" #~ msgid "Handles new gnome-extensions:// URI scheme" #~ msgstr "Gerís los esquèmas novèlas d’URI gnome-extensions://" #~ msgid "Randomised extension suggestions" #~ msgstr "Far venir aleatòria la suggestion d’extensions" #~ msgid "Performance and stability" #~ msgstr "Performança e estabilitat" #~ msgid "Various bug fixes" #~ msgstr "Mantuna correccions d’anomalia" #~ msgid "Remove release notes dialog" #~ msgstr "Levar la fenèstra de nòtas de version" #~ msgid "Fix special characters in installed extension listings" #~ msgstr "Correccion dels caractèrs especials als resultats de recèrca" #~ msgid "The second feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "La segonda actualizacion de foncionalitats d’extension-manager. En " #~ "bracas :" #~ msgid "View comments and reviews" #~ msgstr "Veire los comentaris e los avises" #~ msgid "Support for in-app updates" #~ msgstr "Actualizacion de l’aplicacion estant presa en carga" #~ msgid "Better handling errors and out-of-date extensions" #~ msgstr "Melhora gestion de las errors e de las extensions obsolètas" #~ msgid "Allow installing 'unsupported' extensions" #~ msgstr "Permet d’installar las extensions « pas presas en carga »" #~ msgid "Display release notes on first run" #~ msgstr "Veire las nòtas de version a la primièra aviada" #~ msgid "New app icon" #~ msgstr "Icòna d'App novèla" #~ msgid "Optionally sort extensions by enabled status" #~ msgstr "Triada opcionala de las extensions segon l’estatut d’activacion" #~ msgid "Fix special characters in search results" #~ msgstr "Correccion dels caractèrs especials als resultats de recèrca" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "" #~ "Correccions d’un plantatge qu’arribava pendent la desinstallacion d’una " #~ "extension" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "La segonda actualizacion de foncionalitats d’extension-manager. Çò " #~ "cambiat :" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "" #~ "Tèma escur e presa en carga del subrecargament de l’esquèma de color " #~ "sistèma" #~ msgid "Shows screenshots in extension listings" #~ msgstr "Aficha las capturas d’ecran dins la lista d’extensions" #~ msgid "Shell version compatibility check" #~ msgstr "Verificacion de compatibilitat version Shell" #~ msgid "Localised into seven languages" #~ msgstr "Traduch dins sèt lengas" #~ msgid "Sort search results" #~ msgstr "Triar los resultats de recèrca" #~ msgid "Global extension on/off toggle" #~ msgstr "Bascular las extensions globalas" #~ msgid "Displays user and system extensions separately" #~ msgstr "" #~ "Afichatge de las extensions de l’utilizaire e çò del sistèma a despart" #~ msgid "Extension Manager (Development)" #~ msgstr "Gestionari d’extensions (Desvolopament)" #~ msgid "Popularity" #~ msgstr "Popularitat" #~ msgid "Supported Versions" #~ msgstr "Versions presas en carga" #~ msgctxt "Navigation" #~ msgid "Browse" #~ msgstr "Percórrer" #~ msgid "Theme" #~ msgstr "Tèma" #~ msgid "Follow System" #~ msgstr "Seguir lo sistèma" #~ msgid "Light" #~ msgstr "Clar" #~ msgid "Dark" #~ msgstr "Escur" #~ msgid "Are you sure you want to uninstall?" #~ msgstr "Volètz vertadièrament desinstallar ?" #~ msgid "" #~ "A very simple tool for browsing, downloading, and managing GNOME shell " #~ "extensions." #~ msgstr "" #~ "Una aisina simpleta per percórrer, telecargar e gerir las extensions " #~ "GNOME Shell." #~ msgid "e.g. \"Blur my Shell\"" #~ msgstr "ex. « Enfosquir mon Shell »" #~ msgid "What's New" #~ msgstr "Qué de nòu" #~ msgid "View Release Notes" #~ msgstr "Veire las nòtas de version" #~ msgid "" #~ "This is your first time using Extension Manager %s.\n" #~ "Would you like to see the release notes?" #~ msgstr "" #~ "Aquò’s lo primièr còp qu’utilizatz lo Gestionari d’extensions %s.\n" #~ "Volriatz veire la nòta de version ?" #~ msgid "Matthew Jakeman" #~ msgstr "Matthew Jakeman" #~ msgid "Colour Scheme Preference" #~ msgstr "Preferéncias d’esquèma de color" #~ msgid "" #~ "Whether to follow the system colour scheme or force either light or dark " #~ "mode." #~ msgstr "" #~ "Indica se cal seguir l’esquèma de color del sistèma, o forçar lo mòde " #~ "clar o escur." #~ msgid "Keyboard Shortcuts" #~ msgstr "Acorchis de clavièr" #~ msgctxt "shortcut window" #~ msgid "General" #~ msgstr "General" #~ msgctxt "shortcut window" #~ msgid "Show Shortcuts" #~ msgstr "Afichar los acorchis" #~ msgctxt "shortcut window" #~ msgid "Quit" #~ msgstr "Quitar" extension-manager-0.5.0/po/pl.po000066400000000000000000000424231457631363100165470ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # FIRST AUTHOR , YEAR. # Rafał Baran <>, 2022. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2024-02-27 13:02+0000\n" "Last-Translator: Eryk Michalak \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" "X-Generator: Weblate 5.5-dev\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "Menedżer Rozszerzeń" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 #, fuzzy #| msgid "A utility for managing GNOME Shell Extensions" msgid "Manage GNOME Shell Extensions" msgstr "Narzędzie do zarządzania rozszerzeniami powłoki GNOME" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 #, fuzzy #| msgid "Extension Manager" msgid "extension;manager;shell;" msgstr "Menedżer Rozszerzeń" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 #, fuzzy #| msgid "A utility for managing GNOME Shell Extensions" msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "Narzędzie do zarządzania rozszerzeniami powłoki GNOME" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "Narzędzie do przeglądania i instalowania rozszerzeń powłoki GNOME." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "Funkcje:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "Przeglądaj extensions.gnome.org bezpośrednio w aplikacji" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "Zarządzaj już zainstalowanymi rozszerzeniami" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "Narzędzie do zarządzania rozszerzeniami powłoki GNOME" #: src/exm-application.c:175 #, fuzzy #| msgid "A utility for managing GNOME Shell Extensions" msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "Narzędzie do zarządzania rozszerzeniami powłoki GNOME" #: src/exm-application.c:177 msgid "translator-credits" msgstr "Rafał Baran" #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "Szukaj rozszerzeń" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "Wpisz słowo kluczowe, aby wyszukać rozszerzenia w extensions.gnome.org" #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "Trafność" #: src/exm-browse-page.blp:31 #, fuzzy #| msgid "Downloads" msgctxt "Sort search results" msgid "Downloads" msgstr "Liczba pobrań" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "Ostatnie" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "Nazwa" #: src/exm-browse-page.blp:61 msgid "_Load More Results" msgstr "_Załaduj więcej wyników" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "Nie Znaleziono Wyników" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "np. “%s”" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "Komentarze" #: src/exm-comment-dialog.blp:37 #, fuzzy #| msgid "Comments" msgid "Loading Comments" msgstr "Komentarze" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "Wystąpił Błąd" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "Autor" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "Powiększ" #: src/exm-detail-view.blp:63 #, fuzzy #| msgid "Log Out" msgid "Zoom Out" msgstr "Wyloguj" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "" #: src/exm-detail-view.blp:106 #, fuzzy #| msgid "See Details" msgid "Loading Details" msgstr "Zobacz Szczegóły" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "Powiększ obraz" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "Opis" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "Linki" #: src/exm-detail-view.blp:232 #, fuzzy #| msgid "Project Homepage" msgid "Homepage" msgstr "Strona Główna projektu" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "Zobacz na Extensions" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "Recenzje użytkowników" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "" #: src/exm-detail-view.blp:319 #, fuzzy #| msgid "Show All Reviews" msgid "_Show All Reviews" msgstr "Pokaż wszystkie recenzje" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "Zgłoszenie błędu" #: src/exm-error-dialog.blp:29 #, fuzzy #| msgid "An error occurred while loading this extension" msgid "An unexpected error occurred in Extension Manager." msgstr "Wystąpił błąd podczas ładowania tego rozszerzenia" #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 msgid "_Copy to Clipboard" msgstr "_Skopiuj do schowka" #: src/exm-error-dialog.blp:64 msgid "_New Issue" msgstr "_Nowe zgłoszenie" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "Skopiowano" #: src/exm-error-dialog.c:179 msgid "Please open a new issue and attach the following information:" msgstr "" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "Wystąpił błąd podczas ładowania tego rozszerzenia" #: src/exm-extension-row.blp:58 #, fuzzy #| msgid "This extension is incompatible with your current version of GNOME." msgid "This extension is incompatible with your current version of GNOME" msgstr "To rozszerzenie nie jest kompatybilne z twoją wersją GNOME." #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "Jest dostępna nowsza wersja tego rozszerzenia" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "Wersja" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "Błąd" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "Zobacz Szczegóły" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "Usuń" #: src/exm-info-bar.blp:13 #, fuzzy #| msgid "Downloads" msgctxt "Number of downloads" msgid "Downloads" msgstr "Liczba pobrań" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "Niewspierane" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "To rozszerzenie nie jest kompatybilne z twoją wersją GNOME." #: src/exm-install-button.c:115 msgid "Install" msgstr "Zainstaluj" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "Zainstalowane" #: src/exm-installed-page.blp:33 #, fuzzy #| msgid "System Extensions" msgid "Use Extensions" msgstr "Systemowe rozszerzenia" #: src/exm-installed-page.blp:34 #, fuzzy #| msgid "Performance and stability" msgid "Extensions can cause performance and stability issues." msgstr "Wydajność i stabilność" #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "Ręcznie zainstalowane" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "Systemowe rozszerzenia" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "Dostępne są aktualizacje" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "Wyloguj" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "%d rozszerzenie zostanie zaktualizowane przy następnym logowaniu." msgstr[1] "%d rozszerzenia zostaną zaktualizowane przy następnym logowaniu." msgstr[2] "%d rozszerzeń zostanie zaktualizowanych przy następnym logowaniu." #: src/exm-installed-page.c:340 msgid "Browse" msgstr "Przeglądaj" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "" #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 #, fuzzy #| msgid "Displays user and system extensions separately" msgid "There are no system extensions installed." msgstr "Osobne wyświetlanie rozszerzeń systemowych i użytkownika" #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "Asystent aktualizacji" #: src/exm-upgrade-assistant.blp:47 msgid "_Check Compatibility" msgstr "_Sprawdź zgodność" #: src/exm-upgrade-assistant.c:176 #, fuzzy, c-format #| msgid "Search for extensions" msgid "Checked %d/%d Extensions" msgstr "Szukaj rozszerzeń" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" #: src/exm-upgrade-assistant.c:512 #, fuzzy #| msgid "Unsupported" msgid "Supported" msgstr "Niewspierane" #: src/exm-upgrade-assistant.c:514 #, fuzzy #| msgid "A newer version of this extension is available" msgid "A compatible version of the extension exists." msgstr "Jest dostępna nowsza wersja tego rozszerzenia" #: src/exm-upgrade-assistant.c:518 #, fuzzy #| msgid "A newer version of this extension is available" msgid "No compatible version of the extension exists." msgstr "Jest dostępna nowsza wersja tego rozszerzenia" #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "Nieznane" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" #: src/exm-window.blp:42 msgid "Main Menu" msgstr "Menu główne" #: src/exm-window.blp:55 #, fuzzy #| msgctxt "Navigation" #| msgid "Installed" msgctxt "Navigation" msgid "_Installed" msgstr "Zainstalowane" #: src/exm-window.blp:64 #, fuzzy #| msgctxt "Navigation" #| msgid "Browse" msgctxt "Navigation" msgid "_Browse" msgstr "Przeglądaj" #: src/exm-window.blp:102 #, fuzzy #| msgid "Sort Enabled First" msgid "Sort _Enabled First" msgstr "Sortuj Najpierw Włączone" #: src/exm-window.blp:103 #, fuzzy #| msgid "Unsupported" msgid "_Show Unsupported" msgstr "Niewspierane" #: src/exm-window.blp:106 #, fuzzy #| msgid "Upgrade Assistant" msgid "_Upgrade Assistant" msgstr "Asystent aktualizacji" #: src/exm-window.blp:107 #, fuzzy #| msgid "About Extension Manager" msgid "_About Extension Manager" msgstr "O programie" #: src/exm-window.c:179 #, fuzzy #| msgid "User-Installed Extensions" msgid "Uninstall Extension?" msgstr "Ręcznie zainstalowane" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" #: src/exm-window.c:183 msgid "_No" msgstr "_Nie" #: src/exm-window.c:184 msgid "_Yes" msgstr "_Tak" #: src/exm-window.c:253 #, fuzzy #| msgid "Supported Versions" msgid "Unsupported Extension" msgstr "Wspierane Wersje" #: src/exm-window.c:254 #, fuzzy #| msgid "" #| "This extension does not support your GNOME Shell version.\n" #| "Would you like to install anyway?" msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "To rozszerzenie nie wspiera twojej wersji Powłoki GNOME.\n" "Czy mimo tego chcesz je zainstalować?" #: src/exm-window.c:257 #, fuzzy #| msgid "Install" msgid "_Install Anyway" msgstr "Zainstaluj" #: src/exm-window.c:258 msgid "_Go Back" msgstr "_Wstecz" #: src/exm-window.c:365 #, fuzzy #| msgid "An Error Occurred" msgid "An error occurred." msgstr "Wystąpił Błąd" #: src/exm-window.c:366 #, fuzzy #| msgid "See Details" msgid "Details" msgstr "Zobacz Szczegóły" #~ msgid "Loading…" #~ msgstr "Ładowanie…" #~ msgid "@app_title@" #~ msgstr "@app_title@" #~ msgid "The second feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Druga aktualizacja funkcyjna do Menedżera Rozszerzeń. Najważniejsze " #~ "zmiany:" #~ msgid "View comments and reviews" #~ msgstr "Widok komentarzy i ocen" #~ msgid "Support for in-app updates" #~ msgstr "Wsparcie dla aktualizacji w aplikacji" #~ msgid "Better handling errors and out-of-date extensions" #~ msgstr "Lepsza obsługa błędów i nieaktualnych rozszerzeń" #~ msgid "Allow installing 'unsupported' extensions" #~ msgstr "Możliwość instalowania \"Niewspieranych\" rozszerzeń" #~ msgid "Display release notes on first run" #~ msgstr "Pokazywanie listy zmian aktualizacji przy pierwszym uruchomieniu" #~ msgid "New app icon" #~ msgstr "Nowa ikona aplikacji" #~ msgid "Optionally sort extensions by enabled status" #~ msgstr "Opcjonalne sortowanie rozszerzeń po statusie włączenia" #~ msgid "Translation updates" #~ msgstr "Aktualizacje tłumaczeń" #~ msgid "Fix special characters in search results" #~ msgstr "Naprawiono znaki specjalne w wynikach wyszukiwania" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "" #~ "Naprawia błąd występujący czasem podczas odinstalowywania rozszerzenia" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Pierwsza aktualizacja funkcyjna do Menedżera Rozszerzeń. Najważniejsze " #~ "zmiany:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "" #~ "Ciemny motyw i możliwość nadpisania systemowego schematu kolorystycznego" #~ msgid "Shows screenshots in extension listings" #~ msgstr "Zrzuty ekranu na liście rozszerzeń" #~ msgid "Shell version compatibility check" #~ msgstr "Sprawdzanie kompatybilności z wersją powłoki" #~ msgid "Localised into seven languages" #~ msgstr "Przetłumaczono na siedem języków" #~ msgid "Sort search results" #~ msgstr "Sortowanie wyników wyszukiwania" #~ msgid "Global extension on/off toggle" #~ msgstr "Globalny włącznik/wyłącznik rozszerzeń" #~ msgid "Extension Manager (Development)" #~ msgstr "Menedżer Rozszerzeń (Wersja Rozwojowa)" #~ msgid "" #~ "A very simple tool for browsing, downloading, and managing GNOME shell " #~ "extensions." #~ msgstr "" #~ "Bardzo proste narzędzie do przeglądania, instalowania i zarządzania " #~ "rozszerzeniami powłoki GNOME." #~ msgid "e.g. \"Blur my Shell\"" #~ msgstr "np. \"Blur my Shell\"" #~ msgid "Popularity" #~ msgstr "Popularność" #~ msgid "Release Notes" #~ msgstr "Informacje o Wydaniu" #~ msgid "Theme" #~ msgstr "Motyw" #~ msgid "Follow System" #~ msgstr "Motyw sytemowy" #~ msgid "Light" #~ msgstr "Jasny" #~ msgid "Dark" #~ msgstr "Ciemny" #~ msgid "Are you sure you want to uninstall?" #~ msgstr "Czy na pewno chcesz odinstalować?" #~ msgid "What's New" #~ msgstr "Co Nowego" #~ msgid "View Release Notes" #~ msgstr "Zobacz Informacje o Wydaniu" #, c-format #~ msgid "" #~ "This is your first time using Extension Manager %s.\n" #~ "Would you like to see the release notes?" #~ msgstr "" #~ "To jest pierwszy raz kiedy uruchomiono Menedżera Rozszerzeń %s.\n" #~ "Czy pokazać informacje o wydaniu?" #~ msgid "Matthew Jakeman" #~ msgstr "Matthew Jakeman" #~ msgid "Colour Scheme Preference" #~ msgstr "Preferencje motywu" #~ msgid "" #~ "Whether to follow the system colour scheme or force either light or dark " #~ "mode." #~ msgstr "" #~ "Ustawia motyw na systemowy lub wymusza użycie ciemnego lub jasnego motywu." #~ msgid "Installed" #~ msgstr "Zainstalowane" #~ msgid "Keyboard Shortcuts" #~ msgstr "Skróty klawiszowe" #~ msgctxt "shortcut window" #~ msgid "General" #~ msgstr "Ogólne" #~ msgctxt "shortcut window" #~ msgid "Show Shortcuts" #~ msgstr "Pokaż skróty" #~ msgctxt "shortcut window" #~ msgid "Quit" #~ msgstr "Wyjdź" #~ msgid "" #~ "An extension manager for browsing and installing GNOME Shell Extensions." #~ msgstr "" #~ "Menedżer rozszerzeń do przeglądania i instalowania rozszerzeń powłoki " #~ "GNOME." #~ msgid "Go to Page" #~ msgstr "Otwórz stronę" extension-manager-0.5.0/po/print-source-files.sh000077500000000000000000000005621457631363100216630ustar00rootroot00000000000000# Useful for updating the POTFILES file (run from this directory) # Print out these specific data files echo "data/com.mattjakeman.ExtensionManager.desktop.in.in" echo "data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in" # Prints out all *.c and *.blp files in the project pushd ../ > /dev/null (find src -name *.c; find src -name *.blp) | sort popd > /dev/null extension-manager-0.5.0/po/pt.po000066400000000000000000000442111457631363100165540ustar00rootroot00000000000000# Portuguese translations for extension-manager package. # Copyright (C) YEAR THE extension-manager'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # FIRST AUTHOR , YEAR. # Hugo Carvalho , 2022, 2023, 2024. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2024-02-16 14:54+0000\n" "Last-Translator: Hugo Carvalho \n" "Language-Team: \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.4.2\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "Gestor de Extensões" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 msgid "Manage GNOME Shell Extensions" msgstr "Gerir as extensões do GNOME Shell" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 msgid "extension;manager;shell;" msgstr "extension;manager;shell;" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "Explorar, instalar e gerir as extensões do GNOME Shell" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "Um utilitário para explorar e instalar as extensões do GNOME Shell." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "Funcionalidades:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "Explorar em extensões.gnome.org por dentro da aplicação" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "Gerir as extensões que já estão instaladas" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "Um utilitário para gerir as extensões do GNOME Shell" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "Explorar, instalar e gerir as extensões do GNOME Shell." #: src/exm-application.c:177 msgid "translator-credits" msgstr "Hugo Carvalho " #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "Pesquisa por extensões" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "" "Introduza uma palavra-chave para procurar em 'extensions.gnome.org' " "extensões do GNOME Shell." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "Relevância" #: src/exm-browse-page.blp:31 msgctxt "Sort search results" msgid "Downloads" msgstr "Transferências" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "Recentes" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "Nome" #: src/exm-browse-page.blp:61 msgid "_Load More Results" msgstr "_Carregar mais resultados" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "Nenhum resultado" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "por exemplo, “%s”" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "Comentários" #: src/exm-comment-dialog.blp:37 #, fuzzy #| msgid "Comments" msgid "Loading Comments" msgstr "Comentários" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "Ocorreu um erro" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "Autor" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "Ampliar" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "Diminuir" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "Voltar à vista" #: src/exm-detail-view.blp:106 #, fuzzy #| msgid "Details" msgid "Loading Details" msgstr "Detalhes" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "Ampliar a imagem" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "Descrição" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "Ligações" #: src/exm-detail-view.blp:232 msgid "Homepage" msgstr "Página inicial" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "Ver em Extensões" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "Avaliações dos utilizadores" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "Não há comentários." #: src/exm-detail-view.blp:319 msgid "_Show All Reviews" msgstr "_Mostrar todas as avaliações" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "Relatório de erros" #: src/exm-error-dialog.blp:29 msgid "An unexpected error occurred in Extension Manager." msgstr "Ocorreu um erro inesperado no Gestor de Extensões." #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 msgid "_Copy to Clipboard" msgstr "_Copiar para a área de transferência" #: src/exm-error-dialog.blp:64 msgid "_New Issue" msgstr "_Novo problema" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "Copiado" #: src/exm-error-dialog.c:179 msgid "Please open a new issue and attach the following information:" msgstr "Submeta um novo problema e anexe as seguintes informações:" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" "Está a utilizar uma compilação de terceiros do Gestor de Extensões. Por " "favor contacte o distribuidor (%s) do pacote antes de apresentar um problema. Certifique-se de que anexa as seguintes " "informações:" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "Mostrar as preferências das extensões" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "Ocorreu um erro ao carregar esta extensão" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "Esta extensão é incompatível com a sua versão atual do GNOME" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "Uma nova versão desta extensão está disponível" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "Versão" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "Erro" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "Ver detalhes" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "Remover" #: src/exm-info-bar.blp:13 msgctxt "Number of downloads" msgid "Downloads" msgstr "Transferências" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "Não suportada" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "Esta extensão é incompatível com a versão atual do GNOME." #: src/exm-install-button.c:115 msgid "Install" msgstr "Instalar" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "Instalado" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "Usar extensões" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "As extensões podem causar problemas de desempenho e estabilidade." #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "Extensões instaladas manualmente" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "Extensões do sistema" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "Atualizações estão disponíveis" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "Terminar sessão" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "Uma extensão será atualizada no próximo acesso." msgstr[1] "%d extensões serão atualizadas no próximo acesso." #: src/exm-installed-page.c:340 msgid "Browse" msgstr "Procurar" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "Não há extensões de utilizador instaladas." #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "Não há extensões de sistema instaladas." #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "Assistente de atualização" #: src/exm-upgrade-assistant.blp:47 msgid "_Check Compatibility" msgstr "_Verificar compatibilidade" #: src/exm-upgrade-assistant.c:176 #, fuzzy, c-format #| msgid "Checked %d/%d extensions" msgid "Checked %d/%d Extensions" msgstr "Verificou %d/%d extensões" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "%d%% Compatível" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" "O GNOME %s suporta %d de %d das extensões atualmente " "instaladas no sistema." #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "Suportado" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "Existe uma versão compatível da extensão." #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "Não existe uma versão compatível da extensão." #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "Desconhecida" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" "Esta extensão não está alojada no extensions.gnome.org. A sua " "compatibilidade não pode ser determinada." #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" "Está atualmente a executar o GNOME %s. Selecione uma versão do GNOME " "abaixo e verifique se as suas extensões continuarão disponíveis." #: src/exm-window.blp:42 msgid "Main Menu" msgstr "Menu principal" #: src/exm-window.blp:55 msgctxt "Navigation" msgid "_Installed" msgstr "_Instalado" #: src/exm-window.blp:64 msgctxt "Navigation" msgid "_Browse" msgstr "_Procurar" #: src/exm-window.blp:102 #, fuzzy #| msgid "Sort Enabled First" msgid "Sort _Enabled First" msgstr "Ordena as extensões ativadas em primeiro" #: src/exm-window.blp:103 #, fuzzy #| msgid "Show Unsupported" msgid "_Show Unsupported" msgstr "Mostrar sem suporte" #: src/exm-window.blp:106 #, fuzzy #| msgid "Upgrade Assistant" msgid "_Upgrade Assistant" msgstr "Assistente de atualização" #: src/exm-window.blp:107 #, fuzzy #| msgid "About Extension Manager" msgid "_About Extension Manager" msgstr "Acerca do Gestor de Extensões" #: src/exm-window.c:179 msgid "Uninstall Extension?" msgstr "Desinstalar extensão?" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" "As características e funcionalidades da extensão deixarão de estar " "acessíveis. Tem a certeza de que pretende desinstalar?" #: src/exm-window.c:183 msgid "_No" msgstr "_Não" #: src/exm-window.c:184 msgid "_Yes" msgstr "_Sim" #: src/exm-window.c:253 msgid "Unsupported Extension" msgstr "Extensão não suportada" #: src/exm-window.c:254 msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "Esta extensão não é compatível com a sua versão do GNOME Shell. Ela pode " "causar erros se instalada." #: src/exm-window.c:257 msgid "_Install Anyway" msgstr "_Instalar mesmo assim" #: src/exm-window.c:258 msgid "_Go Back" msgstr "_Voltar" #: src/exm-window.c:365 msgid "An error occurred." msgstr "Ocorreu um erro." #: src/exm-window.c:366 msgid "Details" msgstr "Detalhes" #~ msgid "Loading…" #~ msgstr "A carregar…" #~ msgid "@app_title@" #~ msgstr "@app_title@" #~ msgid "HOTFIX: Fix broken 'recent' and 'popularity' search filters" #~ msgstr "" #~ "HOTFIX: Correção dos filtros de pesquisa \"recente\" e \"popularidade\" " #~ "corrompidos" #~ msgid "Various stability and correctness fixes" #~ msgstr "Várias correções de estabilidade" #~ msgid "Translation updates" #~ msgstr "Atualizações de traduções" #~ msgid "Upgrade Assistant scroll fix" #~ msgstr "Correção do deslocamento do Assistente de atualização" #~ msgid "Pixel perfect app icon" #~ msgstr "Ícone da aplicação pixel perfeito" #~ msgid "Official snap support" #~ msgstr "Suporte oficial a snaps" #~ msgid "Improved error log generation" #~ msgstr "Melhoria da criação de registos de erros" #~ msgid "Fully adaptive mobile-friendly user interface" #~ msgstr "Interface totalmente adaptável para dispositivos móveis" #~ msgid "Paginated search results" #~ msgstr "Resultados da pesquisa paginada" #~ msgid "Upgrade Assistant for checking extension compatibility" #~ msgstr "" #~ "Assistente de Atualização para verificar a compatibilidade da extensão" #~ msgid "Unsupported extensions are hidden by default" #~ msgstr "Extensões não suportadas são ocultadas por defeito" #~ msgid "Overhauled error and crash reporting" #~ msgstr "Revisão de erros e relatórios de falhas" #~ msgid "Full-screen image viewer" #~ msgstr "Visualizador de imagens de ecrã inteiro" #~ msgid "Handles new gnome-extensions:// URI scheme" #~ msgstr "" #~ "Faz a gestão do novo gnome-extensions:// esquema de URI" #~ msgid "Randomised extension suggestions" #~ msgstr "Sugestões de extensão aleatórias" #~ msgid "Performance and stability" #~ msgstr "Desempenho e estabilidade" #~ msgid "Various bug fixes" #~ msgstr "Várias correções de bugs" #~ msgid "Remove release notes dialog" #~ msgstr "Remover janela das notas de lançamento" #~ msgid "Fix special characters in installed extension listings" #~ msgstr "" #~ "Corrige os caracteres especiais nas listagens de extensões instaladas" #~ msgid "The second feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "A segunda atualização de funções do gestor de extensões. Em destaque:" #~ msgid "View comments and reviews" #~ msgstr "Ver avaliações e comentários" #~ msgid "Support for in-app updates" #~ msgstr "Suporte para atualizações por dentro da aplicação" #~ msgid "Better handling errors and out-of-date extensions" #~ msgstr "Melhor tratamento de erros e de extensões desatualizadas" #~ msgid "Allow installing 'unsupported' extensions" #~ msgstr "Permite instalar extensões 'não suportadas'" #~ msgid "Display release notes on first run" #~ msgstr "Mostra as notas de lançamento na primeira execução" #~ msgid "New app icon" #~ msgstr "Novo ícone da aplicação" #~ msgid "Optionally sort extensions by enabled status" #~ msgstr "Opcionalmente ordena as extensões pelo estado ativado" #~ msgid "Fix special characters in search results" #~ msgstr "Corrige caracteres especiais nos resultados da pesquisa" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "Corrige uma falha que por vezes ocorria ao desinstalar uma extensão" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "A primeira atualização de funções do gestor de extensões. Em destaque:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "Tema escuro e suporte para substituir o esquema de cores do sistema" #~ msgid "Shows screenshots in extension listings" #~ msgstr "Mostra capturas de ecrã nos detalhes das extensões" #~ msgid "Shell version compatibility check" #~ msgstr "Verifica a compatibilidade da versão Shell" #~ msgid "Localised into seven languages" #~ msgstr "Traduzido em sete idiomas" #~ msgid "Sort search results" #~ msgstr "Ordenar os resultados da pesquisa" #~ msgid "Global extension on/off toggle" #~ msgstr "Ativar/desativar extensão global" #~ msgid "Displays user and system extensions separately" #~ msgstr "Mostra as extensões do utilizador e do sistema separadamente" #~ msgid "Extension Manager (Development)" #~ msgstr "Gestor de Extensões (Desenvolvimento)" #~ msgid "Popularity" #~ msgstr "Popularidade" #~ msgid "Supported Versions" #~ msgstr "Versões suportadas" #~ msgctxt "Navigation" #~ msgid "Browse" #~ msgstr "Explorar" #~ msgid "Theme" #~ msgstr "Tema" #~ msgid "Follow System" #~ msgstr "Tema do sistema" #~ msgid "Light" #~ msgstr "Claro" #~ msgid "Dark" #~ msgstr "Escuro" #~ msgid "Are you sure you want to uninstall?" #~ msgstr "Tem a certeza de que quer desinstalar?" #~ msgid "" #~ "A very simple tool for browsing, downloading, and managing GNOME shell " #~ "extensions." #~ msgstr "" #~ "Uma ferramenta muito simples para explorar, descarregar e gerir as " #~ "extensões do GNOME Shell." #~ msgid "e.g. \"Blur my Shell\"" #~ msgstr "ex: \"Blur my Shell\"" #~ msgid "What's New" #~ msgstr "Novidades" #~ msgid "View Release Notes" #~ msgstr "Ver notas de lançamento" #, c-format #~ msgid "" #~ "This is your first time using Extension Manager %s.\n" #~ "Would you like to see the release notes?" #~ msgstr "" #~ "Esta é a primeira vez que usa o Gestor de Extensões %s\n" #~ "Gostaria de ver as notas de lançamento?" extension-manager-0.5.0/po/pt_BR.po000066400000000000000000000422621457631363100171430ustar00rootroot00000000000000# Brazilian Portuguese translation for Extension Manager. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # Douglas Silva , 2024. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2024-01-02 15:19-0300\n" "Last-Translator: Douglas Silva \n" "Language-Team: \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Poedit 3.4\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "Gerenciador de Extensões" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 msgid "Manage GNOME Shell Extensions" msgstr "Gerencie Extensões do GNOME Shell" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 #, fuzzy #| msgid "extension;manager;" msgid "extension;manager;shell;" msgstr "extension;manager;" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "Navegue, instale e gerencie as Extensões do GNOME Shell" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "Uma ferramenta para navegar e instalar Extensões do GNOME Shell." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "Recursos:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "Navegue pelo extensions.gnome.org diretamente no aplicativo" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "Gerencie as extensões que você já tem instaladas" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "Uma ferramenta para gerenciar Extensões do GNOME Shell" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "Navegue, instale e gerencie as Extensões do GNOME Shell." #: src/exm-application.c:177 msgid "translator-credits" msgstr "" "Celso Tavares https://github.com/celsotavaresdev\n" "Douglas Silva https://github.com/douglasilvadev\n" "Tiago Lucas Flach https://github.com/tiagoFlach" #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "Pesquise por extensões" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "" "Digite uma palavra-chave para pesquisar em 'extensions.gnome.org' por " "Extensões do GNOME Shell." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "Relevância" #: src/exm-browse-page.blp:31 msgctxt "Sort search results" msgid "Downloads" msgstr "Baixados" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "Recentes" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "Nome" #: src/exm-browse-page.blp:61 msgid "_Load More Results" msgstr "_Carregar mais resultados" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "Nenhum resultado encontrado" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "por exemplo “%s”" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "Comentários" #: src/exm-comment-dialog.blp:37 #, fuzzy #| msgid "Comments" msgid "Loading Comments" msgstr "Comentários" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "Ocorreu um erro" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "Autor" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "Ampliar" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "Reduzir" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "Retornar à visualização" #: src/exm-detail-view.blp:106 #, fuzzy #| msgid "Details" msgid "Loading Details" msgstr "Detalhes" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "Ampliar imagem" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "Descrição" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "Links" #: src/exm-detail-view.blp:232 msgid "Homepage" msgstr "Página inicial" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "Ver em Extensões" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "Avaliações do usuário" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "Não há comentários." #: src/exm-detail-view.blp:319 msgid "_Show All Reviews" msgstr "_Mostrar todas as avaliações" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "Relatório de erro" #: src/exm-error-dialog.blp:29 msgid "An unexpected error occurred in Extension Manager." msgstr "Ocorreu um erro inesperado no Gerenciador de Extensões." #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 msgid "_Copy to Clipboard" msgstr "_Copiar para a Área de Transferência" #: src/exm-error-dialog.blp:64 msgid "_New Issue" msgstr "_Novo Problema" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "Copiado" #: src/exm-error-dialog.c:179 msgid "Please open a new issue and attach the following information:" msgstr "Abra um novo problema e anexe as seguintes informações:" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" "Você está usando uma compilação de terceiros do Gerenciador de Extensões. " "Por favor, entre em contato primeiro com o " "distribuidor do pacote (%s) antes de registrar um problema. " "Certifique-se de anexar as seguintes informações:" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "Abrir preferências da extensão" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "Ocorreu um erro ao carregar esta extensão" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "Esta extensão é incompatível com a sua versão atual do GNOME" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "Uma versão mais recente desta extensão está disponível" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "Versão" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "Erro" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "Ver Detalhes" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "Remover" #: src/exm-info-bar.blp:13 msgctxt "Number of downloads" msgid "Downloads" msgstr "Baixados" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "Não suportado" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "Esta extensão é incompatível com a sua versão atual do GNOME." #: src/exm-install-button.c:115 msgid "Install" msgstr "Instalar" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "Instalado" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "Usar Extensões" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "Extensões podem causar problemas de desempenho e estabilidade." #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "Extensões instaladas pelo usuário" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "Extensões do sistema" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "Atualizações estão disponíveis" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "Sair" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "Uma extensão será atualizada no próximo login." msgstr[1] "%d extensão serão atualizadas no próximo login." #: src/exm-installed-page.c:340 msgid "Browse" msgstr "Navegar" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "Não há extensões de usuário instaladas." #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "Não há extensões do sistema instaladas." #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "Assistente de Atualização" #: src/exm-upgrade-assistant.blp:47 msgid "_Check Compatibility" msgstr "_Verificar Compatibilidade" #: src/exm-upgrade-assistant.c:176 #, fuzzy, c-format #| msgid "Checked %d/%d extensions" msgid "Checked %d/%d Extensions" msgstr "Verificado %d/%d extensões" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "%d%% Compatível" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" "GNOME %s suporta %d de %d das extensões atualmente instaladas " "no sistema." #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "Suportado" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "Há uma versão compatível da extensão." #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "Não há versão compatível da extensão." #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "Desconhecido" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" "Esta extensão não está hospedada em extensions.gnome.org. Sua " "compatibilidade não pode ser confirmada." #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" "Você está atualmente usando o GNOME %s. Selecione uma versão do GNOME " "abaixo e verifique se suas extensões continuarão disponíveis." #: src/exm-window.blp:42 msgid "Main Menu" msgstr "Menu Principal" #: src/exm-window.blp:55 msgctxt "Navigation" msgid "_Installed" msgstr "_Instalado" #: src/exm-window.blp:64 msgctxt "Navigation" msgid "_Browse" msgstr "_Navegar" #: src/exm-window.blp:102 #, fuzzy #| msgid "Sort Enabled First" msgid "Sort _Enabled First" msgstr "Classificar Primeiro Ativado" #: src/exm-window.blp:103 #, fuzzy #| msgid "Show Unsupported" msgid "_Show Unsupported" msgstr "Mostrar Não Suportadas" #: src/exm-window.blp:106 #, fuzzy #| msgid "Upgrade Assistant" msgid "_Upgrade Assistant" msgstr "Assistente de Atualização" #: src/exm-window.blp:107 #, fuzzy #| msgid "About Extension Manager" msgid "_About Extension Manager" msgstr "Sobre o Gerenciador de Extensões" #: src/exm-window.c:179 msgid "Uninstall Extension?" msgstr "Desinstalar Extensão?" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" "Os recursos e funcionalidades da extensão não estão mais acessíveis. Tem " "certeza de que deseja desinstalar?" #: src/exm-window.c:183 msgid "_No" msgstr "_Não" #: src/exm-window.c:184 msgid "_Yes" msgstr "_Sim" #: src/exm-window.c:253 msgid "Unsupported Extension" msgstr "Extensão Não Suportada" #: src/exm-window.c:254 msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "Esta extensão não suporta a sua versão do GNOME Shell. Pode causar erros se " "instalada." #: src/exm-window.c:257 msgid "_Install Anyway" msgstr "_Instalar Mesmo Assim" #: src/exm-window.c:258 msgid "_Go Back" msgstr "_Voltar" #: src/exm-window.c:365 msgid "An error occurred." msgstr "Ocorreu um erro." #: src/exm-window.c:366 msgid "Details" msgstr "Detalhes" #~ msgid "Loading…" #~ msgstr "Carregando…" #~ msgid "@app_title@" #~ msgstr "@app_title@" #~ msgid "HOTFIX: Fix broken 'recent' and 'popularity' search filters" #~ msgstr "" #~ "HOTFIX: Corrige filtros de pesquisa 'recentes' e 'populares' quebrados" #~ msgid "Various stability and correctness fixes" #~ msgstr "Várias correções de estabilidade e precisão" #~ msgid "Translation updates" #~ msgstr "Atualizações de tradução" #~ msgid "Upgrade Assistant scroll fix" #~ msgstr "Correção de rolagem do Assistente de Atualização" #~ msgid "Pixel perfect app icon" #~ msgstr "Ícone do aplicativo perfeito em pixels" #~ msgid "Official snap support" #~ msgstr "Suporte oficial para snap" #~ msgid "Improved error log generation" #~ msgstr "Geração aprimorada de logs de erro" #~ msgid "Fully adaptive mobile-friendly user interface" #~ msgstr "" #~ "Interface do usuário totalmente adaptável e compatível com dispositivos " #~ "móveis" #~ msgid "Paginated search results" #~ msgstr "Resultados de pesquisa paginados" #~ msgid "Upgrade Assistant for checking extension compatibility" #~ msgstr "" #~ "Assistente de Atualização para verificar a compatibilidade da extensão" #~ msgid "Unsupported extensions are hidden by default" #~ msgstr "Extensões não suportadas são ocultas por padrão" #~ msgid "Overhauled error and crash reporting" #~ msgstr "Relatório de erros e falhas reformulado" #~ msgid "Full-screen image viewer" #~ msgstr "Visualizador de imagem em tela cheia" #~ msgid "Handles new gnome-extensions:// URI scheme" #~ msgstr "Lida com o novo esquema de URI gnome-extensions://" #~ msgid "Randomised extension suggestions" #~ msgstr "Sugestões de extensão aleatórias" #~ msgid "Performance and stability" #~ msgstr "Desempenho e estabilidade" #~ msgid "Various bug fixes" #~ msgstr "Várias correções de bugs" #~ msgid "Remove release notes dialog" #~ msgstr "Remove o diálogo de notas de versão" #~ msgid "Fix special characters in installed extension listings" #~ msgstr "Corrige caracteres especiais nas listagens de extensões instaladas" #~ msgid "The second feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "A segunda atualização de recursos para o gerenciador de extensões. " #~ "Destaques incluem:" #~ msgid "View comments and reviews" #~ msgstr "Ver comentários e avaliações" #~ msgid "Support for in-app updates" #~ msgstr "Suporte para atualizações no próprio aplicativo" #~ msgid "Better handling errors and out-of-date extensions" #~ msgstr "Melhor tratamento de erros e de extensões desatualizadas" #~ msgid "Allow installing 'unsupported' extensions" #~ msgstr "Permite a instalação de extensões 'não suportadas'" #~ msgid "Display release notes on first run" #~ msgstr "Exibe notas de versão na primeira execução" #~ msgid "New app icon" #~ msgstr "Novo ícone do aplicativo" #~ msgid "Optionally sort extensions by enabled status" #~ msgstr "Classifica as extensões opcionalmente por status ativado" #~ msgid "Fix special characters in search results" #~ msgstr "Corrige caracteres especiais nos resultados da pesquisa" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "" #~ "Corrige uma falha que às vezes ocorre durante a desinstalação de uma " #~ "extensão" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "A primeira atualização de recursos para o gerenciador de extensões. Em " #~ "destaque:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "Tema escuro e suporte para substituir o esquema de cores do sistema" #~ msgid "Shows screenshots in extension listings" #~ msgstr "Mostra capturas de tela nas listagens de extensões" #~ msgid "Shell version compatibility check" #~ msgstr "Verificação de compatibilidade da versão do Shell" #~ msgid "Localised into seven languages" #~ msgstr "Localizado em sete idiomas" #~ msgid "Sort search results" #~ msgstr "Ordene resultados de pesquisa" #~ msgid "Global extension on/off toggle" #~ msgstr "Alternância global para ativar/desativar extensões" #~ msgid "Displays user and system extensions separately" #~ msgstr "Exibe extensões de usuário e do sistema separadamente" #~ msgid "Extension Manager (Development)" #~ msgstr "Gerenciador de Extensões (Desenvolvimento)" extension-manager-0.5.0/po/ru_RU.po000066400000000000000000000526221457631363100171720ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2024-03-01 15:32+0300\n" "Last-Translator: Aleksandr Melman \n" "Language-Team: \n" "Language: ru_RU\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" "X-Generator: Poedit 3.4.2\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "Менеджер расширений" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 msgid "Manage GNOME Shell Extensions" msgstr "Управление расширениями GNOME Shell" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 msgid "extension;manager;shell;" msgstr "extension;manager;shell;менеджер;расширение;" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "Просмотр, установка и управление расширениями GNOME Shell" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "Утилита для просмотра и установки расширений GNOME Shell." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "Функции:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "Просмотр сайта extensions.gnome.org прямо в приложении" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "Управление уже установленными расширениями" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "Утилита для управления расширениями GNOME Shell" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "Просмотр, установка и управление расширениями GNOME Shell." #: src/exm-application.c:177 msgid "translator-credits" msgstr "" "Danik2343 \n" "Aleksandr Melman" #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "Поиск расширений" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "" "Введите ключевое слово для поиска в 'extensions.gnome.org' расширений GNOME " "Shell." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "Релевантность" #: src/exm-browse-page.blp:31 msgctxt "Sort search results" msgid "Downloads" msgstr "Число загрузок" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "Недавние" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "Название" #: src/exm-browse-page.blp:61 msgid "_Load More Results" msgstr "_Загрузить больше результатов" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "Результаты не найдены" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "например, “%s”" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "Комментарии" #: src/exm-comment-dialog.blp:37 #, fuzzy #| msgid "Comments" msgid "Loading Comments" msgstr "Комментарии" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "Произошла ошибка" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "Автор" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "Увеличить" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "Уменьшить" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "Вернуться к просмотру" #: src/exm-detail-view.blp:106 #, fuzzy #| msgid "Details" msgid "Loading Details" msgstr "Подробности" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "Увеличить изображение" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "Описание" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "Ссылки" #: src/exm-detail-view.blp:232 msgid "Homepage" msgstr "Домашняя страница" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "Посмотреть в Расширениях" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "Отзывы пользователей" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "Комментариев нет." #: src/exm-detail-view.blp:319 msgid "_Show All Reviews" msgstr "_Показать все отзывы" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "Отчет об ошибке" #: src/exm-error-dialog.blp:29 msgid "An unexpected error occurred in Extension Manager." msgstr "В менеджере расширений произошла непредвиденная ошибка." #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 msgid "_Copy to Clipboard" msgstr "_Копировать в буфер обмена" #: src/exm-error-dialog.blp:64 msgid "_New Issue" msgstr "_Новая проблема" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "Скопировано" #: src/exm-error-dialog.c:179 msgid "Please open a new issue and attach the following information:" msgstr "Пожалуйста, откройте новую проблему и приложите следующую информацию:" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" "Вы используете стороннюю сборку Extension Manager. Прежде чем обращаться с проблемой, обратитесь к " "распространителю пакета (%s). Обязательно приложите следующую " "информацию:" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "Открыть параметры расширения" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "Произошла ошибка, при загрузке этого расширения" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "Это расширение несовместимо с вашей текущей версией GNOME" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "Доступная новая версия этого расширения" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "Версия" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "Ошибка" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "Посмотреть подробности" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "Удалить" #: src/exm-info-bar.blp:13 msgctxt "Number of downloads" msgid "Downloads" msgstr "Загрузки" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "Не поддерживается" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "Это расширение несовместимо с вашей текущей версией GNOME." #: src/exm-install-button.c:115 msgid "Install" msgstr "Установить" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "Установлено" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "Использовать Расширения" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "" "Расширения могут вызывать проблемы с производительностью и стабильностью." #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "Расширения, установленные пользователем" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "Системные расширения" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "Доступны обновления" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "Выйти" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "%d расширение будет обновлено при следующем входе в систему." msgstr[1] "%d расширения будут обновлены при следующем входе в систему." msgstr[2] "%d расширений будут обновлены при следующем входе в систему." #: src/exm-installed-page.c:340 msgid "Browse" msgstr "Обзор" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "Пользовательские расширения не установлены." #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "Системные расширения не установлены." #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "Помощник по обновлению" #: src/exm-upgrade-assistant.blp:47 msgid "_Check Compatibility" msgstr "_Проверка совместимости" #: src/exm-upgrade-assistant.c:176 #, fuzzy, c-format #| msgid "Checked %d/%d extensions" msgid "Checked %d/%d Extensions" msgstr "Проверено %d/%d расширений" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "Совместимость %d%%" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" "GNOME %s поддерживает %d из %d расширений, установленных в " "настоящее время в системе." #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "Поддерживается" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "Существует совместимая версия расширения." #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "Совместимой версии расширения не существует." #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "Неизвестно" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" "Это расширение не размещено на сайте extensions.gnome.org. Его совместимость " "не может быть определена." #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" "В настоящее время вы используете GNOME %s. Выберите версию GNOME ниже " "и проверьте, будут ли ваши расширения по-прежнему доступны." #: src/exm-window.blp:42 msgid "Main Menu" msgstr "Главное меню" #: src/exm-window.blp:55 msgctxt "Navigation" msgid "_Installed" msgstr "У_становленные" #: src/exm-window.blp:64 msgctxt "Navigation" msgid "_Browse" msgstr "_Обзор" #: src/exm-window.blp:102 #, fuzzy #| msgid "Sort Enabled First" msgid "Sort _Enabled First" msgstr "Сортировать включенные первыми" #: src/exm-window.blp:103 #, fuzzy #| msgid "Show Unsupported" msgid "_Show Unsupported" msgstr "Показать неподдерживаемые" #: src/exm-window.blp:106 #, fuzzy #| msgid "Upgrade Assistant" msgid "_Upgrade Assistant" msgstr "Помощник по обновлению" #: src/exm-window.blp:107 #, fuzzy #| msgid "About Extension Manager" msgid "_About Extension Manager" msgstr "О приложении" #: src/exm-window.c:179 msgid "Uninstall Extension?" msgstr "Удалить расширение?" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" "Функции и возможности расширения больше не будут доступны. Вы уверены, что " "хотите удалить расширение?" #: src/exm-window.c:183 msgid "_No" msgstr "_Нет" #: src/exm-window.c:184 msgid "_Yes" msgstr "_Да" #: src/exm-window.c:253 msgid "Unsupported Extension" msgstr "Неподдерживаемое расширение" #: src/exm-window.c:254 msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "Это расширение не поддерживает вашу версию GNOME Shell. Его установка может " "привести к ошибкам." #: src/exm-window.c:257 msgid "_Install Anyway" msgstr "_Установить все равно" #: src/exm-window.c:258 msgid "_Go Back" msgstr "Н_азад" #: src/exm-window.c:365 msgid "An error occurred." msgstr "Произошла ошибка." #: src/exm-window.c:366 msgid "Details" msgstr "Подробности" #~ msgid "Loading…" #~ msgstr "Загрузка…" #~ msgid "@app_title@" #~ msgstr "@app_title@" #~ msgid "HOTFIX: Fix broken 'recent' and 'popularity' search filters" #~ msgstr "" #~ "HOTFIX: Исправлены неработающие фильтры поиска 'недавние' и 'популярность'" #~ msgid "Various stability and correctness fixes" #~ msgstr "Различные исправления стабильности и корректности" #~ msgid "Translation updates" #~ msgstr "Обновления перевода" #~ msgid "Upgrade Assistant scroll fix" #~ msgstr "Исправление прокрутки помощника по обновлению" #~ msgid "Pixel perfect app icon" #~ msgstr "Идеальная пиксельная иконка приложения" #~ msgid "Official snap support" #~ msgstr "Официальная поддержка snap" #~ msgid "Improved error log generation" #~ msgstr "Улучшено формирование журнала ошибок" #~ msgid "Fully adaptive mobile-friendly user interface" #~ msgstr "" #~ "Полностью адаптивный пользовательский интерфейс, удобный для мобильных " #~ "устройств" #~ msgid "Paginated search results" #~ msgstr "Результаты поиска с разбивкой на страницы" #~ msgid "Upgrade Assistant for checking extension compatibility" #~ msgstr "Помощник по обновлению для проверки совместимости расширений" #~ msgid "Unsupported extensions are hidden by default" #~ msgstr "Неподдерживаемые расширения скрываются по умолчанию" #~ msgid "Overhauled error and crash reporting" #~ msgstr "Переработанная отчетность об ошибках и сбоях" #~ msgid "Full-screen image viewer" #~ msgstr "Полноэкранный просмотрщик изображений" #~ msgid "Handles new gnome-extensions:// URI scheme" #~ msgstr "Обработка новой схемы gnome-extensions:// URI" #~ msgid "Randomised extension suggestions" #~ msgstr "Случайные предложения по расширениям" #~ msgid "Performance and stability" #~ msgstr "Производительность и стабильность" #~ msgid "Various bug fixes" #~ msgstr "Некоторые исправления ошибок" #~ msgid "Remove release notes dialog" #~ msgstr "Удаление диалогового окна примечаний к выпуску" #~ msgid "Fix special characters in installed extension listings" #~ msgstr "Исправление специальных символов в списках установленных расширений" #~ msgid "The second feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Второе функциональное обновление extension-manager. Основные моменты " #~ "включают:" #~ msgid "View comments and reviews" #~ msgstr "Просмотр комментариев и отзывов" #~ msgid "Support for in-app updates" #~ msgstr "Поддержка обновлений в приложении" #~ msgid "Better handling errors and out-of-date extensions" #~ msgstr "Улучшенная обработка ошибок и устаревших расширений" #~ msgid "Allow installing 'unsupported' extensions" #~ msgstr "Разрешить установку \"неподдерживаемых\" расширений" #~ msgid "Display release notes on first run" #~ msgstr "Отображение примечаний к выпуску при первом запуске" #~ msgid "New app icon" #~ msgstr "Новая иконка приложения" #~ msgid "Optionally sort extensions by enabled status" #~ msgstr "Опциональная сортировка расширений по статусу включения" #~ msgid "Fix special characters in search results" #~ msgstr "Исправление специальных символов в результатах поиска" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "Устранение сбоя, который иногда возникает при удалении расширения" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Первое функциональное обновление extension-manager. Основные моменты " #~ "включают:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "Темная тема и поддержка переопределения системной цветовой схемы" #~ msgid "Shows screenshots in extension listings" #~ msgstr "Показывает скриншоты в списках расширений" #~ msgid "Shell version compatibility check" #~ msgstr "Проверка совместимости версии оболочки" #~ msgid "Localised into seven languages" #~ msgstr "Локализована на семи языках" #~ msgid "Sort search results" #~ msgstr "Сортировать результаты поиска" #~ msgid "Global extension on/off toggle" #~ msgstr "Переключатель включения/выключения всех расширений" #~ msgid "Displays user and system extensions separately" #~ msgstr "Отображение пользовательских и системных расширений по отдельности" #~ msgid "Extension Manager (Development)" #~ msgstr "Менеджер расширений (Разрабатываемая версия)" #~ msgid "Popularity" #~ msgstr "Популярность" #~ msgid "Supported Versions" #~ msgstr "Поддерживаемые версии" #~ msgctxt "Navigation" #~ msgid "Browse" #~ msgstr "Обзор" #~ msgid "Are you sure you want to uninstall?" #~ msgstr "Вы уверены, что хотите удалить?" #~ msgid "Theme" #~ msgstr "Тема" #~ msgid "Follow System" #~ msgstr "Следовать системе" #~ msgid "Light" #~ msgstr "Светлая" #~ msgid "Dark" #~ msgstr "Темная" #~ msgid "extension;manager;" #~ msgstr "extension;manager;менеджер;расширение;" extension-manager-0.5.0/po/screenshots/000077500000000000000000000000001457631363100201275ustar00rootroot00000000000000extension-manager-0.5.0/po/screenshots/_1.png000066400000000000000000002063671457631363100211520ustar00rootroot00000000000000PNG  IHDRbKGD IDATxKH#Iwgݙe3eaWa"*>P E (Q/EOAP <$ _>z>ZۉIIGu?_U;N8q =;X.w{O,Qj"]7gП,Ԏ?#'<<\MЎ>KB0^+~ҫ@*w䙱ԭ /Aš"##M*"K*`}}]vqvv&*++s7"01 x,yFXXx(3 U{Ftt4zv #(`> GS[ܾǼP-oww7`@RZ[>LyMLL`4d2&''Ԕhoo|ttTttt`yhhHˍF*ty60` Cb~Նawr\Ħ+ nO_UUy$ڢ -Zڴ(m28h` T i4ѥ')0`ބqpp;;; 񌒒uq~~.ZZZpVs/qђS0nooEYYvp#$899[P?tz+**0WlD^/w(>?4~ciiI5%e6} Uɣےe5 ÄxIg2t$0*sG %q5] ." Ο8mJ_ρe}]}I];u1!O~38b6v]ڄ[.ձ:hDzm6E\3pb,e F ܑa&zG`YMwG/J%"ϫQ?"hj*;gjv T.s'HHvZD d[s ñt ֯9kJ(6V3"D D`i^gFiVW謉xJ#2蚘(k*Tdo)a>UaUS`0Zk4  eb\bzF BrCarlߏ׳3 hGAwOq\ &  HVRD ~kۥ QCl:F p*[>!?맧'{ldOswwqtR/NoZU1&  X jJR,L28` fA+QF\.2.=<<% Κ  bS $MAtHmR)M'5v׈Da2Nv<G IC:Z/b p8t_AONNfzW>_>,6Z9'+4 A: $ !BQJ6(R4eق@+5ȉX  2҇$xQ͍1&   diߧ(,n ?K=??GBj50MP B{H>>޷ع_wvv~w<a z ^s)%g,΂bg} k?_ZJ*B @( {o^7f,.??7sPT*%ruݮN!ZR[#EP!h7N G?Te{R$"#fo޾1V1_^^%cVUIRàngjI%p!dߚBEpb l Щz_mQ"DMp_ چ։{|%\WW,5bd"6@n&錰L ;Y #" B|`0 `0  bB +!e)8v": d(Um |0j_@2C.11lX 1;ⳣ)MA 4)ހ)z,0_r+d SuǕ$c>:X(dG|!4gYl(4~uYA`o7翼cV"IG4݂"(**."* 軏> n`CTSLe 8Ȩ̬"Nef>1ܒD`C򤀠h;88G @IQJޑn Nd;YNxU]] ZؐByyyPn>~q]TTcuww;IPrssV(a Fܽ&''u0siJdd$Ҧvl3Pe}p=r\\hjj(U kυs;S4?65r}"MR$IA$AR落X ${Ha-Kl< !@x}D@iUo??*ؖ G>)L Ғ%^?=CFQj'P$TM = kCHWQQuKKcb._Xu`AhҙwSPC/agŠ:*++a%To#9.D.%i)5s)i8Gtt4 $@h@n<[DPr2%c>VMMq,uȝ=11aw/ H ) ޾6P#)Naay4} h#,//[^~~Az{H,ˆR///<ȉE6s9E iRBWS"B{d`L^ lX`>;x9ao!%̸: y ϩE:0]XE'ؖ0N' ) H )H )ӲXm._\\4bS VK#m+NJ8?>a  ND88.g XS R巃O9X>D.WWWY}Mb&iee9nqg I0D;a@A:Aq!)\'%%ŠHi Cēgm>n'Q)?)\p~(yV^^g?~|;@c#$[WWgUVV!IFޖHOCHjzPRR;-9ep4ڧp'݁/ڜ}"H )H )"t>MOOcXب(3٤QחwZؓ>4$ŗ$NTNH IOOO%IšLE,T=xRu< ." l__VϦ>ryM$--aMX~DQTƉ  (Q(|-%OH!! (-% |vɐ>W:xv=syo~}|}- 3L)S` 0XBlˆ+HZ)4;No C%ߢ`~xxd% λ1-n;L1MΕn+եJYa U,N_W'ޞR<}cK SA{wwW'{cc#pQz˼T o {˪'۶rzjB↺@&@!3Iz};|T&àJ32Փg ~}1` LS`:OOO4 ;?/"o gL#B)O0Ptf_+ShlYimHe0i~lٸ?>>j_^@䤗ZlVN{vvv5^gδ̯gSgY뷷݋ }N]]]叅R)LZf\^^jyO{M M5WVxù2J"e՘FՕJ1g(P>Qj23ElALQ7}óƢX^]]m@8kV!Voƒ1g(`BWco?ec 3Či>$SW7G7Ȓ ! g[&7D!3G3z83 i HC3GDBLE L$֗Ī$!B!B!B E@LЇFT"(axh8M4 ( '7Z Pps#Q DFE}0f9(z. j1EYfYx)!%cXBK)ufn{[EvdfQL*f111byi}ZԨ-J-SyLyHT#AP D "/PAA a7ߜpw{o̙3s{>=8YzQT m_M^j_àA`pW\1k/Tꫯ6iPZ褹@ӹzU/df6Dfc@.5m/n/ѡgK͋>%SNi&5 TD{7ge^{mX@O:}4[RzVf^a쿧l̹_C 2Lz}w?7xy:!S#L@P.#߸q{z2].>Cׯ뮻p@\F rH}e}^{-/)S|7"%<[PwD (d ğDDBI GI W0A%IE:^:'Q \W]u׷o_L%X>p z] W ӧ~Jsap,l$9;# Dqq1r6D J.vn:'HO>$r?n\$'N"@9̙m߾]vm뭷z~{^2~_~C=e͛7{gmtzBtN믿> zħLnںuG ,Ry 7xO?n0`r)f͚]{͝^G{9N"z"lunɛ={W__ 2[hZ M1yKK r[˖-s4q)g!D9-^~Pcc#Or //O5(AQE( Hil "@:u*# O<@رcl,?rE֭t̥Bi߾}?H ~W/ /IDà_8o}3S?BLA@7h#31;mt(`]hr'8|8p98S¥   a $ EuCP/(@P(鸟;vetQbҤI^H (In23k.g9ƱL! K ٳ劊 ,0|\Ϝ9ӛ8q 0X/2|ƾسg@*N]@XBx#){K@}stz(OӾ=DGs_sɄ(s\[{{j(Z3g# hm.)2 kQ0A@hLj?׏4z{/nԤ܂ +"///=U xϘ1_F&G)SД!lE"@ (xDQEB?vA cá@l۶6lN.)=wY6űLvZ7ʣz ǫ-[xG[d0wѮYPI%O: *0TVV'@Ɍ@?:^@wu xs^ylKcN^ @ކ بb0~۷@}@"s6${%!7.8s2K;Fy'+M#8l}y r$ B,ZWPXv¡q;_0 YK[H=+~0 544 xap2,X}4Haj̓E/tLV1'NC('Ov& 8\kc~;Ӆ(^tKj\;wܲ;3S\C{Çx4?-?%%q"E E E E E E E r1')t܌ `!tE#n\۱c nl4"J ;t˙d(SݢEhrJ:s{h tiբr9Iq ;el#TL.ݛx /8F1c&,Yd4b.Loą-I7at?}؂3DoX|?9yi*!CPERlAQ]$42-b+AQP@Z4ҳ! )xzIB.A#9{[#SǸ]؈`Ot~J In `b/gQ;K qɴ}vbÆ {gwAy[[e̙3Xooo[LкR؂  86mBmW!)ӭHe?UUUumP4Dqa?0Ww9}i.ۼy3}9rj7⩇رcrdj.;oRк1u,"Do#:tUTTte$)8uC:tv5m0 x՘U[sVv؍R~z8~`<ٮӛpCD_"ŝjǸ~jkV ڱ똭̎3b[{y^,vީ͚9HK%\wb Qx?F!Xr.[,DWZU,>a"~}!"ۧ'<:7*X!23ȩ4 S"7H_Fr-?(NUyX~ȍe ɶ KK:2K{)(/y/r%C]P_GؔR\˭Wwd"#˥" avdk+X.d\;6 `]ʸ\*fJX)I_(љ 'TrӡBZ•-t+ԕ!t1%(ShI(Q+U8 —!Q|)P8\,S"B)5īTǥbPTԀ B!B!B!B!B!BU0D4p4pW:G#PRS6MLQ1nB~7yF1Pht^d{u$ ?,j*; phЗ \F2 8R`wu\dXTj@=m8j[YɃ<c{Gyr}gM$8!KHN-(Y"!oS&"M'+EBT+k PADQ|nvXDz?vwtWY7ϳ&!MY#ŪYi!51%9l'PU(txx@8х*2 D  bG~BvOT3 ̖(ABHDCBHB ^Z UU.//83&֌RF!np"e=-vTp"u]D"mq)`& 7éO_(N+3Vǔ>$&% Q:`T>_ez}}䘩TnooяSh;\3Y,4|>o, cI$IlXĂIbeTc$ `=]r8ڬ?>>R2C .l5T*|lLX NG>f2>Fr31dJiqww7$vƐI$ A;V^^^(P(rA$Nd$K:eY$~7Hhz===vM>8%yh4xi^PŤd$>AHH\r`TU@qXcI- H HHH%aJl6,m"M $N'.@Rr YKp,SFIRػvU *[R 6*^Jo ">`eVᰄx)&&v2fn<@$A${Ib۱|/rHUH^IC8IHoOVUZ<].7 "hdN=HWjRbU$A`ł ].l>' 1Q!(A14N L0$$I(W_R&kQƲ$x#@k|>)$=F=Nl6B<0EٳnDdIye&H6~^A߸@\.Yo@~ eg|T*)YezEf2x=!h4hv z:Xy^ܞf h4i"j!Umtn#"$ME$>˱H$" R f۹N/Ua]22iAD>=X+̷Z-l;n|)~c:)e2IlN|^G WS#p8|sLBjX7LnH/n8GJ'?^A`$t۔e3VUciem'|!6`bgea 66ZXdX#=/Iul⬎}op߃u(Jv ^ۅ$}?縚# >G m/ڡv{t:O ['h< Q{ʱ4N]04M jIA\#0  dS]*[Ju~JQլ'H4˚ :3kPԊ!o}NøMVo,Rx rl#h4Tj]: Rx'uV:0MWkH>lGk֎QS+N[@H @!$@ $B@H @!@! $BH&ʲL\9\'.E-,`0SkZ<V|fPr~X !NQjߎǣ+ːP^=U4]Hh >t:T'IN=Dw$~;$KQl} _3۲e JsiöǾyؗ|VZ~gUr!ߖf? ZQtgm:Mܹ37U CƸ L7b{63<޼^fM(ױ 4ԩTS^} eCH96pYHR!KV Y8rV>D[/21L2%>ض7ߖt[ 4ճ 1$uBY!aH!aH"bH!!"!aH!aH""!!"bHMpu`H%Y$FᬸpJ볿ahƢwoV}zIaÆA#]u.u"52hDC:l"6WnS0$bsd!!R'|8~xu1c0!C '`HiHе7$+$b3 :!tKӄ$$j"lذ;w5j_&452%KBbٲe/Mӯݹ.s\. jts72]hBt,z={"O#DGG#u1k|-LD-DW6+Wb\^x/HǷȐ!ވ:믿 CիWo&BbĉŞ={pZ`Hرc1GGE/^,N<^vD[ԐΎk1EFJ0hX/H 7nT,zqf_p z T7X]v/H VwYݻl\kCߵ!Q?!Q{衇t͐1z?P &իc|;O0J^hQ%ϟ_4Wm~>}i.(GєriZ6 B)NךD CC0$DĐ0$ C ;CD+`Hx&!"♄!!"bH""!!"bHB JÆ 4q3/u ,hZ%tRC-Μ9cpv!IC"5b Z*J|IݻkH !CCUZ=$ڜG_}U_huiN!Ѩkf:EpHp(._0g\BLLgH4gHt1 Ҋ\bBw-':9LC ZNoߎ ؼy39b"M6ly8+Q?wt=WYOBj ޓ! FskI */! v7{섵qSn 7mqj #~iCbaDh$!I7 . rzsc… B1_~' ,ґ79nkio۷o(,$Cq벐|Z/[OZS7wX&O>d^={ ({|s75 }כD x; C[WuGSĐ0$DD CC0$DĐ0$ 1$ CBDĐ0$DD CBDĐ0$DD C$ %K>/]5$h(Bt;!k&M##$*B}4 HJO_m$1/!aHtH;:p@ ;v!?]#ڱ'$*KiOf^ڷOLSg*ݥ=|exuGCh? ;F"P#t:#4$1$f̘Q4tʆDp}5WPiiK--mݶm[xb^>~3Xxe z Xl!0mk֬8PN8Q/NCy={ǍWر#"$Zu)<מIKHp7ߌa 9r$5qB$+m(5: 6܄{@N~)^߼yӠAۻw/ ˗/OS:涱cD1LqalSeΝ;cN^64y`xCbŊ~SO=b&nǣU)NuժU/ •SNY` L3zX7v;t=Lc΀O7uh(_y&ǩ-Zʕ+E= -B9zhCUJ\ (ak>$B2ĶDuVԦm.ij8Kg͚őcXؿ2eJn@⺃v,E CBDĐ0$DD CBDĐ0$DD CC0$DĐ0$ 1$ CBD Ch1$ ,m1ꫯei8_fЍ7bŋH*H>|8Iѣ*Ӯ] Қ~HĐ0$:2$(.\ܹe*>x6w}ˆن<<ާOj޼yٳg}G1$刷W^]e =7Hdآ%!!"bH""!aH!aH"bH!!"bH""!!"bHOHc3g5tQ:r vP|"DGtwKB":{JKO.SF.]!KѣKd"(`= n#! ,`(o6!Q>rAәFyHL8Ѽcǎ-N<_Lvs!C"oO(TiIJ8U8DD5 : ]ut&D?=!\ʽ|2AZ^nDuN6d޽{#ISi&N/͉wBb[kѣ+^3ggƌ`!qF>N.L" ZƵO7UN:uҡ mnٳ! %KD8$-[H#sϦv({X>ִSG[l'GDYȁxgϯa Z9?k73EfӧS5 ntM03fL018Qcb9cMիޫMa s|ŋٷ%W5$-ZTYvM͋QSև/B~4EqFvZ"$`,ES!!FA& CB^rPC(0$D4i3$۷o_eȑ# :;vgΜߤxX<8Zs 5^w 6oL )Q>Z·q#3< 82ΝpR7L6r_j޼y) ˩Ez=Ν+Z؅V"7B"!L:ׯO?U\2mxq$85\'?x TyHBGq&z)ݾ};} ~{y-{aK,|?g:lS:9HiH Nf樳ÇӯG8#k%!aH"bH!!"!aH!aH""!!"bH""!w-Q d5@Y%E6Y 7](E QQߢ i.:mֹTWtު}}sr @=J@ fV )&-tR\(.05 ĉIkAqAaL$$h2"P\$,L\ud2ɞtmvk6J=A->ofCtr2zyy/tc6j\:I@5͢<#~7kGOUs^& MV' WUUju@ؔNl60J>WHBvM `?mۭVdd2Q$,iw$_DHOVGm/IB84Ch#Ǿ@"Kȫz^n#,Y#8@Zv ӊTQpq-[g~`Aұդ 82H(>$Z^Ǥc.`?IYIQ@R)( Uv`0m<Á';NfUWi~}}$I<>>Ff-V9>}tIBx>FbP+lb1$<.Ĝ>3y%l7N px@v<N#[\.Yq"$b}.9.?(LLI7EܒBq!)H~A߬H?$q0( èS 4!%j~][pcz5_2eҡs,`Z;Ÿ8OjUk?}ٽz{{̼'冑HAC1N&qA'q|>\.}K-ay&Nɻ,9-N<];MX$Wbc5?u!?1sb 8E?MCQzc~c r\E8yr̒Wg/ Gy(Bb,v F<' Nji2)S<]|h<a5;n 0q19AUmNvd/99 dTC9-CQ,B<xE9 a0d՝:T`P('4BV5d zlpUGR@1$I$I$I$I$I$I$I$I$I$I$I$I$I:`8 0 Ƣ1>EuO{aǢ` zj`⯆aX8aX@ k)@5F^ǡaFa #O Ehqr'6qFM0I <^"v=)cHXBn?GV&, P_\'d4B\paZbDD!\C,$>kӃ= 1C(▨1n~$aC KR%`XsP8 l IL22 %MDR`xwB#? 0 W[B(rF Tq."PxVY1EELHC P&VM(A 0AjZ^erD@VN΁秚q אh0DtXV+=`0n C!#P 죉|CT/ 3f^rz-^qêz{Fc8f'}?w}ED3.`E17WԏA"M]_윿k"Aǹ pu L" B,lA BQ -,P+AEADG'}0YD40¸ÛY>1d\뫶Et2UDZ3!t:H8z|>'}ՊR5 K, 4)h%!ƭz іDr}>yd2X,t^n'5|>Rá$m&D$j&%ڑx3{I" $ď$hJ"n7bp8H Ǜ 'ueM+F9" I .H:6$ۓuurX,&ϲ#>Ϲtt$`F:ZYYq"aD $츶fb:;;ӑUպfff$ؽSyܡ}GGö&Q.ECrtJٳH:uWw\^^:e:dt*aRq܈]y}}gi]F0I"JƆrs,LJP P AG;$Id2iZ9@Am/~w$D8z I 5Q5ڐQ D"s &&5Dw]vIԔ5Q $=6-MVWWZ35őDMYD"$A?kʐ@Ǎ:x[y||bh)矟emI"bU8X6"go(6"Z(~6"[ 0GvuN&qaI2cI H\W/1.5H8rn7u +nz'`PoJXM`G q>}CsFai-e{ȷjc0nh2<< I!ʽ= v+ @^# >R.0!(Wg $-H$H$ps =ZCfVfF# K QqDxǢ{ d2iH{VfG&hPh1/N7|>ϊW Z-& 7^;|%+Dg vҺ.m͔7iÁoJ@zMKԏ>qBb0}lt߀|3^"Հ?LX.u>Cƙv+!@N:MՏHitקJ3/@m""@v ` HE6N9VEL rc `@Pjx<*Hp'yGwW_~?>j |N*B!{Oꦟ)nu%ϏO_5 Ï@* *y6J+ m'-Dr8޳ gfgwgw73kػ;kMV*w +4G'_$L8ܽNy$.S{Z>w~ B4~9ej:I(:<2I@yB֓Q+2s5 zxxT$pղcVPɒmgGB<5ႪUc5GDIZزC,CQ:gZDuu%-ݗ!MȬ|I:%# >: Zxyy񒰡M}$qy^Oj5sYF֛t2R$j)秖s$aۅ"c?u)0OP*+VY+^# pQȆ$iXTْ?P$B аQCpu|OLӐIc$ $EGﱨ$$'B] $$I $HI @HI@HI $$@HI $$I $HI @HI@HI $$nK 3]l6|<<HI\$4]V>/@HD^>@?$\.$Z=KFvzN6@R777iXn{֞DJ$bt:GUࡂm* *ms~T>@ffےx~~NDAdJBrzzzJԧoR$?򫫫P 9Vb(.ܨו\ nTEDAQ*}i(}QBw-uEs vn''3̤67_H:$ժD *߁x(Hx<'B* \.> ?R444H{K[%eHMlf!^$j]N>CLCOdRr9D@EellLHFyލ ŧis}CHhv&$:3Q IJH 45SSS_; HPb1599ɶQ8v P$:V 1>>._$rj"E|ss)$NOOU^WjuuUJ%z%͍ aеGCyxxgH sD'C"4HJ7%Ad5>ǞQ*b~IPnooZXXP4y-bttT ɐ@Fbmm6;T^^^?v$a- ~/kUVSh9$\^^f['{@P,$v 2'+"iz? ~&Q?C3-.mNu||l 󕶶;88vvvd'ϸNm{RLt b sƆ8ɉVąͱs?MϝOw%hASO۟dD@¬\O;zoo3uqq၄]#&6[@`>::2Ly8*SLگu1\mbz ?{̶ yk?mX`9fl{!quuE?̹ĕ?A n =~@sWM%)B MB\^ ؈ be6>;hgrA $~‡e;{Eg$sS>Fuq־%xu&/mJ6|]W G'%Q׭GFVP$aZIX?CT}Ͼ'a:Ɨ_^^l%^,Yϒ^آ秶i[ $cIXflZsnDel]:ߨ.owkJ@1=}Ub:p?$>>Qۓ%a PM ŭ{Hi8Ku9[NG4T(Z-DPi%[tڮW&XiI`?f@[ܕU'%ik.7񪮊Wʹ2~bߨ.*4w$H@۾iߕsv-QVOAAtDPtQA%/"^x~/ /(y/aeyp Yf̙ . $ PF#Cnooq4AT*___SRW* lK]DbjssS 6H#aXy )Cj44^S\p=n6ttX, k𵆺"* ԅއ@5Pw0HJ@ӷ;;; 'AVML{ hcdy?`+p$8^ '[Ajsj@b!nB` C !9t퍾Tz*H,8$"Mh6'ID-Le???)#h $8ܤKD"k?R>jjeI$D"f7!ak{ՒM2֖:Qۼshמm'gbam:;mll#|> B3c!t||I8U  Y'&H}Bz!-2$lGe===ٶbL&MD279u gq2iH '''TW5ªjcy0D3NjwVKrpp"sqq9|_Gx>s!s3$t{vΰD"Zh)H 1>J3wyl6xޣ#e ; qz2${7 ^GV R3 < kyy^ H!FQ^65$~ǨK3vMB)v(ЂЭK m.ED7Ip ΂ .p?+ yx߅K1rO y*kAI\^^+|>RDD|@g%D"& m/kRRX$5(b1SOOOF}2]!/wx~~R $tYiw<<ܸ$$`ӼI @HIp@H@$$$@HI $$@HI $$I $HI @HI $$D(fӖ˥ -8qP?޿$IKŢF#[Vt?ݝ_Vm0f''zn.NMKŕek4PHIkIz=j; JBm;jJe'n6wNCSKӜPprrbWWWH'Kb^[TU˧MX?>>ޑl6kZ$d#k'8C]Iojޒ8|L&U6rCb\.gx󹝝t:Vbs./DQ " AD QQѦ6=].\*(q! us|psWb\r_g Μ{gժ9881㸠ZfW(:oHH@^K;J9vvf*@s)Ht:"t`.3^*ĭSTlu(/,LZm^__5xTHr9XGQT$avv֗ }KX,R$lPHo)BAEB2W3:+"X"133T$*A4+dJEB& Ӿ3&ɈHXcܜDPEEEB(ƚ榈ꪳA7kACPntMM;BM KKKBt{%οPd_9J[cN;;;H`;@t%___w^ڏ8>ww7?!zwJ* GJ_;::rYcĞ}‚O_Ds,B!̅aeoϏl[bgϹ% عJ_`Pf?<>n666 WW j #Ԟ%=-b1D"b{zzJg }GyHיcyW .,u/[tJK΅n"10D%D#$eONNhGα6i_^^S{ mOOO"1??hnlp# ^D1a( ,QQz ^D `(m{ggg0> mu{?U=v{=sʉցG200]I赺h999E_k7- )HqHB }֓"Tr$`T`bU_m۫kK5+-$ZRSS꦳nuE{Hxs  $ϗ:I-s $$@H@$@HI $$@,gϞ<- ZHI $$@HI $HI @H"$($$3 lllMZm^xaΜ $$RRRLQ@,?==>|0fttԌp $qߒP)T\KqqY^^)+ %իW ID[_|1?~o߾$$4KI\\\r(Ih^VV$}T#xʒˣ% kGfooϼylmm}CJFSD\\\---A ¢J]}W$K ,IH 5FFmC_0h[$C$n.} ."<||/Rk`mmmoMQ(DJr@t5i_7fmmJY$\Q .,# LJ&+377g~(JY$40IĨ$eH{|)6$''EwY0؝ igt3)--  Q^$33-@lPA˗uH;tۿI cH%d黮*t[9992(** C6!ѱ#B"HIK[>oߚϟ?%DJJJN1|PYϹaG_TV -RHHHPFPY0k4 #Anדgff|㑄'z@5<44$ ԢFnzX]]$Lk%b+$d.$Ts3IIIbnVf+ 9RՊi9Hn9>>^e{<|+ _G޸$$W$Fbee3ija|6 %M7UrKLLI($tI6# J"++mIm%#@tykX]zzWWWg. vO쵮ZL-q%ባt6j$ojjROj({no(mVߛM6=6IH1cGr$$o\G*7'&@UkˋV$$DIHI @HI@H@HI $$@HI $$;Ԣ(YAE= jVhP DE'Lq*DD8-"@QAem۸j}6[s9@$$ HI@@@_p !ĺK_X,8~}}$ĺK" ?_?$8Y>.K:%IjZNbn $I$iTtݹ$t:ITN@|~@PP=HRppp@'''9<$ (ʽztvvF}1$ƶv[>}㡭-ѯ`0aI:OHK"Q/o)f3UU|$~?b1PRl6"Ve`?'ܿj@]0&~aI؀^b4Yh4JDDIҨh6s>$6QԋNb{HD,;=>>M;{b ?)V؈`)"hvZ)b! h#{2.{S[5a6$YIfFGo[n].~vBP-g eN$$ $WV=! v9ȑ v{q&$ :nzT*.'f2 ;'L&m~߷V٬l6i j4pƱ h$Fdu>ħT*EB$;c,0p#gFGW'I pY oT*9 ,&qځZ-X,ƳL@&⢮VqyB8͑BEF-c"뀄|_@\UłBYj Y6ϑ7u@)xg"@\ZO .z]ǣQDaA(2Q|GA r e1pяnk9T4HqELӒC͍֊ L+JZ' ҝy$lVQNE8 eW.wB?Rt}"H G9N?xz>E@B9f҆!\$˥/oۥKXb MSp)䜕c7PLt$2:& `[c$HyǫE͇#ցk뛽WM%"HҥI&URK.MXXZXށXV" Z(be1=烇Ywv6eE]7M*]Rp@uůp+w+ŃP:S7z _BH' }fՙXV'w_dtu Nߋ߉SR߁$I ~tr[|HI $$@HI $? $$I $HI @HbX# FHI $$@HI $HI @Hb#%߁ $%PΎE:@D45*[߷IL&'ՙ E.3yW[& {~~Slִ阖___$IJ$jL"_XHNNNC$ *Ϥl"JAVޞQ3ϭP()XgIh*Gh4TT*KԓL'X- %zg@* =bxzz}||X B@$6iJwI$ApI" _ -3e?KK#AģAPEP("8PD=$!! BN9wSd278j(f:׏/Gh4F4j5_^cT $BP$ 6 333 ab@L&F !ymmmU S*A"`ٶ#I g"00 AժneeWHh@؞DZ!2?Q(KOa~d3ھ&&)1-J}7-\.uSZ! r\3:Nʆq|[[[K%Cjdhh򗗗\ MxxX2K&-'1@XP/g'9iY7w@"O gtrrw#Z?ޓ`ӓ{||^322"G{}}q,?8R yvvv;==oqqяzuymrccc _$(F<ntYZǾ^Y,Ax 68!cf9<<=}5M|3 Lb2e ftt "2Waoo-&~y. ;9:ޗ:hHȒ"֧Qa"ضK}p W QqMC]__3%ob1G6ufh`˨8LrHb p{{+K9 #Z]'NMMI(+ pK(+etRHէuQ#ѐ} t~fQqɌ!/3 H & ! `ylP읿kPۥR)BǂҩCB'tjg]]MݜD$ "NmԊ\9DO5i'"DQ,^-(]5\3'^XA{xx L/+l]xK>.wn agrJaD뵥LJW%(*-9mB $nnT+ 57vŢ0Lh@/ W $$@HI $$@HI $HI @HI@HI $$@HI $$vrvuu廎mgϯ$t:mwwww $$v- =d֎Fv IvR˛q{}}jjdML&&e24$$)tI5$$VDV3P(ā:i[K$qX77XLR$1W?n"02%waf {I$Z $$FY65 M2$ޓۛVՉ> oA. kpQ'bT*"8DIAoXӱrJbFIPny [+.99Q n\J31KŅ (( 7.z;.z|<1o%3͙$vy&'?áL&.//y\ 1 t:kyyYմZP!aXXX$FkABF@}vl!H I즤ޯ.7f7)_o`k=Dm>>>}ѷ7ﻙօEx{{{C~˞X1_5Y~8~~~v~I. y2==@AjgXfǕJO+njj x޶^oW*|t]IؠWwttjĄf8`{||ZYY柟w^>ʏժ ;NB;bv ?y3G'''@@1Xm9 v 1$_9b588$= 3iѺ+z???-?8$lF:8/9ˏwxxk+Nk Q[K_t`ss<'Mr9F-::K/_+$xzJ$tIzyy$uY9S;O$!EFtcq}\k |>yns6M$5ȳs-IHV]?:d﫫+:O s+\XGHʟ?==Y\{A b8$bmO kiO̖r':vűχsa^S v_ ABbA$ d;àwC AB$I$$I AB$I$$I ABw,Ea0}PAQSQSC[QCK DKQA""8 "*Ί @$$$(YIII $$@HI $$ $$I $HI8T9J^zM$tf $1秸\.# /J|}}5%)dl|6r, .$$f]:뤾20#{{{R(llo&neeeEMFrqq!TA0:t3mY[[CH RI% Ps rss#>u:^IommI.3___syyɀ +Q@. m$lL8fiU&H&qSѐ9>>@ `vzzʠ ,} yFo 6EoCN5G.ަ+y?$1 ,C蓼E㞟Mj-bD"1$zE$ j#WVHnooaLb($envcGC@KYM6iIh 'Hb1$,t8tz}X(`O)?JV[H_fYSnrƵ7j# ]qf8;;3Dׁ///O|||2˻;Y__;粪0 u#Nt+*p+>os@RL6 l[ӐO3)QVEpA+!2ZVns ID $'{O% H;>m6A I_N:+zw>݇!itȭp2L4rti%fqITRL >jK+ 1PSނY%Eچ|.BgUleN 0^D22RBZLi:m?э$Ė<:FBLFX<|7Jf|cE>$Ż}}c)n a9FNn7Kc "{ho [, pIh0D*vg_w@nچQN&$IxЭ&:@{g87 eօe],V[PJDQlJB>$3I&/ČB`ğf5KxWT1vWU*#U9(^q+B5(oR|z/<@j6QB_uMJKyV)nLPB5\ʯZj?K®$$! bă_FaD_Pؓzj' ?o6Ā9$c$$999!% Ȏz$]7QF@cz.& *\{4׍Tfb0ȗVޱXL:H$?< (CIqFB W,z4Npk~$¹?==uo|>"myZxV+ǚa7I<>>f"Kؙ㿽2%6Jlar)xx\eYf o%mcܗ$u$te8 t&,\;xv[F}tt:=S‘&)~GD2eLOp pB?6=[[g ;IYz=3;a Q`c5H8P]-cL&J<@"m!Rtn7$3IR)qG$ 8qN\BTPLBF2N#Vulr|@@ȲoI96bϺ x3q[C༼^/Hf]&e;Xw&qGͱQؚlK JƒFvo[ E&ćd'9I Da\"B$j MJ),Rj][p\Me' y_4BOCeY {y{ `+bp;s2gD׋83! 0|]:hQ!lG߁t ^swKnEb8>l6 O}҈d2񋄿:NX,~6Kq6A]? G:fylfVg/xxB? ܱ}D-l8&o|=m3g>( "qI.Edh "hŠD"Ɉ."aEb/H` BlEED^C.vHdֈD  v}/9Ml]r9-[>. !NHU$ .NOPS%U*+lEH`#٘}ġH4ogʼW@ڒλ{xW؇HӱPN&0%"AX V F$4p"6w"4$nZG(U gDѸyR8 )@I{* "wqE]5AhE K5G1d/*gO-.c\ ?B[#f^KQDS(Hl{vP8bL]8Ni !dh|H#(m/.Sb#5?;e(vNa8XPc FFCμ4~CqXt+I+&Ma[>8iC1*v:$: h f7GEH$imSq(1"9:u0VP8"""]CVuRa)m4ˢ$: C6h$IlS:b =KIZqAm"H [f,$-Xg8$)Q&Iz*!I* $ $gI$i~7G$I#8$I I$9. /{6Q2 -\0AGdt;[`g['!FΑ<njH4ED狇(0J:vVFP\c *~XQ@8x57F@XDEOזpr 1q̀(M I U6*F(چP#~ܰpN*y#"(p(Vb#72( ?("bSpE苁K>Kc/zF\NPPp:q!. bdP+#چFA\/DEK1qL窩BDO ~4$F܊T܉;[݊IN\ TOE[aL:T&/ 16 4Zn6IPKO&̶a(L\EsژuDDDW\蛀T܋r},b7#ێن-9m+}A90a#b/u$nD_| n>@)v6d%^Ltkt{mL|ݣ&DaTI!) 7$W%*XDpw7VAKarNGHwC||g1L0:"2EQo4ԽM; 84CJ ȊXŖ T-cXdM3q&RD9 HڕLč qUT L8Ę-u)^7M< 7̄i%gi A!lX"n=E$Cl.|$T*ZB𢡊 zM[S$Ed=om2A"ؽx0mD,DA|$NKT`B#$H|xi%D$h%$.<#Mi#LQ_ _jt:nZ9r@@Ls % x2DqN 6H&NP:mkz&H r CkX~fӵ\.]<2^k>;]X$x`08qw]hp(i5L\^Ot޹&DaYHE-:u)B|hic%>@A;V+NE-BPb(ݼ:+3(Aտ?{qEAB<+!ܟ2!W qs$n%HHKKhbF Î9% :._Ai:^T4XlЧL&C^% (\("(Fi4QVp8Lvat:d"|Z-ezCm[}PN&Z-7 0']NC@z&A.Eݯg@F$D@ !_ĵ iifEPX<{fy =TT#T.yBP:tcKppRhp~ F j5ofhnÃߛٍ !tOOOҁ&3ҟ DAJR|u\PLq14;ZFB(`2آaX,"e5H\,A@+ o 9j ̓<WP[plyph`쪾j%(˝rՊl6z||z>\RXA]*ػ0ôGJ~U"At:7:܁3SD܀:-S)9bRX<l/W999il>m?^deML%J.y=򲬮\15=nV%\msm6B"&_lQH!!Cs޹|\__ ulE%)f*777CrXH4Dq׭ylsA#>ևs9??Mu%rvv|d\dMVr$弪ƾFe'5 %+}ѐ!$$<$~ !1/$1X628z.Ol e+N8<sBqqqշNDo%. !RDrmDLRH|AP4bB"`VRv~sNDH !B!!$BBH JLi NSV666fF2e6ʌT祯6u:!ak[^^~ev ek/!! +++Y˷)zT2c !1!'2c !1!QW#l[Bb"C"{rf]2k !!$;Gqj h (ZDZDjݪF P]*889H =Ϲ;-~.@$  D"Hh4JT*v)  ĤEV+r9* p8Muj4xlj")j5a@D"H8NvGZ-@`*"Vl6g4Dpz777}gg*H.|> t{{9率<;NnW&+jIד` @$  (x2>Վ: y^K8W:Ls/t:MR{zzqq}}-J-H3cަYH@$Y$.//wfG?Byuu5M...yIޔKsKYh4RReaa;J ^p{"3 FD"1[2I~2T&QT1($d2Q8&T*%˄Fckkk[KTU Eoccf3yއXp({W$B" KKK%݆f)bXxd1eޙDQDLD Y1'QQqE@DD 5m{W5Omꪽ7dӭiAجWĿ@$8M9b |M>AA=@si{TrwdE$D$D$*Hp{0 컷7A|L^ <眔hCB鸡nNdڅ o  J"M?a0 "! 1潿nooI"Aݭ    # AA(?~h0D 9@¸|vvAHe mȝLp W*D$D$D$*HԸk๶OO<4H BGFM9>Gee677]{{{P#xY$:6HHTuW45HDBAE$XYtuu1GZ \]]Խ!ak J#t|ax___H B1MkSnF^__9]PHD9_'|t M0;MMMv 2`v(NLL͹U`۸FMMMk['''PvFIwvv~\6鰰םĺ---xrm,cl9!oZ A0 xN$.ϩ-1vrY###ړ YK(}?doll,JzzjC8 }./Ejy3OJqQ>ݴ0ġF(l1OGڲ_dر.m^޿aߛB}C/)s(H:%.4ωpE~oNFD$D$D$c$#ǗYM6 m|g1 ,q"sCC~="ayQHĞ%=ɓfI{ff$"A>8Q!< ,Ҷ9 m̉3009)Ғn~lhoM|@ IcCIK?C{}01!gAwU0%,H e);Kb='H?S,0fm`<(N@~&Y,cM旵2W/]  #Cxs`b ePe2"""+hmmE*QPzpp?vGa\PR\#r]_W̏#) Iol0zx<ƎU\.M[Ek "1 *Hp.m~yEbVsRXN , ϳ!o/[-9nSτ"4︞f]TV0N'0Sz-]5ab8:[sD ~]f4,gDnDN~Mˠ"H(oON-Y:,%wQA~V=Da»!,{`YMVdrD$3d,8b Rǵ`BMP3Uۯ+a"pBYF Tf qㄛg+|;꺨bDT(mQh34#KTO<6E$swꞵC]&{|, EnO<3x?8!u߷9HL/_ëDUC("H_Uݺ0(և"H(("2 fa.D EBP$DDDD EBP$DDDD EBP$DDDD EBP$DDDD EBP$DDDDDP$ EBDDDDP$ EBDDDDP$7bסH(H7{gR?("*"8 ( qQPEq@os]z4{{r5mf$ D@$ D@$ D@$ D@$ DD@$ D@$ D@$?K. @$ DoYYYkV\{{4sss6>>2ׯMH "ɓ'ݽCygΜ1EkkC+'SSSyK8qĄMNNZ}}&8veggXUU]z<,11FGG@$ Db?EbchF޽{"ׯ_7А>|ػ_DΝ;qy͛.ϥ%>@}q=8w]pCy)O@Y= "Hl&996FiiieBW\#GیŋMYu"KI$޼yOZS'7nXbߠQ w7ó"H  vDyyy^'yc|1HOO$ )>>a.mEb``(hJJJtj&PY\\ʲ&\@0hh;*Cx5z@$ Do PN>>w)m4lDni)||=Fz<{,"H (ڠ|e Qma!q^ i =ډV¢7zB+ VC(_D@$[$=fBEee%o3Cִ4Z{=~555YTTUWWmi@JJJ"s=P ""qHӝl|trV166F#{Nw:]2>DB= -//kqWO{m}EI8vݺuT{)޾}tȓpდHS|ݓ'O:G= DZ$QC H-waa*rrr5J4xhPo_eΠ ]{'ݾ}O*ƲȧO$:mP3FN}HDB*|b=򄤷bcclJגM"3S|G=@G@$`^7kzPltl⢖MZkLS4x{g@ FE JA KyWvȱYv\Xfad'3?#)+Mi`gB6)P  S5d_b%EY?xr5~_^Vi#VdIul٤-\.qo>ȶ5Z8+ed ﬢaΩns.Ks:GDB~9[撫m; JߤKsl=W+)B%lsNZN ?.B0<"p~p(w<WB"^dzNwj<f3@vي؁'  gqe D7“1;m3+wW*A \3:H(#i<ጰ={9qpLGa{4-SH@+!GDlFQԱb)Nm{USރݼ-'d254(|7pLI:w!`)dw``ポh~yx1Vx7~tt/c XPB!KpO^'3) '4.qs$_^ۭu[.@B  {Maq0 $2r6jXRIrxlK_p$gnnV[J[ިUxHTĸzu5ڏOt!]VwH縰7ƶ|P6k[Aw Eb*gn=׶HsTonn HԢ׭OX{~Asژ{ck1b^;~]6߳ݻ{|89 "A$jjaWpHT׊ĨDUQR0EgC1VRcD[f7LJmZh:$p!]$ Z\1o.;C@.vƤclW1hݰkDcUZ ̫5U;̹]Dwj^v"1ωH "zy  {EIK*_l UHkxyy{./U=+"QKksVRQKIj]Z] SaXz_sy߸V"U{O*kرu̝q-nGXwḶS)0[jJj7.ND|nq_7ݜO @Vs DH `Ig&WmkK H "A$ DH "A$@$ DH "@$ DH "@$  DHH "A$ DH "A$ DDH  "A$+tQ,",+N)Y(Ŏ5ellBJ$6V򮔩ykf=}o9LO37֧:= "H "H4vvvfHIJ٬Dh㛝5emm @$ DYYY1zzz筭сH"H AАxO+P-T0<>nZ; B_ܜDu\D"rrҔ]S$R~;aRhoovD}/D@$~H)xul úp677Mю8Lp<O x<] x;Tʽ*YOLLS^^^܄X-~B$!ԐBc@$ D⧊ć||Eg%,X2Եﺯׅ kDZ-ЎH TO,y&Z"!~=??kCDg\MWẀƂH oJ[3 ~U3ۅh"\__`"H4Htww F$:;;׏Lbv潳SS;V0/2PR& U @QrKK2Hz>Q{m9W}y<{yZNJM! 0Sv6 "$n7!:m)؏D"X#(~l|S~$(($($($SHF|'jӉBByV}UT*nv1iNhBBB=[.$^_8S!_>Y;"uvFOPNmBHB!o#ErA&D9|>t:m&|C@p5ӿB!DSwڤHn` ӿRHPH|0$~Eix-[oZ&ݮX:t3E2~WÿOŢZl#CHO%JdD."lZ-9 0H@#  U׺lL <>Ѩq1l63my\b}kr(2*.ˀdF> |`A: *$ǣxU; 3N \AP'r, m[}0h9HX,rj\.' j?U4 %$۔/~>lH_S}[l6ߒnC8Z)OJbx={ɩ(`# $F=Z%R_k'N$ >w ﷷW}Cg"2kCbqG]/~ww׋"/:"A$Ŀ*Q_3׳\]_AXxv!0ݶ^<==myE!6 VO x(4X|:"ޟު=wmsuucyO{F$f^z(0W`[a7esj$C)w@$ jY$FCf$m>}ГYy"ձ {ʨA$E<==Oao;5@X/ N)!D^,? Uu}ig"=Ǵ.`Xk w,Di)aK"f";CmG$e&ooo}Qo"A$ET/,ď0<^7^m_85m6{b)UCQ/uڦY-ĮOdծ}fZ~a ڦu{DbW[6w>0qDy2 "A$0j "A$@$ DHH "A$ DH "A$ DDH  "A$ DE F$`DH "@$ DH "wf/Uuah( *"&( p@QADRTE /gEEߏ7|ᜳ|^x:kozzzZH "H ""H "H "H "H {+//7577;ĕ]ӫ@$ DO쬝9sfZbbs---+^ueŋ;|uvvXdd{Z;}4_"H"q V_iWu›7oLQVV˗/ʊءCܱ߿B#z}%q#G6綺*I6555v7Ԯ?~=:w]p!k#"E6>>n={LuG}DÇΟ={ AWW{'SnXؘUTThh۷oЕU|FBɓ'թK D/"q5i|}屴Sy=QBVRUUK)*((peMWWWBM.iqqnܸ`nr# =Z'&?4^:uݻ箝g644dO@Hݽ@$Y$=PY(+޽{Ǘ>@U'OK FkmmU&"H -EcǎrSSSF!_z|MBOiK UC!PZVE$ DbD6 'IJ 4h|LgRJׯޱo߾y>D`S8@$ EB [ rLֵh`'^_xQ9sB333n)JuVHlXnCBf'D@$|m-?~6B#4A%] -??FFF$߿k=ע%V mwXa8<"H ~Djj4TQ$[ mc"%%'7o޴e+--;wlPn["{@0G@$vC$yF G< rJgPj"HHx2la T۵V$/_츎h{a]+,#""U8ێ둑I?{v9wO2224e ڧ'N|v4u"**)_OxFm_z_ѱ@~EG M؜@$ wD*<*Tד'OTwQVOSᙽ^6Ƶ GJ&k}ڐN !hH8c' `0W]"1!p>g K^Ҷnjs?,w^]WtdOxxZ b3_Ӊw2xfA")O3vdۍHTe'2J^i-p,Hx>2?ė~ME8w,݈xɚI7@}UW@B $$#>|2\C㰏ǴV.&&ye؊fY]l6eg岊/2Xc?*7L:wN* dvwn71 iEH$z~F,ۭ  R'{ 1Arv|L& $@CH;l;#3gN4F@ xfQg4Tk xJT=& }$$0(8H6LH`<ݫ@S8 Q]4@B& @⇽WI58~[M4u BPKt -]BKQCCEpg'E\p󃓞8~'چlp&d{G&_gγ ۲=b_?g3Gי|v{{{[giM*盛Lېeysq~FI%SsVc~3ϫW??ePd;X;ԆDMn}t:Y:c}+Ͳ6$Zːfk!!$`So^nXBBH $@H !!$B@H !!$BBH $BBH ! $BBH ! $ !!$BBH !!$BBH !!$BBH ! $BBH !eN>??k4|>x\uzzZپW|6n|߯! $h}}t:M3d^WGGGl;<2x ֢6Dj-//%)綶LŽ~K%Nڈ"HH(v{Mu(,l]RwWab)} D@$FI$fggHOO988pYP[__{әLZLR'D@$FH$4(-h &;LZ>WWvvf*綺jTJJ<"ѱ`$$)ڄH ^!IғH(+aٔHկaUBKNT*IW~ @$ sɯC]OW$E$ 6CcShrkwC8}fߎz>~ woX}c3V}@:DwFPupss36:)L:N5Lvxxh?읿jPGOQJۡkiЩC蠣(":TE\|??.cS8P&snnr~C8-0:XzsC{L}~Xo00+fxF<._*ci¶}n!z٧Z9'WWWGnWm!9tNBH(ğ3= \$0?}W,p{{߫T*!%aZ0c7 6D1@NPW6ǂ}>񑺜Mgr936UoH}\fg;H_C| ="A[BP$s zuHDgZuhiZ?4MMH$hSh4n֡z2jJ$rU x_O`uɮ\ |'#:Im޷#Hޢ"9&U:v"H('#~ k ס+/// ahMj{gh %0:M"/Hǥ\zd>??ֲVXNO+uDv=ms =v-,jp8md{pLsvٯc[Ȫ7YO2̸OhW$Q$ EB8C|as,""H(jz鯯eA>z EBP$ EBP$ EBP$ EBP$ Q$ EBDDDD EBP$DDDD EBP$DDDD EB81áH(^Ǿ$q[-*QD]A-Mz6-A׺q#QP c@:EgNt9;!AH!AH!AH!AH!AH $ B $ B $ B $ BSfN羟L#p!AHkkkj<u5$% {dҚͦ#$vwwM+JRˋcnZ Vebў~xxL&c^jb1 !AH[ZTɉ CFzw$NOOm2( !QmuuմCL}{{;>>> kl:c.5{. B $f|>[pWBbeeMQ"v666ggg|nnnLAm!ER- yXwww|oX\<!AH_o;;;}7k!CkkK3!quue =ǵ9z) Z1/..Lw;^=??[Z5k8pы`gJ4\!񿇄F(2](x#:?xm97W"asT*3w$%" && 'x⍷⁈L&bR˯{zzfܞNOw^gW2X|G  B$ZZZ " Bl5[\E ­e(@ nnn r^  l'|U#) D"4::jnoo)aCs22fq;nvww|xx8DŽ](D6 rHS1A!Aa~3 \ !W;t롡!C_o%RX|+걨{2::*[[[1!BHP$H`d}܈899IMM0<6tc)&"(###())WD0;;; ͈x !XϏzP$()ҒIȂᜩ)]y"VXt"@^kG jYZ555:1bCH!X!^*P?E"Eb@O2tBiC -&E#W$LhSr@@JKK?-Ø $bonn"W $!xzzA=)  $Eee%:xf&pB=B !ښ LJ"AHH`%M C |(}}}A6"BY  m`3""",*'&&F2zA booeS$( LFhh0Pu ) !+"궅<8==[DV E"A@&>nd2Xd !!b%rҎOLLHmm RRRcdllLZʒ`:NHLLHʔFtQyjgY^kXXpg|.E"a{Џ4<9 eKjG.ؐBa~#Zfffd}}Kc|fD K ҁ}x2 ؇XĊ< #G# 6Q$($%joEYO-GSFvv6B!v")o B'fE e_Nz^^%- wMÏ)NF&aIT&ZB!L =HHHDKK F%L&HP$~R$@SS.~Kwtvv?읽1KEVBkJ;+DP˷p "puI{N&rT{X0UKSf!矔JB;6a"Cs򮤲Mʷ7e`W63"aD׈DVs>xd++DV y`!`ߘwe>E;W|Cn9l#bD?yҷ!x2up^s\.shSwE-l_> 5l:#F$H,vRᝇ&$I/SIH>~]Wum7f0H`0g@r(]FRA?Db #F$~H :.J,K#|z=鉄jFJ8"!vIJ0r/ &HH]4t:2l;Lax1DKҤOiB{ :?_ da@ enNspXwo]e[tXFmM#>|choH)׷quLNsuzC"YsWmBBHV;/Q䲆u^h>_i]Ld:@e0Ư rF[\%dsaՌf@iePyd`ksyRB\R#5:q /e`7)BW|u۸:էY$*>;].+ek[w5! !!$99{]rYm|^6G|nB ͑Zr/;vn}? $ΐ/ժ\.3~/1fYe4fSw,QXXbڨXXZi,?6ZAAQ%4B$Ȃ!ٍ vؽglRl6k6KpՕ)DZ>8 m7D~N$T.-ÃbH D^ZZ,%_@$&144Ԫ.ѢA.%q"xYsH w '155!D s ǑPPH t_J/"H 1 -= cccZ !L{{{*ō_( D :["666Lv؄J($ܢH DlEdkDe_#Țʙ$ڄH 1 M~#t-fOO% ;99PF8maa!hjՊO$OnmhaZ n\.t!!JJ"j ja'˻Z{ֳ֬f5vUQ-KaL`0hds[*l6l/~c{OD""˝L&+""rN' ! ! Rpp9STѾ0HpZ5cEmL&41Z|>;rݮp8=0""#ԍ r ėۻؚ\ d<+w[b r4F#l6_98DgH-nGzs4U D"D]."Dy[šB$nm}`Iy>l<rw>?*Lj[[,zn'zTf'c$4x^3xKyt3#E"}H%"݇ԹaΞ HHH|+H "em6xf P\Nz=.O HeOҜv$cS9pvLM;Wv1ET*Sf;;@  $+t>KC?} $V~ :FeFBDDDD@B@B@s a:8p\> B'N%uP A{>sMЩɺ~H!ќhcd "ߟ {W}` l$lZ1C=Ҿ@Y@R)@3@'}m;b uuFC@BDDDD@B@B@)Hn,%ʼX,T 2{lP 4ڗN|X$Ϝ/{kZmboZ/L><}>51 M] <}jeYRZZZ".kKo ZAPG߀@7CyzN+ɋ޼P.n4$c \.y"/VۼE>{+JYs%WۮvĖ"$5BBHpsǹ@H !!$`\ȿ: BBH ! $BBH !B!!$BBH !!$BBH  !!$BBH !!$BBH !!$BBH ! $BBH !n|ztF#.//me,~8??#BB"\Fy~~!l6#ƹ!!$8HRDd2NY)J>j5rz^XVswwy)~jx{{{߫y|||DRVBBH ǘf6 ɋם6=<޹a_@RCH"JB_`imk#"6" 7K-v9ewqށ̺q癙pô_'k( EY0c cWA`,r(. |ё!" J. BcMK@HP$~H7m-"ϥT*`0l&jU>>>=:sӱڶx,Zݮ$ !8јWԅ"AHFص`*LxmZ?B wYl  EBQ@Ϲ>gnl6!rgKkIF,KiZu=B tpnE"HԼV-2aFRG>8nS$!puuet:z.777f^O"AH φ sSS$!`$ (@ hLS&E"APA$0hV /BBH !e /2.g'9BBHq7$n{ƙ䘀8gc&$B@H !!$B!!$BBH ! $BBH ! $ز !aE+BBH !!$BBH !!$BBH B@H !!$Bb]^^hp8LqkZx3`0ԾZj7>x!!$ĮY)O🟟#."Ç!q~~bji2N"L_*kRG eBBHUz^[`&4]__gfl6a|c4S^_x|6!GGG${HB!~sQڮmBguXI$+pq (8n"8ȹ \E<7IsҚZ۷m}A a6H\^^Ã+}4ZZgXB tZÃz4 {u{`0KǡPHá4MD"l=t:5X89C:(}}}=&]mŖ}]~u}ĩ MGw~~.gggruuJ.r^"d{yyyyssuOkD"!d$L2y`0P%s]^^kR)纜stV/67Uۏ1~+A&xG\D H`oF AA[$?^Қ ;mc~~C A8 8H_/ Q!gpD y/j$*Hp2)_}R A H ~!¶&A Aiz{{S ~3LpWAtAjrnkYVR*\.NH5Ѩf):B}ݗj6NP\~||^>r30:"}4ϥjh4f#Xlڣ`F!JA_S>gh_qq9WU=i^K86NNM A0w"bռD(AE_"( "(Х;A("*""s  (((BQ<~ws_g;sΙ=&h:t:M^>J%ѿKH6F#NOOųCbjh2PӡP(*9yD"Ag|ut+ 6=ѷOYG0<4@uT.O|7ԾVR\9r ê:p|||&-Q2`@ H$de[phsQꙔmw\i`Ǜ&v e"~/*UbM#M$? WDH$>>>d2kU q5o4WDD[, ]|FŗutQY٬xf\Q \\\h:[zƫWѨH#}Vo7 4ᬐ7?PV%8ρ@ê:#? vyfDBJ3n$t}˃B0_ Q@ >f3Q{Cp^lR::svvF7q#:H$DH$6ewvv`TD~ jA/ 3y&TlT ]D @EN$daQq8`>NRs}}& P⾣#l8sextR_m _tQ/X + "(.H&,akA| RA;+[K{K Lyaqr$I.3\|$kޑy|~Ǚ步Mkai(2gaRˬиl˙tGB󊓓arnt,n-m[&ewwwc*,`$ƹu2K\ޔq1 DDڜ μM*ZЌUwy}୙!$w0htAF";NFt\ :O///\4ch[ YCf B'wM)ͦ Rw0ye:v|}-̨_\\ @@R~=??wt_vVN"FžIu7Rc$!C#a)9hZZ%s}ڨ3.,+;UC_'uL0 oՀaۓCͣ 2?G)C10#@}o@L^0 X`$:Ri W.FA"\WS/ $XX=ziJiFb='##0}> ;C7`ёxw48Zsk-E7# XIbOWb;m K)6j0H4ט%9FFbd4K>Е72(ooweGRv7_-)$ ~9445ל[}TMD1IJ+ 3$&:ۻÜ60ZC %XD""=WZzlݬ~~sj73c ?,K1"+#b6b6h[m.䯭urjg^y8L9nΈzgLJ8Kަϙ&Lj6b̐p+1uO.DZu[[ ?7y*" ^# ?ֆC0aD|LE8-g^e6%}x# 3,B}`>B}8tٌ"|U X`DhRQ Aât2)/lp#b\.FE8-T𛇬1 [&ŰآxQ&ۚ&#cȷ #4ld h6 5:* vɌ0: 2.0dh`(H~I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$i_XצXmIENDB`extension-manager-0.5.0/po/screenshots/_10.png000066400000000000000000000233171457631363100212220ustar00rootroot00000000000000PNG  IHDRr5HaPLTE888~~~}}}|||{{{zzzyyyxxxwwwvvvuuutttsssrrrqqqpppooonnnmmmlllkkkjjjiiihhhgggfffeeedddcccbbbaaa```___^^^]]]\\\[[[ZZZYYYXXXWWWVVVUUUTTTSSSRRRQQQPPPOOONNNMMMLLLKKKJJJIIIHHHGGGFFFEEEDDDCCCBBBAAA@@@???>>>===<<<;;;:::999555333""" bq$)IDATxݍSgYkPzH}A[7ڮz;^cfr@/ )bSZ V*cOoH zB `rwչ;y'x>NY36G3#(Ca:Afd)mC| 0Hڪ" 1)F?^%.^H/|;sPsdkUHP X!^ax Ҷ[T}ϿZXL wͻ NV~[J+@6F(P9}mDf&,bb (( 尖L㾃7yKiV4ba5ӎRо`נTod{ 2B:( A9zo{7r]2C0_aXt"nࡗ4Ui⧇Nt]b6OЃ^1NyD0:5$G9y}CKtb?Eה_2Ǟ1 28F۴#:LC-VjT,#85 9*jbAEZXe ]ZU%F$6%,!1K΄ΏA( 4[2LMJupI[xQ&E9H+ AMPL hQ@MGaj]v1v67K{Ub/F;g#dIcн4[ W5':d6AB3QWi{,m2Ѝ#G _y"> h3΀ȗ*:i,FcI &۠m`mcs-r>I6ay,0y0y]X0+D#v".?V)=I"geC"! P׆. p1-C(\ ǃ;%wn e4[DB,SRDs=ъ\Dy#Qa^TI"u_JIGj(>n7~mMpOngOW; :n u:?i;_~nGOz <߾:Wkv_e'(sqHV +`P0O"8P˭^퀞~{L-< 8FE~SH~i_ w͸pJuQlN<$#xbOQu' Yc~?PWaΛ{woh۬蒸jrc &{ o9y?' f,m=A'5F<"֚%ةBD}GL!3D ,`' 2^oX|:?rPKVTC?gShD>֟.}KH?$MXY$@۰زmoUFsG=2mydqxVJrVLd$ Pb(FfDNР;A=OUA!Qx * >蚡CЂ΅ \&d B0!;t1"X,j.p<~oF{i⺟Ii]+{fsW.y;X *q-RXNCҊTPSоq 'ZMf:A$ըrb"]س lTܷů[!*'O4 nT0N"EhD;B'qETϖwKg Vr0mhl 7v`DNsxuIef YH4tMC:.1e39,r.Ox"_ȹ}jDn@bwdw$,ǭiś ! ;9K)@Q2cʧL Qs&mȄOʬ!pPκq9d@o%Z+~8Pˠc07n(.HJe\RFHiVE- צO`(rZ_k%jc'j r1h&LMn7 ~;'٠ks8Nw/2Ea]Fk vE[^ u m:I"EhVI!#me7xNdݽyӶf);wVϧ3sΝ4~{y'p**0D( ъ܊_eD [1$0@@:Y_Bk0>}yRS퐆7ix*Co-:u`{x0 )Əd9Ha.W*VL(J p+EAU)a_ais$]4ba.$J'{hCəm|OH[Ͳ(#ڋ/5deyF4EN*MIm0`v~vEx`KMd׮& @qgl{mv O)2xEl{O7%bJF8QD֞P_h d'R |;F-:WpF+D9Hd2nJo#^Joõk#'[}@3| LtC!&q12캝{\!EːꆮM[p%z.P#v\ֿ`.>P\c:=17=DQEwE' ox{[@ھto3շKcW['vAKq+շۣ$ܭ {idKEbp7TiO h] 3{jJ8a*)zԢxsfj3Lk=NAojV"AQlEPHbn̟u|d  糖IޫuggQۍN0]ogϨBȏB1e>vbpQzXVO7ъHsm`LK=:o 1~6-?I1c2of.1biЕD*l-FH7@*Еmɮ +Ya7q頷r,mT^ȂH63W9Ǜ~ROK=Y!Bqabl  h~[_pb'!*@I\aPS*C8*pƨ<8l /T<; tNhU qU1F]d6HjS]98Q= qUŨHi=T*>A 3spQRU_FW,@i(~< Ze&oB!(~(Nuk=}z{Iӓݣxȓާ'GmۿOa!bRa#l ;t~{ ،;t5 ."2z\QҸC/\*7-!br;AL: B޿Eov8(ʓݿEo!T~R}$\y5`;]TR>w}*[fR P 5\Е2*NU؉G(ff%\o[G]CcTxoeʃe ߢ{(uH8J E׬ST\?浒KT)6"QGj#rrtHRy\%5 Ԭv?'r+gǫWynEgϡ )]G?ΞO"QA%<~ቯdgF2ĭ'ǯ*I0syH).U!0GI 5ʹTm\-8E*p8t2;CҔRSS {9ANo%,H* &\!B1cH/#/ */PI,RB2BGE31S'^PZ.cs Ts~ k50T{獮#`g:S~>46u{ƪiϨgH/a;qb_Wo?u h. P{n\XV`dՄ\7VFcQn'' _h |TB\XUWՋ B>gG |r>n,+p:" ԡ*o&=U9UW70,peMG64dL a ƪ籚{z?ݣ+?{.^oGTxZ.RKސB!/gP,|z)]bi<'*O~K;gBk\5 ޾ب_V;K:6o=7IPb0v, WM(=wy;7Bz$Grc9 &C_-/Q=;}FF.\X\;y^+WWvkQ=53:lH!}p'M*B1[^|N50Ѽ72BHߦ̈́3g3-ym?N6?D݅O(}]gcnuQg\&id3/3@y]ݦ_X&Z名xeo[tϢ,76=]]8W5Y|X!?PB!& eV e1\\TFԓSɳ~ɉӦ=~"nN'^ .Yl%/['1K93?YFhN_ƒO=)ZiՄf4E "w3|Ӛq5K?JY7xg~k`D ~/"EDA#L7;̐;-9ux7-h/lFv}L: "o?V~]OY3xKEV?^؜U|=swI>Y64"r>^Shic͒y:reO S;~R wN x?,F!B!c~:е?c l<|8RQMPS#{Fpvtrŋbȅ+1~2Qם4f;?qlgRg7l ]_嘑cWTcW=pbY}3H*jr 8QY _ ?&/g *F/zmr,B!/}4T˖t2;͏n6;{8,m|LZݴ\ G̥]uvTp3J\:Y?E7mpH7y\:?d`\!B!B! ys? ~5@[\ͷ3N]C(D^`\:q3N]v ;ע"ԯK4wFEޑs {Ϻ-yёnm+I-sUS5r-xlYz2w޼V~}#-4*t5 w_[+fh9D9@e_Y.b(ZmF`ZSE֬?ah"kNԾޚu`ue4uA ߗ5p9Pj,ꌧaNؒqP=_2HF۳ e!B #F6!B!&ܵf6k!Tv{agJ. %-]M0WC0\u,ཾGus;#C%Lm>oľו%xEuGv3p G6!axP ޱ _[=aߵPjP;6p[v,캨͡&j:;"oB=FaX_:7-̡&=##%8Hؕը0\}(Z)7B!B! 3ln?9\cU2{~.0f~.0ðfSsycam{%r!B!B4{6dz=#HOO'!=͞\9yӘzan3smBOgG#sIB!B!(xqtT)LT^F 9.x,Î]Cwn;4\%{;Q[еEŭ8K9Qn6*=JǢ/pa{nU *ơnm#"mRW^fx,GY"G.9^Wȍ}"gk^7cw^}4 9[] %YgXE^ =q]z`d$o}#x,汏OEļhF["O%D&"'*qP*OXDțy"WP3K ;ħ w$xU.,S$q~r/'.qz3߇yJ@S:' =yف{{#nm+IoSQG^n=C$YnQ/4bNV2KX'I_RVZWP }qGڤV 2&yO8 8&^: R5ӱ(&&gpcsQ*#nY%h[Gc/Q>^QH=wҋ3T^ ë +GK;{#[$a-s͛mS|a<8= LnAGW> TH DHQ<؋b+62L;93gt:+/T}HZY0}5lZ}qA՘W&okJWt; S;(U~qU}mop\yo~l\ ߂nȏHRcyaO|DL'wB!B!B+h_\DXa2&^9nˆ-|8PaMۺCA\[\U#j!Z ⻐By>FD^iM1L ӕ-~@~U15An|#dtsuK[TQGXBۋ;x:BFQ=`F,rwծzy\c[eza,ב:G~}zX_彖i-Qa'fZڮ ]6vDG~ǮoGEބz4w0#:r=0Y{9*"ggTi:r6͹?{6-Z9CXyj r独Yv#7G. ז.iY~˺d]C˚]8 R X[rB=^˽yp P¢]H؞Al6JB!BMaB!XTO"agvGnjnm NZd}ԟuPG%/[Giz_юeRc{6gԋ_\9QWfh9ȨvK>ZԛZn3eǷe+PQᕴz;oc*n4}e%}ihϭdjh|˛7 _s'zs|=QY^6gՅo14}>RuL#֯Z<5}V?_e}͠|-,_(KB!B!RF Y?l 窹˝qL"'w]Vs&rݰ m3f71<7id\}D `ivZn f9Hou~?&rʪ[Mft۷$;ZCEuzyD74~~֍bl=Ww4f۷L$NKϒ A!މߤIENDB`extension-manager-0.5.0/po/screenshots/_11.png000066400000000000000000001753541457631363100212340ustar00rootroot00000000000000PNG  IHDRpA%bKGDIDATxwxTe{J %@ )* DŲbPDTbY "]q_T(*""* Ny3N$s&\W99L&eqqשǨEu 6* LSu ÈDUÛPm|)O|9U ZG3ZPɆ@ tNuKT7aBjx- tnu;d[NjPÛp7#=?uz& 'B5T\WSX6s@=s*>y q2DxS8M(sLol_1!Pjأ[_Mu@9+T?1;1LpJ>/9@"D:,/ &7_=p9ނ8 o n|8X/}TUp"@3xW1;T6T%ý1`B`1tc'м7_WxcU&NRBNNNN*>>Tl6p8v=dӱcm۶O%,q7& qaKŠWxFm eaR,k8YxlKԩӀFM?T6Mv]N^I&IEVUqqq*))ȑ#n۶m1ʮ?zxzm>)㞼mV8zѸ&mU)osڸzXT>Iѣ /..Vqqq%$$(// 6ܫ3qݯ8q@G~IyM8ڸq87gxs?QPPҐ>!P3vl6;uUYh#y 6nǾk1 pjb+SqؔYeѣǿ3;&#@Ms:*--URRR&MܳgJ8z̸2ɊkJ=(UgT 8t5qER'f͚=s1Ϸ;v)ԞGjbQrr;[!DeAM̋ v| 6J{vjV 5P[K%%L...-& {իDYF{Il***RaaaK )!!A22 NSC%%% v+%%eU* n*{ﹴgRq5P 7F羊N9tʢ*Ot~~hm3бX,jذal65٬dY,9 v1mAڷoߍ}݇*[^ܦzoU*m/PSA9!-/-ԉ_ULX\&IZjذa  v_UUy -z$/eUxpybZOlbzEUxbZU^HD\BB hE .f)>>1MJNrh[T0P&>͵lҰD50%&&H!11p#] 3fەPL>^JNNVQQ ±0g#$goB nj41j7@cΩx[ TCbb4h9W56^`{xnxooe0g.V @U$%%xjРSX-*DNynJ|--΋ vXVM:UVUwYfYݺug-Z(11Q/_~!={jĈ:ӔÇkZh6l %11Qn'99Y=qeNކHywv'XT3V\\F!CqAsa}Z`}ffϞ<]s5jҤnGч~~ItRAr9o߾ըQ#]{!`-ZԩS7xC|򔗗sѣe_O~au֭qHFFzY3f{9j׮Lx3ݻrJY,]ve꫃'6&OaÆڲeFbС꫕ ԆTf-ZHG"&:uR۶muUW2F o\\?.]LLJ]VFMIII$ݻq.RWY}ڽ{ڵkG}T<:t蠽{{Vۈ!T^M"ko>$Զ:O>ZfO.{ժU+ڵKO?.=cj߾^u}ג]vZt{`ڔGkfӕW^cǪGղeKY,OZtߡ sNp l:5qD1B|X unWffZ;z%jӦZn$-[K/>}{oZRo>?^6MÇ-Wvnmݺ5%z'g+B&MҠA5f͚/\P|1ZxA5rȰʨ JKKSf믿l6uAR/?a…*..__iQO^n_9wy7o >lrDbapf yD_I+n_H"5$i͚5z۳g$I&)ġ5j3QiiPפk̙›}ow7Rk+64rxckd[a-ZH_~Ν ޽{ռys 6LJHHPnn{xql~続>};4i$Ӊ'|JN=۷t nqP] UsJ+U8p@˖-_W͙3Gӕx@ɚ8qrssu 7hΜ9Gio^x!`رz!ZJ%) 駟_wޚ;w~uY*--K/mݒ?_tI'B6o߮oV]vUNNvءk#_ .i֬f͚͛ٳGzkjkNe[2c L&1BǏ28N:tHM4Ѽy4v*JKK8;v5ydwoI&t=63zSqkQ;M9xRSSժU+~yڵ?[G%\sE/R{}O>ۧC+oN&I7t裏3gO'ꦛno:3Թ瞫?X?6/d2iΝ0`g=ڰaNnA}Q>}yf+6mڤ^zI]t=\YF}:v6Lo]=zjէ~rqu@]r61*Wol\2UbkճgO믵h"ڵK999رc8FĸX>СC~{xfUPsTTaG&e屩 ]] ://29p癖Vv333uWT?/u>\^j›L.ZvEn̙3lٲH3D|IuPAAG{ƘH )9(CRNS&#V Za*S?}\s(!!AqqqZ28l66绩spbf/UUXp8dX"] 8@h\M*0XZ]֢v \*~w@"aQٓf0eGT@(v#]pb@}ˋf)///eq1B@@v]ǎtj "Qv>|XG5tctQ>|7á|n~rJ@q:*,,T~~>@läg>Ú;vR2, bt갘p 'N*yb)8TSM l&"]p $ WFT!TǎS~~~v;4mT G{UkN~~"]`&I.#"b2W+8zտj٦իsc())?JL&#]FD0nmT qqc`|FYԶX8f\8P\? '&Xbz8EJLL'l6t1HC,N())I))).VYVկ__Wnn "] b1(%%EIII.x 9b|x㒒"2q8%''GC8pKLLt q M 08c lI'.]I&駟jϞ=.E3fPΝ4jyuV Ud|׿Zi>UOJJSO=Uiiir8ڻw֯_>H.1bV.bG|}w1cuP3f̨J2ܷo{$f /UV:իW/I9sh۶m2ﯫJ嶷iFmڴСC5o3L5j?)77W999T!$Ƶ$\MMMp8mWbbb*T]uU_~Yo |PEEEڲefϞ˗l6k1\Y,5h@vox#I\r"eggСCS$AZPSaKvcWNbb&MBkQrr>C}.2222իWӔ)SB1NSK,QtI'i:sd_~tI@T҄ :6;;[O>d Wc@U b:3'%%E%%%Zb$Ds7߬sm۶jٲ?WZw.ItW*!!qNS|Asbɓu=~mݻwwdzcv  eoGS T?,[({GƍӇ~W_}UO>4}t);;[zW#]nX,jҤv~w|~w JOOj]v?m۶;vf.]իWkɚ8qbKVp&4 #GԸT&9NOOĉոqc5nXztg뮓dRff^~e}1Tdn׸qիy:tHH\:MOԮ]|uViFo߾*ѐ9{L'NT˖-%I}^~e9W-sΕ$wCxS585_kTEF.\TwxSUW]R^6K7j2dϟ<-]TGv5sLeeeTO=l6[ꤹsW%y뭷$I[lԕaQu7fϞ=Z~z!$L&]|1{0`;v?v+((ЦMd 4H'trl GѴi"]#]BT#ɉt u|^;ǏdXBv]wݥSΝp8sϩ8e*ݮ|5h@m۶uOKǎ%IPFCs߳gf̘#ǃիWd2뮓nפI4c f 1er8իW/ի1zuTy2224yωc"!8}7֭sR@^z%eff*??_O>;qYj$+޸Ǣ5kh֭#F̈YdNFVv;|VZW|x,m;={ |mؗի nu9!$#9f55Mm縢hhTqǎt a>u gە2 !77Wv=ep<|H@l"08:opç]̜&p! h֬Yҥ$iͺ"ZçpB o$SN{{kJGH222}=hРA76js=WN@"1e˖i%+VD`Lb͛7KiiX0GeE:{k׆4O23C-j*33STBBVZJz뮻NmڴrJwo`\8!zuꩧJM819U|9UjvM7)55U7|V&M1c'T5e裏>RӦMPA"Wx#IݺucǑ#'r3L:iqRR;}˦"Ы9sHoW,>|~á;SݻwWFFL 6hԩaNnHվ}TPP}j>۸q6nܨܹsմiS8p+" ѬYԥKIeKW\s f#Gy2LlQFi޽ڰaRSSոqc}jРu)??_ݺuSQQ\#8!r7t){~=ܣCg _]rڶmSW^QIInF^YgѣG+))IM"v7ylwݚ<x,m;={-!N6nܨݻK6lN@j N&M@1>D`p8G`p8GfE1=!PTT ~Caa! Pl6 #]# //@lˋt5nÇU^=%&&j)^6MEEE4  ys !TG`p8G`p8G`p8G`p8G`p8G`pHt7 .PӦM۲e&LCE:`kȑIҥrrrԤIZ^Sffq||[Ç5{>8tHF77iD999ر>r߿_oy?X۶ms?3fZn+!4I… C:'33SNSO>dX3gNX*ٳg!N^xaױX,?jJRM#GԘ1cJw}޽{륗^իꫯgϞ}8 Ν;k͚58>SNNڴi@,Nٰa?z[nQ޽u-ѣT֭pB%%%yBժU+=CڳgƏG}TÆ zHWzzN覛ns= /PEEE!NzĈ]ve6m{޽[=XZdl٢Cijڴ țŋ~oStjСUX@#Zj%Rnpؽ{ TKJJ~zk.uP*,9_rYd @]B#~W9Nvi!g6MRaaa4dR׮]}@,!f̘#GJ;e˖iڵ4ic=޽:ԢE իW/knܸQ_|Zh͛K.tUW]Ν;I&dXbŊ??bN߿_ԣGqo>ǙflRm,on 0`u^^^NRfff}5gΜj]?55Ujf>|Xqqq.0Fiݺu%ddupz|5DJϞ=}yJIIё#Gw^YFH5k>,F>am۶M^8ˌ*oN:*j۶ma(x%8oQ\p6mZnߖ-[4a:t(BPwnZ:JRSS.]hԨQZj&O~-ƶN;Ҷ޽{nFPE5rJ$uE999jҤIخ׫UVA`zŋ7ޜyz7ԣG ٳҶ=x%8tHF={?Q;vԇ~׻?{=eee)..3fNZjJ1FSGkĈ5j{Ic=cϟ?_Ç)79A~*m[hs͛Wk^͛kĉꪫ8ugsUVVv]dy睺e2ׯVZiРA5~x߿gGV&M4hРr[l覛nʕ+~zUi{zO?]\rϟ{o[ũ^z>tVm_X,effj„ zt]ݻw%\KБ#G|յkW 0@\r{[ZZZaR$}N>l_YYY:5jԨr>}k׮z`QZb_EIjܸ=\C)))JMMUUN8r w^ )==cǎ{9srŴit{o>%&&{yкu뼾YdZuk֭z7_/A}p=.znᆀ]tEWnFnj5J/"`$N-fϞ-[Z/͛T['=b:*>>^f?/*==]sQ4jԨ<_A;x *m?5|p/D>}z뤲!`Yʼ]v^{!y'IצMrJ^RsOkM~O?tAݡC~͇>~o[Gu9 wI2L+v0*~ ы8u/"өN;@t颔͞=۽[we_*99yX,~{4nܸҶÇk Ţo]_}C ђ%K$&_oT6/(7D[nYx̙GG.ڵ?𔕕 &)---!G8++\ht:wyGfYǏ׭Zs=;hJHHP||JJJCD @oVSLю;tg*;;?%۵kZ{~ ы:v옖-[ɓ'kڽ{wV8p@ץ^>@}I'~}޽{]-ZPnnnP`T/ũu~'F=_^d5sL]|ԩRYoϕrss˽رk/]k詧ƴUV~ϗ]vcǎ2dz֭[iӦ_~c;vh7|-8rV^wyGp8Okj۶Ν;qڴiz~.]z[݃wզMԽ{w`^չ~EAWZZz.. x#<'*;;[Zt~IΝ;5{l?^7|֮]5k֔;7Yg^{M_}n喀`T֭+Z2339j wnΝ;8!X5k\_ヾBqqq~INNփ>??k$$$]K/TIhCqƕrq:ھ}{Z-d2|\}^3juWN+NP@^߳`DЛoL+Ylٲi>}{SO=徿pB-\źm tFbŊr+Hҥ^w}WVtA4lذrJJJbŊۢErIf m2+FHl٢ ;H s|a{ަMJU-[L9995Yu|;v}mVUׂ GiǎjӦ r+KҫpxD~!ϨQ* p-p1kA 7ɤ۶|rM2ERrsp?v]N=T~iz7$rԥKr]6k&'*N Regg+;;;ҥP9{z 1=zF~IO9瓈2BDDDT{c?+W" 22...VcϘ1MҬY3tرZ1Td޼yeN .h Tn5%%%3g˗X`o^~O;}VsB'xu.__~ݻ7t邆 HMMq=|}}_M6 sv܉G?''֭[1flFvv6q]\x=Dt <^^^ -[D͑oƎ;ͦW>}Yu u>DDTVU]^,TP8ٲ!ײg ''ؗ/_V9DDRH +V(ر#tQgaaxYJ++_gsNJ?cqssT*Ś5kћ :uCyc?~|}H5mذaٳ'>3HRxBi?կkDvbGtE};wm۶a&pBCCqa|'hժݻPWWW 4vj,rvvvy&={V_D7εkꝊ <+WĐ!Cp lذOOOӧOǨQPXXM6,"" '''ƍ8q|}}b1fΜ3gҥKXx1LLLJ1qDx{{cHLLz쉰0\~Bn*]>6qa޽v`oo//g8~8n޼(/3gʕ+Xx1~> ʕ+ҥK5k|]:u[?CWWWDGGʕ+ AӦM5ҿpqqq5|JT_࣏>Btt4]۷ymBA||RVB@@RYXn]ߓQtap-&ucyS^]-—_~!C 11R:VuYW?)ꜣ@Myg~g̙3G~`۳g_4XO`hhcCrr2>|???W^2X~=8GGGxyyرc~~~hѢ 3f(UNHH֯_#Gm۶J_lll0|  hn2Æ O> ؾ};֭"ܿD@"ήm-N8={֭b1+_ףGlDo &p"ׯ_-6m $&&ʷƍ3DDDm7X,ӧw͛3331k֬Azz:<ի$reW={ )) >ĬY Jѿ~~~HJJBjj*|}}aff>}̙3000@Νҹu8uTޓQԹnߪuި[WUhds3+񃃃 "-SRR|A(B$A"ȷ@?ŋ'Ob4oBk׮T*33*#ĤK$\zU%~hذ!Z@$) F*m-ϲqe;:W^HII.]Vmll`jj*OT*_n*C˖-accXyyyvZhhĠO>z*zSN!//j'գn[ˣsEXUJ]U19ћ ZN6ލLeB*K.|2Woj/_~֛gz)))C upExyy˗^ݶsW% `bb ::k׮Ǐe~  J?T% mT'NP(ă/7"##ѬY3\rE?! QRR1UiSY*ײ ?~{tS]:WKuS1s&QE!7o<<<ЫW/ԯ_055ʼn'bΜ9h߾=4hӧ###.\uDDTܹsw֭Դ.]̙31b7ƣG޽{]geJ@boodۣ^zXl Jѽ{wŢπW_{^zɓSNk׮ݻ7.\2UTB`͕Q6~J;vdܿTD"tIII^cݺuѮ];tkWuo)Kuϕƪ~y1s|uѲTw\LlB훖/^_Ccǎ0a=Ο?@۷uօ7/$""Znɓ':u*:um۶x50СCѸqcԩS=z@nn.^xblڴ pppH$uɄ'O{hڴ|T|A>}`ii رcHKK9FKKK 8m۶ .DǎѠA|WU>^}})_qU;} `޼yh޼9LMMѻw2gn~quuEРA̜9"111`ۣaÆ3gq9l¼ypU_zÇiӦxw0b6M+Ս&Ɯf͚_s;>@ ϒ_KRl PXTᵢ2WPQQPHGڵkKi Lՠ-ZEt6l___l޼YaQ-¿3D8ѣunݺB`` e5& Q1p!""""Riĉ8DDDDDDDDz """"""""=cH1CDDDDDDD!"""""""sL9&p8DDDDDDDDz """"""""=cH1CDDDDDDD!"""""""sL9&p8DDDDDDDDz """"""""=3uo3X ooo8;;aÆJn߾ ddd(:"""""""GZ*yڵƍaiiȈH rvvظq#Zj'N(3>|(**xH7!+++?Xc Jf-EFDDDDDDD =ХKܹ3mۆVqppW_}-Zٳg8~8駟0h ox"`:t(,--q Uo U 8ok׮;e[.b ;v 5>3f+|rxu;W1gk׮NcH-LR5X,Ư/_˗ Fdd|Y$/753Yj?qqq C@@zQj|Mo߮0H LR2e +W{9@(ǂHz-⣏>BFÇ h׮] FHDDDDDDDaѨQ#G^^^xQ1YYY8y$f͚;;; &&&59гg`eeΝ;gHΝiiignn>}`055r[`O[B,#)) UQDDDDDDDqj@aYbYqqeC߯eNNNfei'O[ݲe ֮]ለHdffB,: """""aaaxYJ+ ΆD"J£&DDJKޔ `nn.o&o&"oLJ[䍌UhMDߘ!""""RvyɒJxChMD!""""2D"]Pmj.6/DT9LQ)+;j@6h ruAm""TG!"9L9&pHoYYYaѢE8unݺӧOc尰YL>|'z:""{s$""Z?#nݺI&!337Fݑڴil&&&HIIŋ]n݊wN:7o!"=%{{{bРA())<##ٳ'Le˖ƍDhٲ%>} :u½{W^pH$q-Çbۿ?n޼ ظq#F ;;;$''k/T666Jر~!V^-=I&HNN3$c 022A(N:D"RH|#M&j'&pHo $$۶mC޽憰0 :bBk׮z-aff&?xQ~}4lJu+-TȣG+u'-- U)))Att"*QFn2e ?5ROVPN\|/^T8DT&pH#&&'NV!jfذaxycLLLpDGGcڵx1lRa]^Z.<&%%fff?K.:H|װjcbڵ00P}yf4nXRӮ_͛7k"x饬,fF~~>n޼1c!FAAammtlڴ 7oĽ{l2L2ӦMCll,Ν;Vݳgܹsgb$&&")) Zk/Qmvҥ2oqƏ/_vpp(Ϻun:'?z=ZjmUQ ˞**'[=D?ZlJ4H7233951D"D"AFtFA(jdp}MMbaaxYJ+*}A$LLLAه괻 . 22RjoYSXQ>|ڵz777ݻuLdP,8+..FVVR[4A}6ٮ}:FBlڴ bX~|=pB 4=Bhh(4iɓ'ch֬|||ʍ2e!55ӦMða ?b͈AnݰtR^WQD"-[wbӦM3fGȑ#ѬY3L2Ekqpp%K7n`ٲeJb1ԩ%ln 9dDFFه괻֭@DDDO>ipĉ2cWXQ=25{*W믿P\\JR㯿BFF$V뫉6~z3%lRj7 DŽ G$/7^ X;vXL0???DEEW^8~8ȑ#HJJر~)v؁gϞ"##6V}_oݺ...h߾=RRRʭ"+0sL믿bȐ!3f 222֭˕EhÇݶm0l0?T?n֬Y8vxbpvv."u]Vb+^|/_YGuc޽?~<ڴiwbرTY>kDDDP(D"@ 2ԦxuTUhMDߘѡd+:iӦ011۷Un300^]p 4o\ey/FFFJo:eԯ_~):wzASuErva(,,B(bŊ>700i+CCC|2_zXj%Un7!,, +qeUXVdggc߾}pwwҥK1p@ >\e6D5SX>;575&"_L ٧ddT{X(^a}zC###BD"/ i&&&رc?M6ɓ'Vr/_ ;;;9AAA vرHOOv,uÇ! +(HnݺaРA ĕ+W0uRTXVСC(..ɓ'U&Y#""B!R7ej1T}Sm""Ĵm-%ޮ]RRSS!JAB۷^a*i׮իիW?@NN/F/ou}1fϞq?ENNѲţivvvpuuE`` f͚%O(⣏>BFJcFFpB۱|rVϟ ÇGѿiFiOk׮j]e˕ƍpBؠ۷oɓBM4Qd;+U blhhUBd…ؾ};v܉~ ӦMzVNѧO޽OƐ!C+[u>xwJ]ԴiS4hwy """""*mq+*WvzٳPŲ>Bd˲g_˞-b˛|?كH]BT-NODDDD@||,%%(< 2ekEڬ1x:hѢ>|P4 uƏ?׮]u(DDDDDDD*"<<<&""""""zqMUJJJ7: """""""8DDDDDDDDz """"""""=cH1CDDDDDDD!"""""""sF$I#7x8DDDDDDU$J!Jall cccD"QRR|C h"LUT*P(9 J fff066Fvv6$ 8Do^GDDDDDTI+oyۃ """""J6U3CaǽYI8DDDDDDU ʺH7!"""""U/DXV7!z{0CDDDDDTI8ч0CDDDDDDD!"""rJ$''#9952CTT&L(###ԩSVVVXhN:[nX|9,,,GG"99Z񄇇ck鵚󎈈~',_u~b*}Fb򂭭-NZj!~Gܺu &MBff&7nݻ#;;[oXH:t"%%%uk֬ALL :uꄩSaÆHNNƢEhH_1CDDDzFxx8,,,UΊ+4aakkAɿ=\)aX#ɓ'Jͱd|W>Ǝ%KSGQ>-TDDDFCabbB...ؾ};]>  鉘#$$M6mFb3gę3gp%,^X^+qyy'N7 D̟?_H###_z,"| N>+W`ɒ%JG}h\v ۷oGΞ=Ǐ͛7RS"ҬN:ݻHIIT*Ů]`mmDva(VVVxrssΝbĈz*`Ob׮]*C-0d <6661c|ĉ1tPDFFBBB~z9rm۶-~:{nL4 M4prr'\\\ڪNФIL2HOOGhh(ԩ"ܿy>%"JgI$}Jmff#F`͚5HOOǓ'Oj*O^p-<}F^^^q`ĈӧOcʕxToddcbܹs=zNXeك$<|f͂T*E{.RSSaĶmO~~Ҳ b83yyyvZhQ͛C(bڵJ^2nff&/7oެRrrrm۶wpssCXX;w]$).IXU),,D\\Zl 3}ԯ_ 61)U1p1}tx5;ޭ[J`G/˖-P(ĩS*}3f z~ӧOTg֭֯_@bkN>X,Ɔ PN_)))hٲ%<==w^#--M^:u'f̘l޼AAA@>}p 1'OƁRf"5@6ma$%%͚5C׮] !Q-$jcddPHD"__XX/_ 򋓹9W?z("SYň'JB(B(*Ůne@tt4֮]Ǐc˖-UnUO||<3n8[NQ>-T:fii @(bժU6m>}Aax kA(bWZe޽;>s9rݻw!O|_>p9<|gΜK(YXX Ϟ=Cdd$6l؀ѣGҰm6L2r=z@qrcݿ?w={߰aкuk1ǎCJJ =zK.!88Xt&J ܿRݻwDСJ#w*KMMP(}u5*%%%HKKCAAZW&V@cǎHNN=իe˖!99999JWQ @ !qRWL_|SSS:u ۷oСC?c֬Y9s&"""m۶̙3033ȑ#*R4vXlٲ ~z 0u-W^z/vXaÆA `ʔ) AVVV|oahhX~_~%֯__''' `oo bΜ9HOOǹsJ_\\M6D'l^x̛7͛7)z-ɓ'޽;6m4 )ts|f͚`oo(Xp!:v ૯R;VWWWt 4̙3!4cԨQѶmj9U^ (ܹ%%%u)Bczj0f͚oŹsxbiгgODDD 44z-nꛙ nRի- 1 j*|(,,9Sa?#G0h bnݺhܸ1*n- ?e^mشiٳgcܹسgb1\DDDW^8z(.]I&˕kkk͛3f ݻ2 b AQQp}c/b055E\\ƌbܻw˖-Ô)S0m4ƪLj 8PgϞݽ!78:֬Y3@bb" HN~Oٳű\dff5 ##C\deeʪ6H֭[;vPv1|3gO Yd vڅ(}mR޽{e z???+WM AHH*=Ϟ=Qy4iDvCCCÇuGFBB\~aaaf{"33ҳfݿv·~[jۣG('mGGG8::Õ^hٲ%RSSu Z1Yr]v8wJJJ0g4l7ҥKoJ]ʋ/rB׮]UnС$R}#z쉁ʧ]QQ+Sm۶Z>eLnn.?~, ߠW!"ۄ g~!"""wLٳgcƌÇw ѯ_?Q<"v˽ g޽puuzPOOO޽6.,,Ē%K 333m[lQ`ggvDh߾=ƍ Zt9g#z0cwFNNz7772d.] 4Ą l޽[wڅDO1bZj[[[NNN۷#;;;wеkW[ؼy6_˗/ŋ:t\xvȑ#ѺukX[[_~ڵk3nꫯK]BDo0@4VM+))@ YDT8eff?&ON:!44T>K0k,8::B"߿)e/׿%%%?mIcƌ'acc\p6mt݁pttTZ'H0uT 2| <<LUP(T*'n}ko"z{1CDDDDDT Q^Li,DMqH1CDDDDDDD!"""""""sL9&p8DDDDDDDDz """"""""=cH1CDDDDDDD!"""""""sL9]@DDDDDoD*E(߫kojMD_!""""rIRHR"@a$JQRR|C h5֚蛚n'&pLRB000331!H𨩾6wDDDDD7%y:ۡIm8DDDDD֠71y#c``ccc$pt7j7&pű]td7n?&pL"H!Tڠ˾ U8:A@hh(\\\|vyHHH@fͪ\'Qm!6 +k&Q,W4&"LPuiܹsGajSr@c>@D5k׮uDDDDDDD+ptK.*'"44ϟǎ;жm[=aaa8wV\ˏŘ:u*pIDp"##1yd6PwwwDDDٳ ;C;v܉Xݻ¶:::"<<Νƍakk+/GmŋJw˔H$=ӧO߿%""]Dq5:ts΅bZr%K=֬Y8z(<<}:;o?Nt" ceQddePt (fa  CEd);VJ)t m_C$|9T >\O|\6_V,Y@T||.EEEiժU_g$?P3gt[!IZv닰C뮻4h ծ][:zNǏ:4kٲ}YUREIIIZ~} =pJNf߿_ ZdL&,YSNرc< I Q5o<]xQgϞܹsծ];Iד)VU7n˗u!ׇSG?tA>5Dz2z7fYFBBB$IΝ;l2EGG _\o>׺TٳG5k1ӧO+55mV^l6r-0T"$`p_;dyٳg[n t}ҳ>O>D?-[ cZ5j(}ڶmN|r ujʔ)1c$iʕ:tKuɛJ>V^]III:vT_^G ۫xuozZn~;wկ_?mV:q[l6~:tPcʚ1L{]RSSoF'$$=%%E.]RDDkҥK{n={V.^?O UϞ=[o)!!AgΜٳ ]bݫ͛7O˗uhG޽g[Az44Z.^%Kh7n+YbEb9΅ Tb/_^O.(H͂ QF~%Xx~}RHH;#FfIOÇk֬Y֭[5dȐ 2ͪ\úӎ;4k,hz\3Ϟ=['NԲetyX"׫YI/+>vXծ][/O#FhΜ9vbccuĉ=@qJLLԥKԴiS߿?Ov=pvRSS] =z…   iGUhh7om۶:9sFђρӪU+~#G;Pݺue˖;vl@Bfݻ۲fV͛裏.]Kf+ɓx6M3fp_/Iu$e9C[pa۲etZNKKԩS5uT׺sx,o|zb ]rŵb(**JK,q]I>oNV 4ЦMt)]zU?>Sş#xsI&iڴieUfMz˟~,X *x4lW+N|.\q)66VskyJzJIIQ=^zIիWW||6mڤ~5ȑ#85wQzzƏJ*)!!AO?XpL:uhȐ!>m۶:jϞ=۷k9222>sJOÇ.)_~K@Tk0|9m7eY7簜us97~?vއnzsN!$&&z c/_>&nuv]vJo%ٹsd62F<'$ ׮]"%%Iʔc{#͹,ʲeGY7kt#`p$p(Q^seݔ acP*t!dRfffW*)233e2Oc\yseݔ ! G&I)))u(EUx 8/Mm6T"8JJJr;˺90=v]xQ b1láLzx2Voԍ 1#,J(%%aX)SWus`l$pʙp> {x*ͺ90.8d6p8\ɉ2|C]7 n]$p˙80z'o&9U7$n[ F!w Ob$088GH #`p$p 08?_pq}Æ I/٬4׺?\k֬… Oq(]聃[5qDu6lЯjxs@Bܲ~m_ n:B1,u;oՍ7 1Oц Զm[ըQC6m5jݻB ڱc&ODIj~zJII$EFF_TZty]Vs̑tͤ_~zTlYӧ][NڵSڵu EGG:,zjuQwy9hݻW%I:tвe4m4>ӊ+%&xڷo^z)33SZ|lٲ9P``eXd2|V2334L&J}]xQ .TrTZ<ϡeu9JLLTǎ TO7^uS׮]ԩS5x`jJ]tq%g9{Pō:DWus`l%-bt3$>>^իl67p)$$DtaܹS˖-ƍ|rm߾]Trei߾}SSSgլY3xN>TsSv~GU^=ϲoY߻wouSPwW_}ٳgk:|9$&(^S\nFnI9sxf&Oŋkҥڻw^~\ٛ4`pCq͋BuSIn,X45J+VTBB/^_~Eaaaj߾cǎiĈlӧk5kuV 2XT R֭[5|p/_^?zիղeK}ڹs Vc&1ͪ\Ν;xKJl2}ھ}{ESp&|SSi)z9<ϹY~>u֛/_\Ӂ>ӊ+| PeZ}Zv]v=a%ɹsd6e6|G{&wF<'$ ׮]"%%Iʔc{#͹,ʲeGY-,/t\5r'..Nuy7g6tP=ڵku\o]S 4[|?[y97ou^QR/^?\-ZpT`| =zW\Ecƌ)Cn\l_>yWz5kj޽^=& ҠATvmѣ:u?м}ׯ%&&j׮]5kV)[bbbԧO]pA ЪUlٲR3aEtwd2\r:$i1b`t$p}G֭z!}^=vMZZ233 0|E6lf̘={bv:{$)**J:zoujРA5j9nM*Uy.]Rtt.^(I^>S9edd:t^"44TVR׮]}!T(z7PJ%%%iڴi8qsjjԨQom6M:U'>׶m4zh׺ ۷OUV-T|yW>Lŋ?衇r2d/_Qׯ~/?wyGe˖u++됧˗kZl~GZJM4q5f]V?/Թ`,W_U\\233eٴo>K^8ԩvuv=:r$ڿϳoe_~b(33ӵuAʕ+u<7njժݻ[nZF)IZnM4jU\5kǏĉ-:ZrzݻwGFFjرj߾N8?{NOoϭjժlq>ujʔ)1cmzС/թS'o+I~C=޽{L2ٶL&M4I˗/ײeԬY368ÇWڵ?P}V„ND8q5jd={ꭷRBBΜ9ٳgG$}wuwJZny||A_P1w\Z|߯T+Wj߾}p,X ɤ ɓ:r䈖-[Q+Vh޽JHHvN111:pN8w}WN_sDV%Kh7n+WbE>^VS^{N-Rs={5zh=Zxq:,.ެ́J#Gh…8qb!5k֔lo-U;VBCC%Iھ}ZhCu7"rqQyڶmљ3g-/4aKWVllXLL飷~[~~9wO`UPfffhX_Q)SFVll֬Y_|QǏ R7u7!Tę6mڶmwQzzƏJ*)!!AO?gݺuzgZW'Ow}WX r\_8rf̘aÆ_͛i&}.\)SN:2d"-=mۖ={o߾l̝;WsX|NÇ=V~\\kF7{Vrv47֡'xn\vy8JOܒ_9m7eY7簜us97~?vއnzs:YbbVRnn+""סsι.,&wF<'$ ׮]"%%Iʔc{#͹,ʲeGY7.-J088Gp.Our~lA4ɤL_q233bM|]78'FphOur~lA4ɤedd:"PJJGzP79ex ܲ_6JJJ* %%%Kqnr˺90>?_nŋ@Y,pp8TZZ''cnr獺90&8fvח└:{cP7y틺90689;KƿL=0LM6U-fʕ+nTIҖ-[:uQzjnڭMj˖-WVI&)>>^ ڷobbbA w1g˗5k,ןgl"sI?~\7%I~zM<٭wN&M'b( @*Uɓ' tmذAm۶U5iӦQF޽*T;vhJLLtѐ!CԩS'kӦME:O85k̙3߿YV,k͛ոqcC=M6i T%IkV``٣~I￯B Yf\O? Yh}rN 67N~^{5=3VZ_H1O̓#Iǎ| ݾk;v(88XjRƍ믿&"ްa[gͮ]zU-RN4j(EDDhҥ&q%In낃%IUTbѯZda<8N .ԧ~;SƍUF yf6nܨ &4i7|3322n:mذA˖-#<|e6]! ҂8ͦ^{M#FPhhhpƍ]/]={SRRRgffEPF'NPF<Axro߮['̶-IټyZl:tm۷~{L[lqkРF-ZrʪVyիWO$I3gT~|NW^ժU4vX{*[{"0 <9͍f͚VZe[SO驧r[sNdȁe[ >m˗/KF+*--My=zTfY+WֹsnꜦO#FhΜ9vbccuĉ*0ܜwޛsXκ9Λ{;[nٙX#KLLjuak׮]$eJro=͑\VeeYw#Q=4B`p$p 088GH #`p$p 08?_PL&eZ'",Pv233k׮fp::Jz[{$p@@:xdbbk}zzҔrG[Զ 8H/00P P@@2224_$VShhۯ@V~~~+W(##gqVU$D RٲeBWٲecVQl(qBCC0P)44kǣV P)88a JR孶 d JPXywmm@AAAAf@ H橶 d! Ϗab7mRm@CIپh$pk# -00/ãxViVL$p18m@;n] 42eʨW^jժW.I:v6nܨ>H> `x^V-7V\D5i$uw駟7huQp8t9m޼Yo+uvܩ{m]믿ѣs=nשSt͛7OtۯVZٳG}裏4p@ڵ1'm۶M]vɓ'=v@*o ,b*f*o^3f̐l_~ET~}=3jӦ^u+J|g3g,jժQFiڴi[UVfXVU5jPΝq믿vWNjJ}]c 0 /F@a20JIҹs|1d2#S^hUZxQ*-[V&Mlٳxb;wΝ;տEEEiҤIڽ{.]Tm6\"Iӌ3`իɍjU5h ͟?_ڰaCJLLT\\Μ9QFiJNN$%$$h8ժUSF\V6PR&X,ݻ|Aծ][ _5|o>mѢESNy}DzҥҴvZr_ Fhοڵk5amfRյkW]xc1?q%LrtR;`IQ*/QHH֯_YhvG… uM6իy"/--Mv]׮]+"##u۷O[nU%prtRWիWKV^nݺQFڽ{kO>SO=Ur 6m۶Q5m45jHݻwW cM<5bhȐ!ԩiӦPtV!+88Xs=ܣ$߿_իWGlRcƌю;|lْkZZ>,ݞWjKjM[lm&J*)..ÇOioEiJ68>֦MIYl]"cbbԦMnݺ ɤʕ++**J˖-s{Z rf Qԩ+ai&1BV5Df]2KRjjbbb4`W'""Bڵc=c 1ިYf9jժ.wݻky޼yٺ>Sْ&Gv[֭[륗^t=3a5kL}1?^~ۺO>D}]wݥO>˗s,#sf߿_d=Zdlllx I׻S Ё$Iz}páyy[ZnuiڵZbnvEFF㏵b WAAA4hZl0={k(ڵkam۶2Zb,XPsXvl6:w)V]؇~~y]{=իWO/#ժ+W_<Μ9P}Wڵk V8 Ϝ9]z\SSSզMeffjڸq{GΝo~UV6ko_W5kL˗Wbb֯_Q1:[]n˯7o|P'On϶OLL6lv˚iӦۧ СCСCb(_?.99Y~ puUK.͵bO||$M0`IiEkxl)UVjՁro$լYӵW^k.UPAZj>e=矵qFhBӧOwN:ԑ#G롇3#FhҤI?\s,HIuQ+WNŋ .VZo (J*IRž={V2\C[ڷoɓ''ƍuw͛5qDI/ܮ];UZUǎ$]r5,O>c=z }dv;Hw}ug73ϸSVҠAԫWw Sddm۶W\YWVƍ}\߻woG駟V6mԿWO 7p@jJ裏t,ͦK>CHy`gϝ+)))4N:{CŢ5jszG7o֭[xy(I3g?E>zVZcjر:}zUpǏp讻R \=nM99wNRRz-}ss&^7(}f9FjC3g… m_A6m_կ__w}.]˫iӦjܸn}E8UNZ̙SNiڴi:z/_^2(m@IKLLeٳgiӦ Vpp5k9s_n]o|El2IRϞ=]z)m޼6w\IׇO}9+ծ];[g9|^}Uf5pN t˼b4ͪ\""" ^9>}vء9s渒dEe P<>5%%EWjwWBFiӦwfPIRӦMe2\ Gn{URR?y*VSbECeʔq=jժz'z,ԪUKݻww#*J3b['|5k泑 wu΃ӷo_vܹӵnX,ENss_[nݻsJ23Flw<87hĈ|㉊R6mTzuo?*W͛'I0aN?ʹUQz5Сۏ\ig{QRR"##{n(%%E}ݧ+W觟~*RLFhy9u$k׮ujs٫<1>u IյkW͟?_SJJ^}i޼yڵk7tιb,11Qׇ~3gЪUԧOlsx\|YOVVoiȑn̞=[2223Ϩ^zJIIs*!!A?|ٵkܮ}v%$$hϞ=u[nshVSSS5{lvWs :{l߾Q=p!9'(펶 _8.ëӋ|**m@FVZZC-fmD{nM\ Vzz222W?t! 7Ջ4UͶU%=pG;hg04&GlbB[W[P2w_R8mDnm$pedd(99aJNNVFFFG[w[P%Bjj*s?X(55˥y(YHʕ+|AHMMp**(Q݀aNU,oU% P\r/5(dfV(T]vMu808ͦ+WdX* ×m%VFF.]@Ϗ6p<*b x%^ZZ@:$XzzҔPVq#UCJOOdVdXd6e2|"nWff222t5l69_'ꭧUA:02* 088GH #`p$p 088GH #`p$p 088GH #`p$p 088GH #`p$p 088GH #`p$p 088GH #`p$p 088GH #`p$p 088GH #`p$p 088GH #`p$p 088GH #`p$p 088yYC #,,Lvu^G ȑ#<>uB$(5k3hxxC 8b_r s #k;Fnn*qB ĠKP 4V.ՠ e[|V}*n*X)>,ZmE1P؄Yb).HD@ B!A(I 2$C28s2<9}9'qd^ଁ0UUU6ǏOuXojjJcccvڕ!=6iҤ|C~֦6۷oOCCÐ SF oJ|4iҰ2TUUUT[[[ Qh.5Xachvi5P guVq]ߴiS/F#pկ~&I<|+_ƊF| #<2IrqǕK ө`9sf?}kM6'}ݗ 6@FN:3O0ST >9sffΜ {d߾}et!jjjr}oݛK韲~$G /̂ RWWŋ qS (O}*}{key$~xdYzu+7|@/y0N5xl#0J͜93{,Y$wۃuֵ?3gн;^6m경m:}nݚ۷g…Mm8矟,]=iں_ueٲey7\e0 |_6Iz*_|q.<5k0V8 pF}IG_{|:[|yk/~qݞc9&k׮ /apRms_zy睹;koJyГFTVV77.ƍβF<(4޴m3>k z:բEf͚̚5+f*S#`j՟:] t>gΒ%Kdɒ̞=;W.S#mF'|23g{n'#6mڔ#<2k׮Ծt7nF$#pF/--- s1c矟P!]oSmܸ1_QjÆ {`\Yxq֭[$9묳:=csק&wuWbp z۝b7SWW[lٲG?$fs秦&O=Tn2W bMMMYxq|΂ `577箻-ܒ2T D0۷/7|s.];/{rG&ykQ'x"iSP`1bÆ r ] NPp@E)5X!]B!jB0ڵ%+8#Pssso^o߾=e?5,!00p illLmmmƏԔڵ(ܜ;vdǎ."P8'(8@ p 6:CrI'S{sssVZ[`t$IUUUN>zeldb9䓻 oTVVO8`ӧOI'ޣ!N pV$sxӱiӆ&F۷gʕ=NjnnΪU7$۳jժ.C<ٺuk*LnȎ;]֭[e*FW__~9x;/|}}`dIִ?0sQG_׿ڵ+[ZZXgϞ[.7R__~_|e (m۶L6-'pBN lN8kR=sOK q夓NmvmO̸qX%բEf͚m|^|Q+8ںuk0k֬io{p¼eln֭KjժZ*?.wod.cT엿倮;*38`F -dɒ+;OLC:\y?w.#[[r饗f.`o|#\pAjjj] 7q|W_]RnpHvvޝe˖(w)@78cTKKKz}ٹsgz {~]R>!J<.pr ] NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp.w NgƌI_~9=Xz۷ӦMo=is1cooo̶mT!(WSSl޼9wygV^$|c;\uUk(w9dƌٴiS<㩯O}}}VXk6Zrg\ Q@Ν;;___;Irkm@pFuoVZmsGu԰5pF$Ikkk!$ٺuk^sm}b1`[vmOLlٲ%[Nsm}br?O$'R[[֬Y&k׮Mkkkjkkp2U)TcLiT]M14*y(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(r6mZ~~/y{rᇧ%7nSO=˗%gqF.tAڏ>}?o~ygT!(wg?$YbE|Ḵ}C9sUWnȳ>[R=\veIo}[뮻rFoҥKSYY+"Ǐ/s@)(}(555yGz|k_ܹs;4~^x!SNg]ƊpFSN9%IK.vtMkkkxN!2}477W_ͻI#8b8"Xkkk***Ԕ??lo8qb,Y~o+_J9JQ9oF*++SWWcg}6G}tdӦMQQ?y`}vؑlOKm@ pF?˿6tnyrfy׻ޕ;vT-Н!zߊs;>-z7qʣ1UUQgϞlݺ5{'x;cǎl۶-444x8㌴䦛nƍ0L6-۷o/w?~|6nILҚQ "#<|̼y2o޼ܹ3{ ?Os~2gΜqiiiɫY|yv]2npƈ۷;wQR~1@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@Ueĉihhco&I&MTJ!UW]~|ꩧ8cļyOSg>!1#HⰈ1xr `XdI.\8%#JCr-eQ:Ǩ9,b Pp,b 0F.Zkז<̇>z꩝ڧLN:)'tR?LKKKHrgڧMN;-vZ/_%KLU @[xo߾<#Yre3uԜ|932o޼TTTN9ׯ_˗cX~_E#HV^^x![UTTip>(0ⵅ7{ҥKce֭>}z /̹瞛$wSjp=[+ۺuk~[.^ziN=<3Ng?YQ<6lȖ-[SNɔ)SOOTht '7_ײnݺs7oνޛg}6W_}u=ܬXt*((S۴GySx/GySjnn޽{;=F<TȚKv o:կ~e˖%~Ӭ0fΜ$Yrey晜s9C锩̙s&If͚իWGMeeeN=̚5+ٰaCVX}>?>~x/_.$QNH?͊+z\1y$oMI@piݙ}z6omC9?PL~ڰaCN:餜|yᇻ7gΜ$K/ԯ_jUVXq %:uj***#x*++SSSөatZfMN;ϽmO??PL~zsI'3Ⱥu/gƌ93˛o$Fcǃ>N;-^xa}Wگq??I|.#Pӯ<㩩ɥ^:+rHr!e]޽;oưWY?]ve߾}bXvm/_:(W_}u>#Huuu8,X sAeΝٴiSKa?LEEEN=Ԝs99sАI&.˭ޚ]v zݵkWfϞ466)+W̩;wW_ͤI2a„^P?i{Tsn{zg>vهvX/eϤIr饗#Ȗ-[r뭷Rwm۶Caʔ)?3fdƍ?l۶m @}Y~}ԩSSO} Ɏ$I:<aNq:C[qW!Pi~jhhȷk9CprХ|_+m+]Ёg544[oͿ˿lggycaАۿ-wϗr08'(8NMMM.z#頱%c=@o8ٳǿê){)w@ pJ qaԔr.hm۶L0!ǏOu\MMMill43D7+lZzê ZQQQf8Jn9\jc2imm-_H6~^0ZZZ ߠmo8cH[b7VЁ*[KKK!m"7,~0zܹ3{-w](lmCmL8&MJsssK/B0XLRecӧS57y{{N4)7|s6nܘ/}Ke8^zi>iӦU֣! VK3B"ؿ &nȄ $7pC.\8,HT[[~ 2nܸ$ɛoe˖妛nv\y9쳳{vm{uESNIڧ{va'>~|W1h;{frH9wCR9E_x _t2U5\sϝ;M &MT2}/g?ڧM׿444d͚5|+"Ǐ_/<vX.\m'eUZpa͛7xG6oޜ|;={v~ӟvZF|3ɼyr7Kccc***rꩧ/O}}~GG}t7e[n%ǏGիW~y;}3qf׮]=3Lk8qb.\;{`3L2%_|q{+V)VʓO>gy&vʦMrOdٶm[6mڔ{}*Reeesqǥ*JZ[ufƌ$?xviZ7lܸń:m7NR'|r>NuEnP 0W8HqAKKKKEEEek&sNnjFرy睗;/>}zvޝ$Yzu<կ~5wuWo6Gydƍ|;m]l6lțoq[n_ccc֯_ߩm9;vaٵkWН5u/O:W]uՠ`,8HSSSo>XkjM8}Qt<\kFUՇ?N;vȺurm?qޫ̙EK.Ν;sg.k?}̙3ٲeK'I7oޜ\r%>P{ɲeя~~466vj{sqey7$O?{y晝I_IZ9眓O>9<`jY\}tٳggt;Gݼ:~=Z:<=d޽{v#HΝs欳ʢE,I6ƍKMMMv:6W_͖-[GOlnݺlذ!RUUuQCVwn=@ڵkWWo޼9:&Mʌ3hѢ,YuN|S{0\$Hz.r8}Bu$io/|!6l`9#'̽ޛᄏz2vX,]4sw'IyߞKSOMKKK>CҥK}/_~}\ve~7|1wqG>Ov5\]v{__o~W[[_ۂ `'O<(+f+̘1׼Llٲe֭[HҔ iM_ uFqcy.^>'oMK]W&\;o޼1LNԙs#uuuy饗}]nSI~M ӧc_kkkV^;w ޼擟d>O o=}Aݻw? ɮ4wxn{tS:K8iDN_! yNo t%MTާZuֿxvSSSSvVC7hO\v[ZZZ9tk|0~{WUUqeݺu7&y3}UΔ-l)tӗ/=(.+JUv( sɓ/hhh8*Lj0F L81}O<ėIFߔ>':\Iz}q! q4xܸrʯ޽I&uڶ(L81ڊ'x$B»:v1kI?;w\6iҤ7A>fŊ[#o:N߶x{&U֠g B]OԪ䭠5]Ojڼy󊚚'NxĉTVkVճ>8;v(wξ}z8***R]]L0!;w_3ܞdw~t=w5Y=#rSڧtvj[su:S&ɸc=)S|tܸqﮪRٖ氟3f_.wjƌٽ{wOSSS˞={v644<o`ڵ?[ oš)ަT֖.{zݝ! :=qWkj$3uuG{ cEiδ=:)}]{uCui[zx.2$xoۇ}۶o{=:.~Ԕ"`ptt aJLu56ݣ?uM7i{ܴiK*ttKR>G$L>MK״) rFLPӝ"8]i;8tM6mpӫRrchBuhJÜQ8#ozyץ,q Gב4M[pt|xmkI8ku0p]m*UW;^t u 3pUTJwLʼn{Yu7婧JCvB>զSnZUQ5m#pZy*Vpz=i;_:¦4)zU V 7}*)~6#q:n:.ҐץN7]iM}ӟ~6\#pr#otqGov}:]w_pb-^Ux3eNQP%]0ձvה.d.j֧uFO w5M0gM g0XӨJ_wwWӫzjmb ”n:T_IumxO%IpܤFUz]RE[j/N"3_'.d976bgx(rw+"ԧmmMiS7I1GtկtLO#q^~}  . 41dB8](S@2/s$)蛤NW}q50hӨ} hPqw6 {NWtu>iMW}z hҌ7I4&]%}E9qڎ5yK`ӱ?Mw}r7eYxw*5T!N_8@|X6)I]ݥFtx?p8?{k 7ݵug8Ɂ8tYʣup ˪h!@Q6Cu-е9kpz0!NǾً=@Q fr #t{(jp u 0Zṕ0 o88@Up_;dRh}h0ɁG!ÛddE aFwE3!IŸ!5Bu$}fk:i3 ;G6;Z#10 ƖN6#9G#P+#*i3 0eD7mFK QQĚ`1()bM2ByMxtmԄ6c,|FFepfch6Cz1??$c&)%1fR=B01| F:IENDB`extension-manager-0.5.0/po/screenshots/_12.png000066400000000000000000000257621457631363100212320ustar00rootroot00000000000000PNG  IHDRͧ-bKGD+IDATx oU O3*yԩʠB P'(,8h8hјB" 8b~5g {gTuo6O>w[l9s(˓?~ V^MyڹgϞ׽{|3v`ƌWczj5ZCUP?K.aP7 /0u+U{X k69_xFj*IG 0xܹs=8}Vmtaئ95p￿p&Qma`W.S DS 'wܡB>{UWPc^PcĈK,ʼy?|F_L'a…=kUY%':O.ˊ=O8L箌8 Ǡ7S\]3j$G~S@A*Ckio;a]f ody41_x;L+hf L | &Ao9l#0Qk:E\ngjxqIE9з}qƯUwl )Cf9)zg}E|r\!>=8u Bq+o63pD5߸V*De2GeeRK#z5ծ D;6).²eˮ* sakBe6ťp]ܴ2Ԗmݦ)vEAǎxےZZZN9*79et P^z)T3@ *\'>QLT&*)c$A{ꩧJ_vi9W 8 GiYam94a8?u]BeoxS -@U(s$[`*㡝iAY*U+g ݿc&uS$|&[fY^1u_Z< W'R~Ue(Y$U(4R$6#2Xt@ LT&*$әpD9DF}t  SUϹ262$Πp~ e<3BHo*nPk6[hYOsnN3ieŕ13F޳q5ӿBUe3| FCG\Nx%R[8CM<΀_EM\obCjm6gx@20B.~z4 ";!(5X R)@XS5Ge2g۶mLNy~N ypb0 :*J/ JP xzˬST~g 3g8JY=`Ro@?#SezڊLR.nk>sҼ$DH Md{ 涖- 0g=f p $$#5"(+b:2@0 {g۵h&}VD:b +i)b><[7ɯ,cb$!JfN,0Ęxe1b%ߺ2_tECUsl61*O>_̉Eb)1,v_dAP\05_*#K 9MCI]n +.=\e$=X3m Jeic~-$+6$;G|`TLIt 1{U͊pk&Sb͢}g6)1 twy1zB AL 1f̣<|`A;搼kRVbY'A豌 #R⠩fdq. P7%M9V}rϬgZNv49v~o666oWa/1v)sjSH(9;©M}S+ddN<X12 1&r୑eKyb1 f3&P{@N ],#c|饗2PFp C~E`Xj܇]wulO^1li@qVIVm R;ӂ}$̤5MQJb«J9!eĉGYA~\A neP(\pJ(pJB>eT>1 &1 & 1@mrNjq=uβ`ߝd%2G˓ḃ~h̞={XG}$M&֔lot6nr8 i4

M2TTYˀ5Y1Gdc=KNK0&G @WCL.;%]1ALV1c+0Pf*Ǥ8ZMvS9Z$8QgEwn5b-9d;~S9 obRp$-8f*11bϯn\;e kkiW|MVƍONX#O?!V bALb eŽZ(jCԔޒ ̬\,yтTׯO~b$PAxM o]?<Z&`aFqso)zW'LL i:mOcPs̊+ؚ hC ݂\YQT\C %zO,<~JL)&5bb_TEf͚EuȜX`ˈ|08VGjrNS2 4cVV-t9 1X6#uNQ#031 & 1 & 1ALZ!X!˿c·m戯$$fWqp- ѐ_@`f^6k(:1ӔТeV`orϔ % W16lvZʛ6m9rM̩ -BO-$+41K!9&b7> )9Дޓ ,vjcLL&xȑ?6'1?iq^|M5o2VE bÄBL[1 Ms~1Y&41z:Gԣ@::t2?/a8vb, *3 1 & 1AL b@'L:t@V@AJq+k:~ OiB [ a eHu*~:_s9ZqXcGLa2:8%D魬`)Sdr= -Z+UZ,ڊ2W1"<"F L8$7ҔbbBc* 4… ihK,uF5./_9AK3y H3_GcXb76qS(BJ 8 4?SbyL {D-]M |SbREMFs+}*O% F}~Rb,P&z+OY&#zZ|PK={l1^}6Ν;WSΛ7O[+ IѣEҫ÷npOM@0C,7J6g$s-ǥ.{=6vz)1>2~3GÇL%hU "+\|h`zo1h>Zb3t* |\1$x2;{7 <{ǎqdP813#t>Ps-xKvPy#mYee kqcޚ54?0;P0JkN1yb,<QR{^)㲷>`*O0LI0y)LAp&_b&c̸z(~(*TX!%7ֹ'8%T&&48!`8x ҈WV%<*wcFz(IT&B0UR(.J/DnNpB'M1猇%0\4bګ8H}ir8J5ِ) f$Z=FMĢ\b{8h0(כ\F U#W3F>y|>ŇV"E xc8q`_"JekmE;r|e32(,ٴ`LIK0i1>'-opa71nZFOߴnfc<>F`p؝N'c$&]k}}v31Z1Q?FnZW+c1FL&0rkEncKh_c{1@# `3\4cq9c&{m$%Q0$n &`t2گڷ$`:n l_m̯o~;׸,/X Aj[WJkJ'if$[0q }A-U[E*l>b(Ҋ4GdIf~ss|Ϲkb{b]Y.&ws?sb];}P$TP!Js9*ڵk9F5TN#E%aA$sֈ-P;~% 0"< qϡQ_R~1S9|NXضmP8ݻF(į}y.,if./$>M! ަOCy!˼]G0+d'⟦ݻw.ax?\f O"a8oX<u]xZ?zO.kcz'I$LQfצ`ٿ?Su0N~8pc$ 6 /9'KA|PNF ɓ'恫ٳg~箝8exX900z)X! _-qzZ`qξDSomg3g0}rX6|M^MQֶ2Ec˖- {Mf;R7#'B}?~>2@Q 6D6:z~rС{ٵ5PԑG`Ξ={@dYa{13H>` Mc;QAFډ08cYBM|r2LCDAh,B #: #" 0  #@ѡ?rb7rr \Gs@4TW􀖳 !gKX L Ez-3%?ʉ dLR9*r-\s rhD:1|qА ֭3Exätf ]1cP {hgޏH!2rؑLpma Uw̓3z@*tZBH@aEShɿXQyh$ 9rQG"\î]aBDzeZBR@hmhT :0`Gv Z;AT 00a֭q1ã%vmٲ17[YwBUqܹs)ypdCgMo}Du0ޑMAK'(a<B8| 2iLN8G%0d*(ym8}|AmÛ' g$|AH< O1ВʼnAn^=|Ix]>>>!0ࣆqTB,]38'AG#2gQnMuh`!V~ɄQ$~LȏkbH^ xQ=܃*crr҄ 1t5;;;\VWFo{b0~q%xtMv9>XtI5]Adeuu/,r#o夹4(L*|K' cb 6}܊!5D5n YxHVnюӉ.̡k,$> _&ҀXyb0aB0l%Ĉ*PRcXDS``^1ևl@ѠIs7%:e=ڐb9 EPD0u m\sEɔL$ Ha`*miM?fO/ *,>+EOFgfdXV K& Ɓ֒ .bAJN GlՆd RahX,r~;1[=RB&|LhU*/Făpϟ=[&ѵlߒm:v6MRSG0KDAFDAaAaAFDAaAAFDAaAjNcӬQ xRKDj!?w*NB |GMlF[{CJ8!hIJQ32vCKF=Zn avߢmab>?rHGK"y%a`J K@}v!I奁rF-7”ž)1}ヒ)G]pn}>B;_T䕏za0 ӌvN+2 "՝K9E$ [裏2M$ XPC ?#x#O Fð,A!ꫬ"p\}RO8AEucDI >&60l k&ޢ`[fӎnjZCvEècqp&3gPK⚕0z6F[afӧO{_4\_zǪq; [83ǔ|n1:N_5Q/2%o âQR36Uc)șJ67F"=8rN{ʭ>SJϡaVz-ٳǎcaAAFDAa- s 5@; H&" 0 ##" H%nR%W}^. ͈]ju5+ rq!C&ⳠLۉĽLbc,v ޞF*K_hTl95^p?=Bdh>S4^(ЅK*"CdueB@ 4˱Ba'|'H0*knsMlÇs Ap("'^ 0YvI2} `F4к^ hƽJ}966lٲ[X4 FR1f0 e4 6m*' K -[`d.^.Il Qm-.Lab5`\B䄊!30cU26ZÌ GǰuL+][, 6/k uָ$XjϺfٸq#fOİ"!˩z MrG,b/O<& Ϝ% !'>(Xu]`4$4„I1KM_.lQ? ! a}䍧d83~l°r/ObsD9tL켻ã`9pD٫0 tJ'4kC=LdKB_o3Z21$KQLjIR8aQ{#<χE!&t׎zH9.d0TYM7@u36@z9,&jDD=L:*%J0H.Ñݵ7Td,+o0AeäLg{gwF ý#\opphH9<0fJN1s5kf$35-Wǩ_-s_iw:S@)O9-pc1OיlwOLf]ً?SlЭ5{_G6dn0pEȵjŸ6^pIENDB`extension-manager-0.5.0/po/screenshots/_13.png000066400000000000000000001401771457631363100212310ustar00rootroot00000000000000PNG  IHDRpA%bKGD4IDATxw|SwFw(Pd x *QRDEPT,e(ȕ * rYPW2%iIM{|Py{| (@ 95'56ЩiFM^Ԅ@&\#5]ssQ xW-rTWmœxubMTP MBT*:/BEU+as Q*;*7l 'Cʨ\ ᨄcUnNꥅ )-t& JYE!gxz^r㒁X&ro$TI7 4)Įץ7Sz䨰0 nf)..m :TQh#yu6nץ R*SM]rݦ*&梋.+;;[G St:UXXئ=BZ̸2+K=|W]\n>~ UVȶjVZF8Y,U9= Y,]TXaaJCxNhm#yY'/ˣCmr᝷ѣZi`*ΰVፋjULLe"b(**2Bl6"##;=nJ6ڐG_B(8 |\r˔RohK(pHK~wwv]7˴gy@yP'_vsY^VS(7&Ifl²K8K([MPY\"""dZ?ol6 NE~_EKg4ty$W-֒S{;np_nt !{F @E JLLT\\{r ׄ4qqqJLLTBBB pҲ%Fj3_}jSm*PJHHxheee)//"/~e\fxko¹5?g@8(؀O H 5JY‚-p|sTiýqPcYVM:UVUO>. BlVNt饗aÆ֯ui߾}F .bO\rԩtm۶M+Vۍ./DGG+..lj(oKz$G}=׻{{vNZ+,Bm۶I*_DDDhTn]IOOק~ŋ܁gZ5m48 ӧO7$p b ͞=V1o%!!AFې2URe8 ]=WX?h;ڧnݺ;p8oTReO?]l.]hݻwO?%K護 pk l/ڴiMw7SO=iӦ_U(Wx7|S֭ӱct9w2d/ɤ3gVy}T1*z@s_MyCJ ¥NyTkVd'NT^Ӷm[#ƥK.zgHһᆱuEݻwWvԯ_?9o,׹Q5{ljԨQFӱc4sL9%[4I*Y`H_3tP']6mSN;v?OBBW&LЎ;$I]vՐ!CԤI-'|R^xaz=E)_ p ]*+Vx衇mjjϟ_NNc#<իWOvurr֯__ z b˛7oӧk۶m?>}נAt1M8Q_~.]VZiĈ|PiWRDD^|ųjѣG+::Z?bŊs6TJ^zZ|V\_]A;6+\r%u֕ݺu4|pBVDDD8 .@?}QI̙3uyСC:v*!4Պh y0`q5mT . t'OV޽uIڵK:t(uۆ jԩW{=}Tff_=z~YVVttrss}:u4mܸQ^zyfs8Fy :TzRNN&NcǎOɊ֘1c4fիWxZv^zb/RYV͞=[+WeZuM7QF޽/_e˖iڴiڿ_WLzd6b w7Bm۪y8p`Po(*ፋb]wݥ_Ɋ q[N:wkTWVkm@&N_~E-Z?YfӱcOT.T^| "Uz_MRSS%O ڽ{dE4nX_~?ÇfO>7n5j$ŢY~@]<4hoYСCUXX׺;O]v6mڤgyFRQ૯Z7VDDDkuQ^7x(ág}P&Mg-0`>{oٲe+rנzҚ5ktpqjݺL&l"Ζ-[tw(662K*_ѣGo<  &G.Cs ,Y"쟳C)񔐐ѣGꫯrLVFeP t9ånw9縷j4냣o?~fϞ-ZH*iG:vl9vݪBN˜>)55U)))^ @(ӧz쩛nIk֬Q t͛7$mݺU6MlM{n߿_;w_W-^=/-[lַ~[,YfꫯTz1eܹJMMu)I]vƎ+Iz嗵qƀb9kyLLL_^iii:t}[OT%$7OV++K.D3g_|C:$73f+%Kh^jxɟNԻw2ml6_1YE±JK2]hEŋK*j/ @xѲet-cǎ֕כD?eѐ!Cԭ[7]qѣ&O,wjqMm}Y\AɦMk[wQ5֭kuKDDڴi^zIcǎU 4eY,U:BWtW_?ѧO\OK*((ШQԪU+裏t1wkڵkOHHJs/ {U{~[uG}/j˗K* Ϥoxbw˫`oeӊ+t 7hȐ!ڴiׁ;ud9NoCicQu5k5kI&z5a:ucl8!j \>w˓T3>p4|9dd҆ a;YզMk:y:w\222԰aC :T˗/׮]ԱcG͟?_?SVsiÆ rOUg۷O;wTN-[EZd\vZr-7o>%%%)..NӦMoV>1%##CcǎՋ/-[J*^znݺ w駟$Iڵs/ꪫԡCuZjiںu֭{Giiio%I7oV~Fu֚9sfs9Gsѹ^vQ]cKF,gϖdR~4|BөSN)11Q .԰a*}vPUXXXfӪU+O4ḯ Ϻul-7 >jɓ'U^=5n\p7#ӧu/oɓu~I~ws3gSf͔.xzGt7oSO=c/l?$ݻwW\\=_~Y۷o)ST.]?Iv[ֺsuwȑ#d2t:}q _2224n8͜9SNS'O);dRrrƏWftWɓ믻O6Mcƌ]wݥӧOkΜ9?YKi!ބ*ɤ~I)))ꫯ.(ݮ3gjݺu߿.bիWOb s:ȑ#մiSr>װat: /ݎ;4|pmܸoםwd6^Gi͚5?~۬ZJ˗/;EFF*--M^{<^駟Yf׫W/:gyUz8 {ў={$I}qY,IE̍5J&MRFFe+%I|>3:tHfY-[T^ԡC=Zvmlڵ$gKd2iȐ!jݺ2222o߾o];wk /P[f,ÇWf4fO?޶,r"upή<wvE\["++KHEEGGXqիJ~m޽[WӦM5a޽[{ѭު޽{kС4i X,%$$nHEonv<ԩSUS$T HTԲF*&K3˓nWVVay/}i˖-9ro:uh޼yԺuk+DE1 &LnI7t}Q +њ0a {GSNUW]e@eի"""qFzꩧԩS'EEEq:Zz~GժU#u]7pvRSSu!KjcժUz衇rJرCk׮UΝ%IÆ ӈ#tM7iϞ=:u{WҶ))""B=Km޼Y֯_o;w"""3(""B)))7˭2E_զM2wu29|(ZjѢƍx5o\Æ l￯7jҤI?~ѥ@Йfo^_L&%''ĉkTNSNS&Iv]>{]LL.\~})͚5ˈ2CΜ9s4n85nXǏWBBa}X,j޼vѥ@ 6Loڶme˖iРA:qDqrTQ-Zlּyt:%u'rlҤ,KV}.Ɯ#Iн)y?էOTݺuU~;^ P|+* i4a„iiiС$w/i]q9hSnS_ufذaZp $I/,J9:uJW&MMZҞ={ӡ?~J IO /ǫQF~Aovpa2ܳ+g^ff֭{*233Stw~;k}ddffG+޾w?͛7Ox㍊ 4h@K.UVc޴lR_ ],X I|BeG}=c=ft9!dx#IK,QzMITnݪLùf J&33S{>5YVV^z%|Y͋/(ͦիWk?8RSS۹ˮIN:~[8pڴi>L?-[Svp8h"V5ݮ,%$$yKӪU+IPY?$uYw}wu @رce{{4fw}і-[tm~{ꫯG}͛7kŋkjݺF_]2e6l'Ojڵk$iڴiz'pBjʕ:puzu.z#hرڸqۦ}Zn}ֲ'NOՠ2TV֛<^^{nce9h=X{]]?)ԸP p~*=g}=SѣG5{b0afϞ-٬zK6l0lCuU *u,-Z\Vwyz>k׮_I'==ݯ.PcjW_՜9s\WvmmݺӒl3_N/kyDz=1Ν;թS'I"I-l|_deeeiܹg} i>›36mڤ={kUǎՠA9=zT۷o^ ^ZNS]vUڵ6==]6l@HIImݦ /իWk޼y\-pΨ88֭nV^Z7n4 hG  mܸP1 @#q8gl6K)ByyyFR3.!p?8gvedd]FHȐn7 pddd(''2+..NѲZ-lSvv6-oA?(ݮLeff] ]B@#q8!A կ_QV-K0~QXXht @#q8PM[z.çf͚iFv|AX2`$iΜ9ڷo_nݺ<?Pv_|#Glke>}|2K|rڵK7o֬Y:l֦Mbt~3Jllۧݻ]veڷo_A˺_?ߖuFu}Ν~zWemٲEP ƥQttVnlSnnѥeZxӊ+g5o\SLf%'ԫW/oԒ%K׿5(mVK.ի5sL; _|;BuE6m JmᢲgUJJ$iر̙3%I{#Ghݿ_:u6ltjƌzgF:QbQZnTժxEGG+33Svݯ"""4eK111ڷo|I޽۽MBBRSSխ[7i:qߵ:uJ{ $鮻r?߲e.B5JM4իW/]VM4)׹5jvܩ'|ҽlƍgϞڸql6zY[o7-ܢ#GW^^8q 8POJ uv?TTTgױcGڷo$iժUzW0@ U 7j-}ŗ[nJNNV޽oͥ_~5`%$$՚;CiiiOt}d2edd_iF6lPvv~'}>'ɤ+B?*tkF[={ Jmt=څxG5\-*w}ݻ+66V111ٳK 1117jULL_ݩ5j[9rm ]V]}/B222ԵkWM8Q1\ZhkVCu/ۼy $jR\\;Vc4jH-Zз~+өFy~w)|-[x]hCmݦ~pm.yjѢ$۷O7x_>zWm6Iҿ/=ӕR'H+R~fmڴIׯ7|SlӪ]vZIEC=^{﹟wJJJҀpj׮_][h tmm۶ѣ~imݺ5WkV۷ow/o߮={222u8ڵE]~AǏp]*Ur b;tP%&&T<Ӛ8qbTPp<ٳsNC={TݵtR=ł5m4⋒2Ϸw^_7͛ꫯ[g۵xb}g4h4|ѣ@呙s9>FϞ=u%(--MRјh+jРA2eufҢEZm 8Pz衳qil6[ %U9?|Sڿߘ9R@p֬Yz5k֬b]ӧO{ァ,ѣXK uZnkj-@C캒W_}U?7oﺼq:ڸqn-]4cccu饗jԨQ#Ijժ^yW8` UVVbcc6lxֶ?{M{WPׯwb:ptUWiݺu>_tYCZZzTǫo߾nW_iڵ5kn6f2۴iFSNIFoFJuv)ݻWcƌt:5n8ݻB"yyy>|7ol}'^ޔfSs)66VӵrJX,YVZ^~1]y啒~GԪU+EFFÕw\rb˦L˗kݺ4a-[L:5\[ Bvl٢={,[L]t_Y֭S޽K~ƌZnyz2׿ ~ ']Vofe6MqF۷ψ ͜9*Uu>,--w/? KeA9/82r_]VuW+**J6l󕛛+Iҥ>5kL'OW_}uVkzp/cǎ;wjA=~DD-ϗ{#G^zzeZ5a;wSOiU~}EEEvP9p o$SNXnf|Ŗ?^;w,sX[FRFF$魷ғO>s~Zڼy~w~GbVZԀkܸfL^fX+I:xvء jZnm@!  .@k.` b\^5GVzzY{1]xիz)m߾]SNJTsNJs!+ ?;:~rrrԵkW[vء;vwт T~}oUX)*Cv]|JU'@sQ%M)nTOֹ+$ͦ2d;۷^z[~G%$$[nںuԩS')33ӰpWG|OF Wx#I:tp? ƁXjy5o\SNUPP#F())IQ+5tPÚ>} ^7Lzrףkm^,ggkw}' 4QA+1"P}8qtEDDT iPb:Pڵkk֭$ddxtyrz|^<|x۲@8ڱc.BI hP j9ԮK@x" Є .*oԫusʽTeܻPimRߓP6@a,P~ʵT|OCa$T|U! :p#B 5@x"`drKT-i<]&//m glt$777蟄@Yl6rss.@#)!33@l4 a.T%v+&&Fь l6hyo tq8! 8,T;~IIU\ h0Ti 0UzZ C'@!"حoyD&M7|#Ij׮/^]ꪫt*))Iiii1c8еU|:eP۷K_@<#ҥyJNNVӦMndzBոqc=s:z^7x]c)''G#GԢEt7+///kPڪ&e¡ 5DTT.M>]?~ :ի{n:uJ/VK Yrۧ#Ghԩr:U p*Z Thܸ,KA_~Qnnbcc˵AAmۦ-Z.5 3ZVUfYfsNkAQ @pjÇtK. h?5FZ>[x<&I\p~駀 |2uRR[%PUcg%K(;;[k׮դI4i$/0`@;vLwq6l <;t뭷/~6޽{u1 f5jHIonf͚oV)))(Igwrc9s_͙3GǏʕ+5|?{WÉ "T֣^E3;Po5 lUPwEsM*ES2 3!ږei*ZM$y߂gǜfόӻk9y5GܹS111JIIQ5rH֪nGulMemdymxete8"##^s?;u-[?WU\\|]}h2.\{캌0ڵ+P9I%ڬˮ.Ym˶levvo[:*;Zh$)$$D[9999Zn<o08;*))Qllbcco|}}tjJJHH!1=ۈFٳgZz]ٍ~} 7ȿ/=s.m0h| p]^+1"4- pC1 a 8L#ZՈp{b!pb nBhP7S7C-Fn+7̍x%zڞS0m73-7;&14FԪO*0ꂕ™99z#p1KHsW&7&͂8Fu#>Mx[#h!͆`x f8B}繱 pl6k̘1 QV*;pƎ|;Uc bn78v4zhUOqqqhY?5`eeexɤK.5ܞ~8v"I ޽{힞Sǎq *--M-RIII7bo^SNmuǎZn-IZlY Wyy~F  tܹvI0`@ƌU[l3͊T=SN%2*hĈ>}(99Yͫ8pn2{;ՉTn4~xO +))щ'4a]tI=fΜرcZl\]]ys@0ٻ4ggg=zWu!egg7ިp̪UteeeiҥΖp}s񑣣*iѢ~ߨSN;ԲeK5mڴ~s>EY>n2UODyyyiŚ0a:Tm9\?FܢN8rhǎwܡzV^^~qNNNu>4,Fܢ.\uiڴiz衇驑#GZ9sF͚5O?-Z+qim۶jڴi ǎrss%iڲSsΝ;+VHed$;vLoFK۷op~ZZݫ5k(::V`~+`nY*ٶ=dse۲8^Y;]mY{o-,,4 >@NWh d6]`ڵkWs.K*Y]]f,ml˦r߶jOa;Zh$)$$D[9999Zn4` 8vTRRXڻ``́`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`pN.vf65fUV8p@cǎU~~F;=z® o$OqqqCeHcG!!!0ݻ驸8uQ7npNnnҴh"z}Q֭%I˖-9*//oH#!1Ν;N:)>>^ 1IJJRZZ많;~IdRXXBCC={(::Zu?a1MfϞ=3z&ԛoAi߾}z.I5jI&iȐ!*..ŋe6~Pw8?X{UNNϟO6l^u>|XYYY>}5k=zػl`6RVV{Cj׮i_TT}cj8˗/ҥKrqqdcT -2ߍ='N&I:rȍ.T=zE6nܨ .O?մiﯖ-[jҤI׶m]6AcG~4xmYɩ۷on:FIҜ9s*&&FVR5fN@crw4+>>[VmٲE'Nt_qqΝs!EIBBBԺuZu)..1KBcG%%%UllK8[СC]h08#08#08#08#08#08#08#08#08#08#08'{p;33fBBBԪU 8c*??N`=Zaaaׄ7秸8yzzڡ2`$IRXXkmT\\:v쨍7V8'77WiiiZhJJJnh>pu֒e˖pn@Νk}lN/Pll$)))I}BCC﯉'j풤Cꩧۧheggu!ٳGFTy抉gK...3׿G1b+5mڴI}ݍ+V^ Kdddέ6TÇ7FswfΜVZY"Iz't)IԷo_y3y] W\\~e;}io*o^:|_nF%ܹsX=1tP]V6mRllNIdÕo>WF$}JLLԃ>C*99Y[lћo-ZTya6?Yھ}RRR[ ӈ#c)==]/rmk[^߫5kLzK/RӧOkݧÇkںuV\YGM"""j*9::J\]]aV ks$m۶MF]ZmkziiiС*kʕ短mu{#1SN'0>iӦg7HF>}hҤI2dxbfݺuSTTBCCuI%%%[:t|||4vjkK%%%:q&LwJMM̙3+IZl,YڵfϞ]ijזΝCiŒɓ'C:t,7"00PfRHHۧsVlVӦM+,fҥrrr%IGÇZ3}WUcO&Lƍ65="kc^ziʕW 0;*{cԩSU7ZdI};::^kLhÆ *** _]VVVOf͚G>֯_*//OrppPbbN<Ǐ+55U:uj*9rDYYYZt_5j6:88hʔ)j֬׿J4h )??_O… իWFϴ4eff*??_jժڷo_=>3ںukO>~ ,^{55JAAA QTTT}KfY7oVaa9Wz=y\RկtK T^s[8vT^^hkN:p@im+**Ҿ}twWѣG%I...l_ImhѢ~ߨSN;ԲeK5mڴרJm8p㏫XԡCL&͟?̝vC3;;[EEE>襤$͛7wֆ `͘1CU[qJOOWrr6oެkjǎWǪj* >\gրOWGc@c #FHRp,m{RP%2˗+sqqdʬ \]]/B/֩Sdcj$ķÆ S^^uRzv=EVVL&.]TqoKeeeP׮]ܹS/5ﱪ瑔u֩T_~eAUc@c[?w WL&uȑYf~~~;[oѣpBtmXY[]_=W~G]pAqg*,,L111:u5䳰} u1cԳgOyyy]sLC=O?UP17"13gH8Wvvu۲rlMΝ;/RSN,WWW]pA~M&lR&MR~~mV7o}3gԬY3=jѢo P۶mTV~-nݪ8EEE鮻RiiGyD&Iޕc y5YW6_(%$$hڿ&L`=gxᡁKM4Q.]TTTg^slc=_+__WJHHPm=zҥKam{'{U""13f(''B[׮]^-''GӧOu3gԑ#GtRmذA??<̙oV111Zj7o1c{dRv*aQ[ǎ[oѣG+%%Ez+{j͚5ZdvڥI&Zd.])Sh˖-z+k=WYW6… %I?6m˗Kc[n*sݻVXM6iРA8qun5sk׮*]wy5sk׮F-[ԝwIQ9ة;ش[֦Jm1ٜgٶ,WNW~[[+* n}>cڻTxv]vJ:'鲤Ruٕe6KbٖͶlڮ.ms40gggs=ʲw)4r?מ={] GGG=Ijnf̺[˗?eР`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`pN.ѢE }h~Ak׮՚5k$I&Iaaaٳegg+==] .ԅ DGG_~RJNN2kQXXX?JHH3z't̙ FDDԩS+WTǎռys:uJ~{ 5p+ 1޽{kܹ2LꫯHsϩGz74iҤ:83gT׮]*&&FfY~~~:$l6SӦMرc{5j(\RÇWNNիW+66VM6կkM>> l٢+<<\9svޭgo~=z+J9t{[?$)++K۶mӲe4vXM>z|qq~'OJMMU /hɒ%Q||ƍZ֭k fV^\ݻw۫=*..ԩS5e'P||k5kLUߣFҢE}hذaEqq}]=j޼y޽[wq\]]%I2~'7NΝ;Wm/,gg*{VoY=$IIII/oV}U߾}Cݻw#I5ۤIo^׿땤ԩS tզMeff֪?n8v#Iԣ>*GGG:sΜ9/׏,u]5{]w/WmV_/ܹsjݺ5hرJLL>ӿoM6M ,PIIIZ̚5K=ڷo;6mX번PFFu1cF͂\I ;ۻrwwWVVmСΝ;o(99:2ʕ+UPPPf?~\~^~k>^AAA RZZZ͂,ሟl٢˗/kڴijժڴiٳgkΜ9~"$5{Y)00cΝ;J?C*++pիW+((Hݻw׀ZIIJKKk2j۶/^Tvv3ǘξIs=,  6o߾ںusjCpV\0Uh7L5jVXK.Y-IcN"\\\Yfiĉj֬Y}| "__F>FCcg+VЅ ԣGO>ѠA4{lEGG+44T~F ?^+VU~233GgUǎաC:rBBΟ?˗+88X[V@@.\(-Y1oJ;vSOUhOIIjԶm[W~q hƌz7_WJJJCiԩ RYYf̘Q'-JKKz?I/_dIsiԨQ3f.;vL۶mŋUh+++K/A_~Pii;_T-NVݲ6Um{<˶eqv۲ZXXXi|zRTT5 Y?^3fЦMnla쪠@fe]vJ:'鲤Ruٕe6KbٖͶlڮ.m/5c_} +((H:tPyy~}7ZbEG[ ={V-ҢE] 0&108#08#08#08#08#08#08#08#08#08#08#08#JHIIIz'}5k^!z_@[֦Mwٻ ;ch8vֹsF;))I6mRϞ=뫣Gj РAԦMܹSQQQ*(($fOc=&}W?.^(I Gs=_|XIdRXXBCC={(::Zz6nܨ^z{Չ']+cAAAzk֬Y:~$?״iӴcI҃>xuzիW+%%Ҿ5f_ڲeK}Z .T^$fm޼Y:r/ _]VVVOf͚GzҔ|ǫUVj߾}''':y^yo߾zW_աC7x1 M8z$ťB$C2L?%INNNrss$}JOOWrr6oެkZ__j׮iHw]i=***^&Ȩ񑣣#n 8vf;NM4|9tyIҰaÔw2EDDk׮ ULLvܩ^zI...2LrttTYYbU^VqqJJJ,$T^ΪG?J5V?… '|RqJOOWbbV^-///8qBܹuTd֮][l=Cڼy_F}U>X  Q1JKKH=#2L$C4i.]HgϞՅ 駟jڴiW˖-5i$k۶myVmСz驗^zI/%I{ՓO>m[O=T]vrppЅ n:M6M=<==5rȺ?4nFࠂ%KҥK2e8p@ݻ"##Ǐkĉ*..$͙3GǏWLL}v3VIL&kN999wܩi9rJKK%I ,+d*%%UWKJJҴitj„ 3g&NX(55U'N@"oel-kS%۶ǘlγl[+k+-k୅uf{v(霤˒JmeW~,6e[6۲iz淭F*mZ*#08#08#08#08#08#08#08#08#08#08#08#08#08'{pȨs7[L&.]dm[f֯_xCӐn-maĈzW*mڴI}aiF;ػjU$mڴI={=ٳg+ @ R6msNEEE@d6?I=\\\W_ix$)00Pu=(77W_|bcc%I&Iaaa ٣hegg[ٸqz{W'NPttt٪Miiiׯ:vߊ#FHd͞=[IIIZzRRRꞍW޽5x`]|YZv}]yzzVZ?AcgܹsAF@@vm=u릨(9sF'NTRR)'''͛7OcǎUTT$ijݺ*٬(7NgV>\\\5j}QM4IEEE?~/^'|R%%%~ 9f͚ӧOkњ;w~ZW6}8Pg֏??zV˖-ڷoS^5iӦ>6կ_? >^ZRk޽UPP~9]o=())kQF)((H!!!P F$GJR!G$C2L?%INNNrss$}JOOWrr6oެkjǎvI־o>}ݕ֓"Rʴw^uСھ߿gS[wֆ `͘1Cu:p"3סjz5?-~yIҰaÔw2EDDk׮ ULLvܩ^zI...2LrttTYYbU^U}_|֟ݾ{6u*;Ȩtqvvr_cuW{\zzf̘0S^^^:q+L&I:ruU۾+ou$2zQʞMUWaaaԩSp`UZZEFFGd$I8pԤIuEEEE:{.\O?TӦMZlI&)??_۶mjwDDz-Z(""Bnnnڸq$ P۶mմiz_*=I7o¬_]dRTT|r߿_&Lx ,YK.iʔ)V^^twފ?'X4g?^111rrr5f̘Z&U}v?^[޽{5bף裏j͚5JOO׸quTlL&ڵkWדMj咤h%''vQ}lMemdymxeteKJJիbRUPP l2Ю]%tYRͺ2flf[6mWoU WaW|I.\%K0ݱc [̘[СC]8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8hmٲEZf_DD+qK|M-X~&L/Bnnn۷o]vCZOׯM<<<Yikp8ٻbٲe*++%I׹s:訉'jԩ5zjVh|$i֭;vL&ʬW޽6nhmuiɒ%TddΞ=+///unW127xW?ݻxlqq~ KQQ$i۶mrww}g=WM6UZZ+k۶m]wݥ3gѣSff*Aj1Jaabbb/駟Vqqq?.]@}ꫯUatN׮]rJ9::Em۶UVVVM6gϞѣG5{lhРAjӦvܩ(Heј1cԿj˖-O8ԩS 8٬MVXnݪ.]XG[lю;ԤIK^5iDӿ/>|XK.UxxڴiSu릨(ɓJJJ"##5tPhر###kȐ!֑C p dٲeZtuI&fs=Wy3<[VXcݿm6uErqqQNm6k۶mר~aرC/_VqqGiȐ!Z~uW[uA)11QJLLɓ'uqSN~gիC);;[oFFDc 5$?~\~^~*IJJRΝ+,}uΝ;{G]tw}gxӦM[Zϻp႖-[kʔ)k q,=*Irqq*I񑣣Z> n.́c 5E||VZ~"eddK.0͛׿Uwyv7|KKKqFmڴI۷:Tpvvd Y*s)..֬Y4qD5k֬^}X^ ͛gϞվ}4rH;w /_zO|'N\ FCc9;vhzꩧW$ٺu}Qȑ#} նm۬m_ɓ'{j׮ڷo_|Q~~~%ISXXX… ZnMzH9rdhx s(((gyF]Z7(8@ p NPp8'(8@ p NPp8'(8@ p NPp.ѻwr)>|x$y72iҤ~Y`A+JAS~x.t޽Y{=#_Wr饗s^s5?$ihh{wɓ'nh Vﳺg}6guVaÆõ> /kάYrM7_no9аuc~׾)SͩSNysfΜ9[:!8sצ<oРA>|x~߯u~}#kضn/<2eJ-[e˖g7͌3&˳6lWX%KdѢE:uj :H>?-[u5'~e-{}5@{%)I#ES|M۷rK{TWWSN-_h.ҏ]lk 6ƍ׬~5b|NYYYvywyMJ׮]=***/|!>hϡ ^wŊy嗛eNe˖eܸqF7#FwܱlLk:thwqy3nܸ9rꩧfwιˁo~Wb!)w9I2cƌf_W3zfm.}SO=5SNL0!sW7/9'On9rd]c=ON3tЍ_kwܑ}7[NSSSslue̙s뭷,zk~?~|>$ӂ'|r̚5+NzYĸu'$:ujdȐ!/)//ϯ~ׯgܸq99444dƌڵk.]W^y%#GO<~L4Yŋsw_j{9餓Z<džjܐٳg'I:wܬ[nIUTT䥗^kbN5ޞz=`OI7|s_WW+VdSO=u[oȑGnݺk2hР1bӘ:uAW^Yk߸q2|;kksԩSS^? o%x+QFmocu~{cL0!}QAѣG<}2dHcI^SO=5sSO=־/|Υ[oa8%v6rH<̦Ơ׾ ></߾IZbEn5iP;u$9óhѢ<3o^hMy^{|%W]uUSn]x־?a8~$Mjkk3a„|;^{m6gu&6'N-X ^zisy__[n֭[1c\zYh&_N|MmZ ?q?Mo~εs|1iQy~|MyyyN<̜9z-Z)SlX^^v)}b~gɘ1cBzc6w]Vko|._}W;qQ?n|uOnnG2bĈ\q^ŋK/m71,X UUU. W^2eʁI%Kj?_Ѱڣq;mg5V{uO3.T#c)Ç_~ihhțo?… ӟ4?OK] P (8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp.0`@KѣGLR2:@k.dW^.$L(8@ p NPp1h***R]].]r|Z*˗/ϒ%KRWWELІu=lNeeeS]] v_PQ[+Y6lݻo@G&h***J4fmRQQQ@G#hK]B!jBuҥ%(,b mM(C=4W]uUvau7o^.<[vc+[ odwW\+j)IAKl6Sm9c~_H͛g}6w_^@ө>XU'h窪=K?{7?OrU @{`:Ֆ!hǪr5dϊ+2~wk$0`@F;.| /Pfa:.T׿yrg3cƌ3={̌3r 7￟?sNpwGN?+V /̫$۷oƎn-}M̞=i߿̛7oөvmMϟ fԨQMS/bٖ pکc9&?~|SxӨag΄ R^^>zk @;p%$Zgʔ)9ri駟bmg?$o۬k{lĉ G[ ݝ'h~򓟤_~s7f„ o^{-I2p92sL2eʔx%X[jU.œs9?>Zr]wo̪UJP)>vnʕ3fLƏ>:g;&Ӣr ogⴒ铽;8'>5Û~8}8fpL>}!N}}}̟?mPt]vYrfѢE.vnyJ]Fb@P^^~/;R!~歷N;~Mm(++K444a vvy[ꫳdɒO____ t˖-ٳ(555ۚ?JT18Ԃ һwꪫk)}ݛCNM4)w\.V떏P,vN}}}>lu̇~I&{!hr]w宻*u)6'(8@ p NPp8'(8@ p-;^2ڼR__Kh(8@ p NPpج~_׿u֧Os=KXY%6Ν;gέv뭷fJΝKXY%6ѣGg̙mݚvmVv pjۿ̜9W_ͨQKlv駟ӧgW"*K]>}9K]F >_~y4hf}2 >6#i,@1v̙3'wqGNZrV0 ys碋.'?Rl$@O:W]uU8ѣ 3rG?ʱR@u-'|r.R@@%-p*nҥ0aBxR@Awߝŋ`=8 /q7,u)Ft swܑS8ĨQJ]܅ 8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(RQUU?<.$IzL<9?pV\Y p:޽{韚Fkvur!`Uj o}y睙1cFӟtN:|\.H( ksvXve̛7/]vY~Ԥ&O>d.첼{ׯ_FQrusx`ŋ_SS;IrAm#h׽>}z}[&u'I$o}v$7k 8ܬY${W>H@uƾ@pڹ'x"Ir): 9sff͚TWWONL<-s'Oӳv媫 <8W]uUn7;wnL'%-tÇϙgN:5k0`@ #<2?OsϕB`}8K9sҥKW IЎuQʤI2cƌ|ϐ!C4 կ~^z)zʈ#JX1.vlK<9[]Аx1@qpک'uuuyw{$aFy@+XkhhHYYYVZۿmj֭[Ǝ۴+(EF0ˇ~o} 0 I2o޼Q vC#lϢE_ԩSJmcV\ȑ#[ti&O.,#G{EG)Q@K*y6aj{^uK՞Wtׯ>o4/_M^lYϟ~g>v)-ʂ 6'|r\;wf|5{… K]Ft钹s,GIԯcu. s&MJ}}}կfذa6lZ}/^yJP!!' /w};>N?dĉYtiZ  .\;#wqGKZ"'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8WYغ֭[jkk.Ft0?O$ݻw/q%t Æ \д=tVl,@1lذ{;hfϞ38#Cs=תT/bY[(_=|A~ٳg~ߵ]|ٳ{/G'|t*((R㴩I&5 oV[oeҤIoX٣qD3<58f›ս+0aB5 (#pZIiӦs=;攩2dHd1cF񔗗gС8p`*++'ʕ+gvK߾}3qD!{d7yp =zHӸ?P<VZtiz^z={6o=3{g &dܹSNc=r=dٲeIg}6GqDg̙3[}~/^޽{O>yw[6IJz{>yG[&IxVy'?NMzꕲF𔗗Y?i̙9}.{o:蠦@1 pZ駟{Çgy뭷.dMK壏>Jf#p㡇;.?|^y啵 4(sLdĉ[D`# U+ySUU38#zhvTTTdm͈#rg2K.͇~U+/?%KdʕׯV(YfeĉԩS.|K_;9sESNYxq͛W ~ߤ,Ca;l>޽{555ٳg~-Z6b l־5_(_yG~n^cTCCCf͚ٳg*]vMUUU,YYfe„ yǚnͽn_̊+{ށfʕ-{$S3dȐ|ٳp7p@W^y%sMCCCo 6,LMMM9<'P--x|TTlWuCCCMӧs޽{:uEeڴisf}N;!CH:޽{g….E]tܹs$ Ix^nƆ-uލ pױz4>*\׍Ͻ>]o[{93;>-./:4*nk-<%3]tQve̝;7 lP< kV2ZԫWL2$%Ys_ׯX=ijYmu@i5[8[Pmmm~vmQF$uW_9s//r痺$`5-6rK~m ZMMM9u`,b榛n*uTSSK/ek08'(8jVZUw!,_%`C8Yl UVeٲe.(8jjj8VjժԔ ,uESWW k׮ҥK*+}Djժ,_`I'Zl2\aRA m% ,Ϡg$BXS}}}KhQå-C8 Ш-~_UTT6AϝqiL::vUVeҤI7|P U___ȟALh(._H}G׏ 6lXK`-^8+V(uTVVVڶt=uuu.ׯ_xR.liԳgR@;ӯ_֮O>}R5ףG .c+/u8'(-qCvqoC9$wА*sq%IƏ*gyfF޽{o1 ,ĉs-dժU[’"nwAw\p)//5\V뮻 /L ={,]ڵk $yײlٲ-~ݻg̘1;wn.6y[f83rI'޽{_r["R͌)++Kyyy.k׮kӵk$ɵ^QFm@-7{ܹs䣏>ʄ r׷xʜ1bD.][o5{o=z~I)S{1;cofmgl߀o;{g̙y'6kE5r$ɹ瞛^zic=r 7dȑ p6Amm !]y啹,W^ye}^xaش=p89#J]F|9›$ܹsNsҥKuY9묳gԨQ-O]]]N<׿^k{O$I1c䡇ʝw4(Iz|_}ݗ߬k׮9c7cM.]yWhѢ'x"F]ML3h1d߽{|^znfXS[_ĸz$~Yߐ]fΜ992xGz行=:չrioŋ3q\}ܹs.uYg9Sfvʻロ_:˗/OYYY:+55530`@Ӵ5גit7K.0`@f̘޷o߼֭[dɒ^KEEZݺuYgko'/Bvm ><&MʠAr'g,5zN;-IZ}'|2V˒%K2o޼M93q,X =4<4hP***2gΜ44{ק>.$O?t.]lZO~̝;ń7UK5mʔ7kx Ij}Ɉ#˛NH~Z]Ӈ~.(ַsɭ}ڒ߳6+uw&eee kutz뭭.\lȢEm}9А>}dҥI3f?A=\y啹뮻rM7eʕk]cwLΝ_f}7_=}Q:wo~˗/k֬wM߾}mYdIВ5?4ۮ̹瞛 .`cF3&MʤI?g޼yf7V^YYYVZ\kjM8c͐gukXu]]]]MEE6"6fۋ-ٳs뭷kչ6־ѣGOŋ3|yMw}߿~>/$ivw}7uuu9q-[,&Lȉ'~_˗7k{3hРӧiݙaÆeԩ=l$y嗓iFvXgz/})C ɐ!Cr衇f[,ItGt9UUUkj;>hSSSګٳRQQ[5]Mʺ̚5+7pZny\|޽{ve=:cǎ]ZZkgMeee׿Q}LUUUzѣGg]v|r\ti|2ǎ^{-677wߍ9.]ϟz*677矏8}t<Nc{xWŋqw܉ .F;gϞ_~%._zGU{ԩSqԩGڏ9HۛoW\3gs=W\y/~?>?o"m~:""~ǡﻼnݺPҦ31(^(N#Mo`1"rr "x>L( }yg8qD|76qGM'Ow^|3bo Pĉ#/^/P;w.z뭁;x`|_~[7W䤣tʪqTU4 p: y4NUa5B{֭>W9Aܹo.ܼyA" @~ۋ_|1;7n{Ν~KKK_}?"n437éirxYbBo෪ 3<#Gq{{{*@WڨX]]?׮]kD܎f7oģN~ʕꛢTgB_'1N}S5q~Χ~>|x߲---jܸqkwbQyÆ20gTˆNe4n/"n'Çceeer7W^=+oϖ">=]9qѱ>ЪAս(z?\]^^|uuGZUU[[[~iҏ1|[+kkk믿w8p@,//ǡCbkkׯEN< mBhTݨIT6<8 I[T<8~ňX'OѣZYY,N1fo te}}=vvv&ݻ}7o޼_/OXk< kg7:oݐt>- ګtu4GӉkMɌ~Z^0/`% g|M\l-*~g{Na~H}ų{'?ڍhGYa!SEC*l Ӈ̠N7~&KRd!>) }fLLMPSNQ5MI+oL/xU$MB+& s*j婢iGӴfG<dMK8Z+JU??8:<WjT+RUcU+Xn.@!OU+I!NꝲUTrLPE WS6*aUMVs/ʇ;*p{U8& iҡW鵇 Vz7|*_8iapO+q6EnsIC4I)W5'NW7ڸ*p'_y)8WdJUeW뽊Ɋ&/. o0(^a*ߖ_.<='8 Ze}*u``jaRuaNq m J.^U^7aPSM>\60e{?|*"bi7t5t,PI20 WmZIENDB`extension-manager-0.5.0/po/screenshots/_14.png000066400000000000000000001401701457631363100212230ustar00rootroot00000000000000PNG  IHDRpA%bKGD-IDATxwx;"AxDp#aTeDT)K=2nQ<(K@8 珒MҦMҾ_ו+o~+ɝP]@%5@rʄ7\'aq=;U~I tZQ^/Y tBQ^#U]s*sQ_R9-l^ s*K#kbh52 * TTd!N8Y"띏s4DE8e))ޗTޠkb9(ac 7n7|IV|w^f8} ep~&w|*8)P pv*ƬERdͯd2%FZPvfm|FR gxcBpXT4).qBFEnRL^\w(ײ,y杪U66""^~~Vl6yP) L&fY,8u?גnV6WӑO?ӲTHpjV4u41mqL*\pO%$$Unn/ Zdd"##-[Ʃ qot\4Q ˤyXI88i87EqخYYYadZ<99 Bs˔t>/nRQNyt*n6eT7\p3]333e3;(oCTȑ#_ )Ō3pTHJNqWu*uqDfͺԨQcdVV !f)>>yTTOǏ߯]:mpOϽ ht6 hS(O?S%EV^}lnnl6 EGG+**Jfs(`Z`HEDDh4`1 r8cGaf)77WիW+i f೾!?'!5x}]YJj8NY5k%!!OVV1L^3FEDD(22Rf4Gx8`hbbj=fTx gBNE|b -n qDe !٬`XL9= L& (|3PqӤGN֗F<3OGjga!:::'٬`]dd$ g&I.j*""h y,,rE9L9O-n2L }#EEER ځ@v 0fd2%Lvj uBEqǗ%5l}cd4F*,[8s@Ubl6~vYV+ 9  4 h S޿Im[REtܢ 1`1K/4%ߎN:~2LWRRbcc]k89'URR5 {#$5$T1xVR뜢? OT2R||DEE)##C999e9}q.5$[츷)T)R;q~IC,,qn<7m4,٬ &l6WnnnKd4զM]|Ū]hڵڻwo`ڵS^tz:y6oެe˖i˖-./DEE)66ljn/mKz${};{tΠ v㫰]6o,?~U`XԿ]s5JLLi'O>… T@3͚8qkI&=ĩU$رcA<7o7n|nݺ'P@3LzGtwZ^V-]wul2M:V1o%>>^!e pJzZQuObbnvvkTO,|Bho^&MҸq㔗͛&MH*]ɓڱc,X}t-YDC=zPnn>Cegg[oONOjѢEZx_5@ƪp/Yf_ZWSŢ'xB'N W MNN,Xkѣ:묳t 7hݻ &O\9 S(a 6 u- 8ExSjIҢE=Z]vO5}t]s58@8o^O=TBIZ|,ڷoN:EիrrropܨXqqq:uCYLL}Y=zT'O^uz۱cv!wܹs-!`T7o/ӧ믿v9ڵk o۷l~7v 2s95k֌? I۷ڴi#Iںu>뮻R=[J:t^zڿfϞ922R>.2eeeizw#;;f9 c@3ás=W/;M:+z$-XPxnZp ;P#22|~'=:uꔤ?ڶm[cgee^7aEʛ`8.+d|vٚ3gN9W29~x2LlzjܹSC$ :Tvƍ?T^^z111zաC %q뮻R}'$FG\sjժ~M-ҦMJ\AcǎӶm4sLWm/1(-TkNǏ?c#<ըQC={t=OII^ r B6lI&iխ[7M2EѣG5zh]zZd4ix@zeX /Q$ 6LQQQ㏵lٲ{|6TJ^|ZtVXYf)---`2˅^(IZvmۭ]VC ?(+dY,۷OLGyD4yd{:p@퇲dkذa{e6Rvvu&LP=cmذA_|z)Fq8pv,=ZG رRRRÇkQqbbb{_,/lԩSb M4IfY7tԩN:iҥz75qDݻwyBjԨ!Ѩe˖7o\ 6T߾}z^_CP oL&YF)))qyRzuI͹[*+6 GÇըQ#M2E==\=zTcƌ)ӱ]|׽\yDޚ͞=[v?HBQo{;wLEݺuu饗رc2dVu릑#GzܾN:2Lߴfx&''{:p|֝{KꩧTsΪ[,KvnFWv]O?4]#z?cy>}ɓ{7%I]vYA+vիWΓnWݺuմiS mڴIRAwM6nSLLLy6T0K/#G>xGҥ n״i~EI:P okذaܹc^!--M:묳tb;묳\WPQq/5JSNUF$4#x ɼ; nU'PaLXur7{lM>r EݺuӕW^nIWVrraÆ~AVUJlMsN袋[ .t Mƍe4 hkР1>>^u\:K/j׮Zvg+!!5oD}Zn]"IK.TIdddh…W{eҲetuio=dܦMp護ުCic^$=sjРk̛ziʔ)JMMՉ'J<6JF.\?H…q95lPi:K.DsQ~~~3  _^ׯu}sՖ-[JK.qe.ݮ-[ԩSg|ޗcxc_TFK/)>>^111O` 8{ef 4HO<_u8yW]u,6oެ?SԾ}{m۶MR+n ժUK/bرc1bwT9@gEXta(76\1.-[hٲeݻΝ B>[7xRRR4߿?%j-qlzޤJyիWOO?t:[x8!ʪFn6K]wݥ<%&&C˗K*f}Ϟ=j֬^}U?~\]tQKKKSڵ5p@-]T۷oW֭5ggI&zg~zeddܵkZݫm۶M6={6mڤFiѢEڱcG{=|͚9s>SժUK8q^_c MZZF^xA7T05?.O;vtM/HZhZvWUVڱcOMHHаa?(11Qwuvء^qFK999S6mɓ'UvYgiڴi:]ˎ9_!1xsLPUӈ^2uT KC 9#dp8:qℒ4o< 4g U%8M4/cǺZۤ駟vu=-(Y8oR}*ǏF[M?|IFTSN[oե^qqƕؽz$ڿ^}U}嗮'O֣> (++KӧO׿b7{l=޽;=1bڵk'Ѩ)S/9}vN#G襗^Җ-[|eԾ}{]nƌ:v옮Zy:tv- u/1&--M#Gɓp84n8Lׁh RRR4j(Y4h/\Ǐ'|YfO8QÇwܡSNiڴiK7n\Ȇ7`0_~_Tl6&Okתwj׮jԨ'OԲe˴~͙3GM4'1-3w'N(4vx;٤ E=<7Xf:}o>y_SN$''iӧT.Hf@UfY'N<#q7A\@y7u9ݻusE7k,5o\h o.R_WZEW:u"BJLLԜ9sԴiS}9sw&**5+`Yedd(''ǯ}ǽT8*f/JZBjՄ $O'NP~]FPh4=eQ~7a\Z r@pʒn/uKҴprrrQVVl6[9WW@r82 "ƿq8Bvv\Ib l6edd(++KX,22 ZWnn.MTaVUfsxZ.:.2an{JflRa}TV0kqlo/*,;;;,[XVegg h fSnnnNV!jUzzzBFff&!+ͦ`(ctIEGG+***dıZɡ PnWFF"##!Iv* M8\ޜ]B@#q8! UY233!RDX,. A.#(d\!///OfsU `0("""eET`0\7e TU61򜿯AN ppT[WdRllVU999̔f v9T?P~QՃ]F2͊S\\ҔVpSÛW`f2|xTzuL`N#9-666%紨`RӪlSz:pB@ ‚hy睧-[*))I?7ȑ#.rESNU-$I;wTjjj+ }|z衚5k_UV饗^R~~~9W! gx#I-[t=J鍊n*BŋUn]իWO]t,$)22RÆ ̙3?رB4h kռycǎ U\={Ե^u;!ŢC~_+:(_׿tO͚55h 9=nuV 2D6l(w޺[utHFegg}Zz̙S6+WҥK;\"""c]}ڿkg} _׮]oꜥQZUY ,ڵKv$}zd2${衇4vX̠ԿIw}/BhTƍյkWjJÆ /;w С$駟^vA PӦM7L=z$zڶmOmV˗/W=J peȐ!jРZg6oX0\dJJ.R <ص>33kpWZ عsG*,***UO5Էo_Io;wwު_RSSsNڵKrn 8PcǎUNNN+8&Il%7R:(''GӧO׉'*H(Gɒsx#ZjKMxvn&''G6MA'@xػw6mڤCV^]3g%\MBPAjjn&tMzG]NXRjj K&LW\ʂk׮X,ڰavޭ'xBmڴQddkáUViϞ=JHHrW:uu]'ͦٳg. *+W׊+uV{袋$I +mܸQO=bbb\M&Fu33m߾]|k޽袋d%%%)11QK,%\a {t{衇*pD=>}22RwuƍYO?].rz嗵rJ޽˫W֮]_i2 ?<~M+Vp)NI7Ԟ={t͞=[_ݑ#Gԯ_?WӼys>|Xw}:37a ZjiԨQJLLTbbRRR4|]ve{d07xCGRSe;9 l6w}uњ7o's̐3m49RuըQH_^L&6l(R  ŋyz7կ_?^ǡCUQY5jHFQ3gΔTН^z2LZY: |s$_צLJJRnCYf/J Unnn+*irrrzr;ԪU+IO?Z^պ⬳ҨQTzuIݦB͠A4o\m۶… }>Α#GԾ}{թSG>osIխ[WAVUsըQԱcGL&ծ]5`ffVZ'M6Qk\t1;TRRw-ZZl]vZׯvu`>}O2]?O˖-] T\X 2^jժUԿٳgsN]8qBoRRRԷo_5kL_|߯{L7=ܣ-ZnkA[l6222 s.N&M$›@y9vjժ.Hwygu @ѣ%{˖-뮻4|ps=ҦMԳgO:u}]uY~6nܨ… 5i$5mTwLͧ;ui߲95LѠ̄Zs =~5Sґ#G4uBocl6jԩ2Zx֯_Cׯ_ӈgddhv2յkWyf͚r7'OKdĈ2dH}W4mڴW@UVM?CGI$$YnܞmYM xUZmԦMI"J-lyו ͘1o!=Cxsڷ~]vꫯV֭,ݮ#Gh˖-/t7UVpCVZ۞}vzڵkÇj*͜9i'\:v[nEV҆ ]p 6l@p 8ӬVkK)\Bi999.!p=8eff tfٔ2BBZZl6[ʪ!NZZ]pcv&++KUTTVrrrIBPO'Jf)==]..T 8 j֬B_{iӦT @a Gŋu} 4haÆx`0C$M6M{-tر|L& >\6l͛5k,닎_|;ӵwީJqqqjРݫ+WJт |:TE믿-[q}|zy=uֳ>Q[lє)SKrWO>矫W^ڰa/^[wuiŊڶm6mڤg}V111>ժUӼycXB>/_^xAǏc=~A7oV޽}l6+!!{;*%%E7p,XpFԫW/}ӧ5dj۴c}駺{d0]||\ϛ5k+33Sv]_-Q~]uU6lz쩌 ⋒l=#JMMUݺuu9(55UG}iӦٳY6mt|nݺiĉ⋕_z|GjڴN=CKt{Qv|~oj׮c߿&M .$%&&jѢEuwiӦ9r1cnMsQ>} ۗ/I7ttW{_|ጤMtt4 e6Sw:uh߾}ڹs$СCgln:{~[ݺuui͚5JKKS4zheggN5W_mܸQwd5p@mڴIOjJNN֟M6魷ɓUViÆ ;$}Ǯ1t>#u _~>%4yd㏒3gjuꔪUVh+ZRA`sֽ?jժ>}TVMfٳ 7|gϞj޼t'|R?cs9ҥKXWN^zI,C gff|DٳǵlϞ=JHHPjt)JJ򔗗z׼ys=jݺv],K_$m߾m7 ٶmt+R:uҒ%Kc ^l6[}v8q^xI:?믿ާڜbbbkiƍzW lZp O3gt颿ۧ_~:zh>l%''`0s{Bݯ/?p8>_[gֺu4j(?~\ݺuc=Vhے%.y|P0SNwՈ#[oK.~Q_uȑmڴn@jRZXٳgz'K|Ծ}b1LztR-^XSN=c|׶dff*--Mwky睧t|~~UN͚5KǏ$5i$`>|Xj֬kٹ[h} ?@eFaw޺Un]lR۷/%,bccskQv4x`߯-Zt3f())I ,PfԢEBΝ;ZjX,ەQWql6͛1ckUեK͜9ӵ͠ATzuM6M3fPddZ8f__h3_MY>˗/СCծ];mV>VXeq :uJ:tT+`i͚59r5k+RW]uk} ?@eG!9992d6lL}駚?~@mZUfMФI|L&kpTRA/\tA=jҤ"""g 2D>c֬Y2L?~t!}' _:t.X/>.]/5nJzz}Y;VӦM7|㚉O>QF\ϝW\#GhJJJ… e0駟jڴi>,l6\Fŋ_~ɚ:uV\ݻwwQ۶m]z*[zZop[7zxm?st|ZN6xjl(;y,KWS7nN 4ꬳҨQ|,o-6mZsQZ5%ddu~lw9nr{.eE;̟~ B3EwsJHHPVԣG}. lЅOӦMS˖-%I;vÃ\]ӧOv`111;vԩcǎi/]@ 3VZ{ߵkW3fKM4Ie˖IfΜ_}6lo!<# 1,XPhjT7P3PY0 pcW˛~ɵ=8~zԺukIҶm2;ŢBrsspxlСQ|Af{Ռ3'xBsї_~5k*222A'gx#Imڴq= ƒԽ{wu޽вQFi۶m%nA=$I/?3ff͚2ڸqo>@Uر2iZTu8!fʕ={խ[WFQǏw-3L$߿_[nռyqF]V7oX@2O??|I]˃=5EͰat3v=j۶v'xB[lф *R T%8~1bDKرcRvbۺunݪwyGsU͚5_U`BPyiڴijٲ)Ń9+թStg`0jրtQmٲE5jPbb٣xuQ?222ԦM(===hG(P5HRV\5?V\~X 6Ԅ tRPZtIڳgtk5i$. T%`q=7-w=y_SN<Bz5k,uv={U~}=c=N%''K-Z>)))r81cF@9sf@.T!]v>ߜ]wyL& kjݺuzǵzjխ[WRM׽ޫ]jӦM=z8۷믿 6護Rv\>S]|Ů-Zз~[+B+W͙3G 4P'lٲEZVVJJׯqE)&&cugՑ#G4dM2E7x]jժG}TYYY:tϟݻ+''@U@ *"22Rwq&M={zKuUViΝ:q.\5kyb ݻW҄ p8tז*nݺ2L)Ç+;;[111?//O7oVFZ Na6e4e4Gp8 =7 ~ퟗLpp /k?ٿaqx ?|/~:u/I{ァcWRR TGՅ^ڵk+::ڧsnݺUrj׮>[zW-ZPRR?DELR*QuFXժقizM*ES2 3wmK4uEKɻVIA@1G^z>33gFw3~x9::jƍu?n8v+IԩSϱɩdRve7{lܹSZb\\\$] EZZݫիW+::V͟?_999JNNV\\Npcp;`d ͍Pzw(p;!&Q([12?AM&!&9pkPW9p1@0]>p00^eDM0`SWl6k QV*;pƌ|;U7#>Ex`_QF),,F'OO222SM4i}^^*FQHH$),,L{T\\:v 6T8'77WiiiZpJJJÇ}:uj^` Fpu֒KpwiF[8йsZԩO8::j߿\]]e1٬HC^^^:u>[N/.Iӧ5wjܼpn2{;ՉTn4n8O +))щ'4a]tI=f̘رcZt\]]ys 0Wc[{9k:t萲oVhrJ9rDYYYZd_m9\Fܢ|||6-Zo~uIwqZlMVo}ܼ` E9;;d2dUҢE4a:t>snx} a-ĉ*//W@@vqq???qz˯iTs 1ÛB##`-… ZvMzH1b3gԬY3=3jѢ￿BOV@@ڶmMp(77W/-Kۜj[̞=[;wTll/_.闑9t15jRRRԫW/m߾iiiڻwV^Z^NVvfemd۶<˶eqv۲ZXXXi>]~}l6ۻ WCv tNeI6+lrŲ-mz淭iFǎ.\(I Q֭kuNNN֮], p-QIIbcckR78G1-y`P}è!08 W`A`p8op ^]@`p8+Tܦxm #08#08#08#08sw3٬ѣG+$$DZp3fT0 FѨQvMx#I~~~*F; $i޽SǎaÆ *--M .TII nZt:r;T0ܹsvIz'j p~cǎh߿_d2PyzzjϞ=VvvuhX́sٳgީɀ[oiڷo}KF>}hҤI޽{y橠@7xCVVV^y5kL=zwmL{UԮ];999)33zHwm*pn3/_֥K"$GG Nj?۩:P[e =zT'NPyyy M&uȑ]&-.""B=zP-!777mذA.\g}iӦ_-[ԤIm۶ٻl`ǎrss%iڲɩU۷kܸqZv[ÇWII$io+Wy=zx'19ٻYZZ_s׮][v[lĉ+=V\\9shΜ9u>qph…nݺVhڵkQIIbcckR116d{#p p p p p p p p p p p fFjժ±h̘1ϷSu(cGFRXX5$)..Nv  #p($$D{Z{zz*..N;vԆ *4-\P%%%7^`8vԺukIҥKtNxx;4ReHp sεn۩S''1 Gs=՗_~XIRRR>c_'N%IC O?-OOO۷Oή BsٳgީJy?\\\*]aaaٳl%$??X! -C 4i.]HgϞsiƍ:u|}}`՘؎rssպukuutISm;www[rss5qDW{ތ34i$-YDfYÇuhpv귲6-kS%۶mL6Y-㕵ӕߖGppʾtEFF*<<^~zw"FSPP l2Ю]%tYRͺ2flf[6.m}u9^g JBBBԺuZk*..1KBcG%%%UllK$G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p88;;I&5KNN /P~O6Hk>VW ի`EGGkʕrpp< uҥ 7222m_(0W_}}6mw}w 3UV)((Ys+{1}>Uzlذa z-ќ]3fUVmoooH|I:uJ奨(.uLy{p맟~w6xyyy6l ۷o? 7 #p tܹ6cAOm 2Dk֬ѦM;Sd24l0opL啢#F())I~jȐ!JNN֖-[[oEU^}fVjjo߮=4|p=cJOO/\>˵-D՚5kdKǏڸq^y6}Z6l-[[jŊ}$""B+W$UׯWhhhϰ6]]JJJҶm۔Za4կﱦ瑖:( pXB?u_]&p ԩSz'+0jڴizgM#GO>4ib-ZHfz~nP}Z ,P^>Ҕ|ǫUVj߾}j֭>}H%x5rH)$$DQQQUUF///fm޼Y:r_jXb W/I:tRSSUXXxuo sQyyyۮ];srrRffu_QQۧᄏ=*IrqqԦ-Z7:u;C-[TӦMk}ԦO?%I:tdҼyInnn7>UTTTNJJܹs<{n_^ӕ[eܷmWzzyfYF;v=V<Ο?+Wjذa5kx =3XkphT(˾=\(~[d2Qeee \]]/R-ҩSdcjРA$ķCU^^uRzv=EVVL&.]Tm޷Ʋ2EDDk׮ ULLvܩ_sN}zIIIZvJKKqJ[+T(]sĉ*//L&ȑ#7 twѣGu…J#ܱ}u7;;[_ /X_u_ǝկ뫰0hԩ֐6}k SϞ=uM{g}+!!67"13gH8WvvurҶ&Νƍ5uTMruuՅ giڴiW˖-5i$k۶ms*,,9sF͚53<-ZֹL,N>mKeگ֭[(u]*--UBB"###d2ۻ`!&=&1vvvK -[Lׄ ^ =<<4`yyyI&ҥtk6c\\^z%?~7կ~uGZd<<G#ppqvv=ܣ,{@ -{ٳޥ ppKqtt< fƬ\|Y] 8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8d-ZРA:H?͛7k*((sp wޚ1c*h>}6nX~YFW$L&gϞ{t-X@.\~IJKK?(99Y|Gaaa*!!A>;h9sFsε裏'ԙ3g*[SNo߾0`:v͛ԩSoW[[s̑dW_}$8p@^=zЛoI&)ę1cv{O1112%IfY6m{Oǎӽޫ#GjŊ6lrrrZJjڴ~_kruuŋ[6lիWرcU訉'^\AѺ*))TTTTg͂<==5c L&͟?_ Qhhe7NኌԌ3{n={ƾ3йs窭P111z\e_|Q^[C$oշo_W?Խ{wkI &M}׿Uef͚uJ޽[ +ӪU+9sF/^$Ϛ?FzJOjW֭[SN)<<͛7W6mYUؙ$)33S>o̙3:sX_?̋s]w]w%j\նm[IR~~~/^sΩustt<1c(11±?\5m4͟?_%%%5k1sL=j߾5ڴic"""Be鵾7 ;+//o~sss%' wǝ,!C(##C;wԛod [+VPAAAuq}Gz嗯9vIIx)((Hiiiu7 ;#~~~ڲe._iӦUVjӦf͚ٳgKT?ٳgjۜ;wN衇TVVVzVRPPw'x 񫕔:+mZ?YnqEegg[_;*N\>Lpo$=o@}Z~[Z؞S>Hb ͭ~ɤ#Gjtu%0iI5sLM8Q͚5p?hhplpzp}8pf͚h>k>Rff>c=sر:t['BNHHl2u Ђ ŋ7Wiǎھ}~ SRR}v}G4h>mV}U@@@_fdnw>}|MEFFWxuzUV)%%Ҿ5zh_ڲeKw}wϩ:z`T́R%$$(22R d6]`ڵkWs.K*Y]]f,mlf6m4RnP9ٻ]FFF;w|+9;;d2ҥK}Wֺuoz=W_}¾M63L= pkan[KVp1_JJJҦMԳgOѣ5k4p@iF;wTTT $IfYӟcE_}͛/J?Qsrss_*66Vd2PyzzjϞ=Vvv 6W^{u EGGW~cǎh߿_aaa>|$O>JNN֬YUV)%%Aت|[ ˗5kޓgn8vfΝ;Wdhֶխ[7EEE̙38qH999iܹ3f$I'OV֭5dfEEEiر5k7o͛7Obȑ#裏jҤI***Ҹqh"=S*))K1sL>}ZFҜ9sz*{5k~G￯Zt\]]վ}{M:QUM6ت٬~iРA裏4j(>|XT.I888uSbb'OJMMUN$Innn8p┟ӧOkի$KfY7oVaa9KeݡC7ÇW^yE͚5S=)33SWVԾ}j}'ڻwrrr4o<_~zN[uϦ6JJJkȑ RHH5T87 GGѣTadѣG*IСL&͛rI$Iӕ͛7k͚5ڱc$]vrrrRff"۷Ow}wdggzԧﲲ2ݻW:t빆mݻ~z͟?_ӧOWnnnܺpu^jO?^4tP]sLڵBCC;wjrqqdʬ򚖠:˵_ݳ,>PYFFFsˏ? .(88v>}ԳgOyyyĉ*//2L&ȑ#UWmvwwpuԑhFM*{6U___)&&FSN~pk#UiiGyD&I$yxxhR&MԥKٳp>3M6Mjٲ&M|m۶mѣZhiÆ ӧO+ @m۶UӦM}Tl$iܹ ɤ(%$$hٲeڿ&LPe{ /^K.iʔ)V^^twފ?'X4{l7N111rrr5zZ&U}v7N[޽{5|pף裏jJOOرcuTlL&ڵkkPӦMl2IRtt];vU[W>mtVvfemd۶<˶eqv۲ZXXXہ%%%iժUJIIw)@*((lwaxxxh׮]I,f]vwRnXe-}WoU WaW~i,Xŋ0ݱc [̘[!C]8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8hmٲEZXDD+ȸf$IoϟM?&LЗ_~)77 ۷o]vCZO֭M<<<Yikp8ٻbҥ*++Ӱa$Iܹsuttĉ5uۮZJ]|YuV3F&Ieee+wwwu]6luiTddΞ=+///unW127xV?ݻضX?SHm6UӦM }=ڶmt]wiƌ:z򔙙 A#p 2Ƣ#mRXXzgT\\\~?K.:x$)00P~+EEEUӵkWXBrqqQ۶mUk%%%iӦMٳ|}}uQ͚5K8pڴi;w***J~i4zh_ڲeK#bm`ݺu:uëmg6մi ֭[եKh˖-ڱc4i"Iҽޫ&Mh߾}׿Çkɒ% W6mjUsnP22R7nl9@.]%KX+Tqj2sL=j߾}m}YmݺҧOm۶K.rpp:um۶X۶mFkǎ|?Xֺu￿z׭[*//OrppPbbN<Ǐ+55U:u˄=^{5:tHz70"iyp$裏/W&))I;w|;wuE}u"M6Upnj=… Zt)SK˖-1ı8z$ť>WWWIwipsaiyp,rJׯ^)##C]toyf6oެ;յkW[ל_ZZ 6hӦMJNNV߾}uСzߏL&5_VHqqfΜ'YfU``6olY۷O#Fйs窝ͭW;q `48јڱco߮~cMb\֭[裏EGp믿Vhhmf__99{<|gɴiL8I]͞٣٣q;ͶӬmf>B*8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp,u}OΨQ2p$믿ɓ';… K\!P 8s嗧gϞ-w}K/4?Fkg>$ICCC{L2% }{sYgh9rdn< [V}}}~̞=;7tS^z N:) k]wwwܑ/˙6mZkܜt钩Sc[oŮ")?<^{m6Ǐ /$'?qCu]lS<7pC***2dȐ|_W_>{>խu#<2O>dF.]dʕVUUU :*Ǐ%\|СC3jԨw[_җ>6T#tD)~/Oyyy?CM˗gyկ~57pCsgm\2K.ŋ3k͈#Zi|穪n!9[… 3vn|_O^͟?A?YdI^_Q pJҳgOӦ'曛o<裩'[bEjժ6wfҥ9sf|~umݖr!Mm}ݷE38#wyg>6ն.ǏYgϭޚaÆSN=ܓ{,}6SQQs=7<@y\z8%l?E{}}Zk49|N9r=TUUݻxTTT8ly$c=C=4UUUʕ+K/5-ʜ$˗/[0`@F;s٘4bĈ\q;vl~?>;C;<r)ir6?r_j/@apJlvJ̜9Ey-y7rJyĉ?!W_}u>_2eʔ1c4޽{>4eС=z1u%C/־gԨQMwzTԥKVKVƍ`>Ƙ8qb>6-ܫWx93|1>}d[rJz؜8%p\z饩y睗믿>=zG1bDn}s饗fś|{'IrI'5kI8}ꗿ:y3ziGyo~392k֬VYxqMWcyyyvq 0`|'O=Tnᆦ7H͡D]fnާqۍ?=Wus>xJkw;*ѣG+Huu:/Y$^ziӭa…*uP}ɴiL8I]͞٣٣q;ͶӬmf[4fBUosOΨQ2p4447~qi ~ p dѢEя~G.(k8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(R <%@a+ӦM+u[^}R@'2xB ڧORPP8'(8sNnRYe>W^+Vdҥ"Z'hzmf_2թ΢ER[[ů /SکެimIϞ=u3C% om6(Cե.5@g!huV Qt1hݦ[ á*o:ϛ7/\rIy䑭[Xb\y啭7I;+؊u<| |$;CdС%T[4hP9M!7o^~yJ[ N:bU//S^rAeРA9r}G?QVZUJL28XUUU~Yre&L7yW$Θ1c2vwq8p`.B!TPt`w/^>{fΜ޽{wޙ9sf￟/sNpwGA 4(+W /+$0`@nvm0`@dΜ9M#o>eРA%f޼yloN뮻꯲`,Z(ƍkbgg[LAs1)//τ ›F k3gN&N}[L:K.'z8ӦM˩SO=5SN͐!Cb$[{M|Z4iRc`c<#5jTd]vٳ/cX?s+V p:ƹƯZu]k7J|}`}5<{]k׮[vOAkԆ4f|Sdө<̚5+C ɐ!Cꫯ_r*l8T,Hwq9WWW;7xcV^]JtpV 7ܐ &裏v!{ꩧ6&$^{?(u&p*8PUC+V(u : @;tRPCuuuYhQɮhѢՕpکڒ8-JmmV.tf.MW[[+V:ݺuKeX_zuVXKy% hx,^ԥ[)T'(8@ p NPpsq`ׯ_kTTThˌ3`U~l67IRQQ;nm *k8fѿ og=ⴑ+8m'>5Û~8O=TV\+W橧?ܴ1aXyӫW,Y$[-ktPUUU9sAO>uŋc?yV^+#kq%KW^MӦOap:N8!GuTӧO>444g? C>O58vXbΈ6tPtP[V̙Q.sA phŋgg}ZYf…[86l$4۷o-RۢE2}Nˌ37m$6Eeƌ qse%}3 RUUk6/.u9tp ,ȣ>Z2:#p: 80_|Fߑ (@'~7ofvq|lZh8DYYY! %h kt_׳N;7W_K3VlX|y̙}{mbZ!.\}fvUW]b_knt,Pj;vl.6떏P,{I}}}>o?~&O{w Wwߝᄏԥۈ8'(8@ p NPp8';3wqGh*K]qᆬ.C08'(8@ p NPp`~_߿S[s;(aeجv횽+zkSۭޚ=3]v-aeج<̚5+kSۮW^y%[/Y-X Yf5+7n\V~ pn92cƌ̘1#_7Ae :+u^zM:nС*3Ȍٲ8ߞz+wygyR)TN;??]tQ>񏗺`# p:O~ꪫr駧W^.@'U^^1c{^=TUU$NG9餓r$ .hPtr˖-ĉ_ԥtRys=dɒ%.X@'gy7J] 8[o;3OO?\pˌ@waewμyreeԩIMMMx\vey2p= <$=ܓ%K&sO䠃ڪG5{3cƌV4iJM@XO444$In/I`Mb@7{$ɞ{$1i|ݸ/P,O|ɩNCCCf͚ٳg!9餓$SL)e@+8ܔ)S2cƌlꪫ2lذ}Æ UW]m6> J5442mڴl9vm3mڴp MkbcN`Ŋsm[n[7P`Ft \x֬Y(8#p:+%@ɬ9}jܸq%XPt2ͧQkJPOeܹs3mڴL4).h5jT8tҥE3xyg}D#>M'C=_='>:*{w.\{yJ\1&kt`nm8$7ߜ;cǎX"=\L0!9sҭ[W IЁuQɓ3s|[4 _|1}ѣKX1.l}MWi蚆Wjq P"O]]]y+$I~Q1RVVիW{oi{+JQ"2gseIym6t`$Gyd}/^_M}y晭R8`jkksI'eԨQ_snw@{ӷo,Ze[n;w|!Ik>kvaX>yw>&MʲeJ]& @'hѢy睹;K] F1(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(RK=R[[ۿ-u9F0$ٳg+69rd.#F`c p:#Gsmvy qtE: /%HI~7nVh+@'fHS]]oDm!$c 1(8@ p NPp1$\W^%h+@']*N_\g /+N⪫*u &28'(8@ p NPp8'(8@ p NPp,uEս{t-DzX"˗//u)@;!XCEEEz-TWW[nI]]]K 5o2{.u@; i{`LK]PpfuVNg!fJg!, 80#GӣG_ԩSo<&[8nիW,YYf塇ٳK]MP^^:*#Fh޻w^k2uL}}}H***rꩧf̘1-8 p@&Mo=uuu%&h oVZɓ'g驩I>}{gԨQ9rdroy?.k꫙4iRN<ļK$?3g_L_ʲzFv1Yre&L)Sd߿>Ogر9#$?OK\-N 8)[[o5[`Ay̙3'~zFg}Mө^xOQVw}ӻw7i:vۭ)9s4{ws}_#8"Osu]3`L4IHn$2ezM2%| 56z$Yo={l+**RYRWW7}te)TtPz{79C3r$yt3f'(%6ӧOiS^^::Yfȧ?w};蠃$iSfʨQ2gΜky3jԨ&I8@Cرcs_^СCs1$I&MK6PoS*~z=/ׯ_F38#YlYϟU+/oҥKjժ 8pٳ3iҤt%_|q>gOeee~wq袋ҥK,Y$+u@+/SVV#FaV3gqFn,]tױbŊ.]4Æ KuuuVXիWg1bD,Ywy'={Lozۓ|?Ԥw7oYx.؀-t޲M_֬}}knQl^1!gΜ9sRUUݻ*K.ٳ3q|x>eΜ9YhQ 8  /s禡!oF!Ck(<_bE**6!ӧOό3ҵk3]tŋ3}|͹>dw??Yg$C߾}hѢRѪnݺeܹ?Na$k?~Ct{s衇r5dСf"ׯ_ltxӼoHM])z)_ h>ek[V޴=||[ڜdo5)|+-5 :4_Wj۷o>ꫯNmmmf͚9S6sNu떳:+guVn7 '_kkRWW|0:uj| _l5;Gydk3iҤ$ɀr 7䡇]w4(Iz|sߟ߬{9c7cMnZ^y嗳x⦶<{F]{РAML7w駷??puٳgϟߢ_̮Yj5EKwI ޽{z뭌;6Æ 䡇ʙg\wu9Ss7fɒ%4iRt5_~y:\wumrgOλロw1n~ӟfذay'[}/sO;,92]w]>X"eee1bD:l֯MLo1ݺu3șoO=R]]Kw^***jѣG:\s5m};y뮻fԨQl.]yhQ__I&e…7o^ަH婬СCSQQz+ O|";s$ԩSlٲӚ~fܹ.&ZicTVV?mNR{wFݴ]^^\|ϟ.(_sɭ}ړ߳6+uw&eeem okutzmO-Zbŋ[l}9АgٲeI3g;N=\y啹sM7eժUk]cvH׮]ӟf}7^{-~avo~+VȫڢẁZmvYtiס5km]YYs=7\pƼ&Oɓ'7m3ɼy>r/˭z^zC\kjM8c͐5񺮮bQs\ŋgΜ9[裏\k}əgN;-K,ɨQrg4sgРAw> ?ϒŭ}NK[G|L81'pzWVXѢ^СCӿugFgyf:[$/R?Q{g}vϺqo~jhoں,_WQQ˗/IRu\C+׵]xE԰5_oHU+W|s=>|xC=4gy o?Ѩ:]vMUUUoZ;Fd=l;gΜkTTT,;{M_on^(=;n4 6х^&܍;BNjʝx%z."fAfDLI=PIv^:}>8T:ly{JK.[oʕ+qxbee%ĉ{U^l\+fg8|p8q"?[[[l8Io|PmL2iB}qEI[/"vnܸߋ}ɓ'vg_|gϞ3gOȑ#/F|Gqƍ8sLDD>}:}؈~:z^FK/9_?0n߾}֭[z;z/qx77ߌ?z>Ǐ:thOoΝ'OSO=Ν /ϟӧOc=o u"m<""~駁ׯ_ "v~FUMSmgC|3\~4|X}>3g"|P&O6xq>/[m*"{MC=ǎwΝobsss0A-@Gxz<{ԩxw>O?xDwCr쓯IGUթiti ~5\}?#rݺukRmvڽDzws=GitիWO>SN}XZZooq;JÙT]ҙTmV4xY|| 'xOPK]*U"ngbyy9~x#f4I{C+7ES ]8UŠ^LՄ﷾꫿nooʮe[XXzꅋ/%"nEã e:a0/腗 ʾӸ^D/XZZvQ9xʛ .w+ogKGgkDNF9qѱ>ЪA՝(zsʕ Z^^aUVWWmK-Ж_;\8p _|TDlЦ(ɶECFL'Sؤ%me+Seb8KǎÇgi{?0ؗ[-kkk=cggwͭ]vK._ܝ׸dNtmݐt>- ګ˴4FӉkMɌ'q/i3'_i^oPE6׺giE[>qpV {Û,B6_Z0TE#Cq\*~E|[|잜j> PlSJRizl&7\}*!TU _UU܉C h_UNvѭ U8Uˌ8jU7>!I`? t9oU͉VM?6 6Wd&3*|_w}ݫ^7YqEMR!T+L˅GVY^:B/بxhT]Sv~o:eaèQEK| jX() S&.dTٲ>0U,PI4 ,i+ĉ);ʦUd(Sa›WDt;)t~I_aÌxӀf]9kl&, O>TU h4SQ}!NǫSDA[p߾#1`b!N}i$ɷܔirD&?*TBmM''t̲A$;gMRSDL>p&I9^W WʛÄ7emef6>Iۇ rǺ~`Vͅ?^xU}G E0hSק.ihIRt`f G+aĨBQ2Y6*~~B: o":4ݺЧK *&ʠ=t-~dypW'k!Š3*Sa3̹1 m8|.GQ!T{j0} raN7 p"v~5̰7}nkR {x#F  o"#j3  O)սN3Ft:L[a(m^j*Lca8̖i.ڼi~/0 W*쇠bϰt8Ô n2%stm] JxO}o!~{`pSds౟ (oBY9f`&3kƬ=/g:ɛ@c֟6)nt6)E3GPSC01z)e`8jƐnIENDB`extension-manager-0.5.0/po/screenshots/_15.png000066400000000000000000001752621457631363100212360ustar00rootroot00000000000000PNG  IHDRpA%bKGDgIDATxw|SwFmBi EeQ{E/^ GzUWQPqx^PqT EMi3GILۤIڴy=›܄:m@hBi-SS+4 AD85TmQ57`M r&P@( 5ĩzޚt`y(M8-x@,Wm1,1:L]SxJpSx9,6 +UL8um}S&Xp(ĉĪpvh8ocT𦦀ߺ95NEh@4e0sjJʘ8q&PxcϾɱP;xnH[4o'RoB o n|1@U \\& .!i[9 5]Nxc8Ʒ+KÚN(!N(W p y27T7Yl kj p|^,~ncr۳sgWj]D4tSC olU-xN,*1p )\CGY\{Bk1<}@R0uajmh<@]Û8I ]t9=99m6[3Jr9΂uM>T0X{(đ*5U@od Z$SI3xPV޲,K.7o>9>>r99Nݦy(Y,l6vũ엃޷iӦ{7+~o땿tӏ, kEYiicS'wӛ5k6Ta>,i JHHPAAkk׮K!ox]u㪁jX&pg? $GTwpbI'Lrr򰢢"@p:r8JNN~{[?cexUT*SMnSVUӤwJNNva\LVyyڷlٲΝ;W" bsۓ V\_$1S(:=xnSUNyZގ?s:jڴio۷M8Ut8pf*'jS(?S[%%N.--&M(11Qv^JJJT\\lt))%$$(>>^VUi vrTVV8TiiRSS'KZ\;oN㏩7˧@6M]S+Ʊp g־FfYf n;U&M/ JKKմiN8}>ӂ gQ{G״ߝT47v]M4;b^BB Do1RDP|||w>LopSMV8E3zg<ӆ{N-nlJJJ^aKLL4ZKLL$A̋7@ nYe6aht:L2RO,ӽW(iC38PJ"jZn) *[xDs@X f)!!Aqqq.KCDBn[֊YA7.o0)8>`Jթj8j6<;֦Ϛ-[L gZbefSRRRVU񊏏WrrJJJTTTi|<@ 7qmjSux`z`ۛ+11QM6 {DC_uYiL?6YPmb13~NYY@l 71 tԇ:n״iSYVU?T+L΄'87j @̲:uvn]jUϞ=u'm۶JLLoe˖iu:v}7EԬO>=zT8p@k֬т vZ3:7r\mSS6Y﯋zߙTU?F8e͚5*~cA\\ƎCE!s{7oG=W*ݮ{Wr$iڴi2Ȑ$޽JD9s?Üwy{rJ?Kat/<##Cg}>l-X@3gΌĸ-Qfm&M6UyymTʩKmtbر袋ڧE袋rsSe= o$6mzN ݮ"5IIIzv5jԨFNh8OCpWH 7'- 8ExS}͵^uym߾]sѪU4{l=ZoVLwlgHLը34YlR*7lڴIV/5YfZp.\pMj߾} XUp\0aehd}"n{zk̙uhHG$͝;Rxkݺu7o&L/3 ёPwyG~3ͭ4&u8kF RJJ͚5KL!C(77W ,P۶m5|kӦM3B9g o>cN?}'馛ԵkW޽[=jرׯZj|}Gz缭1t7SNҲetW_ܹsYڵK{vءZh~X)))egg+11Qo,Xs;VW]uUHΟ?_?|]['|^~e-\PO?#vl+=2ejnٲe0aN:餆(˴j\?GzuKx{_t0%C%1, qRT?!hhSNըQ~zOeZ㏫@W\qZl[nEqqq1c}O%K^g}Y͛7וW^ֶm[M:UiiizG@~CvvƏ/á/Bwxٳv53aÆ矕Z>w^uISLQ||JKKuꩧjǎZbl6.b]~!1&O#Fh߾}ڰaF⬳_Bmٲ%h,dZ`\{owE;ve]ʘ%-Zd^%55Uk׮un ȝwީ;vSNz5c {ڵk؈.T^ "h}o<$vHڱhժU>}gq233m6=S;CcѢEՑYN8 uIK,1%СC+p8t饗kQ޽駟]vl駟dɒrfddhȑںuz9{8qFoƻmM ƳTVVJ[z%U|Сڷo~ ڵӋ/x[cdffjРAڽ{&L áQF[n +INSr6ny =ڹs%\I&iȐ!.K=X?|I l፯M*;;[gqƎc^!??_jݺop֭[{ohf ݫ'j̙ԩYAo!YcG@Ֆ3Q׭lN˜>gQiiiC`:H>:oicUcK-[jƌСw̛>Z>&MTˤFpLj޼y([nRntAc̜|>|ݫv+Գ>+IޖFB9f0EE+Wʕ+m6]wu:c8?V&*++ӀdXš_~k{5kb K`i0`rssU^^JDg46zG*7wm o1 _74sxt:exHYv,X1chٚ7o|MڵKmڴш#{*QVӧO7&M$=C:u}8S}##11O?_j݅ںukݫKOf͚w}WJNNֽޫdM8Q5k,3F|~Go@rM7O??ܹ~\R))u駟_={6oެN;MzC:_رCtJ?g^vQ~z\mٲE tH,ƤuzԦMﲝ;wkбgLjiyH9s,F &T n߯-[jΜ9kj=g+//1ܹ~GM)33|C-4 / 8_|'xBwYgK/T;Y,xJOO׃>}i֬Y>}&NoQ=Xz:s~񘡌`XuV D;w1LnM{naÆUz˴YyZ3hŊFԊc@% < բE ֭[u6g38RD=fII C޾YfZb I%9%9|]Gn|.#Y&eUn*Ȩ8i^|EnuY!Awֻ[/?J!Mf+'?S%I[l1$qy*//ɓ-8믿ץ^Z5[85M`R1{`L9͟?7ı7܈#tjÆ ԩzիW{$P٦MtUW]ۿ:쌍NSjڴiDWXXwzb.RWc`;áSJM#wAi:p-Z{j_nt*))jq|X%%%T%(8Z }>#PQQ\.W[6\III!SRR6h@rݲX ƨ3P3&NQQ'.bRi%árN s8ۣ%; \.l6er:8TT] v R818*[8]`8@t૯W_5yэ'DUp8TPP`ti>|7N>lt:P1NSP&Mh1qJJJhyTrTXXj21@R`.Keee*--5@:\qq1JKKys&f˖ts1UN%0x "j @- х GUǶ1S@Pw1>|XrF5*,,T\\ej]JJōݻ.С.Z UkX,*//7 CdӤI021Z-6UF,cXL~*X, ܎IK󻼶 lcZi<T '&Xbz85m6cO8r:FG,ƟN)))IFѠvRRR|] >b1*55UIIIF|ab>HMMf3 pF`*<F`*<0T8x>0#09 *XV֭ZlxٳGvity+̜9S]v$mذA&M2"׿j8 7*IMMՙgO@EEEFhݮ .@ Pnwi̙JNNmݦb͜9+@ڼ{wXQÔFuoԸ߹[o5?L}ׯ$I ֬Yi&4֠Ate)>>:C:묳4g_ޠ ?YguVnt7}ڲeKT@p@DqFmܸQ|rql*BoY'OV~~eSOرc%I/__~EVUs ݻ+;;[?6l`l8p$֭[ngX4n8wqWnnnU@d@Dc 6x[6(,,8D2NZZ.2IK/ 6h̘1j߾&M 6hƍ 4|p?^'OVII7ͦMtH҅^D999ڿ ym}옄881oj/11Q&MvuW(99Y>c3ưa<}w2eT\\vk:cuO׻k`4x`}r:zg/]u r4l|!m'x+~L#n3f7oxrFjjʴ|rIRYYfϞnIgVǎծ]kԫW/I{ァK/T ~sz*&OJII.ի% /c브 6ꣅj(Cx:ZG'x6'꧟~ٳr}vlRӧOŋnA6ͦ-[t~ 'PC1 nWffVVt5jjɒ%ɓUZZ T l|0I &<80=OxӢE hBYYYzguꩧꪫbQVV^z%y15Ubu]]פI͙3{1cec=oĉմiS%$$hʕzeԱcG9NK 86u9䨤P"7#1ս{wIҷ~]-liݺ&NTIݦ>J5\9s/$}GFܠ\.߯VZ裏ֶmnqFuA;ƿ;xz!M8Qڵ$}wz饗v  '4{lIKxS;8ۍ.!*T o$iJKK7U]ve*//W^^^CjZgysݦ@K,ĺB=#Vyy|I9Ύ `:gLxS;89sv*bJqf_xsNYFF,. py JKK.A9NiӦرw0@:w,Io3ƅ罽sN͜9S$b誫ԤI4sLYV=1#//O.K_~~UۦP>6nh@O5l0M<9}b0 |7ٳcR `^|EeeePO<7Xr$骫xǢUViƍ:3u'*==].K;wڵk2 xbn 8P͛7qhʕA[P@"\->=V?}؎\ۏ\7׮#]>s_>峬}m_AT#XиXo#LMo>щat yQRRbt '1>JII1 8|% 7tEsT~~RSS.pr:F#hU "]UTTdt8"R o "*99YSp8TRRÇDhyhD-8NR"`2tTED!- b Ӂ! &Pɵj )@ Su$_@k֬%Ln޽F0@rK0]L09ƽ1qM4Qbbv"p8TRRbK%H'lj֬ zcەDt] Jl0xCa,0)E7nWftK xI&7nW&M.HLL41=!AFo`D1@D!-tL`ey QbcSn$Iׯ׭jpEhlݻ.&0yI޽;S~Æ z2dHM9sׂ $If믿z+-kpLfҥ;wneC͛7Q0N֯_myz&:|u͋9@t! c2eە38C ZrrssU\\,I߿*uAӊ+C~X'x$oĉ#z8%&&VZVZZ*toQiii馛d5i$]}z')S(77W|ZjN<${;Kȑ#5rJ&No4|p|ϗ$=OUVt!:t(zpLfѢEzg/33SVU?l6$I۶m_9s>Ӳe˴f͚ N[Cn:H b\[5:p@.KիW/ 6LSLڵk5u'Lv%{niZlYk}?͞=[Z޽{R.D{Ly=裆rAiFEC5n8WVU:%IM6ggϞ*))QAAG 0u{{ۑ8--ܢ;jԩzUVVnA:pWJJN;4?^IIIھ}M"bq,\[곟b;rm?rs|yZ)zP fp4{kjj޼V^=HAINIkב./YV/Y6Z믿V^$Ik׮.''L&M2cpLpLp|8K %%%F @08>&@r8*..6 &GSEAA!p8TPP`ttjҤe,áZD|@*#09#09#09#09#09#09IJ8p :ԪUJ6lؠoY7:`1Є 4vj$uMjٲeꫯ*++{?>>^QFuXD wyc믿.oٲrssչsgٳg^u=*//h=~6mW};"zKϟ>YYYrz'"ZϬY"z<t2>}|tq9rdlֲe?effJܽiر5l0}嗺;߿^|EW^Q>}}]|]vժU*qkѢEO:X%2k׮{pr-߿n:tHYYYj߾mϟ$]233ukΝ0a|A1".]"xzg5rH 5m4}ڱczZkڰa߯yUV .\͛7_ԩSvuYgժbN̔f4Hq$رCJJJeeeZf:uѺhLpbnjtbYYYg1!۷oV߾}no⠭i|Ţ=z <Fl̙;v$Zt&O=ze˖kj׮]۷ڶm&MtίZ\pڶm6m /e]]e˖[eٴ|@{$;}<޽Vڵk 3f/PNN^y%$$H__W_}U<@H=cڽ{.\\պG}zGk}kp8B:>(J"w\->=V?}؎\ۏ\7s5kVΟw}WTYYY~8p@qqqFF͵zAJrJr\v\>}ܗϲ>}o 7 "駟$wyJOOiݻwkҥͭt۷`r8*//WNNrrr|;vTǎ_UV? GC6mZvڥ… . AC֭[/2@ pLpLpLpLpLpLpLpLpLp`JVUwq>3);;?_7otҥA^#F F`>}hذa8pڴiT>^k֬Qfff'&&FA~pB?z^{5ݻ+CU;w~3@w$iرӧrg~PΝk͚5;Cl{}W_}NZdff駟VjjjX駟V֭2 /h˖-6l+b`E0^#b ] .I?~Xdeev'hMV-)))ѓO>O?T{UuhСkժz Yr+hƌ5ns!I5rHxr:ZnNgCiZ_|nZ˖-lƌ~Çk} XBc} y޽{k޼y9rdfnÕTi8egg3PFFvܩ9s7ސT*ꫯ$ :T .̙3k3ٳgnSEEE=ztA]W;4qJۏ1B=~1*++SaaaXۯ^+.jJJJz'ʬ]VwjO>Y_u!eeeyו_~mݦ 6Ls֯_[jJJJRuwxilՖ͝;7<6lz]fZ?Q͓T1M?,b,38Cs:K-Zкu딗y2_~5jN8uY_媴%s͛5fPϞ=URR+''G}]HSϞ=5buUmڴQ۶mu!m۶M?{9O!>FIꪫWӶm[?^QG%ŢQ?/^>,c[o+ѣաC^3v4in!6ƍf?zsn5Nm6q?\~Zp֯__C偅{*fjeZ~^xA={n6oRfѼyJt۷W[ִiӠ۷OEEEՖtI5jj~mM>uRELeީS'|$jݺuZbNֵ4H?'tߠn~gu?<𣴴T|MuE$H_Sx#IE\rI'w@N#/vo߾~֭RSS{kO4}0b%''{iF6)-Z53fmݦkCjŒ*ZꫯtM7IWӳgOxx,\PfҡCZKN:Uk:3#|eggoOOOWzzzH]8;;RhvzKVU&L_Js9 zKyyyJHHP||B~s"W~)Sh˖-:SSKN:Xks~ߓ; z4RҥK5ydMfffָ$m۶M;wСCէOo^ZRJJJm;wl|m6N>J[oI\.z)5J;vnӵkk6m^xᅠ%R" `իW{[Znz].z; zhϞ=JOOW޽~iº{Θ1C'NTNN˵d/[ׄ tM7>ӪU*Nӫ/RrK}0իWWP-IYYY?pctj֭O͛WU3n !_KINN}ݧs=7s$$$\Nj/XAhEպx[yn㏕^km۶b r~xH]]::@mz~7@dҥKnSRRӧkeO>5[o,>+͔#I]t~m\C ш#*-+++:o۶m+߼y$pumjAD-҆ ԬY3~aH~8J;tPm?}y}R]c7 э@O?$ΫMH wҥK[{ڲe92ݮsj޼yeuACUVVV%W^ =SN<ƍ3Ç?W ٣QF6,w:O" Qq?,w_D9[:8˗X?}t;6I&Mо}*Py:zNN.]+*==7nTO>dΝ+sW^aرcG>}YU u?DD8DDDιz*>}gϞԩׯcccddd 99/^ѣGJ(ŗ_~VZA(޽{صk;rl̟?۶mѣѼysYYYHKKqe㔔?z_|͛iӦHOOwbΝHKKfӫD>w:O""u E+.PX/{XVGplYlkٳSW*""tDY +ֵo:泰@LLL%(< 2ekEM)x cH1CDDDDDDD!"""""""sL9N#NDDDTIuDDD8DDDDDDDDz """"""""=cH1CDDDDDDD!"""""""sL9&p8DDDDDDDDz """"""""=cH1CDDDDDDD tL,Ψ_Ҷw:!///H@6mi&XZZ 2"""""""'L萳3:u?z-ZS+DEEaҤI:H=7oބC_~%8PV-uaaa:t);>,>>@'k׮ĉhٲvmկʛk39JD&BCVVVBǸA*b͚5Z[[[L2Eס5N<~M>6dt_|R)^|]۟׵7Q"z71:u;vѿr8!!!8r>3h<@@@P(+ KKK! O>R{ggg۷od9JDoz;8p V\A֭[ظq#ݻ7M#G7oYDDNNN í[p)ʷb̘1ΝÕ+Wxb(c„ F~˷uy&>.]T|mcǎž}P˙={6N<۷o#** ...JNjD"ܹsv/^_~~c)rJ~r fΜ)_WV-F֏vѸqcoXX\\\cᣏ>Rj: 1"##;viӦmBBLLRVB@@RYXn]ߓQtavp&ucySV]-W_}A!>>V:Vui?)@MYg~g̙3G~`ۻw/n޼TX`hh1cCbb"?~ ???G1X~=<GGGxyyĉ~~~h֬ ӧO/QNpp0֯_GuJ_lll0| hn2C > رcj׮B<|/D´i@"ήm-N:ݻҥ b1z-_׭[7k֬AZZRRRj*ӧBu8poFZZ6m+++U]vƍx,Yt[߿dlܸO}@tt4iӦ Xv-R)׷FU'O ''&&&U._"ƍ@,--?uEall "Hi0RYmkY}W{OOOk=z@RRtRhccSSSy<߼2,_U)((Ѽys@,+{nn.ЬY3DFF"** z7гgO9sW=)uZM+ƪMe MUYϜ&QŶw^Lpndڶm["99R:uիWOm۶ EDDTCz u-L>Kqq1ƍ4h֭[˗/ ^/^h%/H }[300P(P(T2gn:uB!=z_~&MڵkjO PbLJS^epUPP8|0?wػwoWԹRX_*UY5y** x U =znݺ)N:l:tsA۶mQ^=L6 t钮&"޽{ptt,K.%Žr f̘Çwhذ!|۷QXXqEb]6y%iԺu0p@L4 Ŕ)SСCl߾Y VZ֭rrrKaD"KM&k׮hܸ|۲T|A^`ii ĉHMM9F KKK[ .DQ^=|ו>^}_p 9ƛ}KDEEa޼yhڴ)LMMѳgRgj~quuEvP^=̘1"QQQ`ۣ~3gpl9~8͛sɯHԣ :7{gÇ˷i\j/q^W4挌 4iD8T\V^ &T|"BCG?􊥹pԒ l2,[+..cƌ)S0n84h233kiӦ <|\ 6 ??FZZ6oެrLpǎÕ+W0qrcHpEL> 4@ll,FB={6Ν{B,#>> xI~^p~z=z Eaڴiذa pE+pua;k׮tSe˖aҥ8vRSSqAyBIJUcκ㼮h۷oǢEвeKx{{XV͕=GSP&Mo'"VU]^,TP8ٲ!ײg ''h}$gggXYYuLjj*>M6ɯ)MHH8pMKD:QKƉH°g8p@#YYYŋDD;C5bbbd(P,D!UxȖ uo.K^+*/[[x"((AAAtM6xT QQ5j֬5k+W~Ŗ-[t ;CT31S5J!j׮ ///"%%?|j""Mc1CDDDD]ӈ9&p8DDDDDDDDz """"""""=cH1CDDDDDDD!"""""""sL9&p8DDDDDDDDz """"""""=cH1CDDDDDDD!"""""""sL9&p8DDDDDDDDz """"""""=gebpvvFݽ{>>>HOOQtDDDDDDD/xyyyյDڴiM6R>8: puu͛7---i&hNR:8r6l؀jt : Rk֬RdDDDDDDDO:uR{ߎ;b߿ |h֬?'O"((~  @۶m˗/FnB@@>}ZQ0󖉋wJSvmbŊ8q4h###}O+V`HNNv}bΜ9HKKCΝZ4hX_^«WJaDDDȗE"+x{{#>>Ym1j?qu" ݺu+O^^rƍabbwVWDDDDDDD&pj(DL< ʕ+< cADDDDDDOM~:ꊏ? 4(uǏC(M6! D `ll?xedffӘ9s&`jj '''TcDDDDDDD&bCϟ?:v(]<;v9zI&>/ |6mfhDDDDDDDGѡB!((HסK"Uo8c,ѻ """""*T*T*1! hk4J(..F^^ kuMu8DDDDDT*T Psss@YYYH$ZIxTWTgH;"""""RIvuےy$]6DD """""RIvkۘ100V8m8DDDDDT.o;YCS }M8DDDDDT*HL[meԄ* """""*AveGM(WM^X.hMD!"""""jRr@c>@DՇ """"""""=-+++,ZgΜ;wpY,_:),, CYDh]@Dso|DDDTĝ;w0qDdddaÆڵ+tU@V͛IIIXx1=z¶mp}ԪU u8D!"""doo[[[ 0/^~qdDTݻwɓl2ܺu "͛7dzg&MBDDt%&&" fu(Dx %H###4nܸ}b1f̘sʕ+Xx1LLLfϞ'Oۈaaapqq;>Hv޽;BCCqM>|]tpjHosEll,QPPxڵkSSSGZ˖-:D"u:fb͛7={`ĉhԨQ}ЬY3 4 O(,,Ç/aaa@ӦMʘ;w.:Çƍ &`3:t1666?>zXA,k7N666(((rرcXh-[8t|||pq۷:$ =z@$M[H/c9r$0uT?~6m½{`ffÇcHKKZ k׮!!!6n܈CCx|ի&_D򂻻;ܹ8rRl۷6mˆ#`ggDF);w_V^-=QFHLL3$c 022A(VZD"RH̚5 pttԩSbbb@#uQlcٳ'C,C(bڵ_b1[ZZ~!֭X֭[˭_e'Q$%% ?p]RJJ ۶mx=Gxx8Ν6mڨL'''k^"9!""Fqq1RSS'O ;;={Kkoo:u8 CDUVaXt).^DMGFF˜aFFFIW_Bxׯu8D DDD:v숹s⣏>B&M`gg?QTT͛7D=׷ncȑDѺur}%0o<4mٳ'o"cǎa޼y1b9|7z1c`ڵ00Pe4lPRn޼-[h"xLgF^^n߾ѣG!ްakkka͸}6> Z{j+Wz խ[0n8C}֭[ui->?)((zDThkU]^,TP8ٲ!ײg ''W^U9DDH'$ $ 4hP4"55BP#ӄKhMDo 8P HYkC-Ca \*VT}߷]A<Ӊ8DDDDDDDDz """""*:;mA}S"&pbhhccrׅbرjĨ -VxU}M !~>@ll,>CIDD.(..uUV\\\*K}6~cG888 ** u5BF˱8q"D1~x̟?ugϞŽ{/0=p8::*=&MֱPl*k.""wծj.&/DT1F\,Xח/7j4h O>:mf]P _: ]VeϟWZsxDDD5@ @NNa`v~u(**BNNgjehMDxYSN#ۦQǨQg"((@(86-E&L@HH.^;wu5jBCCq\u-!"""/_Fxx8'/Ǐǧ~ׯc֬Y*U^o233Chh(&N(?~ʔ)8~8N> ???h2ݱk.DGGc߾}e~>C$LLLڇ괻K.!""Bj7oYSX^9rܹz777۷uLdPL8+**BffR[4A}6ٮRRRtMeb3g cǎ!##޽{cڴi9r$ yfbݺu… 1` SNũSJ]cy+O4h| ۧT_E>DDDH$㯿BQQ^+JQTT H$Z:DDغukdJ"&&Ǐ/uH ވDFFx=`1c0~x$&&pq'O=z ;w?Ν;s@DDƊ~m۶m۶ERRRGrf̘333|7SSS 4GFzz:`ݺuX|RH7Z1fDDD_[5""D(B"@ ouXjS:EWo&"oLPU۸qcݻ*ȿ ^u6m<ٗd###uԔG2֭?;vD:uP^=ԪUK:JND6mЯ_?lmm! b yԴZS!!!X|yoܸHZ *ib_P իWUWciK.E1tPehFDDT׀OaLJtTgTWH1C+hgS5:cx  !.,((P'`Ν8y$6oތ vnW^F |;fU9&Mg ZPvbH$@.]0`ڵk2eJc*y,?BBBpa*UTBRT2}m6~bڶ}QoӦMmɐJJ Pm0iuի ;;[tU5>}gرc'";;NNNUhY4;;;"003gΔ'dPS~:ꊏ? 4(?8t;vGWL @(Z:DD = WO>/˶-Off&N>3gprr q!̙3m۶Ez0m4ҥKnZ_x333 :uE߾}ѪU+}={Ν;Z~u-W&::6m… acc"ر&M?B4jHebL,V5! bǎصk~7L:U~}Xv[XX`hР"77/_,6>6mĉCy:t;vVGضm,,,cƍoԪDDDČ7DncG#55Ui].]puuS Ƕmcʿx~x"~Ԯ]ޕ A(q*PWRRV^ ///O>˗9rn޼" u-Wі-[+V[lm0c \pUJT47Æ CttcݺucǢVZصk ~)u@uVիكgbРA-&M333Svusss{%.jܸF{iҸ啫j@aYbYqqeC߯eNNNe͊Co~ {EDDC!2'""""zXXX &&@&bE ϒ_KRl PXTᵢ~m jCCC4k ?u(DDDDDDD8ƍß8]BDDDDDDLP"CiJj""""""Gݤ~ """"""(^CDDDDDDD!"""""""sL9&p8DDDDDDDDz """"""""=iĉH"TK=B!'zW1CDDDDDTIRR066H$@ xC^^ "Q%HRB@{_ `ffcccdeeA"0CwDDDDDD$Fɛ7\^?;!""""" mSՙ10018D&p*@q]%p!zw0CDDDDDT "蝬t """"" ]Aeu w8DDDDDD}8DDDDDDDDz """[+WDbb"Ǐcܸq?~PVR[YYaѢE8s ܹgb尰;v ohhDjCVDDDת;""" 駟|rԪU ׿SSS_J#P('`4nX^Λb̘1ΝÕ+Wxby2ĵkM0ׯ1|cD"~ӛD"|8{,]%K(N1"##;viӦcgϞ'OۈKxT)iVp}$%%A*bݰVvI"z0CDDDo+++<999usšC0|pܸq0i$|񁋋 {nbYf4hL>]}„ |ooo| C@@|8֬Y4`ժUӧn///Ν;x9r?gϞʕ+cƌܹsq=+F۶m1zh?MV$΂ ХK_hӦ| X7VZX~=мysxzzb߾}pwwGjj ((j?OL>&&&زe ^zԩSc&M"))8E"|}}K$j$VZaƍHHH@aa!4iΝ;B"H6 U~~> :B"D@e^ 2D'sssPESN۷o!B!BRZYMLLpADFFbڵx)nZ6Q &&1cǎźut#BcX`B!VZSٳg0`|7 P(Ă PNѵkW 6 GŃp},_~%֭ 777\p?ƹs0n8z >>>Je௿7bԨQTl߾'O`nжm[lڴX8]{e7dlÇlj''Oʕ+ذaM6 x!R)v*_'Ю];$$$ɓ'FϞ=U P{{R,mlU|bH2@u푘{{{ԩS˖-Cbb"!# agg@CCCx{{͛%!"ѹ/8s v؁̙31c ۷oǹs`ff#FU'6lP-Ecƌ֭[KׯG~PvRqԩ#bΝ2d&O`dffWYfа+_B'"wOvv6< ǜ9s .ؿ7o/ `mm-Oؼ|QQQ7o6m SSSS_JJ vƍ+ H ;vܹsGI&*c矱pBo_v2h׮ի3f@$!** 077ȑ#aiiuUs"zǏǮ]P\\^a-T:֣GlҤ f͚ .`S{GHHz'''lذrypoܸ@[[R˩_>^x!#??V¬YPPPsssݻ~GbpssSyNڵѰaCǫU-ZiӦaÆ 000ŋ^&6l@~~>amm4l޼Yoٳ1w\ݻbHHH@NNѣG;v W\ĉ~󃵵5pm=tsrr ++D"Zl ܹSiۉ'_bΜ96m ˍWfɒ%ؽ{7?G)mkذ<.xzzʗeXQ0eʔr4hXxG79T*֭[K&33ӦMS-//^^^*=xdlCnn.'_rJcWڿV;"""=Bcں *kFnhhsss<~XnԨQŵk? 44L o>dddTx֬bݘ5kVmO<ھ};#GT.""zwyHNNu(DDDDjaGdɑ6m… (..Ɯ9sP~}4lK.۶m[(qe*/_DZZ'33;wV]vH$J8p޽;/BM(***7NUokkk2999x3*_҇mǏ!H1cϟ=?w}/D>}-G޽ƍ+*}JB!<==g&DK,/̔mݺ#G'"M$m۶;v,g/$* n=ٳѣ?cРAXt)0`:tǏ#g޽{7O?ahѢlmmѷo_899v؁,ڵ NNNBΝn:XXX`˖-l~^˗/cJqe޽#F@˖-amm>}seθEDD믿ƫWt 8Zխ@gQ :4i:t耐x.ڵ̙3Dr)**K|b ѣGްARR.]͛7t@8::*H$2e  > (**BRRUNJDDDD yyy%κݢmy.PX/{XVGplYlkٳS'`…={z#"ȀX,uDDD@vD"% w"C(|uIL@LLL%(< 2ekEǨy8s #FJxΟ?={} iP(D"P(Dff&,,,-STTL&oAL著/_bÆ ذaC!"""""5H$DF*yyyɁ@ 7D &p*Hv,jWk"!"""""YGo^q ѻ """""J JčomSD.&p@T7ѻ """""" `7N9&p8DDDDDDDDz """"""""=cH1CDDDDDDD!"""""""sL9&p8DDDDDDDDz """"""""=g HtB{uuMu 8DDDDDT&T T cccC$A :,R)<Z}Sm""J*B(A fff066FVV$V7&"_T]]$od``sssy;4IW}6~cT6&od `llF[m""8NTCFm""J$:*Vt75}!aGbccU> K?x .hҤI$""")dWvԄrem8ꂦDD Ξ={: """VMJhc ]ӇcڵH#xuICBBB0aŋعs'ZnQF!44.\ʕ+Qn]1bSLqiD!!!t"""0i$6Pwww {ァ;vڅh۷ܶ:::",, .\M`kk+/[n֭[Ju˔H$;g߿%""]DāÇcܹ033YL+WDbbbǚ5kǎ|0 :TWu wөS2Ǿܹ3nܸ!W]ݺu… "$$!!!4i |r`…ӧ FX,… 1yd,]kF`` VX'NA022y|SUw{ vQ+ "#,DdPFAF6\f@P("KARJKh&-Gr'M9-[W^Qjj'еk$]Ok:{^x͘1C;wvmQDDFZ`vAnԬY3 >\W\q/` VUK,Q``*>>^wuj*/ٳg}ۇ~3gȐ$]V{EX!u]4hj׮`=zTSN}׵lR>T$_^8%DQ'H[f߯-YD&IK,ѩSt1${7o.^gjܹj׮ժ7:té:xNГO>.]7t%_TF %:uΝ;_Vס(HqxIr5"UzufZf֬Y_]!!!ÇkΝZl݆/U\Y~~~ڷok]jj٣5kӧ6D+/6MqqqWUTbac0zwLOOٳխ[7K>Lg'|~A˖-S \ϱZ5j[m۶MSNu{Z|e˖ԪUԤI"ŝߐbJ ŢozWLl6۷O钤{yԩ~yl 2DcǎÇ%IF 4 J/8>uΛiذ]V$99Y_;?O:v쨇zHd5h 6L6Mfқo)zRl6gK4l6כsN ;sfsnUԞI22y Q)""B{qe2=zձcGiź$IƍSZԽ{wuMUVȑ#lժƏ~Xqqq3gVkǷZ r} AժUe\?$gUݺu5e͘1CrJ :T_~:up%cW$;vm}jj֯_#PzrS~7]zU[s;wjׯڶm8qB-d6U~}:t1eMИL&{ョE㌷QFE YΉrܞK.)""µnҥڽ{Ξ=^{M/^ԟ'gϞz뭷3ghنXB{UBB͛:wڳgۭ =v  PTZU/^u%K~7ΕĬX<.]諯xfٕu(uTX1gʗ/_lP:11\222xbEEEڱc"""TlY/ W۶me]|Y7Vjj.]$ͦ+Wjر3fΜ9ŋڲeK?sLZhk]޽믿ٳׯ,Iҏ?'xB~|=sZb\ZoX%K$]7' hӦM:uꔮ^~X~ωb<9I4m4}YND .Ըqsjz>^6mokȑP\\z^;(==]ǏWJ맟~y,\PSLQ:u4d¶mrBg׵mszÇ]/R_~Gt*5oܜwޛsXκ9Λ{;[n9hs1w˗/G}Tl:.vܹs2rpMqPk׮]$eJro=͑\VeeYw#5` W:088rp(9nJ@01(wRd2)333׫C2wO_׍' @HÆ Ld4jHwv[P͚5ɓu1B111QTT4sL :T'O$9R˗W޽eZ5yd 6LӦMmݦYf7_5x`lRRSS5|p͟?_O<]&z^ٳg /hƌܹk{n Rvn4m4o۷}]uY-RppUѣG1r?(((Ϻ*xV:v^z> /*66V ?(:!٬0#dBCCdv|nr筺90.ߕEf߿_ ZdL&,YSNرc< I Q5o<]xQgϞܹsծ];IRDDV6nܨ˗/СCڻwG?tAW٩ڳgj֬c?moիjݺuܹSǏW~Զm[EDDĉr8nI&٬СC7WA s{^]$HqşSxjԨ~i֬Y=zt)ɿ|`t|ʗ/Qt]=jjٲ>sܹSÆ +1rWݘfU\YΝscP=+lJ.Ţ1c~š[n_|P?kիWڵkw^w]wiРA]uQM:UǏuh^׾}{Owqk.͚5+-[V111ӧ.\hժUZlYwѢE;d2T\9?^~10:8>#uM={;k&--MJNNj YӢE 6L3fО={dXTvm={VX=zԷzAݺu5h 5JGmݦJ*K.)::Z/^$U^]~222JE:/jUVk׮ @* {f(4m4M8QgZ5j(}ڶmN`IY[k۶m=zk]PPۧU*+]kC2D˗/׏??\W~_~;Ce˺u5x`-[L?VZ&M3f֮]~IP0Eꫯ*..Nlڷo%I{BBB|uuq:fq{t9rDte߿?v}ۯO?aX:t  oʕ:}t7NjRխ[7UZU#G$[m&MjCu͚5uĉBŖq^}U\R={ݻ]###5vXo^'Ns='xBժU<ߪU+?^?4gYV]vMǎӐ!CԹsg-_\^VPjUl6gUݺu5e͘1C6=tP}ԩ7Õ$NzO?顇R޽ULlM&&M˗kٲej֬ks~Çvڊև~}fCOaB`F'P"L8QW5m UϞ=[o)!!AgΜٳ#H;~;%I[ּyT|yWy>֯__;?O-_\Wjjkʕ+o>]pA ,d҂ tI9rD˖-s͊+w^%$$d;8p@'NлᆱSN/9"UVu ɒ%K~7ΕܫX<.]諯xfYAAA R@@@~ԩS]=E{zwz9͞=[=z~i-^8[o %‘#GpBM815kl6ߖqVUdm߾]-ZСCԺuk ǹsTrB='33+laÆIpϊxט1cTlYCןg%$$pW[N&L(c(1͛իWK.n/_,Iѣ.\sè֭['٬Ǐx ƪJ*ڱcG)q ʙo]A?W_}~[Oֿ 8zBCCռysm۶̙3t}VZq/^+22RwyܶjWu*Pbl6M0AcƌQXXkStU=ù>wݺuj֬ڴioF~z5jH?l٢BSJ tkƌ:x^/ʥUzzfϞI&M6lVڵ]CpӵkJŐ5j^z22jԨʗ/eVTC(He˖-ճgO׺ ͟?_#FPdd,*U 9uΞ=8ڽ{Zo z\_9wOlٲڵ}UJL&EYz|0azիW+66VÇw]E,&&F}o-?;Z`*TX333 4ʔ)+66Vk֬ы/g}SXÛ*PL6Mm۶u[;(==]ǏWJ맟~rn:=3sɓ'+R,9/9rD3fаa/kڴi> .Ԕ)STN 2G۶mu՞={Էo_rddd}Νsz,>Ç+?..5vϽUV9nq^<]7NW\Qv<~~nɯܜwޛsXκ9Λ{;[n9f,11QVa@eePŹs\Cnu;MqPk׮]$eJro=͑\VeeYw#\y #[^iB΁~F?6 [dRfføi~E1&wOc#[^it΁~F?6 [dRJJ222|Jedd(%%#LnӜ9seffJ6oެCʹ/I?ԢE [εiӦ_ h߾}ҥKF)99P8a=2g}MEkt[jj$i˖- S:u\רQCAAAZzZnVVӦMeիWOUVդI۷O111n ;zSa{˚5kl6[9y?ƍkH}Z~&O;I&OdXJ*ɓ:VLL6lؠm۪F״iԨQ#u]*TЎ;4yd%&&JhȐ!ԩiӦ"'FD[5kt?Vnŵ}jܸkҦM}v~ڵk+00P{O?WUBܬY3MaqϞ=5e8p@O믿^zHcǎ>\QÆ n_k;Zjq_]oذ-yf^ESN5j"""t|8N񒤀u*Ub_-`mP0xj O?UǎTũqƪQ<37nԄ ?AM4ћoZn6lؠe˖Gс|>N2ٮ@iA[fk#F(44He8QEFFjƍ.]Ҟ={s)))) 333u"O|'NpQFRFC <9MV۷o֭[Ofۖ$nl޼Y-[T@@:oc=-[5h@#GT-TreUVM?ի3g_~E>WjժU;v^-[V=\hBeFfRVꩧSO۹s[2JII2~6˗%I#GTŊ_~E?=*٬ʕ+ܹs7uNӧO׈#4g]vM:qM Q|TnNMY;9,gǜye[L,%&&j: 0õk׮HII2%ed؞rs.+˲qّqV( 088GH #`p$p 088GH(n&IZblduh(fCv]еkdp8|ZVo%=8P``| d2bbߵ>==]iiiJOOatzJj[`$p@`( @JIIQZZCD[EvFmwPb)44l +???vm ԕ+W8hȋQ*bcP"lٲ|!Flٲ i( _UF8 u(VQTn(Q0P{%B[V[P2%Fhh( P,<ڻ J z3X{$B[EqT[P0xDXXX^қ O) ! l_Ux Q rhjJ&8ИKP팶 o.QH2eԫW/jJիW$;vL7nG}DGw0OJOO/imJ.e }4iBBB}ݺOko \ftt:v(Ir8:w6oެz˕ ʺOV;ws=綮yzw_kѹnԩS:p͛WV-S#qn}G8pvUmۦ]ɓ; w 7K1mt3m@Eڷo3fl6k/"I_yiF^yB%q>3͙3GEjҨQ4m4 <8>Yefff+G֭[ժU+fx,ժ5jsΊѸq_SZj.1 y#0L uZDD$ܹs>d2r)/U*mm@Fʖ-I&l6kZx;wjΝ߿4i$޽[.]*P6MW\$iƌZ`BBBtlj}4hϟHmذ!c%&&*..NgΜѨQyf%''K4`l jժQFr+pk()Z,[>j׮믚?~7ƶh"թS'm<>cvuEiiiZvRRRcy9R/t#Uzڵ0a۶Yfyڵ.^&9Yt}]Fxq0(m@F($$DׯwK,ZHv#e…զMKN&ݮk׮yrۧ[}89Ytի%IWVnԨQ#޽۵o'詧*Tl9ц Զm[ըQC6m5jݻB ڱc&ONfX4duIڴiM(:9s{QRR߯իZl1chǎS[l5--Mn֫VfZ HmCu E-[nt}X|J^U% kӦ v{.111jӦZn]dRʕe˖YVo܆(uɕٴiF!՚o"fI%)55U1110`+v1SoԬY3MF~?ӧ8[QڝQڪK/~)##Cρ0c ѣGk׮8FvTq;ëǪT"Iڷoq΋Sj߻wo۵Ο?om'|}ꮻҁԧO9_9Yf/IZd}Q-Y666VO<]P{_]=zaX|BVz쩴4M>KмyԼysխ[W[ֺuvZXB~"##ue}Zb̠ 4H-[TXX~͞=5kڵڰaRRRԶm[fXB ,(9]V6M;wq{~FEiwFi׮]W_}A?qի^xA{jʕ+gyFgΜQhh+ڵKÆ +tmgΜQ׮]ui jӦ233|rmܸQÇ=ܣs7?*+k5t5k+11Qׯ ׋(}.׊?X͛7׃>'Ong'&&F 6teMiFCSPPRRRt!uС@1/_^Ǐw[O?T PxxvKZF~1'>>^&Wpp4Ţ_e:EDDhԩycW:uplbbbj*eddoɱkl6l6x}UJ$)IaϞ=+N -۷ɓOjƍ;j͚8q n׮VcǎI\էO _O2R$p|Sݺu3yg\)UViРAիWZ)22Rֶm\+WիWqھ}{ݻN<[fvE\R={T Bĉr8jԨQSBB$MVe˖$>}ڵf%p8TZ5IR5$]pİ/9u~gIRxxx>x uE:tp'w駟tI5h@&IM4ƍUre5mTfYN8'N:lzwxܞǷ_~E5j5kAѣի2ed2 裏OM6߿JÆ 8pZjd}GE:fҥK׿U~RRR$}Zz*RYp8 p8t]wB 7N&Yd;'))I^ o۾9W/؛UxJ>#Uá3gj…6į M6/ׯ[K.UմiS5nXw}>"V*_čWZUsѩS4m4=zT˗//TR dcए%&&j튊ٳմiS+88X͚5Ӝ9s/nk7Xl$gϞuO=6ov;wç}j׮koFfzH8'IIIe^1fU\YL>];vМ9s\I(FҚիWj+!#]ҴiSǻ 3 Qhh$iӦ2LѣGeu*))IǏwݼy+zAXz2eʸ_jU=n=jժݻՑQO>Q͚5]H:۷vvZ7`Y,]"'Fi繹{ﯭ[j9o%c#;Eo4bMk9--MSNԩS]I"eff*+^|ADEEM6^x I߷x+WN͓$M0Awy{\(V}uG={())Iڽ{RRRӕ+WO?)&#:uJԵkWIRݺueZum|:$iڵϟ})%%EW^վ}4o>v7RTjn-VA(lƒ,$" !ѐ $rd!Ag9{ffz82|/@ p 8#\UUUjkk3~TW͏466f׮]inn{`&MORYy鳙3gf̙Y`AMWJ LQ&_}f޽Yti)ׯO}љ?~.,X uuuYxAa:bԧ7Z/^_|1Ir'IV^իWoz|t_\;#T6̙3ٻw~͒%K~=Yn]țÙ9siӦ.ۦSg֭پ}{.\߄o{ۆΑL0JҥKÛ6_n]-[ʜwyU&nC{ꩧr/?Yf c#`zޗ$я~ԩ^k?^{ӹ˗wgo9cvڼ yߞ G>(6^ܝwޙ;s{ =j$Neee q2nܸ,kR]MM6S-Z(k֬ɬY2k֬_>?2U82 pFQYӵ_]Mz3{,Y$K,ٳz2U82F`z'3s̟?x&Ix≡, 1bӦM9#vNK.mq.kD2`Ғ /0sL=؜iii? 0;ƍ/~q+6lؐ{7 ,_ŋgݺuI:Sc=6_}jjjr]w/f ݩ;(o~3uuuy{ߛ[n%˖-ˏ~_>I2k̟֬??~jjjSO[n)s@)(Ԕŋ+ȇ?,X ,د_sssr-ijj*C@O8ܾ}r7gҥ9/Gyd{'r6&#6lؐ.w؅ 8'(8TP%+8#Ю]]B!jB0577ge\X#l߾= ~_˪]АfMMMill̮]2pٱcGvQR!b @ p NPpl# C9$'tR:777gժUٺuk*MwMTUUOΡZF60(OO>MeeeN7N6mHj`t۾}{V\ԨZJxO`l߾=V2iiiɳ>[*1kMMMMnر0mݺ5?]ƨbPYY\}}ޑ (yw#_FQQQ$immMkkk8c=GuT^~|_Ϯ]RY {ɺuo|#w_\R۶m˴ir 'tNh((# /~_kG((uw%gyf9>]oG=3!s]w宻*w)8@ p NPp8'(8@ p NPp`qW2Fr^rJK(8@ p NPpT>}z{s={^+87n\N:vmmv[N<Č7\`P-Z(k֬v_K [f͚_|1 .믿^F.0nݚK.$VʪUrNoF,XP2Fp~_;n+L(8#pf$K,+;#O?t*1䨣ʕW^y;Yr>A[뮻.^zi&O\r^pƨ̟??7r%q'N?\}.$IkkkKa*1nYlYxrtC0F䡇wߝ;w1ߞ_.+;O?]R~ .,w م 8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(r𨩩f̘$yc塇ʾ}\!0mڴڃ6sL9ovnl۶L=r555͛swfI>UW]kH( krsNf̘M6k?gŊkk.g}v >$Iܹs$~`k[fժUi;wQG KM@X`kiiI&I;r!I[_o?(#pFk&IN<$ɖ-[贽n;(($IO|"imm͚5kvڴ6Ǔ$=X9K!{챬Z*zh̞=ٳsuC3<#r䩧ʡ+ܕW^C=4O=Tnpb1ؘn)w3~,YnIxf"k֬@0|+_)w pƘS .,S%@_B0tFՔ*xcL8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp.w iӦ~'~xZZZqO>9W]uUnln,]4+2~2W bЇRSSGy$W׾̝;SHښy2uԜ}e`;S$<@.nG״t PQ*ӧOOsss^}ռ/$9#<,b 0"MMM?'fɒ%oF򕯔Do2uuu=}gsG'I6m4 ~'I>vgǎ>O?`o߾o3Nvޝ{,^{mϟw]ٱcGLݩ==Qc|]]ݢ7|<SU5{֭[/y{w#;vȶmMCCC>3HKKKnlܸq?#ʹiӲ}rѭgƍ$IZJK0,b 0=#iii'?̛7/ۯΝ;yP!$=\~~/sG˗g.`ؾ}{q.'8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp\u `x]&NQ1fdҤIe+2o޼\uUǧzjJ0F̛7/;}3 #>(/.w pƈ%Kt{n…X _14-Rj#p"'(8@ p "cDœ'O.S%@ pƈ]*1^J2`]0@F8'(8@ p NPp8'(8@ p NPp.&LǧW 466fϞ=.!%2e 0dS[[ǧ>. (8SJoR]])S `t0a 03a„rǗ` or8'(8 /̛7/uuu8qbK/ϯrNȹ瞛N8!'OΝ;f͚SN'38#KEEE>cٯ}Y|y>嗿e~_$I>dyZEEE#^[xw,]4=Xnݚӧ.œ{I|;eÛ[o5J[κur饗SO3<ӯT?|~ujkųaÆlٲkO9L2%OOF'pB{x}-֭k?y{ygsWs͊+Lq?MzG:7yG:ݻӣmDO<=JYti_WYlY7 (#pi̙I+Wg90NhΜ9;wnd֬YYzu}TVVSOͬYR]] 6dŊٷo_{>9sgB"%N8$c=c{,]tQfϞ=e 駉'&I{v~ҤIzTWwcinnNkkk׭\2t~SN?L81sO*++sYge޼yyG|OӬX'ONΞovޝɓ'gԩ=R4eʔw;~;-[,7nwtPw{ɞ={$O>d=NΓO>5kb۹sgMӧg;C$ 6䤓N'~~sIKzUVeŊRbS">2555:F5kN{;$<'tR8㌬[./~}f̘38Ii0v<9rgͯ~wq9$˗/> U?׿?\z9묳r!*rH>\veݻo k}#ݵkWۗa(kf9蠃rW#H8TWW#Ȃ >tPvܙM6dF TTTSO9眓s9g> 4iR.zٵkנi]ve٩Mcccrʜzٹsg^}L4)&L믿>ųdɒ$om)~E墋.گO}}}L??׾رczQ5D[1{z.}ݣsEmӋ:QYvm֭[L0!555ٵkW֮]e˖?q|ݻ5kV6޳gΖ-[e˖$o8s[.۷oN;-~x~_eƍimm)ye֬YoʣSU5խYreVZqeҤI9蠃cǎ\2ַrfΜ9y;ޑsg?Y 0mڴl߾etkٸq?$y3IkGG=.ނz߾8]wSCGտ>Wgyc]m}aRvL4)^zi8lٲ%z]^.u7*n۶m-<>L1cF6nܘ??˶mۆGחnM:5O=HҜs˿nq:w7k |kC=4 .,wI]׿+yޖ+%pXCCCn˿ >g_|:YP01 ۿrЫ|K_*w@ #p NPptT17]0F={K80gϞrD}}MMM/wP]9۶m˄ 2~TWԔF#o>NtcϞ=~ a8.W~^0ߠ.llqTKKKKVå6&Bhí 6F3%vc9`A[[[Mk(._H|BΝ;wrѥ6d3iҤ477./R($ eʔ).Q. =>}0U'Os=W2]e gj$boo>^xadҥ] \ve?~M֧kmۖ˗[oMSSWXVCH߅jȃ??UW]\8sL/^$ynݺ,gT0aB>$gϞ!Ir7gƍҗd[fp饗cX6mZݿwimmQe=`e+1#t***RYY˝0aBnL0!Ir 7d…HDg? . ƍKYlYnnΕW^>;wmݖ{キ_^hQN9$SO={qOjIOytͻ_Uϟ_g%i#p=Wo}[Iŋ3k֬YfeŹk.__"˗//w)I oo>nܸ|͜9sreu,^8袋rQGooe˖<}aO|W\qEx'hv!$IÛ}O>$5 SEe@)S_s5;wnܹs $obҤI.g?›;|ݯ}ڴi|_OCCC֬Y+2~\~sae…{PVe[Qiҥ?я~???qyGԩSs 7dyGsM7n C=o=Gyd.䒜uY?<yߞ$9s7̝w>(I||}ݗ?~ & .\wj;餓_*;vhoO~O>O9sf"]zݦzOl#m UL2%I:ߛ &W^Ʌ^ٳg|0-Jmmmn\|Ź[s,_<_3nܸ|__o1'pB-ZO|ټyswdwٳg?iu[og>̛7/7xc;466"zj.wtGy][2~}Yzu{_S_='NLmmmv?Ϥj'/_߹' 6#p)Sr'IwZbEjժw\O7x#I2o޼<=יgi$/5nڜs993=ƚW_}@ʞ={v&iN׿w뮎 Z{x.}ݣs#IݻgW>l>dܹ;wn:,Zh›jkk3nܸ}osmS^}lٲ}N}}}N<֭ˆ }.UUUQG5du馛]6W_͛Ϲ3iҤ̘1#-ʒ%Kz_wk픪ȧ>A'C* %iNwY@OtB)g/d_\WI[K;kjj_aÆ30w}wYtiN=Դs\=,]4rhhhe]y7sw䓟dk\s5ٵkW_eng?~-X ,د}ɃrOmŒ3|;$ɖ-[|ߚlݺ$M@FPgl0֛9usVԱQqeϵͻ;QÄM;wn>QWW^z׵6$ׯo`>}z=^fٹs P;k>OĀotAٽ{< [!NsG9tq]F%HkqO[D}՛[nm7555@k;m>xDum%;O׼kys~UUU7n\֭[wc7QL–L8}yݍ©⸢_e=™0gΜ/M<z2ʤ{cpĉꫯO|9ɞmMsqɕ7]p iAǍ+Wݻ4iRm򫪪ĉkx'KҘMhL!;9//SmӸ${~_se&Mʸq`tA#oVX5m['g>Pe zz`.dչ.NJ Zԫ͛7y~ĉ'N8qJe[iU=;cǎrQH>۷ì"թɄ sY~5W8Ij;cO2eGǍ)mi1cF^~rQHf̘ݻw455ٳggCCo֮]Ӽ`&i p9i{mJUz8mm颽0hܣ w5My1㮞K_Wwxp|_0V+mLۣHץ-]Ww;TZ{,Cۈ}xi)iطmk׽ݣGM> GwKtTWSa=JSg!NmMq$"oAJ$MqDO"1HjSOݴtqM g5)bh㎣jJGޔn֯7<*%;6ma)T0Z4)S:򦧝z]z~]p8}Is ޴7mO׶+qVՈަRuI!P2C W1Q%Hձtt^J߻YwSzI4I:n)Sm8*بU%U65bu w#lJCҩW=`pӧb)7Q8=m3^:h8:) IZx]蔮yU77`5g(8MWi)9qN[fާ}uuKǽ-V]7CaXFu US:n^zMB⸫Vm}Zz8PlpWӤz sFp 5uW[|w5,*LjCeTwۆ~TT M:nT*]鮖Rp`.b]0u›B}3l#v;(ǽ鮽/ w"JM})(Fߔ1}sNWz YJG4u9n>I!@Û#K*Izݵ]=to S2:@›Itշ 7nQ/Aف=)=׀f waS`aGtun OW Ftէ!͈}?@C0x lE[_™owP3x [ 蟾6tק/zSŏ{RCte5kz]jD7I pJsFțHx][wlxS~ANsE~`n-{{=hAW5 4OoaN_}ӗs f#HAU0bB#A0 (> zS&)V0!N_߷ЧH6K2=y߲)Z01zbo/f:hcH2fR|Pc6)% AM/w B80}WIENDB`extension-manager-0.5.0/po/screenshots/_16.png000066400000000000000000000232131457631363100212230ustar00rootroot00000000000000PNG  IHDRr5HaPLTE888~~~}}}|||{{{zzzyyyxxxwwwvvvuuutttsssrrrqqqpppooonnnmmmlllkkkjjjiiihhhgggfffeeedddcccbbbaaa```___^^^]]]\\\[[[ZZZYYYXXXWWWVVVUUUTTTSSSRRRQQQPPPOOONNNMMMLLLKKKJJJIIIHHHGGGFFFEEEDDDCCCBBBAAA@@@???>>>===<<<;;;:::999555333""" bq#IDATxoTSwZ0TZ3ٝӎ=ө[i#= QDЦV Vb*VQT [b( Hb1s{ܵ>]랳{'; k-?旽?/}T֤UIQO=y?)ƿ{oOP~Űǀ|E"8PS¹f7kWujc cL懳sbP Tт3Yզ@#Y( ?9(y<?`q J,4TM'x[*5POo/ vk/oZuTW_~iwIknH=64Wo[U٪Nj4Vf&(7Ε[C1ёҌ)j'p^43>!UXiD2s(r(`LӀ"ٌ*+RB-*ñSJUہmTgV>QjA;p4(Dbl֡z-6WBt&4ntE ~tHZN#OO0BNA$߇ 8>b]&eH9`9vLzo+m<_y%@~mDLeѼܯ`; n0~Cʐ}Mph<[Ocϟ?dЦIz-bji aB[f3prRйyAim\q.<۠E>X4䜃]1e(~(upJ`w=8zjMK[-׃P MYI׶x;A| 'k&Td֤Eƾ׼ d7;-p}_c`4q` Wc:,R:GW״^eq$bT;A8ӄßp]pJISV[ ʧ;bmj|0-q]N܇xlc YL:}95-uڔ__I2ȾHK 3jt9_cGAu}L1qkբ ;P˙O!N~Ŵg1̰wL ؅׳y3wP4siD«)ZhcfUR`+sCII<;O2qx`e/11&ӒYyя>(eRqkphGu[;8ÝN18U$phGS`G>gL<<-!W" }TE+@?Q } B؛ɆY XV\"PQt @Qy:p}v4P~̤4WB$~EP64PADWTNc#Sq p)ĄfCgX?-\(`t);.se)^Yɟ3 pxnlzM@!N،No6Z,Z5)Yx*W̐q\Oy4̝gReo"l5 eJ&z{T0xZlip~Dl&R-kOG7ʥ%!D ;aM59[J ^hOG-]죉o FPBM]Xg6wjn{Kբ2r-\;8;+9V~Pe-WKiFʩjcޅ^!ݗ !Dr3yL*W[k,Rr(]rBe=('tQ Ry&b ^IU zDq@6e}a:ݸ$d:dxP=ޜ"wY*E0+Koѿ(O_?ym%uO 8uO,h#s(2T9Q"9'O3 nILNwi-!!fn.uq?[ ך>᱘vR//:!RJJnNC<a4.# 6<Ƞ *9Z~>):t痤^{ç CgW _P'rRVd*a^r+TPN#t}VroJ"m2cB QN p X̐3'qetV\ tܡGx8[ ^W06W0]TB8"ڬ <"b6l\ kcӎ`ɗȜogV漅Qz U?W7*Vg1˞v},{quLC&!B!NIG4*۽,frPw;͓?XÛXY8(xtNy>+Sr\\6|GP_Z ]G|2*O _Rz[#s_TͿ3OނwQVzm~9Ny67zg< `>#uBn&bÆAD1`|qcؼOz{Ṳ:mumմG E]]ڊ,v#qhHRgTk R9B>w:38?3ߠ_GdW^e9G;\{,U^ĂHJW&*,rk}x#xqGJwB!ʌhNX8_'P7[])aDWid&!5.A[K+F|ySYלf7vup~p ZE،@|:9|N6D*:5*[ BVlJ|눯HU9;vX{ rC;<(s`(E{Obu}r-Zy]]|ᰁKX]_DVZ>v4Uޕn:|b+G*_3r *7 jo06QFP6ʡ]{5׷X֗d#?UP [\b,skGy;Jj3T>(T(?3Y׷K﭂D2%"9G!㮀bt)Sy ji/L(-"MMxS>{k>;E/B!_cpe&~y!ɤr>lAi7a%eikB W Z'xME+dpyo`֝`q<_,Um"i2wǻ8.y̤C^A%wmYϺRĂxA}\Dru%80<+G\!btG}>"%;vlbYQRjrMlS32 M M)S@kc&(JD*B!B$?w%#I~Ij;HRG `8RBrǟB ƚYh 葧e&A;m1U;x4N4-Roa1:Upn=ڬG+OQİ϶aòrK@ܝ'ؠr1qh^dnsFU k'.s6ow Yp^*BKW-+PqF+BlDr'8ᬆ[\u>W5nG~mmuKf۴+s<$:G`ٮK=8J U9,B!x9 &LA5_x ,N̓o3$WK۳XzUԅYP wz}P~3W_xݣf40 Nh;X})g혵E"7̝gFMJAcf&û1XWr "[ mUduT2'o6ê]%|rްr6(~[MvmUd^զ"\DŽs$}\!4 @axoO 8ZGy.g3A4̍=[)oi?,LF ҍxxf}wUia;E~'|ʠ?'"ootJ1?*YtLX+GI&tU_/Wt>yszZ'";Oأ{4C_xmڃ=Ͽ l9ր&b׾j_9-pv)nV/ioDRvv˴tRf騮^0 !B!Hp#8`K/2KbZ̧ `sBM%c0@,nȁVLcTpÑZ,la#F iKb7d?7\^z˽^#xFp8}I소b㧀=!#rM6F|b=#n"vcPIq'5LCŗ'|ӳ![΁B!b[gD`X~-'؝3_n\Npܙo+n>nw3~.cG7ï-\sc =%fVVD>R7N@[uSO8^!$>bhLQAH8o%=M䋣5"k{lb 2S0"CIHc gDncCIL hFyt =m\imFyx =\!B!b;wznS[ŰDtCE2#jFsjx3۷녊hjaQǭNYgvou B'>-=-c1;:٭:`I;.1oo޵-.` }/7vyӮ?c^G~#pmt/gO [1kDvctxst|=*=e T &DU-nmlƼiKOyA9+Ȼ~( !B!B!H^b PryY":s=;{Z"hq$ܸ +d>I$\nK9@N*8,9r'2dǟ^HPB!B!DE>SJ#oc{_]v^_ԥ z?~{O_}%=%ȷ5(s͛c2\P{aFX s!{1{f}3Ӄ%uL2wSkSe^ESʽ_r9ѥ.2A]~5R[;牷ntc^99=s^h.9{CIWce fb#)CB!BLUV͗,1 *v]]SsbKsG@"z]}uwe/ȻmAE={+OF%|w*~^Z c!y`}ո" $r!B1\b&B!O"3I1}X>|y O"%r!B!B!"5ȟ1nT()xz?a-~ō&T_=Bds뒏Jy9ѕB7oqqO%;D3ZW Ew߳'13\(_A.}CD-< 'ñgBIhlz佊 G75-\[7ض_TY؜lX:FXaC2Aˢ=7l,5"ﳥ Ҍw)қc5-Nȁt#߆ȯ[tzn.Chr6h"7 Oz@7V i=7t?SoIެf>{h6 mr̓Z1*ھ%֑#?En4tslwTpa@ꭅ=F۷$;R:DnDnL5|C\hr ߘa۾eq3'!L%!BLxFIENDB`extension-manager-0.5.0/po/screenshots/_17.png000066400000000000000000000042721457631363100212300ustar00rootroot00000000000000PNG  IHDR)R?PLTE000~~~|||{{{zzzyyyxxxwwwvvvuuutttsssrrrqqqpppooonnnmmmlllkkkiiihhhfffeeecccbbb```___^^^]]]\\\[[[ZZZYYYWWWVVVUUUTTTSSSQQQPPPOOONNNMMMLLLKKKJJJHHHGGGFFFEEEDDDCCCBBBAAA@@@???===777222& gbIDATx훍[Se d*)!Fh22i Td$~ D 8oYcdzsywg{kפe-ɿ$vp>8|k|b*40ïFƀH? Z Q"h&iz$ ʹI+:uXҥ!؏)%ZBl/Bc'9Ep1_{3&gENF 32I?-[~ijIbb"އRDg4x2,Jr'3(6m aap@M2+T5V 4Zȵ/#mEԝ,V̊MnЯDMʇ=mVi]*L\cR0b!g !a?(Dx") Jʱ8̧\lYz5R ;vɼd@J4QLHKQZ7J)~P[h\\R<5.wMhI)pHUJ%`#s#I08JC %Z:RUt-B1HA(R*9>fPQ4։_nQ'^i\Hg =z.lKkhUr:dR,# 'aR@ޭ}` $S»?ȫ׎ƿe{'u$B^H# ,0SYtTen)0&E!l,QA*WPb,#\pcC ׭7:)6OQ$(yvk\ BôӜ\wG_.k !R] 2KaRJ,MxՑdR?y@g̹%.& 62p%'d+ 'C5b''qo ǰ)B)L5?pϮ [2 Đ2j6U9o*Zzia@`e q)Ĩh!Şd RŞU.X_xx" mpS~@)ko1~sScKRkP%.mW_Si8S|}yWVXSvOB71(oxmS?~IIaNyQ-p(`åqe]g*] q&0›z o7e[g,vr2!qƟ>;wrQNE fJ{$1{$:A.ܰ< %Ytqu!g]*a*ݣo+i)) U&LRDfͮl60Ll6j*((ؒΎ;a# NI!T4q(Ԕ޸@~*[x}]7)o/;I1n֬Y5k PEVUv_{P-l6+44Taaa*((ɗv\ʪ[zn<][W* -q׊Ʊ\R7)wJǬ!Nt֭_QF|{EDD(""BYYYnܸYq\tT:GnֻS%*.rM}\'v,\qcbb檰Ы7*jbQLLLKth#ur7n咆k+UTF.OnS&&u/tɑTv*::^BBtSRkG&:XqeǟӃmx)GM6\v'rss ocVUqqq"##9z>T|Ღw\րƆY`7rQ|pQZHY,ԩSFd2)$o~ deTPP8jU~~GI^gS0;7ۊ:UZ u*iӦkԨ@nn駱1͊WddytɤpEDD3L&bcc og dRXXdXЬVkDEEm9z^>0qY܅3~ *b-i qwfjԨᷭn U5.1112r$x㍺h"Vx1捯ũ/LWNyC_OO ׯ^U^l6[Tw4f̘"hmVƍӳ>rw̙jܸs9++K͛WiVuIcƌܹs5o޼JL4IM6UzԵkWgS0 ;v;PQ&//Ogʕ+uas9տ 㫼>GCoUV v{*=9AYMyCJ NyT.]HΝ?ù~ȑ֭c5k4p 8@r8mV/bBIoet%ujѢyٳXP=d[n֭[%I|f̘(I8=gdڰa~Wo1kmڴq7Ԗ-[83gjڵ1czO?4SfEFFE+jTZ#I*ޔeǎڵkWJMܫQ/^ŋO\\=Zk*++K!!!8q ]s5&qt?kڴ)c_AԩSga1 nE]7xC?RSSҳgOIٳ7l٢9s(%%Ew_84DGDDD?3/3fN<)}s=./i.TY p< ]*+xG#xӕ^N=Zpv]6lW\lbcǎ͛5uTW~tWN::qℾk[A׿:($$PhƌjҤqm޼Y㏫G:thoBBB4biFGs=W,aaaz{ֶ!C(22Rh"]_~۷GKwvi…ZxM'N+\~咤+Wʕ++*[aaan߻w.M0AO>$i袋 < y yj_4B5j믿^i&IѣգGmݺUk֬Qv/d2)??_W_}:oFfYw<>oYGՖ-[Բe"ꫯ$MUvt gS=u\9R9ڵkd2iѢENObRXX|ݬY35h@{u= e%qp 裏p{eTxI*wcTW9r: j„ zWuEzg*tnf*OuTe "UM>]Jv_Hٲeˊ,ϝ;W֭E]kڵz%n"{uשnݺڷo_/-X@۷ٳUn]]uUTJJ,w'xyի5p@]q3g֭?_˗/wU^rz-ͦ^z@IJJ믿 sL&uE%Iח$uR1e˖-u]wy抏WHHjԨ!IjР$iX,Nt?Ν;լY3EGG]vN;2eO;oڷoaÆI^uYl矯kȑ/dXtEI:޼/+s*??_?s9뺫WVf͔]O8'xBǏn׳>D}Y oUHH~Wo1\VƏ+WW6mTvm?~\?-Z})==]7ǟ1wڡ[ng;vX-o\cƯƼ)2În6bLnCo*0y=\SNk7_SU+t|rrxr"9rB1BCC5vسBGxcr>׾}{?^4~x`Mf͚I:=8СC}\uU|e,:ԩAVZ&MhϞ=8p`MOtzH3//O_F }7%ddqyymsy<\_e\_v_ŶRB ZJX`vvq?RP:ŢHS$}wW 9r 5j(Z(zG-qx իүo rss}5Y2w*_A?VeX,;w7'44Z7ԩ ?]c2cǎGQZZ222.VUيxTY*+`7ŢѣGKR oݧbccf͚C tӧO0T^^L&Sx"''Gyyy>ʯTJP-pP^_e\lrήM!^Saa='//OUm eBU0C?0xc*""Baaa tzRi&ŢBTNX, ,%l2F 6Vk &PLFr@8 rN;uT@dX,:ue *VY  q,.99982YV]sjHb(//7@16MيPxxL&$f7P _rN"X~~>7@5F*?Gp#sA9 UNNeۍ.J0BHH .ADEE)??+((PhhPp0DPU|?gpZmc2h9~^8-X p@-ԃ6)l6+&&FA1bQ^^rrrdZ.`o?Rtt.J*66V:qrss. ``h.p0A8l6]8猘K+|3"##.y?p٦ s8~~2&I_|Zhȑ#oatyT*y撤m۶iĈW^~eծ]]wҴk.?ҥZjDl6>|X6lW_}\K4LhhNo^5k,q;w*55U1116lN:*|/<<\CU=TN?tR*,, @Yp o$Eqz뭕V7o֭ /PW^y$I2dN;v\:v޽{+<<~ڵfΜ[T.uڵv4x`իWO[T~aS  ݮ'ߦM5kYֽ"""d2t)O>D˖-Szzz,YD .s ֭[եK۷Ϲ/PK<[nu(YTTE?7@#A@ؾ}o.IZj~ifIo{15J'N0L\}ׯ$~ЪU~L&5jHݺuS˖-5dڶmC^zI{)q_M4щ'|v Fѣ$͛=:.|=zJJJׯC:}ExpOe;d2.299YW]uܞS5*Ymly8[x#;;[6H=4*Ԯ][{$ڶm~իWO#Fжm۴}vy睺CiԨQ3c6'Zjx#CSZZ;V5E@%JLL$tIJJJ<1i$îj*;;۰z,ݻw맟~:uڷo&M\!*Y 0bz뭺[O]N@Ԉ#]\==zZ*3Nn5khΝzt饗*""¹nҥKk.ըQ#>#OuI7xVO]TK,ѣ>ŋkӦMZ|JIҀ4h zھ}F<} SO=Z֭Ӌ/hv٬'xBW֏?_~𤋮k-YD=zмyqF]} Ғ%Ki&}jٲ맕+Wjƍ6m˵;ZigXXy}ڲe>3g+,ݻuWjJHHPZ4|oސa ݻw{xǪ@DcW_}U>c?rF|| j*IRAAf̘_1c4h . Z2]veN7իWƕn_|Q`5j(=3u˜-ϟO3u￯e˖y|:uG}T=ze]K}Y-[L={?\߱cG5J]ttR0`NիWOOddsx 'Pll4hd2飏>Қ5k4j( >RL&Zh Tyj֭:zӕ ٳLG*##C'Ovb|P>vء꥗^k9ZdvYde˖i?5k,h֬Y:p~w-^٢$}vڥk:x`Twӧ3i֬::x!5x1p4|pժUKjRrrf͚Z}UHHokȑA5UnnWHHVy綨(͜9ӹ|1Fw&O'xBu}Zbf4h jts мyԬY3;ӧ9Ru}Hk#KR6MǎS:ut۷;C̬ɓ'5qD >\\p$iΝz}#"$$9/~eeeVZg!$Isϳd2d2fU굼ߡ"6駟jԩ:tz뭊 $&&jjܸs̛Fi3f̐$gCxS>t2O>2Uȹ`I&i߾}_ob]Tٳg/Ν;իW/;vLf֎;Wz=I ?+ݮmzUWyeVZ)>>^&Lݻ@5k3ӧ~M5wƌ2e 559ĉ./ o222aynwygU>3ꪫRΝlպu/sκ⋕oƘbɓ'5n8?ȸPhӦM?cǎi۶mEz7uwhȐ!_ׯC.Ӝ9s<>OFFڶm .@QQQsqխ[W!!!X,1c;l6s9KjرKUvm <,k)33SqqqիtmyEqT-Z۝m9>}hg 0JZZҌ.#`хhUJJYk&ŢK_~ӧ;sLL;~[ݻ6mUVi߾}zըQ#W͛7fӬY [լV 8s.Iƍ%ʛ@eTRRJիȶw {RϽqF=:t\O뮻tIkuuO>Ѻu4p@3gƍ&MhРA6mѣG5c mٲE4vX=39s xbݻ:]u-0aq 6Lk֬w}WdפI9rD~ՠ2TV^ymqYx6Yvrc0y=\SNk?ޓj8z饗3%edd(55Mc ժ#F(55U&IoTنСS4ٚ5kV]^uͫc/_>*=R6lRRRuoɓ'"ʯf͚Z~}GI'%Y%Y\mg^\vcY.rYW|UY}S}w8ؼy.RIE" 6eY`)S #۷/k׮եKjJlƍW_u7KnCYf?~\}*4l6u]:<:СCZtNZO猪l(l㩎;;ҥKf|8@QК5knP9?Gsb1 9#// 猜K+|3VN8at~ĉZF q!Ή'ktE\+&&F bQ^^rrrhyD9XVeee)++RBp#s b ~N:F5j]!pFBK0eؽ{wۛ4iRE`;3hJNsW/Ϗ`_5:LB*Dļyf]Jׯ;Ciii\GQǎշo_CGe3! 6B$MnТE}v5h@?,EPttyuMѺ[4w\(իz*&PQ)l6VZ%P)BCCZjl6{|\XXƍuiZxZhQd8M>]7o… Umǎ۝\`Ol2]=.BOfRJJ:f5khÆ 6mEEEiժUիs^z믿Vll$馛nr,7o^sׯ__w֒%K$ɹٳ=5IJ*ꍄ5jQ?:vd+ٳƎ)SW_UJJƎqMs|A:tHoϟ/rӉ'M6l6_=>ߣ>2d=M4I>N:'|R3g7|#ͦ#Fh믿$I~4i޽{դIjJK,aV)`1ETT *(S]pڻwm&I:xY^Z˗/${޽ǵ^Z}N8:hȑ:u{=аaCuE=sݺuԧOv֚f 8P=~'IҘ1ca%&&ȑ#駟j*,,ҥKfk&II$FN`!pit PddG'|={jٲeZvKEߝO<5koK.N6>sۇ~|?+))I<N͚55m4M>H}fRAA.5kL;w֘1c~2y+::Z .C 6L:wo~MۤIݴ曤M>]ט1cJ=wvv|MըQC 4(C)77Wm۶-q٬'j…7oRSS$Z  _r֭-Zm۶ڽ{OW_}U7pڴip;[os瞵~ʔ)JHHٳմiS5o\7vn:t:լYSaaa{]WIVfΜgyF]vUzԹsgM:չπɓ'kʔ):$ժnqW35h@9995k,bN:zWkܸqZxGǛfᎩ-~Iҁ㏫q ׮]1m4f=JHHgI5kT~~$驧… W_i˖-԰aC׵^lW^yEFɓߪTwlr캏8Dza>zfNdeeU@bbbe@p [VTFoɓ.cetbqSfM_,.϶3m.ñ,e+lwy:o{.T*ed]4ydhBuV : ٳGiiiF/9Ijٲct֭s?3ngo5n8͜9S_~-Z$I:uVXO?dwfG5q3( Y|fϞ]db$Yg3<7 x xi֭Ζ7s'-l|O"e=Uvm_RhhF~XSLQll^x뫯R:u@ #K/KmݦnȺÇkͥoY=N8!I7o{9M2EuQhh֭[KG< 2",YDӧOud2w3͊$۷O6m̙3n:\R6lYx񺸉G_~E\r$i˖-ĸ-j Ǐf驧e]nݺ^ƍ5z*__p7n@ypp4l0Kp+33SСV\Y~6mҦMkƌS*ܫ PQ8^!!Ajܸ"9rD+VдiTXXzV^;v8~aիWOO?O G%IsdvM2ŧL:էz hӦGnf 2D+Wիsiٲe[ݛ맇~XݺuO?#G:Ӷm[-X@k֬ѻᆱ6m8}j׮syZvm:Z-YD}U~} d7-pƍ%z?ڶm\U^=Ν;WnPխ[W222 &[nKWRRz)j5kn6y 8A"""Bw]vI&N{s-]T۶m$͙3Gsի_գ/^ݻwKF+Vk׮Z|׵r+ގyC wpDݺue6 R ҩS] a5lЧu /0N dr^d9$$ī |> -pādu~P9u6lu֕kK.D~Wj7_dRSSկ_?IRNN/_QFK.QBB P_;OQQQ]sӦM;uysw}>{V͕Cl6kժU^?9"Ijݺ8,fɤ .@I.8w}Wb mڴI|ƏQ}'OVff/^t|X/^ltYS.R%uڝI7* e2Re$%1p1 @h Z 08#T[@uAJ@BJkC@Apڣ#@ #s8A+*?G8@EpA7d8j.YA \o!Ttݙu Z#)O+Z (,,L RUN"۶mۦ{Lǎ3:ŻW ] ~HR-]/<<\6lPݺu=?22g4IJ*(/TG1P%IӦMƍ/,ȓ#Gb M6MZ?z駟;!/CN (11Q4w\INNnה)S*2/Ѕ5V8~M6ۺuk͙3Gv[l֠At7+::Z}s[XX 뮻NIII̙3K:*$p ZxRSSK=*ANٸq[fȐ!j׮믿Rrrs[aa߯aÆ)//OݺuӘ1cuVٳGsUttY]J;JyN TSٳ]vI&N{ǹ{|={lC-[,5)1PYe,pul6kǎ%SV-tMjݺUvmEEEz*iīpL&L5|%%%iƌ6lNIs 8ZTSn_~{8Nv" R)j_& jL V`F\ƭ0)BI5Ufd)sHZ*RBiHH={{I?k^zֳ~k5vgꡇoi+***OTSZ~&MzJ2deŋUfM˪Su'xf_ 4kǎ.\ OWTqߌ |ye̙ڷob I??#IN￯aÆ)>>^;vTRR񉉉:x֬Y *-iU{T¶uqŋ͵k999wp9U#,,wO>ч~X0lf{ 鲤[ o.ZmYm˪"ʛOa;?${W^]!EEE)**ޥc#08#08#08#08#08#08#08#08#08#08#08swdfYÇWUn]}Gш#eQ 6L!!!7hyzzڡ2*___xǎw.I -힞V͵yfc.\D͟?_^QFGrqq$]vM zk T'8vT^=IҥK蘁H|AU,Zx7oxm߾]j߾^z%WoA@V*ܷe˖ZdzQnDuU͛7w}>|Xd2`yzz믿VDDznԨQj޼F;vXڷo߮m۶SXXf̘a*T'́%SzCiU$iСܹƍ~)??_ .lzx؎;`ըQp?\TFF̙luU0`MǏ+--M'OV͚5վ}{{ VӦM۷g۶mQ6mz+PjҤ6l('''ZСC(CQQQ}C%~Ip~anܸWE&I6u5;UߩSt5uС>۷իWwݿTk8\|7tI9sFEEE6(L&ĉLSAAAo߾zx]z U5^R>}͛7@֭ӤI?YΝ={ػl}Wܹsn:|8ѣGڹJ ]pAS˖--_*O˖-%I꟔QF^z:xI̙35j(EFFIIII>|x~rsso(,,L={T^$IW^ժU(77UNj-iU{T¶uqŋ͵k999wp9U#,,Lc?rllV^:Ymᆱצe6+uLAH,醤V› "x[V۲ju귵|'#xǎϟ/I޽իWc222~zEGGWei*ի6_s@cGRTTKW 'pۻP xp p p p p p p p p p ]/lս{wխ[fߑ#G4beee٩:`@V*ܷe˖ZdzQn?j֬.\/RQQQX}g Ǝ$IR/SRDD=!y|גNij׮H͙3G6m\\\l?^sٳuI?խ[7M4IWvvv\ jKfY;wTNNrrrn3|%$$XohJMM$mܸ JWoVɊSDDڶm{[Wl7lPnnn:r*TN5UXXP9R{W1jՒ$LY`$KKNN֔)S:˫Ծiii2LTSٳTF nZyyytR\|Y[lĉ#www>Vn$vtիWO-[|]<-[$eddٯVZԩӧOkر/SjܸqZxf=Ǐ맟~EJ`qK`^6mdu\vxstw#((hwI_e4p:O>ч~X0lf{ 鲤[ o.ZmYm˪"Jjw'phݻ^z:&##CׯWtttU ǎ ({ I p p p p p p p p p p p p@qvvV5m믿^qcccիWJ"""rWaUZfXiEDDhժUrpp(q-֭[W9~"1PJJ[ޖ픔mڴIoQa J333S Ҏ;l7n,]r O@qxӪURz*Zvmۦ(=#$ɤA)>>^;v'Jѐ!CJ˖-ӓO>+..Nv{ァ:uz;l6Ox=BBB4x`=sJNN[oUb[_*o[լYSqqqz7-Ǐ=ZߵeMUVQ榍7*88{X.ƀjϞ=JHHyW*XHLLT&Mo>p@\R׮];wNzyn(88X&MR>}MْCs7n|-\Pfr|۶m`={VVXXFiĈep'c̙33f^z%%$$hԩ$-]T-?iF3f(VkQfұcǴpBIդI_}UF4r*b>}wCi֬Y6}ne6j6/+I6l?RaEk׮Hǫk׮3f6o\j{,~Yb^^^رV\is;# O>fkΝ+5IIIѢEQoy*##C7nT^^5`M6MǏWZZ&O5k}16lؠG*33S˖--[gJHHP˖-ˬNXjN84-^X+Qq4aլYS_$Iݻk޼yرc_gbbRSS%KnݺjܸqاO޽fܹwyGCU``wRǪuVfvܩ8qB.\{Xr~_'$ 0@ ɹUU9p쨨ʎmذtȑ999)55ҖCiӦ%wIIM+5uo[lR=~aVȸ={yK4i"ɤ9sXu+//ٳgڸqΝ)S… 붮JNNV\\vܩkj޽%w7ݏ+WhժU4hf̘=z_.q[@cG)n+iޓ̅RV-I?-r }...2LrttTaa=??fM˖-ӗ_~ ܹs2mEݻw|||Էo_EEEIe(33kznu/_4L&]z~w{5*44TmڴQpp"##o>=cﱴڲeKAUU@Uj꾾;s挊l $???8q~iW=}B0LjذaOXTԩSkذaWǎd'11QԚ5kQj۝kmѢEڿ̙5jhѢEZx&L]v?NUiI͛'Iz˗K"""sϩm۶JrݵjRNb m۶M{رc-s ݪ/_" jժGy䶹6lh3?Gy@rӸ%wj/^Jضc:xxqvxҠ+!!ޥ$;;4ڿ˒nHn.j)Ze-[~[+6W bbbԧO:uJxfϞmgU^tEcCCCմiSM8ѦK.ٳ7oڵkܹsꫯ`p SN5kL&nݪX9rD^{M۷׻ᆱqQ3uTiF}"##e6+WHf,X WWW}G:u{1 :T+WԠAaoՊ~hrssӢExuI7o5kԩS許cAz'`=zTjԨW{<==5uTL&͝;W111jԨ]viԨQ8p4uT8p@.]*wz/H?j׮]C=$777IҲed6K/A#G˗/YkNN"##[oٹ~o>#ڷo/IUF[o髯R.]ԥKPv,}$)((qkԨƍw}j֬zJ988X&T.IݺuuEOk׮iܹ:t^xժUKyJ҆ t9 8kVZ.pQFT=rttԴitE]xQ-ϋ裏;>*2\ՠAIRVVV']|YջmZh#Fhٲe66mڤN&MܹsUPPPnŦO^{M7m_-u UJJe2eJΊd .HO@TVoo;;;VZJKK_)))ڷo}]Y rJeggWN>O?TomΞ=+6Zd;: ;+G|}}k.ݸqC&MRݺuU~}͘1C3gΔ$/wK.)33Se|KSO|WV``ڵk=zX>!~]~:Kd5hb?-I*ɓ>3+j޼4inݺY&Bѕ+W|r^z׼yEUj޽JJJҋ/h$}۷q5h@]t_Ad~鲳5e ӯkZsyꩧ4qDPSL)Ů_Pz?Q7nз~8I?kiС>|}Q:uJ{… HڴjݻvP]~]Nv`qK`^6mdu\vxstw#((hwNN\Nرo{eؕ+W4em۶e6]`ڿ˒nHn.j)Ze-[~[+D"1[G۷դI׎;bŊ ?ytϟۻ` Lb `p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8Gcg)))%.bccիW>~͚58p`svvVJJ5jt*ڶm{=sw@U]ZjUecj۶mС|||tI͘1Cݻׯ})<<\ْ$٬?z⢭[jΜ9駟$If͚… /%I2L Qpp<==_+""Bz6oެ;ә3gQ+czÇk:}$&M{J|I-YDڵoՊ/qlGGG >\ݺuvU w+Tvf=Miᤤi۶g*66V SըQ#1jҤﯾ}QF9r$vڊT||v1ch͖cΝ;kܸqׯpBfKM>]ݻwסC4k,҄ +(33S-R5&,,L5j맼JFppp6lؠG*33S˖--[gJHHP˖-%Iݻk޼yر٬;w*''G'NÇ%<4m4?~\iii Xh^ &[ё#GTV-uIaaarwwӧ5vXKfΜQF)22RNNNJJJ+dRÆ aӾo>EFF]А!CtuIܹso+..N.\P||UդIci̘19sƎ((!!AgΜ@ո D}ܒ;XM%l[1YW]8\;] ڝs-l2$]tCuu߅VKR-mYݺ]dZyO*ل+TG`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`pN..%%VZJ7gggL&]zҶfmذAK,1D=P~~ۦm۶mo SOeT/<_?%P!8vVJj۶mС|||tI͘1Cݻׯ})<<\ْ$٬?z⢭[jΜ9駟$If͚… /%I2L Qpp<==_+""Bz6oެ;ә3gQkd*2vbbv͛SDD> }Z jٲ$]{Vttty͛7O;v$yyyl6kΝщ'taI?O;`M6MǏWZZ&O5k}z,-YDuUƍ˼М9s]V>keݛ(((;CC*00Pݻwj8y$<rII4i"ɤ9s樨H$wwwIҷ~diΝZv+Ijذj;//ORӦMK'==]yyyn.,,դI2ǾsXRME8p@7nܹs5e]pᎎT_8vf:TyFUů\"I0`233o_XXPiFԾ}4zhd2QcuڵRYnǾqF?}uoDZZ ܆W,%%ٹ}U~Pnn엜)S($$D:tΜ9"d2O'N*:vZlSɓTjjbccm P:1'o6Qddz-Ͽq߫u:z$) @_}nݪpsڴi+WQ...jР*tXm۶M:tN<3f_{Vo>+;;[O >\ݺuvuW / t9 8~fY6eݻպukk׮]ڻwjԨ!???Ic=5jСCǏk8pׯ_۶mpٳԿ5jH#F S@@F~Y: 1KjŖ&.mnL>]7n\j>}h6KΝ-٣֭[A...jٲ٣|ٳO?{ƍg_~ڰa"""OY tQeffjٲerppвetY>}Z jٲ',~W׿UǎSzz}ݻOT<8ti}z뭷JVZ,6m߷oԬY3nZ|e"m۶8wK[n0a|rCb'O$شI5j$GGG}7//O)))jݺ|||lٹsGQ6m{v׵yfm۶Mqqqҥ;vSY&/dP]/H~~OcǪf͚w5FkTڹsҥK:t萆 ˗/9a7t…PVgΜQQQ+e< rk{URR^|4MݻwgN8ao ֞={,m_ǫ]vjذ7n7|S?)I={BBBrss~zM4IO=<==5dȐ*on>}ش%''ۄ!ǎO?Tgo߮QF#I?~uU9rDoN:%ɤ *##㞮i̙;vTPP9s(4nIڋצ+.^on.^{.Ȳe6]`ڿ˒nHn.j)Ze-[~[+ JBW p p p p p p p p p p p p ?ԩ}*00PM4$>}Z;wԊ+m =DN4uT۴hB-ZP~4emٲcFDDk׮"eddh,auk2dM3< hӦM8qb*,,ٳgu1EGG65kW^yEEEEEZbqY׿ԣGUy(tIf͒d֭[#GHk}zw5nܸ; qV^(9::Yf0af̘Cڍ7n뷿(gggx.,wSll&OM6Y= Ԏ;n;ǠAʼj:b;ԩSe24w\3FW^^򔜜QF)**J&ISNC=T?JIIѬYԶm['}X/yyy6fuIQQQ*,,T@@@VJJMhM0Ajղ,1iܸuʕR.F+;{W[*&&ҾtR-^زdm߾]5kT߾}|W^Uaa 踀JMMURR:uT/_.oҖ&޽Uw-IBbHb&( ʥ R @i]p[."m)VV )4aPn"D B"!$\sd!3Lf&3=gfy;|If>]Ǝ͡ڦ32{;=#fʹ瞛Yf塇7ߜ &OϜ9s2rȖk***r䮻}ݗ.lASbƬYolll6GydSVV;^xa̙fSUUUUQQO~$>`:TUUm7noۖIdÆ 5kV^8GGٳgwxɓsWO~̚5+{g.œ~{s я~4|s{$Yxqg}v96ǚ3fL'ơ̇7/orWiggyۼMr~9#s'y7:th&Oܭ|͆}͞=;'N$932wtx-ؑ_,Y~;7|sr7w]^|̝;7Ї;a񩧞}kYti^}\wu`G3quS<II&mR^^illܬͬYo~{|cKSSS/^gy2mڴ}6h7o^yMeƌ-ǛfSfڵ[Y7n̏L>eP H|Ϛ5kc~媫t_e^|.k$7:I̛7/_җrAe]w͹瞻ISbVe]\xᅹGG2dH ɓ'no-˲f͚~ޜ9s$zj˱&wS?:;sG ;jϽޛ/)//g?,Yz֬Y lj,//^{ѣGw7jGrG+Luuu׮].e)oXjUJ]ƈ#`&Y!I}m7z5z5~Zk}k3 UA 'N;-SNرcԔ^z)[nez@V^}{WR1@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp,utmܸq. cذaY`A8|R@?2nܸB :bĈRPP8'(8rΠARYcק.֭KCCy9@/6t.;9NuuuV^L vVx.쒡C@&***J4e]RQQQ@#腪K]B!jB 4%/Lb զz[ QG*{G_{|+_}ݷs C׾NÛ$s=sWĊ| l=3IKl7S~b}-Bkϝwޙ^x'tw8ՑG8}\UUU>OOS^v}'ON:qM6Rév @VUUk&vX6nܘs??|$ɸq2mڴx9餓2v\r%B éPasa7y睗ŋ3| ></ηwyy7sa/uV~8}>??ƍs%O=:3g̏=:Ilٲ7>rz^{é8_rʬ^:ӧOobgٛ p?>;wnKxӬi˖-˼yR^^;ng @|'yw> 3gG}4Ǐ߉~>p?yoF8x6ϟZ/SNYti}ټ?? {?@<_ܭޚ[ouKw5NQOTVaf;^OGu4LjKߚk x89眓%Kd?~|/_(QjՓ ǎZ詎S=30aBfΜ3gf„ Yxq**>iӦu{lۑOks=t6Ν~Ŋ;^I>;LcccN<[l~Occc뮝P!}ݖVZbEĊz/=p^x!wqGN:\s5Klٲ$QGզ~k&UUUZ&3mթ>@~7cǎao1,_nӦM2wwq?=3ɻ=c뮻 /B `+X 8'(8@/TP^%/8кuJ]B!jB 544d%{իP@#jkkK^:;ПU^mmmR]]Ar|[O]]]֭[ khhȚ5kf͚R P8'(8@ p 2v뮻NEEE YhQV\Yz/=p&I***r!dv+Ae.FC9Yyyy: !N pm6jԨ|)/r 9ڇ7{o{lܸ17nc={キ|sCf{ 6,k׮O<$ͰaúnĉNmmmjkk3dȐL8eZ… nݺ :4CO^8}TUUUN9q1bDYfM|?M}}k׮ͰaZM-\0555]Cp~ԧ>գkF;.MMMO~*/o~}C-!1ohh#8}G$˳lٲn]_j8=f͚,\0'Nl#ͪUvRu9p]v%I޴n;rR}իp.F544dѢE›իhѢCE~%[*T'(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(8@Uv|G>3&I/νޛM6B3~`ȑۿۖپ}7rueժU%j o^zYxq`N9唼}_+BO( sqsLƌ^{-W\qE}Ԥ&R t@}M̙3'k׮|MMM̙$9#vjm@pyo-Zis{N sqI$]w5Irʼ-Ţ@t$A$y뭷4o>(@C%IN;TWW)K,ҥKԔzI~q?p-Zv-W]uU&Lrn„ ꪫn'@A p?c,Xv-]tQ˹.([,Xne.XLb Ϗ 4(3gls@O455u8I%K7Ppz#W^yeKi?|j%.Cè:R8aTPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp.cȑ?|Cѣؘ+Vd?~jkkK]" @?0u̘1# hs|ܸq7n\>On|UtEy˿$#<{'/b˳~ST9\|ŹkSOb=sa[f̘$~n-'xbo.O=T̝;793hРW '>O*<@/^4iR)?OfĈ9KX1@v衇&Iy晝ijjw88}TEEEF>e>I{01@Ԕ[2$3glsWDo׿uDm֬YmiOawuW6mڔ_KM+ȴi?k֬/~U tbݷl+Η:ն^孶_Ǝ{;Ӄ/4RQߪ7lؐ+Wp>eʚ5kjժ{jkksꩧfԩill_+VlǯfȑYzuԠAbŊIN$_t0Lb =illg)Sdʔ)Yvm駟.Apz(O?tO$'N{Ƽg.XzufϞٳgLb Pp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp.!C6WUrnw$:th+KЏL2%_|qɓKX ]~bʔ)  8 p|3=:IK.%[IO̜9sӧO߉=%'ڇ4չKT ~}n01@ p NPp31@?~aÆ8DU*~g3<+zJ~⪫*u V8'(8@ p NPp8'(8@ p NPp,uE5x 4(>"`O]]]6lPR^B:NEEE.vTWWgРAICCCK v7RYYÇ 2x` SUVVf.(8N+ *u @?{%VJ`K8'(8@xa;6SLرc3dȐ_̣>^z8s̰aòv,Y$sO.]Z-l|Sɓ>|x>|yG,% giӦ9>r~93̜93 %Vho6mڔx .LMMMFC9$SN͔)SRVV;S?}w˗/s)䷿m~$I>dygZYYY zƍ3wdS=3կ~Xs/^x!oVz>|x?_x-׿,[믿;#O=T.{yG 2q5zڄ7yڴﮆlܸͫGc=3kY3w6Mk=\͛$ Cg}$ .ݓO>c9~Tk'N̤I$Ǐŋ<'OSYY^x!@cˊ+z\?~{6lؐ$ysǶ p,Ymڵ9rdF_vkK{8= /!v'NL=E#lK-FqKTUUig`蛖,Y?<Grwt#hi}|:uj-[_~y6cƌԩS[ڗ;3$mz=ܓ?<'xbzoN֭˦M2v؝ZP K.3`\zg>=#c=rI'_b k^+u@' ?RVVɓ'c1Y :43fM7ݔum:L:nݺL0!թK}}}.\ɓ'gڵyW3t <8ov(3g&ywIO>9'|fmjjj2||K_׿Yfg lAoV/kum[m[;EuwŨ,]4˖-KUUU[.K.ͼyr,}gƍiӦN0aBz뭼[I p&MYlYV^ѣGѣseŊijjʡ)Sd񩩩iG{لuuuoMMMYpa-ZfС0`@֬Y ?AL81{W&M_W{$ȑ#zRѩAeŊ$MImۿZ~al)hQnS~6%t&W_}u^y啼=E]TV8;Xmmmnw@ϛ' $;Ammm -e]V2v(8@ p NJ}}}K!{-RWWW~`K8lذ;U}}}6lP2SSS#vԔ ,uEАUVe4hP*+}DU__:=onNtbÆ ~ 8MMM.`zn_@_VA{sf_o/ ^cccKTå_8MMM Ь~veiN:{U}m 3ZSS!TME ;Sؒ7ڵk \YYYake3t444^oرyK]F!l^^cƎ.ی5j'UsÆ O?]2vR@8'(8@I􉵽>_rrUW??7ks'&IΝ*3fȴi2rn]jժ̟??7tSwp%CPK_R.┗k,w}s%$I~,[lG' <8ƍK,_<6l:thnᆬX"]vY\(:묜r)=fȑ?455wPe]!R)++Kyyy6/wk3x$ɵ^ӧ@7p 8p`wɼyrw]eee.}Y~}nq=z9眓C=4I`~]諦M$ viӦ*^J8;=׾I%\Ƿ?>\rI.Ybo~痺$7?9>p|ĉ3cƌCK.$9䓳{{^z=wuW̚5+{g<uQ}y{ߛ$=ztns=[[%=ܓOӹ;OOL2Ygi껭 *Ç'I_dyWr'f„ ?{9眓\wu93r7fڵ?~ 80_Wsˁs9'vZ^^y(&L/6|[ʜ9srfʔ)rqǥ.eeezmھ2dHnݺ.}bC ɹ瞛kfsLÇg$=^}GI}}}-Zd֭[^{-wuW8$IcccϟUV^2<SQQW^y%MMo2f̘yIG}4ׯo3nVXd[2m6/79}-mu'gرIY}g{MRebXVVV`/1aMM{^^M/5kִ?rqǥ)F$/7\p׾n-iӦ͞{fя~rö /wy'̍7i,_ͱ_=GnslwϺuZ>δSf2\pA.Lg?N}^YYY/k.B͉S;ڇ<;:}CCCCMEE.ͽ*ӟt5kdٲes^5qĜs993vL:53fh9w;>o|y뭷$I,}믧!gyfzuo 6d޼yg?eK]]]ck?mرۼxgN;m5kV~dNJ.8 ͯ=rڏ7Nyuӝgotҥ̻oš>m햆TX:80hG8yFw'2wMGZ7IɌ;ڶ_^;}4Zi{uBucb۾-}-;D۵ަݱmo~g>DY:i?dTΒ)Bә;fI\Yn>_IuDS O]w59&Lz4UӾM͚5&mW֡MsclC>i }ϛV}go~=iMsp޶]=pZj`ucfKC:zgG2;Il)S͊8*ٺ^; JЫNSj;^W=pϷa>i?&X)X=pڷۚ^8]-3޾'N6]ߺMz}HN9o:j՜8;MOmgG΃ӺM&3n|^8󇕪:O[׍]oi&/(vJJ:^a˅D`VmۻYm(NrQI XkT PùǤj1=oB26zj9UGk 2N..=TJ)?WFۨ~m_6HR5K=:ޤtp8pz5:&7L)m+lI|o?r"Z8ϭ;]@{6sZmZKn_ooFO%F̊8}3̌Aef(TskI)VtXqZ}"'x,2:{o-LϊG|4no-RόY6zf؜9v48VFؙ>@3Cș:FpFk3p̙*ޤ7t}jWLHqf\_{o0#&gĉ YI"ğ!f듮ț\B ooFGxb8|KǮ.pܟ|_VƕG7+ 2<2%HDE %ϩ"ۮpk^m9pu 7?__^xWG_?*-G̚aAYIzЋ>ә}e]]39s{~9sn[ÆQhe.Ι3aZݼƏ8_l3pJzl 3 Nh %#G*{=^S^g嚦U ֦=5jI3O<6qzWHں!;ue}'ۺ#IxH$×^ ;￙uUk||ɳ䗨f Lk' goF`1y- =1fie!k2djBwK! Lh2CZm_Apw?qCEu5npkܖ:&n6o!eEjR/G 9DJP|]=%#w'_kPUیahL+;<u*-dXp/2>& )))")geL.|r+1ַX:n|zr7o?%]BӼh瑑c ezƭ:C'$E~M:z[1]Y1-4u@&ҺO@ \H꧁V }'{Y:w5#Ux.\<|a\ $\կF]mMDk !{EK?pa3s:a޷~ç_[|## a2Uխ*ƥ8E3,(PL;w''>7Vk,Υa{};otM~sPRQpӤPqNuٓ,H;$qX>cjſ'juEy^)+!=u ]CrZk6֩򭴈55qK0s<774=|TчtncBJ&tщuRd%C&uWk[/:)^koإp +W!gP)Ŝ,ba(8e20N p:lFah 8 Jzr3{vM;9&"q)TO@|r&N ̷u9S3!e ȼrS>wr]kC{ռEGGG!K+kkIN14 fų E3;f)*'<>,FMY:Ea'YSkrjO% yfE^,.R*BA(FϓSZ6|JDٹZ1\ #+3Yh;1UeU w~/QEA/HRBeHEv)+,|jYDMB( *$~ PTCa9n˹7 qs3/)SRPG)W7Fv5‡IW(ô @top_Df.7[?X9Sp$K:a҆NM G^;IM ⑘9"|D5v*Ok@Y<#,:ʪ: Ad鐰'gNMsjv\t%GFIVS6: 5ói9T6G;p}Mi9\zξE+= Ş I.u ?ELZGɝS%h'S%"Slpj)lpHf*TH^5(! oRQL@ ObK*{(۟NM.~A/~3<ŏ=r_\J$8utBJK:DUaq@:M5d\J48dwG}QJSEOlRAQ\kh. (0Cty7{j:5ӝ>eՠ9ԞA4| R12]2"j8Z~*z(οp2FR ?RyæթUwtj:5KWR9mHgZNU:T>E\)Q!qZ[5S@xGX(An{~eUvT[7O{qlD{W# <hQ4RGhJEhT7 _"-}sʣ n%8ݔrD۔ E-)YC18ݰmoe}+Ԭ yݑRGC)DHpT8 879ś-G\k̘(h|ۉ?5 2[ J1T/ǣ T7?X$5p?".7<3WoܞST١(D%MN)pvqe#zӮltbFkd`$c J?vZmsً&{F@>C0S*ķ6ȹ=_}C& +j9ΔJ#4ZA2Ԋ:e**^=QDGh%YdU$5Д:z(|GS({J}TPAΟsg+X;vhS䣇wӷϝC3BaS UzyџЎ~HBzL-RPH:!osH9ud׃gcg/C:;^q=I9գg./.R|z Zb WR}B{oÀ#l=:*Rl=.p ]BJ9`-n$=dNa*0R!K.Ek9(jU,'1(26ܿ勇O5 fO50g**tyQv7$S#zJaT`;Y?F]~e (Dv`"AmJW.NdRɋbƸ1rٰv\C B{}"(ºB3i֡{}r+#Tc< 15xT ܞ1`>uxl ho:0|f6FQ}>X t8F+%m׹<64%BgRd{ő%[E=t7SYOi[F|4)= O5cjTH.ZWxO#KJҕP!9P6dK;TSnp3OZgQ}HZ ,ۘ1_֍+6WK'$:w߈  ҩ(qDS aJ5Le.8!(7~ߡ~E71`Uwq+aV6lѱIx-?RhC{2ǭIj;+wXPr6CM?j$ޑNGmX$ #NGx\;[^锪7߀M]d !([ $jdN^aOS OEGY*Pń4:oKTJ bR0љ[8 'e#Pg}Tpx P='3O;uTqi(JHdWZ\ZIj#R I QMr tu"v:랓Bz\%wPF.Po}`L5Su,~@zpjLLڴ^ر9xU2>)ʻGLLbW]ɿ?#_ޤP7 yF ̓^UZ@˰2F8S ZUUj"*S7z`0nfg!4>{L" ]yOjg.(ߝN-]Eq$P@f [GQ=4>qM,B͊5H IjJcT:ٴ}09W,E4oxi)B蔖+I-H^F[?Mnl΂'&Ho_©MƵL6G@q<{{aR:$@6HOϯ?1Sgu<״߳N7A޲Z^^Ш~6ϰsoWzhKG^SZ xy7>F:H30vfHϚ@{ߏxejwz =S8ĮOwm{xsЮ7A:G "/x 5"w|<֜?TbZP1TլBJ W:2<Ac6i4!M͊fV~@2X Vi4l҂=`j0O}lvKcN~х\f+ mڃ]\RvῗyC0*;KYK4Ͽ`lZO6ihITx"Qۗ "/= c*olol!C}5+(?4:٧}HiTFEWUhKHT74+~ŭݴ */;d"?.~oy0+ZLLy 5g"4!RHBStT)^JtQѤ?8_/yð(_wDF1o0*ࣷxTAw.pc"p Ӎe'߲= O o0Fv{!a45M hj0M F-i> owķ3Gu4MYݞC[wv[4Un۾?dDS!A~Oh?T^.u0jtMBӱ] =}7gD!s ;.w M;|҉3]s\qsF` M}F|ϯ=yO 3J- lS_™sopS4%sr.3~`Ȍ|Gӿi+ "t#'ސ8f܀B 42i,mhpꌹj@S}kiZ]XM5h@mn ȫW) )l9 MR]n3HHF4|R">obҧeHGPCZd*,!G4ol=hԴ(&aإp)*&SyQ(,(JIBBpeh2E4D&Jdh4t,ĤF(HI]LGb f4LGh2EFT[IQATV5?D_,kClhO_LI󵾛G_w^[\ NܰD iLw}{yy뺻vm/, Lћ׼[\dB:@6f H7kAil N@e @,ZH{o@5p@$3rK8r"\ٔ !5@؆fp cg/oܾ^D@ĩ@RɻM8W juhә~=⪦^9muLR dm`!!&829} j@RS#+0/$ِIHCN)s脝ץ"%@D IH:ށQģobV/ֺ8!Yaჼ<1E o|{V?bxzm@1$S0iE4̀2IlrfߔYd dCD:\A9A-X- \d_ M@FpYI9isuA,ZiD+Fk8c_Y+ Ia"d|ցJ; i `i4HATS*= LԆcZ Y%M  x DZ>q)yc$]J҇JU?w_j=۷" &[~܂St#Skgd.Z! =}x*". X>~FRVY~ ÿ umQ4: 5Fh2Etd:F(]o:FϐEh4L:ȸxxqpRҚvU2M!c&S\&U dmabj"A/3" z^CU)<Mo0HYu>pȩ i9ECWݯieL5’Y5d* " O*H)X9xpn"!W7E$yF55෧ִAy\jy,CMMxﲫwpQe | LJTwy}נ*껀@:yd *#3[QU LxwA@qij\r +Xi雡D=0RK 0$ִSm+sx$  (RBH oxhKL`k1mjڦ&3$43ƴ1Dc:XMf33-,d39sx}݇>{*Df!ËjBsoZ9 djMϖ@h"Bj[lolGrτLB͕M@Zܤ?}1 } 1Fd*I3I!YfYfSF,L]u+֗{ NdGPBHBHB2B2;}NtBBN x2XbrX+%nh0' )C{A0;Oox7ȯ)R?#{n*V'mp+$>4 O]cbmT@~Q*2p6 AڳvN>z 8sĚy$Ϧ,!hO !S?l5zᅤfag+IKlJRdډy{[(!$S! ! ! TMK׾RkX&n,+mݴE fGJX~,]:X"վᄑdE9\BNiE-{v53IlQV9 ZtWMa$)hX΂tN!n: # u:B {G7zhv;8M5~I*@ 0+Ա\Sf,DIi~N]jϝ2S{pP&Sc8#S[+شBPBި\E?}!$S~g Hy2=^>Vi Wĉ/a{ڶ"Hט8lx! 9'ӂ^+F4LeV**:|B<zNL?5! 㛓k}(=ay<=F`d9W(PS< QvT4!7BgUkgߖ];8yе+*IK♷d˴ ->LFLɗ6ЂddkY@0-YS2HLY=)uuϙݥฑ]392Zy^?˔RAWHl3c.l¡颜˔lJns²5|x--. O/ oXn?L\@w4ZמC"xu %t/d*d*$S!'w'Ng~RU]?]wxԙ3YDl˥9ޫw*NCv[cHUE֩MqirLoR1=fͫQ#v]TZIO&qL<x IovMhEy`YD}\5Cᾇ-2u2w]t}&/2#g/h"= B*ꕔf$|]^9)6|2CZt8u:Gwxg Du\1Do#LawbHHFZ'w?&B ! T $S!.1UP5qZDED:}g.ef]3~9X1}Z3 Pvjߝ:k2X3 {_`]+Y[-""-"T-"t %d*$S!$S!$SqT {E̦7}aY?\Z q0so7S[ZDEDXZDdS_>)>};u SPjjBN_Ej! Ti[6{3`[gƜE3?dy}sT1?P6ׯh: C3`t=eI#Onݾ.4m6e|le* G]re:$;eھ._WX ؖ@Ȕl|g64 Obeꛜ ēj6ybƣy-ZMPW7>ޭ!\.k360 HlNe h..1e+$Si;tcdolܲnڸ釤Lk7#b\儩VM;~|u#ׯU5Mu~5\\gK2E^ COCow$Yj!"b]Wc 2TvHBZϤ)%qob2Evukpu[v>15ބxwάLd 8)iXBսȤ2mB ! TTHBDiУW/D7֠OD}8vJdGx?H|R?liy6NwwFK/&wtܙjE'ͧV6S`cS\Nؾi.SW4ZDq(`3ȴw@F*IL<޲öҤ. ZO&j(*ee6KZDEnLd*d*d*"B}sڼJ?4[J 핅9 qnYKԣV+'@eIƭ/}vKѨr?^XR|(߃ɔ)<[l*ωE@r)U},O){:tXMH`AYch* Y4ݫw?3Vp#RJRhwpv>ba!z޾3X-2r> }7zu[\G8 _T NXxlGBZ)*Uqg텐|Tl<ж BͧBT!S!D$rO(HVnEr Ⱥ0C[O+e'cUaiC%O4r>Jsa̞ϧMI" f|;: _p|iE.Si->{fsϬySzѡ/5=8O^ː̮%c8eVPC8˯:+o6(;_eA/][n֙o~'@ή|n3yĢ63$gMPd뎟|z"vۮ=XccN;O:-TRVܻ1k~ý}?ee΂iA˗0֊euΕxS<%(KCe,CD^JYy_=(;L(rQ\"W ܄,(lkH,0MV-PKA4R@!SD}7=h00{I/:yz1yh* >Ᾱz1F.UP)-0X<}Xx%-xhoCO^9|uψ!'Lb.gr2W?x k7nAcrz=Q'=?LQ8e`DU,`:O9xosqqM]1o5֩,S... itZ:rpv}BbdbPU<*)_SyC.ِǍͩgѣlenI2<_5j6q4c;\\\Hj)ԭ@=bT~$ӓ ~:3vub\\\h.z[xw7e/nn܉:+ܻw.-Mw;8YZͥ͏-0oB™c3F_v27rP=anVIa3Tu.:]@/;$jAؼ’ɕ_F ѮrhL#i:Zͭ/:8GYt4sT|JpX4vPMz{Oi gYŷ56-Bײڋﴝ7x,pjQH9qY%O?3Z W1#)* k\tZ`iH-qO%FC˳oM+3dA֓+,?eE' @'[5 ot{ʾ+b zxhlԞ[h|̣r]=\<сw}c,Z|j_8Sgbk3ͬ0?XՕ+7_S[O ֱ/]sFmp,fS,%A g4*jvOgZ1|n`)5d",y*L >Ε S2D"%) Kס/u.YS(L8 H +)WT> e*U˵+)=7ri*.uӕP@pdRFCeHa7ٍۛzVUoQ0fK'[[ʠ({)|vRxG${={D'RS/dgáOՕvvݾ}Fvϛ[@a6apf!OQQ U3B="p2t?  \b1OVPviJ*@v'yд#<6;v^q(u穧o ufc4\]Uo !C i}>?DZ|ԣiE/|'uO f:jOߜɔʫ2'_畿{KdĈ3_hxٗu5צCԏQ?~?zK/ ~Aħ SAʧ*p >A OA|OMsy}w?0vF4z/J=eđtx{݈wH+ԵE+H}ŷ`Pm\b=mVN!k\%X_74eƝ 50jcb -]شFյb5g/,_m Ճ>68h#cK ۤrZ. ${ڰ.L`<ڈ81,cs۾;'N>Fgwj9m|ZD~,Ó3ܮmfvM{"LXSmAtmTQY+kť0iq몈`,e5w~dN~C%|J#) GON*>(:^a71^m Snr?ߪX0ya`А5*!i@6hK6mMg~)ApC7 ¶0&`;=4)2&\XxiOWmU7x h2Uv8ZfyQ61:!>0M1>6xP|ڹV^yM$)mmWϧkx@DmX_eQF'7[xZXߗOO} EfQsW( Vtj TA OA: = }A alsTکDm \&u4jk =(} KK8Z{C~קϞϛT&VA8="l+ %3D鴎)/DSD8mi(Jc^Z4~~ݖ)Dn 0$nDnTtZz28&gRcº"F(VrзXݴz{L{9g^ߴO>K9{Ú%+ħάZL1FmkZ(?<> -Pڰ8X9qFD LlΩ3>;FQ2W;O Dٮ|JΧek ($^! Q"-jp)ȡUğOioi NCfGA OAħ SAA|*;Aku :C$VvJYu d,oL9ԤGB"vR E-؎fVXz|ߎ cFvs$g'1tPO/ (+"~3>"r؉]18~Ӯ`z'7m5Жϩ88VAm2H/U"kr'n"N"HQC#|Y n?C#ց`O2'Mզ+t&9}|Ƹ\6-n m{Zք(^e|ZX<+ VS5u`)3]I{|:lcP|^.ήտ!Quʹzx~t a3uS3|h?nxʧ.%$"wQ0(Y}\ NfP ωPlC\LBrjfNQ-A7VgaE0)es0GjS3sq 08;8NFCXԞ%y˸~dz;cSDύg|jΧ2kt@B.ughN\1*S:r J<,JOx@\ofQB+XhIjrn S*MMB|Jɭɔ(o5h ~W^/uyW~A SATA|*dՅLqz^&KpX8C{>~OST2cba%_׸ޅO`;yEF݀b{F5weM$3$(.6f1x3:n*":ħ>`qEP85}Ă)3"DgdUd K%N&m!Lo­8Rw!h7o%zRPjPuFSu'nضߨ>>) M!>Z;n+xnbK!vQ9z~?bux8bHKژ# ϴmW}V6g%| ַØp1nWj1~r+6lQflIXWϏA(0Xxī@~"QeLcѮG]HW_mi#K ^oO! EWAܷ@!Q~5Ȯ@ߝߣA TA|*>A ->Eү_Aȧ.pH#zgz֩]=q#RLO{io7|?aOTгM*тu(Hu5lރzѵP&kز׍1HVQYEQS#KlsiqЖqDF{P3nBk*;(/[#yI"𴉡d&- ?Fw&\| b/'Miյ?EMpEiVh'C$0fWeӎKޮ&nzyy߾~#,pi|jRFfNK>o1(޷;N-&Si-v8]T|'WsQZ9 y6`h ~k i o\ |SSH?wJ+|6 Pϧ nd6҅5F6ߣA B?S OA TAzyrYeeum;psZҒU\PCU +f͖_}pi8L<ȍ-/rklo>arQNہ H&տNh_͉4+מџ&"y3+n Bw`P_Z^E |qZ)NUtV?|TɛO1Aյ;ΧqxO˓iYCIMѮ۲}5+0ocw7POH'y EVcK^]º"dFU(VN'V7zOiDǟ/vW ?g^_&3>)\:§3c 5)i9CȠBd[i욬BnLRK/x`O-Ң'B{VUb9e>Fh?gÎC8AQ SA TA E=l>M[wK=)לO>Co[PMY?Wfcd oG'N)+on3ewACHӤ;nG@2lԂhf Vn֪Uc!~0alB2E#q}'OWEDSJN㴑iĖED\ޯ}&GW;V|v0MBA n-ߋ8/k`^]O%+)sb([1o4-':ƹ,5!)WR,+ VS5u`)3]I{|:lcP|^.ήnͧKVn$Quʹ -~? ; gj7ͦ0,N)XXSh[gLv,!M|~?xlRXlCx.kOdHbxN`C_zbS3sbm  #-ESp #@p?53 biOlT)9CյQ9ڳ$oÏLZ~ؔ,K;r+&F-ħ*D܂,O,%C1l .ȷ`(rK,gY`97ӈ8 Il|JAkEo3*BjV._Qzg/%Aħ S TiV蓟oЖ~D7\JʑOv($ݖ=gq]oD/??]S^?c䥙&yI?!sk_}\RJ& }?,K=[R3Rk'`gVΒ+&KJBm! 5<`ĕs,w>VB󋦇)wMLn|&=9#E|Z]ʺxOQG&SmUQ2FRlEߊx.BhdnZ>1>BTLLtUmNF§8 [hj֡9D(Bŗ;~ >q=/͜c}x8664nwm?N.#E>ELǸ&19 @ 9gCKU9-r:㵠!42&6yS,Xs.O?Dee|JoV84dZn? Qbw_7iwS1]sPwO~A OA TWACYuA H=oBRAh>>I@ޖo)ߤ@C{ */ 'lr -n쾁{-!c4X%s9c p}GzD[?qd:XySEVڍMhQϬnOmdՏjͧLF.L!zdeR tQjg [wpEKU+C,\`uG$9^XNxm L7]P7S"8; Vk2"}O; ߣAħ }O# tz>A SA}JP~wAbDtL7kX*6!#k=Ҏk|XO mt]|y Tiz-6=&.`Hw=?]yGk=;.RcLN};(5n(?A]_9*Gm%@|Գr'[nǧ珛8)'$!>TA^QY(U$ey5QʳS)xvSw9gMjl|ԍUW̚Wf$dt)$}YM @uM?:\q 0%L2S/?0S2) ~6lm QPjf-XX 7C-ؼEpg-(og V*]1 J(nDuǞx>|b&ܥԀq'#g5UOS2S?'?{Ƌy}{&*8iQTLr>ݸ@um=KVnߴ Ҁ!!>5oAin%+}(.TWuapMUpشOrSBFp?̓]*-m+ 3_-l@MqjC^/L%`ʔr)N3+?0:2Ť.Jf$?Cjvlw $0dsH6zαhJ5:n'cgyIr'^ L/_MnZȳq1:>y0{So]?<|ܭLvwf2OuSMLa觿KTQʦҚҚj\2s)*sQcI\K"\4-rFGe $!BhŴ/8 DHPs=q罹=o~ųZkC5ߧ۵vN b%[#pʇuM*?is#H+;zG-m?jl}e09C٧[BqEZЂ2x_I<> <8P/KᥲxШss6l1ÏڻmmGGuk)O[T=\eJKIQwjS+sCAI{?fda VT7''JLS,s-;)2w(CWrL ǭݭ݃Rpm.YK@I:aUm#`Ya XL1*|D{?i$LpSm;a{7fC, G^R` ufݦxđTSZWiBa )wٓS8K̆s)Ēi@ONׄi2xaSk^St")&q\HTjGg~|Кx|5 $̏xz! Kjbh~ahr)dq'GEpٓCSG/Ŭ>V.Yޔ&^Ob5avK0ڽV\٘҄)|\r̬L]tbzx"Vg|"WM|8<׎V7wm0OuLŁhi;{LN=ƒuM+WL0mGox `9Ѐ/X'{Tp^z RQ[ 5olRF]([Cs܌n+-KKZTQ1[VP3R4J`a=ǁKL!_(bj5'OlrNgvJUՌSqeGvqY4cjz>r]شlyu'<_g6篣O_F 5K~oy~Q!:o|P4[|,{muRT#bĹ4_TGKġϙĔ%S-X)L%T\ĴZ1*j.bLHhW|r:zb*j+ib= ʫbO@GRp*)SIL`ƾTz)1kK) =q1)cմSS0,6)#fjiRjB 0Ƹ?k[hLXTML1Un L1b )`J1 E38ךC#ph6mU> Yt.".6”]@Liqd7vstg_iWgZ+onMqbvq{L$$rKm:rMq}tddEzfXr\oom?=@4;5]dW޹w@E֚rgUVcX3|BЛyPSGt:?jJE"4!HC@P9!@@b8bV-VՊ((*Uh_Kxtd~۷{cpf_3^V7ZOۋV1L~o`OZg` ):_LiI.Q:zk˗WFF`.CvvmnpjukPfqy͆ʷ¢_ *y?}Ў'cko`m8&/كwV78~jfKsCԯgY<3ܤb;ln?oi"<{'5wPaU~ItEK"V|m<_x~^72 (`2Yyz2r '/)}"S;q\-GW,6}fQfx.tXΊoɼۓD̑ʕ}W ҔDďn6Sy j\~j{۞/tN|eUk[ZFyjiG{eW˗ L[Lm.='5adw6咒e,YIJ.LC jCpe?ı 9}BUbOA TyT'=\]aeӡ iz <'ȹp\껭qLً>AH 5wEY'?Y͋S[w;ڋ85 loax\)6y"8}*yJ颜L]}7tÓ99'-Ȝ( R%֯RPz-3}q9vQuXGF»1``W)ĸ,>:.~VTb] o(At7 9ǘ:cMup_8Kk ܓs0vR2)\_g^ * d=@ı2*u1F4UtP1\mjnc<P  Z! 0^[TC"pۘbv1R$┺WA'o:xD$evP0h5}T*Tg#YY#z=PS(vK t ٸmy0g7OG*rL52IgG Z Q?xQhV!hxn9q|cf SSAP1?bDp!pva0%Nu l7;`zү( üC4qxk/ފ3Kh|qxiL1Ӈ )S4 P 1xE1Rp3nLA`Scbb. #A1t$]%tyl y0H'`cy, ^(pGp M,B!dv [! ݕEKL 1:!e,an ZGУ*S얞RvSRlJL_jߍ8cV,4_=۪:[o?YVBl8l9z+|q]㼍lOـ}s,V(Br`9` JF>1&O iگLi߰N} iӞI/9Tr`JũB'L97 \`s9)55L  4F )S+:’)U0(Kusy[4GoLLQ?xK/LF0UJh,dW }8qj* 4/ED3e0%i"ڍCRy0dg-3XS@U;}X`=x) R%gsuTLiי_j5/:bnx$eZGحP`#${fhOGaϸ=6[{sޛWF;P^{,``jx 葱2L3s eKTIl"mہcؚ2u )SjAρ)G@ L)?ӃZ}ߑ/*( s *øGZXBn"+I 3|L=à&2p1c'*Z( $hQih 8 ~tr0Nm?q<׹9s;;3ʚvvJq1<3{4~íZ.b3S"XqY{{dӱis)ᩩgy[ss˶gzY9?id%'ҕUaUn W*HW569v+(,ҡ-8, Hc#R6> [U0ǩyJν1'M|uRG/n>BW`FD. G^zvw&v1p4ʂ5|P)n=ELY/Yٶ3 I;WobkzD DHsf<|δ({S7% BDHWV~GK#}_1ؐ&ΤxC+̾^7PyԣS >>:'ߖѮCܓ#+]}x?;0s2!o N&!%Bb*S! !T!T!$B!1B)BBHLBb*S!S! !*NJz?^]Ky<%45SqKG⟐d;bTu؏zʎr4X{ JMgw<ے(8uw &%1(șo'dj pOaӥndӦe*Jk8ޙwQ/O+;$@BIB@ %a=t+.2j*.ҶfϜ_5U$&&ssϭ[Vy݇C-86s&#VtH,cb#+[BUPwLB3NVsNYefvySپ s_k=0otG:Ct*&: zy6a9)~e)K+VxnXl~`dFnnjs5ͷqAԭ3`8e1=&Ar&1'o*utMgd%ǽxOQ)3;?k1#{EdN.gR ʸ $a!$$Qa/Vl`JKkk:5w>wI%8Ib)epMjGK$0= K?vouj ^Ox/+ȿL< OU2U'tZx*QbEWaZ!z;LA#@G9yZ=L ~pÍ^F:rmDG%45N5J]B<8ΈaԘ7!)Vxf~;+GQ4)%3S)/&_-;9!8ą\*Q<,/v24boG%2[ع;t &єcs 8ѹᴐz!ff;.\5OX DqCS63/b 9ה 0ls <l̴b:J(BlKn⾲Uv(3e-)9.xBd+uw쿚 nq)wk>ACSBJٺk)D${eK蜆,-=t'LIPnB|L]}C&5՘$MJ͂LM< u!S/8y&u2toHNEYX~F%ƹp;D9:dJنH9;)` "|MDNz9u_W͓C]p2j~1t$D(IB9J[vȔͻ&3/)QwϾD=%}4L;iMr^ٍ87ư[9.#Wƾ;._|4>WPqٴ8@fj/Fc/a4:+gf)pѼʐQ0s.88‹uB2]\]CbZcN KZOI| *`cdXaQy!S]n jv0XuAgm'Sy 2 TAd* LAD "SA  2A LAD tqh~3SRQT'^_jNpdFtzVnžO>*2jK ӖF*x.R98~8H%JVAGOΖ2p¦?2䇣/EwR:g[,Z dP-u?"{WN-Ò I3L4rUjj!c`jWQՄ)Eߡ`i;B)Mv%+7:64" mjf ]4F0ۼ${{<@ GGS Ph%|tW9^#S˹gĖdG%b.3IyI }Rgǔ=cT{^l-RY:|e7V9<8haG曣ɋ-g<=S*7kk~g 'Gi{sjɔWnMRFePg/ Uѹ<|Gm.Jɳ oغ7IhwN"<' A YLqC'Sֽ2pʄ7SNkhII-J&ʑ>Sci8kXՇ، b LYN5pY.cOa)F8d’ }Fq{gOP']ו.n7j/i#aN|N|[w=,035TA/ 2AD tLAB  "SA  2A T2EK!\pcN h.^QqN(tt.Jj= =^iqJc1S9|qI!V[B%}岁Hˬ?z饃/l?GI|2E5 vC,EO&An'SR>Kl1q?Bi^bmE E(%k lh-vAZFFv7:uGdrrQ2A#SGX&π1qIʓŮBG:D-Zrـ!}_l5!T\S+Y*Үv* A㐢>">*%/q`M>-z&ѵ cgf#p?aV4v*©9*۲SNi¯ߺ'xيn4iȞr+h$@ȕ泲#eZkZڒ=zvk< EoM>O0Ÿ gnp;W~JLw?;MA>]tV~."(CsZ뾖L)@z7[^"Sx*6 -[7ݜXo!2Ÿ~wgJ]. )[iD~A19s=~C"mxq`(Ǥݸ;̋`<P@dKglTa %Ssyd B tź:ʧqhv)CkށRvK^#yݳ({%MsCdLI9XcdjNIILm%ӌy~̆&4tҲQ!~6 [2{'D˖It骍ٰݐLI*1(Rh^.-J±1(SzcOĂNW^S Iv S;@-y" uNjLX&:`<$$Λ 1YN R f4fSfJsrڮOGԾL`4r{VUeKd hw7 )9"'S¢Йf|E"S*|t2u!wV<9,YZdd=ȂASgͷCݒnWd+-8Xd@k\)[X|`Ό0)/E  TAd! 2A LA TAd*!S7/AoBe+A]yw 5o}郿}:/_{gƟ|>z3/=rEpnu,IL:LG)kP+ Gf cqҳrT|6.%@ Jd$t 7n1s*:E=~۩~ťng㈴,gSд^\4҄K> $;Lp4\y3/7tkîA26k7)~wi AڔK+)L;>z\:>},@Cy$^koi#xIp>2h"Dxz#kgxq"J,ÕsGo[2X.2e6 %S|. 'ӁD\Lyųb@/26wJu>BvgT,_z8KgI衸`Vi:ruZ@pEՍΒpm|;>fdO  TAd!a2OJA e Z LAD TAd*Ѓtź:M+woj8v5uh$FȻxEp>`2c8 fKi˖}oə0Em. 1b1bO٨DcOu<̋!B'!NZ> ~A V7~'jw=|T?eXjmE҅Sa(ZE* ]*bZٲUN?Tp֞NJo~P)@+Vi0HzE_3{z8ZݏldkEF{~>e|:4x˝l(ȝ4Ô@Þ+,^ef2N :|:UMR f#d[rimC#ЦfEs+zyhúͻLQ>g#ً4pt|4Ig eVRΧ Lw525j;yMlN!m/\+>i?w'uL3Fى@-UWfxc #˃+Fvd9H8ԑ[y#ezf+-_jg?{͖_{}d.52uS#-Pپ))P5TN~ F3FV`9 GON=郏2)7Pv\L_Asy qt]LCgC[lغ7IhwN"<' A YLqC'Sֽ2pʄ7SNkhII-J&ʑ>Sci82嶐{ID䒮nj1+F,5ے f!4 d<bsihwX_i&$)܈1-HV,[GXqtԁIo2 k gԁfT(K+{>nMqexYa#y[eOe^ ̔ GݚSgCGLSGwnɔR'S*9O)PW)jոiY) 5X m$S^A@ Q!\ڍLt|Sl^)dj&lń_NJ.;v2 MS(2NCyfjbdi `({Q`/(IX K2/4'Sۖy Xe擽[}Hɏ.Hz*:LPQq ȔT2) bCfj,,[hG|qB]JSfK^`ƒG'G`=uGh n/6_{X`afkӾ ~% 2AD tLAB  "SA  2A `2]q*](.;4-3JcH1rվt;$שjMAӁ`Iz:?D/}//]q5Oo>-LQ7ѿ`Ȍl$:e3~^T/z#0 nLMg:L[kb%Sbiv^&ן#_lt\7ǎӎHrjGGCG#pO="w0+Rj4j( gM/.52=G 1&_? {?$|YՀ.~PΛ<ȔC|X Y돔jlpX138EWsC{A>BU7eB?0BpjvLDoD $!GL,E|22EEy1qI6˃z($fqr8hn ӈmLSDh^%!q.Bۇس̈́d_(U;ZvanEk/ZEh7иV=L17 5MWB/w4Lմ L]BcNm/qȰT뙖9lM?eaQiL6EU=Lgy<='S'.10 ^PS \Ii&F)o>zWdGqxN_kdzYȔe|tmֈڣ4G6F>;'S`hcCY]&̘̐zK՚vLIJqHL9Zfc^Hb/SCd NaO~DmC^&BЄM)%2]Uͷ )dZZ\5HNTSt} o7. DḬ 0^P]@1{S[{IM|%3_{cd?ؙgd.^LYh?۶>lLI 6Ӂ; !' =TLĂ>ϝݳ/Q9'})gד4x<xQ+d[Lj+ )f|71}s 3(V ۲Hm;06'MXjk< J}Cڄy .|­)|=tͩGrR+ "ӞE]8-;'oGxFa\alcr&NtJ'#ԎC};2c_(!XLiA"|3gR4U|89lJ&ZJ;>$oغI]wI664 A2mh4oF({ eYPN).'C/ZC]Nѫ7D4;w|ӿRv4d1)!UKd= W9P4yO0UэJhhL\Ii~$F6MڶHRsR9|"F{@!{3KCT\Ä$Sc̄tl%L]7À,2%& fu8tTDY@ %T^xuJPv#djK4+gSϿ02bQn>՘!ɼgě+vSL=a4St;z( gzu=xUpNLyݏL9T7aGN>Q~s8-x>qmWJQ\Uc5/F2Gܖ.YC%6a 6CWoN 8Z= g\hGPj'!HP8Ek-9>&.i|tRhN{1ے˙ -adQg5wصpKkQUV/0l*!}2 - S6[^G(NGЁ(k 0xQ4&aDTIFǖnWS4B9GH4L3sŞ&P˵=<YӎJWCoШD:s-gDb$ȈXUH'$Q?|OL n'[ܽ/︗JLaefUʗ5q!g)Zt9\]jJgˎC6Iɔ2wȔv5@v7ڍ\IwVFvB[iZw`L{Ӈ۔.Dg (k3 N6chXc43#\SD%\JrOuS^iA%fcg?y@M,"S_+s'\`?g”Fa+HcE $F AFAPA"+Ӥ XY[BӨ XXyJ4] L2{M9LBjZWdO ~ܸ O-ҢS}fiҁ0q^ /GgZ)G`lSM1Iq[{ڭyT{`0/N͞otɯnc\\2)ʅ Uq.(tBl:ۈ\?M./ȵBc!%LyjJv;D to>*E!DyVJll%j7uS,QUi"?A!堢_&->>z䚂3!( לVbc2V:7ۭ~QCAE(JM"*z ᚓJlI7őn*4&R=EɹIO&nJ!J5'ؘ8MtS bɷ ߖꚥyu}gս`^Qd\"eع7m_dd((;)÷[*JӲyrzS8 M!RnA0Xʬ.v^Tk[͇ N/.B#O7&5ُpVC]"l=w:7Wvں[ζ-,UN -,:!t%qOӱ7#)C/F' ֵlbpc9ޣg3mW-U]}t/drdez?2iEVŐb%('j\MAK#.D!0;RfiNnnpx|M J*_|A En:\Ta+2Ǩ HB7])7T Q } &^~Ky펤T6;gMuն".XʾȎ˰Îb@C(""JQVK6i?X@J?M^&<Gl1'w=7<tDirNs+~pYTb 1'g̞IpEXl::ӥ+ 7gӮ~S uOO1GbSVкnŰxJv*r|8c=fF47iZD|g9 "f =l< [?{b}#3-[hMkϦͶzҵhEtR~I#l/(on{_ i9Mǎ}ٴv+nwU l  9Z&jPn_xzi.T?WI8һæo*A2\4XmݗKu 91>A~!Q*-lWz9n;uQ7lBwez3]"S [\h^//lm9u~ ɮΞl;-fS7!-pdں&?>l IC`x`S R5shevbF!(`VJJ\7 \sE<8X0PrBZ슧ISf12rCt4 PGbS.{)ͻKgS~/4.J1-"Z+bҤ 6偁 P24al53YR_Ya ^Jw@oq ع##̀Wm]Xl˫TK2.*syuSO?f^a׬6)Ŕ 61F!- ķxV\ĦQAlS4 cS NgZSLMG-ihi wBشZP&Jh -oZTd|/0-'5pӔQ̰4*([ot<Ħ[>>{ѭ;+0! C̦B%eOU KGҐMSnkZ;~Ϭ99~LU! 7OPtpK# un]bA=, aSu UOE\[UM%'+X)(1G*Xr6 PĦlCrz&jfkgc0W}O ] \$̘1S1 ltZ&OXY+tN/dS06N5uͭ(3i%E+A2#o >[%AnzKǣ)Rȧ0r &MQ"v\EA.gTfv\/R\7E1% Jr6USG+ؘuSgl*WF5WUf\aMNanyӎs44/_Vp<z)ܝMTEŞx "m٤.ut<ʦFm[qkMU-4ZIxpD|tRّyRO6wJ* {›a][~Ʌ끊hr6];0 BC'(gS7+c$3>56ޟ<I!C*gH|S$lj65.lX0uCHːMåkXF(T(*BTJV,[6-Y:RW`P6VԯnPPIIU mϮdJɦ+w6ڇrʁRPRtKQ%IT̼ljAT$IfSI$c3(l*IqS٘M%I̦$IRl1 /L5̦$I,$ITlZ|Uc56.[[S['I$!I$vȦ׵p%$IR; li$ITS]{ie-lll)2B+nA"ԎK`-9cF"ʤ(A LS2òdFwXR1 M'͹s9'7i@)l dSȦji +&7!>ʁjHߑ{|rr`x8Pv4[׹v3orZ2Rh#F `+#aR .tYC5b.& ^="r)R!U33sFc\Bv& -2V{^/]ZuYJ>jn7z)ɑ~9'»P#}O1H4wG$)SM -Tʆ0;;m0L$gq ᡒpG¼"H3T˦N #q`tl0НVCcx35.L&T.R*%z:1//?lFfȜ4NFv·]:. k5G!cR#7o[qܙVdM#F6%^Q]Ŗ+T~vqYddCq"͛+MWv򲫪V/=iT)$D'Ʋ+MXl^XAPuۓ_$$(4an!e8h< T}Sۀ/ Ƥ '[DnA :zG'w>嵑k፠񋢎YBYgQR ;D}6-ϠǗ{^o>tL֦xy3nQ͔c1A*nHS7󠪮37u:LtH .(dǾ#OKE6VmbVCTDcHEF@I;37߃Lpq9ws *(]P5a1I,Vt-'ဂҪG̋L'Aw.)]xt@h\hLclKIF\V2)/8: Kr=]_!a̬^GΗ5xF&XTj_(G?nU'ť2W4+*<.dj~2cN2Q-; VuA4[X]G=a76KEۍ۽㜧yvv߫o@olMybPGg.^ZF݉F9E^0}?:6Pfn<8sֽk '-!!>*JrrGN"Q]2o7{n顤K/mF|ѣG(o]m~<^Ϧi ɱ d⮆ؔ$822XN鄎#V\D% X\gzK6;/ g+\7Ƒ[x.cS;U$xbMJBh<]XIO$ WjXq2/H'oG>GN]R҂+8j^I?o><6nfy!s$*I:V:l[1-<ci뻀(yNw `04)@ؔ[xgV7{lJ:OeVۦsV`϶xE%Ś%AEX嫫/3Qz*j}:5B⒇g{r)(ԙSd7lWY?r2$*ЉY`㦭]CB%B{n0}ٿ H:5nqMAmM˴IqjM:bӑ6yG9z,l2>fayF*~ȟOĝdSb+Bw%"((c%@])=%^cm&g34zOw*Z2-F 5!T%g<1oJG^B{y( &Qlޠl/oLh:*1S-h8 6SfS;F*xj$Cbܜ=L &bb.{u.jma1(ql.[ff9e'b0y0Vɦ:8W,~06s%5쩮ERwu-3jFƭcQQk(mODǼ˗S0C_}7]wwu-x9ش_n~Tky|FHCby^߷S_sc0?;.^T*e]geXcTx^o8"ySV}:>#rF)HXTɦs@lPNOe1q%! IL6etl*hnC?!ǦPn*d9n46 o m]0Q!޻q6IR\eX1+PȓI!% :`M>MAض/QtR ̛!ή$+@| !3ʼ)  ma@J6%v)+]ZemQcb"PCcE_ H U$.UlVFY:tX=Ī 3<> -JV$nٔMHurt l*.1kW@5a"KD餜Pџ]X?nIBI஽X؟oz+%=֡QE ~le^D"oJ@gq*%q6eNVd0?Yۋ?cS* zfe4%e W]De[5{/_(δ)HzS>BL'x*nASÿ0,~߷o/7C6>4YOv.NE"8)3tP)@ /ʛ:֎/-, f6ٔweIy/́M`l:ļ)Iq:W4[I=65 6Ħ/_z(/b(!iNqgW;cS=}/_Z{{>q0tRJM9t& u";%;GǾ4qܠPtS&D(`RJ447AQ/=UKآEni`A  7_~t3牢)…s=ܻs>QaY a3EPX8_)4 PEBVӜ"˪N#6%MrqiPFCSYr'MMzhis?yq70b7ݝ 5$T5OJ/pAʵCJ94󋝔klJ8po۩l:܋v9>WixJov; ? } {ۓFCO_]7=*o?EAa)|̼|4[SˤpClBu2-I|GRUu!PD}ҋI3 -l ă\TO@hؔ(ȵCiDY9@>nԤ Likz{ۆ6$?2 }17˳U/fo|trKۖgi+"Dߕ9 O3yDIymz`{ i* 8zX+9wnI-YΕ.!BAXJ+ffkkT $"#ЗnOC}"ck!e<-c9;ss[Ud^m4;E-KK W:~(bc_BYpCc6I:UnsX*%÷tk,Mf^35ްrtgh2E_M*4[Zo~)HKr\>T!91)2{.1Ao--D_44^ۜڥ?0=P8btz||굾]{4Z9UJa[`HycSEә+v'm ЦM)@6MgmZVnd6 hSЦm M0?UktFb=z&pƭNz|ȱֿZZ]>.\s>*ui$֣3UrMCnVvuW rX|?p7uP/'Ywm*ZDŠaO#]l;EJuSM; Mb'^|tr]yNʎ$qOyB( /NLD |!VOZՅw]֍E뢋6ZgYn=۹x9ώR]ZHO30U[u5rb-SȦby9S?<b2Ezcӱ>M6?h+˙;H"#QhH;Bo1gVGQRXɍ֮B?i6 NE<:y6y"9/)@1 /) P1)eM mkgV_д?+/`ӷ?eroW _RU5ۜjGSF{ͻu&ILd): $JpTU瀼B[HկnD- .oTT ;D8,st106̶Voxa74þA(|avP@\\R`hjPzƫM9 vt6(k!p{,[=~BTuv8:::)R W|. @ !l gѰu XxV7dejlVrr. <(Ha( ]-߁ulj47k-N|CXTGM¼Ds: <DS c"߇,#Fh$c{ܱAaNhM 491/&Z:XLI4 :Q(SEKif]Nߨ)l\B흧u~/h:qͬMH忕ᅭÙMS'^^T~w{Ym" 0*6` i(XDE*-UM*h jj ōnݸ9\F݈+w.7aȁKi(d29s\R-+j ]L "Hatߠ5}j&a`j,߲t.|MNpIǘ7ScLA0_h|VWwH^f:J>?MCYhޢȎ `r=B6 Ӂ|wE sabedAee"eR+l(Lg 35xZu/d1|̼&KY߄r.>W $ϛxC/J2J$IfSI$M%I$$I̦$IT$IfS$I̦$I2M%Id6$Il*IUM[wڏ%K^~;Z7>|f}v4{}Ul)lLPo^GN3YݱkOOk,즡\~#Ň7>9w)~Q6lx7dl{ 8l24%0DaLbBuͽkxFFrqq1`u}[\ Ųa>?x'ωM܋Wo?n~]}:9Un}ַL0smVF7qa,jNV% o( 'Ao: vD7T ʳ[lnL:4~ɍ/2¦ȕF9lSa/213|)b.^S*,ŽVKP0ˆ$IN")J7drQjvip-s7C5= ,-UY['~KVl%̦X`pHJ:\YoxIzӹM7yR/ޔ&44 #-tCv&MN34jʃ#RySo5 ݅¡ikQDD› Wӡ"P +DƤ 1:TDDDD"""""zSћ7Ͷ9̛5}fv0j(jmzdB )XJ RDr,%d)ve(9,VFr f\Wwf{[0ʯ$SY /gQY35r~{ =qO>8>8j)8оYn%{" Wϣn.`SK'dF,hӌUy!k%=cPHU\;RL)@ D }}毕hgbKOQ?`xIZ1B5V&ZbPi-jCKAk#YqO;7d2Ձ%I;wcfΝ)ܫ0Εk&nD)`uw!EXt<2'Wcqs=GO:0U-b,G!9)f^Xz—#l*:*ՠ eޥ_Z>sᛳHkkir԰i|6ml) 4܎hײ)*!#S>7'D41X`7))PB1gp͞=yt!!s!1e %t×601"0Gq 2EOulZta:mP,mXvsc6`[aS'[}Ue8H NϦp#ވ9eQH T=z9L D,/TB :6uqjښWXmHZ׻?6D_Z% ԑUMulƥO C>%b-҄v=/ @LX^fk7V +N5ƱWU)_yXaQ rwo.X"4q?0֤ˮtBĪ5j,Z&*4bNeD7T7U@E!MBDz/qb;&fʁS!'2Tj\Z} n '#W W[Ŧ|JYLٔ$ 7о 4kPZv|$ pH "2d1iNcS/ d (Y.sd3/̷ī~t̚ 3;OO!st] ܚHMh>3Oc]S"\XM]!@ۤ҇{'^"20>ӷv_v_I;+WsS4i5v(tMGߜTƵSYz5A&f`g*K -׮;q㍘s1bXRQ%(YlM9wǦ{ vYL&SCr+G<2ikL[)bTQ]Ʀ&d2L!A .TJG~{d2L&d!{}i*8Di2ԙ3/sj^ZjwUӕ+O6vutG= (1FVĈ7;9q~| lJ6dS)Ȧ M@6Ȧ 2W͛hZڦFtajOk@q$z'TT5Wn)ש9KNFusO$UiWW"R7;b),s#;4<] 3#/7?h]m&R.O6tuH3:Em5})q"m=N_OMOmxΫhLTԚw߾sOQL?|L {eo^ Ot¶<2>]#ûqv*}f? ]2sD1-]#rZڽkEeUxi_L;JOԉ qЕV=-;BItbȑӘu;i\p3OW.wE6/ַ*:dd˧b(ѧԼsM)G-m9K ),ѿܩYf%U@n=Rgf;Ma~e-PZ+%dW$( *ek$eQ1|/ C!Ą=XɟftfϿw?Ͻ}j{CIFvzM&i2",mgӍkDY3q7a,)wʚ[H,nRWQ,\==}geqL(b(?`L$3sj)+0Xp2Nϭ1}nefC3"CÏRp-+,o`슚>0/rHzoq"'qU/JIdlP88J88*|6i@:rReq5.Ҭ$j)j'oFS.\D7W"Z%o٪]wc 90933`ӠΞ5Mm[PBNɎ؛۰dO(4m|r.=&*4dp8hĭzcòʦJZC( DЈyC 3)ȦdSM6Y)xO l M@6rMucF$y}}w%z ,#N9sH}U=X ETaw*& Uf_}6ф!mX˵jb/GZcZ<=tA]_Z GTş<}qߧL˫NW6oQa{y j>5xqj8/ihu,7tHSIS6oۮ:)lcx`8Va**94Dz\5~rcGllh2qӤ (rUJ_ͧ_\JJHǫZUuZ5vU>|]D%6&5Ŧo{85޹fhkHx/vͥ A"K)6rkR"w[(RP ĸr#+V$Kb1Ѹ00>xJ0$o3I{o*]>/کFfi ^X+W1vjfal9ljjuBVEJ_1[5Ғi0m`S[vȕ꺶-R+*uLŮK4c9}̜M;zK:(X+x5sdle"7X*sKOC<#`LLZi)`̦d%I‘&,3vh|N4/tXʝ?P4&gWyuCWJb6Kgdfa4P-6,]4<-L/ձe6wca5s-M?|wr'(Oڬ\Yx~ȺWo?)3.y:܅'D6囐MA7ըV>?~gY'OͦOHQYfSdrE }-Egvo,/72c`_Z`MN_4Oc*{.2~'S8/r%Y'^d 9gLMO*%F,e0WQQA)Uj;&]DXU_v$7M~GWs l,s )ٶ}಺ ݵ7÷ :!nl;RBH{]trIDUWh<*$(mt6OÏN+|%%q+> GJe%D*KJ$IR$IT$IfS$I̦$I2M%Id6$Il*I$$Id6$IRoo6f).I˦dBB4ƧnW4Jarkf3o'/hh2^^ʱ)'Ж_f˸oTY۲N{j5/&7Z::D`GtћR=.+֠QQ-z)Y䉐Q3tWjk^Z՘_RC1veIUׂA0>VEד0wo>:45iqI"mgZVQbt=^N-VӀP^K ω'֍LnjI%gχ0qNhD0.8rS\i=OM;%<8l*vNX)Sh}6(.'_}ԋ!/LW\A=|cSNbSmeӦFYYBZO]s'jh ʀ­zGɛҩ)" 0$1lM`j`J'1 bj;-iqI*OҰz,T`M8W8eSXdiT8qbɛR#/l[l01-g [񢀳:3#9,.Ej:U7Dބ.iaS) =5voMirogS3fjf4yճ QxͿvNsdӈ؝7ݠX؅P&!_ M_|=Ǧ\Ŧ@( ,GħKY/3&@~7lcpi ɰ§ԈM ZcNQ% f8=C4oÇiĥ"pwsɑMq@! anqշa, »M,\،6l#/<|8ZS4T4kE>}Y1d#?uiرkGO6lnp7o3{>Ɋz^~\BEZm]3gf?MQ\-t]h-R ՖEPR@)T "4j@&.ƸDQۃƸh$FhEg?dr65QQΜ9so~3whkp/i)VqKcb%9\WKi%?'_]"F#S鍹0w+ʪRLJaw+j"1`hpɒGnm `%%\S'`.t=7M&k=䕠 nvl+F4D4,9hy( oz [Ibx$B/e/Q(Ʀl{Z-#_Sj\:64R';!4&ΦMrVsSjͦGN>w*Ee/ubWew#,LLa)]K쀎5`BgHfg㿤̱)gyB9tlbzՅ*[ ՎVdS&f4ye0X`Ө tn쓫3Rp9P?V(F$ cykCЖ<; EIܰ'y1F9weU㫪I_a~{5 U6Lٕ1v@@..xS%;FP6Ab:&.ځo삤2@ӃoCT ;N(M9Rue҅? H-^ƒh`Wɦ@+l#]] ̈́Z[(A1'oYA5Yq*R,-GnqKe`EEUC*RW7 sd٢`Kr)pOtzf8iUpR v<_w^M{޾+r5\)&1xp8vnJ;4Ee֎G5Y0~>wvͥ WV VS EU E*D^"R,%B \OĄqaLݸr/8ޖ 79sswVыA\ޟ_&2v*-A"!$ph)lzk<#eEI/[n L̠T0RlV6%z$_?y0Loj)Ke.Ԙb5/Uæ7\XY4Ro7eSl x +>1EH=EĵeD*:i$!>LOL\v6wGI=?Pqt/ @L\1!^fkt#ڭ +¦.?Z]MŢ>,=y杲#Ŋl 2 M)O|lEX6_4ٴ=|8/^%E}eSmlfULm]&Q=ņ'2BHhccoM4S,1ËfBl l:e8Poeh^> X[zk*p@s `ɰʦH& Xg ѫ7Jz΢_U(%֞ќMBvγϦHg+X̦MF;Y%I£JrBF%1.u ɨ1CtSٔ[:IȀ)'I%)1tQ4w@FpR!AfKY Ζ70xv{ۮ\λ#  TD " E ) Ex<@ĔI)j661b% lr}b2ơ{sߞչgRKzĢQ ޾kwoTַgM)+kͳIJɩ>i{)qdN=͜zW> svImtcuC)VFclSh%ou+.jq$a @I]mMoKDhWпG-YuQy][WFfնY,5jl]PZS4Zߞ0b5>i;ؑW\9lz9s_qֺ)jw/'UAaX1iKS}T?2uKU#jSaQ3 T.|?ԣןk&64A޾ ?6:a xOg4͉*>QONҪ]{Q`kG3ި1I7iU47#DUz RRbֺq̗HZn0DTڠOZv^=$3˃iab4^?{qL⭠1hՋw|BlI,5l *k(Rh8zXsyJ1/''UXU4d׌S/\Ҵdˬ48yȱjqk7mkTlʈsz,]Vnjr"4О4yS@Wu>0S?kڜ祼z-;H}ޔqBn̵a.\*亦/䖑M>٢ecGr827h~ođNٔX#?-庰 :7×@ )@%V/#5Dj0*y5 I<݄M5fT 1itM 8Vcfh<9(zOL؇U&l*z)!)j0 >${-E%~Mp+3"3>dX0ޏMсN.FH_B&{?Qcg%݇$ 6W>1:֦\AQc'"<|# \{,zqVa,~ ;ב^R 4&M6=i㡬ڽ~%)a*L4YPZmU,pF6Mq^z:aVmbCA;6'Mز",b0G'J +'4>{dA>[#^?:ѤQ k>:B&KҦD] ˺4P Z eFεXcT- lY/UoZ٥""{wc߸mXrB.03E a6M1W6|> ʝjԦ"۪ML@Ҿ#8,|.#"`.Y^@z6FE^ )zr݉=}& 6dq.B`t d;gOepej^4Nc#O1e7aEDDDDԦ""""6QiӬMEDDDDO_DDDDDm*""""jSMEDV;8xVZZ@-ЋP\*rW@D.r/Th)&tAͦf^2sq6͖ 8o|z@{'9r}߳)W~Y͜)}j݋4%ׇFU% 8r.4۔iֵ/ GAf*feږNgZv'011=W-D¢.V'8{(bSak#3ؔR~Tki {m4Y. qc,V=fۻvȕYތ7Z#1KUJJյn9{1r.7g 4ZiunLYؔZ7cSN4)"o?wќ.?ySgH1\:s"~TH<&N{Gɩ`qdI'O/|SJubl艏?=wKy{ӲeF0ޣ?ѝo蓐REݑ267R2raXMKGoԶ@EF5,J1@5uI(]t^( owoS4-F',IJb~A׬o4i)麺 *(mso ƐcтɐڤlRmHDҚ&'P{i_ucEZ$"e+V&@OWW[sKp[xEd^R^4u"nwmje"qgbb)qiu KP Nes?QKZe$X37w*Y#<ʦp9O`l> 68$ OgL!9C8HЙ14z}R4Nk%wCNgIz[חxv¦N&{_pt`>L .AT9 ƦL>s?O< ALI/)2 05`0͜mJ1)^Z[ՌwDpspCʦYnja\43]=o;xؔ~LrU^bNϝiK}&0o6#oԎNkm㘇Ma t3-êCnx&&&."#ضq$έH' V[$C @JA0<8͎-ؔeS" haI9O;챇, %Y2Gy/ D!9'M1$qɩJc)8;xDSR%Bѫ兵6v\.IGu]=o$""Үj ,g*aSEB"L+("N glMp_FdMXIʁ Y4H,p"k4ᙘl 5 %¦^%WL le>χ!ILA")cӧlJ2 ܹ7zwLβ2عR{Ձ;?޼d'NaSL3*%pyGeu ȳJrڽ@ؕVMot/jn|2dӂՕ׀간Q"*P܁kɃrKFNjG+j[C3 `RZ'\Ka.V>%l%9+˰Z7cUxє!jmyE@f4ojCq((ʕZ`:!E.Xw7-QEa?A A`X*I !MTXژ3&h7"WE-`ڴ ZEE.EEp6q|?zsg{DtI+l2%JAo唀 6P֠%KSS]c3˵x"ڔ,E~HD4NY3NAyt b0)1~8Bm >qgoզ~ϤU?@qz$i?C*)Y U6嬚2gH|$Idm*I$kSI$T$I֦$I$IM%I$kSI$YJ$I֦$I6]ꜥŹ,==nK$z)5hg6sa2P ௭Bqx8KN:GZ^!XXᣮ>wZ:}@=}X̢okl^<ۛ:{ p}2˙7ݲpe`?ݮ=Sx[}a =޵hy~W.O\5mÁlm:omz M1۫ ~?Nط?}IOw璷Lxm/fs胉ɟ_{Y]Nk?N?O)miL|0>,P]o営@[*"Җ.t++" Lf38Nf1q4qITb j"bDPh?/͵o9<=mrx_g>CZ?N;xo>ȱ%KCp'殑M[-|1S_|+#p]ocG#ua7/cGtߜ)⩜WOVGVYmW}WNaf&zGg*ZUFǧn;8q`x`Mc;<,4zȾ 7{hzt=-Qq)Z!5#ohNe66`Tfnoy(o[]#G'UC-]Cnś_909pIi.mva]^7ME.FvԞC͝u'gd˴U8$;OKvjF8YknЎYyŽ{񧦱#(8|֕UloAF&ЇK SʬPYZ^50>;4ypkΛB9n^^І5-cdUr-pQ OVPK>g7x CwjjH{Oк6U5ַ(E+STjaPXRΠ3}`^Cd:tN| zR͜IG4AXM6lò09êgזnmQp%31HCJ*!kWMUTE%jweEU=Ґ[NIP,<*ޛrV@~闡.$A5%e"kڹ@oќgmJ.gfr#иjKsi^10:D+NϢ֒IYצkhN!, AE I(A̡t CHLHHmA0OU9% Sz[\H(GS N$v.6%-z`O"t@S$VPciE>ɏt%KKZX%bm2y_'[3 ~eLNϙs>%G^RL-C+Ff˶Z)ېp{i☴4VLzGZN&`(*BRpc%Mu.B.E%pH r)LȼiEu^bૠIJbA(`fWՋGRV")phA<Ԟ\"=vۺ8EBکm*5и;ePclB{Q sW5*A^KMs֦AsBsiҦ$%MYnv{QmJ-2 -"iYmS[{̨7b }Mۄ[B )0+צC 6EmS'koU9[wpbj Ext"ehϨ=**wЦoot?Ah>,,y=|$7I%GKXvhEXKQ LP-zG^"kPYn&7M`LbB@1 ə# ĨYt`j8s8)Ot9^o!S[t QMЦ[gхqtHr*>t%D'dp8FT:xi4Igd@ȡ; -6oxrT)GLUM/A:p6e򲟇@j:L:&2- rA1xbS;ND<ӿ@|9AW\֊0K;CXu[(S pq}hSk0V\pgP(~倏|8ᴄS~c006NJ `0 M `0 Ӧ`0 ]FEǧX7 `04O'm ƧdPɭ `0 ?/HM'ӡ/ `0 WM `0 %IENDB`extension-manager-0.5.0/po/screenshots/_2.png000066400000000000000000001101021457631363100211300ustar00rootroot00000000000000PNG  IHDRĭ@bKGDIDATxySOaVaXQ( **u(hE>.UAmZEQP)([n*˰ /NI2ygIn{=9s@BDu .@sB78@b!t@!0Js?B"҉hZ ,aӬCEsnd7}@h5yi64cq?bL(X&SCc)9|k~\xnGá62Pcc9eF`h3EpK8{,&LSc:ԲZ<~7_Ӡwxnm7xh RƆ`߂mm܇#Ttpcg6@zs(K9fHcCĂX@m$f&b<`CƼS`F(/bF,6"HXO,܍x_Ahrmh= ޖZh;0&1&bQlHDn?S )H,EcÄ!N $BhL |pN@0{jVm_gv %L|D < gs"<4ON-8{`D0s&b:Lz4/WzyoGaS4O5 {># $L0 _gu 1x6 y&P&bW"D!}a =8Q2tlh `^`4iHjʍY}[y/H/@p ?/_c|y1y k¢D(|]`BEG$2ϑ`26@l26~$Hqtog8p\m<|8 "%|=| _!"I CD.]ttb#);plt۷IёP 0| ahp B{MaMކ/9aJV`s[ѥKZQuuua2 3[\XVYV%''+99Y}qI']犊 ՙ!$ݮz ˫ڻww:$m]oCk8Li aMNLV~ '\ 0 ázjժo֑0y6uT)M:b)HJ`ޮRo8&g/Ν;əNCv]Ó#сN~QkG0[1]CSZ%jjvfvUWWzRo<H̄)vJwuk< މΝ;wX,1USS#rQΝykIǞE|c"P4Eǎ:N mSJNN0&V Tuuu&)E/Ak@mƈx؈`y ۛiKNN%ASrr/հ7IZb9HRS,K>*0dXA{!ۥ=k̆h@+'ƗuAlJMMUJJdiz֪&mSwu&=M&AL \'&xsͦLy}j*%%E)))Ruu***q&O !:r5l_X&X1sYvӕm5iiiJKKSYYBټ6`{ܗExv> o|XFF.;;[[3Sm4A"<o};_{ L++++dee)==/G_6"A"Xqoժ{=͚5+EѾ}{o>gl6[H=e¶Fo$H4}&}#ZjW_}U{ֺur䢋.҅^>}(++K;vмy4m4B Z}uD7nԩSgE\233G0 qRzzTQQ!δ̈ál{5ΓXl.M"Zl3fwںun<&f /h᪬ԦM$IϏrl0@Tu%(ESuu6m$áI#<ѣG׿6lE6ٙB39EBc5 7e˖zW[ꪫ],t 7hZl.H:rj(XӟTRR"ժ_~Y gAn.v1ę@kWZk\srrSO2uga2+s$mGrTX"c4atDN!ht뭷jѢE*,,;CaÆ5xNaa{1w}Zz>ShtҥKfM6M:u aZ_aa=c/xb3}zTXXUViƌ:\%IO?F-I~F߮UVi֬Y3gtiwH Ėo۶M'tL;N999zguꩧj!ۄHezLY 1uUZn~}ݧI&N+WT~4}[IKuYgHw&L:)StWoCgPuHn?o^=F2ekѢE*--mœ-Z*6k,=s.ҭުRmڴI ,@СC/ؓpwܡ;wG2eL^ziݚ#5qw—'|"&N'jҥz꩐ z$&=3gΤgHO? O}h{u!uI&Mҋ/+WjȐ!;w;9Rz޽{5{l;Vo̙:(++똳;yzj}:StWW_ j}w̙oFÇ%I6m o}D\r$5~ ?O>s=vٵk֮].LIII` >=R޽UTTɓ'z&NzJz n=cLBoOhڵ޽N:$رCk֬$=ڿJW5k,edd@|.rm۶Զz!=䓲u'RKp&LPfffP+))я?#GjΝ馛vZjj:su 7JwϡE3gt7… R}A@lru6tA]{~!̺!nڵdٗ,Yܷx EZj]aRUUS^^\6Dm=&p'Gadɒgj*++p83QVV\CD$,TUUVAOVEEהi ݮÇBJIIQRR⠆a^!@ fnR.JL#H0 4L#H0 4L#H0 4L#H0 4L#H0 4L#H0 4L#H0 4L#H0 4L#H0 4L#H0 4L#H0 4L#H0 4L#H0 4L#H0 4L#H0 4L#H0 4L#H0 4Ӓ]0]Vp8p8dٔTl6@ ÐnWMMdeXdX]4DA"A!ͦ F8 YVYV%''KjjjTYY) Pjj]RSS2&z1 Ciiil12A$'"+++EDVVRSS  ᖝ-& $aJOOvQ@3.0 bf*--MII'$aӵDJrr2s%1 Xnٽȵ"@J%D=7aBl6[ Fb!HD  ."ޠG"1$" ᾎpƺeZp8dZ?hٲe Kc7PEEEķ/\,?amݺ5`\zUVV+ f0x7UVV, 6LgqV\dۯ'|JIҐ!CߪM ZF \EEEi:mٲջҮ]@zz$o#%%Eڶmk!C(--MԒ%KTQQkV;wT$I˗/%Im۶СCj-]T{bѐ!CԽ{wQK.$M8QSNi6mhԨQ:p͛s}tuשH}ʕ+գGm߾]~$իZ/A"L ކ)Xt饗pE/n:IG.s9z뭷TVV_#hBZdڵk/X/Fs֭.͘1C:uR5c 9/խ[7\R{QJJvhBիejjjԿWݻ,YzhM_&bᆱ2]pw-o߾V.7S9߿_g*//OVU%%%:p$i۶m:պuk+33SÆ ֭[cǎek߾ݻWahƍo߾]ÇWzzdXtСcm2_$@0= &$?_kתNܹs0 v%''cɲ:|f̘nݺ_~4hfϞS6|cӦMѣRRRaÆcSYY4%%%5:|1 Òiڳg/IE{tdIG%ݳgOIR֭}ij߾ڶm+IرV:TiZdrssNTvv$]/ׯW^ԣGmڴvmۦCzXz-ժ@HIIQv8)=ffC\yʒjէ~cW_@'xΝs}8p@)))*//WUU|2d}i޼y>{GLuª=?p@=CMV640 5L0 5bWx5{l3F2 C>-[bM f b׈#CBī1chҤI2 C<-Zbypda6L"]"Ǝ+I\u$"_ 8)DOYgpr8\Af.j£"~iלI&nŋ]L /RmݺU "H g/qwfi1"$Ӄ>~!EA~J~{cձWJJС 555&v'~_QN4|!áLs+0 mܸ)))JNNV}}e3ϨM6Zve̚5KYYY*,,܁?P_Tԛ7gVjj֭[^/\i/IQëU{^UޏL38ӟjOW_}w?+VІ \ܱlyb mڴ)='>c X,zW7駟vSN7|#sf7߬s=WZt ?ڹs^yzO|i&;LOZv߯g}V%%%:쳕$ZJeeeڲeB.+EoШ\/\TTTݻw{TΜ9ڲe~'=r81b1ϳlk裏jÆ ڿ>#UUU)%%Ecǎգ>-[h׮]z٠cѢEڴi:3gbh̙駟c͛7O'|zkzM6M!/,\P7n>{SroƏ_W~*cϐ`%OS7^@>m4͛7O7oVuuu:DЦ+//8IݻUUUc֮]Ν;kΜ9Zff͚UViܹBt] ƪ{.رVk ֪P]v=:(##CׯXRRR}ҷ~u]W2uضm222\ec)77WsN:$wqjٲ10GV߾}uVԹsgYV=cr8"))ǂ)_0q>{S0oxb=ztk~qAs,5oޣy?U 4nven6z=z{1YFwu3?"))IVUVUaNowuuu;fjVIGYZl T#dz1q^zI|^z%ٳG<1/եK]qz%IeeeСC|:<)rܹSV5{vgǒs[))) [>l8ߛ@w \$"6!,ͤޖeee5߯_?mݺu҃>kСjӦylΝfx+?UUU>urvڵkV{c?|-[Lٝ U߾}{N[nUee޽[w*P={*?L9vqiʔ)뮻\AX ~ XՠA47^@$7H l޽߿ڵkjmtd!CoQZtZhѣGM6JKK)*J}Q]}ծ3ѺR=ܣN8AMK k׮Յ^vک]vKyΘ1cԧOjĉlotT˖-ӝwީ.](##CC Qzz*++V~ԲeKq*..g}TYV:x𠲲te)77W{z~OO:uR}}^{5z:eZնm[*ųj/^{5zc-rc1B}o>߁Ho(ڄ-\P֬YW_i^I'uZn~ߩNyyy>|n6effj?jCwtHN`|eOjҤIzꩧdJϡNԩSEgց;YF?2227[nQ}}1&I?&OiӦ)99Y6mRQQSOn?$}g=Wjz4~xr-6P_~eO=n˪ɓնm[:tH׹#('_䯜cǎUzzx IGYf?ԗ_~X e}~ X7>߁po("u@m}X^tw΀V{.ha ÐaʋzǾ.BuY4ie޴jJСC}6IW_}Uo͛Ŗp@d۷57)Qh͚5$JKwmm8~v_n<;n MPؿ)Jw8{q4̛|ڵQ[ )))ڵvRŞpbiN Цx1ׅdXT__P/_2dΝ;뫯RVt뭷^tㆯz3몫? .\tM "qf$u]zH;C9sDX͊fS~~&L7QI=}9!DD0!6 ;ŢVZ5\|AVU*//W@+//WuuuC@8N)>ĩRaEa(h, W#اOJ{Q7f4zq!!M ^yyR8?0Q]]:eff2ohnr8hNUQQ! D$ A"Dj70a> *%%EIIIQ뒌v#!P-Msc>}baWmmjjjdeX `ÄCo*++UYYz޶CL[˖_k!ӭeh!Id}1v> >!"1${p޷X,r@ICib}wwփXiрB"u"A"5.мG~˂xnBA  H@l&j/[64`>8$"9+'Af)?7-n!gyJOO"}8$F un6>#H$8wh,A"@DAi $F`Ai2qDM0Ar{Q)bɓ\tM,kպukI? 4qD}ٲZ233vn_|^rrrt7FAĉd X3+-Z4y2ϋk܏Xzc,ƒH$W^yE^sYgi͚5:|pHzpoNN.rz/C^a'h۶m<DӨU]]-ikǚYzl5Wbu8X,!=WJJJ̬1JKK~zwqaY_VVJJJ>Dd9mݺu)kǚYzlz֫Y_j}nCdXtM7i޽j۶ O?iӥ^]vi޽:,hϞ=Z`jkkuM7i֭ӧϟz,X ժ.H۷nwmSm4zSSSգGZ*tQ#FPzz˵h"}Pyyy*..y;>/f/ײe˴sΠcǸ ìp:D5G0 J:3N:f .t䟜z]jo6zUQQJASNڻw|k׮Ր!CrSee?<\{ڰao|xOrS|^|ڵk޽{/>znw}cZTTQFS˖-}Wo+**)-[t9(%%E*..VUUUXHA_u[\\8,mױ揯:ٳg??N7oֈ#dZիW/-[LwԣGmڴ)ϩSǎ}~^eXteiݺu/Sw6ؿW_@8nXmm*++[o5X>mچ2eeej6a:)p9r{9l bQRRߺ ,..ִiԻwo~:35{lKJJr*^`L|6P|`iuގK0dkcqٳHcgzl}mo߾ϴ櫎ծ]ԡCuA6nܨ={{zաC,á~A'p eИuI96DPUUZh!Iڵk233գGIG'''^?l^? j,0@{Ow֭U~*Ν;չsgiFԻwo:t(7Rx355U)))5o#93 C~  QZZ &VUU|^|Zp.vڵ5 3>غܱc /K9Rz$}ջg#aٽ{Zj]vիqYp|}m(emoǚs[yf$IWzzkNFcp8vZ7Noϋ;~…+_JzsPWW`s,:>ug~8f m,0KY~SdNJ:?rrrf͚AJ%%ջ66~n?r/enxlI m(P֭?F(Qճgϰ\p" Qү_?ubw#~"M@A"H0 4L#H0 4L#H0 4L#H0 4L#H0 4L#H0-)@l0 #Eqj{hAH`CC6MiiiJMMfh0 vԨNv]E%EC$alPjjjbjjUrr$F| 0 *;;;Eq(55U*++SMM a"A'0F!VZZs-A"8{"]Ldee)550 9nٲlr8. A"8h4S2 0@ "))Iiii.hҔy| A":]@$''3W"$9g"׊lo0)1&EW^^Jfv@3G{##BDp~#b@9H$Z!ofddhlm D$b!C+I'|( $ڵk`֖-[F 1ֶm[ :TҥKw^IR֭5l0eddJ ,$s9͕fUVNS6m4j(8p@ĉ5uԀ۹kgmVtRر# XQgz'%%EGܹsuuM\pf̘!ժ /P|߯tUWWbO>Qii4fmݺU_~u릕+WjϞ=AonE3gJJJԻwo >\Jt* 0)B%4VURRHmۦ nZڵSyy/Ȝ!0O?]b 8v#àJJJ$IEEEʊ. A"pƦHlm,99Yv]:5yyy:sc\Rwi;*A"J=޽[۷wMرV:={Cjٲ# Ţ֭[Za N)[YY@,HIIQvdX]I1G"㰦+BaHjkk5sL-ZH#GfSYY>r}:UWW*-YD7oVΝu5רAW_}x≚;wkyUUm_lmٲEw}~Ljo799Y7|;kI /r!$!Rb{x5{l=*((n?|#iA?O֋/? Hk!1b+D<={ƌ|P˖-v1}*,,so*@#FC= ƌI&0 =I;Dİ&!9&5f~gi >"aG!Ao"!nŋ]L jB/;f ̑D<󌮾h1PPP'x"B%9ku=aԘќ5YV|ɦ.@<:t`]s5zMv(A"L©wޒ 6D$޽{SOi.h}}]k׿ɢ!$6rhjtS /Ȗ4I:$hM F ڶm+I]wzbQ  aЦM]s5{n:M:U'xng}޽ #!8[oUUQQgyF_}x Xa=]_|EcX@b!H)YfEh"̑xN:)## z̏H0aMaDlݥz#~"@aDX,WJJJDֿ|ėzY,hMŹ.hho$z$X45Y,(++ɷ |'gاOĴz$AX,r8VZZZF' k?UM}[n>EuuvV+a"A$,&Y;jUEEA"Nшq樢BVQ@H v]V-]xQgvF q$H4dmZeVeZ/ 檼վDH >ĩRa3"^8>9Ç4%Dp~aZuuuLy46:9'}{|$$XDNZEm}.mn{]]nj'+ZTHRDNAr002|s$z>󘹮>u \]$?tzֶ8b$" A"KK?07S  vrQ rݲX,GzkK$4 غ7LL~H6f6d@o,(""A#8.c.ig.ۼ\!]:?Iw$ )|; : zQT BG$!A#4 O-$#H0F` A1D{[I>|A-X@Ew]b$$$衇w)~5m~q&'S@oߑk֬ԼCo{%\euZmm6nܨzIܹsw^UUUrvO[zú L4T=#8">ĉ#F(&&&][S$3ްؾ{@GpD$ժŋkСrڸqΟ?/I3fΝ]xQ6mRCCEbbbtR]V8q.=33fzJR M6ҥKr8AZ6M'Neeeiڵ-qh1b***4n8߿_)))*//\ڶm***4~xu]zn;GpiUn:UVV tw痝9s`1]w>uuuڰaOVEEEH >iGwoݭn'=OIVyyDIRzzl6nv-[L4h5w\*,,9eP6MIIIJOOWqqp(!!AeeeJNN… !nښ_k5JKKSLLRSS[ ǏWzzVc%&&phر:vXh~=|YBڹQee[̯8v[i5k̙#{4iz)_&w/'H;A+b4`kc#-ͦFEEvFO=5}t͜9S֭k))JII[mWQQ aÆwѣG1c護jPEGGvv]mϤ/BYƍk1hkg;zҴh"mݺUeeeAIտ&빼6M|TuuuHy 6LɒtC}!_ΝSFF~2Ցu7dŋшտ&9Y[[H5A'zLkS[Iw|ol6Mҿ#hSCC^}Uir\zu}̙3xeggwui6mڤ7L3fիOͣ#ױcTXXӲp5rH}sӳ>/}K˓fwiPՒ''ԭުK^n}K_v0v$i۶mڹs4}tIII*,,G*,,zjCӟt󏉉O~h}ͦo~ڲe߯[ni1z饗Bjہ_R|rX?{ァ{ꩧRzz$mϠAD>cرCe[׿5h= ,믿 /$"mݦ }ھ}$[o [lѱc$I/~ߴx?11Q:zzEPя~+WIv_~ZӦMk1ŋ*++ ;#I;v?裏jΜ9z'eق^ٳguVEEEiŊzCcĈzǕ_|Q[lQee***Bn @oƩMd?~x nܹS.Kz~ӟ;[jѢE9rZho[=O;vhСZ| d\.}_sx<{~6ԨF RffnرC+W|bѢEڞ:tMfddh۶m[GFFTXX?:wQ;z;D I?~~JI&?2旘(Iɑjծ]r$I6lseffOMMq$áx9sF.?[nE-m4)S_&MAb|j҇~B͞=[?ӟd&ވ A|G(''{zk ar+`wTbU]]]'I3gΔbѣG%I咤;vEigZfΞ=Ǖryi_תΝ;;2ޅk$"Ę1c۷+++͕m`N^233Ĵhß~$i޼yyb\sTGddd__r__ǏvkҤI*//ɓ'ƠDWccT+SVRSSoQQQQ/鯱X֭WU+z74l0%$$̙3/˒ &(::Z._t\R;w?w}WZd$ut-ވ#$vu{%I-$?8#G*..NVj1ڵk;w}w;$^z%)77W}-['Ov]wqN 2D۷oג%KsϵGvnF0֞>@O<\./… ڶm[<*--=ܣ1cZpVX!өG*((P;z%`p4ր}ە+}ωSN]YYiuڻw,Iܒ\Ϟ+=o7az:P{l8"A1c $#H0F` A1c $#H0F`,*wx<.V+CA"y^y^l69vl6-x<n544In[E%ܥ!f)..Nv=^jj*::ZР:n~`xd5`p .ݮj544&"k=x<9Bppe"HDߑpvD"HDE]mlz.= ^<bcc] bccx !p8]O$!HD]@wZB|[78)2$"f w c#$9/| ]F9$#H0F` A1@?4Y,p~ OjӦMz7/jĈ. Aɓ[}o@{,XӀ$Icǎգ>ʑ tڕ9s(;; 2 ,ЪUdZTjjjBC@HΟ?9snІsUWWa A!9u.\3g9]llrrr4uT\KȄ d5zhM2E/ɓr|tkĉJLL캆ЏիWV~~$vg?\%p#??__t!\f=ܣb555iɚ6m֭['-9H̜9S.\PmmOs)11QZ={l٢ǏKj>}j…:ql6f͚7ٳ=~z<x'n:-_\x$]xQgֺuz~yyyzG!b͚5Z|V\)ǣUVi˖-. 6%I7pC{^Y, 4H RUUn> קO$y<3g?3p@%%%)::ZǏ.m}! zھ},Y?(ɓ5qDZmίqCRzoG@A@8$`DGќ9s#IRrrf͚^N-Rt wj^'zj5+W֏cm۶-e&t_ >\#G􏋏$6ӷWQQM֩|{ߓfS~~>!a tHccuѣb9N-[LΝӰaeرCwy-[~t|Kկ~+͙3ekio%`|[W<>Æ [xozzG :˪f\}}uey<9rDMMMjhhо}t)UUUOuOkQsG2 /^(IӡCt:K.ȑ#r\j}oƪZY,Y,C.\xFR$$UW?ݵ*HX[ƪkÃau9qԩ}wG?b=c?>N%%%ZZ# DݻwJInIgϕמG` +`Xn-(8qj@4cƌp9Q@!H0F` A1c $#H0F` A1c $#H0F`,*g#1xp"@IIIK@&$#H0F` A1c $#H0F` A1c $b3 ~*77W6mқo_|Q#FwIG]zL }kzaG$ЮL3Fv#::[;w\M0?JMM SUo8"iΝ=^xA=LsN͙3^uuH?Y@0avF)S(##CR^YYY}iΜ9QF^,p8TUUtC_ A!x Bڸɓ'kĉ*--Uuuu p"H ,5k,=󪭭$*\Xz+Wv?m2яq&E||$/l~je@f)??B֕;4b9N-[LΝӰagΟ? &ru_/V=77Wկ4gBzA:~xr_""A"BO`?!H@( ` A1c $#H0F` A"B,^X7tSqg… TQzHC+V5tbnؖqu3ӶtE[mOLL}yn=}\ !{=M2EXM4Iv seOmm6nܨzI-ܢ۷gՅ msm&LOi[#5om7C_{J~nfIG#ۧ0Wx^8q?n_# }՟>mK`w&ͺz{+}}]T @ٳg~3Fcƌѳ>oSlljjjei{N4j(M:Uׯo1oŢx@%%%JMMUcc?oԐ!CTSS7xCUUUJHHwܡdl6}_KѣO$5JY]]{cZ`5JGǎS~~,~]pAiiix<ڼyΟ?/I3fΝ]xQ6mRCC+66VzWr|G=򔜜[NSuuu}m3KH6mjŋ5tPnmܸߞ`˷N8qiƍ:uT}֖aX}^nyT\\Ty<ӵkɓZo_ok t7ntW 6ݒ%KTXX*۷1h]=.7obbbT]]ݢ`ߣ@馛Zlo߼ys9Ԥ|}ڰa\.$phҥZv5qDu]zg?p@K̙35o< 5sLmݺUuuuڰaO'wҳv3fzJd%%%i*++SVV.=䓊ӢE /N̙3{nqr9555bjZ~˕nv]AArrri&]tIEE;wTyyLyiڵ$:uJ۶m$eff`˸Zx3mG꿚i{Z%زZ]QO5:϶z:|HR;HCZ,?Pt祮0 ܹs9r "˗/tV JIIv3dŋƃ*''GFjWSݮ:tH6lPzz)**Jcƌ$9R TQQ5vXI;#: dIRtttHWcחN3;ʹZV*Xvhk[ ]UOCg{8p@ǏWzzN<)IA8w222ŋ%Iz7%5ڻuV}+_QMMMS:رc;vxUWWsԅ 4x`ku]\tߖb?y͟?_z%I zWٳgrӧyfENSoڑ`ګ1X˂izׂ.՚,T+D[Zz~޲/_,ݮӧOJ }9sƸ暚m޼YK,VQQ>/uzu{z[={Z5sL:uJ.]2+d~kgk+ÁX>=lW='N:uwWl21'tƾ&11Q{%R[+s' x0qW{^jm8 J\\:={6ܥjn *_ mF}FƩM@'pj A1c $#H0F` A1c $#H0F` A1c $#H0F`,* KJ҃@K z z @ U €#Hp5ހ @@x$z*< ؄Y&&g*.KO0=$"z*@KNMPblfYUC=yҀ!1i_/;j㓔0$C+.9Mg,ُqt"B$p\;p?DՅC䘰\gx=e=NCYs4b,x# @I͞!9D;w<-`YU9J͞Slsunpz΀!KNSFRB 4,%XRFqi0$#e$ SGK.;,DŽt,9&,s%}"HA⒚TSzZ1\ yro[CE NDCmG#lwo\l @7$_WpD^$?ZF` @/Q }A^0Rڔ:2vq5_EbxUE.}ȩvWkl ŰշeF4tC cѫ&EY-k wgSlVwY9I[)L};:H7 n{-ՉҦp+J/&cߗ85> $5ntsCO*W#IZ${%]+Tj:MmWnW WJ]aҧY7PmWYwMcHg-ԁ6ԤwUiv<8ՠ튷[Bߎ}J,XP-7ǡ*({t̥}*xx]^ݺ~dn>V})r{Vd܇*Z<)NEn9-֔ꣳ&iٴx=R9 [fmu!cĠ(F[tB*<&[jωzhWk҈>1N7euKVinrAZ6-A5jWaf? 5!)Ѻs;N7*o|Fҩ2W-Yݟ>\/%(X}HmKd*5m=~ĩyc5vH_#a҇nWXsI(y5}]'E}\ #G%Jw'dfJiωn;T'I}]=Ry5'5フJ>>רM1ڮ7 B]Om"|m>|QxE6xӨ#I_=.H)L/XvD7'd ׷G[6ߵ(U?^Ne.+߮TӣԁC4iDMӦ:4ؘ4\;5zO,d*o|+YUz}!єvkWӣ}Cd\hm+j~8Y#2pGji=urWYcXc7=q%0[+N}~}C~ESӣſR:mvC2Xi՟ʻlb;ڻw,Iܒ\Ϟ+=o7az:P{u=8"ni[ӎcք!HDhEŪU ք!HDYcపdCHZ]eRRzd|K5E.}G$eH`Cr}ANz翣'BDFѱ ']V(n_&"P$I7Nm;$ Pw{d'U ImktBOⓒAUpe=|_B\A%}&Y`XӪ+4 fRB9 .+TM* fE&KO,t3H`; > $Is>ZU_ IU~VImc8"x%gU~M#&-P% f5Vtlٳ~ETV7o|ŋFxבxHuC~#;?vlERD?OwO1HEׯ'u\]]?Ljo< mZh (J$1%]ۏ?gNSsqq~ayϟ)ޅH;݁":8hXJ;6օHMoLRjb^ŋ_G{*S&~W"b8LT}ܔB vo㔦 g+0Oe[Sd}+9σ!H) v 6Żu<,GBmWZwMIZ5EK%ۻDWw}vNDjǥ?ixhCMkB*F5qg㺞>66|kl\ޑHQq MqN_&}Ż{S}]K;]w|{w`y" y)O}weҍnM6Eleh;M<"  4ԑh<,SޤnZSD]|&]vEoQ<XX΃E&kК%6Ĝ$NDku!;v%xS2yU- sK֩MwdJy_/]S1u*)HwM_ }_ҍ>]Moʷn5ihjt])Mw5E1}*{S7F߹tO!H|u_@HKBD_m7bo}țt%c]Skm pj$ tXauv$ƍy`3nyjշP:166 pi+LDw&^us`Y6b4[MQw;u!vi[|wڶBǧMTijoU+uluk m 5f,(L FD$n&Ju7%$"J! }&-M 龒7fʱ1Y6 SM]DT,T5 cwcZt8|M NDmBD߾>'$"mEzHmO=>۱;WC\z1cb8kÕut'$"v&cP]i( 'c+5s;>jNok0ߴQS[1%Zc$wmbyEa%m^i $&ұ5^G ߦcQ9ը6yj|] ޽v#m]^=|I_ koCD8rخ?MuAbYd VSjSW6Z &NNl$ā {r5(@9~=o|g_,l ڳյgM7:H<|x+:`ŁrSC@1aH)a756^e5u-ܽ؜\agf^D=wCw:.]TsѥȰ5skaOC`?WV>VT$pΣGf>*bSM?t!=~BR ~u=&!}öݟ>O)U7`hL]=A>{BXZ;6Ctح$ҵ/5 ,.%np 17gGӁ~3f׶$S`x,`og%U†e8kQQW+аҰJoe ņxӲdJ|#a^CRV`J`@S[k{skG""lurXi# 4iX`G% H\҇58*|9yVaD"L]y(N':fVGc#:w-9)i>dM9aM;`)6[!|lj5mݰmp*pmm)9GOT79 )82Qڍ+C5j:%E!hZc>eFu +~CԿ 0.%1K['m}U !|$?[iXiXiX'U 7 o`]>1z(x/#R:wҘJz1%Ytȋ^ tY `g6SbB%WB)`E8 (2`m[iq[JѠd|pb[BԽfcjf=z~tꍁ!g7 ˍc34'VS)l@)фLGƦƞE[VԷF44Ij[%l+F{ ;Oؙ =n(trk+.6X(~c;6f ʡSW^q K;DP1- 3ma`idԷta-]HBE9Ű-/C^@j+%-ʣ ![; +ƔƔ&St'lIFށSAGœ?`_!>5{-;:߈]C);AAIVv.D&E34J})N9~+yE/`SpГ= KuYD0%ߦ$Q@%!C+dWlq R :fk [߾҅ JjH:yVʝ6)BV{mIVT1sb*ʘU[dbVJDC`J͛wV5W]8$2B>Vly#VH֔JyT|{N1ebP1='w+*VBlp7xiͺϺ$@T)ֈiQش7|Ua?}')PiFY ѓM|҄ԝ68Q5MMr)X%ϱ/ O\_'m)U8Tzyro_W8%#iw "EŦ:(*94XH3 #Jf\ӦQmgl:5L}t#9oRΟu<&VbN0À~?:DGۯ?W.?_ QnE[ҲdYR#HNMaS}~)prڨxj65Ouw=YcdӡW┪^K(5 dA-%z%SH&̀dax袻gaOELVv[,-}xY*/Ш0 Tm$+@soA4˞}Oͦ&&SMzδ*PcT@orPxݺbW[ޅl8'Cv+<=r }KA qnd;ZZ Տb#]/ pkEkB[ ğ\%ZBFt*qS_H,p8Iș7n)2D4d8p.l0VmNhte`OG^m:{7uU{ \l fxr8[R H*z4ɜ UMr* luĻRQRꅌ `i0?e}[sS*CI92rY%)u4IMT*є:RGShJ RZ@zN4䂧isE e'є:xSj]Kmܱo$g38nZ0 #H  @@ ”<6"*(6 @+8 #J" mkZ-y?ʪP2X쵾׾Nus9{%TfXb2iQr: [" wr!AP|_bJ0c &>) n٬"SI@a^;=]l5(}P19USuE*ub2Is۟D x7y28IŨŴa Wv/4gksK };~f uHjbɳ]lyGN޻B$)-L'eE+֥ <.:S 8>}hA;Ӊx)%$5ș48ۂ_46aI6P<|Xd8\,lu;"Te2ULҧs*qyS.Yt!뙑ҔB, ! A )L~7 a1u&ߨAKH?0N7OJ¯~Dg1ʈf5' ;{'M)(31W^B!W^zpvy [WYr@1ohb\.KaȜJ2a7UFSkvN8c^ZFzWsBLL%ԇ#tΞ ]}{ȣǁ70C0*weߋ3>圙x gM=wYgF$'I{LH%S?+ӗ',GT:tD.YZ%bێHlNP3W+TlZTPV6¸hP~W3R׻dZ=bb5qAa*=Bb.aK3$!nwFYeL0+S~Te9󳨽L|f5*NHj?X| zg;Hϩ<@ͯ~OLܺHgTbZXg0}0Ub:hFgXћVi0rdf%S xqH.9Ip̀JP* EPGϩnd$8| ҥ?gC[wt643ݺ8`T,e矍zdT؊P"LISzW:#cjgꚦO>%Q$@6LMsϾWC44H'o@=7=] V'g4d9d1 Uh-`)/.I1i$#4␄B=8ۧ?A~}dFEʑtρ#WN旭>zs-#M;g޵TBVg }Kynͻtpf6C"6=&! i?KS#ДLEȸ$r_##b M)ʽi6trEUDUpdBl `o`O!A Qj}N)+,7ҕtrA1Wt B%#} MWu_ڮ\t[TNӐ>>Mk0&¢>^ 5FMu ܠҴw-x$n;B7+,ðXݚ DͯBvh Q)#XbKwxTD::tbuQAVt!PuԱmAV mUvF:uCV;soƭy: Ue7UJoT̥C5;$s7E[.C M+*Mk MvmҾh`|F% ˑV4%1tB)3zI B-M)M=5K0d¥\q{-@הsՠ{˶A5;{ه|u {d+ MIvԱ7L)6,[έ+T0? 46i7V4ro~eA1'MpWW9szFѼFOxXO(AS7C Mkw5)M轢cZP략_~"hʄյwtueǤqTQ L@y!4i

Q&%֓UGr\6O܍$|zwϞ+WN$ AN1)8zivmyD˴'(o{vC((rHρ+]C3PztWD=7Owl;颤䷲休Maᅂ6^+N7Ol={(KBSltphZѺ}g]J_4U*M TijMS#" RM]GScӖ'D;0ry(sJ Ѥ(f/8.6h*5r |C />dyaɳ?]pӞCuJ Yy5 PFܲ"GڼU|hwۢ)6ԡ#E Md${WF2dxr"ACShی(m;`cK=4^r'k|$iH[&0M #7T~BhJX<ԔN?DơeWT5Q <|lXUp:fSiIvhzwMKf;u\i ^Dy;wL@bd)6>??>7CiA L̈%!K0(/Yf$!ld53H㨕,Y۞م ڟMlI t{o 4-#XAM>JS7u}S=HnnăOu6U*#McT*BS}e ;-3}G7O?rXjBr9eM'dD٭DvpB Bɝ!-= :Z*| ya?Дdi7.CM1dmYn|}~,>h/Q>MITdwqqSf&_Xv5f)&<.sޒH{7_4.i(΋^I(#nށť$ iē{ގi ~2-f~вs8J+f;y_kQR>ud<wkBS⼐NK<$db$FB>ZєIͳ/g_7x9BSyWB##'íoy PXҔH]BmǙ@8+F4ՕTW TiP*MJSEMSvqya#&-/ȱy84;y88l4`ہl? )i#qw"BPMZ9ËH-7nӡ3sJW&W*OlL/)4RHKPil9$߃e!sT@S0|TN33f'ęlawN :Q=".1b!,LR׊8qKa:3]|jQτn qg4ݼu;>$Rh 1sgo,[~mJ^G%H/];4%)*>nF -<4Su K({4] MMP R Qp<˶7hzӪ7i4LW:Mpo{Rih M 7UAT*M[7n M[ڡmQ|u`ۛ#uc[& 5]"Bh7m) jՍn:S}"7eb$`#lJ1 -a@V4ž& *-۸EHh:*{]逴 %"4*VQM]z~_7n~ ^E=8{Hto$G+&vh%"jAga*s 6i~7 08QRMPuP SeN-1] P&G4 0Uz. Ș@ 6muTLU؃(Mv)MNkjhԾGD#,ݏbڟ~OsrL~1㧋2|-)Ud/^Ҳ=R;d4j}1H9FA[7{4~=CS9Aӵ-iC.!.潒P즞5>yH]L\g`ABp-ŠrEN5$tDOm#7ҌsH}6u\Ȕܠӧ(JSCCipbhCCgS Biڶ:A&1:a1~򌠞QW%\Y!dyLY >sn9^pU.- vbp4<͓#Wx+~CCGΙ7_AdrjzOnhɝ?:Q>Ŕ ^M:ޭ ɳ"'i CMh5 |t"$؇ǰML!#rc' 'ycpX[TJMژN'zzHV1۾W.P_1kR$'B!Pc& 8fj᜛C[ߊ0R{ huKWg6KWsд|%$Υ MщZs<_SLi 2Xe54(:oESH i1d>%X*!)u"E W/8hJ)'ՌIIrhG?rfǾ`n%M VL Sg-$1ڶ7dMӴFBmٶ阨MK(BiP*JSTp:V?ΤC-کKDRl#$$JtK[7dV`m2h t"wǎgrCSIkŽSӏU^ZAي_M)UN5EӡYHWoCJH/`CSWԉJD! tށ ) d~blN0U^ \v&E Eb2PY4oZ% ]B)JSTP*JSE}B-A~QjK>Gc@6k E5rQ$oeJl3od䥫7.Y<Ȝ3 4e<Ӧk*Ή쀆$BSȮ>^$p-5'P6e }6VqPi/2¸_*Oɀvw{D2n8 rO1 ax^$ܺȫз_p*yM?xK& )u9.V1K ^iFmLW0F(z>fd⪤gT3 ma"Pr&͔NՀHt$Dl",_MIFMcgj4\PHP 'F#R(((` +t{_P(t>U( Χ BBP|P( O SI "TA!1Wr p ^>Oen`sUߨpqJyaY5 ̪)tycyy_Toc>\_BҡM9dɚ:OG>PO/\BG>v9nR& IęC2|DϣrJ"* iœ(#'F9>hX3.X\aDL9,[6;o*C#cT-|57i-_uѓF۱kv" 旭(X\ekp|zuQ~ʞ6Hؙ?/_׵]ٕpٺOe%$L {@y̧ȵ=,];s;&0]D^E]TQIlri "'V,CܩdNlL9MpNMe7"];D7xLJg{m|,=x_# Jp@8iw Sh(4 ),˜pcsTs}0ȳ;[8vQ~Q"+%lUyHO9?Dd $Jg{,mK؎-ZQW,x8#WoEns M}]&z=u fd痉#ɸq1PNjʘ -mݐZ%S$ \O-wn`(b O{-g%ʉS9Ņ4[s+tJV@zJiFCG_!Wit‚gs G Wot`P"DޟBLQTF)S!` rX*04ÞpDt-U ō{"Č]PcsVH., aa3BXi]W*M6QGsN:VX56o5 ƻvyvyIUquS1_K]~kKդ)?+@Ѕ<g8zR,TSSX1[1k1L{WOЏzq $OTlMزyصw}@bJjlFvyƂ̍..H${*Փ'/;gTq/[ν3;;M4^4R&dFEDP7^EAT7ZPH]uVuX}ǩӴ]8|qγs<<͂|JFMj vpz8Q!aRox8ڣŤ7ʟC[ɧDϘzĆ QJB*P|ZuD.4qGD- `CM@Ο%'%!\m˵>$B:&7*# tZLgRD>͉O+ i٧|)SVovBZMcy|d}9|`O`V٩79tF;5%pD0prlpੳj-nF(J|Q>GTv_[^X4[NKh[;psױ-ƺ3WpԵ[^qz򽈵pU o M٬.i| i/9]V++7mߥ{mWnd斧q.ܭtђ6ɾ1S|fpXo\z^EY˧SWQ-]>!*{{ȇE;OaU_s/dfN}W |{/ $t%C|O&RZn9lul5pP:fj Ey\}^7&Gfoι4qȴr=Ҝ4[LkM-'SW:K\R\cn̴*zX!eEQ)E|pӊP<^qǏ{vs>w~n;sB[w>Wh4V(Ҳ Z:nyصKB#lO4 Uv??Cz'1j_oůӡ/_ɯPz4c5/ʟV筅ASA- ŴA0ڜU74auF@9":+hF3s90o2CT;˜0Ub9GQ]9zRy_<E6;yjǃ=td<}]: FQ*D0jmR-F4TV|~^6ecɰoGџx@23J%.WD6cPxe()O O O }JЧ8§fxdF!dCf;ZO }"Eb>퉥$ X71!ѓh:/\]4;2-lHt?"qS"FXO44)@jJ>%)?%eZ2F|V ?$ً8]#o_iJHr) I6Xo|yAR$>+¥>T%=;tx͞`C*Z"3&wksw"՟Luۛkr3rA<$!C 2֦n˞Pw,?~hH!y4|嫩hZ4 bv<tIIa}ɡcyjRuOx\{a˶gr+B~J} 댮q2&;"hp,)΁N`+(G/ tٰq3>%r>nzAU lR1J;#Q/pSфQ| *GYlCFF8&}JF1飳@Twu0T'\§FZ>]A,NXU?38>_ǀ, <~Ӗ_KSaBaJYD#rMS)O䲥?Zg[1Vn.^AT!߆~106_;g<{`|8;e,>Ck9v4ˮ+~7 -;:#Aҧv· is2eƤm 7{%f@fTlD T7g"W`i2j)8ҧ};>9Ol_1{bKUl&M;;2dӚ>[gl`=8l>O_;_?"/k.Fm'>)6ϧG)["IȨ'ݝ'JMS)@?Š̒KF fQ{jF)1v6>w TIEҧ58=P#*ilȉtz%|*T4 C i~_Th>*_>y3U7Җ|*|*S!S!S!Sr CkÑ|*Ӛ|-!M{P^G6SPmsuZOO 0$O$Ӵj9dܜ[pV\]ѝ!OlwG}}O-r.{U/KTka7l`:#5Pc0%rʲ 56nRhAHbbsyH),lϾ g~k7ESCgF_'1A>o\Jڨ[ ?AQIGYQ}=S*g¯ZfD$l\ ^}[T=dkw;DJG c);iVC=Z}e.2Mz^h#8 Z^@ nv6~6ٛ/ߢĥSc Lʜ2{zbhc^Էg8̥iwvuv5܄ӡ*g$31mԴ8Qjz&Gs*>V7s$P8Q =c 2xǯī)OE# 0]Uyt^LBt_-6&ƔkT? άiNt`;ur?%Y0"OEj -{$sR@ܠ<5_VAFXM[f߁e&OM4'GSP2 I/4,,)6Lx'< zcJX#,4<];LyT)fmQ{m?;ۖ07M1uMY7-Mg>?JVJ)RE/HרW ËDjqqyv9ΏoH>S[Eu#—|+" TSOO|*i]OR QQp˝oVRE7DC#^"A)|$.WrKg**j}aSo BƇ]0ɹ =̤2٦(=8-)bc1:% 30Rp[::@eO1vcR=5~,`O/TxHKAJ)\w<|9sĵSb4qwSϥW? E{&b 7!Zz}`;KF'aaO.ɛnZfzfpSAF`әv1Txg.E?:=OE>7 F f_& EpT'CjSL2eO Thpc)[їؽ+z7yɛyC=8Au{Tli?Si?fɿyO}!S!ʧB>X}A!|*t*OOS"z/ӓϒ\g9.C!Yc Ve?}B*}<an.OeWe<󋽳y5 p8s:|4s#"H1( CF,)(%,|^ 6,dWwRfa|䮫yLWޙ~~0Sk뛊J*&Ҕ $WҞ} M'T.=0j RV3%^ITHGS0 YnaiV8g矡ݵ9e)v/olQ,yҶ_lvKp[c4fjԧX^\Tc4`znScOW752^muR8hA"D=Lx"($O5 e+%&ƉTOW8ЬʚWhTyj'fO}|Mޔ ~O/OSl˟$NTXYzpt#Qt##I)`jO/"-.YcreOw&'"C-m8$23TY]`zeD~SUm)Mpquc݃@B%7SS+#~Sݠӆ $@ӂ8~pʿ<"hI;:16Mn] .~ԓr]WxӝB]8 ,MOQW  "ƶAcMPS1)$"F݀DCtpF7XMX&ƍ,.ԅ;O=񤙌E9ܹL虧ws]l<,[;["~OH>:?-h!ӣ6=awV6OQO- /0uJy`xjT*Ӛxcx93;u-ūw[$Su=sJq <ؓRYJ(cA H-hFKTЇ}7n% *:zTyE?O1JcH*܁'NNТk+R޼hx]F/,H)IPDԣDyGCS$IbyKчL*E"ɛ\"U˦_1)f 8|ej{g!WW-@5DEFE>6R 54cwk7~hA}6 cwr?!wCIrs_It>)' 1]̮|u/_;T2S?||#K/<&1TM5t?}m1T<0iDmߣ [X[n5Fc(Fq}I0?Ic; R.Sã-!pxS ċT1x~lƧG`?Qi`ƧNN/#YȶwvK]zM5?TSb]sGŖvں*f̚[X|w!(_q,7nm虒iG̹-=^BtɰQ/7pb/>xToͺMmbt8u ~`:aQ朅H\嘌"ݐ9 *_ ML+<q5c>o'턀(Z8O_먷>^[~-|QO+NqySNd`I/UJϳ*DWKU Ki! ~O7*=z&)cHl* 8s9e8[XP3R5#)-G{ @PsJrS>_d; %A Z&CG r"HwXXq&4U3","mH|9-]BaiЕ$N 쮀KPPGds^-3#UY ƏM^yl jœ켢_=§"/ʘ\?rc?z5}U$d&bsG7mO%I = uy#!^\B ؔ [F.¹ŃQJSp@o^m\B*塨%s>u&ϝ@U?ծ;Kp1(F/7ޣS>'SiZn>>7#0䙊e'>ʧL\tH* ͢9ivngqޗŋ4$עH5JAkӐ rR7>GmE 2K`C0(MrdUFM*|jߣ a `0 `0<> 2~6'p=)d/r>[ dPg!%yh4@ZA_㞃tQ"1@L|_ϯ3F^$? &c?ػq_oފM !߿KD[x%$GoMSS1e_ &fYM^?-" t"CS]sÖug,ZG<؜bl=ܜQ.!|Mƭm>}U(D(8,IreS*ɃND@*"yt+WkP>VB3sV8΀ȔD a$3Ez$#2.S(LNhSad>u:3a&b=AF$#'4VhKWPXqQP˔>K3Ӳgbʧ VcE7M>%0WZcjZv^. WvW!ÿ$sjAJ=`X_GIK`QS%?-| MC讫j65 S`|7Ո`0^iOGfUDؿK~_*4Ϝg_"h;~%7~}9Zf"$LM22==OZv2I&aUss>Qթ=+G%?wx¯b\" Jgpњ7<~G' Hx1O6 '`{Qf-AݕMbJCW%mQZ2Fc ^*9H92!SWH/vDT/;)P+}CMأQSA"(~|dShju;hA͆f8ݙ$X§Ώ[}G `0L]>%`0 o0 Ƨ`zMbO 4] N'd#^Ie# ~N5Rڭ~h`1J4i&-<1 D.<&LBzO8%koO ٲcG<_;R`OI=-N|w2O\+._fIz.)!OH3C|TAFN^DH 3qM,@)6W,$&j`+%U$L 1$/i(#Ott)q`^ |S;+rᐔ)`Z;:"5a-pե9XMKQ u_^tmW]MKTQZI5Ԅ5 уHb bpTDQԅrB\+ߎTPpk.;s|pg=w?+{Veҵ# ʰZ*Ovh/عs1mdwUc=IOF?:HzF$]>O)2J>]V _FYUB )b0a= mJN[?Q<~~ GC>*8Fd)aUzW1ۘ\w. 7o={cp Wlْ!xt}/rSFNy$EBu^}>K`Ja*I$$T SI2L%0$dJa*I$0iIOGRYS)ЍKK~x^}nV9#L;( zTTHRcx4|Jqv tLJ~ESaCuraJJWS)\_1L%05L ݃Pz[[]ߤ|4m`nay*md`׋{#~04(L#mпiaJrJ=zw>2Ebg;8mY"H"0,`|'$]py.@bS 98!1*e+W-fjQA޻ecc{y=x}>,:@O0_LxT_]>Lo,p@2:˶ѧ+ћ]\#c>2ܧ0)+CtlbB eg뛎x:&1rd(v47EVw`oGN\he-;42ț ֕Tk`o:v!`ڡJ]P<ֳ8MbҦyT_)7OVhْ/ߎǍ醵?7}:Sp)}u)Rŵ?f-: ߧ9rlrD2``b2'ӆV,:>S V}[PrS*ķTG2%H 3G%TȮU; 2FE1S$|ga̼"IHNI ؒ+3eZUPlΆdsor)T ۭ&|'}C92fBOZ``Sڠ.N* ltթr Q)qh"@;$Y4ɔl4+s i2)^-J2%"0!%A޲T"Y")t'V)1&uZw`AL ܤN>@$S"q*3:_',dJ/ny&ᙴ9}3OQIDҤxcl~8]l@@mv[(ʇ1Z6UT`1<^ѠATDĿ2!7<}7l& pE e(k*a`^7?ρUӌL9WI`:uH4ۻkNˆ ![?w82ULɂ)[K2M$M.ޅhE{e:}}!8>p ObL`ut!?(d:@ @J Ak*dia62]?[3W]~w&0Mqg1sY\ p:*PGE (Ct@AK<@g(%kfGGl&L)=ˤr,2BYG*7Q%hvB羂#]UwSLM9r\Y\#I3L{LlhTZ)#$sW x [;Be55Eի 9=HŦ ]o7zpDOL9vL{Ed} f+}}UӋ&Ln2meSaZ-^dxܼ{$4fX=fx^jQ<%EN_Vt\|<\Da Nh+lƙ 4)e=,GC?}(WvC/Ôud"@ (á:){n0܇Sp }t3FY;ޫ{AFVc}d`_O|s1߁%0ӇSTKK.9URioBQ#^iJ%NBIQjQ-0OS׬uTtۈƦ$5WcW-zpLGR`2L o`h3l7L{s0I0-eԽ(UppNp0 )ԫ "SHY($x7渉͉'F~)Mڪ:}2zy*ӄg9dħ0]"]^xߪIhAD׬@ׁ)(E֑S<j`JxRe73,].WohJ[ $UiS2/i"?%?c+BVBy,S,b`an#i>s7oEaLkČ ͂QxD42'ȔԔ[WQ !ǗTh<Lz:@PR#}NwWSlbJ&?L9}X)dkfAyʒ0('}}}Z 0+߾|ϳouѫ>2[Sͽ/c7;S; K]z'SYY^WeKe\^8h(4-1QGF>5jb&H7$(j"paZGD2i/|8^<~8sN=t4`?wwf*thF2*S5:LLd*d*$STHBHBHB2B2 '?o {'LM,V]O! 4VNݝmM<|M4QMZPh'" 4Vq(2u42-] <[9aqiy|ugk⫙iU=-CM}$هa%S!ƺ2aω]4WhEm(^ӽ)XOYJB2I,Ki?ɔ.)P>GȔ}dTSwO>70. ӞoiqK3ǭi2%[_t]fk_d*$ӿū7F#`7)֤XU7d; 5Wr9-DiF$35X O-3$!&;cL"ܐ{I}$F]2b|9.spmh'8iS[wkuL L' ѯWXF&i?$ٔ$0qυ;-4?m%-Ye0$_Xaeo1v}pbN VN/+ PK͠9|=xȔ.*wEӳRed;HvfN>W 5sdp,5M<w* Mz a _0+S^iqYmrZT2( 5Vkfcq;LmP ()BN0v˔AYƆNƶ~Fֹq7~w>/Qa bNn3P]ALBsCt !P:uԩKtA[>CAv ^^vgg`>}ygfLC H'SK5i+H[p)_aO8Bi. š&ӕ7.ӹg3$S*J"2{6Ȇ2 .SntLCckumLv㋫M_q7l}eT& &ѱo ms-zZg*$S!$S!JB2B2B2m&Ӡ/"`2I/stv%$Sq2-D9uq{TUW-[栣(B\T!w/ rrԉ)cN4eŠHJQ#Xo7ٝo?|{YZf?1sYs<0U)LU*JaRM)yH3Q-4oYW6'$y^ϰk$7|~ CQ{G}?xi;o7#"e6̉LWo9WzjJa:Vy46n? g啐OHmh`?r;5HT -s6\Ε MJa:b޾wi6k$vY [5<ÿ̓nd]=׈̎p~0vdէDTaR3S'dZ.YzM]r$NQLc ʪi4էSgC K#R~q~'kQE1̂G)1[KꞷXz䧾!(` OصO`UVK_}3@tiFvd+oHa:>0VƌX ԥesk;0-q>g|v)]t/X0aWp櫦$Lc}TɳA!yF,\_)&HszE1s:.4.j5Mǹ;Qrڹם"i9"ܠ+=Lc|Ni!ء/\x擛Q2I.=w7" 鑱 U/^c St)  L.u4ݔz$Yv^"PP/NDS 3r !&q&gc4,&B -.0G?nҎ&(05~# St)?(0Cw $ hDĩ!^xlc{XP^/lڶ$ED($kC9^NL?XbLܹ/[rj+' Lb3_qΓx]dk7¢ *nƺw);B/|ťO;z$C:Nf*V.4SHdHAYEoN1iO&90R&XCE:Ƹ>e.\%aSxDMNY3ޒdfJRbnqMm\P$L(&I5:S憺TLvR+ SJaR)LU SaG=,J0U)LU*J0U)L*J0U)LUSO/_:T. Vva4߲9PaRڂ"O/%_TaR5S;U7ϣ0U)LR#.wGΙERGDݮKSFD q&n$˖kLfnKNSa6:UuþW=IWGXnN)tc^nbO5cqrӬC)p8c|?.$*19o;mk'϶9J/tQ^iO{t2:ebr8d3f5ʚF 1°!/yO-)DɣSK^B(RQLlmkgVK?$[ys=i~ۿޢbH bTL=뛘ee80W<^!H1G; z~Em#^84dɘ 5d ֔w32z6OctW.O59{z[މovMcQ\$.||>vҌ' av=aj#'k1hX%dn(QeGmmٙSBWEJ{Q:AլKCL5~Q,i";v͉ ӄ4di縹o \Ҿu)q]H;GxFOoRlg0QR3?"$)"31ga`Jz>~t JʲM o~)Lә5a)ȏ: ! wەB[&TG`ޚbb$Zf4G@}&Ŗ%Hs5k]^dHT 4L65~S\r^_$VXQ+*u.%"}fI0SixOK[g GMN5G&6· >)vŪę?& xtJ󋥽}˼>/^t "6cVAk?yޞdta#bSI`z23:ŵ1e5=ÔMꄤ4wL: S*3~)sJ ӜbA2JpɣJ($i\QjP u8앆;a=uH֕HrU S2Ss]4NdEeai4uOD_y$˽zIK3_z!+ScEںNZ?=ǟaJ I FS. 05!)'|tW>{q~yQc:rKny]0T `ϙ4)9F`0ɿѳ}r So0e4A6쬇[6#HQNT 2F(y xт)6{.7#3LIkL#cb [7.%2|u?vbz8 ;e)Жe ;/62 TY&z㕗&&^xW11srᒸ$GN ÌI9yǽTԵ{+iclw?$L LYA[PH]N?0˗䧂?ַ Sށ܋ptw>.zy(@Jr~|=mYw|a;JT},W*x9d| [LET tTҭQH)|M8LPrh|Jaz6>S`*qG(]0U)L S.*O*}ߒoU S]ԂORLfU3*vhṈ]JJfoV|rFlb*LU*LU SJaRT SJaR `p(*U0S СX ` ŕY9g^1X2" Sa!A C&܌p ,=$.*/Ϋ2N1֮S3s1e,w)Qbd V43G.-rǵ4qHoAbeY?c )7X`!|T󁁐QUH Ʌ`ze 0 \aMPY`xa?Liy^ZMvgS2-:r=G($ز%3ſ#,\16٢pY`0N \մs~!,y \]xn]2S8<.O |N(4O5 eʩҪ1LT_9*6]*LVmT\ƹw.Љ/ͽ ;3m%5@IjApzd OkSLTV4|QC [hm_MUp@s`tGٟ2 FS&`3/L}.Nx7ȑi%QSH;46)ɓrMe}c|0T-oHN܌߽~M.%e^U:>}ervwp\1)^#?S25qd7; RyB1Zf;^20II($ҕA )A:#nlgm(Ċ um؞:r 0=.IfzȞ*e%cKo0il'ޏ g}L-ʓ73x*ӂE >)aJ+e)Z Lqf Y*(f4^~E`aZ{?U-0z"mYud|/m!3U!.&P@i Tg;>x="Cه)2Aƛ\/26E΅Oh藵9m)fL2trK>S}w6u"PNG11Sal169d}vNoCOHKC"-p)2ſeFjz4X"C2%F6=ʔʔʔPP2%2%2%)!)!&SnC eJ̔ʔPP2%2%2%)gTa@J}5tK(S(jpG#aVRz﯃&^k<$^O?>G\VQ-j1ͭH 7@b@Yx}.(9W/65s g-l4G$zTIrQ.Ng5PQ)a\^-1* o@.2r l}cAQ}mdB+*nb9jC@St/Z(/N2X>*FR+Znȗ^/b9QoE6qc*D~쿂Bop#ej8rdAYO6Uh쪬ٜ[+ӀU~Ffu.%G$ؿHyX68ͪ](hd=DKu42Kꖣ_*DsB ZJUif`HoREQqv*n+srW2@ 0Rl+g_%G *"א)z,G+)bWOe.Y*)SFr:ʖ'lsR F1iMAkWoU$aʴueJ>z•GO/!5;nY;2PM*)2OIHY0M7iQ%N$}yok6h ժsgx ck1L$WYrhQcoduT-b=+[gEv^.71WR11L JО:st'tv~ރ)eJ& % ?|}2}yMR}q{!ddJJqGOp/c+qi锔ilbr>RXI!1(S}2ߵOX@sϾ(9ߟةx=wk<}KJwUž;vk|M&mQqę7.qW׺D˙Bh~eʇ 7/Ӝ"%,rMsEṶ S?`]79t1k╖ W2ݼ42H9BRLLc?LayfP'ւ"1Fg]ѵqG=-_y/ՕJ-/w*Z%2ohdW(SBLdNlZ.M?4RG~ٽ>ĥt#jgwGV x ˃DLK)SB&L=bǧ~2&΀LYLiJsf XI/drn]:L] s0%k ܉s-9-uU sn/]yzUmoh $BUT/YQqa)LLb`i]?~I|ZOұ5TަKWŤR}Ra G̡^ av:a%v]]sX󳑦`J`M → Sp )al WעK+Rjcv:[J?z +oVK1)}13;L["?H|dOշ„Dwb 4si7 S F+TFhV6TQg>#4'Oe1$6$}[sܥn)4nr)EYؽ`~N;2wZHZ_;v޼+%LѾ+` 7ͱ~!YJ{fr&zp0R PI+hi1L Uz&SD.L)lS `O4JRƭڊOLk̖v4iS~.}˹_>uuWW˹p) 4-k4(moV?>g2yp+)%`ND3DCKѴkmSդ2Sg6k_>KVcO5B^:ELqƥh-XU3GrWg*lg5Y֤c|:T 0NVqM3%ќ|Q# ˱i7bvH3 0m.9 xwOHUї\YY.)9]ϿP9J32h0׽7[^uه6Z FZZʕa^);~\sIBgYH7 Sc'lwDwtrpgMj>zuERHF2 Kfp)2yIƪEXyw! `xLC >OI Rf(T3e~=H!O F@:8ܬ0XwGD3CFjM8˃): iokȩO׹.k/ ca]|KK 6/[Y۾l29c&THE1\&%QhHSÔԃ S!-0'kT*մPFIu0:B R#T5}劊0}]2ZNz at"U::D$1:L]?9@\(cSYSQuq>14HH\uv>? >b8 \'Gg5lSY\I_a,j-F.*:L].5w҉r\M*VF%2 _D+/ 7~- #•k+Έ±zQ9iUhmȢI bw [zc] >ޮ藹=){d/f gJs~\¶_R6WEu, Jmfi/L~[m4~E3sjQI|}gJ+nc: 5aYaJ )0/p6.Y ^6 S= 방$73-HM6pz9ʴqm;Iw}e'Ub0PK$G2ZH>濇 e04='/m$1yp5t zAcQB)6c !zWs0<ь9 eadEVVQ vڜoRs0kv^A+d[=Un AR-U%&3S#D4~TTLJ͖m \'Bn4VÈ,E㧵9tcWf艳2%:# DVLͺ_0|Ђ1OHc@FшX Yjp5#y{|rC )t5Бcsv_?S&u`x$E3ٛ[j?~]S.x?shY,JXk6qfh.YQ>ţ)=bYcI~Бի1MQ0MI2w%GwOП׌?V`Q#qhq|#'vI#}K(`[>k=Υ`:$[bsC GP2$i1ʺ2|43=Ufj0OywL)amܢ#[qۅ IfbK(+>Մ<'WT5Nٙ,6I5?d럁i*dd|/W^Z\.r.0u\.W0MLr\.Wr6r.0u\.r.Ձa]&a/.qOx_yG0Ǵ %s[c/tngVkWWf<}$ zvo0ȋ)J|ǫôHo<`_4)_}wCG`Z)GEoVJI|\}]aZ-?P<,]C_Rm!aHU限(|ap8?b!9 Nz!ihݘ-zEUYy S '㐟jN `N--]=au(XzMVVaO,IJfT*+%^M;G5{e&Qi `p5Qfs4nrh3)Vmoh!؜c/Ohi^A1&!7r57) s5E8T@iOsheKN匩JO((iѺi_¢?)5uo_FGaZYkO6_v?:L!;23:eohY"J1庆뚄Uw0wi!4 ILk0 LiUoM#lw59IflY-| EX.Me_lms\K0zDMS9Ҟ8[.>^>Hf"DafKGpN1H4<8 Z_)h} ˖o4m6{OTjL|2:=u F_L~ 1 ӈ8ڲ^k=JTiSg|0y^\sXNSf`h"}POIT6v .{)X--Eff\Y6g0Uˆ?ahExS+Wfn ` bE7H2=g:l8|U( 8S4Z EÃb?DnAhuk>i\ÔnAQpʔa׏>@B:<6^] E 7to(x.VJi -/qh련+Zu*NQ_@~7ADA'8.ے\Ln{''4LO.]rAo?[ɪMr짲iF%f_͐HdzMns$-5yd}R$3ӨzvlOn6{[yXSzfL"%tj#Mg7?R2]gtL躗K*OL3me.L3PP͒"yNf+%%,q$Y Qoʟ&?nyG2Vmd~#Q>^=억64sQ;TK,\ )*XI]eU))fC!+ɤ{>ZӢYuŮVWqؔZ'|=RA[ HI:v&x M@o M@o M`]{&&;Sx&m"l4O[Un}Vv.L85$] H’$DMM Jga\$b}]t/mho Qի7>>o5 qV!J"ͮ-j=7"՛t &tMSzT%{^^wnD7Hg݇O?~~zg~Ϸrʉ3s ׮,i,-ݺ@%U^MlЛJ"7>?읋WNsΚ3 ca5]DbJ*)T.EW-bȠJEB*I.H̸ r&h7]g/2zַy{?={VM=CӅru62r )1 Hcfn! Qi[/[\xO6qS'3[`V n_l&t̰T^#'~lp͆ Wn"j??v(ʸS~_CǞÆc'XS`ӯٚͮ¢۽锴%;{aپk7lZ|n[䖻PiXmo B_x4l\*F7@X:Y>;zAܲiM?yc:xOk܈6$$[Eu}s>Φ!QK?aa#,Jꧥ]gQPDw@Q}`zaZ;fXj`4{t #h~᱉6S{P&lb=??숍oz~q圠(6ݥ'ZzTLI]n$6UIk52TG,\)gSDz4Ȉunpg^} _AtQcgБf [(H糩UGct [r$iK~n \b|p]}Pt6}.6u`ɍoBO4:8a?E%b߃yBcC[Mۮmj[lnkQ@m>u~PTlʃ3!r"F>{]{rMa aPDNfS3K[ZP .~NAr-*ۇQ>m;*HFd+,#Mƒ6g㖭Ngl5 5}lTQ7O^x:ih:i=))y3lJ2eM,U?]{`]4*Mn2%qП޾>7`80<D~ŚlT2RHr .(4ap3e]SǏAOn8t-Vyz~号/ܹ]QAaEWB×L]+[h=zwzVYp/ꤛ?m{[v(YA|6URV(CdSTBOdECRl19k +kEtI:6kt pKuS Sp?z[1\Mקf09ws $A}%l~C eϧR싺!m:9KT/0dkt9Xl:n#U@kt 14pDc7@{pi~ͧK,&Dlh[Oq"MFnXbS9Bx*x"ɦs!"MߔW504^PRDb Wd}ꖬ윂RI0ّInuyq46Fk| 'vi+gS*S P Zuģeljf5sA[TaS)nԡ&!ˋQIOK눤v>JYxLf~6 ߦwnHaPuƑ+cK ZSYlHaֶZ.]PO@B !LcTgS|(>Mf :,66M6$u~M7DpXBEHTkfA:PU$;(N<v\gE$d+۩V1QLT)R M [(H')YZURPl"0:~J S$ySf F#▒xI(I[( m'7/T ;EA? ՚>[Tnk"݇ +oGŦ<ɓJ`SJ PYUm)r6NXjMrKG)S7ٞ*/oo[bcyBu+ @ }% /L(۶֌y;F:MyT*ꦜ/M_v 0\/lܖ%\'X fJ>@Oʮu1 r6}7m<~xu(WΕ4QB\hDƯzO/Qt4w}/ &Q+@nC<ϒeNkuQaE-\@4O< ݽv:o>{6Yem)/|n׻lG5N*5B;N,,;p'c}Nv6p 2 >]~o|=֦Nnȶ)v'1X7!S ,6鬏/ƷuԾ.=y)g԰6us$xքdISV tX/[rm&Y-e2oϚGSIM]aϿNk܉B64f4 cd:O m Av=?$5]]c MmNM`* (*uy ˭0)u{T]cVBUNM Wiobլ44O{-L:gKSJ@sQ*Iۨ _P5kT?)֒ʛ~0J,9 6;lRE8?JF6EP+9<yzަdƬ4^t[_z-s)Q*b[,,ڒM]dhSM#nl,ULpv #@"0my*$O/ڔi::r+qsЦsu/NyJ@P.MJm4>/";ן684u"eкZʥp)e1h)XX+^h4116oex o],:MA orQ0mɞ$;s'i~ؔ3l{,Mn) #ͦoz㭱ȉGO36mߋ[ Uҟ| cS^Tk֝\Vtw}cA&70x$>IBj#e{ Kv.Bp{;Vɉ?ؔ4ѸROg!8yUI2XpdĊ$ٺxlb ũ:j,SBH\]_ZΝ]E0tДgtlM!GwP62OZTBZBF鉉 ^<-+-eAEEϋݰ94Tls_~+0" < b#iƯeHɎQ4FDs)?ZT@l1Fۦ4BءmSAۦ2ʐ!—%% KoI?|'#RLoh!R5 :7?yիTV}ZX(,"y`O>p/߾V9 C;wW'09w@zne]{5w3>4SRr֎^g;HYYC: 8958@IIȧS ;e(F(bSѶ(m6N6uqd|YS%~hPZt6&fy_ӗ>~agֺyj^!@SWoLtLJ_F|ĩH=)Pk1i,8ٞeȾc-(2M -ſ+0)ln=Axɖa1Q(C,&.[5v(׭2-SGy@|՘ uť2rToydTl&jd)lSKܻ}QϜ,$rjv_rTXQcGuT>4\\\GZ0#|׮a7yƕoQ鍮.zR ۽[v3ݻ߿RNi{$K0}lO!Egax2ݧ%!&.%_JʧT1%i(.e $xד:őc%K->\D# g/3cPx,itcq Nl-r,O9-)CPړEjTUX8IS0'~իĘv^~Sh“'`Ӻں2.9róOQ`sgv~\ET YR&.-rjE%LI:"k0y/fZ.iІKG"cBRBԕPH^GkOHr}-ʡFf1~$$L wJ@WcSiEC2 Uji7DB2ɂaLfd7Ȯڧ]{XbzU`(TᦏĐ9MO^Y"5#G6UݝMAX*`n*SE5#+,V**;!(`(B`hii>ȼm˖F;Xg^|Mጋld!ft1;S\*ؔRLJ 'MæTM5cSgK[O)MPˠgJʥӋ,YL<8[zHD5!7O뮮۽鉞φW\1o'T&4=3*}fS7;ohЃ/pg=M;zČBѐ$lJ JBoʥdSE&DG%p w 6E"VQ(Ѹxɿn~MY$$c+ޒ[)KYOh΅W&:6ԔxC;Cs ;Qfedհ(fK`@0Vi+!_}؁p#n^sv~Z_c'g}D0+3 GonZ`[woa?6%"6Tή=$)n{EV Bޙ519Y}e|p@߾#U֣-k?_k{ȳS7Vm5ucrɏjP _W"Z)lS""jSk DMHFԆ{H ;{Ať/M/_:9<|'cm#9j(lqNn_(y>dT͗ئlS"b۔mJD6e۔ئDDlS"")۔ئDD6%"bM٦D6eMJK- )&"C !SJ)M&qtshb#[ˬ%:>6ݯҵ*6ƭ;:0ڭ1ӯ5x?nb9\,\\I]RaU[D/kGCcErޔ7E);MalH,2pud?b ݨMâu\al<^W(_ !m/^ 6\S]r̕*5OEb0۔mj6Ea3Xbg7yvD.qL' mJĩv*=J?Z4s3-DdîB0jV )۔mj6y6E:Ki1Ʀܗ]Ƴ TAJI76 ޾Yl~'c ܽ|"2/5d(U̒MMئfn2TaҴg$m*`.o2oqy6ESnʪ M8a8@b[+^ߨ-Dd^cS)R 0 fMWySXDUmN0""bMӲr1]\a0_,P!I Uʷ)J_pƮGqgSzrKaO|Byp%6oYH)XP$5V/g۴o$E5A1JPyn)OE<W|T!WxnN/|I*SZr=|mjFfNbXpDR^>\=vы$dW[K_8)ilRZd\fk@Zve6uvs6%"I@зHOO.8n<_l4Ӊͱ Z#~ǝ͚mb>% Uyx޹4a_x " VPJHɊ3=V4 ?; o)>$JCbz3{1ͷ3.68{jT,Kbkj扽g@Ϧ}#m>>_oYwdpxr.W_eK8:]8NWsu~ieuh/~_RNeSY` 44x3J ;@[LDlJ0[<Ǟ>+#TB=4?e"{B"nwi,d*hUcڠXZW-&"#:.^65Zsٵl /2ᡀ6K7lnss7URRRlZ6 Of:-˦o?|{ҞdS;"z6壷} &VdS?A* YvOXLCѹsw>/QEqFA"!EMdXK$%5DILSc*M2"2I[&ڴ $,Wo%Iyyx:8/*}&wneqX0>lCL͉ɡ`ucQYbCJ/uȶtHpS(/(M1c+V577nMzo/G+k~;R3bMCގ ޑoF?7m8f//q;^xy$a])&v1Yy|yaN}x;;NfS顣$-g.2? 7%+=\wN#0mrp D#U65w?I! 4d7m/?ydcs'+H,Ѷ s&+Y-I#`DSK7 zZ?MOYsSOs+i<ʹ>-*%#AIMED7vuag WPnC$ȼq%rݲGԕk6n>}MM2_7Q "7MED7TDD7MuSMEDD7MEDtSTDW7寈;e, \\MK<zTDtSMEDtST7I/^CVtSYnoOsTcc=<bwfQ_ mbόݹlb돷 D ]9:sOXh*P/{oaAqYًk{qӁ OTWǿBڈ ";UDd"*H,60YY`@ Zmk5Զn.QURQ-KRO{LQM1w}ݗ'{w7']Z+=:::>ߚ]Q x- VO<04D%bCl]7Ҿ٤"!k2mus/JYU3nٚMʗ^NZ\M8>K6%ijO`AU^;(FDI(? :w~#Ј~Ad\H6=շfH1%3[S `?,6>/l[Cl:y/tqq0HM8rqqqq6}.ȱ$PMa*Do}=*JwhO7mj%xM`dGBwG &ȉM߹! V)bVFu/xQ"Wɦ#cp&ɦw> ӛBji8rq6z7̻nznO;9st#;faqtXiʦ@ؓ=̛\T)*ҚRBt1r$>gSǦ*}](#oX0?4[ y#u/ټ:(.UG[tb>,BZl2!%fJ[jDH^YWQݔWfHti,GJʚfn|4-K78$;~"%צ?B6?lk^ =;[7Wv^ƪS\ůXIlJn|v䟈sN6j=sX+dSE?>dtnbL{/fQ[(Gljo>?|/_S2ra [D/p'%@*˫4F0jv+\we5-3 *ݥ}[RY<:xCW/_#*#%L]6()CL/8J+%lʂlsu+ Ͱ#wEnQے q$6OVLTZv1A 7 tKSHrv[-UVS{'w3cړL%rͦ: ذB0y%ͱۙG-#2B9:9@tvNnKLe1z#6%!K# @7ՍbSmDQ/ʗ(cpkBMKe@! XQ*MDpF2p0xbS 1$\nB,kMSscړ$.:cVC2Եx}U;}-=WBBBkVƸa_BSۂQoR\\\Mw6]tr"O06mhދ`6e 7P qkq)b2J'?dEb16Mϑ ?a b®CldbeGPh,4qQsng9GGV"SaEZR(R"*骻 (E>Clox]qvvvv7ܨOmtۘV|k[J?7 4 =;1ԟS3:`h]$U[.OHuTkW̝ la6e8 ͻˊZc _cř<]\yMM6-rS ;3'߽3M|7MM4Lƫ&:TN"vp3M5U{fuDf*V–|k˨Vi 8PM]@7uij9A;;OUk٪ʇ/<@c4V6D<ƍڏ|u(4ptBenhMx7=`^Vm\v[1}, KDӹb8xEהW{ۜ̓?Q9̍0Wzf?z:z4-*iSiG۔hӹ[hN:NPe~kLyH{_`oO$DSC צ9G}SM6Ц@mz]3hSmS'td;21W<,;SDkr{NZ~HȢM0707hSm 8HmItd>eB0/-ǣM6ݳ6uU)mj2SM6ݛ6e@#m )m ЦŕW;檊,r6D b IȾ?Ix!/$ĐAPD)FYAY?W![u*un߾ݧOIE]/??j?&"R~ ly)[֦;psϛ(j ~&mJUC ^ /\ȸd>pg?U<:6keȱ1)O(CQt>lݣA]&ĚȦm+L>[2 >ѹMƘ7LDgZ^rϸ DĥP/gsK3MңSg̡xNj=":M(qi9 j:ܦ ڹo.il#>ZSY q>f:l۹g;n߽hY62\ Cߺ/k$JKbvEm3rEcW85=ud&1+'qr9/)9oW_C$sV+<;}Io_ҵ~BL2S ՑeUkq ư@]sЯk(1u (}}$ 8u!V]G( 5w*+cqщX@Wve,) mFJ|r&V57Q5E鹊b2asTB*#y1m1t} } x[qЙ$d꯼b3ÌUԢaAiW4G6O%㗕Φ3(s \Ml z( *|oLĞQ=n:lZY,:Vʮ7zvP;r3x$~ 3ÚbBdNH tBk?TjKPRS)Y:VX `M~HMX(mó j`y4α o}r4l<\޻BV[:=`Sй{;{.OYLlj!"<=DKy77q3>L_\(fٟ"=2tMq,6nbia&rϝ¬TDPX ^,9>L1l  yXJR4qg"b@ !%nJD_ͦy&e86 M^MMِ7?+2? \WַkCI\4Kg.1p dUka 쿾 0%B<0/^5+T+ 6%dݛJbS[]ߎ _XaS2llZZٔQ`-3ljM7lzQܺ?xdHe/a$.LJ*,i9̋B]p+(K,XZ-+,ΞzژGf--80L) ( lxHIDm"JRk!ϯwБʬ{<eR%r=ixc5u'#KV;`Qa!Lu)q&onJ("R!%".-%8[]T7/nJ!JE\{7K\""iiS8߼nSX81nZJ75GRAD䯠6nZ<*"TDD7MED7TDD7MuSMEDD7MEDtSTDtS)O7jƖΧcSP& ~%╦u;:ZSw_ި[jƟ.oh8B._o]&8=^O,cї$;7=y~4Lf֓]}D#e" OCڳ1Nj D}CcUgB 8_G_d7wϤV-Kלp)ܑa NŷhCϞnd~<88E@ZJ[B[r,( ""I,szn7Kv]lqYɶeh\tq1nߴXIȓb~>y޷<~/] >gΏiʦZoEg0;w;4+M7JξG\ętIfKi _}$'YH'2{yt4SXnb݃TN(`I]5=DVmh=4}6MzdF\%k#KeSVx7$&?pT5)RT2e^6-i9p[Z^[ckeE(6-nXؖCGRs]u}XgUռ%"'H7PƇ;?E rAjyW s#a!ܹ(JbY| 9;z!`^agtjV'vH;8 V 6sA{LPNo  '5"!bSfe^^JٲsX5;=&KIc:lʷ1NI,榝DJi){lz9>ZOLT2eՑK}Qqv_>q[Ý˼~ u8C˶yM}8Ncv>|kMGs;&O0|t"hji_Z[f:QahoΘ7lx//Zv5أMԌN&2NNZ(6Ws!"Pe> !&ab/"yg0vHC%" Ғ4‡eӎC§<N~=!/ɦ@Z,omj%BP{l1( J65FP@9b^R7>rbK͉Sцi){l†ѳz[?QR3,xi{BQ'C +\_!L іE^ZN%8*$;Wq{\f'!TW᪤̨;o=fB}{]pD̲8F#S'.RWea%KCŁ*Z &fr%P4kV'㞢`t *^MQ݀EniImq@ J6tA.k hAuPL]l MÎB51h 苀;zA1BC!ї]|@+ܻ,Z9[J#H,-~c.ʦ|]YK7h20Ma#3 #SY(N=ע +@Cl` -J4n*5;L)Ɩ6uȦi W>dÈBAt}v]WބQaP:0a#ڦ_ svQkFCn]`\Bz9ԣʳeEJ=!9 :AyMЦY)&w]m;N9?"mu{mw/y~flL %SаL|*&Ldħ_6M7MЦhSMiS)6~3_G]ӵQ' 8%.L=גf/.WYHְ"ٙsj84:E邍U<*fO sYoͶ&\* Y񉇖ɦ&7Eڬ"iŃ 1aSsLCv7>cSE^6#i+7j굽zɑLumcX>Ueu#R/ːUh'noG8H),TT$lzc2D"ўZΏ foHŦP)e,MBftlKN'gBVQI<]VWFlM׻9*Hy3ek`$&~MBTNd`>wyRదv6v&gW?3NE-|XQ1魾UT$)/{2a&DM11p;)l.Ri%lC"gKhS.ttMϾ klqC'Z?/Z95@3k̀P= a{ȕƖm7▔&l Bmåؔ_|fMLoiV)6E"H;9)ND-?;ۗ8֞4V&Lf-S %rjMg{-(ًU|e/(O NK.ާq'_ gu;sNGSaV+r0#革" Yν~T.!޴8_AogW'&EJWM.71(9qӂASB7%bw7 Mo߽|Ҙ Or2r9p6Q:4Ex3C헯߂cSonr5qWO^`  Π(93 CŢKʋ8+nLNIpZZA0uŸ)7%tSB!ݴygRRC!t؛rTB,ub)!MqSكRLXݔB9ttSÕ)!n $Os*MM !Pi?7-妐밭Zczy.D7-BH)PvS&^MMjPLn7/)!ؘ)vSMi6wJunjDg*嶺wӵA7%ۻT}4cB2b.{^R޳=>B3JNў/gG,VJf p.̮~$97ľ uO~u2$ߌs.Y;E&6G7ݶ_s%vv GY4`zWnוnզcgO^؂GK7lNo.x_9:ݴ嬪cG3hj݊ASܴo<_'*/v5ae؂,eJKaX(RҚj-.ۃ&&} <4?pf&7;%7;sDVt|j5MƦumv.Qn=\yVai{W̮u;3k?$O626oo\_,Xz ϩ_|m:=8YpR:9Զn Z%*O;D(z_8),*p p812¦bgx#}Nc7GJޡG˫.lOݑV[Se J'-7/_ {^@pRQEkrr}P[Pv~sޜgCK/^#e;yXyzݑ9R\V% 6Ex.^q~]CUJՃ+%(P)1hQh==l(ZMS/ߔMy1)dOf40,GSF7VHTP)4"'5gnRRZΦlsemVյ(3s^ SVĤ*.6d,$qf?U*-}%ZXZUˎMږC(m+8T!~rjI)YV.~Ӽ) d`JIx! 'FO1buY.ί㕔O3#7}[uE)E)W141 F'oN:xR]{mڹŦ=B-#w.UTblOwP"2]=4 D:BDFD9MMl|hIA4(`%f wQ[vDQp$4 L!&M n4Ör{_}ǻя$o*_Ehܫ!QGNܪo8itB2)ϒ,($T6}O*.6}(H&c7S)ϖդ\شB~,~bt665E08C,ijvSXREox*&)CeKk"wK5e8fzN1T 6|AdUl:242Q@vt?f'W2%3l߈rSǯu=wl/qi|rFHxUTv)ܢr؋AD-LQjh;S*@2D"q؍=&1a`y-5{j"h[X50I߆A>Cʩ-ä<$YmKOQ@/PZ5V(^hi@@WtcD %@6\\CNs0@I~!@\NT0Hmyb:ץkm-NAmהWVww7w4TxX0WuLuuQtVWO=ayPBu5543}f:RmM4Գxv9:fՂ'f XmZmtR.~FU6ZQ=r\ l8p^uSDIգڮX`JҘ TݥrVCjS"צNbka_1O*BשF"Tl"(")^J0I_/ǥ6LcA[>>BƇf7d6y(OS< /Twt fdҗrzJKNtnֲUꆩ7{F0O%2@u 50՚Xf)^MRcNv\j$[M`ZNz*SARIs%LVJ@h=a])c-q]skfם)5OU+*ix1ꫵ4MJi>Š\RgR+_*< ƢU1ʒQyY6FP}LOX_}s't{6QTIݎ<\S!Qm c4LQu{ThSTK{fgW?iSl_PejvhS T?:9}N]?>|ᮏ?_s?{ǺJ}5Ne8 Fim[ r+b-7 ն`[P( m6m:77%.$L(3#웝䬖fy<< < qwۥ16y G%jK2æ' eʼb8kWT 5mP0.+ 9[r?]-,ss5%TXAI4 C ^S#Ə2dاWCt h0wQJ#"N )l1G v)Wg'FVémj"ľ:# Dq bX{+:Vy|aʦSCM*EnJWO^9~y[k7*k,{fctB0L`zX8*8M/_Pʼ:$ɦ?:o4EBIֹ>: iv=TiER%y{>æNgG0xU$rH66D;FI0M79&nTz!K;,Lm4aR#NE<@xhY; WiVc2lӖVMy{/'p*RM\2;r TX\џC ^8 b@$Ĺ7cV- B6_;):(c릘Đ'gzjMjB}bPbӉgZvQ3:"ioM#aS$BչtST<|_<"5Y}6s#c`I躞j8!.-OP:/$FW~p_$@Yo96 l:0: r% E )gd!g"6EMuMzzNt^κfPw67~K" E2NId]Y XH,"WiH9c?h[UVe\l*88l@\_LN)J PO%#3L="o?:,aD(&pp㿚 !uS:h<7,:\^7W#@A_Y<+ 26+((Jt<Bk"MP;j-RFfӖN')JPN OQtNۀ1(R*t0gxhZ)V_܇0MF`SP,`RGA"r TCpX?;8s˩| u-NgME|VәOinW.P_6 D?Q+`ԢFhsA?ھpp7={=~_w/*[d=9zoz)yq |"N&MK t zzḬuӈ[+q8m+ĭycc4kHFnJwu)8K%#t)h~h{_{Mr佡'dQ[yI~I1Dl(:ku%Mm;kjL $2:<,_$ &Q)mS-9""m'dF%> C [MIpMfX9$bKo#7.*Z6Z,I |*DL*}\kxy2j\p87eJT9DX0=lZq?*ߴwxҤWAh53 ãucrF%iDyk"kyhfa]n ||=wRvB Y M +|/f6ew#n`|)gcsȫpe 1 e40"6t]vZ=z2QǟEۛkj'ѻ&IZM`F"؉)TVUOLy'6l=I\* M\^.1h,2&n27WS!,kx+XKH1Ϟܰ} !Bl"OJuSB!bMB!T!BB!MB!T!BMB!Bn*B!rS!B!7B!b~47Kw!B~nTb 5wP_/ij^Xig`4/چ?LaϿx7ᳯپGas >TQ}HH$!18q2\P\ɾʺSg3 #~?iOSMǿ)P-@S)VK UHX(BiE͢,*Qcܗ%w * QA]~a̤%[0ir̜{3gfux>cܸ8'O9d )V7-fz';/P02ƙȏIpL;.!QqI+2MӗBnU=*6hw>| tvsFwDci1qo}3[!RJ6\x >NCS;p%΁Bw=elfflG嬮k{0_6YxԹ7aQ|blPƩ/@L_rtc L}-$Sb¬tv w__(3'΃7@Xh'Id`q@ a tlS'ʦ\/{oļ:TN3 E[:kJ$@ƑMREZZ2zn24^taL'vd٬’txΏt5e֊Lg)7MpP5U2V:x9e| |\E%bF++-4YĿ$!|NBC64!j t/YA߂[Et<,XF&'iJ#ghN[81Kehs}ʣm:| C&xxӲ񨨴&UK)f_lW&b|m B%Kx!ʹA;݀,MJhTRbշ۞,|RugSP-3\X^Y5|\Q xy<`1i:Q5s 3q5iQ g'd3nb)6Eރ^-)Mk7PҧQ}Xi~[ĸ캩ioMUO6{^rc޼&MVn[7E9NeLߘkXM67U҅+ɦog vQ T-'\&2MAJ`HMͦ/[qf'u3| ( Vf 7!*ΞUe H 8Vs) Zv1~ΦrkD2;&Ppe֔M&ƒTF Q)QӱM!+?3H[MæM<̳ΦȜBYvW0I}ΐgrKd W!ѓ96h6v[Hl)vgzv= PHspENM;wΦ( Nmf'RE EѕADDą\;W\B,#:p 360=p(܏}s|^6嬰LA>yF 3~.}5<{zw,D xo߽]!݈鸆"m?~UI(zC??N]{,ZvTbw?k/^S )v2ѦXT{DWPP=?0㿳g4ؙp~mQ,k7Bn|m { Ê eC) m@XȚT4M60Ɩ!f;8;>12Pbo:ܘ?RipG0qnNcvzKCaGCT?d޼ei>2y\9yڔsWxtV3=JJAJ^5Fq\Bf"֦dv)io?`@4U:i&Г M"֤M11nW66=0Pl6e2 J;vp63y]F8A'힜gu^@6XFE^ )z5_KjTmZdq!vfY `|O?|) 2R}=Q$X'"l=6TDDDDԦ"""""jS)6ʱ&`TDDDDEDDDDԦ""""6QTDDDDdڔʿt։S~}^,R'6_NU;N۶>+MHDBENIs0;'(:2>ƪigV5F'fQ4Fѐ*偍(U۬4-jmS`mS{شMyDѶ(Z(4&7 uc`DL)spnT@D*A$c+u,26.7dY%M`(WRSRWT t9f?4HJʪZԴٻQ4FmSD=64u"ZlHqw{䔽-VnQڶ;!&uvSҰqpp]j= Y;z'{O̥5혍/?Y@7Dj%fEKs'~Z6>w-lC@^m"W`)yUmVxlٻj [:bVN@&fZ'-VQee..hlPlŁͬ啵Ml$dqy\Znw`mSUjZF2a]2J@) ;W hе6ph6K*(gTTo IdW'va'd7`j>! 4876%78\<%GwxiM;V50Tk2G(EmSH) H85( DA+)G2:^,1R,qlLSHJP= B =SH,j,$Oٹ:͙v a{Ù˦*0C?ӳ].V;ڜ#QuKZF4j6aӼ"6$窬Sօ;*OO"ݝ E_]>3 |{7tfvNٹwl:zl0%lJg^a5 æR kB0Jdh82 rI6$;|QaWo9%erFMSYE MY#(zGvt6bWA`xBæ#onݧj$`;sƺlϳ{[7@ aSc)ٴ?.Gd I%GJUdHao{_ d_!![95Ƨ]UIDV^\.KiEF0NNMK+A8.l_MQGd9kb6cL',GFWRY&ݞlg&T1o̘1;R%aSTJ\z)V$+3'߆đv845:Vv6Φ*NQaNrD^f o#唀 vrdH-Mkk)X⩊Tf)UA(D4NY3ZAf6 @6J՘7MA٧޳̲3 ?^L:SI eOQ:>R)gL$4~$ޗ$I̦$I2J$IfSI$M%I$$I̦$IT$IfSI$l*I$~giwHy%ITlJmH\hӣlp& `W CUM4MݹC54&ޘJg4%:ٯ_Ng{Uk6ΌXy;hG'<׻MuZҴ+fgþpl6]4@)my~̿zιVUq|WqKK@[ E -}Ж7}wXP$ͮkV׈f&&,K6.jQ/4?'rnfΜ9͜|7vM#?~^8|4qY)v=xsԡ(.|NTvɻi| ?Œ=Ǯh<iqgPiզu[gJfdghIixtm]}{g*ZX稽Ŏ9Ť'+bhÍm}aQ 6Z!1%Aa6u`{xjf<=ʭ1'UCٍ.œ];6M-:@>kC\ZGvcv;OW&]{t3mv=!2ϳ,άgxZzcykk_ZV~.k]JwJ*|/[a%K4eVLlv"kq~E{6׷N .צ6#Nˡj[vљQ'G<~Gn>t,Ht|ԵSDqC[[ʜM@`AF鶎1% ڝ{w6%ӡo|[X fj欙tDÔ1~v X6 )?8T^ӌ?$n*t~.YCH99{i=do7){А] QAϸ)K8d%9T $uh&A@MוJ1Xfɞ\3<%Ǽ&$+?[V،([R!r:1iXclt+9Ȫl"J&(3Tv]psdd X.e7-KT9/A,[PD0C%H(PHmy$aY&w6mCKD{I OɏNH޵aJbs{ϱH^?u* vy獤 jIG?6={kxuӯP6t~.y7^. A^%Kզ6%.aor[ǓOhSllYͰ/([ !AJ+&;U#He)ojo6܊4 VAl㭷6lڞWlUmֆ-`4X, ;0>Ut!TnM3Wx{h7Zƀ w^ɴ>C䘮CZ{ 6QsE,$Dy>ߑMþT0J+HtF((n|@|r/]:`R059DxObd9GL:9^Z'DA<*}L1GH%{m oOs]J&njO^'ؤ3m4%%qϗ6OOL{csD4>]n}KG^&)yiTڛgqn l[o0NcO>C}ai"Qŵ٧)F6"e>XD6(SUED^9&(d+> h[L.?)=(v1BxRs8K83 8GNc23r" ^[Pq9:'8e2 11]℗XSC'`s&L_]#47CnU9yyF,{P.u՘%F>q-^qRjm+|(e*0A;;i5C^%eKU$DiDq qyhSѦL^[MIDe>AY^d~Gq~Ip!^f)S~\{'"Tt[ @ }OBa;.EGBq~p[J~E\9{:| <7"T".JBq=#w8-TO}BP( SBP( BBP( NצШ&BP( ōiME!vBP( "DvBP( fBBP( 6ɠ=rIENDB`extension-manager-0.5.0/po/screenshots/_21.png000066400000000000000000002416111457631363100212230ustar00rootroot00000000000000PNG  IHDR/ VتbKGDC>IDATxwxTUL2% zPD]슽ֵb?֮.*"PD:KHH^ggNwι瀈Hfh&e7{]Vqee(栲DV xM\\&""""""TM..sIukCkZH}(WTDl"m(0eHSQ6.r5(.N+z(dVɣl2^rJDe-n%u#@K%""""""Ҵف$s[KncI,!.l`'@ E\;b۱v՚}̙'O J'%[ەdm?9ݯ{'""""""vVkÇ7Z,g҉wE]q-@Gww'F{rDDDDDDD`h4zG={6f dSi6d;K+jGtrgwEDDDDDD1ƠVNb)ߚtдZM%܃Zju_/""""""ҔF8NSA%F',{xpppdi‚:(ʅ)?vɋ[{F &M* ζ󗛛?E_(=x'Ӄ:wل;D~IsSP w}[P SpW.%M+p^ʷR-""""":z{>\2᮲[yu.NmɶKpWpݠ[ QO]U].OvvwnvS4{=@uPN8ȑHSHU.'ƅME;=;O?ԩ5v(Dnn.6AO>ns%S(((hzj-K(l6iiilݺw}zw<|B >uZ\d!Nxر*+yѿ2~8f͚͡C΂lS\v:zɗлw/fϾGcOEDF*ʇŮt)/[miVlHCZpMTg%##???}m"""1b+WlűsN}o9s@zI.?ÆM5R.r^P-D|rv7 ]wɟ'yŭ-dbo{իW+~dٲ dذ23o븹\ĉʑ#GX}6l83g^|7,]Uu[>|l߾W_}|_;7x>v?K8s  ŋZ9ijjrss3f4F˖-cq9Yfѱc$&x ~G 0bpRRzu,nnn̘q5f]r<`ʔ)knf.b'^ٳx+L&'O\;O}0ydOcz]e V}*""5s|H^}^}(NMM*[Dl\}9t0>uO>cX7nODDtCL6ݱmxx|1юggUYF>|iiixc~_qtj_(`Ϟ=N+F#]D1uf3۶ms<9f1lXL}Kyʿܭ^ɓ';?u"##HKK!55q­i9(9Zv1S<<}+ٳ \nڛ6mrwz)q.>츔wϭV+G&1th,r|lF}.Ԏb B sV-7%EIU5d6ٿ-[+'\oAp$7Jn'??)))< t xxx./ג xK-;~_O(l0^H]-$TM̜9Ç1|pƍ?8YKի{\*3 9sfzVVXf:oߞ_}'WK+2^];''2kr.ʪq]Cvv6ǎuOLL\;O6YDD_HHFǎ"""xW;NN>ݠ(foo9+ZWIt  dy%\|DVZPmرX,f֬%???4h Ç'.Æ 7ߢh Cd/_+\V\jw^dddTxttt4SLɓqsxw-*``͚8֬ȑ#̝{;QQ=zWtA>`Æ_زe+FC5GhqVFRQbbbx뭷(,4S8=.syroRRPz|TTDDj_r$s oNDD̬Y4%򇣤[w۷=`3x =qo>?;v$$$z/4(!ٽ{7ÇnE7nȐ!CX?Q#),4x 'O0}|n__{qx䑇8s,7p^{ +WCKm;V#ԩS֭[?ԦsNϡCK oCr<9СCر~9yHST>-,""5յk<Ľh͞;N{.]άYK}9}4fͮbQpax>ݻw/?ϋH#Mn׬\grW5v(L]~4|-}n=r| X`?pP L4www)˹EDD:M &-NmW|{{SR޶mF%Ҽ_\5ed.RvEdd$_MعsEDDjjwl&NB6/xG;,QT${_jr'Ǝ!H3j*VZa4*pjihjfOɴ4Ej? %"""""Ґ-MVE+iBӂIRwkӦ?~ez?H]SriJb}R-]JlHc=L+Vȑ#uH9^@gIUPz?Hq}CBywvSvj gt9_h;-M^qb,"""""ҜniJ&u$^DDDDDnivj|+[5%"""""Tnz[DDDDDD(zcO<Ŋ?{}Q<ǹf\A֡yۭh*?w#酕.H:hL5CjpKXvMFuɋ\6 [ƴ0kdX?'E֭:d7͙OO"${[nYå3ADDDD.iӧ]7TRjGF];*Uۗ݇KC Ac70-LB e*NE9ņC{}{r_͕M/d޵aWW#FUnzCsYtdXJ wWӉUDDDD䏠n ?_ z ]SUއ#Kغ};C tг{J&^&#nFjI3]ܪC(oh׶- hDDDDDuZ0gEf o/XU)((da3v,Fʻ,+%&:OXC~^˴Sx޻kU? vR w욵38cOcf3]g&Mn|&LO,&]Z3_M!|%GxpGw'yO6if}\K ,E}X+CithZ3SQ5yJ+U;%7[US2wf yyrmvxw)n>˩l+vlr)ZCRvEl6K>o3gҷOo.ڶiS'qTGu|&N`ϫ8@Lj]>zq}]gԕzO\5c&^RcoNrYڪ7p=k{|bE}t}>DEҶM@Pmadfdw~܉Oɕc=d0YY$$`M\w5:ud6mʰ_؊10ٵ1tmI&nۂ`;nڀ@zyϝǶdB2,vF#ۍm<۾UBbOmֶnGv[['NDE5x(4yܙvmyo%''u*+*3tO_9}}{U˖=6XrU.""""RWKW]QhMNfcc0X,6X|RRltRb0s4$?__ Dڵѝk?vL;;v~[mS~W^x)8_6+ټe+wͽATα|[[8c%=B&|<Et/^gl?DLկn]e%.l;ğ8.omk[!X AAE]ܯJ^z5RRRX,t/1{ѤZQQcoh4ҷw/.vҨpWyFl.fa0wcFpɇvӍƭgt]Wa1lٶb섵kǨ8a<)\зO+r l\z -idGox.ow3X|s6ed#}ykvxUBَfjctwP6m6]>zm2a*ilX&uƍnF<=54=Mv6[u-)$-6bX )'L&]*]וc7bX ۶`_Su|XPv8Bߒ9cɡti퉯 ZC"}xtnG~ڝEZFsj]Uk[g6;֦a3/rh?xfo~";wKxNNNݻΝ:]`"""""uI%AAnW شe 6'ػYNE]}|||D{i{̙|xI eOKp!f`^f]֭iٲcb}{b zvEBʷц3αmMqxfZrY2,m ߢ9փ}I>mnw&6r쌙]}=\9(ǗggRY&~n Zic%-0x@NѧW/zm&S(*pa(!7^vnNv߆ RD7/""""||vY@>`, {84.""""""" %"""""""@ H=HC"l,|ADDDDeJVF;!!!H5KH=q wjC-Ao"""""OmeL4M[ymy)%%"UN2ƣ\DDDDR-hM-W2.""""ҸpKgZbsOkxx4%$d9hn&(/5E-"""""͜ZE:pjZMW.4/JEh-Uťd\DDDDQ-JJNއ`y?GxXXbSMkx_x4pgeevN[ڊa0!2)$;իu5ROMʒ).Wno"1(vݥ}}|ܹ 8~+]g<}ӭ1+|LC%ĺ6:ē~gxvjol&58cG&Av'bT7~R\?8#GCd=+/)ndM<[DDD[[0=o&,ZH}}}t|}vz(΢G13,f(ڇ7LR!% d(l8x;{s ^^^uB޽+]v N8[DDDg5[c9nL&;wxtرrƿ_|½*6UqւzWNbe[K&~~~stP P-۷JAIj1tA<6h~V^Bx=>xZeX'ĭ[O|b"ڶ .yRkN`b6n̩ӧ ~};of9\^d7r(J_ztV~!x/o|6C[3۸\:}=OuΨpB'q|aa!6//O6gkU?dرk۶CT]VKßNeՊnݽf'/nP|<^^^3ࠠUWp!N>ML`@ݻv{.SDD|Pѣs43papckݩ O~A7_?OHཅyM3UZlYzrf3wݺu?CPP 'OmN|;&v# _k.5o12 f &!f36y/ըܑÆѭk*k|,'+a9rsstپ}kp7w$#3Fhr<+]l\֬]G C f~4&p &U8v6++fd_ڵeȠ4N|=_k]Tn߾$;# |u<-yr-֕u#M 0zp{i[ogȠݼzvY7Pw#:r YlQӔI-nP8@LRǹOWѯo UO?[n. -7\<}w݁?snI'UOcDnGa6[x{VZMAA!#G 㞹}ߜocĮ]KBB"as@b8zl6lf3l6~ݲIIK~}`]l۱DwFLl6n%!!J2hPko`߁:|`_:e˗ӻG:tƏMXvvvOPb׈8t 48HNNڶaDL ^^^pP,^ʱdz'z6@l\w{v99g.߯/v#IIז=wv+.YD^:7˯ΑI,|m/xTn2ٴﻗ|D=yl}K}s֫g";w;fGsRM&wx'hLb|9-:/˺z߬Y p4GYYY쳳9p d=F+/I]l1Y}[qngo6ngb{]"qVW3{浌;u?{BC;p˧:qlںc\4v ӦN)u/h$? crŴEudddзwoKN~uD`ƍdddr)\>u*YYlڲ\\cҧw/FEq~TDz %*3S/DPnA‘#3˧N͍gIJj*#bbaqL:([bX$Uշ$9Yc#"""I$7mf݆ 5޾~\O 8u 'ikWNF޽hղ%wϽ V\ENN._/g"88V]T.@]kgpiÃx?_y|%4Ǟx;ֹbeDvDX5kۆ=~d:d]{pi6t9/@`@YYqqdfegbuRd@}>9SXXKKT$m۴;ZֳGwZÐApBV={1"&[޳{7_>q2=Һ f8ȅ __OѣՊy@t"$8wwwV+Ͱф)4K0ٙ!!x{{ӧW/ꅿt*7z<廘Ϻ:6"""Rϙn8oe `ΝDEv.|}FڇWZ͈#a7 v=&4w_~I^^~ңHl:M%#0cV%<76Fqìh:{zvKg-7u%yiFDF2ދ޳mxYr7a6~h.nظuSeyyyNYUBl66 |Gߔ Y$&utɯ+;h*= ʽ^h6;`4fnW:rloSD/臟/߯i\MN/~lnnnU_^ş^^x{{|,ҙ.xױ |x~ċ5תX5˧?aEsf`b~yy|srrJmw~fH֭a\:erbilS/ħ_,A/9K*z:e-[Ã[ov,7;8p `AyqE(GmJ _b:sİ~E~X&QQe }o 宖_r&^*m.߿Ov!!$s^OKK+ 8.v2= u|fOK+77@t Sl___Rbu7lXJ*vs^ֆd[.ǚdž_ۋ%D=i٢_w9{3239Ѥ$18;ulDDD4j /69l;t'Uٵ{Ga䰘o{ $;vnZ\?rӹ 8oCSՋ^~ekW瓖FHH0qu] sK}]:S/_n5_4˯7///wLD̽f`o>\Xj:bg_~ +zs?/Q9k1}:b;=gW_u%Ͻ4D{re]2 Qݙz,%%N*/''+W:YRqKEHĹVDDDh4ۧ/6nއaر$sfcdee><>k?͑Vtƍp\i&+5`9R?v!4 1 7h}ìlڲѤd>X.;*'5v5c5.}xFmڼCioI]A^pPהdndƟU9T%+?[_-Sh*0qM`Ԉ ߟulhR22:c4 mՊa1Ѵ (EDFmG,""""ReZ0???uU߯_c!""""QsuOIDDDDDD(JEDDDDDDnz[in?.%"""""""@ H=P-""""""Rk}2J /ƕm"""#]EDDkGu)JEDDDDDDnz[DDDDDD(&);'윜CDDɱi85fvdegc2 ~5vx.X,l6L&ɖY/~ES.qlŘݹ/b61fi=%9-crH_Џ!5`DUkZu!+J-[v{e%֮^U59VTq3k|} {nDEvX䧬n+8v,///ڴnMvv6))ӧs5q:|OE&[3p3z>}wwwB`""ۓ_Pth׶-^^^EHE4]\Wc+"d;c0XJ ǎq8>[M2>αc)mӆ˦NqnXtqhcF˳3 LvY'"\1<6.3pk۶[&JWDF'NWֵk$rHKv{l۾CpP\H/`ђ% .`_عk_4h1;uϏ}ϴSqZ0 ibaM$9JaAmڶaСڇ~^šÇ|RF#7pc*+cʟ9O\з/YY|x{{ڪ Xd">!N4`c̺ pQ ݻu]ۻ7\777f GغmgϞà &!jn=1 у.i*M0[LNn.^^t܉:|;<._e}U]'^]]l|lNܩSYcq(j""MhVDϫWg߾zKiZt>36lgΔZgy3F᤟:w@ժClݶOOOZ^lv:Ftl6a2O+ٵ{CC ))^Ν::уw,1CdmvzV+cF$*se֧ظ8~ykϞR8ȑIϖ8rcOVo~|}|hʎ;1.ןŊ+ͥWϞt /OR_ 8D/[rhRw^D*{}sws#ܱ#6;c3ݕb:Y|gףbM:u^={ҹS'5=geU8BD3g뭎ziX,,r܌\6e Fcz___&]t7©Sٱs';v$*2a1CZٻ`|F;iۦu .:Pu}}rKua?u4GОc85>! vԉDN9C=RFLt4bcYqizEXX; ˬo o4gO==<0l۾6JDdddpQ>2F#a.ןf#88^={MW]le֭ѡ}%^f^3<#3?IIzUdʮee.rͯ*"1v-BRjYMYY9SMi.<Sttf4:Wq Q4vCډ_U}y\9}5؋ǵҎjeXF ^{FMY*]8խe4BzI`ƍFvIۇӾ}8ݻu~GJq:Ftf9ֳX,LoQ3lWtFthR\OWqlٶͥuj٢E wu}ZEdq&ΑGIL<VZ'ۇ$iTgȑ?rsV-[:^ي.u>r(уѤdG4hΜ9xj:;00$ 8(xyz9h,JKJJII;p___223ټuc^Պ,ȭ7tRйy4)pssmg?tcDAAA믤>Ua-""O;jCk[t5.VqqW5+ke-8={u.&99ooJ$`a|y*sN+R1i223YFF#`Mrdq>>bIO/wϞ>K~ki}\\7!o[MJj*f3G,/Cf:ĭm6xzV~]3g"n:F#YYٜ8yF:6VD޽"==,BC[1aXw+}¸qѤ$Zn]h3jZlfxLKO?]RPX{j)j64!a0ؾ}'NtnzI.QdggU~/=d0>> f#6.ٻAq DŭezyTtԫ]iaYf,r+sMAQfdrdt?,|3Je֦˗x٧&]?~呖vV~7SW89:۹󤧧( '$pi4}? !Dmkڴ)];wFVc Uw=ZnkkSm}iuŧiSFF7ff UmiJAa!W>5fչu!D}q%.\DAa!ǘ#>VhpGMp 8ڛՊtJϟ>NuTZԍΝcC}AڵmS!D!BQ^}hU*)`*{Sz0R:d|-\uMKHLý.B!B{^.cc9w>&ddfruZ4oN&M:4!B!5pZ`|\#[]%B!JnQ[t!B!1B!B!D-[!B!wܥwU/BI(BP;Nۚq!B!*ҥ\!B!p !B!,`ǺuCB!BQ y-B!BIB!BZ B!BQ m= / uGP>m*F@`kBc:Y,;[UI^ T`p7!D<829G7px37aWljv+8śuB!j߂lvsw^g+j qZ:eV^@}hnˆ_x+GI,^:ѡv6*~Uc[>9Bcu߁YHs^.fruT~G:g'\횞>]m3T>V$//oA{iH(፝YZWkMKn\!+T/&>Pn`DLJ@6`.ߝ.8gP;GmU-dl ts5<7WvNšKEV;BgcT 5׼gUXwFvvYdKwd@*@ >Mτi^?cl=Dz/4O8]ZehG'ܝԜJ*zPS;PJ:Lؿw'lR. !hؖȲrk 7::gO@~<_w F3břn8cd'gT|uۦv&lh_r)+ tƢ\(VUKq$/7(<Ĥ]Y' CiM' .4P[GB]xc뭡gk{""%3}]Y2ڃQ']g `spSRYܯ3(+ jC9{MgC솗ֆ~Fbpwf p3ߍP?{:"BJ0o6-{ ;`kyF:gGVNJ88ݔ _ו9B́z1cW76ʯ}4od{dOڝmVS&?77-B!ZR^fzv0%5FU`4MF -o~wqPjCxklTleO|~6Y`VU%l* p`S9bUѦiWUB~q8tw 8|#ņxkmQqBEF.Zc6s)MOrV r-fvUS^ά9Cf\o7'U13}Ʌ=׳ nƄ,i-3uP_\F в,_דk`B {nv6*gq1Wfl廻*4òdC!ny_*bX'-^Ei {ghcǕ4dVNjT*ײoio۬,FRq-:t%xi+.(Π`g[{3^6PWp+FXgpb[srcܝ vc ;9px&ʆ_UB{A$㊘1-̟٪xg{B#eTuq$F]:[ qꪎm%u %UZ$e] L]}{X̜]od^p klqyEO\JF~>v*ԪҏQL[!RSx$mγñ*4&^ۗ|Yn4kZMW+[zo Pw|fZV*NU]Q]|B!Ľ ,`Hi<1@F8٩y\%o&nqԨqY#Jg 7ϊnI]PW[P-)9bY-?Iofomo9ƶ>v9yj_6PSscfB*0PSH,A>5ŏ-vUжSwO5d^fۻث),PWv!AItKizBMr8hTtoe-hf5ۨk:ut&.E_l% ǯ3-mqW/菱`ԕ]hSC#'5v6廭(K,fxG'bNO: /mi.vo|=>n68jT3bfLWgܝ<D`#٢{QӟsߕQ@tCwg5ȤiBQFΦf@GX?2Fz>8sNvUw^֓҈vpV3{p#2 _~FNmn!/  r$Hz^յB!D}`LAMxZ~#γ lĠvN\JWL߁t~ xObTN&=S_}]'la7ncη.v<\L-ùfX־fmF7U$0os w Sp,_Lʳ\9P/Lm8GF70gSzk ͆|,3ȍ{RbP~ZqdٮJ!Ux[u4!Y:X3KimUV@!B!;@OPH[fIc{}5ļ%۷M*]*]!D&w!a6^ZؐpC8xf]/N0BX\߅BM8hT t`\7g I(7B!B՛>GtB!Bqwς !B! $B!B!D-.G7fB!B!D'oB!BZ B!BQ ,q)23xM6uB!B!*!oB!BZ B!BQ $B!B!jAMEfΛWPnY*>|*eK %Zǝ CRRߟ^x:K! cΜ9fv܉Wm}||oUhB!=wr(;w 6ɹsO4"Fovb¨AVG@?Z6mlvFFY֮NM6KRXX/„ B!.M^^T\~.]µk_qttjq.=$ڴjQ+u ףVʽuXggg:t(ٶm[]%B!wŋ?Pr???ZjeHJJ IIIVMmr'G{F=ԛv`p7{E8|^}v>67?F]ϼwxundT[מP ]d֒jǁ P]h]1?~퍏71\[?^W\z.dj5͛77} e>;v3t̙3___2e yyyV?n!0~x&Ol,""#Gm|`Z/ӣG={6?NNN~zv#F@`kkJFCNLn޼ٴ ppp0 B!jGiZmrJU FU 7@hH J@بrw_cgӣco,ϙ fN%% ۲_q2wTmQ]ҥm?øGTXwr\< fDZag[1㞻tC'kބen%&&n:Lb|֬Y<k׼ )7*N=ܴi4S{EQP,X@ٿhO||<؍)clse;yv?0-kZWuJJ u밵֦}/j5kz"22튊0 ?TԭիFZnȑ#q öm۰gѦ5_%!!E!D7n[nJޝw!##6l@^^={$99_~(:vX[ǙBq ~'|||vPmkc!}f! uW_XĈ=NSI~)(*&\F-+ .]x2KĽ2^u\zʹ̨(\J&克KPT8p`0M҄{߾}| :Cramh4Ǻu8t[l!99___Z̚.А!CHLL~c库C`&==j5~CÇ5kE!1EQطoիVh0 7@_sڴjc8QX`Y >{fU*:mW;Mo4hx-BvQ].\r\ttгc[~ͻuvb`ݻ1cTVeҤI<=z{9}Va'O֖w}Yjiiilذ'O(˗cSI{,B6EQ8pyyyEQ()))׳n5`C#loFГoeѪ/8Pa-~~K%|̙͛3qss_~ j˗/7]>|8fHII)qسgOh4,Y&M  "**R'O{5>N!Z|2YYY|lذ) k(S[@8Ng(R?l4U MuB...*}-BթTST (@ `^KJAFn.پUll*,^CBq=**J-BԂEjz+`_ث.u-((ܸ iӦw]VQQF''' eԩL<5U\\/^uwTBƍh4hтcꫯboo_5l!!!<̛7CBaEF'N@qq1tܙM?s… 6lV^&%m}>^<3Q\8:P 720j>ŋx"_|E]"6mK._~ &Q5p#FK.uB+;qIII{{{.\?ȑ#qrr{tlK.kdi}z72X^ZgGZ6ȄBagg3 :l۶j/^\!!IIIiooouƕ+WHOO lllIHH ((Ȫq1F} 8pEf-v`0͞üfGaѪ/8r:} #Q?'u|>uʒ%Kѣ...tԉرP  <<KxbK4 ӧOG1{l~ b5G1g|}}fʔ)q>KJJxӓ~,j7onlkOOO˗1b[[[T*h4:udQ{G}dё^d AAAulmmqss&))ɬ<S\Jɓ'۳⻓B!>;;;Lu:ŸU}zz:V^[/nfMhQ8YC:3ti;0>بrw_cgӣcoJzRҳ3q^xq3s/wΝ;YjٓcǢdԨQL4$=z4se?^ʕ+# HΜ9Ä 8q"2sLbcc9z(ǎ#>>^x><<;vebbbpvvcBq%&&n:LbZtR֭[9uO<^^^lٲ^O~~>P]Ns 7 6mbӦM`ooπtm>CJJJ8~8ʉAף뱵^uBQ.]r {k׮V}\\~~~Y5zpklmQ mOGNX*5/7rep.xi|-틊u>~GtCH# Ω;K.x{{3o<~w.\@rr2:{ wwwBBB iӦ?qa͚5,XoooZhE*="{=>C:v숟˗/cBqo,_JJϏLMCII Wk׮4oޜ0M{S\\̲eXz5۷ߟO?nZn-[Ҹqc-*L!7:u"11}aggot: zr 7zu#xsf8M<+'ON^A%֑(oNTeb]Xggg֭'88CO3p*OKK/СCܸq ,;..Ș1cP<0^ONN IbʶBQ?=s_?Knj\%ԩS1c{QQPڞzIgٳ'ϟ7}޼y(ڳtB?_FNe TnRxZ-^^֟3^ᾕZM6|r8nZTv:=~CVn><؍)cܻļLٌO+ӟOh?xsu3ذgmۆ=GfȑGϞ=INN_&**;Z\oFd $$$Dnn.PF`0`0BVˬYի1jFFXެ^B(M\ %%M@4Ξ=Khh(&M2`0u#/S]{V]|B璓Cll,}WWW틷7N*}\\'K+S2j7?f3rcqzE/4u7-vN_\ׯ֭СClٲd:ڢIOO'""`Zm@j+6 JŁ`B9///\\\h4]ﶽ=1 DGGӾ}r۷hт'rY(}uBQ[{u)))ѪUZ^&ܗSش H!-#Dszۖ+EDa1g+($Sn{>6j5̶QQ4OFFk׮%99ۇ3o[lILL$??Yjiiilذ4[kƍ(k4ΝKxx8{`0pUӍV'SNȑ#h"B*))b222ؼy3{e̘1xzz2j(f̘All,l۶l6XTE2i$}Y=JJJ = <7n 224ڵklٲ///6mZn3!"o>nܸAAA ŕ?Vb =wO"¿gioє>lĈ=vQS oiV ~+zwaӮy#VU+'YYYl޼.]ɚ5kشiKSO=E޽ ;AAADDD`*w 6f;7o3g͍~~wߥ :t`Ba=888ʕ+SN|GЧOZlɲeHOzQKڛX!C0j(:t@ff&;v0{S>uT 5k3O2J߬Wמ !S 4ggg~'8s ;v4+Wdie*jT7?jJ'UY(Jk[Fu(CB!BQT*)`*{Sz0͏I|-B!B4tp !B!@n!B!:"cB!Bn!B!H-B!BIB!BZ B!BQ $B!B!j$B!B!D-[!B!p !B!@n!B!ۄԩSL2޽{憯/?0W`0uxf(((0[믿^6|GwTgC:?B!!]}BP\r(bccZnK /CK.\k׮w^yV^M.]HKKPM/^ɓ͖1.]T͝hG!kiBwܹGRRRbm^]Zbɓψ# cʔ)DFFaU[xqg9?B!jrQ!D}rE|}} ~'u(}m 8Z B^I$&&*^^^JBB(rYO>2vXeʹsTM9~(R\\?QGGG%00PO֭;({VZҽ{wȑ#LDDRJ*ӦM3mʎW>K׿BѰI(Bڷk.N̅Cn^7sef.m^u)ߴi#GϏ ?NBB5b׮]En8y$vvvə3g0a'N,~ڵ;w^z1h ,^_s2|Ə^gʕw ̙3ѣ;vx^xᅻ>?B!6i}B0ի̙3oO mr%ӾӦM#$$ȑ#fϘ1޽{Ӽysz-ظqkSNNk֬ax{{ӢE -ZDTTi9?B!.i}B0ի1ϟܹsbcc@vv6@鬦ަ}/8t7n %%ܬRݛ;ZomqqqFƌJUAדcnΏBKGiB4L ׯ_@ј5YYYaoocر#yyyٓd^~eLbccF믿@BBIII暶#aQG! SJ9w$&&[ruyF#|嗔ЧOIOO'""`Z)ʞr9z(^m|}}jl۶m!hؤ}Q!DT~aׯ &Lw׏'Ү];>onLJlVZEZZ6lpB uVXp!3iٲ%'11|iܸ1 (Faܹg W^%::ϏBMGiByς)9R0ak_DD奸+cǎUƌ^ڴ[nʘ1c UyM?b(#FP\\\Cʻ'M*fΝJV#G*(FQy7m*Ί1BѰI(BU? V_Y[nBnV+J cǒ… ԩ>>>1[rCCC:u*'OEm!UQ!DmRT@OP(7?&K9@ӦMٿ?3f>o߾CSpމERUYx=!F}K(BT^,XJŤI4iR]BPPPkBqԧ뿴B!Dn!B!ϠލB!B!?n!B!@n!B!H-B!BIB!BZ B!BQ $B!B!j$B!B!D-[!B!p !J|lٲ#B!zpѡCEpQT۷Gf]_5>(-[Ņv1{lrsspB̖ ,YB^puucǎ̚5R}_aׯ_gUV8::SO=EFF|GܾU4QPPpDZTHH=Op1gΜrGɓk~FÛoLrr2s%::R[jI{F!ꚢ(;w 6ɹs^OJN>ͷ~[%KhKQƏK/?vӧYbZgggӶ%%%̞=2u:gͼK8qEq:uDrrwr~}Y>۷o/]qq1۷sevJF=`iYx=-3btrB4l>|7|R|glݺ1cK/T QS -*?=˗~:]ta˗ZUK&Mdj… ߿7kXz5Oĉ888jՊzl۩Sg{n Ti7n &&GGGXxq] h >}:.`I]BܩԖVQϏVZBRR~~~V޽?A\\0[3.::ٳgsDPPׯ7/44%KУG\\\ԩxqL2@.]d*cΜ9͔)S˫^{5^}Uc˖-cWݲexM2,Z>Lߚ*))*ۻwo[ .cǎG˖-YnK.e|h4OnQ|U{رc8;;@xxپv7,Y :tKѰ͝;nݺ1vX2KO+VՕ=zpQƏ_GODD#G4yfӺ .?#h4ڢREЩS'UU1BxN&Mprr"44Ѭ[cǎe…saĉfWv̖j!QX~Ϟ=t;;;Sۇ\M6l>Dݭc:wlǴ^ѠR8yE1nkOOOߺobjh%|'}z2{F!JUnFѪԻٙ{άJrr2DFFr&Lĉ5nΝZxzرct?o-UUz}]^~e:t ;w.gzV\iq|{dԨQL4$=zt+lڴM6= 0+k%ʮg{/7[oiڵ;w^z1h 7n۷o7غuYBӧݲe z|.]^ĉeIPuՕ#FO?q :vz̖jV=I&q *Xv-7nիU]q.99^7|Sz=zҘ,]uֱ~zN:O]\\L.\h6ĿrfI~7G<<W^yo׳f͚J˲4%''xpww'$$ *..fٲe^ϧ~JNN[nj]BaŊ0h B-L,>͘1޽{Ӽysz-ظq#>(/55Ǐ3lذrqlܸ{{{NXuqL{3Xz5]vy愅[oy BGW^%''[/F1m4^uO* "--+V0~xHJJJ3KlU 1ȷv=h42fZjEV;vl/͛74SO=Ua?IbfrJ_{EQ>Ǐp[Vܹsr _}IIIѣ\]ֿGMΧO>gۦsZ;k۶-'88JA=^otٙ={ry%hyEѣ|7fVݻ7qqq8::2l0m4hfK/{Uvw{]5FK8::Ҹqc>sS碌a1=uTM"wJŊ+B<{l>Crssٹs'߶, !!\uf8*Rv8p U7럻=IAA YzpC۷s1z ,jzY\(((ӌ;~uߚsYի),,4}nWɉ7[oV-׻ t*[reo^og0*mì[QVSJbƌU7_Qf0駟m 7&MbÆ (ΊNDDh=Yn֭[R*8j.Uyyw*}CY{{{VZٳ6[7}t.]Z`W^fV_kYfMQi ϟ'""7|3f2z׏uq!lRg8&{hڷooպ … t^noC=Jpp0C !11~NÇ5kqu-.T*BBB;w.vTu\Y=4hvvv\J\,^t~ ok] xxxUF{u1ݪEL<~%BEQطofZSMt0>>>dggj*ذaC]dV?ONʑ#GHMMeѢEsΞ={0 \zb 4ݻb N>Mbb"Zwm@i "$$BTA\`YD!נrJ QB0 h0ƖXb\}X`D)ð?̜S C3gYsvg9{w^B(:l01 R,X:)))xRSSモ",YDn+AT]xaaa8v򐓓?rީ{ZZZ"//1תhŘ:u*1o2JuO#w(^!!!tܕy՟ -p}ܽ{%%%ػw/v$_Bz?-:t0 1Gc*=B׮]QYYI 憐FۮOvv6QXX wKGc[=iF„ 0i$ϟGhh(\JIIIXv-N:RP@p@q7m+Wޞ&A+Gbb"*mmӥKƦOѭ[֖AD "FCG!""  ^Iك֖AAЯ_?t{B9#F#Z[A-VBII ѵkWaʔ)6mZk" rm\z~~~-  ^h7AAAA(pAAAD&AAA Є    pAAAD3@n   hhMAAAM    7AAAA44&   fpWUUsvvƗ_~bA:HADDJJ vڅ}ŋh:̄;::-?bA:HAEyy9;(,,ĥK4Fc A#A044k###ĉMMᮩ `kk kkkL6 (P^^lݺVBtt4]]]̜9Si|憘8w~ yf111pttDǎ닻wJ1cΜ9RW\ 777BxxxڵkSSS=\^Ν_FFFpttĎ;H𵵵-,--1m4so{ر#F);&3A44>(HKKe\SN022N<)]/XSN~:''܃2|lR_8##oCOO/϶3f̐ݻw'RSu+ :::Յ6~m `dd?۱cG?o#22Vye$F[J~YYYJ̧Pf{yϋl']Eᕵ{BGGG*WWW.O=ٲepwwG]]¶CŭX,P(hmj=k,dee!-- ;rssg""" n:/+n>}0ec?~ Gņ  3f p}$&&" @H۷CFF1l0=֭6Qb ((O>EUU +'Oݻw޽{R~oD"8p7h |ndk@ ŋy%h֭`q?GGGy(EY⛮}RRD"***w܁H$իWq֬YZZ^=1|2zi r"[4Lii)bܽ .]rשԔ0KKKVPP-YM0A~://`7n`LKK[?lUU322b/_˙ۻwҴc T؛o)3esa^^^rXdd$w=|6e)c1k.˜ǕjU2ƘF ><<<OY٢E{}azb+Wdv1G1KLLd[EEg| c:sα?L/#y6ںu̷Pf{yȳ ioH޽&7ndb+VH)j;DsUm6m6v1VZZ*kυ[=W6{\Z6;;;uuu;v,:E"?2d&L???l۶ ]vmR| ѣ^^^prr/> >\f\D"׏gll ܺuKiZ|ŋR/,,Į]py<}?Vx2mC B,K#+ކKAGG--- 4ټl]ZZΝ; 8}i6Xt)?___^Z$$$uUU/w#442w\\ .ą `aa[[[νi{ 122Bdd$>#|g°aPWW@8;;V2Ryy(4D~!aaa;w.lk|O>(//ǟÇ,)СҥKC^^߿2)S:0!NI[[ǏǡC=Zf*bn}}}(MֿW^^`ٲeHLL xD2QAbh|T?}|ֆ/[ ̥ɪdL>HM6n܈/^puFvލ |R}9r$jժF˯Oj\[nETT^x:ɓ8y$QPPֆHHUoPd+>* nQoEEE077Ν;vG @(b Xmfmkk PCs-b ID*OOOlݺϟGRRבgϞbw޼Yr%vޭt<{ prrP(TEYx{{FyOSԼAHc}JKKǓ'OJFF.\0j*zzzX~=ʤpբEgϞwߕrkn> `jj*ڡCpƍFj 2X|JZ3UEG(|S Xx1/_.BCQۡGKK ::[f&ܺGDD?X{!==F2uTc޼ypss666HMME~~>***Ƨ"lٲę3g`ll F~B!0}tǘ={61rH^%&&ʢK.(--ņ PXX;wڵk / #$$/_Ɠ'Ob ν)nj ^eh|>QQQHNNFaa!PVVc*ױyf͛X|9`gg Yv-;hkktuQQQ077GPPLwy &MNOSu }v /0|,_\[/۶m͛7ykWFl l/K"[IWQ w%sq#ǨGp%{KL`Xp!f͚333xzzrCyy9oŞ={OZL< 3wꦢQRRo߾Mo>K1cƠO>(..Ƒ#Gx7666X|9aou puuS'9qQ]{75A:4>(pppoӧOCOOb[#!!޽Çsap ahh`ʕ5k n是֦Aedffb͚5y*4^[N6V> QQQصkg@\v PWWO>DfܮpBZTپeRM7꣫e˖!&&[}sqall:\xIII8{,蝹BZ2EEELKK=y򤵥Ç@ `/^P;w icDsNnem^~s)<=[]Q[QC=MUKۚ/m4P6Jaa!͛w+`u9sF*myyyɌÇOaggCCC'OFQQ=U겪N[k 'W'bR= ++F~tÇ7&]]]^?# fOP ?ND{=='Ԅf̘r>BƜZ̝;Wi555tR\z+Vٳgꊂ)rcbbdޟ>}:JJJ~)))UWWcȑFJJ ޽_~СҼ4|ˢۚ& hNO?!99cǎ.]ڲPDӳA{ZtTUU5K:kӃ18tPkѭ-hlܸz* vvv1bߐO8vӧȀ!gϞ9r$l߾ߩS'W*ʜLiqm\r:::\z~hO899!11e2ىhgUBAA`gg,7 Bnݸk777ر#F);CLL ѱcGݻI&I-5ϟݫrssq`5Mr^y 6&&011+Ν;ǹӱj*DGGcϞ=̙3QSSs_c,->q+Kmm--Z=z|B;\nnn k =z4 5OZDDD6mx nI*/.5ٖ90sL[+h"n-+VO?bG}l={Vll,BCCyiGmm-ߩS֗3U jkk就֭[e5>mے E}[S"^}ƏhFll,F e9e˖UUUs999000']]]@ @GGpuuT[[:::033ûヒKYv-z (wiuUetՅ@ k׸Ƶ:vdeeh4՞ m+o1x`ݝ[ʧDVP\wrssN:nnn8yTe``  `ԩR噏V>塨(s?~8~mq[>;Ϙ1C*|mm-w.5Sφ/cmmmRڦ2 Qg7e< |HYٶmyf 8Pamj\t @ h4;??[nŴiӤ?Ĺs0x`@dd$ۇ}!##6ljjjSNqϞ=1RSSaoo;b̘1 ߬Y4g}v= 6 77 DMM ŋ1~xD"_zzzpppq L2SNՅo8r!lZ'NMpm_Ν;XhF pB=zHOOrrr8wG~x?D)--Ń0`cR166ٳܤ!555I&qwwG޽; 66\_^f}t;S="""֭AO>2e̶W:m[6MEz7)))%''#007n`͚5a``2sL.$D"TTTܹHWhzOHH@mm-\|^s[jn݊;v4ijʧ*-!##""[%Ԑh:tǎCnn.\\\ Q6ePKK-[૯Ÿ%%%*沓2cjj >}W^ &LԎ|g>Z5=>ק ӧOQUU%f˖-x w{nܻwOaِܲD"8p@Wu'E/ ۵g.^GG_ )ˉBVl8k&LH:vRSS9?g֭ WUUŌ˗{‚ݻ0]]]07oa,;;7o<ɴX~~~#}LKKs.\v+g?뼼<ݸqC[d 0ay ⮟/^0ƹx`onwø222VPP݋coF) _YYP* { w/22R'aʕ1ƲW_###vܜ8p7223333vUcsac1ֹsgvi. ޽[fzϟ?gsL[[M0K1Ǟe>SSS)KIIaRua[SG*m~Xe}[S"&L`ϗwfiioΝYJJ ceell~7c?f1lܸbVX!W~u߾}1v|}};~8秪`wir,af 1D"333+ Ya?c``Un uKܹT_]ߟO1ƺtN8!Օ%F]{G^=TmذWo ;)ȧHx)3g|"##)SHWgEZ)(spg555G{lѢEܽ>}^zqL|ѣG1GO즬\ħՑ[ra0ʝ;wدcoRm!=v{nl\ﹳsi)ٳg1?˗ fsss!n݂ʽ>r_7z-xyy 'NZz:;vvvC``(J=`llr:QXXx?ÇǏ5vqKnn.b^Ul {05ER/${Cn߾[p!wɓe}70gov 믿dBII z)uC1cK<{ ۶mSx@[)?^_Pp__p}sKR<)>dL0~~~Xf gSYOݶodZī!Fŝooor~  )Պos,]~-]m|ٰ%233 CYY;. |CCC'9`o[/011Ç(&5S6TeCuhiiaРAUS}|Nii) aii[m湾VN@  >>^6s"!!eee8z(,,,UVlUfi:HlddÇ#//2vMEE222u)67ᮏP(DXXWUUXhy>U޽{=F_O>E^^ mmm?~>>.]v-ucK|27r={6RRR0{l(h.p)b޽rJʣ%ڙ,QWWz QW:mOߦWq!99e ~7(**9v @~uɒ%>}:lmmyD_v-  AAA-{Uu#nܸ/^~vȷ-A,+\yf̢btI^k ޸,G[[FFFu$ȧ ggVNaajj P˗/7#G"!!VRO>%e~M'U5I9;;zho\v /^@RRv؁;v ;;'hn VVV ԄC,#=={r}NfŅ p! >\xOOOlݺϟGRR `kk Pآ!A$qٳgB[Ըe&i>eW^,Z|7dž 0w\J͜9Vj_fXH>cmm ܹ7~5v0hgnBll,V^PnPPiJ-OߦW͛HMMŨQŋ|rTUUW322p֣6kaԩ?:C]]RnqNQ[m[⿴ ֆԊj9sFꠧ,uٰpLLKK$O#ߺ#p'O~oz-oM&ܵFuu5~:u cǎF("((ӧOGZZ?~ٳg#Gsڵ+֬Yufff4hegΜ1,,,pDDDŸwT:tFH 55@.]PZZ 6;wl|yyyx<|VP(\|O<+5) L?zQ`x{{cGff&w^B(:l01 R,X:)))xRSSモ",YDn˖-ɓ'v,ŋ ñcǐ|HOO{PM}SY]VEX,ԩSyMjYmöjy7DYۮMSimcuu5jjjW]]ݨ`ԨQ Ð!C  [wvZ|wMO>-?3f BCC2:tH Ti u?xIIIBΝ//_Fqq1f̘_^^^*>4Ş!_=QQQHNNFaa!PVV=7*-e'y՝ׯc͛7|rXYY5E,O"`nnhGC0i$DFF÷lon|&_OhÇsN5Dv! .p$$''cȐ!xw~KW6shbNۈ 6k,֭[7fmm&MĞ>}*gɒ%cǎaܹ}fmm cWfo366f={d7n{֯_/3|z211a/^T3c,66YYY;@6vX)mGevvvl2iW0XEE6mbݺuc/fM Q#Gk1}ߥK6o<2Ɣ Y$$$aÆ1sss֩S'6tP}v&c҇ɓ'ܼѡy/^`}suue&&&lѢEJʟ4E=4ӳQج,6k,VVVG e̞r*˜O󙉉 w L_SvðEcy?ɡiFVI?;b^jhhT|Jbc300`fffLJcMnTn| I,,,ظqǏ%a)#ttt@ `#GÇYΝۼy3֭>woʕޞUTTȴ]K\Z#h0;#c RT=koi=z]I߬&h :xD !!!]֮|4ړVM0j(L0&Myʕ+}kJ}UD \_%*"hsK3yyyƿ֖2Y{kpd vAbb".&4=eҥs `cc '֭[kh4 Ong-[OOO~8&LФxPYY)u_~%w͛7u_b1f͚KKK?Ԋ! 55ڰ-S]] @;w4rd>ԩG YY]m݋{666011A^0w\&N333<|Qب(L8QX,FLL SSS ,, ϟ?7qD1\@3gH~^^^2x!>S=zɓQTTLYGU iJ?*ȫ#]timyAiOl{*~ ۷o8p@ih46 k.x{{èZDGGصkw}8?ԩS̄U=M)Hig&Lk׮!22ǝ;wpYs~kkk1w\y#PYY?o&nܸYt֍󟙙Ç׷Q\1112Ә>}z#7\uu5F~!%%(((@jj*:t0_hW7ϟ+WJaڴi h8۞ʢ{F޽-67ᮩp 6 G⏎n*dggakќ6n܈L\zU^vvv1bߐO8vӧȀ!gϞ9r$l߾ߩS'4pȝLiqm\rvԩU mm@___Ꞟ^+! 4ζ'DCܒ#G }7/o.]p U={@WW3g|h}wYq?Rabcc1zh{~)m6PWW8::cǎݻw߱cFSSS;vLÇW^055ň#4EiO4Ijouu51|^EE#G ppp@DDLJcbbܹs{mm-"""`kk KKKL6 oFe555;w.^u;vhT~Zhz |'2N>DV=e4/ku90sLTWWEqmTVX~ >8{Xxi*+w) `kk kkkL6 jkRDTT\\\P[[ (// n*SO, [MP 777c055;8w>epzVVx3f̐W[[ݻsk:::Յ6~m).]pv~mqy|mmm.<{](z:u*(}pssϹ-[ 7nvSVn۶m7oތ*=Q[[۬m Nw???{gdԨOxx8/^C$acܸqHIIA]]/99Ra{̛71D"^ ľ}o>ddd@__Æ cXX>C;w{kЩS'xzzJp).ٳgQSS$^jj*ѱcG3AAA>ЖGņ  ry^p!=dCKK 999Ӄ<7n`ʔ):u*x#G )) RK /b6UEU4abܿ~ݻSZZ`2y0ƤollٳgK-.((IeCjjjPQQ!LR޽{wAlll- X~L{Κ5 YYYHKK\|g E#"" n:/)SS>˂Olٲ_}O 8())n sttT/l˖-x w{nܻwV_,((H$.##""{*..F@@STUU$l߾G2іǮ|7n5k?b%%%A$p9E2HHH@mm-\|^s[jn݊;v4i4!|Cn >Muۼ)qi\z...M>?>3gΔʴ6]e}:m@&Un2?cx"4FpWTTСC܄ϟ?zڼ{˗O<+W0j(a7wٳ'oߎϟ#99cʔ)ӧd5m4vvv!w^q(K7pM/8-\>&e'NᅬGǎ 777yyQMY2411EEEI(w}5kȜK$[[[L_9s&.\7..SNEǎewD'kΟ?0]=zĉt$slڴ ˗/5^{5X2uAv===|ÇclڴIn\|i>4vńbРA֭kXYYaݼJx~5B^4G([n!!!055>{$j]9| >38995>ꖁ ,--C_|7_~֭&NMGCh>Muۼ%[opvvH>v }}}6]5*Ӕ6Z+W777{0x`ԩSrU65NNN@ @~PQQP޽{+\VbԨQ8t %%055U677"H͡1<<gתiakr~J4 +^5t(,,TԄ{(//9HLL,Fqq%MJJKUUUō򢯯ߤ8jڒeC]]1zhx)0dhkk8th2$ Y$A,C,+ S^^`ٲeHLL ﴪyIܪDݼO;GCz)g .D~~>K%,,,ǖpehkk_o6{l`P8T]]]ԩSZ)=%]t yyyϥ5SO9uSm;hkkHc$^FZRQUEn8 2]aajj Pە=g|7(**9v;2֮]BpssCPPp˄U]Wƍ '5[÷O&*m D`` <==xɒ%>}:lmmykմ]!(͖;mj(Vn2BzzzrMf&%%%8r;&'77Ϟ=ޮcccDM0͛HMM\@j!Q˗.⓶Μ9оp:ÇCWW 鉭[HJJBAAJy^N Gzz:={X899A(8Y64lR55/`ѢEoT~; 6`ܹ(--r9s&VZb+s 5sN,X@%=]z@P(Dss-b r 뗦i4џ/i䲒*٢EgϞwߕrS_,((br? ===_eeeJCc>Xx1/_νRDBSƦ^{ SNW(ꐞbˣnyu%UfSۼ@ 3[ . ,,L%k`nd}ZP >.eO;@S aaa///vvvNϓ0x`l޼믿 nccT/%)F0 2|B!0}tǘ={61rH^qHXv-222,XbcƌiRڶڵ+֬Y fff4hegΜ1,,,TʃD\|O<+dҥ JKKabΝr65-UQfO^MeuU=880`㑙|ݻ r6 #Fh,X:)))xRSSモ",YDn˖-ɓ')ueS/^DXX;Hh8S ~Lwލ',dZ ݺuF;;;宓'OƠA,9s`ΝrOŕǸqpqkcƌA>}P\\#Gv cƌ#q)ǏcРAܽ1c ??\~شiۧҹu puu& pttDll,/_GGG$&&0S?-ࠖ(Iz'/ 릲 vKLLD\\ www_K,yk}-=711K燥Kё<^tIAhAkСJ(1ޝEY 00"B")*(*fbn= rH+-2̛5-KfWP+F@"32103Ì~ޯ׼^̳=9rxLC;O>8~8߯Y ƌ3`Olo?](((P[nU|㔾t1tqMW^JmA!22>>>8v~j`iIP￯'JSu\.… tRS/^ƝgBׯ_͛7\kwSP!ۣfP>ƴMcwbݺu޽;pUuɓuvtjzcǎS3>v$MJ).믿08qSJeRj"YYYHOOn򵆣Gb8|06m}4M[Mc BN& dgg? ܼy͚5Caaam'XD@=憚P?^m#GSNSdcuO, mԥ!$;8\R'2,0>( |TGMll, :u 뙈U!I8v< ;Gp8}4 Vߡ<rssf͚aذa0aNZa=vXDDc3x}BDn"""""""7Q7MDDDDDDdp;DDDDDDDf7MDDDDDDdp;DDDDDDDfР:ƍL&3fI/..FaaI"""/@jjj}Q?>Cl۶ ͚5CNN l%%%R?~qqqؼy3vڅk׮47|j/$iGGGc&I,Zv0j>|8u놶mbĈpppFkkH?O> Aakkk|L ٹ ""jP;>'N@vv6>իW#88-B-;DDGG={DϞ=+$""".\WWW999<w[R̛7^^^pwwԩSQPP7{livvvŦMT.[ غu+r9O}T%''W#006m䄽{vލ@QQQ!0k,U=V>s 2{Ç"::_~%rrrСC?/z+&&#FPy^[~|[[[$''_R[p!z R@֯_^zLw!|2|}}͞O]ZZMf̘(--ń [oaհo;;;lݺ'ND=HزeA1EDD`ŊXb|||@g,wȑ#b "33EEELOOOˆvDDDoȑ#3?h׮:t`Ҽ\>S=Vڵ+>s}~zdddڵkXn]c B:tpuu=˖-3ecj@7nW^ 22m۶EJJ ZnZ^P`С@߾}ɓ' V2I9x#"Cr RSSQTTk׮eG ,o3f1ELL -Z___bj+ݻ7 <==燁UVS,ѭ[7?Ƕm۠P(T*λDDd^zGZZ뇘$%%!&&7رc_qrCr,\K.Enn._-lmm'N`Ȑ!zwww/_Fll,Ο?~j?s]9Mθ9;>kL If͚~RT#;;;Raʕ8p ""o2,0>( |T(DDD۳>wX 0mr,OOOADDb1uV=bfχQHMDDD]|Oưa;""'p=f|||PQQQa=x &""""""2v̀n"""""""3` &""""""2v̀n"""""""3` VRRoF=##qqqQӠ:ƍL&L&5Znz %%%CW\\‡?>Ç.00ׯ:__3e[їVII d2\bpښʡD ոq0oqTϔG˖-)S-u*~ii)fϞ6mشiSzOѧO899gϞHLL<^~eL>]v=M諗x-k1Zr\q|]6iӦ6-ZPVw ]v5(Omwv;vA{ݹswޅ󒡲#n@/z8# 44T̜9Sիub׮]iElذA9sFܿ_!Ļ+u&Ξ=+\"F%Zj%JJJķ~+z)U{G5ڵ999BP>LsΉ'O{7СCEVV~0`6mZDo^XB!ĬY /Zwӫ~d%x ѴiSQRR\껮k^5͙3GtU>}Z7xC/_֛XũS͛7ŸqL&fiii"%%E)SƠ+{uҨg^DbbjQ=?SsݐnHWΝW\|/^T˫K.ȑ#ƍ"""B8;;wJOT]hh;wڴݻw&MZiӦmۄPݻ믅pڵB!Ν;'mT $rWM+..իWb4d_ӷ:fgg… "%%ELS'E=j-/[/Z2:!Dnn n߾mBYYYi6m/UCk n޼)"66VtŠ|X|g @"TUVW\\,U|w"77Wr믿 !* K."55U5mΜ9ܹsBdddԊ///OXXXN|BTnf͚lBBprrvM4y5ORRҫyIOOu곮yUWXX( HLLTM+**uҖ1&'' jv ! ΆWv+iJfZB6E+**E[[[_ꫯUQQ!|||Ě5k$'waaǎB%lmmE^^ϋ ѳgO{iAS|nٲE???nC5]o۷oYfkMې2՘;G666T5/((Hc[_T eq-ímD-U:u$:tprw I[Yj:5<&W士]Xohg%%%onҺ̙3'_ؿ?}YOU2/⥗^B~ptwF\\?"""ۣCHHLRSST*1zhduYVV{*eP 6 _~%5k^ ɻJ˖-aooh-WMyUTT rRU>)2&:ԦU=feh]KAS55K] e9roFVVx-,,лwo5:t(v܉ ڵ  j̞=pAtm޽{xw1u_H9iӦ(..Z%cZ0K߹sgd2|2H^Z2꫒ٳѣG ///ַcl IӱT{QU~իo߮ubTTT!bccB6l8ׯCT#F?۷o#==}%sN`ԨQ5j8qӑ7n ??VLRRۑ2$zeL}*2TTTBg9eLNէZ֗eץi*ƴHՐ L,\ܹ޼,--aggg|"c;;va̘1j ''7͛yjb_WQXXsa̘1R&*V^v-TmbŊprr#N<5.)k^ǵLMU6cݺuXlz-U1J;88Ԛ'%O]{Qc!{ܥ|* ]McLY5IIIر#CO?GbΝ0`rj`lܸGA\\233GGGIKYŋ\eee'r$>Mw aX3e7g۞)3f0;w &&~~~pttx񓗗=11~~~? \p :thelll`,ZŒxrr2=/kWe2[nҥKI_j. 5V^|C2k]Fm|Ɲ;w0dyU1233{{Zk}d}j ),++ hժYopr999q=Z:4i|M$&&"++ 3g΄; ӬY3|'޽{cɒ%x999ذa233QXXC刌DTTQQQׯ#))VLĉ9s 00Pm͛#!!Ayk\g]=z4-[^CXXN<[nޓT&SĪYcbk͕fͶW;]ZC@^^֬Yll޼gΜܒ%Kcdggcɒ%W;OT]cII JKK!PVRRP(0tPDDDo߾pvv֘ɓaeeUVIn+Wg}VgUt1|m_w={,֯_K.… XhtQby\%KqƘ4i ex-S2΍R۸ƏŋkِJ=~W>|yRԵcՏq֭[|53h߿8pjMQ9@Ì3pwwǏW Pw...\5m͚5jN\rE]( ѹsgO?W*b}^nZ5_M222طorÇ ")oMu ?\5WUQQ!v*f̘ZbԩMxxx9s"--Mo^Z5D5=]US,X@!r+!777"ƌ#F]k=zNNNbȐ!"==]|4 *S=|@v\+_|pqqwޕ4J!}EGQ8::ZZ[YY B! PniiYk4]e1q={Vrv ^ et՗W'e4m6P'&LP\J:m*#GԎr\d2ѣGyJY_1Yi ~RYQQشise8RN$dCyQ'>듶 L)%%Er[ߡQWXɼso]P!}А?ua#jzH9ѩSsǕ9$'UŀGÓ|}ˮq)B͛M~</^DJJ qMDEEa޼yCa?IDmݺaaacI>> ew ]nݻwWK]ׯ+#̋w"::͚5ða0aL:z(Q'>˗/6lX}BzϽ{c^@K2-Gsv|FZ!D$Q}dg)P @9%Tẁn"""""""3` &""""""2v̀n"""""""3` &""""""2vH|7Lj =n8t BO:LC=Lj~zOb3'|-{II d2\bz kC]AOqa޼y5 'O6{r˗/_|LDFF"))R/7oO?7o<s~8oҥ9ӊ~(Fxر >ݺu{h!DRl߾G͞kرG}]KDDd.Oƍ7зo_pssM~ʤSO=K"$$DmKFSddJ=n*aXj\\\J~~~}(yۍ7Ю];p5ܹsvvv&˧~WYmzLL áP(TJKK1{livvvŦM ҥKѳgO888K.8|///4iSNE۶mUb޼y򂻻;NZZluVrL>]53$}}.Y;wFyy9͛7ƍƦ/o]u wF`` ヨ(u?T*tR!!!zI/׺#FHS}ONN]M6aprr޽{UiiRѲeKbʔ)&mT_4iZZ~!F#ƴ MmޘVDD@@ƌ&駟O>prrBϞ=@ 00jޥKP(o> >rVVVd\.G.]$U]`` ,--aeeggg 27nP[fʕС\]]Ui]1HVz-H;GC\.L&Ù3g$o;]>UM~yy9ZhL}Ԭ3mI_aذaxꩧ`gg@߿_kynj%Kϛ7'NXMQǣk׮L&L&u.3!"^ZZ8;;4ᶷ̙3:@e%`8<&L'"%%Em={`͚5HKKCPPƌRIسgv؁$XXXҥK3f@JJ / -- oVrEFFbxQVVիW楥aյ3$}}FEE V,\:u„ &%omu{]9&M7`ixbl۶ ۶mCrr2lllsϩy;vRTM۱cUJ RHm5EDDo>>}н ݻw#..ɰ\5ik7n\|R.4yc[uʢk{SZZ#>>[ng}6_ʾa|GЫW/ 4OZ6..eee>ʕ+(++ӧ%UݺuP^^SN!##Ce˖aƍشiΞ=Mg طt]%99eee(++՟8XSSeÆ u~ׯN45'@w999a8x N>Ν; b5uWw]5 &M۷Q\\=zZۇt֭Ґk׮!>>ݻw󖡲#n@/z8# 44T,^Xܽ{W8;;ӧO !5k3gBMjM[|W{zz Ο?wBP(Dbbj~QQ ._,򄅅HJJR?zh֬ƴy6MW|/eل$v%4i"233&%=];wNXXX uQ}bagg'N<_PP \]]w}W缪 {{{q1!YYYVIiӦ">>^5?))I( yV.ĪU1}̧HgU5e?*))5GBGGGq}˨ތmG]ЗD OͶk1B5k=m۶ !زe ~~~jb@\zՠciiӧXnB2쬊QM1hoBB! >GՌJӦMU5Baee%N>mԶ_|]' @hB̟?_~ND￯-IJU}5k߿ִ_z%xbs &H[Wm=*lllDiij^PPPsIoJ|Wb޽X< ?=++-4wQF6m>Cė_~si\6;;#Gpmdee|ѽe˖W=*k4TTT $YP*=zjzYYݻgt٫gHR۷/BCC1l0|h֬8)[п!$$SL42t]5AAAx򲵵СCsNa׮]4ho.˪ ~uՇ>G5jv؁޽{cΝ Lݪ^>sG}$'OT)3maa޽{#55U޽{xw_kMk̙xUwG@@|ko!<<\sZGN={6}8z(\]]1&C3ޞY^^6mbEjc5Uk߹sgd2|Ƙ̽}'N޽{>|8A0h )2sLڵ 3gĨQ4v L,\ܹ޴/++CEE***4S5ۉ'tܸqV|/uYooo(JlU[ZZ">>;w FbTTT/bccξ);v,v1Ȫ% d]uƶ˚m}lB~T>V^OllAsCƴ E_Yl")I&:wKayZ;5ʕ+_1 5ZڵkQTTT]B1*RH[|>>>>Gtt4ܹ:NmIjd2#22nR#P8 4Xz55 ~vhrqq1x&}lkh۶Ú5k͛7FBx'O֭[xTr9"##xTTTZ/7odddvŐ-[QQ'"22sA`` Ν56CVSNN6l؀LСCke1i$HLLDVVfΜ www <ؤy) :۷jB)1ׯGFF]uiGJlҤ u1׷ ~uՇ!cƌAxx8^x#uumgk5ۼ1ۭw}e=K%K`ǎƒ%KѣG3XZZJ.۷}vk9r$Ñ|ܹSUz`9fܿ;憦MZTA)ǏŋNmI_={ׯǥKp,ZnnnhժAe6$nmnee% pvv?|+999W^nnnYO-?m1sP}P,)(mqU|jW & ڥk]vժ &Kv<(z!V`z}* aaaҲ֠iʯ+VSԿgϞr\>|X5OӠi>D_AAw}'cuy9hgd5:=HZ!DE7oDfPXXbjRSSlޣAd DXXXۮJJ{j(Xdg)P @9%EHyCt)x{{ŀx1냈x@DDdZpqE!//))):=n݊QFw 냈x@DDdZp둛h4k Æ Ä 0ute>}Æ PU񀈈7|a &""""""2v̀n"""""""32vdSADDDDDDX1c8+FwQF5z]MDDDDDDdu]>Nn2 dPaNr V5<|bg[dFp7@lKW"""""n"""""""3` &""""""2R^XX۶aC{;;jǽn̑vvf`.cܸ}/~r ڼ~NB0rPc`VŠ]W@kMy5d&íT*`bljr8u +L,zOST{,M:mM,=GyADDDD$v:]e+>ܼEE#016JRozPRR}qN7 Rǝp^SЩ?VwramcctCT\Lv6KC{%݇l/pIoBTdOzU> :jF"CG 0*=_n_ӑd*#RVVkkkBP-T*ow~ΆW+p=z ~cͪVY/>b<ӻ7 ~}Aӧ®B3s (J|VUڭ[W^A`@wc/p1G1}<6U+ÒA7`ii{~i,z/›S_ǸcɯåQ#š֘>v697; +KZTT(w8Χ^En}89`3ѣc[{a-u=߳0奿/n~եj:tI/۵ƥLL μ⏝$N]LC0/}k!cpL hmܮ5Φpk1C»z#""""z |?LƉ$@jղ%:ܚһ_X#G_C&?t!Sǔ)o666HI6W-rj{FXYYG@.]}ptt@VTiwPagg Xowgz‰$DcEV-Ç`+Sӕ'GG|7FYYޞ7 ֚m{8n.Nx}_0ѳ/ٵ ZMMG76Ӌ;p]c_@ 9yث+n}70/}5cB"Nɣ#rKħ_@Eş+bh=IZjw<xzz^fly ~:3n&M+i?aw\p?DOGii)vZVVVOXlЩ,--j th};~͟~?rjWpI GKq0gDU~FZU  wki}oE!-=G@iJc_|6pk\k~po-6BP*q53 n{Z锕Hx> =傤(g0o̽2W=ƹKУc[4o/p+'n%CDDDD$Wȹ{jӜqʕ1(ݻvkp2)ǡc߁,0xsP*+Ʋj5򱳳WuJz*mȸV'j˗42xߏĤd<7^lPtqo{vv'`_֚_PX_/#((,F"DV8zn¯MKQīܾ{JP?t%PQD 74k-=B\4vv\2=) 9ke g''#/Dc1Kd2zg`^i̜3gϢo?G,/.)L&S{*4Kaa!@)jaoh֤* LbU.!e%exѥ7L;;-ԖwÞ t1 J!◒>y(,-VVQb$""""z,TTT|炃нn? W]CqI NIME]Lp!%ڴ;...hp NLBBL&Ռ 2ej6='N֫4rvBO>5PG(??ߠ4N$&{֤ 23M_LPVxg߽GPTgE\<Z!J(,.qln^3y3d2ʵ?4Η&n+|w4-#DDDDDRD|9='GG_nB\SϠ߳Ϛ 'pHL͟~EEEH\y7vahղ%zdR&MC6>QrU㰶o67g+;uę0uz8wGZz:&*:`xȋؾc'ޜ1C D֭[>VZ>[c*+^ܚ4љl 4rvƿV´\p0|[kLSSg_-=Ѯ8tlSJJq8Wtio 36ֳ۪е7gxilt Ύ8xN5_J^.N8N崱#s{l)ApE֚@DDDDDO߿Mbk==hӜ;s&b>}m"vtz\jXy y<-%rrڵk(_ooM}zB~~>^Ռ thK]V-[RCJj*Ȅ#:NĀhѼ9-,--חǪ'(y!jΜ;kkkt<<# ү())GӦ+ڶm|u~WƍuU8sf_8:wMR.]‹mhLrbmӢ2=p_.ao {CPQD'4qqV{ONa1 9S]5@ou'?JđS7пG'5v֛ 2~}plGV͑|Ύvxm@{5=:㟃88X9:ѓm_}cFK#G॑#0hZ|6hOVOr9{/oy|Yv(})P@ࣱSL[Ul'^A!K|9rXׇ0"""""}F  h5jt@BPx xIYѤsl4}lӣ-N.nɅW3bǁЋ=?nҨ{$cc^4rt3Чkwd!<XKϧ0w BK.75P|r X#"nl,lؑ$"""""z7MDDDDDDdF?R~eSADDDDDDX1ݽ{wSADDDDDDX#DDDDDDDf7MDDDDDDdp;DDDDDDDfP;ƍìYLVqq1 Z'00ׯP%%%dri鑽ɓ'wDDDDDDD=n""""""^;܁Xt)z tV߽{7aooDEE-[hlݺrӧOGii)fϞ6mشiA񔖖b޼y򂻻;Nr̟?-[+Lb """""N޳g֬Y4a̘1(--ݻw1rHL4 7n@ll,FĂ / W5|||}v?&Lĉy\U0Cex̴4o?S+3+fV7L3-]+Դ*mJМsQ~޽ g`<׎/w-V||l٢^ >|#GjʕZxmۦ@C_[VZ4b:tH߯r-VԮ]24h#G***J7o.W>}FZj)""BcƌѢE$m6eM6M-[TTT&Mtpq R``Զm[uI͚5S׮]CK.e^O>D6lБ#Gtrd˲,u]6MTIRBBZnU wq!SVҒ%K;S~{ץ}ڿFEe˖7$$Di&%&&*11QӉ'$=ppûwq;vԬYa-^Xw~֭:zƏf͚)88f###%KzLLl6֯_o? ǎ̙3~eddhڵ Thh$^zZn٣t+%%E󎒒kEQt:O[Æ ȑ#j*9ݻW[n$O>0`6oެ[cƌ9 Ҹ`wrrϟ֭[+44TӧO׼y')o+Rqqq{kъբEt 7'>Fjժرm~ԩv꺗;&&||J5׶CyyK )8t:["(6mN$JK$9pfz;]Cpscbcc]Fʌ n p`@70 n p`@70 n p`@70 n p`@70 n p`@70 n p`@70 n p`@70 n p`@70 n p`@70 n p`@70 n p`@70 n p`@70 n p`@70 n p`@70 n p`@70 n p`WE )өcJ:t@i. eT``jQllnmR\,,RlGDjHuyz1y!sJI>}{uNdf=7bq"%Y)G%q-,dKY]b)(bZwNX-U qKDQEԗ=7WNAy8l [_ͦi&Y  "lWBNSt[pX ܕ&˲܈ݿ;`3Np#܈wR$V͚\ yOIIGJ}׽{rnעO疫}VvvaI222իo?l6}65Y2ʄ|n4.Sk:5V[ԪE ׹QҨOPBB뜟DE)A|||*8##3SXCzZYY6nCVFf9bzxrK1ϙYY2t^׿\G?yq-C?n7>3O=1oL+ԯjբ0.w[jҥ2m|ONO͵rJ$jժ?t=zTյo^eee)yז_[:Papxk7]jծWNxhCm޶MGUuzk&຀]^e鶮}^a>#kY^|YURH ))eؗzג~|Ud\NJRdjejPə̅}i᪫vrLwL:}-C&MrJ%JԥRxխ[GoJ ///DGymR$*tӴ/V$E֯ o6~H5kD?]s;O>>>zV~os>RƍueuAzinUNN?vJؖt:^Aw+!qU5BCK}/&EKat.kVlܨa>)Pq㦛nҲe4?jOɢlђtq]Ҩy@UT)Md9 v9}~YԤqc xF11TBb^֭[kA5j$OOOIo;wj:|to{԰aC:|XϏ;n]k^-ZwKak!f/d===47ԴIc׹s?v}AmڲH ҜYK͝w{_?n߮+_pATnV:]ۡ^>/pw%wR>[L "5)+ɧ es-C{ĉ]r*qn7}s݊ѻN ԩc|Ӎz,5kLZ+Vtif=Sޟbbb+!Aii믿Իw/dg5kd9-ǟҥrcۺQ#uE˗/הcȖ^~5S ~L6]*4p ے/jEJNITJjj6+YӦjӬiS5Ԗm߫Gzu;XCy;DYڶW~]]:uԫoL=v\5S-tӍ7^w9NXR6[S9Z~eYUG꯿R-44T7Cz?QNzj֬,Y~)___E֯/á%KjmJNNVX)Q߾}Uz5jԩڳ/U &IkVáIV\v='//9~ؖ.pݷOC:ԓ]5 kifZv^zWڞx%ʒ$9׹ll6v(/ݮ޽{i3U\ n}|`J6,Ck^Se˖I232d eY5qDڵK ,wijӤq,X/\&MHN秥˖O){~fHW y/ 9ea)7'{Wvڥo6|=zc4Z˯)''G/kK[TՐ韇Nt+ԈT޽$IuM?W0c}ĉRnj/I&شyNg\+%9}-[p˗)7'Kի@{xz'2{4i:LTƍtZrʩ͚fiGkƍZgYՏ(,mѢ:w5k;TS'%Ww鉧)7~F}kK?S-$Uu<9Y͜O;^Lt^`[ok3{ʘ tY۶:p9`ƌ{Eo9Yz}g!ǃn -)U ғOf;SՂoR׋{֡C4o5mWZznݦ7&[۷߯*U㴜jڤ$q%qjڤ\:8pRSR4?*88XO*[hZC-C=[kVJrJxE\u/]+.LR>r**2Rk׭WzFj֥֓-[J=8--^Lk{vLH7򕟫רQÆδnf}y6^DĹ0*s9s!{I&T9 /F[rrrd)|No$ssuO{~"U-[4Wm)>e$=`yyy+#=MlWWvv˲MVeTJqqqzW* @9A)--MЛo3fhԨQ绌J[njݺuE('=]Ӓ%Kwرc+{=<>>… ?o߾z_Z^x͛7OӶmΝ;+''fڴigm6*77W^^' S5ԬYrӧkѪU"""4f-Z\* ")өT=Z:uҺu딘'Nm۶goRR|MC]tÇQ̀:$I U6m\mվ}{ܹH5kT5O?cǎeY޽4h VjjjT><88X? -\Pɒ>iiij߾߯QFiѢEjٲ)NL'Iʒn/FʛOJJ/vک_~E;" H6mڤD%&&j߾}:qDT>i$լYSAAAeYںu]uV=zTǏWf,Vcbbdٴ~z9á[y槴Ѓ>_~HU^ f7vrnWvvu1͟?_k֬Q;C>u -Yn% WJJy%%%?v^ׯ-[2djժnG… ]>p/^5k*,,6lFUVph޽g@q)S'???]r%z뭷pBjJ4c ũCW&LGgllƏѣG+66V-*1(77߬;C-Zǵr"3X(##CӧOy5~Rg֟}Y1BVժUձcG#ҡ-%[IT٢-][6f4@҉#CR\IvI$gg^<1vXw -Rll$t% br.6n ܿ @f0 n p`@70 n p`@70 n p`@70 n p`@70 n p`@70 n p`@70 n p`@70 n p`@70 n p`@70 n p`@70 n p`@70 n p`@70 n p`@70 n p`@70 n p`^:0 @>涾HeYn n<OHMU+[n.a{˷tgn Jxn2o@%SRخZmuI]ݯ}f9d<vnj#r5ݨQ:uN~o4e4Nu,K_/VV= ^]wyz]4 ZtY}͞1]bQeiҔRU^zQ {_J&$h=T~M:M;wƫA( |蟺U"}Ml{um;5iX/>W&Ir8q Z5KfG CkԖas_\{/je0eΘh39c]~۠@}jqmgU_{qX Ujuo16o5W_Uꘒ4w<]}y]  S+kΨMa7mRk:(8(HUn7=sGx{4o3T:9ݸmyߥu]wjo;ʘui˖z{4𭒎QZ5/r]k:h7(1q""!ղysIw7f*qՠw2ǚ\͚$髯['Wn]S{O|]* ydg?SZ}{טNS>lwӴ y,oNѐGG)n]y{{)n]|53n6n\lOV͚L=3E-t25Q ]߹>rD9%}y222NYRƛtf;U\7^SNs÷Mזm?赗@}'km6j֨svҩ,LuBK {ow w!O??Ј*00@)z~İ qϞVeE-z_|zJKOWFF<==O&@5BC[;\={TVgkǴ4ȧ*iSIR0yzzxm}i8 Ckmv)ArMiژ԰Aխ>S0sgnz^Hժ^=u1ݷO9"ݮ+۷Wpp6hcKKNN~VJJ;R 233դq\J=^y@akiȰ0?zxxhkK1n+8(HoUXnn,˒eYn.''Gßvmۨ7ftO;ò,9Eϩ >q .00@ڻo6h:!URŵbvm K7n]Iҏ;~:p8g=UbС뺔vYjݠk֡vW]/W.rnuT]iS{$p~]NSǎSHժ>\}*نmwnvAJKOׂş)99YZ?v*'tJ%9lvj*:pNgƪ]~ܾCVfVt{e6Y%ͦrӍ?a~mO.Gk's, cCzgp8̬"7/XnS6+, @r^}c~cǏkT-.o׶5QFGçWͷi'st~D_]{~FmJl mKgv%$[dq:~իw{$6/x=`M񌼼t7f-ҁN{ralV_JλOVOkԷNߓӔ4ewuY۶s 5sK%F4W{3ԨQ&Ox]QgԦ$CfQϜ ~} yt?9L~z'I_UJ"KTs ۡ5j-;l$?Ii-yt7`uqtʮοs ۥmCI' IYr%%YzǛ#AڷkiER.u_OQ tigG*q.\|}}a]VEOs_.sӴ3ç b_ܪNxꄇWtZzv=`fnזolU^aJefp*ii-0f)3#]p  .NW{*.)ww`w 7t:O r!t2X*-p;K8]< BMI `ŏS\:K_oQ.d`.)Gy3`)yfvAp?JvdX. ͕?0 l #(ȾY_ ]=ۧruwIK uA.8筓n@eS|9Wy39*IZVM +/P:_0]0]l ]8xrmVpL&~/qr+iô[kA/sv[:rߎB (&l*ҞUpv%!v6bRڣ rivuIA ̜ſ/ ȶbg ʬ fx")m6 ѥdLBrim QioKg % 3ҭhVezIENDB`extension-manager-0.5.0/po/screenshots/_22.png000066400000000000000000000237401457631363100212250ustar00rootroot00000000000000PNG  IHDR8hkbKGD'IDATxXKQ/؟}(%)a~(/F} *.ԙM,! j>NIpsgV?vಶ9icʞ8y.s=soޯlH^[&t:VTqWJK|]Y!Vnqz`/2Y2L Qfuk_ E#/Lkkѽ]aA`xמuz1Y:21aƼԉ17?O,ҙYJ7 2 ~şH(߀.@n445G?GO[q֛m<tV9D~J+aD =PDIqݒKWt">|DCKWPq{=ޡzvNYUM~\X^+[a&lgROX8i5 &bŒFqSV,7aPa-.qsM1Ԁ"́~8ָ uB[F%%E j5h}2!U4IpY8kt {7$xZKc)YK+6]1c5-و6et;NJ_ʵsޛ7gk+R9r{,3ʦD SH6UU۰4j9"UrukMͦ͛ڳ睹sMb{Mf_dIaq+c Z9FLrM ˹s4UjgΞ55QXEd pHc_fB& ̂"DP¹c |UHwWP3龱9IL"#f]!љŖS)Z^~5t(yjnlfrꌬrd|b wΝKbQp㭷1F첰g0xo hvgKV;z|8ewϯ+Md jͶmƪsz駟Y`l>r(+s_Ό`+ն`O*WE946,z2ʤ|&TCe9?}Lqf~VK&Z҅V9V,'ɸ*ºgYbrU67M5,V[~CU v-&*bU -]v =:>VUgYm&^upQL 2bS};,ȍ+'N1D"MXMoH9BO +lbӒvFV bS%/TݮE3yiBƬ|D}[ gUS+2CH`[O,-m uXvGXxa;nN>VSY'BGʮY?`ma: }7mCH-ڡ.!8^_nqtތ%$\!̣5;uWc$*' °U'թK*cYvӶɘ8bw'[ˤ >W(2o޺u!g*֭@=uXp T`,"S(K ,!a3W$,v*_qaυ 'OR[v`;B.TX"r]^^qQFt姟ZTZe;IXSYidî]h*7-`AUgϞ-Y:@ KJG #4"߸ǩA*G OabB$2a]M)m:+D3}+|p%z*GU46Q#<} ^Y;ev=׆cj(+T<ҜXBi9GTAurPHqmϜވi-uWVN ە~!bxCJUQGˬI7$&+g'w߷R<=,ZnBኳ!u zS%UǠf`6-E W˛oT'AMA kMtHV<ﳴە} W&cJ 3?Am-x kߨn+K|]Ts W%>Yq"(xq1q04~1xek**H@4=7D ó'OƠA2Yʖ,3z8E| QYm gPSӉgZpPT'Auʪ 0r6'X*o?i7lDt'Ks)Rdvռz?Ã~IW>D!s>eUN>(BP~=W2smؽ[{6g 86V9<ޔFqv?4|$ת-Ֆ`'tEP}QSk9\{̐,+ם |DW^_DE%?3 K0 xFAurPT')@57}hɲeqӖ #QpPt"vP6f }w>sPb!s:@ٳX)WJ.8͜5Tx(DXUdž [paZ4knVmc~Ip P=^qʕHTţA[]O!"L:1vU *jK"| j?"|(7n@8[w&H`E]1)Ӏ* TArdS \Oy }2 `̽Wob ҿ7kmeڵcJ2 0;A 2'0nywׇ ^xAԮ8'%r}`!::1ӯ!.31.<ۅgpP;S uP=ِ꠶zp((Y=Ȉ˧J TfEA;9N:9N] T,@{I[3!iS:H ,i.JU!NtusuuVlc<,7vcH;7 0m1k&*ݷm}AmySD(hꄋҳQF0 1kϖJ0 #-5<ʼndǎVjw_Xu %!L|vrTfڛgs!?qޏؖLZ0Y&Mj qvwOGAurPT'AurPWKDa0D+1)~TrVA ]K.Š2T@5ѮʎF: 4%͛s‘ .M G62SGfE1Ȣ-䭖&*09k0ڛT^$"KQH͊:Hvxa3^{.Q2c&E_@(ϊDUbAҞuJ?Gۮ彔ذc$T$ZtD*L%-)E˥TV|8;Bv{hryu!s={Tp{э.lp 3&DʵFQ='7/9ܯXAI"~R0RW g~=RR R R Q Q Q $wlfd7FX Q>8#o2pxMBl7@6[-Trzi0F#HH~~y9N_uaiP*YpPP!<:X"ݭjboo?v* %iLMSSksgutjckZGZl~&1hdK(}W./TnO({l˕ +`eY{tAnY>]g2L?p@_e䣋eDţ@Bmc? 2~l9LvqdzX/ *p4= k`(lRc-ee0Hf2Con#7O>DU Du!;QA1b^{-!rp6Dqo""XhĊ6՚"jjiA^Jk z^HI.=/h )G?20;e!=Pyy5%:Vc#joM*w}"Lէ+Ե2e|@|| וUܑvvQqpxF 56XRQzygF!<h *qsHM$"g3 vtDnjf{0\㐿I"WݽYx1Py#S@PoAMULL^ bb!AgĄRUL,$e*&Akv#̖|Ր_2mCV_ҙhKJ^{gxzG =2mN\ T^連NH{u6J~9~jZF%#U@3ZA >&*rOg|:TS%0E5Qgw:Z-=?y6B)~6v/hPI S,Dǎ`y *N)Ae#]2x fvvkp4 GOe) {(nN=gԼHk*PI?ҩkTNa,NT_PɘռߏON{">g[˼M eN%)v=}@W*-F(11%~+i*e԰$}_/+ eiηV{LLϚ-C#Wڍ-Ƣ^5f.Pe՝5AzR#\ T5R⟶̞vLN@ ȒzeXPt+ٷj3VkPegT}NԹ(~LoJL0  Uğ3ssG˛7+H:~s8\1ʲnlX%,,(H"Q!!! ` B|/ja,$Gujj}F3|5Et>=s}=_4KSʪ?H[T L1vKOTg}ع}βxҊ׶"*>g̚|,u-ýّs5]y, /-QAQADJ}`"PxNaѧP 'JQT}Vd}f('~7llڄյ'q4at<~w) PC}_D3D8_3+N#jVZ=ix@v#\?c*gTjVz$R~ނƴT!*;o>SsO ƑD-=P|+(gm澹y붟A4+m Dx=q2m부*Z9pI#G@v]NH9TA|+Iw2 7{_0{YϑX;j;;7)8E]u5:&qI!"Z/.dx,m {eT&g9L|>UJU6޻G2[z(f2ՑQEC>9QܖϹǠQqYHX@55 ū09CDzu͘y\QG#SVJ^ jx4}ڧz1(E|y4f~D#FSd>QfCs#8}BaSsK? Z6o&9X:'`U9e'iY͘5;/Xv"C$ : dEZEVV)kWL`AnD)+raZ2S]ogB G(lR_DADUUUDTADTADTAQvAB WB~ Y|twcCqCښͷ~MwhP<(,$u3Ձ >Z(8$C25{cg m;)]0zǰQwtt;A)B*&N>p.zؾ$AL<'CIDrR$ֶo WmJjU={Zέ۷[n[_pܹ/\gG?lްMF-^! Ig0Wj^fdp$_5 [TXlɤ>GIxIHnRe__-[|B VyWshaWS #xfs7+Q- ˈ+Bro~8Mmji5A?/CIDrsj`ILƬ3*t]{lC2ă(63LDe f㮫k鷙_,Gvd( Ir:bbb[,7ޑ1]09Ɣac93Fe_>F>+c_P>Ȱ8x]K{FDUU7޿oIENDB`extension-manager-0.5.0/po/screenshots/_23.png000066400000000000000000001747141457631363100212360ustar00rootroot00000000000000PNG  IHDRpA%bKGDIDATxw|SwFwA+lPDODA*\\q^P*JTQ.@DdSZi٦=xOҤM 5!S$T' q@0QAsRM,j*NM 0j:1NM4j}aNu7}U 6aNu T `J8U9-||[T *Q UǬRANU pU/-lBʄ8U)(oynXYw==׭~m,EEe8/ vNxc+qiщ$2"A,p8%IrqePs gr'ХT!Ly1)=@'PxcW&FRܙgyARRҵm6[mJ*r9MǏu۶mJ*Љ0XG(đ5%@odZ$SIE2xPVѲ,3]Nqpt6 jbfn+&&F=zm۶?Y9GK]#~ܗeTJp`_+@ݤ*oLOk8]tTv*((nhS\\ܰaC:7%:.(2)p#?NMm|'ޜ}ٳ˓U۷ܦkVP f)!!Ayyy[Vq|g*9; G~ N p*T9vI ]tWrr_?nhWp"TeEIII:v6l<Ƿow*&U@ݧJNTɮSV7IvwڻA*ƴ@AM8Cc+›4U#oV][jY=}Pb! )w(V~111޿7.KCEEE*((,yn'U'4gZDT_HP5X@[tmժJ7/Pys=LwF B6MjRzj*66VIIIWjժa|)p* D3(6c7M%Uh  ڢVZ%?mMcq#`ǷUqq)Ą769W(11\ժUKVUe=D.7U)ÙpeT-д![ cjz@ PvM0Av]?0Y@VU:u9眣M*>>^VXDY׮]5duYJIIё#G~z-ZH6l0-X@ o}Q8 'N!NF$I7Uܹsϗz]vyYƀDfӽޫF/_Eiԩ:y-jRQQяmhSNYCN:Gy[ԭ[WW]u\.^x(U 111zG ٽ{wM8Q=PtnWnn^zIn[v3m4qj֬."%&&J:tzGg\%7?VX}q0`FCb'< "UQ < }̜&Ҝ0#XÛPcTIOO$ϐ_xѽ{wM4;.N4{z뭷~]Qcر1~͛dM>]r|u (++K|^xoPsD~:srb ]yz74~ӥ^={x[S5ELLz)%''Zx{ZhQ9|p 6,m.\_|1j.s9G/^^YYYQ;6QQ:,IҊ+nb 5Jg}veeZ111A/С|I{r'xB[֯ZcG<B8!aaPuBUeƨH<\&LyfeffsѤIdZ5c eggWztw*&&F'Oև~;vH-[^z)cz\|ٳ~թSG7p XӦM5aկ__o>egg+;;}HOOȑ#p8W_Ox uԩvJս{w/_nF͛7O:xZl+66V:g^Z6MW_} ƍu!mٲEC QBBBؿ_.H]wrrrݠQׯ/ժE:1IQQg-Zky exx-[LiiiQkʨRRR$I g}ݺu+&3ۃyglRO>&O֭[k߾}zulT.T^B "h}ogϖ.ԵU Zn=z/ФI$hڧOj׮]ztkʔ)jժ,YoFԧOlR˖-?1%رcp8t5覛nR.]SOfӎ;l2ok5jAiΝ[p8t饗j̘12d[g_ө4p zwSOI:!yj֬~']uU}O=TѣeLz#55Uz5j(9 }4|԰aC5nXw]ƍW63 b?Ԙ1c4uTlR҉YAސ!YcGAɖ3U[h1UٳgTtZ0B%I={G}Tlg{O^xwݻwkΜ9>t"4p8N $*C-I[lΝ;խ[7Ν;+?,u-[jꫯoժU3fZhQl`Sb/YFtzo=˚7o=^׿Um۶UJJ,w]8:q^n.vp7q<)SN9EO<x}r8jݺ_~D… UPPor7=+otk;wn9b1D4ӄS߿c\PZ*7 .JvִiӴ|rLיg)IuwG59sÚծ1NzMӪ[222?I;w7\)IH'&:1󕓓kի{I:*)s:y>{]>䳬mUb] V25WȀvs8?Y,!v{w$i4c =***Ҹqhy#G[oę1c ?1NL'ؤ &eHKw TA^X&z?Moc oK/Ֆ-[ԲeKuY֭NIm۶iذaF>[nE3gά36:NVZQ9^NN<+HRQDox@@p84aI"= 0@Gђ%K /]UÇuu]eZǏ+???JUJEUN,ٽܵkg]GU fO']rssr'''78|)111qq󕛛[ݦ j T/-PUa*C?0PxU\\bbbdeTrpH7@SeJpnOYUrf] q\72p:Uq6*j~z7hw`NYϛ2Oev$pbT!UNfT)>>ʵq83 p ,NSF(ɽ-,٪]v q.0Ǐ+))Ǎ.PUS;,x:NSGQBBBحqV]p8O˥)66VVN XrTXXHp P2T? Wp@p*X8!JE:e N*+!|jdӧKUPE!*.TǏWNNnѥTtI*FNNbbb.0Ţ"0D pTPP@E FTKkjŢX0DT`X?x@EopBM_\cJ (ܢj8WNAN ppNl5>HIIf3 pIIIIF`*<IF`*<I5aHx`8&G`rA`Zu駫]vWbccu}ڻwPp 0uTmVe;ӵU+K/O>9s~2]xر6l(˥}i裏kt+ԣGթS'vN$s=ԩS+R(FڵkoK/_TjjN;4uM1118k֬YڶmUW^kyռys]tE;w6olP_.(vn[111լY3m߾pP%lݺU[n$ZJl6!ѣ5n8eeeYa;< >\_jժU_eZժU+_۷Wzzf̘-[[z)IzǴs΀Y,1BӟJ#1-[-o|[C6ɑ8x2NuJ^ymٲECUf4vXmٲE[nW\hȑ7n l6ժUKN3hx#IW^yz|͜9S" T1o(>>^cǎvu+))I~>S3FL}?~┗vkҥjݺN?t]pz ڜz/XNSg֯jtI@ѣG̙33TpEUӈ`zo'0*#%%EZj$Pswܡ9sE:Sk\KΝ;K>]s5|Pljܸqz]ֹsgoK^zƎDC Mhc:xw{AkԨƌ;vhΜ9r\ڽ{իI&iҥ9sn6F[il6ի'ө]gqF=݇5jT ՙnWjj詧R tM7jjٲeԸqTPP T@͜9S! Lԭ[WuUZZ͛;OÆ bQZZ^y=5jl--"ө[nŻ.!!As>|&OlD3}tPjjƌZj)..Nk֬[o%ͦ-Zt]*P͜9S!6oެK;&ƍk̘1JIItԧ~Z,馛4w\]wuO>Ȓ+ÇՠAviڵkWmnݪ͛K_Y%ѣG5e3Fz$+"mpu@2gIKxS68{.J(H… U~}oxSҵ^"effVfڸq.BOMvv-[#Gzrrr4m4H>eҜ9s3ޔ NmJ:18R/ٻw֯_ox#IEW\qE pV\޽{s{jӦMZtO?]ZzqѣG5qDjϘ8(xIj׮:aԨQ›zJCK.ý!ٳyˮI>W^yEiiikughժUڵk~jJÆ S۶mr4o<]vr:QZԢE `΁iFU @h80{jԩ:z$)33SEÆ رc5uTYV5Gff\.:uMݺu+MNN͛[P>s_ƍ {\`N8oթS'I"I-lBy嗕=3c͚5aÆ oHyyyFiKvgϞSNm95kքl@"\->=V?}ӻwb'?SBݧgϞ=FR^tWhҥ@tȑb-N:Zn]/IG%9%9|.]'|~>?-e%o} 5}mԧL@g D`r8'9K0̃|K0̃Ǐ]x`8'9Neee])deet]8Gnnnqkt&77WJJJR||9㴼:QNS6P11\ .0ڵk]!p>^v;r8W^^ѥ"H'Jl]6 cەxeggt] U 7*nWڵ.@@#!!@JHH0 &G#>>@ Z0{B`r8&G`r8&G`rL}ӧ]v͛76"PDHRW\t<>}Z駟jĉ;w>C-ZH4k,[zwìTE8&|r͟?2!Iԏ?hDY@8ڼyw}]N p~-X *U N&T)ݮ4GqqqZf222'I޽ ͛СCZzu>|p"SOcǎoVcƌcbb_lYAAnw}ovկ__wqvƎoQ<󌒓5~xedd裏>R @ 'N:yGccI4h Tl٘1c/11Q ѣ%IzgQ d۵vZ;vLǎ `<YdfϞ~Z?]fٔ(Iڵk6nܨsjڵZb֯_@!w}:H6m]AӢ&==]G)rSΝտ?^6lЄ *R)s=F={jŊ۸q6nܨ3g4hVb RV jO+Wjʕz ѣjҤ,hĈ:묳dZհaC~钤Zj/^ܩS'+;;BNڵk޾}{h b%K;T-4ak*,,mݦFȑ#~A:5rH%&&jݚ8q ^.Asisw~۞K:{aÆ!.x#ǁ.?rbbb*ԩutTSu-YV/"Y1ZDhƍܹ$iÆ 4DhرFj109#09#09@ |KP@(8>&@r83 &GSBvv6!Jp8mtԑ#Gxb8p@oyE?X۶m޾լY3Q= 6l(IZpaDvgj=f͊@tЅvӠA">fSzzVX?X?)55URMÇ׍7ި믿<=N/+33Sv]sn۶bu\pZd>3eddyjZT16lGHy޽N;vLiiij֬m.\D]RSSk޽5j|I 80.]5}ݧ\~7o 5-pj8]}՚8q~ٳGSL)ӱ.]-[Z`4h0goi„ rݺ袋T 5N *Vlhسg򔘘X ~zl2uPv]VUVknmQQ ؽ{n:묈#&)///dk߀bC#:5 N56uT >\tq-_\ƍST^=tMA߷o:,5mT asƍ+ԴiS5iDW^yemZmVw-ͦUVE|)p tIR.]dzngZuꩧQFe'OW_}3g_W\\]}߯ŋ+##C[Q_}M7|S͚5M7$"$zsisw~۞K:{ΎTti^xAf*ׯ_={Taaab9rD111FF:unݺ^JrJr\N^w}~Jv\%D#'^teaÆa~-_\>gݻw`r8***̙35sJ9_-ԢE }jР/Vʹ@ jҍ7ި\_-^@85ȦMtu]PLjڵkb/r~,=\|X Rǎt:i&9(ӴjYſmܸVXQlɓǏ*5  t5mt hРA!ͦnM PbbbAcbb>}QFڻwΝ~[҉VA7x$_~ZxNt̬SNMjȐ!uߴrJr-3fLӧ_~BDu*_XjY~~~DsUs@MASlذAwIOO9眣KǎSZZw]QQ~Ws=W#hڹs.\D5kLw``f (lgPթS'2ժӂ $&tb,>}UV[Թsgխ[W6mRff,Xe@n4x`qjӦO??k&Ul{sKҥ^QC՟guIڼyfΜ>ǩSN8pڶm&MiӦ:vvڥ~I/vֱʫ}aÆ)33LNj1iӦ9rzSN9EE?~'-]Tk׮ yN;4d5o\z饗4{2HyPΝ;jjӦMz_K믿^:uf֭[d-Y$h=RH4^'fzMpX 2D#F? I2ey>| Z{^'pTSlUuK.Q.]}CU}0SN9\۷/>/A|5j(7tSu;wִiX@1qD 4(h;w? .>>^= кu~Xeu7k֭z뭷nСC5tЀ)ۣ{u][Cnw+!!Av[mF!Vj_~$=Om6f̘!=G뮻N/͛TXxM@j Gbb^z%5jHs=Mjy,ԩSCB{RjժrC)77>[R{=M4u҉.`ʼe˖~[!'IѦMzjeff,s-)ڏg7;|E]//(((з~c7dXLGIu|MhSMr:묳~Ү];hƌe+ w(//OIIIM4f "nݺ9r$yuzGJOOѣ6l H~Ӌn[zweZ5j(u]KA@ 233X}#DPNǏuyi̙žlٲe,}T:~/_qiܸqڳgOo+Hi&蹗-[m5ϖ`tIڵkڴi~k׮j֬4hR۶iVl6s9Ŗeffwߕ$\.=skɒ%ڲej׮{7c)ڏ#GTPPPCzKmWw~!t;]y\* uP矗$]ve dZ|222*4>@۷oWVvϟ 裏>ռysOiiiŦW_=ds=1Tw Ǐ/R,8pVKhX, -[bƏ/tU`~N~uѻsoJ:1QvvڈUQ3xML"Ac"͜9S3g4=˥zH/Rn0VU#Gȑ#c=!ϓCf)%%:á/b.\ 6Ԋ+jr:SլY3]V F,99TT~~c,..@'+Wرchݺ>˫_Wg9JD&^BE_~BǸ@*b666:uCyk?~oߖ/ :=z_~ TW^)mdyk[sMLΝ;oNm6 0Npp0>?Zƒ// 쌁׮]?>}Z% @!;Yfy&^xN_DεkoNy +V`q6lSSS;5 شi/"""ppp@hh(nܸ'N[M,cƌ8s .]EȨD'N'x̛7OG q!tڵo.7n݋k׮!$$rfϞǏ͛"8s \E_XJ변XB>.]3gթS񰶶V>tvvFdd$\ 4iD# '''l߾׮]Nu>SDFFڵkؾ};7o.& (*ſrJ+憵kV=)u Jvnݒ/k\Q7Vwww7eյpB|7}wG!99Y>8q" ooo8::JwˬjΝ;qUm+4nSL#RSS,7 _|&O '''c׮]8|0>3q>}pȑ 'գN[ˣsEXW󦬺|}}em۶0`ұ}^V:S9*S{STϟnDo!&p!ׯ_ 4i===˷ƍ%3DDDT5jXӧO###͛7&&&>|8V^T<{ +WD߾}+TqMbƍ@f*UΝ;qU</FZZ%Crr26l؀'OcǎCCC3sݻwr+KY}vYԫWZfĆb7N:V߉D"xxxnqahWZP$$$(+SVٳ x1fΜ T~A__EBB gΜ:uH֭[ԩSzOʫGݶES犺U:oԭ24y^k29Z{SH׫D;8;000P(H$D"oG^^#$"wqEDDDɓؿ?͛7P(Ě5k J4Ĥ=y022rW^bnnGGG|G_>6lCCCoF D"HeuVeYff&._=z?ѡCIIIÒ%Kj5剂Tsss,~U%??111hٲ%!=''׮]C-(W^E^p)VzmkY4uʞ724y^W5fu>s*??p!F>}gϞ ǯN=UsZT%>U:kUT"z{Z ={Dccc8qYYY8x ̙ۣAAZZ.\{.Kڵk^t 3fѧO4jO|?y066F^JPUU:t@ 0c D"DEE!++ akk bΜ9HMMŹs~gΜHԣX 6 M4{gÇ˷i\j5/5q^W4t4mT8T\V^'V|"^BE?Q9wҭ%cҥXti'""R׵k0vXL:ǏGvv6bbb0x`ddd֭/>>>0110ydlׯG^^`eeTlڴI,aaaٳ'=K.aҤIX>}:,--ѣG<ҥK1eL6 %.XgFPPKԍ>?fEEEa8{lgϞsbϞ=ňGBB5޿ũӯ֭[ccc`̘1 .֯_===?J?\:tƍÚ5k*:gҥXd =8p@PRXk8+m۰pBn%isewF(iӦJOD!(j)WvzٳPŲ>Bd˲g^˞ejX,aaa1)))8t6n(IS`߿aaa ==BCƉbؿFʳakk Qmk @Bg?% C e(+,Ux /m-*((@``  iIv#~"jÿ3D8DDDD5EhѢ.] 7ovXDT QN-6zhm@DDDԭ[g믿oYMD ;CT;q""9ps6DDDDDDDD: """"""""cH1CDDDDDDD!"""""""qL8&pt8DDDDDDDD: """"""""cH1CDDDDDDD!"""""""qL8&pt8DDDDDDDD: """"""""cHi;wX,'ѰaCmwɓ興HWpyxxٹDڵk7\ .-rtt8;;ظq#Zj'N( >|ׯGAAAKDDDDDDDYXX~ TիWWSdDDDDDDDK;wV{N:a۶m0`@ ;;;|hѢ^xǏ#00_D퍋/F!C7n܀?>}ZQ0v)Mݺu˗رc>ӧO˱l2$''xs9W~0gK.HOOZ,--!xu}֯_pH$7|OOO"##k,f"""""""Rw/ $$޽{}rss4i###ܹs$"""""""50SKI$aʔ)G@@VXQ1 """""""]o\LL O?cBk׮#$""""""0SKaРA!>#իW'Ob̙h֬##$Z XXXSNKSN2355E޽ccc<|/[nX,FBB^HZ*WvzٳPŲ>Bd˲g^˞UݕyyyťRnٲk֬pDDk!033Cll E %(< 2T"U*8G֯_pttZǤСCظqcuFDDDDDDD: -*((@``  Q$I;鐚jM Kb$J!JahhCCCD"5CHR!77kMMMt8DDDDDT*T PSSS@===H$Ւ𨩾6;"""""RI6mISSSy;4I[}Sm""$4mLаZ8j6&pŹ]vd7n>&pT"H!TYuA}S"&pȎ0Q X6hMD!"""""jSr:6]j8DDDDDDDD: """YXp!N:[nXl̴Shh( EHQ_~n¤IF[nvxDTmڴZl ###$%%aѢEx葶C [nŽ{PNt8DDDlmmaccKܾ}[ˑQESLҥKq D"lϟ?xyy!<<III TYfi;"atH$4iR>b3f3gp%,ZFFFmgqMDEEIP899av>c6gggDFFʕ+ RG q!tUí'D"{̝;qqq(**B~~>㑗С!н{jj'&pH']~ ؽ{7&Mƍ-Z1h X[[c<|/ 4o\s>|8^ 8q" ooo8::HKKcmmyW^C`` bq5ƍ .ҥKɓ~d" BgϞD&ED%TDDD0|p5 ...6m"""qFܽ{&&&>|8 Tʕ+f̛7,/oÆ 6l:vׯZ eH֭[Ç+Ŷ~ܼyqF9͚5CbbbZ)Y܎;'`ժU#7nD8::B"T{BBԩS H#4QϬY {{{L6M-66 4RNLBPPmۆ^z!!!2db1B!֬Y#Z,D~9G~hذ! UZ6l(_nܸ1NNNx ,@߾}dvjYfLMM+Ξ=G.]:j;@lBOPXXlߩI}S]m""3^Ȓ7;w.u6D:FP>}xB ٳgo.)8q"qyرm۶ѣsaŊ_~uW Xx"пyyΘ0a &&fRNV쒨-!!!4iS"""'O/2]]]sNDGGc޽e~>}A$ڇ괻 . <<\i4PK< t颴{E^^|]E?DDD"Yr@("##Z MfTWHlAϞ=pvv1g|8z(ӧ|||0j(cӦMw `x Ѹqcxyyahڴ)&O\f )ɘ6mp̟?͚5/ؼy3еkW,YD+WH$ҥKq=lڴ 0}t`9r$6m)ST[;exb8::ƍXtSX,F:u֭[#G<<DDDH$FaaNO+JQXXiiiH$Z_MMMt9زeK2e%n &H$7|OOO"##vر0a@Ϟ=qq#Gرc ر/^㫯*-c߾}[nڷo2): ̘1&&&|GG*Rݥ( xuuyT?݋ǣM6wƎpWg6 H$KGhz:DD -Jvc4i###ܹsG6===a7ny*˓}I600PZxIMy)~/ЩS'ԫW 4@:uԮ4;h kG~~>B˗/kO>ENNNe˖իʕ+'O.Rv+xm $$BCCqeUXZdffb߾}puuŒ%K0` 6LeY#""md k@oa]LՕɾ6bGd#h>%#[juB155{@(B$) W'aǎ8~86mڄgϞid[u˽|25k#G"00ߎ;U" <~BܻTݲ% еkW 8r NZ~K`:t8yDUu}ֈj+PT*m}ltLu龩6nbڶ}Qo׮]mɐJJ P?0kêUp}deejfWܧOb7n>3!++ UhYѴf͚9s<'؇jwLL O?%1-- D~}vh= ""z ByAXkSdH0^| @y$NSlldddɓ9s&5kccc888YYY8x ̙ۣAAZZ.\Pv,[ Ε>˗011aP~}mڴQҥ 䗻ZWreqF,X(,,_ hܸĘ&YU}jc}}}o" ,۱sNܾ}ӦM[n333 4044G}zľyܸq#&Mܮ{бcGl߾666u={֭[aff&_W_aÆ oU*JۉuoCJJҺ]"&&Fi]JJ |}}.w?uVDFFbܸq/?Ο?۷uօgG!B4iD u%%%aժU@XX>3\xQiÇ8pK]Wrm޼X|9 yflݺ3fsTNE)Xv-`ܸqSv t>JMMMѻwo޽O-[8M322uSSS{%.jҤF 4{UJWge} ɖe?z=988DuWzسgõ Qyx""""wbccd(P,D!UxȖ uŗ khuѢE <~Xۡi8T?]P4 UD">)ݒmY7V)**04#pt8DDDDDDDD: """"""""cH1CDDDDDDDxq"""""*H$5RPULUT*T*! ! 4^GQQrss @:H1CDDDDDT RBӫVzzz011!233!H!zpQFTw8==='w8DDDDDD$l&72zzz044dQ({-8D&p*A$uv0CDDDDDTQ/ڜDXV7G;!""""" ]HB DTs!"""""""qLZbxDDD`!""&L@ԩSv ,\N­[pi,[ fffGͭ_xBCC1lذ5tZ󎈈~W,[ u'|???cݺuU*sFb NZb>~ܺu &MBzz:5jnݺ!33S۷5 CA$HnՈBǎ1uT4lXp!Ҵ-*&pH#33 <<رcxbk)J"e*111_>\ ۷oǵkB!XI&r_f$1c 9s.]¢Eu8;;#22W\7qDxzzǼyD000PⱈD"|8}4\ŋ+N~)"##q5l߾͛7;{l?~7oDTTJģOH:v{!)) Rv킕ڗKѻ """zXXXŋΖ;w.<Çի///||999ƝÇ_~3N>+V>PƎsݻx ~Gcٳgc̜9R޽{HNNƆ tر>%ٺu+:$ƍhӦ w3333077vD8ݻ7ϟccc|>5 ~~~8ydӧ 6m=Bhh(8sggg|hѢ>}]YYYr #`Ϟ=H$Xh6m ggg۶m۷믿FRRK,[L^'|'''|RX7774o3gTZ߷o_ 4ZBݺu3?6lP~pvvT*Ǐm6+퓛lmm X4LNN]-Zy Xf R)7366͛7+Ն,a۶mի\\\!Cݻ%bDJbR'VU-[舏>GÆ ahhtL>%Q5Njj*|||nݺUDD8:wXt)B!N:`]1ڷo1cƠgϞS$ѵkW[h׮b6l@:un:$%%e˖pww޽{ꊔyyG`` ԩߘ>}:yf",, {Ɖ'xyyHJJ*5NHooѦMlذ (((@ӦMѥKBHDT B|100P(H$D"WYׯCU="SQ‰'~HC(B(*Ůn@dd$֬YOb˖-nUMll,bcc3n8]VQ.%TZfnnC(bʕ6m?bРAx;B(bWZe֭k9r<{&O1ׇ Ν;Ǐ̙3?~<^~ɓ'+/^@xx86l؀ѣGRRRm6L2zzorݻwGq2cݿ?u=zСCѺuk >ǎCRRDTsB!5k@}}}xzz%FLh݈#`llSNa2d~7̜93f@XXm69s&&&9rZece^R4vXlٲ n:u-W^z;_رbC@ )S2c}50k,뗺7|uU?DD0|ڢaÆ3gRSSqܹbӦMD" W^!** ?7occcK߳gЭ[74iDiBRԩΝ?M6EfPo ?D ߪ3:t `ƌDBJJ LMM1j(ch۶m*ACDDv܉"Ot/Ҳ={x3`ӦM1k,;w-L6 =z@XXѳgO888`ekhhkMLL`aa[n~UؔZNÆ K1rJ̚5 055Ş={8r#v֭F!>>^ݶpB`Zh#//~~~Bjj*6m$7p٘;w.Xx$$$ ;;aaaٳ'=K.aҤIre?b y&ƌe={6PPP<|PXŋXn1cƠ<ҥK1eL6 *ZD9 Pŋpuuhm5mB$_>{lyq-ceeHKKS=;;(M$u֘^Beu//AT>7V]__x|ѣ+WFHHH;޽{^f=|v¬YJl{ ֶm`oo{{{>|BuѻK__-[DrrC!"""R 8Z&KkΝCQQ̙ QFXd:@)z +s tE:@"(շ~ۣG0`8Uٶm,ӧO嗝TH""zM0ߗH1egϞ3?Ə?;;;D߾}-Gڵ Ǐ/s޽{ cccBؽ{7rsse D8??/7LLLmٲFBfͪ~""D"ڷoqDT%ڼGaGvލ,...0x`,Y8p < &ؽ{Zeڵ _1|pj 666ׯ۷oGff&v XXXK.Xv-̰yl~._/bȐ!JpEڵ #GD֭aee}K.eqxs o_v(DJhմ"OD5kYzz:? ;vDpp|>:`̙D"_),,F?"_ 沤1cFRR.\M6ivWZ'H0uT <9PXX$+Qu-1b&&wKul+WvzٳPŲ>Bd˲g^˞uW> ,(L5iUzz:b """/% ͡W"-- BᛯKgwbccd(P,D!UxȖ uŗ wƯsq) 0#G=lll J#={wV{ UPDP XL!^~zmBDDDDDjH$HKK !4>7T*EQQrss @oALUl,Wk"!"""""YG{q ѻ """""J JMu_˧]LU,R]o!w8DDDDDD U'^8IDDDDDDD!"""""""qL8&pt8DDDDDDDD: """"""""cH1CDDDDDDD!"""""""qL8&pt """"D"v"575&"-LQR)R) ahhH@TJ(**Bnn.rss!5֚蛚n&&pTRBzzz011!233!H%QS}Sm""wDDDDDltے)NOOvh:DD """""RIviۘӃa$p7&"mLQ sdM%]ǏvhצM=3^azŝ mڵڿtRL&-]TNұc_^zixΞ=ycǎ'S|}}i&]|Yr~8SSɓ'5a}x֬Y}ŋZh*V5kuA:uJ'On?\O}Ѵit>}ZM (YWշo_mܸQ'NO*99YQQQ^j*%%喖&I={6o#iݺL>@O;wj劎vTZ5h߾}uiiiڳgԩkWcƌѷ~m۶i.A+Vаaô|rZz7o^ 2UP,@YaXK/W^Q||dZo>eddHMo_薲4|p?^$o;v7n\b((HxY9oI&vZΏIӟ?Oҥ|AIfСC5rHYV͞=[oI!ٜ#dZoι)VeUq{&l6l%Fpٳ'۷odrI[3gT.]%Kn$M0AuU^ԳgOըQCGv)m۶8qz!kܹ t}0eA5dZ?$gQ 4m4͚5Kj*1B_~vp%mkժd;ve}ZZ6lؠ-Pvs]~7]zUڵw;wjĉ8p:tp8qBv%d6ըQ#:t1eOИL&s=iii㈷iӦŎ ^sݞK.)<<ܹnٲeڽ{Ξ=W_}U/^ԟ'O>z뭷3ghΜ99\R{UbbϟJ*9_~ڳg˭0=v  PԨQC/^sҥK~M0ĬR<ݻ뫯r{fٙu(}TR%g*UTbP611233dEFFڱcUB/ Se]|Y͚5SZZ.]$ժUVi7nΜ9!CŋڲeKŋ_UgϞeX7H~G=oeO[~RRU&ɤWj?~ƏӧOo߾Ů;@;w$jժ|rfiݪSԩ#٬~7+Y:uJymZxq(N,@iu9UVHH!<<<ǰ#GJ>g}V"ǹpႪTJ*%re Xp5fK,/PuI ֱc%*I9sFٳgG[n 5Ll6Zj;vٳݻwgu?gM]ӧOw7o^x|g}V+Wԕ+W-"##tR畟d׸qcm޼YNիWCO?X1R,9&2ef̘^6Muɓ'$UZyu\vMέhtz4m47NRhh^~e޽k(szte}رբE Vre#FSNPF`}Ԃ Y,UZ*Uիd2y=Ӿ M4I}՚5kQFB ߿~m~ rn5+++UJ'|Ei„ ռy~n;&8RSSջwoEFF^PZ͛7vu5zh+>>^s}w'jժJLLԂ O?<-ZiӦ~>|Wca۶myڳg \ȱϼy uެwP4Lb ʄ^zy;1LPEVVLus`l'w^VSuެwP4$pd2)55U2338ުwc# ǥfKe'33S.RY7:'Wp;ͦ/*((HX,aەtg/wꉺ90&8re6eٜ Tz;B;{xnyN<9ǒ/a}cw%:ʕ+K$&x:uꤾ}*++KAAAZbB JnnW@@dXd2VvtL&J}Ziii8el6㏪UVe1ǿw<린vޭJsĉu"=cKiLP8( 9P7yfݸ[O\FdU(w_Z<%%EԿ%&&n4tP5o\>fϞ;v^f,nVUy0l8¸󫛢8y$ _R(--MvDS7y3Bݔ90>PyY|||7??|x[jԨQT~G 2y5k֨M6ϵsN9XK~uc6UZ5;wι+00P˖-$EGGk/}B,}.4Myç[^vS{s.1g{cq~c}Xv._\Ӂ>ʕ+ P0̲ll{.MΝ;',;S7y3Jݔ9IXXv!)YRl۲nee[Vu7.۳=ή,ngyyj׮|?2dCxɛoxUT)Ƕ#F7t׭[yJ_hС%Vފ+?͉vQ^,Y?\[vsT`| =zW^Eƍ+JBϞ=l4H<{9Wz4ui޽=& ;СCU^=ѣ>}?H={ԃ>ޣΞIOOWVVRRR<Cv}nZ#GԬYgY,իWOgϞ$EFF*66VGnРA :Tcƌё#Gtmjժ>ҥKŋ%Ijҧ~*ݮ2QZhѣwP0 eB~ʨd͘1C'O_j̘1om6M>]AAA'>Ӷm4vX@۷O5j(R|W>LӒ%K?t>|VXQ5j/?wyG*Tp)++VhذaZ|~G^Z͛7w5n8[N?+ҹp,^z%+WVVVۧ I=ܣ`/Gz]]Yn8p@G$]|Y/y6M~lOX,eee9{]7p3H[jN>/&LPݺuիW/S5jѣ%IׯwCyUΝZlǏĉE-:+Zjݻw;GDDhԩN8?g}V?j֬^z)mV'NC=x͝;Wv횎;Ç[nZb=>oϭFZJHHu3< hڴi5kmzĈ/յkWO+In~҃>~|9L&M2E+VղeK68FRz?P Q„NT}護RbbΜ99s$}w*WIRv4|UTY< 6)ӊ+~9ׯZJӅ pBL&-\P'Oԑ#G|rg\R{Ubbbsсt :u"# VF 簟,]Tׄ ɽ*U޽+h6@X.I 6l5jXM>sXxzw}ץ'Ü9scꩧҒ%KraId`P*9rD-ɓs qSf~mׯ뫐IRJJo֭߮[СCj׮ {G۷ѣG3f)됞^`Y$> NRjj9*TPլY3/_^+Vt)%ܹsVZčCxxxȑ#%]O|g%zkܸqPz e۝ë֯_I&豋uEך5kԽ{w/_$[.\aTׯlO?bccUzuرH清H뫯oӧÖ́<=zT!!!jժmpruEGGK>K۶m/^Ԃ ;C.m6M୺b(5V&Mq)44ԹԩSzz<~zlR۷7|#Iڰa6mzH[lQfff)qq*Wf͚ի^\VeddhΜ92eڷo/fիW9'))+1]vL ٩]6l(,٬MRJ^fU:(Ul٢^}qԂ Y,UZU7vs)={V r&pRRR{n1r9ꩧR ԣG}.$%%z2L^/4i$Wk֬QllF弊XLLﯷ~[>>wOpBU\٭feejX_q/_^Æ Sll֮]o8qb7EU:Y Ό3ԡCu2224qDUZUZ`~'>ׯO?x:ubRzÑ#G4k,9R/yf}-ZiӦ~>|"-;mۖ={h刈̛7Os[|ÇV~||kF7{۶msv47֡;n\;8wRPm7e[7粜}s97>?v܇k.1f,))I,&ͦpoR"Ν;tnJ$,,Lv튐,)KRf{mnl7Dz-+ۺgWи+H uԍ5x L&M*+Q7yvݸ ¥uԍ5x L&RSSP-33SneBΛus`l$ppr\~l6+99T&*233r.%ɛ7]|`6M/^TPPdX n+++KΞɛ'Hf6eٜ_SSS -{A_7ƝH2x,27pחy&oO"b^Zxb8 u7O ç[ w/Fa/MDݐnm$pE9oMިI#SEGGkͪXbmCUtt˾9n$7Ԝ9sr/jݺu vY_fMڵKaaaX^y]V[n_|ӧ+,,)>>^իWw1Pŋe4x`IR|||5iҤHZ,EEEiرgiܹ.벲$Iqqq1bLC)44T[[h_~EiiiZpۧH]tIjڴRRRt.ܪc6-}gjѢZn]VUW\qIl٢Pկ_߹ڵ5k֨]v.ehB[lQÆ UF M2E JLLԾ}yA8z8M^._ٳg?j'Oj֬/I 6hԩ.s7oO>DEZN}hڴi:pN>^{X1w̓#Iǎ|y&Mܾk;v(((HuUf믿:'"޸qK'..Wjڵƌp-[$CBB$e]PP$zX,_ Y.́c aѢEOեKb=?--Mj֬j׮2̦M4i$Pox~ff֯_7jzubfs+dPVbZꫯ***J!!!*1*""B6mrt٣g}VNX{B8qBv]M6-08o۾}nݪ'x"Ƕ&1s'..Nmڴ:oգ>-[85nXGV֭UZ5լYS=6l_],9]zUWu=B zg]F*p77={ڶmcO>'|eΝ;]!Pjjjo5j(o._,I=zTt/ztQfUVMΝs9s4w\]vM:qM QTnnM;͹,gǜyeaڵs$Ȓ0 Ӯ]"$%Kʒc[=ͱlʶe{{h0 H #`p$p 088GH #`p>L&W>>>X,22L %nf)++Kv횬VvC+ꭣUG CL&Y,Y,9gdd(==]^.o[Oim($>:+33SJOOvHhɨmJ- dnMr233m1J[`\Lb J@UP/(???UPA?6mEͶ HR'$$DPhhBBB$p1|T틶 w}682O7]mVRm@DsJV 3 J)_m۪VZcǎiӦM裏,|G_z>mrm@ŻAtISLQppKwuz)M8Q|MˌV.]$Iv]ΝS\\z-g2(>ܹS>˺VZw_cy,ͦSN?<_ݺuէOǽ뮻GiȐ!ڵkWc,I~~~ڶmz術'O81TP/ŴUxʹU ԩf͚%٬ 6(&&F$QFzվ}{kz嗋4w\Y,խ[Wcƌь34lذdGyD[nU۶m'՚|}}UvmuM1110ak~W۶mw8=b&IL $;wˑL&S?2凶j\e(HxY 4ef͙3GK,qپsNܹS RddLݻwҥK*jʕ+x͚5K .Tpp^cSN:t,Xmܸ1c%%%)>>^gΜј1cIRbb#SfM5mԹ_^en e2XŢ~Pz_U ,o/^,ͦݻ+==]֭Sjj}QGj~~~E`[[N&Mr6{ljJ=zŋg$7˖-ӻ((((G/ Fy(Hx_kÆ .ɛŋf9{,ZHwڷo}w)etڵ"=/""BW\Ѿ}uVu)G'7˖-s Zf$i͚5ٳ6mݻw;4h>=E-7111ڸq:tڵk+!!A3fPӦMիW/U\Y;vԩS,]*((H7o8 sVrr߯ZjڴiqiǎS[l5==]fѫV[/Fj;wVlls('mٲEvVxh>>z5bM:U-[jԨQr ܫ4L;`}4ydeddd23<ѣG멧*'%m̙:|C B4Vvg /h̔ts'̚5xرѣ+>>#ǿf+m(իK>`ԨQOs.ϟ??G'|2Gdرykծ]; 'p&M-[/0ϫ\r.> 0@wy8+66V/_εbڵk~IҥK#hҥz%]ڧO }(==]3gtn5|jJ 4Pv~z[N+WTr˗/?ʕ+ejСjӦBCC?hΜ9ΡX֭ƍ:l6kʕZpaaݺuZ֭[ ,*N3J[v횾+b~aw}԰aC=ڳg|}}j*駟֙3gJvȑ#ga3gԣG>}Z?s}ZZڷo,XB6mҨQtwܹsz7?8 z +WN_ղeKUTIIIIڰa,X`^111jҤ-{b}ڷoCs΅RJ:~˺}Iҽޫ0e˖m&IqqqŊ0K.0`RRRUV:z*VaÆiɒ%Ӆ Tn]M:5y{ eddm۶:}6n(Ţ}j:Ww2R'OAjذvܙヘ5ɐdee9-Xx"##0y9?:kcShѢbbbzjeffoɵkl6l6x}WժU%)IaϞ=+Ρ-:uԩSOhӦM;(..N'OtR;vT5t1Iҕ+WòaÆI&mӦɓ' ea)kV/_yiܸq1bD nڴICUƍ%I͛7WbbԲeKb%p ۮ4|pgt+Wo߾Ґ!C4h }9s/k׮ZjƐk(--M=sի?<{NFjw<}wjР~8O?9űzj :T}-tWPEDDhذaڶms}jմf5kL۷oɓ'u.^UVO>իWO8qBv]M6|pHLL䚠ɮB ӧO;YV$}vj֬)I]1V1?,I 7{?6_|ݻs.C?N<ƍd2yڴiU-Zl6Ӊ'tĉ"Vv#y#]o۳/v& z 5nX{VÆ U|yL&<C e}z)o^ rTiҤ~C Q۶m>XDzZZl׿?Tjj'vԩs\AԩSڻw:wLx8ʱX,]u릇~X*6|__Q^uZxq#Wj?~ƏӧOo߾* P2va>~vNU\1$xs$''Kޫ᭷r79g{OYgcjkѢEz饗\yf/QFt]wiٲeTZhf͚鮻ҧ~ZJ]q5jhܹ:uf̘GjŊE*SVn $M8Q6M3gZh e˖;wfiĉ7X|$O>uO>\n͓t}ԗ_~밢Z;vtu7W^lV޽ &99P/F٬jժ)<<3gjǎ;w3IV_%CZSSSf3!#]ҢE %$$ 3 VHH$E2LѣGet=(99YǏwQ:uH:0`l6v\7x`Y,B]"7Fiy{秭[jݹo%c#;EoS}Kg':/]cǎͱ1~}raذayn[ls/=9l6[2ٯ%]}tc8=#tM>]ӧOws$e̟?_Zh?\UN%''+::Kmݦ_{Ճ>(RrJKW_}ʕ++88X'N$%%{9}۫VZz7$]߾UbE͟?_4i$qs)j2j[}չsg ٣dEDDhJMMUjj8{WW\O?Ts)IR=$I 4>7N=͝=Sǐ$mذA=zЂ o>իڷoϟ=z)y@i+Ȓ4h }:s^v^Z1˗uimVFϜ9s*33SO?6lT ϙ7oc;(0]v)11ʙ۷oWbb\uV?>9M8Ψm5--Msɱfs>oꜽg-^XYYY֭Ν;c_'bv}_rsnʶqoe9>ls,;n}~k׮]˗p:III9~nN[[N.]R޽ 򑜜윗Z[EP aaaڵkWdIY2~lvg9mYݸl8&* 1Q=IiwUxduQPVImJ78ӽn!7h$pk*T222)s̼^4en( [ŭ$m@;n]$p3Y'jȐ*ܭ*҉0+Wx;a%پhp'pk# /33S)))ePJJ233K<*ܥ*҇(Ҙ%*55Uiii%^.m%]m@BW\K JDZZ[VQRV$p@BܔT sfy(HRʕ+|Ax7m |@qڵk ÁYV]r+VQl(233u%(((H>>|L*==qVU;(ӕ.!222 o₶08PFFL&+Y,fL&ofeٔL]vMVUvۡ勶z)mqenw~A (,B`p$p 088GH #`p$p 088GH #`p$p 088GH #`p$p 088GH #`p$p 088GH #`p$p 088GH #`p$p 088GH #`p$p 088GH #`p$p 088GH #`p$p 088GH #`p$p x;@ԩ ծ]Ǒ;r䈷C(O= N: )La#`p$p 9pX, Q@@||o=33Sr劲r y#Xppʕ+($$D!!!t钮^c? RSɛ+WN?.p+#bJơ\rX,^;>p!޽]wύB fA,hV.ju Om#UAJaqki׊bXA؄Yb).HD@ B!A(I 2$C28s2<9}9'qd^ahĉ.5h!Ǝ[ Q1kVpgka7 _B|-l1/_W oϗ!hϧ~9Ó$sL+81jppF3fsͻ!ٸqcs=Y~}y `DtO?}8#\MMM>O`*+;.}6cƌ̘1#wߝ޽{T)#TC0kͻٳ'K,ɿ˿dݺuI#<2矟秶6-0 L8쓟dwW^ɢE'I=$ɪUjժ{mAe]oq_zk`3jF`1cF>fϞ=7/ gڵm#o>eƌuc9#ƍ;moNu?-[d۶mY`AMo:3u禲2K,i oZڵYti*++s9 U_ q7'ȅ^ /0>hfΜ9~w'?IW^y8_y-[Z|0vZ䨣ʚ5kso~so aß`jk /so߾O{VSt62տ[w̘13fP5 pFΦIu\ Iө.\իWg̙9sf֭[[*8#T,H\[[ZΦS=쳙5kV/^ŋg֬YYjU*l#0B=1cF͛s<쳓$=`(q~YfM%KްaP5,0Bs=inn矟:G}t=477{ zڝjÆ 0 _FPׯwߝk͢Ev$gѡGk6555;3T`7ڼ]M7ݔK'?I֭[$9sf͛s=7555y'rM7j`kll̢EreCPϟӯ)wqGn466R;n޽dɒs9yߝ?<=c{Mׯߗ BPp`*NQEF 0P QahΝ.5h!m۶۶mijj*` Se qmۖ!/f.OCCC&NcǦzp~766!;w4@0555eپ}{K)T'(8@ p NPp80:蠜p Ԕ+Wf˖-el20]7IRUUO<1|p*86mZNяSO͔)Szu?aBFۇر#&Mj6bŊs #>@2eJ9眴? UH_*|;B:C㦦&#r@0BzI*k׮5GuT/SO'۷oϊ+2{#q:lݺu0BxI}ߩSJMl۶mˊ+Ԕ+W oH m۶eʕ8y駳e˖2T6B0 \}թu]۷F-[?iQ*++S[[+;R!o6/b|8 %***$---iii)s5@_X`˿qy}-;wLe22VD0 ޽;k׮׿{^^xa*zC0Bmݺ5SNqkù;Z88#C=??_|-X8#ԝwޙ~9蠃zukz(wu W`jjjwܑ;ܥ6'(8@ p NPp8'(8@ pAsm~]0rtI.aD08'(8@ p NPp`@?ȏ~L6mڴi뮻 _`@3&'pBn営[n%|ƌSʆ/0.\իWcmk;cOOX%Ԗ-[GGYzu[? W_-ce×p[lE]+Wfʕ/oCu F^{-/w#ou13LP8~3fp pFŋ祗^mݖ'|}` (rG/>o-w9@/ pFwkrgҤI.`̼y=w^jjj](7~|c˕W^YR.pH vvڕK+w)@8TsssxyٱcG!yzo[R^"/Rn<.(`r] NPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp.w ~dI_|1Iy$o:[ϵE0g?K|ĉҒիWg͚5iiiĉ},I#T Gʕ+skɬY͚5+\sM>`2U)TLiTMQ4*~(8@ p NPp8'(8@ p NPp8'(8@ p NPp8'(rИ:uj |;s衇96lO&=PVZ~3gN%?seʔ)93X1vI'%I\tE]iii}88#TUUUMym>Ira Ey@X`kiiIEEEGGmǏŋێ_{|_.G@/0B555^KeeejkkO#Llܸq(@0LϓO>9$'ݻ7?̛7ù]vGW_ymo{[oߞ-S@W}+q]{wϥzT{n[[[_(TUGݻe˖;μ-o۳uS__}c9ܜn!6lOp3ul۶etiرٰa?'y=IKG{}=. p=PO|"sܹscǎ}y2TD0 g?3'Rr^0`7$0aB+zK0̝;7W\qE'\jsͧ>m80 pF}j"ĢE]OQb][`V`( i&NnL}!%JGuÇE NPpEFE'MTJPÇ)Ts=i>;ĕ}e(q5ה(8@ p NPp8'(8@ p NPp]@Q7.cǎMuXihhݻ] 0LH'JTUUeɂ`TWWgĉ;vlT3*ՙ/B}-wym;}92iҤر#Wߟ5k֔<~>|'ON8!'pB}?NsssHrf޼yڧNSN9%rJ-[ŋLU=Ckxw(0쵆7{ɒ%K#d˖-6mZg$w[jp-K/۲eK|]6_|qN>,_t*((Q봩zCxދ/zCjjjʞ={:Ӭ0f̘$YbEz꩜uYmB锩fϞ9s$IfΜUVNeeeN>̜93Y~}/_{O?c=6zh-[&$K<#{Grd֬YCQ>?~|~'LЧJuu?t{݊+r3SOs]w2gqFΝ~{?{\1iҤ$oLN@ph׮]4iRL/E'OnoCҥKaÆ>zmo{[޽;IZ~}N8ᄜxy7{$ /Ч_re/_?%2eJ***mOeeejjj:u0LW)=wꩧIG>hN8ᄜviYvm^|}L>=vZ[ryד`s)O?79cr&I-[6%d>oG}4555sg䠃JUUU:蠜y晹KR]]]v^*+Gsݻ7CZP k֬ɲer+̇?vaas\8ر#7n,w@ǩ':+gu>}3a„\r%曳sâ;w̬Y2q4441+V';v_΄ 2nܸ^P</NƖ\pA.}e|_ۇLU8_Ѯ]=*=]:Ғ5kdڵɸqRSS;wf͚5Yti~ӟm}g͞={}ߙ3gf޽]n=k֬l޼97oNF3gΜoڵkm۶z9Sr衇7M6lؐtI;wnfΜ(}O7i}Tsn}r?vهrHë́ r͛s7TWnݺa>ӧgÆ lݺu @yYn]Ҕ)SO7$MI=7vaNq][qg!Ph> w+9`rЩ|k_K/7M]Ўgoοۿly筓c!P__,w=r08'(8N;.z"i%=@O8޽ۿC1w.w@ pJ q!ؘr .hu֌7.cǎMuXihh05Dv+FmRzC ZQQQf8J577.9\l2iii)_HV~^0Ԛ ߠo8Hkb7ZЁ*Zsss!Ѧu"h_/~0rر#{)w(lmmT8&LHSSSjkk /B0P&O\ajkkS__miӦ Q5}7iҤ<3.cU'(8@ p n1nI2"|OKKKs'I,Y2%\yeԩf֭YlYn466re5([^]=(\q̵^OsQGeѢEIgy&k׮rFq#L[.w{N0!7xc6lؐ/~e_|q>я隩S?|[ʺ5(P)W3lFTTT2;nܸ\wu7n\˂ $&N|392f̘$믿Knr\~93k׮r-t 椓NJ<뮻?͛$ԧ>{W׼mo7̛7\@)K4F y|%Ee̙m3g̢ErUW eWU-[VR|1ӡ}̘1G>ٳgK.4YhQ&N . GqD!7o?ܫ{r!?v|e6h{dtP:iwڴiRS? 9E_ĸ?_2UUW]9sϙ3M &LP2|3'icg>}ڧN??׾g_{}.,cǎͥ^K/4rH,Xe'eUs=7n\;wy;vlN8!o}g9{u3f-2_e껿6ܦPɓ/=7n\^z饜5kV_pL81_}.tMٱcG-[}k3fL/K/_;. .?lڴ)oy[iӦ|ͬYú-_swӟtΝ믿>sNRQQO>9^zi;:#ּ?NtM;vl<ȬZCͫڡ﫯gĉٹsg?}ǏK/4^{>0Ќ'O΅^$}}jillʕ+穧Ν;q{9c$YlYnݚ7殻jTYYs1K/G|}љ>}z$ɣ>]vuo~36lr1ꪦިNeeǿԉ'3<{]p{&gAm@-Rmb\QQQ`᪫Yg6f--[^۶m[Q"۷op|9sIKKKM]v%IVZɧ>|+_wܑ޽{1cn[[]]]}g̘1馛Аuuh۴iS=mrHv=ttM??p\]]O}S+ɏ!_EEE{Z˦Pk-ҐqgZJ^7555UUU:>u8޾}{֮][n%?O^5{,\0]tQvؑN;-\rI{'sOf̘͛ I:l}iӦ455墋.J_?ڽ{w.]|#?C۳>c9&ӦMk$;wn|nOO׿N7:묜xyꩧMgRt+ܯUUUe;4kugDžWK-<${Luu߳~:3gΜ̙3'gqF.\8hMƎH'N̘1cRSSw]εNz嗳y涑;uuu9]6ׯg?TUU"GqĠ]nh P:f͚|ا}ӦM\y啙0aBO fޯvJUTT䓟UUUgN'i;,G:ys3/9Ic]]555}~Y~}?韇z(?xy֓9Creeɒ%{SWW;3IΛ,Y$'|r~6|p,YKsK.üm O|˵wܹ3w}w.7xc~_t{'6̟?I& =F ӧO5o}[$7o}kjje˖ے4w5i[Q췁Xof޻ץASGe'ǕI==O;wIh&tu̜9szFڼ }u$Yn>Ӧ´irGد%Vʎ;n[mm~o^O|"uޚ|;}Ȯ]dgq=>ڏ)ht7"7Π}z^|rQHO]v}4666޽{G}}׬Y`.i p1i}iJUz8m餽]0hܣ w6Mq1ΞK_W{P|_0Z+LHץ͝WW;TZ{,ۈ}xi)ik߷uk=ݣG: FWKtTgS:a=JRg!J_׭Mq$"oAJǿ$]~DO">HlSw4wrM g5])bhjJGޔnگ78*%ۇ6a)T0:[4)S:򦻝:{]z~P8I?޴7O׶+~VوRuI!`2 U1Q%=Hվtt\J߻^WSI4I:jތ)S8*ߨU%U:%bw#lJCҩWݟ`pӧb)ןQ8m3^:hήo?:) I;y]蔮yY7}oC5g0i?Ugj.9~Nknާ}uus7=-Vŝ7aHFu USo^zMB丳V}9PltpgӤz s_FP 5ug[|w6,,LlᮦCfTWۆ~TT MnT]*-骖Rp`.bU0u_›B}3d#v:(=骽7 w"L]M}.i(Fߔ1}sNgz YJGt7u9j>I!OÛa#K+Izյt?Sz3:g›Itַ 5jQ+A#ݍ)=ۀ? u!S`aGtv?Og; Ft֧!Ͱ}?oC0p: lI[o™ow@3?[ 6tէ7zRŏzRwf5kz]jX7I pJrFțOxU[WFmSھANsE~`j-{zݵoW57OOaNoӛs} f"OU0bB"A0 (>} zR&)V0!No߷ЧH4=M=}y߲)Z0џzco/d#:iop2jR|P6)% AMw B?'إIENDB`extension-manager-0.5.0/po/screenshots/_24.png000066400000000000000000000145351457631363100212310ustar00rootroot00000000000000PNG  IHDR;RLPLTE888~~~}}}|||{{{zzzyyyxxxwwwvvvuuutttsssrrrqqqpppooonnnmmmlllkkkjjjiiihhhgggfffeeedddcccbbbaaa```___^^^]]]\\\[[[ZZZYYYXXXWWWVVVUUUTTTSSSRRRQQQPPPOOONNNMMMLLLKKKJJJIIIHHHGGGFFFEEEDDDCCCBBBAAA@@@???>>>===<<<;;;:::999WIDATx휋[SW[VZ/Xɜ3㴵Lg̴gF @܍xX@(h AX'!`bIkYGó7^yʗ/k-A|(4[⾨ DLIF;]$=4z\^3\ 'D3FrZҖ nt^ΗϬDl\f΀46t`hɎ x)DLdNqHDl$Mż鰍8 ؘq? Cr%l+Wuz:YxŇ렿-&Psf-`0(-M͌ \KGF쑍>XaQ}SH F6+.) %U"zp]!Ff ?Oelޱ sfa<hg~ZpaNSsdT< n0C^G,06pN*qjpB9y8"=;PL7&_@rw1D> @:p@qzfxr08|:Os5#6twLEN>=<逎fTӓz Gf$3 l0C1Vd&O:D!@I [E;#l07ShBtpF\݅Pj^9ׄ8c(IcQc ڧI@q)E2< F8AG!m1EMCq3Pf2x Ϡ1QF|4 EO3Xyǖl%qivv9{u6N`4϶3>Hc.,\F8UtylPHlS(E"`N4p,V*Sѧu׸Zٌdh;8U@tG >%ELw'T;~p +qp~B}S(Zو2}?0Aj+Tc dUq|J?\yJd3W2Id8f#1]Z[2 K 9K~B &_3}.[f"H Z%RΥ,vyBlB؄mHUB_ݓ-5=pUm ۺ !T8',ńڠGn UP|_l}F$,B>DsqY&"eV 1xz 9{u]Gt"oJm 7 I߰M kY2^K HW**+~R4_~GS z" *7sY4 N_b< ePSP_ x. v FM83ķMH!Ugʳ )RD .4۔Ex$Qc43fW}ZPX,`!]b1U#9$Zsro)BXeC 4m1ffX:|I_} %D0GLL׍ѻ}a,'~1P(~/լKDSUi"RD`:*;ԑH[S=vs2q-6̃qZF(H?Toh|d|--q 'VBQ 8QĿ`O|~#+`$稞an ;ėXM^Á]Z$79(uėXx>7=gFҺ':d1un#|#yZ H$m2qm-ncڸ2wCRyҗcI7@Ё1UGD? I7݄a#Gs8ck7yMs"v*"%5R9䢋xRo:fQԱ sw^82tEG^i1H) 6DMBeF%ʎH@yۏzTmt!6DRs3nU-Bd^ pwE~Xz~lG.!9S8ӏb.i$Es WO4V|x>&|tla~dUq밐~G*b!w'\r|!~-qx!0;NǦCTC\xc{6 sI~Ȩ$B~D!OC.Nкriz8݋b$r=5lA'n?*$B~<ʄ0DW+/CBU( B?w#02Ҕ722ʌ,-~ވYc<6%Ȑz#'c C"\|̈ DyuSnzgǍo W |b|nn3oЉ*xsۇ]QPo/BP( ER8QYg}/q⡹'Pioq{T.Zxd#xj]B%=]֧\ܩqYֱq1~!Z%j Z0L\' SrcHrP ^^x:ནy_v/,u teNvj+-p? ?@)\'ݙ>ʺVyG@Ah*s*]56yHn xO4A?\H?IɁyQ(eP~V=&{.{>g߸@rSUG`k砵q5 #)o咡!?q BQh>"d0s,MQ,Po BP( BP(^j1@潵K#o{0|!kc`^_>t#G0N#/1(}//# G^y4ӵ?}sWυ_$:V;8лuހBۡ^s̋Op藭O={Y[q92r(js}ˈ~fs7iaL32ϘQg,!V ڪիW"6>.tWs1;_,71.q˜5pVS)mz52Z W8=04c{]/{,GҝR!ӉO@7!fJPg\.0[-I?d8?KBept1LkJ(K߿ϱ+^`x_Tm\)?V #;R#2nܕ!t(lFtfOC%.==DyzAP(j?BP( ŏeן 244`fk~ū}F ?T̖ccc5/J?B<\yb>uA-ͦiT7=ktpHg=7yA@=- ^\_\ؤ`h^;z[̅oY`{[o~Ӊ:r!}Q`7v,A|~]_a`lRPgg>r/ˁ|ryLw=k=mPXѼC7@#1HGܱ};gF#lH?Ca#F#DDQxF~#PHlK8u> """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""*G"t)ʄamxa &zGz`Q?+NU 0%""""""̪LSJTp2?6"""""""2R9-lʮ҄9%cMDDDDDDD&D5٥2 *""""""" V\:q@™K||"""""""2M -.bHጚN8&9 t G6DDDDDDDɑ-t\&qJJ|sye R%W++婱ۻ#"""""" [{CG9r@>{kq"""""""6ƍOYц8bpXzDDDDDDD\Z3-mgn} qPg[Ù˲z[B#b &8#$""""""saNYQ8uaK-kL-3ymGDDDDDDD)Ow){M#0žz oL7-DDDDDDDd]L9 q`oxTX#CDDDDDDTٙjcKK{ qP8+)9 ,]˵%""""""HoZ˜KNG^iB1 oJng)um6%ÙJ!-jLRxc.И;/3sA!NZRG7R3m niCDDDDDDDckbo1fFG`2Ɩx9lCDDDDDD<如8tNy[ߔ%ܘ q91QUeTUGp X hL+ܘjciv*6DDDDDDDgipSa~ ǖǖ1qD=6Fjb;R'Gj"""""""*? J1n[ q-n,beX-D777IaDDDDDDDx% L%)O#V8bpl o HM,7m?"""""""1 l BiP:)2{a-G^'}NٺTxcjvRc01mmzmu0q6+vQNy f,}%.A5Q|(t)D777HRH$CDDjh4(**8Dj5 gҠ!=)b\,-p1\Wr)K-p C])Eƍ; ϷT22 gLJpss;J%g#zD*LJ "H JP(P(R\Z{]偉1ΈNEcw57zSӋ u|||qb~~~muc\.e7d\L&eR n(=F&=u0,ɅiFԓ)ssskRYKtFG.S2l&.tDDRqSL|%9gt]t d2?}xxx]BrD&t DDb\ZL&f6lu/( uűeP@7RT*e_dWQ(0XImk֒S:npDD.^DCB@DvdE`` k&F`` |}}5 aeDZđF>iZ|LREDDDDDDD___@nn. szsK.52[ۘʭQl v [XGDTq""""*3///C*O [b2 t kܘn.U37m4ʒ9s&r9OBK""%T-[m۶Y&<<*WFSO=~͚5èQpҥrT..>>>HLLR/t9Dd'Oɓ'6mªU !q!TFF.\$BCd֭[Û#Gĉu׮]Crr2_|8g7DUÇK•iZӷ{gC" VZP|8~8>@޽1nܸrВH$E֭q=L>\#"עP(`ZHMMu9 CڴXm7n͛|rdee9|L3viq;w"::>lE%Z ˗/㩧¼yOի:ʓ!4╊hĮAԩرc3gw8y$Ѷm[|GJ(,, /7n_L&o9m4t É'мyss`m۶:1|pt2e nݺUck^:R)RSSObT*4izaРA=XopsssqZo׭uJ.dʔ)qׯyO>O>[naԩ:6f*[uw*kH[oۊ+ DDb}v֭áCO]v8x >#Md_~eԮ]W\1=$$6l@vfԮ]?$?O?:֭[B9r7ZǾ7ker#Gk׮֭n׽{wdJBaa~QQQ&(#Gf ysI.-oҹvZc?$"rK.ENNѢE ؽ{>l9x 퓙ڵkc…qϟK.᫯o#viiihܸ1~im999.\P(hܸ1.\#((d|,"rm=-Z5k=۷9?ƍ@Bxk/pZ)55]vETT


67nԿ6sxV2qI|LrQXj֮]~n?ݻ#22•+W.YP*V}>̟?uܹs]O,c#b~DDUzu}W$s.]䐙SL2JqqqlyCDF|pȅ9Q%.TDDDDDDDD"H""""""""cCDDDDDDD$rUr}]vVΞ=Dx{{cx!+R""sssøqлwoԨQæ}޽[bѢEP*Na#]x͚5ޱczᴚ.%%kF:usAPK̙3W)0 4nnnF֭uW_Err2N<)P۷/^}UiZ( ;O<.^X9׿/vSF 1Z7ݱctǛo~t>wwwHR<|P~۱rJlٲ7n7|csssɓ'+Wݻu5_.]eQZWyU<8N>ӧOۇɓ'C&(~1#..YYYB)^xÆ طo^ T K.h޼9bbb駟ԩS,ΝK.N" ** r e""!o6ӪU+lڴ {8Jtt4֭qݻS8K^ #Gԯsz J^ ""zԩS7r {B3N1h SNx'SNӧuÇ#..W^qd2|}}V-7@ۣIII~IDDAAA`sx`d  vnÀj# "py>|cǎտҥKѮ]; \!g@ll,z=z?X}*CC ̙3K/ PptBt={3f@˖-Fb֭8w5UеkWjXW^$"Jc˖-=z46oތcǎs=1bƌ=zӘ9s~],s۔P(0i$/8t>#xyyd2L0iii?̏ڹlق޽{#%%G /_>flٲǎæMмys 6 ;wѣG|r˰;P(0uTݻ'Nݻ:<{9_Ѯ];Amz+>WG| v؁;v !!Ar\?o>@QQVZ{VBzRZ2j @q7Z-kOUSGUVLׯg3u"l߾饗^B||<^yddd )) ;viӦ&[ӧA۷/z:u}`6qDtGF޽5siӰ}vDDDȑ#aaaCxx8^[VZ1b'x&Lx~sST3f w-[ !!/c%"񋊊˗Ѹqc_ׯGӦMq5DEEUx=IIIXdö#8xꩧ[h u}Ue:u*F~ _},YB> IIIW_}%tF&!00j7oDƍ-n>$dsx1_>&LԫW#FT*ŷ~taĉBJDpR͚5Æ *<ٶmN<{aʕ Bzv|DDD`ɒ%w233xb 2dM3g;wSΥ駟b˖-8{۷oӧq]^WƵkc5X_|Ν;WbŊ~z!N&Mp ;~ 5Y g؇ccĉ@@@"##zj :t($ "##cʔ)UjlV V DZQFyzz"99YO(St/^ &vژ8q"|}}ᅦL&CzV.F4i_|;wTxׯ_G~~Q_>R).] V ;e:u ɌZYstls/M={gE@@jԨQe $JJߝB XQqHSPPR؇N<͛O=&Nݦoތ1&Nٳg矗<H$ٕ7/''T999z w- RRƩ粇<ύ6mڄ]vaҥq>HD. ((ׯGÆ c4h6l,YjC7e.TO4IrDdx֭CMI BXXXE)8,!;w6MNN[6}\,\W\ l2T*""r5k֠QF8{,C&u?sv'fj{~:+\ehZiƮr.!h7oΟ?<~@AT^Z <ŋѠAQV’%K_d?8HLLԏk3|%SMff&222ЧO Pb>}*LQؽ{7J%yth]~~>:?;vDF_UbE&;;sABBѸDDY^^;wyǩSl2 111[.֭qơUVXvD6mOOOyj׮ DJUVaĉ L&C͚5ca֭={6Zlիcرv?fV%۷oD`` ^u4mhFDCfpi}k;w`8}tBIJJBRRe,v/Of T\XEGG o,XJ[bذa+Vo.*>>sDFFbРAhܸ1ۇ+W`hРMB`ՂhjEz9ӰaCDDrm֙_7[,ѣ2dƍC"??F߾}ms۶m/~ȑ#mfڵ3gBCC1f,_G͚5q=Z 'N̞=SNErr2J%6oތ˗/\!ky>㑞~h׍\_hhhewo!@5 ΊܭzrwH }}?^C~:jղdP fܸqBghܹ233h"P7ZFll,!JUڷoF<77W.ӧA~ХK:"غu+Ӆ.[t7DDDDDDTq*""""""""cCDDDDDDD$r pQTB *DDDDDDD瑂K^"""""""`H^^% x0yDV#++K2D!++ jZ28|| """""""r |+%RT(((@^^[PO'@V#''999BBDDDDDDD.TDDDDDDDDbH"""""""" DD"WF K """" ???K""{%RA0!"""J6oJʎcQtm>DDDbHIIQ.êu"&&2d6mͨQ"tD*KpCDD$v pxb?+,,G;vĉHKKرc!7cnkѢΟ?/h gϞ*–-[.LpDpĈc DDX* xХuV]V6۹sgӨWRrJN.] ݻwǺu_:qTeiiiHKKJM&wAbbХQR9?-L0!"A@@d2) ̙3DZyf4kh___XǏƍdWmӧ_6ocÆ 8|06mڄ۷SN>ԩaÆaՈƍ7쪯e˖/"==~~]@@V^'Ob֭S]ǖd7nӑ˗믟'ۇ8p ~nݺ8EӚ5kl:>Pnذa=ZkB8r=y[ҩS'޽6mO?#%%Ek׮ؼy3?Ç7l>UdN_g5p և7q\  oBrxzzԝ*$$/_ƩSׯ_/MZZ;_={\KZZ[dee}2e >|cԯ_>|~١C0x`h24h]Yf?~=z`ȑ8s Μ9Ν; G&aȑ>|8> 5k222;wꫯR["==aQ?ή]лwo1ly-y뭷#G.]x$$$跱t~k^gرc  5kPB1feoiwww9rXΝѠA_{>µk׌3ϠQFF?:v_HNNFjj*PXXh'Ԅ <<<. ~ؾ};<~ 6vvv6Uf~ٲeP،=Zn۶mGApp0 `wSZ5,_+V0o(**B߾}ѤItfaqCCCar]͚5!ˍ>wNZ免7Zh"|P(G͛yyyFϟ-Ͽ9sΝ;???TV VX),,H[I&4iZh?5kքB0z/}c'NPTT6mڄR\}Ur<{MןlCDD[lsqt:uB~zL<(x)٥dٳgc`u|3g^6///|g8t-[fNVcڵطo\\;v?cy1|J_|EܺuAAAH$U59F1oV}??%b aĉwzɓ'mkov`g1$$ڵ]tuC4$!""W1p\Hvv6mۆ㫯Bǎ֭[x".^Lۆ`HcŊzQ7'Srssl2^z6~y<3&߼y* k/{'l:.ܸqhӦmd2ϟ7"%% ҅F%r|[CVV5j_֨Q#lIb=??˗޽{ :l7n@TqeO>zG\H۷Ϩ!󇆆BV#33aןʆ-h`CD"ݻvh֬ڴice<'shݺ5F>úuJ-_d f4nM65z=n8˨V \n_| 3аaC4o&MP}gǎL&Cݺuѽ{wZFrr2NW_}O<:v숥K1bxb,Y;vqnܸZ^{h\5[oMyM6aرhݺ5Zj{7oy>Ѿ}{EDD/**·~ &qԩ^yzG\___[Xvm:uꄞ={q7n~We o2a!""QPPhԫWyyyسgV^cT*ԨQC?5իW1g`d2ẩ/"ڵkаaCܹsF^^Mw6۷ǘ?><+WSO=e%!@\~wP<رc1dX/&Mƍ?Moaؿ~&*KǷݨ_.y饗$bڵH$سg/^lCVcܸq>}:&N7o"%%v HLLĖ-[pY|7hժ~}yDD.^ٔ ÇGFcܹuB^ Qؕ}~zrwH }}?^C馚,Y)9 Q5( ƹ4h7xo^ɩbcccaĉ>L&þ}0||&IMMŮ]LNa*|#ADDWZ5a k|i tapJ6dm ;t8DDT4Mj駟FjՐ:uwޘ6mC;wt9 ;-^͚5|hӦ u޽{_K!"fԨQ СC.RjР.\&M 77mڴ1Zo?~]ŋV-RRR+W ] Uq6Ą,X-Z(~I ) xxx-+,,Vk}cǢzx w}K,f̘+WF5ډH\гgOס={,jumѢlقPTDGGŋBQQQ˖-n:ʮϚ5kK/p$&&wwwL>ݻwD"]0k,`ܹ߿QQQ3f ÇK,A5 q!?l\L&;#D;-- iii?.S[ܿz^3c$%%cƌUХKܽ{'NDxx8ƍJyaҤI5kΝympssCBB?~:y%#662 ͵qڵ (111G˖-Qvm_ٰ  ٲe VXa~k׆T*E||~L&ʕ+8vq!ܹĥk׮Jعs~Yjj*Μ9֭[N:8z(&Nh,X(**B~ J' 55,YxP]xRRR_QFhѢN>ܹsu޽{d׵>B@||Yf!++K߅Z}֮5+V ,, 'O|XӧOh6lm. S?ÇÞ={зo_,Z O?E\\Νk׮鏑www>}yL.?FNNr,2oرcI.6M?qv.],~9 2C ѫW/FIR3f`̙Nחjo`„ h۶-1uREEE믿 .(>44b={bh۶-J5˗Px氰0DFF[nXf d2~ᅬvwСCѺuk|6 DJJ Ξ=>}`F]QGW^y111۷/rsspB;tPرcGhh7\KgZcرc __RM9~8c]:uT꼗0~ @ !!!3 =Oxyy^zNQJ% Ѿ}{K!""" NǏn߾|o߾';cǎoUPF ܽ{+%"g{gШQ# >Ժ]v᯿$''#55qqq(,,os],5vB޽Pׯ_7Z[o!!!GP<{||=Aڵk5k~[]VL#Gb1Qf͚  YlƖwkӦc_p[oaƌh4/7 ''ǮZ-_h48z(@߅@-պwnC0߿+WZx̙3 o;vvnWsm!""acŋYf 9+Uvv6qH$T*|׈­[pQT^8w|}}?hٲ% !** 6m2}WB.˗ [͛yyyV]/[ =Z~@DDoߎ⧟~9wPZ5i[{f֪U ^^^ظqcu!!!s&[t}maݟs/_+W"&&&MD"ի:%~"""Я_?d2dgg#..W\+8i8do۶ /0Z ׯZ {4fCDDbN7oAe|WfΜ7cƌApp0^^^v̙cr"r]!!!G׮]M7Ң-H) ~c[3{l,Xoر#:u:`лwoDDDzX|9on1,sN,[ 23{?L&H6:[ڒD]NCU6!֡պ"unSuFVTK :S$D# 9LH̝x>k6uͫs}߭#o>۾p*557NY(j4]Vk׮Ն 'h֬Yy* s04iR|{kf[תUjժ[o;vl |nI.GHH6mT`}~GsΕOΖGxT"Ņ6bccWgQllue5n6WYƍfIqUTNR~QuQ...BIIIv횞z)GIwUV}E]_{}i;4hSN:|͛߶SiOZZZQ^Vz6mjլY3]v&))IfYUVTG}|J q0RڷoqI޽{mD I ,len5jG -m6mGj]i'))Izgi&[W^yEiiiڿj֬zJ֭m_jx sUREAAA2erss駟wua=ѣ-{yգG͝;Wׯ_ו+WkUe˖^z-~ҝ%77W_}x UXXV^$Qj֬)٬&MիP&M y'tu-_\˗//իk:x`FUD8N)5%@^~e8q6Ima/_~qڹs&Np~6lh[N(4M}۟{99rD;w?խ[W׮]Ν;K=xEE(Jwy[vwS!Y/w ۻ|TY,ۛfmڴISN-/RׯŋTq_Q!PxzzjϞ=$]+)=#Bъ+_;A *~Mgvv@p+8+M˭2""#WW. 3nf-)-&Ea*PVT՝]{LffK]`Fn:Hpdddjժp(##e T>:~IMTfMB.''Giii.%t땣KB7(H)nTUV8ENN233ysxfP%yzQi"@N!##W`pR0SV?zQݭ|]ʣΣɆnG@y!~5g8܍ve޽ pPL+w:孬}훑7 *ĉnkQ/ʖo*G}| [Qp}TBe#"r߆#Yg"M(j#"!;xJi(##p3@Ï,tߌF]ATLPpZƝ^' $k߾}^^^RFqm.\x͙3GeZ͛/ؖCCCU^==LJlj%I/.U?.zf͚U-TТE _[:w\f믿͛5vXYF PuAw;c穧g}m۶ijѢmۆ ԲeKr&McǎuhںuT~R FT0{;1tP=S:t~w^zxbz &OsiРA[|||oڵkz74|uY>'GTRE/}9rDIII:umW_JIIѢETV"ѣ:{{=}U {fsIBRR222~[ i]T&8WWWL&LeO_`ťTZT&8D߿T\]K7MRFFFi5kLǏ/qTbӦMSpp$)==]k׮՘1cԬY3yyyŶ?UNUV͡c۷O?ԩڵk^e޽{I&e6iӦR 'p$y\~&Iu֕mݔ)Sk.EFFjR[o׾}j*;Tߌ3EEEٳk.EDD(66VSP܋J7YI[vwS!Y/wJq:#,,L!!!v5kІ O+++P>RSSeX]`ڳgO+IW$Jʱ{ϻ9o.nYvn^ηlo/Mp25gIRPPjk***ꎏc)11#qlEFF*22AjРvޭZj),,LK,+RF j:V\gJ@sW_}eR)TG`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8eEVPPjժU`5d8:`qA)88F%//2;UV-' $k߾}^^^RFqm.\x͙3GZ_hhիѣGq@p[xR Q~~>r  h}7oEs%8fYVN[ڶY,uѹs駟jݺu*Ij׮bbb4mڴbASݻWF',,L-[԰a+$$Ķ-;;[gΜш#:h:pN:ŋ[kWRnnnzȑ#JJJԩS b ;vLZpԴib60l/R>}Y5o\wxUV~o 3d2d2OKGӈ#tȑb61:sﯝ;w޲OwfΜi[~n#p*t]VcƌQf۶_xQիW׋/_:uRƍ qyN:VCm@#q .H\SLѮ]e˖Icd$:uJ3gԠA6mhǎk߾}Zjjʞ-lz뻩e}Lv֗ƻwmiii8Vޥ`͚5+`4X,.0 OOOٳ+r%ؽgʷ{Ye,u7/}W|"e>s8ќ9s$IAAAvMrr֮], egg+22R.s Y, r @q<<>^;vTFtI$ɤ`uE^^^ڻwÕtGTvÆ SF4|p㏶?6oެ>HaaaRݵ~͝;W5jԐ$ 8PڵӨQԫW/eeei޼yX,V?PUVM;wVlllT\\t颪U:BN%_j߾}JNNӕ;M}ĉuQ%&&jر^ZnjذT~}6oެUaÆw2=$//OSUn]СCڿ??:b痸]LURE&If,]~Iw)]~]z///EEEQFڸqc6.\P||̙Z/p'$-^TmBBB?*FBc-Zpx͛kѢEܹsNVoօ w)22R/B]tQӦM5rHرCԻwo ?ApGp*{J蝢ԬYS>}J*y뭷4}tM6MgΜ\:uҘ1ct%+55|N8bі-[[3glfYu!IZp<:qvޭe˖쓙Y`nݺrwwV8T^^ C*++K裏mSF I#z%{n7NzgS侉2LTRڵ|||TjU=˗lsmڴIGV @͘؉.\ ooo5ot4o\\~5jP۶m&>}Z#GTVVVƏQFi…X,:|=k׮9vR̹8¶ح Ydκl}ol} VS0V h֬Ye\IMMbqvaxzzjϞ=$]+)=>>0aڷo:+?%uYYYߝ]Cf͚U}^tI}Տ?X`}zﯫW1naXÛ-Zu}޽{kڼy"##?Id2Էo_,M㖢+::Z?.]&Mwފ֭[G/إbc瞳PuAw;S:뱭DͪW>|kmڴIcǎ{Ͼ}>Ӷm۴|b%0`VX!,IrwwեK"#]\ZRtto߮ne͑cI#>>^ח!!!Z|_n[W8;wNݺu+0vK.3f^z%Vjj$ij׮F^z)++K͓boٲ&L.]ٳVڵ޽{WC )3ghĈѣ4~x5h@xb͟?_~|IMСC+##Cnnnӧ&NG*11QcǎUպuk[֭Çu%-]T...ZtΞ=ӧO+..N͛7/b ;vLZpԴibGuqqoի_$CݻwWTTRRRty͞=[mڴ)󌏏סCEVZW^K/i۶m^ڵG`h PPP&LPd_wQ5bh˖-JKKӱctBё|r=jܸ$O>SZZ--qrk[n]nsuuաCl222~5lذ?.IRJuԔđ>~=j޼>=V(#vU~~~z甕%I_L&On殮癔bwttMVYׯ׌34n8]p}ok++ڷoVZ"ו_{מ={4}tUZU… ok֭O()m=7+Z6ٳ%IU>L:e˖ wr5jP۶ml2m޼Yݻwȑ#ms ݬW\ў={ȿA5?閹֭[`~x@ӟp+'[vwS!Y/w {* */B_~] pGRSS}|<pԞ={ZI")WR{ލyv|uYv˲[wrg{%28t+11٥P&pP:qR(8Tf{1 0#ȘuJnn: #p p p p p p p p p p p ~S_$ڲe-[T'W ڶmã{L=zqiӦM]vڵ7n,ZzVZ%I2L 3<~XIIIڽ{fϞt[?ر$)''Gbbb_*//O||}}\M4ђ%KK/ԩS ŋ5m4[ԭ[7]x@aÆ=zt۷W׮]ըQ#լYSΝO?sʀڶm?P&IuAIRӦMꫯu֚:uFUgz''(""BE~~~z$bhܹV>:uJ<˗o߾JNNrJEFFZj_zK?"##mjƍ6aaaZjN:UdfY#G%ոqc͝;WVvv|}}﯌ yyyi2L1c,Y"___uE...ںu iu~gSO_,0*ȑ#ϯ֭ׯK}v-^XC رcmgee8լYS󕜜EiС-[iӦ%3+Ws=~Z;v(r=zG/,g?OIW^{-YD/+=Zobccխ[7-ZH?W={:5gΜbo)ӧ,X` o'S͚5l?$iҥX,ѣ\\\4tP}駺rJ)""B܊ܯ_~O 7Tv8NֺukIRtt|}};觟~Rվ}{}zmHR```VZU"^+t?,ۄʅU.^k׮I_3fhzUF }%+I֭ӹsR5kԡCʂ|}}%I7fM8Q/^ŋn?΋CC=$b\UNIRJJJۯ]+WmfY= K7ɓ3ff̘뵚4i^}UիWm>.(!!7n qr… Oڵ 5j(11ѶwJHHЮ]4uTF[|RSSKԬӧO?;s˶gJ*`-ZH P|||@EAdpO[nUnnƌZjɓ5eIS``ٳgS//Ν;c jǎճgO=裪Sڷo/b@Eu7nN0=㊎ҬY3=ZӸqJ|$UNN W^yE:tЛo\8qB111-W_5x`=C:uꔶo߮y9q (.//OÇWձcG 0@999:u>S}N~ bn*d~];ez300p[ZZZ)NiF&L!Wjܸqڼy- Sb8 0<==gϞVHʕcws+e]ݲݼo^IO$*'1 {uY={T@@ׯ|l2Gʅ@._9shΜ9.8YBBB/H֭m_jBBBM cPpPim޼Y:̚5%P&pEwtt6oެgyF 45yd{zk.M0A$Ţ7|S:tP*Ukv$UVz7… )I2L V.]好{*<<\IIIz6nܨ6mGљ3g^-czhҤI:}$iÆ 3fv)IjҤ-Z~v+W*66оfN:][n-@*'pr[lR&LP.]tYEGGv S޽!C뭷T~}[={*IY""";jĈڸqծ];5JzRVV͛'bۧUV4i~}Go^~e]tIWժUKu VZiذaի222ʤ_Nr[֭[ÇҥKZt\\\tR={VOV\\7o.IP?^gV6m$X,mٲEiii:v8 飉'ѣJLLرcUzunVO||:-ZHjRz?&&FGٳg{)??_۷kaM/}9rDIII:u @y l6qǏ$UR:wwwIRe24}tK\]]!I:qvޭmٲEWݾTn]СC322~5lذza;~IPd+$ )i>/G^*Iӧ.]t< 0@O>t颈ڵKÇW*Ud2d6gkׯyLkP䨬,eggۖowdL&L&Sz0"'+jN/S r~7+00P_}U޽[wҥKrJ̙3W-lrL&6mիWvM5k-[HcOÆ Nűobhɒ% _L&ծ][~~~$OOOuU>>>Zx eddJOOך5k4f5mT#G*++K4e 6LruuՎ;4x`n2L[ ߵk"""ᡟYWNN$iƌz .(66U7֘1c#hĈ2eFHegg+..NgΜ@ D¶ح Ydκl}ol} ܖVHMMbqvaxzzjϞ=$]+)=>>RX75J6l͛^ْ9&MkРAݶ(ݵkWM}4qD=zT;vW֭[ꉏסCEVZW^h_~ۧdM>]رCN/8";;[|B5SA;T`d.I_L&O|I<<<$I'Nݻ-[hٻ(B㟹pKވ-;yLhouLO7x;F%ʎpisѩ񂑙,@+$@ L"2\3p竾^k=y~wռ/I뮻:siw}}}fϞ=أ<3o9lɾ3k֬oޚcC=fS=+"G΋/YK`/إQK.MtIYh:766+_J>c_?7ҥKTVV*-YzuVZc6 }744lmvn6… .u͜9GΝf6l>}zFÇCM޽`455Lw}Olո6u=zh}ݷ嬣䵳w>k>|x.s9<?om-֬Y뮻.FSYY>}d}I+޽{k׮9蠃R__W^y%˗/~{w}N;f^~L:uƵWC9$;C򕯤6wqGw+555[|w$]vY޲㩬\뮻._}z衜uYO?ϳr|N>}hѢ\wuyӣGq5jTjkk3}Yzu/Ιg/<ՙ6mZN;MLjc6eӦM˙g]v%fʗGM4)7>}z8-:l軩̮^xe3sO\tE?~|~ֵۤe6~Eϕ,ަ皗U?WװaæmƏCƍn)o;z(M-^8:ua@1z3f I$IC5_ѼVinV[ؿo kq?Geppw738%p =nP8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p '༅]tE;hYN}}}~gΜ95jT^y;ҥK7g+g1MMM|7tS>|C趫Wβe<$SNM=^{l߿dҤI6lX}|:ujgn93w,Z(sɸqڄ `S3om6SWW/E̙3sAm晹{ry~w>?:_fMu]?~|>я⟧YΝSYY8o#W~}޽2!C{iY+d9rd,Y /nk[`A2pm?(S9Mkw_M~$Ɲ;wn͔)SҥKx6}9c2uԖuoCPvu򗿜}'~{.÷gZ|y&Ns=7_vqnj9rq U!7k3tu?6O&$ISSS^xL2%?яZbPmZ>}zFfsWc91O?t{\uUyl{ _B9p җ3flΝ;{G n88#r%2wygƍ~8IO!K/477+tM3fL{v.œzlZCC:?iӦeСܹsV^:uDƍ_?l^{eС_1N> #9SYY+"guVf̘g933f̘TVV;Mիlٲ,Y$3g%\A9ӧy֏6ԩS8∌3&2dzx̜93_*ӣG-Zn}3p,]tJ`oy睹Z_{[}޽{;->ʕ+ؘW_}u>7dȐ,[,sɴirGl箿TTTCiY7iҤ/l#r7fժU57.#G̸q׿5cǎ{N8!Ǐɓ0;Cgr[o]wݕѣGo8`[p:Xs7n\ӼͰa68۷oFǷSNi󨪪j#<2wuWd9CөSwy[&eN7Y8{aol6hР\p9cOgܸqӧOFN8!}駟޲Q2dȐy9@1ַo$ɜ9sڬ?s)YEeررcOg0aB>$ym/| {,ves=m-]4s' /Gc=v7fܹI.]Y׭[$<#[| ^oO>lt}7ISOmz\2^{mN8unU1ӭ[}-g^96zSΝ^{'XqeС-wz7k\RΝSYYJ<~[`ͷ>7m6~{SL81VڬI{!CSÒZ'ӫWtA ' fڴi/w]<68w iN|r!1bDPK_RKnآc^:_}N<ĖK'ܹs#Ȓ%KrO?z<4޽{o|[T쪫ʗ̟?c.7+i|L81{no9r%-^8GNcccF+"|punݺeРA3fL1GΒ%KxǏO| _hY?񏓼vv;岣wTVVs\}gɒ%1cFǽ1VVVf]wM޽7h_?cƌid ,ت}PAmV뛟+YnMe5/7?^~usaÆMYݎ:a . ݻwoKf-/^N:u0zʌ3$Y!ɚVύnlhjh^NZrS׭ɦ܅wyg>wq:th뗦AY߳gs};h[ͫ{'fJ]]]z8 CSQQI&m~8∼=YgO>o={loK|ӟΜ9s#$IRQQ5kl(o,\彗_~9wuWΝÇgРA={f]Nk,y套^Zg={;̟ (I7SeSsOxڂ r=~S544dmg=& Կ$ɬY6ٳsᇷl-}Tkx` $s=3gΜL<94hPsTWWg޼y:uj^}Ֆ};~Hp6Snݒ$uuuܮUUU444i5kV:w%Tӭ[|̡ͩg- 2$ӦMԩS7so<g3X"=zH^/w={l9g>mM81>fsyߟo9Iӧh3}<裛!lyekxIo|L:ukآW^ȿ˿SYYN:ٮa>tfСC3w,X`mvm :ejժ$is.T驧ʽޛN:e9C;*;c;찌1"YbE-Z􆎯˖-˫~c-glȠAr_g˗6#F5\e˖mq\2=zhY^lY{t=+W̚5k2k֬ 4(K.3<_g 466fҤI={v~{Y|y͛{7-ʈ#һwq| :4;Cn<}sg<YfM>{7D*:h_j}se;˭lGկn~5lذ).{]vȰ7Ommmwy饗r5dҥ[ŋיxz3f I$IC5_ѼVinV[ko漿́-_<^{m^x9;zH-_<\sM~,^  |\uU= M8p 'Nie͚5=m=8\ z֬YP8g-uuu"XfM:z@uG4 YxqjjjҵkTWmk͚5Yr3oMNG}}_"mNSSSG`}!tmIDx3y;2455Q4}#།4:*xMSSKn'(KPUV9^WQQիWw0:2֦ׯ_̟?Q$ JϞ=;zż_yʎ&N(P5qSĽ9|MSSS/:s1I &7\Ν}-GuTviM̢E2iҤ?ΫGء-wsg\tE=9s$=PΝ=PSS=#IO~6cƌɳ>ѣG-3V8v)_ؘ1clmv +o 8o3t***RYYu[SSK.$555IK.$'x$ތw38#G}tt$YjU&N+"˗/osvaYbEƎuSN9%L̘1#7|x:ꨣ$'tRog;6';*l+lg{^$駟s9'{g{s9'w9v}~=$ś:{W]t>x1bDsI~6}OӼKI&[SS>z}ڵkux,Ye_ptL2;7%Tٳgecjjjps1{,v[N9t=^ziN:\yYtin\xҥK?92^zi)rJ;ӧgYlY{zyޗ$illߞŋ7r)Reee^{* .LSSg|nI&%IެXeM?OϮw2-1mTVt͚5I;Ip9Z+++볟lM v{֦>r&)`1hlllܰpyo9`MM;vuJD,YfQGNYbEdΜ9s{^~䪫ʫ1.]kYWWWڼyjժt%W^yz[re|6ݻͺ]v%˖-kg9uY駟>{CWQQƍ˦9qJ 8bzzPWUU*6է>6K,ܹs3v}ݛMuSN,]4C͈#Zޟ4iR&M/K/_WI?|/~1soL816~\ͺ~8{Wvi,Z(I2x̜9s6lX9~O7?p={Vsݬ/­:^UUU4[kZWKMx^Iիv=3` 0 zhN9oԽ{t%:uAKy晼K-gekvܹ7o^:TUU"}n^W\PcG?:yfv)_]v%_W3a„z뭩$/w;&LȠAؘ:+;s&Ln!#G|~˗gĈ馛jժ+W̍7ޘO>yswyYlY~/Ϙ1cr}mxݻw_gg>|3Yg}=1.oҿM{$y:uJ]]ݯ?NЙ6j{7-ٚ}Wzzڏv+TzTz>xI |̀6Gzׯ_ϟٟkT<\6-Ny{߻횚2gΜ,]tKm[=r}g?Y~l^{I嵈Y89pK)iM`󏳉*KV˗]b͚5ihhڱV\VâEZ`ۺ+ؘ>:}٤1WNoO2e%N^mS;?ɷ)Cvs-͉sV͖~]Us<8yMR8*U8^u>@__ Ɋ[›3\R3 Sy[\xyN9qTkCRl 6& 9oʕaèaTvmބB8O-LM>fTkOED&Q@l[i++xZRyI[L%i,Go.ع:SpZk&Anm 5i)zU62&b Z^RV,U#hM@\<{Û[DeY!NDunʦug eZSs$&bw[֤ƭJ 3nk=o]92 FWԎ xjk}qnj}zڐ78{CǗ go!N߳46`5M޶%iYs#_ Ugmɉ7;$i5եnD|>p8m[/UuZ[yS$i68G ޢ5N~RѾPl}!NO/YXgMR;5?,aĨ'?6"Qo6ek%hx1WpFgOӫYrݏ-Ә5x8\{}~vs$*7>)ϝSVU^sO3{HqF`DprS7'f a`6g$3?S1Y@ݨe&[a(x+ZC á]fvu;g> ݙʭ Aŕ2Lep<%=f|&8یAɌϴB탛ɁǓ {Lh{Cw{dp-x=:ɽ=x&) 0~=` lJu|'8C01o B8_pݝ,IENDB`extension-manager-0.5.0/po/screenshots/_26.png000066400000000000000000001354501457631363100212330ustar00rootroot00000000000000PNG  IHDRpA%bKGDIDATxw\u?Y`*nq\ȕiML:ȽDʙjmO+sŁ2~98y\}. y; (xO% DDDDDDDd; {`"?"""""""`By,'""""""'6)oFy{DDDDDDDeY tCQ#QyWÜnFDDDDDDDƕ eQ0b|b&4CY_DDDDDDDbQ]8HزvODDDDDDDia۰.{ )lQ$"""""""v[cz†>Y݄8bVIҼ6V E[4]!(I mXXX#u#Y!""""""Ƹ4)n#GNI›-l2ٖra^B%pGDDDDDDD%WTXcj9!OI 1 o, `lڈ~ ቩ0Pq(ub ;pa-k3$ݥ, rG4!K41ulI'""""""" X2e,ȱfKk71""""""XsZX]#VMM9U[""""""dfjSuL#M n,iS>DDDDDDDdsZʦ 3e"CaI [;Ga፩নuj9c*1ԘnaucFjb9%-xz _, r4&>E,:0L]XxcNpSx9lCDDDDDDd;-#9 q,JU.)NxSTpc*ıDDDDDDD啥S|k,$![@X3),1`pcuNaS1!""""""*¦ 7^ r qG!ƽ1Hg,5rqrADDDDDDD%˭d/Bxf2"VsK0~N"""""""[ܘ$m+187- oF.v îP t q̙ʰsj#/͋Yf,1MZ`?]XSXcl01|H,#)ۮ[#ag`gsYg :),Ynh jJ*}׾X'y e u}'7 |L=”ݣ n3pL7roׯ/WW!e2T*e"""""""h4Z{133_ /х7 qaNTxcFinRLn;s_~[OOϙUJ%T*j5ZQ{I2 r >OLL< tR㟖:ƺ^O(zqC֙R*chtMu261mtqd4k3999ɱm9::{Ν;7 y!ax[.8q@L80ޘR pdq p, o c88__%++ JҢ7DDDDDDDDVRZϯ012el<݂M "*آ S۔y87klkLh4LNDDDDDDDjT*RǧJrr 8Zu`ŶR*aSW6U딮ՍCzNbxCDDDDDD$bjJII] :\^56 7`S(c p򚙓Z \lIQTυ.HT D4cH@Z瑈ZFNNf84o8acIcK Zn+8Ta-p C])Ez{xx ʲ12 ^^^prrgLJppp#J%g#zA*͍ D"@*BP@P@R35Z gg)))7QE1ΈNi|c55vcӋ u܆p<muc\.e+dL&eRxy Mz#`d{q<o ㌍]:c2F*ʖuggg otr9.Hp ol2 BADT"* O6`乨uvA%\2c8L&ypI͞k'K "";Ddj5d2eڰ OPܩEꈡcšB/JR).[sD"qHlEOP@.h4T*(JXc"!V iɍ~Gހƀ鬠-]_jlܒ䪨} [?]DDM6B m۶"L&;|||ꪟ\CG7!+|||na t`*+0 zt]vYxݘ7R)el7t^vأ#FC૯QeDdB ٢E ,\fBnnnλqFԩSG:==ׯ_GLLZնm[̟?7oFLLMAD|rԫWժUCΝM Ν _J"*)]xM6x*Vnݺaȑ8p $ """J>]CK٪aA =V\N:1!*E-Z>+Q 4 ^}U4k 6Ę1cpƍT..nnnR.l,>>;v`Æ pvvO3j(ܺuK2uY\v +Wĉ'.b͛7ׇ7!!!x~۝;wqF:u 6lpСrݝJ&urrBVV5Z 8eI||| _xSDMj""<<HII)5"##DK_[oUf]zq r/}VžiZԮ]_~%~7DFFg$ٕ6mڔ/1tEDGG#44|A8bѱ_#-- @ٳgiӦ&Я;wVVU5`]"dcnbˮX1vX3Ƭ}׭[۸""*KRRRJXBٳxMl0zh .\իq}xyyaĈx7PB+} |'hݺ5$KІ  &… &wޘ8qb?hI$yHIIٳKt>"/ ˖-Kؾ}ծ9b >ܬ}ҝe˖ضmv܉k"55jge^{ pB;x BCC믗FYP( ~MXd >S@DDj׮۷o(I`N#Xdӈ)/$"ZjC͛޽{#>>qqqhٲ%>3HR7Ľ{p d2|:tfBnݐ/QFyqe˖HMM:%1j(tYYY>}:P3M5E5}[n!ݻ7͛7Ө]6ZjSN>D]v[ ^J|hժ6mڄi>Dhh(T*zɓ'돉EHH^uDGG# +Wƾ}_{2d4 >sv *G_ 99YcРAG h4Xbկyf0Gl!www]v1bUd CŊqUXQi Rim@?~)S 225k<|~i!YQ綂-g[k1v}кu됓ّ#G JѱcGܻw[lT^кuk}K5B߾}ѠAxyyA"PF 3gRte|2ׯl@^cUVAP`ڴigZ¤I_|>7]xSreT\>}:= Jڵk o-Z&ul޼999 yiXCZu2Y۟][nظqwߟ R[2ɚقhB8vTKFKtFGG!=Xz5ƍs8|>l9u;&99X|9ݻKƍd2(rPXԫW͚5C˖-eBza4i0gd2lݺ7\Dd*V/*Uү{W၇n oooOűm6Ї8ddd ::|dM۷oG׮]1rH:u@M4App0Zm(ELk4B[`Ũ^~̛Ubɒ%Ǔ'O =7HEGGG/$"'111Dpp0;7n@ѠaÆHKK{LF~ gϞD&_ZT*1cƠM6h֬=jTӦMQfM|pww 9M6N=7>ĤI I7@giضmZmA gesa8p 6l؀hOx^ytpttDjj*nݺ%tɂRTmgÛpҥKQjU|Mc#b~DD%dʍ72Sՙ3gFî]o> WƑ#GWWW,XPn|\~/^Dƍ~z\~oKMNNFbb"yr"I&aٲeUA.]j.D$N+VĊ++%''D1xnL*iY%22 @hhK!Vœ'Oネ7bѥ6(B:uڵk9sMxx8>s}M{S~kv;III/ Ы op+"*=iiixѦMw̚5j׋%K0l0:tVÇѹsg <w˗!HpE|x;ԩS_QNΝI&yJXd ƍucccQ~}dddkTL<j5k?L#fmx#V׮]ʕ+q !*Z88 *ֱ~mѣOdt^K.c/8F嬮UV_DDD]ٙkע~G8qUÛ6mg蘫m۶ H~zƍ )$b pI(zldddN8 YbYcоx.` |m? l3&!P-pJ 믡jѹsgàȑ#6Ў R0gΜ|!NY o믿 \ ٣/ӧOR̙3y)Ǝo_b6deeY=)j ػPETADz5J͛7?60đe*h۶-rss ]١D >\2HĞ憸8[&""" :T2 TZx8DvvE,7:'OD.\ʂF)vK """""""Xvv6J%\\\';;YYYm`CDdZ-$X%"bJʂ# r9ҼI5 T*J%rrrܔrLRA.T*% N@& ]FSNDDŠVq6)"=7ډ,cCDDDDN9slɢRs %j5g#"c pʹt qT*Ӆ.H4233Qj5233.J>@!Qx)$1qT*F 8::R5 rss򆈨 u*uϟ?g8Bdrrrᜈ c*""""""""cCDDDDDDD$r pD1!"""""""r9 Uff&222j.PP(BADDDD$ JR2Q.ggg0!"ͅ\^.TD"A2Q.H$H(Oy\\nT8D$zWDDDDD92)DDDDDDD

$%%?qazjj WH%Y=zGO.Ǯ899!<<\߅аa0o<_2t qqq|2Ν&MQVݻqxxx{dmۢk׮PXnn߾-tIDDeƮ]0vXܹϟǾ}oF?=z@BB͛?F>) L:pi|gpqqodCܽ{W gXccʔ)77|ÇD"App0n݊ӧZ-Z-$ j5ƌ쌍7_?y/LYb&OL2pttɓ'~d2ԨQjZRnшA7`СxQq]deerTR5kքT*իju'ҵZ*d2YV}-sƜz*իݛ={믿oooTP܎HT(|?wrrr#`Ey!Mvv6_Z2 pF/+VĔ)S //=z46n܈C Yrh4x *TUt>,E)-- K.Ŕ)SPJ˗ub'"D?5~楧nnn>;dzz:_~xK J!Jhlz-Kw(ɿ v؁Caոw꫒HDv[lA:ucԪU _`aΆ @0)v~xԩB#Zؼy3|}}MAC APPPi)8,!:u2Ozz:~G>cʳ ,_nµkװfT*""M6nݺ|2'O@&JLL4:8oaxb&)dw"33o7oބVE-,8Rƍ%K )) Q9oCU(B 6`ժUY"##,]TrDXxgϢO>F ﯊})2EP*hӦ ڷoo[VVN>E}[.q a4,\% "*233qy|x .]a5k֠W^ CQzuL8M6EttINNF-PJ8;;ӧODJ 6`ʔ) L&CJcfffbX`4i___7 k Çpwww} 4ȷ}#aÆHHHзy~eʕXre-v< 6/5PqybRxl2T*޽#FXn~?tɓ'OuVcȐ!W;[naڴiU @ **J~MV###Q~0gSԩV>|MCgZ*F.]`߾}ZEhҤ M&M =={%KXt)ڴi+W/ """"#a/ \8p nݺaӦMd0`8Aԯ_?ȑ#>|8$ErwwGjjuzpIdffBڵk5|>>>˗ѧO;3g΄/}DEEaŮHlTpvvfxCDJ.٬TUT͛7-n޽>طoGϞ=ͮ%66?#RSSѺukL>ϟ?o9tj֬;bԨQuOСCjvȐ!sϟ_w#z聐$&&"11:uX10$t DT999O0`݋SNoo[OO|׬Y; lƎ߶g  4k׮źu\G1|9sƬٳFUT rIIIuW\aCDDDDel}CDB0gυ о}{tm۶Ŗ-[0mڴ|Kt vZ`-[*zxw̪M_}N>5kۦVcǎaСѾ}{<{̢bJUIDDDD$ȎaϞ=4i;oޢ>>شiի N:'NDv B####_|R Ν:uQF:u* ''ȑ#!Pzut޽x7HgNdgg#445j@ff&9([RB ܾ} .Ν;:^&C]v?xoΝ;0aԩ\r4)))>|Xzz:ݫ߾h",]N­[~"""""Q+%;g׆H ӽ=d//uϞm۶KOO??"&"G]S(Rƶjժ{+V""""C8sL4j*g͋eCkнk+Zkl:K[]Ti4h4w$"""""=vЊ+аaC@||<&N(pEDDƍXre8҅7ШQ#Ç =K.E{ƌFg_pBlܸ?3oXz5ߏCY=#8"o>lڴ):Jڌ3DDDDDDDd?X(>>^毿ү79JYr """""""/ p,$7EuFv舓'Obx9E>|8W8q>DTv 6 zB~.T3AAA>|ХY  -[ 7\pSL ɁV[ dƍ/>r㣏>ªU憹sb8~8*TGGGNDԸqcڵ pejODDDDd p, oI&ek b .}|L .z u#55ٳgcժUPr9N>gϞٳgfCDdobcc+tDDDDDVGdvڅuY|\@@R)̙_'uΟ?78x Ξ=kt4iӦMC&M={`ɒ%ooo,]mڴ+W[tnL08u̙G@TT[1f8z\9yիWQn]4n  oW(3gtggg$%%aٸtwU ^ 3̙]B*Ø;wiQ/L0}t6l QFARk׮ A`` rssq,\YYYf]=== $&&~C-]芺@^+Ӵ4JXx~C*ZÇ&b%DDDTH.\|Er.] }ؚEMXX aÆaի@`ԩ3gJ%Νyټ."ӧƎ+̙3QQQ8pE;v,~mo߾ϟ?ǧ~pr3ܼy۷/ 00 ,@˖-T*6p@!88ݺuæM :@DFF}ǏGVGah޼9&L`RR%̜9È#0dԩS͚5m޼z‡~@L<u3~a4hPssGEǎڵkf""""ФI."++ [Mwy??6l؀ *ǥX)א!Cp̟?_N׽=z@HHN:jժf[&!$$F?>Ξ= ???cӧq᭷¨Q;w`…/DT6ξT*->ƒLnWDʕ+[ܽk4|%~… h߾=:t耶mb˖-6mcQ W`XlǞ)֭Cll,LӦM˷oa7j8}1 YhQ?|Ϝ9?PZbǎرcK޿g϶ND$$t$_?RoMQZ5}=deeEؿ}d2.]m۶AT"223d|99Ұgٳh߾YNff&RSSQn]XfuEzzE- ?LC*UvZԩcݻRzk]vָDDDD$blϝ;_zc"*[TRsE:uШQ#L:@^`ȑd^:wnj56n܈3fsΨVڷoիW=z4b Z 7n\ܻwj!>Qݻ# 6D-u*ʎ;0n84oM6'|;w}|I77?#&OzCxۭqɴZs*"""*1Pxx%Q9Ç c޽-ҥKq)ܺu ǫj׮] L9sww_>ƍaÆz:u*mۆǏMIOOǿo̜9+V7xa7Gvv6BCCQF dffȑ#o?|0j֬ w!99+W!HpX뗄Zĉ1{lL2GLL j#""]vдiS*nH ʞ;ȗym=K6Gjp!{,{l۶m&~~~EMDdz) E)WCeAxx8*V)S]JWX 8DDD3gH2xּX<kˆd؅ h֬ڵk4j{Ɓ.:!""]̜9UTÇǏ ]g"""*?qqq4_D]_411R.!!""""01-t DTYgϘ1c}v6lva<111V4}7裏J|S… HJJBRRjժUyL_*}lcx9 QPTxesejȑ#ѳgO۷Tk7i믿J'1t2U$""IE`CD6R.t/Ell5d2|ᇈ,k.Tj<}Ϟ=Dd* Ϟ=ӧOnҡC>|;v? ..111&ӧcx{{#** ؽ{7VowyGETe˖aΜ96mΜ9gb{tR8ooo|GLL bbb0f^z]_VĄϟ[o*U1k,1C ֭[ѬY3 oA!-- 0sLGڵW\s!b̘1 2YG=wߡcǎpssCJ^er 6 3f+W0|̛7ƍ3Xs߿)E_*;}8DDv۸|2Ο????߸zKʨQзo_ 4?8::G Abb"ѩSby1/_HMMŝ;wJ k[.FeǏo X5/9"?BEDd'rrr/;99iРÑ_*U\$xb3ȑ#cǎbt|R+WfyFYC)1@DDDI$rnn.ooo;} $)b]ٳg:UTAǎ=V/:CRZj "" v/̚5 ƍC߇JB@@~jժ R?MƱcp֭bN:ڵkCVݻ gR J KDDDDe"2ĉطo/^ L8p#GL&Cѽ{wAjꫯyֻ_~.~muɓq!dffѡC8;;{.]B~ﯟKLl/DDDDZhSNa{\8co6*$ iA*pxKfJy)Q;ZKߴR7NfifV(9j^*M%lYk<<<3]_3&ڸq>ѣGI Vx_/jʕ+5p@YF/_;cљ3guV͙3O'Lڶm"##m_<"P}9H[P]um*`];u1_];_ݶerLliiiX,F3ڼyMFê!TڹsHʱ[^ε[eWv~ݶ'Z,y}qyyyiŊ= J0 1( ={+Pp7v"M@e"`xP8d?O>#@E#FЗ_~|KLL<<<=D7hժUMLLBBBn+::{>ݼyb1AvuKYǁ 5h:EEEUjj*]\\Tf|ĨW^e>Ǎ`ի+֭[+tVx((!x%+T(I Ҟ={lR-iӦ|mRRR~z͝;W:-[퇄I&N 1z5}J?-[e˖J?/ਠק>xǁ<==%IK,ԦMԢEBkȐ!>Yf/~O|jzluӂ o>YF~{k׮2LKծ^zZbۧhh <ض߳gOmܸѶ裏^*Po^p u%^8u޽1 -[hܸqZv%)((H!!!ҥoyGiZ|Znm/զM=ܣ;vG۶mzjm۶MQQQjڴi<<<'А!CTF [}XXׯ'|R ,3|X~~~ۜVJd=///yapp6oެL}O~wʕ+:y$… Flf͚oop'N(//O~~~j\233}O'''{_Ju:OԸqcZhVZ_$]|Y}(٬M/y.\%K\W^NG/.5TnԲeK_҆ !Iڷo:tZj6zijӧ.|8U$Iкu{WzliQFUVιg=jԨ6l'|c{G5jf6o\g^P˖-?0_I;v(""6Ypy۷~W%$$+WjZf._wyV3gh֭3gu(߸q>ѣGI ;n„ ?m۶)22V^(O|} \9p(%%E}]8bdRƍ7e=Zr폣X~yZJ 1bD9sz-*%%Eqqq׽O?)""Bnnnڵk^|E7:XZ/C]{וf 0̓KEIOO{.]<{-p?#n뷠z'rT1&v}bvm]l/S[hhv…5k ~/+++P1dX= 5jH{ּyM bs;wwwܹ_yIW$حsn-yvu_v+v?n^OBxǁΝ+I g$''kݺu}:q b={T{7T_8|s4Tf͚YfJHHP J97mرEO6'wS 8H:uɓ'Zrbcc=,U@xxTi8=s(%>#`p8Qק@F`pL` p&СCmܸQVҦMԷo_m߾]rvk:3٬QFiJLLܹsib?{*66V>>>ZjiڵkvޭSVZh7N}vޭe˖@!DF$jѢ|}}%IC ?Ow޺p"""ly+88X=-Z$l>|z!^P֭5bĈ|c ĉզMeggkСs@5W&qq}(<<\v$͚5KǏ/B$mذAzKE!˗%IYYYʲm׬YSv\]]lٲ5nX)))}jڵڱc6mڤQzСCvRݺuK[}FF+zoD7='''#<ӧOx޽{վ}{uAZtƎ"˳mzn9p HJJŋyW_}U˗/W%4͹sԲeK۱-[Tzz+rJ'p r>C曺|<͛O>zW$5qzzݫug}fcժUzo)77WbccuI@788PE̝;WfYǏN<7/]CYfЗ_~ ###ŋI_~fΜKp~ w+Mckgݷ.kֵ{@@v^ p3HKKbq0Tž!zڹsHʱ[^ε[eWv~ݶJS_j́`p8G`@>9;zY, 6LjРAkJMMuQ :TAAAׅ7㣨(yxx\\\(oo_fr;?(q@IRPPc+PTTZhM6kkܹή񅄄I&;vl8\WT%8)IZdI+//O|A c)ihPU@֭K|/^ݻf 6L=\]]m6[bQhhڵk'///:uJ~>3I="Iԩbcc5}"P3#޽[)Jhhڴi#G?Tpp.;;[Ǐ׫K.K.0aۧGjɒ%ruu`E(Pp(WԡC$IӦMS>}lǬX¶h"KZ*2)K@EPP9p(ooofυS^==-ܢVZE[6a rqqddRnnuZt+͟?_NҬY,m7#5m@uBSE?~\yyyӏ?x]nsvv.u1,D8p-**##C֭SXX”~Ϝ9ڵk멧W_}~X-[Կo1OV>}ԨQ#;wDme䐆Pp(%%E}]8)ShъTvvuqIѣGkСzW?hǎگ_^ro'phܹ@yzzMrr֭[ !DPh<q,!LA] O >$nǸY~/7? nr% &n?CrnK/JTFH@XS8B\p•GDӺysvZZ, 2M>$ )?/YM$CU yYJz%! F 8 h8G`p8G`p8G`p8G`p8G`p8G`pΎ@ufX4l0A߯Ç+55AF84tP]Hထ(ZjG>>>U  $iϞ=rEEEEڴiS6)))Z~ΝJ/qssȑ#ս{wըQCteWFFG*!q OOOIҒ%KJ&88Xyyy*hdEE7|#'''kN}}ݧA(78кuŋ{8111Z~v-Z~Sxx'I2L R=ݻw+<<\III7t=@U7rHhBFҷ~k+oe{ ɓ8JU sdv-OgϞzԻwoݻWS:u$IC QN4f=eX*lͮVZ޽7V~գGլY#PTq~٣d͘1Ciiiڵ\\\4`:|N8qƩvj׮ wܡ5jo)-[f͚;*qd2j$77W{QӦMոqc9;;Lݻ?:"{S%@uBS\rE.]R5d2d6gee`|G˗վ}Bi׮.]~J#XjJ?|(L&jJGa7LǫgϞ ]vٳt%@UW޽{OM6mRvv֮]0:uBBB }ݧ3gjڵp5k,@UB@)))R$%'';vhȑԞ={lIҔ)S4rHEDDY;vаaJ4PeddhРA UϞ=իW/IҥKb }p(T%5fqTdWn] ط?dκo]WWk饸2]pa?&&F+WT\\\x_4Y,rkΝK")n{u;nɳ[ۗ]ٵyv{ܟ ;w$)00P%ju)**".]knPp(;;[tP* *(<`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`pΎ@ufX4l0A߯Ç+55AF84tP]Hထ#  $iϞ=rEEEEڴiS6)))Z~ΝJ/p $-YTm>FZn]c}}}xbu޽_/7o}W$O>Q=ԪU+=Z;v$_O><<|X/^,Er~ w+Mckgݷ.kֵ{@@TBCC\ .ԬYyD&--M ];wt^I9vܫ۹vKbݗݾʮϳ۶WPYiK'phܹ@yzzMrr֭[0Vdd"##=``Lb `p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8Gj֬YlYll^z!<<\-~at+ҪU\nkŊrrr*Vbbr;'T&ƍh+kذ6lhOLL_|a護*l˖-+o`rJm6ZÊT>wuڶm[`\Pٜ=H&LP l 6T\\$W^:u$K'NTΝ2Λ|!T,矎F̚5<{o6_y&M .9XÛ֭[z>)kڲe"##umIL&8}ꤿ^)zNK.=ܣ+66V۶m{ァzzaXKڱcԭ[7[AAA Q.]7x2빭Dj׮XKF͛7kܸqruu9p@}Gھ}/_^8֊+d6%IڰazQ=,u5FW|||}e$մiS+ue[Yih8t)+7e=z(,,LO?+--M4duIcƌѳ>,͟?_־M68qz術'O*&&F 6Thh/ooo >1l?~\xM0A͚5$-YD ,ƍh]~fM:U%I6m_~ֈ#*:5i$j޽:ujkY,ժU+b l-Z$gggO4tP>|XÒ\wac["""]W_զM {I~ݏL[c:hW-\0߼7N:Uhx ٷl֠A;JNNֆ ) 0@>'Nhܸq]ڵkg>uY-]TNNNZtN>^E}XBGщ'h"%%%UVE$Jү^uծ]['IrssS޽T>}ZgV*:ׯ_(55U/V ԤIB駟-:uW`;hȐ!j۶5qB*u6F///Y,mݺU:rWJ{,X|e˖(>>^ם~kPǁ*mƍX233w^q/HjԨ┤zGnկ__j*9 S~{)uMYYYMd2iƌ{,77JΤ$effycbb4}Bwڥ 6h̙?~RRR =,m?})!!AںuV^ve=v?.\+Vh*ǁBBB$pe{RPԩ#鯹E\F2L2͵gee'jҥꫯ4|:u\&-i?5k~)22Rl0@gϞ᱔f<׺ĉ2LtRǕcGO?QF]צGLL֭[m޼~kPQxs]Ǖ/2Ljժ9RGr}/(tgsǂJoRR|M=Wedd( l)o͚5SPP"""4vX[ge4~x}=jڵz]17"13gH$Nnݔd۷Y-yf;V͚5ꪌ ]Vaaajժׯ1c(55U}c *s3gΨvzꩧT^==cLN>-???5jKAej튊ĉu+''G C=$ɤ u{]$... D&Nh}Gڷo^}U[k^z)///լYS233uܹ뎭cTT^z%;voStt6mj+k׮-Z$www[O#IRxxt6mH*uשSG;vԲe˴e[G-t=?^;w,$umvE77QumPN균z'rT1&v}bvm]l/4:>}駊wPV];wt^I9vܫ۹vKbݗݾʮϳ۶Wm.9xU7o'N8z( T9/~W޽C\J1ͺ5x|fƬR\_'p p p p p p p p p p p ԫWOS۶mմiSIұcǴuV-[Liii!pر&L 77|w}n=?~6o\;uꤞ={e˖rssիWkժU$ɤ o^͛7WRR4{ledd W׮]%I999O?Tzw|{~ZGUxxΜ9ӧ}GԫW/9s&_;رcwY={T-Tn]:uJ}͛oT8бcGM:U&I_bbb~IRVsϩ]v6mƌSg„ z4gEDDbG.\$Y,͛7OjҜ9stQy2d/_*99ʕ+Zj^{5jT\\:vM6ڄjժU:zh4=zuA͵-[j޼y:x𠲳-???effp q0M0A&I3gTttգG999i۶m9r &h׮]:w\}?zSO{*СCgy˗%I'N%Kh7n,?ujРAZ`xb1B|rrrԦMjժ`fʕ֭~aر飻K}UVVɓ'܌y믿Vtt|IYFcǎ믿8K/7|ڵk_~%{Ȑ!;wn 0@ .7VYYY3gu릺u~׮][*IZt,#'''1B~Ο?_X7xC...7h ͙3'_x@UG`ڵ$[o;uY;wƍێbY4i?Svmyzzov풓mB4h@gΜŋ%I/_̙35d=S>b+I}N:֭[oU(QT8-I:pyf:sΜ97|u^o~ov999FIRSS xΟ?/OOfn >\K.W_~SXXfΜbk5i$=sjҤuuzm\VVbbm?~|͂*ߔI :aÆֻN::qℭJLLO?iӦ)66d˗+--_:v>c՝f͚U0[l222Ԯ];k͚5ݻ&OpCk׮UHHڶm .hٲe%?ց'o߾jѢ6m{6rtt.\>HfϞ-www-X"/P?vء'|2_y\\vء?X]wݥFs+[ܬ=.--MǏ״iorjرj۶rss5~b?mgQ.]+ʕ+_+ג{9 2DÆ ߮Gm6_YnnF޽{k׮|^{MM6Uկ_?y{{kĈu*""Bqqqڵ^}UmڴvȐ!ԩƌg}VYYY?,M4IڻwNZ^^^zշo_={V ,P͚5Ku *9R>233˥_MɩL>3}ZgV$X,mݺU:r'  w}W։'4n8ծ][ڵg:pRSSxb5h@M4)t:|N77W<=z(""B?F5jd2l6+77&++K/_.֠m/I...2L2L 8XasVz`df\ PK+5P!\Rr "8l3Cg ;8|<=s>/ƣy9|~_K_Rzꩌ7.IisDEEnO\}yW/?q9$I^ҩSL81uuuyc%y"'|r婧ܹs޽{:蠖L0!3g̫k6m]vy5~u~-_ wccc~gޘcc=f]/~\y9rd^~z?\Nk}:Nܷ_paOμyVy1vZ>樣W\|0_ӥKTVV*-YlY.]c65}744m7vknܹs.U8͘1GΝW /d2d6mZFCN^ϦMd̞{~zƵѣG-7fm1֦fuVO߾}3t\q9sV#FSYYv!{GgϞ+]vkYxq~s͞{m67ꫯfʔ)5ui:([ouN;c_=cΚ$3tЖWOeee.\c嬳ZlY>m?ϒ%Ko}+;C͛믿>?xz;,#FHmmm̙>;˖-K\r%93sW:SN͗u:MjmeSN͙g>?p/=j„ G>76mZm1VgMMeeevqǼK-ۯ<3f&7pC/رcswXεa6zEϕ,ަUo>Wss!CL[Cƌo9zkG6SN= (FϞ=3}AI$iHs?7z4z4/rZ[yϭ_7~&J7rj_o,nٛ[v"3wO<8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p;_I&e[N;-_|qmg̘g?Y?aUsYgCjkk۬y3}3m]nԩSsnz칉?ܹsf̘޽{oc[466SNI̘1^gs9g|5jTu Iɓ'3Heee[^?CӣG|Cǖx`?yfΜ#F^K^g…Y`KeN!Դ{7̇>nlٲ,Zͣ>I2eʔ#kپo߾Ʉ 2dȐ6:3eʔirg֬Y7o^fΜ1cƴ AꙁS7w+ȷs1Ylgܹygr'H 4(w_\pmf|M7ݔt%y{2wu:֘1cr=N߾}3k֬\tEsG~w|\p?~7f}_nݺeҤI9DflnȰaָ]NRSSQUUɓs,ΤIk׮s=${ҵk<#yGSOkɰaw{<`\p9ꨣse̘1a2bĈxݻw8㌖GA3 '2s \wukZۻꮍ6sI'ew^6{l&Oя~)SHEEEt/SLɲe2eʔӨ<<ihhȲe2lذ 'n-_|q>qv[x̛7/GNEEEF{.sɸq~%yw\.'ӬsΩ\YNadٲe>;ݻwߠ}4F5hРL8ekGy$Çς xↆ|A=ijjIp 9.]駟nڽޛ:*SLiY{f>ew;/~c=r]w%I. :t?ŋ3~{k6d?(S 9+"^ec=ͺiӦ!O>d^vo}3ls$7YdI|_ٳSYYw1/F}K.$g}vF˗gܸqyg7jPo{WZ\rm*[yQs?7?2dPSN= (FϞ=3}AI$iHs?7z4z4/rZ[yϭm&* 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@Uw?[ou? <8}I̙3''N̍7ޘw 矟6wmn92rOZ}^|?$ijjK/ɓ'G?QK jMkӦM۬8p`9眳c566˓O>:O=TvuwqijjZ帻[n| _{RΝs#ܹs7q`mvaKSYY;cƌ?$s=sI'堃e]o|qn5*UUUu]o}+]tQN?Uia}}ԩS3xt9˖-kX:uJ߾}O~2cƌ}v?ycr)kk#Nfmr秲2W^ye:L>=ϴirgfԨQ矟w]e˖eѢEY`Af̘K/4 h3ӧy֏6ԩS;찌5*4hj5̘1#rW[VzѲݼy 5;s,\p^J`}ݹ[_wukZ{޽{? >ޒ%Kؘ˗ Ee̙:uj;uz 7ܐtA-&L>}doarM7eҥ53&ÇϘ1cr}e}s'fر4iR~f뭷nyOUUU8~{2rȍl Nkcƌiqk4o3dȐ>NEEEz#FdرmNԩSjjj<ڼ=ܓ$4iR>ti]lYz꩖2'I}}}ƌfN^r!䦛njw?2ƕ 0 \pA:$'qƥ}mOd޼y=zt***2zr'?.l>ln.bڻS̘1#Iҿ~?Leeen466͘1cr嗯vtP2s_O?~:>'Nln…SN9%]tQ<s1Ƹ6fJtҥͺnݺ%y#UUUo63p:Xcn{&IyuCCC-[%Kˉ'ʭDu{キeK~r!4Ν;_~yWym̘1رc$w\˺.8Oq^;}9䐖ӎ?)wRYY}sy'V; dkXYYw1zZ/\rI|5%=O*:h^j}se;˭lG՛osȐ!Wwr! .H}}…9rd˭-өSgϞ>}$ 4$Y͟[=Z=j9֭?d__oBU;Gyd? <8}ISSSy΍7޸Q3o/ Z~ӟ?iG(kN(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'Pt5վ"`ZbE,Y 6N*[mpl6޽{v횺444t9j% VV[mVjjj-U]]P8]v-{pZ1F(P8p.铁O>֭[/^9s3<! PYYO~0`@[mU{޹swF S89,_<'N?3O"&LXvay޷뮻r1䩧C=$g>3go[*YbŦ@ԧOxsfܹ-꫹{2k֬ :4 #<^S=yڬk3{+}*S%s|ĉě֞}L8몡!˖-khQ;8o߾I~x=#9C[V>e}7O뮙9sf&M 0 k3{L2%˗/o_|H^r]wDPg=u-IRWW_]WUUKCCC~8;w^֭[nTVV3iҤm Sfʔ)k\[OYOzz葞={W_]v[mUc={f /X;wv-rK$ӦM>6gڴiy'{[CYOg{}'sjw}$sY?裙2e EϞ=SQQnSYYN:ٮa<tg3k֬<쳫lN;e-wK&I8ۏPgy&:uꔡC6ll69C2lذTWW_ϼyUVE|-iTTTd9Cs衇ŋS[[aÆk͢E68,Y=z,/Z({w%KdŊy3`,\0?|jkkSSS_~y< ؘ &GӧOt=/ٳsg޼y6lXz"Σ>g뭷Νwޙz*;s9昼 ~/YbE>{C=$HE+Zo~lg6׼z͟{2dr{~2S[[C~w^y\{Yp&=ΰ:U.<[={f郒,HҐdE7nlhjh^NZrS[ko\g3ZxqKnrI'u!g3[xq=rx:#$'|r׿{{=:ԧ:*l*n3pskIqm^;s뮻,9sry罕Cl7tM4iR⊖ҳg\z饹뮻2iҤ\yy׻ղN:)~{?e̘1a>|pw]&IzQF;̯S;̧?L0!I?oMMM<ȵnwGk׮my駳`uw_gu:v߾}[.2СCW{=&ljoSV[%I_צ&sQGw=?rwSOMseOUW] 殻E].]serꩧϋ/w1/b:uj?رc3bĈ 80]vY8,Y$0`@M.-׼9檫J׮].d̙-{ꕗ_~Ͷ/ruݻgѢEk<#RUUnݺeWymc 8a'$})SdŊyG3mڴ<#YhQo>$Iccc̟???r-TYY/UUU;wnڟ?;S&L$믷9'?I^x^LxCnL뢺:m3]bENRO9䐖6g?>}lclIZ8"k,;z-nZԔѣG(k%`6GqD8455em믿$9sf.䒜q &W_}u/_1vat%_}˺vfϞKK.ꪫVݒ%Kͺ_|1zjnϢEZY:_W,WWW3gɎ %yUTTqeS5qJ 8bzךV]ͳ*է?6 ,ȬY2z{뵯uSO?,\0ΰaZ^0aB&L}K.+_WI/b>7V}}}Ə}skm,Yf?~emͼy$̌3ָ!CO&s]/袍:^UUU4[kZ-KMkx^=[=7?de^v׿5gҿ?|pN=o7Խ{t%:uS+-3w^{l;k̞֬=;guVRQQ޽{oq+l (y'h/bR[[v)zj~_x***/yͫ:˖-{,I$oH;?\ 8l^ikLם:uZ~;ٳ7p8fĉ6mZn֌;d~|K_ʸqr.cǎM{ތ7. Hccc:lv7n\n >-/ΰar7gҥ-,Yn)rjsyeѢE[sWdԨQyxݻ裏G=zlcl)oҷou~.$y饗6:uJ]]ݯMXLuFכ٘}W,W&jn}cnVԙGr'sY5m*IrԦZkjj̙3pMz n6MW՜zޟgO~{s&Y7"NCG9+89p6K)8k^o&OZꫯ^+VaczXdI[ok~ UW]ya=?2~z*]t /pyYSV3+[[l)t9g]뫛SrJUY85=zx⍺,zRQQ,\p?|A웕UNK$k}{wGr#) 2E M(ΜkGer"ez#D鞩y@_1_U.:q^L߄oooɲ]\\uz{{KDӆG2MwKS{m"?777?i<g9*oi)L ]vDƵ}g>ЪGԇ^}??՟^?ZU{u|y߷$hUWٳgŋxeӧO}".CZ>kCFď}ρS lypΊ<8x:?yD<˷oիWyJs7oć}MnV{el|/_ aM p@'} *ImQiZv3c'2U&dƵrY<.2XILWڔr˶,uYV2Cˇ(ii=t| X2UJUF6>`'m&}ORwiE<#9' 6oM嘤 r&bSI󪚲NRtxU&=PjДaNYSVVNoNN2e%N^mS;>ɷ)CMe t9ojYfJvU<8yMR8*<W:O~`XMɊ&/7kINC"+Lmr1DQ^jlz`o00So˰aaTvm 2ZR|k8ԘaR]ˆ7?|*"bL]?*meO׽(8r`&ߞt,VbgĜ*PNWIBkmCU6C7eTMD8~C!KY%W˗<"XFegnxsQYV1\ulʦ}t3iLu6M7m8c'8tMjuS z8fۆ}U7͜3 ©髺 hƆ4Q}~S;7ęZ`1Ծg0'}46`1M6%3fߐL~UJk8cNNSB!{ o" qƞw(i=̭r޽i-s?k }2 <8~sνWsg*Tls Fc'䳷K!TLN3Z 9Ǟoq=`]l4DD>)mfXUy]Cmok1X"8M7N»֬B[*pi:I-̰rW:baW;sŚ~ݚA71|cx_Њ])$H-Š{Bc{`nc< mrr3;&9pԞQ6S4NL`S`<}@;N6) ,`=y 1LaWڥIENDB`extension-manager-0.5.0/po/screenshots/_27.png000066400000000000000000001273321457631363100212340ustar00rootroot00000000000000PNG  IHDRpA%bKGDIDATxwtWZE%% WċBE ^@Ec""^( S/x/C\xu%K\LtdĴM3ڤI㜞$ηijC H`P6x@x@0QAsVM,j @5P՘@&59PU0:תeSB|@U0;5:wxc,g7/-xxXYr$h!N oowqX],wT4+U p*"፧়ǟPS:ŷfLp@3qиZW:q:T6T)]1ǥoBo 'Oޔ]l|ktoy*Ϫd\/BuwX97/~F>&ҁU[xT& V8x8/%1X|y9q eUٰtMUεxJ<|uuW댥5 0/Jݷ7X'床lUT`ݭ7፩ԭAgIeF>[auH*d֙㶳 go΁OyR0NQו}yDdx))e˖Wjk2F#o0jX,9EEEؽ{g u&̱7H%AMys2/ݧ\ue:CGӲ-[vUք󋋋e6eXd j`0d2)""B***:pԩv|ʢ?Zzj<\-+OjEc\^7)WJǤ!N_lRRRBEGG+::Z999omٲ qtfT~#]T'96΃\zs{竸ا'bl6+>>eJJJ~:H3W]\[qyõ p}KoS۔Qgƿ⋟'՗@l6+..Qrrr#G|3!Ny-f홀`ŁR%aO(8%_mt){Q-Z^n70ŢĖ111?~|Jvq*=谧)]=4qЅ,T^M\}#JOn]v X,EDK ٬>}:إ!)::ZQQQ22Bo l6V@سX,*,,Tڵ'HBgfg}ŝC_WBjPiҳNkػNEhѢ{RR?jd2vڊQ(Ϙn4h3;phTBB ѨHEFFl6 @XX,K~}r?0'™nSD˛By]:Q muJDD]2e2Uxpd22Ҋ_R'Oԇ~E܁gy1ɓ qWf,ի~i}A L&=裺뮻J,OMMu]뮻N+VPzzzcKbb}mCTi p*{ZѠAtwO:utwj^ Pe\O?]b/\'OO< wj޼qNN~g-Y$`֭~i-^XK, 9`jѢ5jk?22RO=y}A@eÛ-\P֭ѣGu9nнޫ}`0hʔ)U^հݞ=fnnnekN)h0(\ZTMCxboƍSϞ=]ӲeK͜9S\s P\7v_~}J8gjꢋ._֭[ЯZCKBBU\\~8;vhǎ+Wj޼yGs}i,36oެ~I3gԧ~ru :T۷ow;xϟ/RS>}T&I111~?nLL Zg%ߤP,I%Ov-I[n@jZRRVZUVMbb?^s+''GAӦMӥ^?O&w?kѢc_5ӧ|f .+JDXӧ$i…%g۷oעE4l0u]Unׯ_^~i:uJҙO>ڷo_?kN¢' p ]+dY/z饗Pf݈#Zb9h 8ЫmC;iǎ|rZJsQvvߎ{e%\"IZn֭[aÆK/BVddE]SG$M2E\p8Pc27!O pFZ f͚ꫯ$mݺU4i$[;vPff:vg}VFQ+ta}2L뮻4`1x p :~o߮6mڔ8'|"I%TuQَ@2>S7n=Zcu֕hԊ+dĤqe˖jҤzʄJxcgokqy@]$yn_-UD6 ƍÇմiSM:U/.=zTǏԱ]=< "UzOMΝ+Iw?HBڵkK<^x6mڤ .@:uҗ_~g}Vҙ&W]u6lAZl:u꤅ aÆҥ4l0fKGvqF :T^z-Z ;UQ7x/ժ{@ _~YGq|5vXu]Æ $YV͘1_x$'g1b* 4/2!;;[))):str;sWPhtט1cMJ裏z <J nU+ SΝB1r e6lhT=ta-]TԸqcIRΝ-eSPiF~Zjڵk`0())IԤIIҷ~+,LW~7ٳG-[T\\:v(LYf)22R?YN4j(I/L Û;OwLq?l\ Lx룏> H/VaaZfy7l6~62u]nA/woѱ=3*,,t<.**Dl!dBP pByI=lҹh"Irap0{l(55Um۶յ^;–/RKs5lPӧOÇ5m4z7ۘL&I8ƍբE ]|رrrr]-Zh5jRRR4qDL&zw>v9_V=\%%%)++K믫N:z} +bq!բEoؼW?XB]w^}.2n׮,V=JU AVۖ2zոqcǘ7Ncĉn pBԢE#| @8Yd5x`}_eZպuk:uL6m(**J_}6o,?L;uꤌ eƍzԥK]|}մiSJLLT\\6lؠ VJG>}z&++KFr7ҙM: C9X,ĸ4+_l٢+Vo߾7o-Z_Gչ瞫oQVtt`TfV>#;v$iڴi:s9wlG|֭T_/3U}ڱcڴi[nEW;C[oUgֆ x=3:|$馛n$]x%f!矵}vmVuW9#G{n]?5j^z%5kLҙAM.B9眣3fsu,;r/$/zq+_e0ԧO 6L`t %''k2dHj8͛7O? &8Zی;V=멻cýPp*o-lǿ 7ǏWݺuհaC~9袋$ @9u򗿨K..z'v%Khԩ{h֬Yҵ^~СCڳg o߮e˖[n_/R7o8SO=QFC2:u^7nT˖-[ó5zhM2E6MO<o&'&T O9s>`Tbє)Sn:W:tPݺuuI}wZb߯ 5o޼CPĸeKh={Yv -og&Ƽ)-acMPjcC퍥ۿLgo#޷֭[f&1pJJJJ*/**J#GT޽U^=ߵf*..p 7Ժuk{~7tSj uK,QÆ u.Sdd$)::Z#Fٳ{ W\]vUUbyƍոqc]{?v o׵^q;ͦH >\5?\@`~W "ͦiӦ֭[5l0effX޷o_/ѝwe4uiDz_k׮UFFF۬^Z˗/׿/_CTTvء=zh~7n\~={/RsVDkQYnGk.ڵKdt? &(;;;eW\AI+}:pF5k={M61b^yܹ3AΝ%I=~r3 {lQ`ݻ$/m>۷ʕ+ջwo 6L7ȑ#>xpMz2 9x`uECu x J_ @C;wtqC\["77WVHg{Īnݺ߿$_Ν;շo_5jHcǎΝ;k.vmt}i„ *((rUd2)11Qmx#pӹsgh̙:qD "I^7ҙ51}9)((bQnnn ݫoFÇw]fϞN:)---*ƎnI7t}`Vbbb4vXG*gs&M+2OϞ=LٳGO=ڵkh66Mk֬?wխ[7]wuX,;w8Xz|AZJ[n;C.L4d=C馛k.M4ɱ Vy۔{Li&=쳊s7L=z6nܨZ?|s^Z{֒%Ke]q=V^[jʕjӦ ui˖-3gK˹;?۵~zG+,޽{ueiҥJNNV:utRu)(1B{Nz{iʔ).'lԮ][EEE%IEEE7oi޼yjҤ4hPZ2o^ҙ+8lKSSM0AǏWBBcY-.]J3uֿ/]+ĉ?Y7o̙3{=je86OYfu뭷/1cƨ[nzջwJ \Ohڵӧ;]j„ ѣ85kӐ!CtmQF=zw=o>=CzjM2EM6s^۷O-ZҥKtRjJԽ[̜9Sfv .qm۶P,55UǏ<>Hof͚H=쳊̙37|3VɤdY,ojѢ݇>DDDiӦ=zԤI 2DFQo2335a3&إFnZ˖-筷Ҏ;tqedd(%%EM4ԧO͚5KǏב#G4c Ѻ{Oh:t萞{W^իgϞ/]Vv `0h:x~ZѢ<o~AܹsuС;r qZlÇ:<37a T3FuQ:u4x`-X@W\q(_׸qjT6M6MAE͐!C4| 0@'%W)ժ'N^z:KLZڮ]ӡfeeUU!ԩS6mƌ H٣_o \ J:uYPCHeGEEh4h4j\p}&..N+W|ٳgz*S"0Ky1o5ke˖-7o$9B› U<裎A{`J7xbխ[ޔֿuڵ* :,!\sMvlcߧ&ӵ~OzWe6]… ujϞ=ׯN8!ݻ]ebN:ɓ'kʔ)%%,//O[n_W8qB;w,W_}UzFƍq9rڷoEy}#G/W 6'OTÆ e0d65o<3F]vdRci͚5zgԮ];խ[WÇ9Kx`Rbbd|jժUmuڵkͱc4`ڵ`9sfΜ2]u֎*I] V&y饗d6f 4cܹe$'N믿jѢ>c߿_?5kUVZZ`AV5Ţ\%&&I&ӼysI(YYYJMMe]~XWt=[l=ܣ#Gj7|o]NƷzKW]u}mڴICjEiJKKC=9s樰P'NTuq͛7O۷o$=3?~ϟbZJNg,NGyDFRff>۔n_ZZZeǎ-j=zrcmNۿLgo#޷֭[߲y9M̄Zs*={1Sґ#G^M} Ţc*==]FQK,_|s0`@ӈjjupwgϞ>;PE9yW] QFiذaW_Ռ3\WV-}]%ddvou9}鱜~lsST]Nl۶MڵTr,Ɠe˖iլY 8/RvR=Զm[jȑ#ڲe>Mh͚5lܹjժvۓ'O/@9sVnvկ_߫}>5khx8gUe p8ڵn6YF.;Z%C7jYB@#9l6 tUPPB AsV^^^K)\BYE.#$dggb pdgg+???e'. 竰P񊉉QDDDfYˣ joVWۥ-?Ţ6b7;Gh *8_ z|ߝ;+_֭,/!gIII.!(p .Tō xP\\5޽{ݮOKKJ[EEo@1@1T &,Yx exԸqc1"eX<,YRfm۴w^ݻW͚5 Be᡼;i/op3f8>ۿvC{ァ۷kƍ>|Ff[۳g>2۵k.(ym۶Zy/^?Tc#66V111/٬>}:إf-Zx߾}^{5hŊڵk4i'l6+##CǫgϞӍ7ިŋߟʷqFmܸ1e-oNb2TN%$$%$$N:2L^ɓ'kӦMڶmVZ֥ZMLLܹsm6-_\)))>v ڵ񕟟wu-[oF+WڵkuW;?:5h -X@Æ Ç:W_kʕ裏ԧOeffjɒ%&I#GTff6oެ9sx_ll^x}wڲeNX%K'Բe˴e˖ ]v{effG<+VhҤIZv;-\PɎ_UVfX}ׯc~?ԸqcݻWW$Xpyyz}x~|xj*m۶M|^xy}~OתUK׎;j*=cZr_^z%M8Q?[m޼Y}xz}޼~YY^7t")%))@PRRW]vu 7h…e>}w߭D 6̧رC6le0|Ybb[h/ByyyZ駟|jP~}M0A֠AԿ5o\_|$ԟg1B~rss5}t?N:աC=#%jիyuQ>]d-YD{mݦ|P^[nEGVǎ;}JKKSzz5;t}+ӧ裏jرjذ;<;Vƍ?۷Oiii%(--M{Oyz}x~~xשSG/֭ުJKKѣ>Ǐqw]޾>n&GO?y} ܽ]o^??? '7TDDbccNՠA۷O;w$:t67n;#I?^zy]ƍo+;;[;wָqtivM6U=t}9mڴI fhϞ=ںuRRR/Te24tPw}o$IO?6oެ;v;4e}wٳgkĉ2ecߎ14>﯃駟v,۶mw>㏒kŊ0a ooeoojʔ)*..֚5k}r'ЯO+V~ҥz衇J,sw~wGGGoСC`׾>~wGz} ܽf!p@111^8飵k/G}6STV_}UCҙt{뭷;9U̙s疨o***߮-[{zzu\{QTT"wyנA;vW:u?8ZjԩS~ͱ>//u'--M7ov==;8p@:s}o?*22LyU~|zlR=ڶm8\r:-dX<~l6i-7L&M6M˗/ג%K^fbǶϮ?_,%%E 4М9stqIRÇU\\\uX,fb}Ս7ި uֺKtix⋺kԡC :Tw})_{5-^Yf)99Y .T-ԪUGJjRddNUQEuתQF޽fϞ[r:}UVU6jРz)5o\mڴc=_}իZh#GWAA[VܹSwqRSS]ix!CTvm͘1CfRtt^8b__bܺ'U+ЯwN8SNsΒ΄}EEEz5zhhBW_}?;{ۛ_ޡ  LhذajҤa-X/6ͪWch^5L)SJg?ItA=#j޼?hذas3gL&&Nd:tHׯwtfΜd-ZHA6lЌ3R$?~\ttڵkz7|Sw.B}Wz֯_M:É+Dk~ZӦMӀWzn-[j{cǸ)999z4a͘1C}c&bȑ#Oj̘1ߴd 0oO2EZz٣_j߾c}e7ܽ^?Z@T}Ou~kty~/ۈuIsJJ 0ɓjYf[mMb }.[G6vXs93fL/oO-~pVV-}]%ddvou9}鱜~ls@k~.T*eZ ]|źꪫ6mڨwz]B TPhƌjݺ$iǎ9rd+믿j̙.4a5h@YYYZ`>`@B#{x#ImڴqϻgϞ=~x3^|gH+V$͞=[>/TW} v 233z/(CojwyG .,l6K:_31n*coV!T!رw,˝eѢE~9/8> 7LEDDhꪫ/B:}$/ոqc?~\~i> 襗^R۶m%I۶m)P6Ȇuo"""4vX5kSO)##C|իhGFڵkA%o7\b٘1cm6n?lIҒ%KOj֬YW"""i&?ʳ7+6AbV^s_Æ e45qD2ɤ8IuV͟?_6mҺuyf +-5ի~9P98>uEIoX̩5%9ZԌ1B'O,jSճgO=Sڲe&MTŕ&"!ѨQ]KYYYWΝnݺrۺunݪ_7oի +@MP1`nf̘kz嗃Z˩St`0l6^]r%2JIIх^(IJLLu]]v*((PNNNPjv8>jݺ~6m5/V^GyDM4ѤI|r顇RjjN<?Oj***{]yj gh1鸮o.;octe:{qVn2]@u8Ɯ?pGMWZMVJr nTT9CpFUfx]'~Fot!qb6%PfߏY]_8^3PuH+(!!!ea zpsFίP8NN>Z2fYOv?{{@~pMy@g5~6ݣ%%%8٬uA o|}9vyRjs>5 ?@JQbɓ'Kka6UPP'TǠc58}t?\@U 0*&"j95p6 vCXG)@LCPT '0@3GJ{5G8! 8Uobp]ZjjKFJ*."dz衇ԫW/իWĺ;w։'TjBZ@hN 6L *HR֭*gʕGe@wkZ@'z%I4hnX 5o\}Q};w}WsQqq_ٸqvx|QFzzYYU>NH/^>fӬYZٳz<?8ZwB:t7yL&Fuiƍz'vZ5lPRM ߯={oѸqǹ˵l2eff7T6lؠ;:jJ_~e:J^Z222Ըqc ݟ p̖-[$z}tq-XX;nC"::Zwu&O~Aִi*t5khΝ:q-Zzj*ݻWҤIdtVT^Zj0V8\85DÆ e2J RӧWyf5mԯuwqh}CSCDDDh4hfxl0|ڿ3jbb8xl6.mӧO{lM ]tE駟|:Û`6Tc4h$)//O&L.H2d=K.DWllWܺun6կ__{򗿔٦jժ5rHL&}>??  :v$/zYa4ՠA:}_k̙z7-l(w}W[nʕ+5e1cj*eddСCeG}ך>}z-5jHC lBw-lh}`%;[?Foխ[̜N`1BоfϞ]׭[W6lPΝUTTTc'O*222ej(_!&PjժoS,NֳN_6/c9=ӲҏmNn z'̙E9Zx#++K222*}-[7?{wWÉ"IX֣kJKuS4+[5[0 uWYZy%[df*7"n)(^Jޕ&bA3xwۙT]¹ٱ5jQJJJr<___*--M-ZPDDn˱)}p~A4rH͞=[gΜիh``xyrP7pp~A矷u!8EGFu q~j@b7 mi5p{ %33f-ZTvA;Vyyy6wѣzCx#I~~~GQu&M@p O}Y=<<kӦMQJJ.\oȑjӦM֠#!OOOIҲenj0wm@j7 @K.Uk p5fW...ڶmelVDDu&///>}Z~6l 绂F)Iի5wj w^I{:ܹƏ~Iaaam%%%:y&NK.'̙3u?~\˖- PUhLbH9::_W>|XYYYz뭷*Yj=L-YDYYYvܺn w4R>>>׷~[e͛뷿t]wsepkrttdT?Eiĉ:|pcep:y;wްOwuyK[YY nzP*,,5}t=#K/d~Y5mT>7o}0ƙ3gVZٹVGcC999~~5xmή9sk.hŊ~3G?wyGGVRRz h߾}Zfjv6vV埦J֭+_/_}:\^&NaDDDTx裏{sE&??_feݻwI:/骤+V׾Z-eVKevzwk5'R0 -\Pԯ_?yzzjl_^ Y0*))QLLbbbl] 0008#08#08#08#08#08#08#08#08#08#08#08[Kf65fO-Z;vlT0 ѣG+44F+T'???9;;ۺwP~$IڷoCj߾6mTah…*))WWW?^$JNN;CBW1!!OOOIҲenj0wmTUK,Q핔-[Nݺu3<_Wz qСChҥ߿NBBRRRԧOo^tIdRhhBBB᡽{***JYYYt>@c7~xo^&L_mi߲e6oެ~[={ И0f޽sNM ~[ M4j(K'OСCU\\El67XYWRRR_dI&6@cD}ڷo5orttoȑ#ԫM[n.0vI[l͛դIk6V1#)--վ}Զm[nZȰl/**FYYY}nC%~Ip~a^K.I&I60Ǐ޽{}uK.￿}hpnرc:y*Ll2ﯣG2;FQQ5`߰[n0`t%T1-T\xx~߿_6mڤ[NӧO_>}Z#GT^^vaC{w_J׺u,ᔇ7{g*4&86#OOOX.UIRvvvjԾ}4rHH̙+::ZJMM՘1cj5KVXX_|Q0`(ItVZw}W6@cP3m4ne?M[1YW^_t=88x{AAMNÈPXXX裏j^ZIIIu:Ym￯Ǧe6uLNݻwI:/骤+V׾Z-eVKevzwk5PwFp -\Pԯ_?yzzjl_^ YZtR@C (&&֥-T8ذal]܁`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p.l6k̘1ׯZhQa5vX٨:`܁cCGVhh $)66V6  wP~$IڷoCj߾6mTah…*)) !OOOIҲenj0wm@j7 @K.Uk p?Qwrrr_(&&FO>D!!!פI*I6l~iyxxhRVVVO;޽{%4kLњ7o>syyyɩB)Sh޼y;wN<)ǹӧ+77WoBHyyyl6k֭*((PAA }.\d˺^|E3F7޶@x U#w)--MRΝosҥ [&k׾oL[DDG}{+`42Ͷ.0 www޽;HyIW%],j)Ze.ˬ[f4 J'OOZ퓝+66!KBcC%%%QLLK$G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p88::I&5%&&^ 8p`h QQQJOOakeװ!YFaaa6^TTVZ%;;J?CJOOWǎp;@PP(==-ooozzz>s7E1rHk5m޼Y~+V^]VX"""joeװ!5Ŀ<]VmĈz,l]3gEuooo%%%IӧOK޽{ۤ;ɻknbO.V{z377W#F_]M6 ԅ pp7:tO6렧6 kj͊=#I2L1b_W&HK/}7?aÆ)11Q۶mo͛Wyl6$=䓖BCC5rH=JKK+Ri[i5mTz-O0A_W_Kg#F˵}v\GMõj*K\\\qFTy ksرCk)))j۶+iʕ|f`k8ti 87uM>]7KF^zi:th"f;wVddBBBt)%$$[6l|||4vjk1JJJtIM8Q<󌒓5sLJ-[ŋ:uٳgWvƵfoo7|S֢E$ISLQ۶m5l0 2D>>>7n\g ͚5KoVls X;}tMzz/^\z+##CڸqÇ7Б#GW_}UM6Un,clذARnneggx:uJ'NPrrfXj=L-YDYYYQq4uT5mT+IruuՠA<9sF ,P=u=Vu=~z]rE_~eAUCU#U N< Ad=z;ˬOwuy;vLpcXY͎/z, *,,Tpp-Yo UttMf Y_:ﴴ4͘1C޽nS߿Ǽ<[N}U\\\}louEcgϞTN'|RYYYm}kry}嗚6m|}}`P֭ﯻ['OV^^vQ;wBCCٳgմiS=j޼kˤܙ3gVZYwf-}v*22R{\8EDDdwX}gM*֕Mb(@$22RqqqZ|8'ZykR&MԱcGܹs7mcll^~e8q78m֭[7-YDzJ|A!"*1c+uIiiiڲꫯzܙ3gѣZd6nܨ^x9s7(::ZVRf4f̘:߅`2ԺuJﰨǏwѣ=z(55B۷Ok֬QTTTm7;ŋkݚ7o4iŋkɒ%:umۦ?zU]&1^`$^/_.IO<Ν;KygϞZb6oެAiҤIW߿kUnͿ.jݺuns=8ƭlU{u>&k׾o4h<>}JNNu)-ϯ/v$鼤X}^^jY-ZUeV߭>Gwqtt}ݧL[@ A?A}kR8hTC)<<+1&W^q9غG5duUm۶$8qB[nՊ+o -DϞ=5sLVh衇CiС1c˛W^0`|A~ڵkfIdRhhwOYYYJKKӂ TXXh'**J}$]rE?駟T|||Z?4x`?~\QQQ:{Νku ]v6mZ޽{kj߾5kӧOo|Pfٳ|ML&}WJHH%Izխ[7[}?~\F+WjĈζzjYo4ehŊQRRzM6YК5kt*봷פInjggg(=t!G***NAcc9sL&ϟ8($$DvvvڶmƏ0EDDh̙ڳgΝ;Wؿo裏gpWÇ-[ݺ|$)33S;vвe4vX꫖駟O?)99Y͚5Ӌ/ŋ+;;[K.ոqe]rE;wիOK.JMM3<x@=-Nҿ w"&1ruuW_}8=4m4M:UIII8p.]-[iӦ2dH5j.\X#EÇG}d oדO>f͚U={t]wE/٬gyFvvv7n>C?Z W^yEU{Wohpl[nW^7|޽{w?.]XHRppp6iDmڴѿ*4mTJٳGvvv +ӢE ={V/^$]|YרQSOM~iJ҆ tiUYfjٲ222j5H222^oΞ=g/yqǽ{eggW훫Zj%I˫tŋuyyzzް^=Ǝ >s}>}ϟ-7k,=jӦ Zli\xx-ˌ3j},86VVV HO@T]ooJ;::MaÆ)==]v[oD˝AV\~k։'W^a۩S$U .]]k׮JIIcp pO۶mիW5}thB-[ٳ5gI?J~=wrssTm+00D=ڷom۪o߾t-_\T``,X www-^!OJ;wTjj~ IIIJMM!CPVԻwoV-T..??_3f[o׿VBBe>GyDӦMS׮]UZZ3fJrW\Qxx~'П']zU}%X?QFi̘1{uqرC-뺣յk m0a >}(<<\W\hʶY*Ycگ||p{{pp8ףGEFFP .hƌڼy- Ml6ۺ 0ݵ{ I%]tRj)_պڮ_/n7 +_C Q׮]նm[~_+VиȹspB-\֥ac#08#08#08#08#08#08#08#08#08#08#08#08KOOty5k(,,9::*==]>>>u>& ͛ں n {g86֡C;!!A7oVcǎi ԠAԲeKڵKϗ$fOO8q6mdwԨQի&OCX-l ҬYԯ_?߿_ofԩSs)77W/V&MnT%""BAAA?~zFs~6lСCx)>>^N҉'I X̙3Z`z!0l6k֭*((ѣGuI?O<|p:r233ꫯiӦ֭edd(//OK.U-ԦM*OLLԑ#Gt)k*++S޽t-9::_W>|XYYYz뭷ny\P!oycǎI*Hڶm+ɤy橬L WWWIw}4%&&j֭Zv֭[A~k׮zTTTd9~M^x7GLr #ؘ85͇ӐH҅ $IÇWnn KKKN:)$$Dڵk&L '''L&۫ԲOqq._\1˃*..VIIew&9::d2d2U#"ym *,,Tpp>*)--MZztICrL&v:dG֭[%|OvN)700R/F8r{L&I$kR&MԱcGܹs*,,Ժu4}tɓ;vsUhhhaÆ&L {{{}嗒}驧RV~պuk٩Pׯ#C/_4nA/֥K4uTy{{+77Wqqq:xԳgOEDDU'NФIT\\,I3gƏh988(55UcƌcR&I[Vvvv]v)::Zڳg^z%]rE4|kJLLTNN*<^uM>]&N9shҤIQIIu[z4M rVΪTɺu~Ok?݃ml6ۺ 0ݵ{ I%]tRj)_պڮ_/n;nnZ*#08#08#08#08#08#08#08#08#08#08#08#08#08[K^i{ns%L&.]di[f6lؠKh\#GkVmo SO}4.܁_{%P+86֐J%$$h޽|}}u1͞=[4hZl]v)22R$٬?Oz'䤯Jŋ%IAAAO999/#I2L UHH<<}Ծ}{}ҁ#GJzD͞=[ ZzꮍSϞ=5d]zU...Zv}yxxTZ?СCAF``c[[;wVddΞ=I&)!!A Νc*22R4eyzzjذa2͊Ըq4{l5kLњ7o>syyyrQFɓUTTkѢEzꩧTRR"c֬Y:sF7|S,۫R ٳg}~e˖EmڴѴinU\VY=fY}ѐ!Ck:r䈒%V/Ci 6СCU||SNĉJNNV@@$U Rllt-X@=z$yyyl6k֭*((ѣGuI?O;|p:r233ꫯiӦ֭edd(//OK.U-ԦMjϡcڷo5oNZuצ6JJJkԨQڵg ;-q1Ipgȱc"Ij۶L&͛2I\]]%I}Ҕ[jڵڹs$urppPFFe좢"߿_ڵ,Y_]ZZ}m۶Վ}+ǰU^ڳg6nܨkƌɹY?UӣQ j .H*<<\:uRHHk.M0ANNN2LWiieb]|cEթW^kouW8::V*,,Tppp4c {ɓ'UVVV!d2LѣGoڎVa?]Gw1jRٵ*44Tњ6m S]ƍW\Q\\"""cd2[~~~$www 0@^^^jҤ:v쨢";wNZnO.}ݚFU64w\Z__dRdd|r8p@'N?G/֥K4uTy{{+77Wqqq:xԳgOEDDU'NФIT\\,I3gƏh988(55UcƌcR5ة?~<==o>9=Zf4nܸ:*]ɤ֭[+;;z˗Kڹsg4^u{ѭ[v;OS%}LV/>}/t^PPpKHHիdRz/l2pwwݻ$tUkK2|]Vj~껵dw|}}gU}Zxmc!?~߰I ;p( 6%`p p p p p p p p p p p ҶmԢE+**B?Pok73qD}ruuަM޽[jѢڰaRSSMQicp8غlٲe*--Ո#$IСMkooI&iڴi5]zbbb*]zU}v;V&I?#777uE6m?:x𠊊xbedd(""BΝu…:~ JKKUVVV^Z>tRcbO"IҎ;xWJIIQppp}QرC~~~{5sL;vLPBBB T;p Λr7{MU W^yE>4Nff~uQ$oW_} wtI+WԪU+effX ڼyw.___;vLgV`` -[j׮]T~~43f+m۶N q/ tiUl6ٹboooپ}vuѲڶmvܩ&M_tI&ڿȑ#ZdԲeZܹsgEFF*$$DNRBBaÆGcǎ􏈈PPPƏCZ1 1e˖iɒ%&jn̚5K?ڴiSek^zYرC;v;vX;vDCՆ |z7lؠC)77W񲳳S||N:'N(99Y~_W>|XYYYz뭷t0"iyp$ĉ+T'!!A:t|v풋>uQ~e"͛7WponٯP˖-S߾}5uTyyyi58;&Irrr"I񑽽Z^ ,́c 5NKjժUӧO/**Rzz:v(__ lݺU{G:uo}W\ѦMyf%&&w:|pϧL& o_b͚5K&MRӦM4FcTAAAںuܹsڿ^z%? ^:O|'OL2FCc 9;w*55UO? *ѱB۷=Zaۖ-[;vXKSLQ.]ԺukiF/S4w\ ~zM>]<<<&k׾o/ۻ`9sD@R`hp'@*ZBWZ VXT46E H"(!"r 1'p.?`{6{9'g}nb}}g̘1= (ɓrlHґǝU[yjY134BP8p@ 8p 'N(P8p@ 8p 'N(P8p@ 8p 'N(PNˬY2u$ڵks-䪫Gyhp q)䢋.JkkkGyd<ȼ=\gm+O=T~__jw ^wܑ X6s\~O?}uvv~\qyzwG~wvG*}{rAq8;6+VȜ9sc~?NN9\r%ill̍7ޘŋKկܹss'K/'>AEYparG䓟d.s9;Scm omݖYfeرٱcG}3&vX7e?^oڴi5kV~ﴏ>`o8E]\veG?+Wf֭ٺuk|… ؘ.(/zы;vdӦMٰaC\r%1cF>uo[n1cSN… ٙ?}_>wuW>+'?~[ny^;.7nu}V(owo}W^o9'Ni6m۶-y?>6mիsmSN說!'xbe˖eԩ9z;o޼\}پ}Vŋ`,^8/hѢuQ9s5dW߿=MMM9ssu妛n\ JXxq坝;# '0444Cy睗kOcƌIKKK[SSSoM7ݔ$Y|yN:餌3ر#<@Id֭YxqY8SLٳsW@Xkƌg>-ydzx|9rCɹ۽y睗?> !C9$Iz>̟?Dzyq=oO]wݕ;3K.wߝ/:w_=n_oii 'o953f~s敯|e3Ȓ%KVwߟueѢEihhȢEgڵYdI/2',~ߝ~~K`9(w%$뮻$ӧOߥ{W466?A:;;wZgҗ6NsNO}{ߜɓ'絯}m?cng}6?я7 Gã>N %pFUW]͛7O̼yWBI{̚5+7nUW]5}ر#w3wC';vlSNɆ r?7=CSĉ׼&O=>bW\qE1k׮s}1I/嬳WmYti>O5yM8,X`$ .Hggg;\veL0!&LȌ3p|Hggg.lذak$~;A׾$>s~ӟf݇U,ؘw{φ r~җ4SLQ~Ypaw${Gwi0Fi^oZ^ozƪUWnM/7r?NeoW;-gg>L87n\})o`߰~3fŘmmm!sU ]3iҤp7nܜP8G{>ȿ=@*f=@ 8p `ԩ9sfN &dYvmVXGyd%!hll̛̘1I&裏G+V?q:;;GiBJyr-dժUikkɓs1d֬Y9sflٲoSN_?ùw+<@$^:o$MMMihhH{{|P M:;\yyǺ_{gsM7塇Yg3f{Tw_~_XVųf͚<3ˤIT@ɜx*Mr-=MG}4rK#;vq̨{'2g;$ɪU\{'ܽp=dڱӧ'I8∬^:˗/Occcf̘#8"YfMnlM4{xի^WU=-]4O<Ġ:vy䑹ku$wܑp>{8f͚}9crM7ޱ$Yv[oݕ!vyu6oޜ̛7/W^ye6m4ضm[o6mQG'f۶miooϪU2cƌlܸ1ښ<>`d8Cٙe˖{̙33uL817oΚ5kbŊ[.˔)SF,{y5kV\y򲗽,z׻O'?Iδu{]&N[p`0JۭzC}c4VrkzǕ'p/].g؃ښ:+ggy&W^ye6n8EtqؗM<9+W<>Ɇ$Iګ;_xYu몺Uy>z\޲>h΁36oޜoyꩧ8s!{ gm޼9W^ye_~쁜g7ؼys2p@ 8UG{>ȿ=@*۶m! plݺ vlݺuN&E{{{F{yP_>---?~|}Ejoo϶m̼L֭[@{/hhh!}6$"IOtvv0+x^e}s }M~۾}8رc1*ɀښoԩYvhHˤIF{e+Gn7p@I:O:]]]>;󖷼%Idɒ=<Ǝ|9Ss=֭˲e}-=pT%Px(ԧ>ill_I7y衇Fr8{~I~8[n}f…y'r,3.xߟ{9sdܸqI۷gҥ˲yknn>̞=;[lɢEpP?~;$ʕ+sp`ouꩧ&I8׿{>,Z(o~G+ Q A{ ~>[Vs矟#8G??^xb]'rwn$y>|[ʴiz,7n\wcͼyF??'N;r!7gy&˗/о:蠜vi'?ImW 7{_$7Ir&y7Z!9x(_T2U /ӻO>x\wuߜs9yސ:˗/ϗ2y\r%|\veyы^Խs~,^8|p<̜tIG>'yK^$2eJ.\믿>)J믿>o}[lٲۿ۰~ޖ̙3̙XvĞ 13}va'vYgz]' =L4)IzOKKK{챼-oQGo~3L81^zi8\~ٸqcn\|7n\.,X ^zi/"i'|2/}KO;N:vm=krye̙Ksꩧf۶mihhȌ3` wtwsΩ_իO2%O?tu~L0!'N̦My睗O0! ,^}p3gL4)gqF Szks;=ܓM6CLtvvn?!^{mHinnδiԔ{,]]g|ȡe˖%IVX-[8_zx^O&AggggCCC`…^O>{MκhѢ{ٰaC秞zjN=tuu̖-[$WŜ{g?W\{n}|7n\t/kkkp[fMoߞq/um۶'̔)Sz,;蠃iӦ7?ysss=|}Knݺt_և\6E3y׺jwttt5552bַxaÆu '8O<I?M'c9&s.`_O}jP_|Żttt%Hպzy\yJ}nU[=ӧOI'XI"ĉ3nܸ3&}k{V9}y;mmmyk^ӽC=5khАC9d].(wW՝?䓹imm͡??_oکАòOFVsssv$IWn}QF3 Wu&iokk1cOYf34rK?5\|2tPeɒ%֖k&I__yK^%KdƌG?Ѽ/Β%KrUWesl޼9~l߾{mrW;^xa6mڔ򗿜 WU8qNoNoa'r;l9Ó$O=Ԑ;f̘}?I{4Q65ҍb fve u'χ嵷:4Uݚ'Μ9$TDŽT>}>ҾcԩYvWT<;65<w^:7ni{`ϟ?~׿A?bŊw$ٔ#NG}V=#(fTW9 8#yJ:N'0i6QC?j>??=:va۶m=.>֭[}_̙3'|?!K.ͿzMMM7n\x/%ٞUgj[9j$g d6 5 c`y],nRiWښ7.]jglf';GS$}ϾֈŅROb\/ o[jlF_SSSZ[[e˖_ZIepGUj)h]}:Uy^]:l;?qƥQ6nܸ7wy̛K'7T-Q =#=d8Od\﵆:Z<RЫ'|1c7a„L0aRc]aU}{ы^ 60JU477gرiiiIGGcO=ԅW^dKmE}C;g?]`S{e]rkg%\Fˇ׮W}eV.-^y>O~Ԟ0j fӛJ<<]y)=4OzFO"p)}|7uSQrPӛN4ճjjg>WMz^׫M%8 _ƜY83oTǵ]Q;@gM%TO}{j֫S}V~7cC=~R?t೻bp^*Tjb՘'' Vg!O}]I6$=gv̾)S%B mNoU%USӕbU3p`5z HS{UV;|*)kNzCekgT϶Y7Տk Nm$6Ԟz}gf f!]3pF<83o*̸Y8+Uug;Yqo'/oFnS!TI+LU/\x{jOd:jUYu`pa;L3(36 aT]U}-Ţ z1ɇ{;j IvJݱ*UނJ:jg6z)9'1-T?L-6cgw©~,ޖ$Ƚ=n#C 7eS웤8/Βk&Nq<9ĵ$Gƛ=h,?֛e>#л49o}p;6vR1XB{]}ͺ}}f('*앳v = kC <^0|uSo@#1&)?[wg0|Y683f #TY @MkP3e=9P}PI9kopj 5vμěޖf 8ɮGr_+}Eo©~}建+!P v C8_z ${maf8PVĈ8կ GA/Y. >BxF" tE'7Kf e3zQSZxF'yp_q_ eۣH1 ,z/P`f{b>dĩ^w8?{#b8CȮ~Qjxؕq 彍?`du=`7I'%7ڕêj;bJ:|G7p(2${F(5 f$"I gDIbƺ'}f .E=-frۆV{=1b8 -vb$Ǿ'/ɸG!Tϰ7|_PSpS?GcVb()qLECLJ9x͟ o6ȱ/|Fb_^mAc_'gM-'c 6=j!L ?)2k?VIENDB`extension-manager-0.5.0/po/screenshots/_28.png000066400000000000000000001245611457631363100212360ustar00rootroot00000000000000PNG  IHDRpA%bKGD&IDATxwxWnZ(VEd DAeGăBE<~* p8@2Q".~"KQ@iiIۤM{'q]|bt)>Py{@0Q``,H6 #^/Y:hk U0:eSBz@U0:&*?&XWCP:_ V: @2kܰ% @ )*fS%PAN86&_ 'BR* JV ^*]!H m<>?a/r=(o}7em9TƸ6)o!?8 oڷ!%<^Ҷ+i} q5853ŗg?Pqe5%$:~70 Q|7*oU6\ZwJZ^yx"ݥ roB #]pS־zxxi)wA/C7 o|ܸ ks*Ǔ69K@QYMK r,P|9LY-s?/>y q!dv7޴)mOZ˔ʦ3" ›qw› *3%4%58[p|ޘJXIpM ;/9mbXct0=Ɠ঴rh@)-hY.)oMW p*vݟظvܰxIUxJЪqAT|Ღw oPyo Q|pqZH?3,򔛛kt)_PxxL&BB3` .ͦyV7Nw:3MgwZ5&qǯ8eq]W|֩Zฆ6Sa͛7Zfrrr%ՌlV\\"##3L&+""Be2Cx8GHHL&&5fZ]3**j'.V8U/^hISw7P'<&&QfMmuNhhj֬itߨQfjԨatPa')\:Ifܬ/JyɅ{F.m9<>^5jpNFWllp p󀒲ƗFk3:,U"##>R^^^EN_ŗyښum (;nJA%<֮];GW\qt)m޼YK.Ֆ-[.ϯDFFF>N5dl$Vl_ݝӰ9F8 e͒aaa8pnծ]ۣ}N:?\SU/44T?s'@ ̙&MgϞ0a;kfY?"u7oҥK\xǘ7B[2U\e8 ]|=W@?hڧvںeoVRe ӄ  پ}{M8QO? u9siӦ癙_pJK.0a,X V9`ԩj޼4hݻ;?o*T#Ӽyzj;vLwnf={I&Uy}ުT1*zos:J "Dݺu$-X@sرcգGhB)))p*.qh߾^x 87fK/U۶mժU+ 2D@%&&F*,,#Y6oެ_~E)))믍.Zv}vÇkΜ9ڰafϞ>}O? TfY>?nddrrr| Zg%?$/IE›޽[TNJ {5kԲe˴lٲՉ'}deff*$$DSLѕW^o&qt?k޼9c_A(77?,BCC}2D Wrr2#P#I7o^5| :TsO84DGDDD?3Ϛ0aN>-u3^ziȑ ј1cԮ];8qB3F]vСC%I6MӦM,X I%UllF뮻N1VFePBB;<>|;]aaaz'g;vԨQ$I֯_6GxS^=իWO&Mرcb/t&y饗_TJ ,P~~|r o\ۈkeO?oQ7|̙Svrs{b(??Be/ y- %%dI%@0c eff*11QmڴQg9Ö 6w}=kԩJKKӔ)S~;mf$9ݺuԼysmV:tPff 'ԼysM:UFRBB}Yf[裏<>vy^\\vf͚JOO$[]>Xd$9C@o4|>?6Ko< 6.SRRv{kOlR[W^QÆ c\tEql6 pY5j0 9+22 `m?G'`2t%UVWxx?oFG5<*ղeKIΝ;5f+/ԩs뮻N)))ڻwU8uMmڴQBBl6;͛7/TNN%&44Twy:vZjݞ={5jhԨQUrrrV #GW^[GZb^{5Vr,8p7ԪU+?nJ-\PE]Jaaa1B3fݻ X;wV~^dyÆ հaCu]sю; X{Vn+,,LÇW 믿VAuP顇jujРA2eJmݺUC,{u]w|2Lu.OrJ˵d{޼.X%mS\XXx }Wڸq^xEGG;כf=cZn~K~Mekի.\-[kq.6l/_[W֭5p@^Z[l̙3_XJ{?SO?g9[aۧJ-R||j׮Ecǎ 0b۷ϣ#"q驧RLLs_lɴh"{=\}kճ>ڼyRRR9s>clm863ϨI&ݻ]tEE0=zt颇~XzeK~i\R}O?\޹sg7NݺuӡCb իWO ҝwީ +%:p E˗/פIԸqrVЁԼys-ZH-R˖-ua=U^OJJO@cK/M6ǎP[0KLLSO=!C/;Cӧ+,,L/”;F[efeZ→yn>ddsxƍSLL5jAd2?5n8=RL&ZjŋWyhǎ:qRSSF111ӧO'Nѣ6msz駵{n9rD/b_˵gϞ"/\Rvs*$$DsÇoiٲe5%)|w^:tHfґ#G ;z qZh49bHMe37a D=ZkVڵskр$[;vlPMme"ժ!C8EEEiΜ9'O+bD~gڴizT~}=Zw}>HfY5j5TAi…jѢ~m_Ǐ:9"]*q2L1cv3݉-./"",\9Oϫ={+TڵUnݠ/&E~+??΄4yyy3f9 oCc;vu֒ٹ<غxѣ'LoHx3h ͙3G$}WF\l6Nyp fʔ)F܅7G͛uw o3*yUU_TXXZ]v-.''G7nK/]K.Qffkc3Oĉ5iҤ"@u[tIܹ[o1B 6TÆ 5rH]~?9zڷo /PQQQos)կ__!!!X,={FΝ;l6 .p9+Ve]:uh^fIeH銍U߾}nM-[,zhժvlmsq_v:wQRRRbt.TpӪU+*.VC='yWeXb 8y1k,v鲃ɓ'[o)))IS͵vZ4ie˖l;w`jUVVbccըQ#`%iڴ$Uy,JLLUW]}YWt;V걷l٢_#GԀQ{ӧ=>u]O>D7n=f8q5kaÆi̙׳> .@'Nٳ}vI?zJsQaa-[x\e~M'O֣>QFiolS}5kvβǏo7Tʊ:!.&7]1xއ}츯եK~+5L[Vs/:gJ:z\:Z3fe2pB}wFmN:%N#sV=gժU+"Ϝ:uʣ.PQFiС7дi|\WV-mڴӒ,.m.7\.岬scWeMyUZ`۶m$$ZؔeJJJRVVO~7xf7gmذAvRnԦM%$$fѣڲeˠ&b vuIj*uSN+3T@"ͦ޽{ .h4XB3f̨'hsVU FTΝuwjŊZ~>G (Zh7jY#9b]_gt ~AsVvv%YVUF222dZ.4.rrr$IqqqWb >Y,1рJFThh,򔝝Md_"l:QVU4@5P١QB!p!T* ExS u]JSV+rwu\/i͚5.8Kiiu^]!p(þ}J]߬Y*t$* |dtXp btejذFa  v~P4KL, @4m4۷ȭs?x`}ھ}֭[Çdr1Sg}7n׵iӦRBU(EFF*4oY,)77Rαb ͟?{ 7hҥڵk5jg}VEh=Sѣu-hQuiݺuUzNhSlVڵCxR*&&Fkזlx0M8Q7nԶm۴l2rzRbcc5k,m۶MK,QBBWCƍխ[7=e7nTe۽]k65x`=%I&L͛Ǐ;CI&P+V뽮G."##.@(OԧO\R6l_|6ӧUV"x uMҙv'%&&:UfΜYfoܹ*((P޽բE uU&LЦM#iذa^ 3`Ol۶M]v_.]hѢEz'/V>Ż@=zW%mvޭnɣojƍz7Z?֮]+++KڵSYرc%?󕐐իWOW1p >}Z|FwyG]vjcǎ_կGmfvJLLTbb9#""4k,:tH&L(YYYz7TfM5jԨ̺Ҕۗl֔)Sd-\P^ -IcĽޫ[nEWVԾ}{۷'ǮQ^yp j׮o,Xpӧ+>>^SղeK5mԹ~ȑTV-VVVVn_%Z3gz)u] 4P׮]5c 6 R\\Mӧ+""BÇ}HKKjM7ĸh+\@СCըQ#eggk͚5;wOmXTn]ˊ֡C4qD-[̣fspTҙ?$I֣>M*<<\{СC9fΜ)٬g}V:r>3IR-4|pϗ$=ZdKm߾]}7n<#k233/kܸq6mf_(;!.&7]1xއ}츯եKPFP9w)Uq5I&5m4KXY-5kVEVZڴiSgI%Y%Y\mg\nv\eYvǮ-fBR6M6 8хKӦMSV$I;vȑ# bt@@!#֭[;;a(I=ҧ~a UVi޼yEY,I}6 sqѾtkXɕ*xiǎΖ7?s'-l@"ګ6mHmۦѣGaaa,,??_v{3 >\u?Oj̘1z衇4}tSjjKխ[W>[7p #.KmݦnȲѣGk۶moY<222$I .3<ӧnݺ ƍ?q*zFw !3˗/׬Yޯ~2Lzgf%I֭[5gmܸQW͛}V7*"%!?K/T}vr_ b\^5#FЩSYoO/W=si˖-?~|W :/=;Py?\8^5j%uIW.q[j֭z4{lխ[WGV :6^.07"|v'/M6MZtfJq#g:}?|bw'uR!) `Ux _wB :!.&7]1xއ}츯եKZ$$$QA#1"P}?~SN),,,8Jwzh #^ZiӦΒNKJ>.7s<˲.][zK[n_.Iڲes9 FE/b*3 (ǴdKcƌ1jUDp*_8< m[Xtp~^ 9 wp #".d8CUŠ6_u Ek\`uJc2bX.@w3A=SAYp\M8*eXkt0 -p ԳgOIuVxiӦ/sq}G9s }ZϺu{nzH 4ГO>|;/oZpMp IZ`W$%%nk>gƌ>==O$! tڵtmy}٬#FhZny\RחT{CG5vXqڷoŋkzwԮ];5k֨C-[Ԇ qjo zZ q@ pNٲeZxGU裏?TRR4hv (::m_ѣG5tPM9rDǏnWU (OFۖ8 N חl.2H/)77Wڿ@7oVƍ}ZO[xz,T? 2L2|#ExAAgo^P qav]q^]#2[Ӹ/s/?~\Զm[ql^Fzɤ /P.y_yJII;CIvr裏uV4iGM6MZlRSSuȑsG:u>5h@ b:@ ; V[qoru~玛}ǎZ]tY˩#FPRRR}75cƌ N:Zf:u꤂  @8uŒ.~<,jժM6utZUvfw9\nwy}K{Y 4sLIRϞ=>ZjRSS+|-ZÄ7n *9_FԨQ#㏪[F VɹG)X=Czu1{Zleʉ7'l߾]7 h}Y# 1 @p!O4 @!s8~9#s8~?S7^F|8 oZ8%\8v"\@aC@",8 VqcPMۆ  @5c}iAiذaٳ֭[dΝ;#ɓUg.i@C o$UVJMMU||͛7~o|̙3UXXX=CjР|J=($I ,j$vM>*TGuڗN+?Fڵkm۶umf 6L7|:ׅiĈ딘GjΜ9%iCIn-[Lɥp̖-[$z4#FPK u!5Jyyyѣ&L;vhZ`BU>A0q5>}hĉڻw4eʔ"ۼÇk޼yJKKS֭K=nyC j~2ڽ{wԮ][7tڶm8թSGQQQ<ݧ-ppL&LZh5{l5J{-T-pCn+VZ)..Nsn?gP޽t{f';!A*%RA/B4A)jQP̈˸u2E(UT]1Lݕ !e[KEJH4$${&7$~ޯzֳ~k5D~aWhrrrd6]F+N> OOO۷/P%I7$]Y]h,ml˦"߶ʚOa7o$[n[nԺuS^x8PAARw.݄::po eo )Ox7F`0,:D@QVCx"t @8\#phС -͛+&&F^^^ @yU^]͛7WUzuGbuMX۽MjӦMv?^III7o kC#GT&Iv+77Jpnݺ%K9 PQQ>J @i<<}P0믿;eѣ{=KUfMIҐ!CԩS';V}U~~,X \iի{JHH o,o߮DZj@UDS}:p2335{lK.ruuU5uT;vL4ijԨv9l7n,777m۶cnݪjժq2U/Haa8 ???5h@...JKKG'P2qrr%!qㆮ^*777L&9;;׵kT`|'OԵkԾ}i׮^J#,Xĉ:}&P6Lw#//Oѣo߮];C z*P*.,,L<޽{C6mRAA֮]'Ξ=A);;[wvtـկ~9shڵp,͑#G:JU ?^uU-_*K-$I:>99Y#GTݺuu 4H3fhȑ5lذr7Pxxz衞={J^+W>PnnPTLe[~'vT̶1&,ۖo388x˗v*Gxx pW~'e?qqqZjf_ɑl>(钤۬ o.Yl˶levvo[e|qyIu릺uL[N111Yrz28PAAR*cN֯_?G*#p p p p p p p p p p p f 6LݺuS:u>|XÇWvvF:tBCCo o$y抉*F֭$)44T{yy)&&FM6զM94o<zc8Pݺu%IK,s "}T0hٲemѢ/^ݻ4i/Ttt$)..N}BBB1c(99Yԯ_?ApOp0_)IZٳgkƍ1ƍٳ5k,>}ZϯsuU'NTVVS97ʅl֎;te]|c͛D붳x 6Liii 6ܷ@ U*%%E񊌌T6mn;իv 4>|@SE*,,L#FP~~{zN͚5%I& RRRR4yd}.tL&5o>VBSEyzzGVjԪU+ŋ%s%m޼Y&LPF`؁Ο?uE֯KERY:vpyxxԩS3fK=oʔ);v-Z$٬#Gرc駟wS99;ٴ[֦bm1ٜgٶ,7.7[֞*չ|> l6; 0<==o߾@I$ݐtf]xwRdXe-[l~*N1F8мy$IݺuSݺuuNff֭[, (::Zю.jժ_ũgϞR#DFF*55?.=ʴzj 0ʕ+Tf͚)55UZkDc?Tk|||۩ڸq~8D4h~2۶nݪofVRPP^s{2< *v+Zp8HSLQ:u>>>JHH$SgϞ$y{{+""B;wvH>%w]F|gVV۷۵7lPrJ_F%iٲeX=ѯ_?YF[nUttyId۷~~hW_}K'T~;wSڵKa6?IJNNVBByk4h{9護*rm+Qe{5j(>>^oQF6oެI&ݽl2ڵK+V(,aaaZr%IڰaBBBJ|j T\\vޭD@VDzGRR`>`XB׮]8={V={}s7BCC'wIҐ!CԩS';V}U~~,X l=M6PHHΜ98(<<\^j wGAAN>ѣG륗^RbbLFI,Y Znӧv쬙3gѣZ`$iܸqS~ԧOjĈv6mu릃j̙v}ne6Uzu,ZH...ӧ$iС:vK|jU.]hڴiSﱬ瑗g z,աCXzw7F@@|ݼ7Ξ=[bx ڷx ;JKKSff6lؠ<:u;tM4I5jPv}_^GQVV.]*'''-]TgΜѩS-ZZǝrJ?~\Zh222_5ʣ<:99iQH<<<ԫW/(;;[ΝܹsաCJϤ$);;[/V:u԰awڵkҩS'I?  uM%U.FooofرC/_uСbU޿<+V׿x IR˗/v[8TTTTi6h@:|p\\\fmոqb;q$ͮڵk뷿ZhzH?W^kׯ+66Vzgd2Sl0VYuqJ9Pll-[Ciso}zߞѣUZ5jJyyyxmVcLL|M:uo_Z󳶵kN-^K ^ɓiֺukصeffjҤIwʔ):~-Z 6_sƌꫯ+WVZ6l]B0LjРA#,ɓz5tP%$$CJNN;&))IիYb۝kk…ڷofϞjժi…ZhƏ;w?NUIϺIΝ+IzUzu-[L{NmڴT3Y:v˗k֭իƌc[Vx%۷oPfM=#]ԠA~a=#8*-nMem*fym|sreҠ+11ѥ$''4ڷo_KnHn.f)Y,۲ٖMۭE6m6W A&M(==ѥP!pP׷~ѥP!pP8;;Yf $52fDr OrtT(F Ԯ][}QPP$INҎ;|r8B8ѱcGM2Ev͚5SfԷo_Mbccջwo|X^{MڵӻᆱcQ3enZ}d6ռys]rEd65|U^]}N<{LC ъ+4p@effZ[jUzu7Ѹq *::Z ر6md='<<\Wɓ'KYcƌ-"##Oh:r 뫀 q0///M2E&IsQll|}}"'''ܹS#GԀ)Shxb}O?_~nTѣG_}U[׮]$kZdI&Y׏?QUx -\PZxFm۶jӦ fVZ^m۶UrrrǽKz+(??~_* bc{W-[(66V/ M0AǏWBBzŋk۶mQS yJQ'X|}GzUV߿z!K.]*٬^zINNN1b>c]tZ/_([ruu-7xC}]x@UG`ڵ$Wo+uY;w?mz$oj԰aC.5jnݺb߿_NNN SN]pA?$ڵk3g ^xA5k^f~z={V (vZT^=? $gN .… l}2/Σ>Zf>JrU%I駟t%խ[}j֬K۸q;M8QsQAAAZL6M6lx۾zY Sjju>>wuuU͚5nmׯRSSw^ b WN:O?TomΜ9#>Zx; #͛7Ν;u M8QuQz4}t͘1C_~/^,z̥KPzJv[jԶm[u [eYŋ~O[OȰv&O|'#}x8%I5uT6lؠΝ;k׮]cl)˧~YbBCCan24d-_\W^[ʜD8??_ӦMӘ1cTF }|FU0[|rssծ]; 0@_|zӧ+22R!!!Zv  ]rE˗//Wߟ~gW^QӦM秮]Z'BՕ+Wl2nݺ ܹs驅 VhϞ=JNN֋/hמd}ӧqկ__;wV@@@_A~rrr4yd ׯkYsyꩧ4aP'O.ׯ_WXX^}U=s7noU||_Kz4d 6L>N<ݻwk\wTT 5j(K]tQXX_'O?wU @qrPwiMlc9ϲmYo]n=w]|nuA2dqM}(((H~~~***۷kyx͛y9` Lb `p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`p8G`.Գgϻ>0`@suuUjj|}}TTY[n7|2g..,~KB8X˖-+︸8mݺU۷WFt M>]իի{*""B999$٬?z-[h駟$I&M/-I2L UHH_+22Rz6mڤ:ӧY+cAAAzCiڴi:u$&N={H|I-^Xm۶^oժUJHH(oggg 6L]vvYO+Tf;MIᤦiӦ"""3g(..N>>> W~Ç[7nԯ_?G1b$VZRBBtѣGkӦMs N:iر۷`f16mu릃j̙voW^QVV.\jժ3(Ixx5rHWyyy/tW_^GQVV.]*'''-]TgΜѩS-ZH<<<ԫW/(;;[ΝܹsաCI?)fY;v˗uq:tH_SNձcǔI&Fj׮$);;[/V:u԰a돏ױct***RΝYruu+:z222sT^z@8;;s'N$ٵKd24{lI\\\!IoxرCk֬ԠA(--w^^<ƍ[OFF/K~~RSSKNٙIp*sIr$ʺmaaԺuk(**J{ըQ&$gggZ׵kJ%(*|XvdL&L&]43<_ ~Pnn_x\JJRRRtRZJ:}ԲeK$Yk hSOiǎ~ӸqSi,XVׯ_Wll3d2G͛7$yzzGVjԪU+ŋڵk5qDرcݻwfRhh][~OKF6o,I:p^xկ__>>>zK?''G 4rssn:M8QO=4x;h ի?~|||X>|X5kTǎ.:uJcƌQ~~$iƌ9rd 6\IL&5h@v{UTT<<<~ CG@8Xe*[}jԨN8ӧ+ @zRzw^EDD(''Gd6?Q=ܴe͞=[?$)00PԤI?^_~%I&I kEFF*##ZϦMԡC=c:}"##K|VyNJJR.]ԴiS}wԡCAI:uxM>]qqqZj*ҞVǎէOݸqCZf>#yyy[?,oٲeAF@@o=ڴi]pAcƌQ\\.͚5KÇWDD$iܸq['٬1BӧOWZٳgkƍZC ѳ>c*//O#GԂ /@!Ǵit9 :T3g~;=zh^~;-YDjذ&LpO(իllWlV.]ԧO}:t;DI*W9pNNNwuueeeiҥrrrҥKu:uJjѢ$CzRLLu9͝;W:t$y{{l6kǎ|?CIykԩ:v5i$ըQCڵ֓4eggkŪS6lX=?\PfffϞuҥ\^/ٔGAAy 2DAAA֭5T8gg{ĉd72ĉrww$d2i***$C*%%Eڱc֬Y={H4h YոqbP^^% u\öClkڰa̙ɓ'wt>"q0סz5?-~IRuBu QTTݫQFM&I*,,k׮xMKPTƍ_ڳ|.p^rbWWU~A .M,\PW^㣬,êY:vpyxxԩS3f%I3fȑ#%%''kذazM,;99Y#GTݺuu 4$=ZzRRR4bĈFIJ{6&I 4Pff[IMMUյl2IRdd]{)W>mtɦݲ6m{<˶eqv۲ u;]\\VZGTfG(钤۬ o.Yl˶levvo[e?>5jH_|EΝ NJ08ɓ'+ [<Ș*_~.J#08#08#08#08#08#08#08#08#08#08#08*,22R;wT:unHcSSSo[>cI{ァ9sѣ_îaÆڷo<==UN֯_do;#OO puuUjj|}}+/..?[d 5p@IRjjjǵluvv֘1c4a„2]jnܸ!Iڵk.ɤBQ͚5նm[mڴO… p]xQ Е+W^bA]j~im۶c?-yyyݻwf͚zǭ7jHիWWRRz駵{n5o\>L'N(++Kiii @c7w:Ҧ$/_VTTz-Ͽ~߫UV:r$)00P_}l٢9[֊+,777կ__V\\nݪ۫QF:qΩOK޽{I?46lv*wwwܹ#b/uY 0fWn8;;[ڵKZnvܩ={Zj$=cV<:v-Z^z媹M6PHHΜ98(<<\n=><<\9rk9@U@c K,ѢEM*\8e6m^{55lذcz]v-:u߽{Zj%'''Eڽ{{nkTO?٣7n(??_ g}}jO ,́c 5ŋrJuSjjZjF3c/#<֭[޻ׯkӦMںuչsg=zU&/dPU0$??_ӦMӘ1cTFU``vamx<ҥKNX| ?'TӧUTT !1ʜ֞={_|}Mbjw̮]MǏ۷m6hֶҸqԶm[5h@ 6ԛo͛$i֬Y {պu4qD=S?W 2翹UTTnkݻzmזb=zT?S޶mFi7˗%Iƍ^Ç7ɓ'e2ԠAeff=͘1CcƌQtt ӧOS-nMem*fym|sre,l6; 0<==o߾@I$ݐtf]xwRdXe-[l~*kF*#08#08#08#08#08#08#08#08#08#08#08#08sqtڵkO> $ԩSڱc/_W :v)SîYfj֬ɓ'k322R]t$)33Sv|` l۵=3?6nܨ &xB9sFGULL;fw\&M+6kL˗/נAo߾;"_wJe!1;j̙2LڲetaI^{5kNƎ{G!ΪU-ggg5iDǏ5dȐێuƍodU^l6QF~8M4I7n+((H۷o,>ʪ9pKSLdҜ9s4zh۷OyyySJJFhL&M2E=P׏?K.)55U3gT6mFX]1رUXXTM:U111?~j֬i=.++ؠaÆ Е+WJ컴pW_l٢Xk%Kh"ŋm6ըQC}]zU*((?*--Mرc[lԮ];k[RR}C"&XԈV$STHډ%8&8iLC4&`h6шQOE2ppp{-ww{gޅ0..X VX/il,_<-Z˗/z(-[zj̛7/V\ׯ|;qGw:.Xvmdɒ~AlX|y퇭3,8L&&L/+Wv9iĈQWW姺9眸#"bqgLj#z<_\9"b߾}|.pƏf͊+V|ތ1F{㎋ŋǼyb„ qwx83oo _>$C &DDĦMlKb…]e9{͋'|2xXzuooFx㍽|0,b\aOFDĴi?;NTUUO~hoo?l˗M7T=:M6E]]]ݻ7^z'>=Pc7n\<]޽;θK뮋s_=zcO6o]GġV]]o| (fTXԧvZqDD+~8p@Ø7oa*'?ɨxsˤIb֬Y=4rȘ4iRK=|9sf畵o^ҸiȑQUUUU'@zZaKiϟ?}vo^:_"GuTqq饗ƴi:>OŘ1ch7o^k#ܻ?s鲀s%qhnn:+,Xй=J:fΜw;O:p@G̟?ԡ 92"">Ǯ]G^zctҗdɒصkWrʈ?߹w#SsOs'f͚yQ}~W_UUUqy /PtǏQ_>h,]3zO(L޷۪sy]qۚgoǜy晿*vJ5kV|߈Ƃ޽;,Yy)o`xعsg1d3&3"bWDEDkm{s~:r~#qlܑs?WLz|\*/bܹq̙3cĉJ򗿌;_3oKI~[[nPX q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q@ 8p'$NH8 q5@bԨQQS+ʫ5ZZZb߾} 0Dyc 0`jjj1FMMMV!s U,5551zJuuu 0jjj'5jT Cz"0=p'$NHaĉ1cƌ8qbGssslݺ56lJ!>ӧw>zشiS7d2Z $A)ĉ;ZsnycOt:?lٲeK;E_|$FWRfeOzě\j<]ﭶ8p@쌚G}1#8%:""bƍOٳ;/SrM:5M'tRlڴ)֯_UUU1}8餓&l?p""/|CCCI_]]55]Xڢmܸ1Fy)TǢ>뮨>;f̘ׯ3ΈGy$~?0ݻ7:3fLE=zt8Nmo<֑#G]w틈{,Ky^(!h˖-1y2eJE:ujDDlݺg;3&2Ly 1bDr<``8%ڰaCL<9fΜ7oW_}}?9sf.3pUJ+Ć bĈqgsLTWW1f͊ DMMMݻ7v1㫪ztϞ=q8q⠎(/3p{L&ӧOٳgٳۧ9bqǞ={>8ꨣ:ٳ'N=hllhmm7coDCCC>``8}k֬~:f̘'Nhnn-[Ć bǎ`?~Egy&fΜG}tw}/of{ODkkk|cطo_򑈈x㮻vrH5gΜ gk&O˖-O}S 8R4f zk?ADD\~]+㤓N||I'ŕW^\s`z*֭[WDġx &Me{mmmwy1uX`AsWFccc|s &-N_W7n\\p/첸{ m=&cuxg"hR3rR_ĸ/_fYrOkiӦu>6mZ&ԴJW\qX5iҤ+~G9]w]477 //5jT,Z(-Zƍݿ*-sDZjU|+_kƥ^'cŊ~_ƌ7pC[.֯_7|s||ڵk?y,_<;袋ώ|+q??~|,]4ᄌ;;O)ӟtY&_.Ν~s΍QFu6yx饗b׮]z衘2eJ} 't.2/.V 6NJѣ#"ߓxsύSO=5} .Ƹ /[o5v֭뮻.jkkcѢEq7… .m۶Ň>ضm[G?SO=5y.?s\2/^3f̈o1̙---dbhѢhjj*wt'vys饗[oQFʼn'6m>~ؾ}{}o{؋/öǢE[aPnfѣ /(S?p3<=X<ӱgϞx뭷bڵq)DDD{{{[.voVu]"UUUEMMML4)^3N>8c͚5aÆػwoӚśoYt1*6ިM[[[#"zԔ)Sb֬Y>8qbY 0d} r-Rm1hoood2Uk&fϞ9`lٲGw]fڵ9sĜ9s#Ǝ{M6__~y\{ӟ4n8xa8㢶6~unkjj*omٲ%q뭷ݯ%^~.۶mǏmܸqgϞ5u/wy\SS_~y|_/1G}tPd^lZ''q:5UWW ;>Owyk׮ؼys,[,xޫN ..(v3gΌ t>f͚XfMp q;?#"\|۶m]tQk߾}z8g?YtǤIbرcǎ1cF<ݾיge_|1"q5{2eJ<>&psUWu]ׯUWWG[[[SDEsu_qRmb?9ٟxvg>6mZL6->XpśCWDjll1bD|\T7x#yΙ;MMMqwyزeK|_d21a„wo36_۶m_|,\0?[k'_&/~e9&&8\DdO'?tMJ%No~qJ[{D6559bĈꫯ-[q8}c=w}w\z2ƍ.,VZk׮XreDDW|UVӣ=կƱV;#-Z4h9,X?Ob[ZZbŊq%]{k={wcҥ_566l|=lQGUc  p ~͉'ov;bĈhjj3"Zʹ魁nVfޙo#?UWEDuOMm3VFĄܘPLԙiӦ# 'N[զ""^~N*c'~iӦؽ{wY`/˱p>~|{+u] 6|."ġӖsɝN8t7#7g@"OJkqwϷ2V}ݛ~hkk)AKKKK;vt_@yzs΍;Wy뭷boo%:jkk7߼)"GOʏ3z-ɜN53pzSUq&o©:u꒣:jnsss.u=\eRHP}%DCCC޽{ƍwoo#:KDt?|R]8_/݂ƹ[6nO{UCCCvW]] w_mܸ"%J;=*W_L*p%‹:}[#bO<ݻwnhhȞOTXmmm̛'xkqhMKG"g{_U4 r.d\L}O8:W۶m{xĈן^__?PrZU>Į]*=$nTJ&9rdE[[ko56mZ{hS(do Y=CJOw&L޶bWʮ{[]ǩQ{'ѣGW[[{Zuul0|꫕F|7@R}i755^z$-X|0ޏ5ـ]NSnۻ_̀Š89Fo2.4жpu1Bkr~k0/.J6drgϿm/^ŮP-kOe@p._mm7{iQkD@y ,&BRaSJgŤp)5dgMqVet$=SnH)tSwݴxMV~2N4ǹjgÍzzU=m)TP~֡ɏ9pgtwB󏙿_73iǛlFv?'t}WhLORg̀UDWݖ8qwW~{NyJR'bW$>)T}S촪gdgtDSr80𺛁}>M~?*V;}*"8eNwϟ;ۦsgPH^~~_~ݭ3PoJٯk@;&bYy__Y߯ۻyb/.o IWݖ{/d:*O{7{"@ia &S)vRf$e0cCNʿ_߅Nn{O 20p ŔB;7IlxOEDTArz5łJgK Eěbom`},b{rp` ;pY6=;1I;HsNz,d%vFP 'x3$Tbf@Eg{mY6Ŏr*Sof'$?&"Sh.p\j)qqJHߘݬ{hPqW4 垅S蹾B(fڧ@H3$fDp ׈SO`& t)u߲d}ܗK (MoMRM}z\O*`_*@En}= T5=]]jHǛm<ݾf̛B'V̰ 88rrKZ8tw] 15OO17ӛRRL9M_/TbD"Ns2Yf|JB=hH+: D}RH,)}+&0ї ĩOֿiB~}yJ-Ru?&xnڔ8R紪#EWϗwGrG&bhĉT#P 5IR?j(Eru(}frMP[h5$ ňt(^R=j p1c uWT:B`~#T fL&H )~-PJrE#}7M֑<vD\!r n[ndGt5܃p0 `O&`;'8BM(bzC:@IENDB`extension-manager-0.5.0/po/screenshots/_3.png000066400000000000000000002112731457631363100211440ustar00rootroot00000000000000PNG  IHDR/ VتbKGDpIDATxwxTeL2=$H轇л4E}EE[UWW]{WTX׮.*H$̼附LH5<_H3 FպȣӪmȮ-᮪eۍُvi{_Hc4!>j*f:iZu wu&JA!!!Wo"""""""͙htgΜ9%àVnc-W,{x```yG/""""""ҌtQ Ry9jՔpW53yi+w7ѨIDDDDDDK&Jr%kMkkn&AZKDDDDDD.vr`*'ܵĎpWL]""""""r;z[>\6>꺕+ uNU'*V-""""""eהlWʓ](bm 6[KH=p&Dqo&?D"P)'ƁVLED.zL&Μ9jm:ӏlL2FWFS3!ݷ…ЩSV4v;Kzz=z4U""Rյn^UYRk/"r1x??бcFx0͍V4gC ouֳaF<<<:u nnnVUGsxQUpy#]+d[DIƛ: :}ۼ=dgg;EDD#F`ŊRiLׯeϞ=<9}: | ǰa#Χzu)(xxxpm2|0|}}ٵk7/ oSu?㪼gʊf޼9{߲xו}֑XGnڷp:7w}'111*W{ED>ݻ7/w}6ҋtEbbbSj ʓO>Wd}]!_O /HNN%(({SO=ҥ% *Ԕ)J||~~̛7abo͓O>A,^5V&77*_ý-܌lftԉ9]nɗ0d [oaѢpss'##;ٳ1cZfͺ9sw8Gx챿1m4ٻw\3 OOOoI&2wrss̚u5ݺueǎC2bpʕgJSOҳgO:u_}L&NNccԩg{nzYc WDD{'%KrI}qN9ZEСlذxzz0zhڴiCbb" DFF_mvƌMǎ9z42%kl63{uvۭ׏7%Vreύ7ތba|iiitS⊙w߽uP2Ywx233;, ƍWdu]UVUyϔ{zΝtvuhS(OlfΝ]Z S5_v٥>A…رF͛7'Z|9<۷/kMupUW+"3X}qݻ{yz⪫{nb0s82Jnݺ3f9|-&֬Yf]vuz.))r-qqq}jok;/}Rż+$%%3thtשx*欬r,G+""b1SXx{QQg6pE+;; 6+vop}]tOPe9r={лwo=-7~}Ӿ}{|q. Ҁcal6>P=STTuu:Dž~:#שx=ݻӧ5Y; ^JΝ8r({5{;y),""_|7|bfϾݻQPP`஻$447|t^~\\\x䑇qqq᫯?\N6>2a4IHH`̚5B{ر򗿱d7xyy3{r-[ݻX,Lɓ'˵7T>֬YKXX]va5ʩϵ8qGe底px*F$58>PdґP=SWoޅ~:#שxK_shh(;w|mHE11Ù3gn3333gn= =xk׮8VDD).|>>K|ӠeX,-Wę4nr=g3`N-"",T5!$ihoED,- &""ҴiSKٻw/ח[gϞ'&)[i4i4KYYٸ>}|ŗE+ݷ""RVpwEcEDDDDDw!i.p8n'P-""""""ZLDDDDDD -""""""JEDDDDDD@ { wbbbC!""""""rQw}:3!i}u8n'P-""""""JEDDDDDD@ (q%"""""""NPuǟd_*=?v(c\3.0믝[n˦s) /P1Ef3#OOKx֕^CQQV ϏJiʝV)kfrX?p6bD%zUu]9_j5Kظxrss cAzi^񉉴bQz3Vp!z 7/bi(NOZ c&M)ؽZ?7K㦹s 4$[n9=%e}x z>:EEҪeKDP6r0rs8p۫䪶s=d09'$qV222HNI` ]ep :";'&beDv@xV̹Zj7ytD``_;LSR8b!&:___";tԑjRd6g_ٱ#[؟D~~>kEFu񞯓N/XQc폧{8WU1d{ʙ3ݳ!-Zp ` HCqz򫯺يkj呿>`b;zJNe&:KcfA^ݺjZƏS;oo;>M[SOra6l]نmwpAi/u/ddlZltڅ2k< ҩS4ֵRSSX,t-3={t*_UuR kꫮ^wQ*zX 7ك䔆]DDDD4o$1EXVV+Fc.Y>~h>#n&V]sO?Ybؾs#`oݚQÇ?1ixRo[\x|ƎōseX(e2`ޭwWDZ+Vfxyy68K9rN,\bE9Øj&iJͪKW]3ϿH|B<8sg_Ͽiiirݬ֥j7|rח7^zヒ^{yWWWNJX'aff͹`;Uk/VG݈a1|7ܨ#x:xp]2[x{ пN an^+W!? wxV#䵷?KҿOv6ȳ|o~`"\]\hǼg3ifgYݧyIȠWʋLO@}t FJrxoXA@EDDDD6 p0 =,Tv6lZvHmANչP8r8@]DDDD.~NK_ %\_(yn.q4j4f !8L-"""""""N[DDDDDD ݥ E wV-28n'P-""""""JEH ~)q%"""""""N[DDDDDD p8nVrJ*W^3MʱԦGDDDDDnFNW¤q0 MU;Us5M'''$l6C{{yձ kϑW>;vhT|S**2W\223Yn=ƌ׷[O0X,t[ }D;Ǝh$#3B_#S.:r@I\SR=nWp^|ڶi 9Q~hOS֮@\B[߾z x{{^ |[IP` };<կou)'ТEzտ{3fJ~Yoo Xk9K.[.t |CTdGU|3_\\fյIl4ϫE}ĄciݪU:GtzfiV1 WY %>!GIٌ];wku.SDDbp9v)&֫܈vmi\*ڵg9U Kv= KNMY󗗟_V2bhtkgu#`M?qֿM:q,8j`ŮcD{9ZXb "jsr ngSBl\<'N0Kq3i(FI Yߏ夝<1U]dC5㭷TjqssoG徻/nɓ&>s7ݻvJZZ+WQXXøgx7=r׭#>>6myB{Q\\LQQ'%pf okח¼g3y'p/?d??}דz].Ty|GrrsL86t7oݚr+!)>Tjev9oooMTddVbnZپkqfڶ [[{e=%q%$еKb`Zٺc Xi߮C dj6 f^^ 5zK.Sd$q d>M?1C^S^u6raKdRzvᣱJOgфnfcϯ{9|(gJL|}|5m;&0 !HK#ӺUKFQ\ص}K+-g =h6kn=9~6k8p`'==ݺU_l6-~w~}^=zp}{nM^yĤd>x--x;ܴu+w/?ݻ|-ݻٱ#y7~ 'O*drMx8q>^>S/'~Ĥ2qXoTYn=ƕp\ ),*J4Xr223Ke?F>I lءCIҐD큒!~~L3+f\F(V[OvvulݱcL;ӧ[[{_tЁ\OL6lLvvMӧ|>rp3 ᇟSt^l6e2aصDƍӧ~,$qF3aϤ1}ZI,;vTbChHb|܈Hh Xqc/**bG' zBOOO|Iȴ?wك-{|Ji o`uʜ$GbeDv@xV̹Zjs_ 2ݸ u1eD{¢"_cI}.qwsٶZg6oy{kk6ǟx8thQw+|+[h4һgSIJIj_/cX?SmZÃjiLo/xOKNwTnZy7+n///fϺYW]ɺ /;x7IVV?ݿ%;;Ӝ={(i=rkow۰CpCu. Nw纏&pn aXn~~~k;nnn9׭cG92,{zqǏ_c7z:.?וt16UkO}ڳkOBRlᄃCDۛevb͆fr}_:+eS4\'í`}vZJ~Ud6:ӷhnˏUť+o;Kv"b|6{ZDDD G~nyʤuxGDԫ+/?'[sjE\5r<<~_1g@ZźtzԦOg_.JA/w6B-pwsCdg0[ >׏\9C2xEq]\&l&Hu~bΈmY~Gpq1<=#B`.-{'* ]mexc2HJNis7Cq̙u>.(0cz*UZ| t}A]blӵsǮJٹ{Q;[ŚٵPlNTIpc]%\{q[Y7>u7{+X~YYY,X3g3r$̞u5o۷cZI;y+p3se&e>.w~^x5lN$ޢp!ƎEpP0y,[-WhdܘQ<+ bb.*M+Nf6WL&mۄiV:Pn'EEE8x q\Ann^ewbMJOYՎ4X,熀dK=f#ĉR2Iѣص\rrrٶc''ٽĒ;w&19gϲcnf G\Pd2ѥSb-(`-xxz&j ѳ{wZAN";'ظ8k{ZDDkM[ڻT;r'5ٻo? %x{{1rXLb΂H>vܲ*as

>Ccdxb4 &W";TА\2;wwL&WZ1cJ][f˶9ChhS/dp!]Cev~e%V֭\;d2q71:r~ʎh(3&bPc{0?z-&"""" p1~fS0WXϵ6FАD(EDX~>3s5ɲ`>>>,"үOCDDDDIᖦs".cp!||1}zIٻϕOpPmp, n%!1BZjC-~e%GccbbF#xuUWGݛ\>K<== !.>2J94L'`ޭ+ c6YqII v̯{ѻgO Pm...̝} ع, `q/V֮@l\Fݺ1p@~]hHу˪U?xP H4˄;4$WWWNgIΝJn?@pPm۴!!1eӧѪeK:|(+ߟ<O? 9%Ȏ1\5rݬ;vhOff&Oӽ[7j*cxPRctĺ(..fȑUeδzr= Z g>/gѮ?\Ibb-e=[ן+GX)(8SսdH=~m;vBD pDDD~GDu:#8%X,,R\\\6mFc&CfĉlؼLv={dXP A\q F#bڵڳN ` JZ8H?W]1\IRr22~k';;;t .>ӧѭ}#eDGrjуUl ~7 P&vwsch4sn6oJDkGvv6I0seFϺ?;;J`` =wԛݝm;8~nfdljS\?s_:ޚf$99GX fm6?QYv-ͫ͞lddfbhӦM⧳JNLJwvС)KN%9%rg}[gVΞ]nhaab)y-Mxk>^ueX(A;G~F``ST}~Jc(,r욈H, Ef3~~JED) wP` ƌXdmжmv'hnS%l6[3ͥVVtFkr}e}NEpp w]TOLn.d2q3ILJ"!!xV\;m۶ADDDұTwic˶>Uqq1OҢ91tNLL"z`\\\HJNw6J^ӧ[k߿d Jy Nݣ֙ƒDl#e$'paaێ 42Ks7S󙔜LAF}5>"i33LEDDdafF#iBRh%x{yb&==ݻH6mHNI_ӢE pqqa@~҂SYHI9Vk-iժ%Ǐ૯жM2238?-ޭgɷҩSyy1aJeGYq#۵c@~x{{XFQQ֮Ã3.cɷc_IppPe:{5ҡzhƉ4z A$$&UÃ\lF>}mKe?; Pi8kׯh4SZDhLj\,eۀz쉻„qcڥd) ѽ[Wf3IɄqe[ƌEhH9f8Tڹ3EE;p[JZLJ fȠAvɓ'1=ӹSyyy<|>26lD~~>CŰXVV]fLgOHhllG]O?qT:ڗtJC ӓQxF`` qWL>֭Z5 XѮW̘A^=:, NU FJZM{ez׷҃k~=\.p`ͺ>ݺ6u8"""k۶mtԍi24 =8̀R2J\dlᖋšVEYᖋC8pad>M eXXS&"""""4J<<<(..xzzҳG a8nq:бCCDDDDDQi (qzw)?|KDw} \ޘtCi6ԥ\DDDDDD p8AYlbϦӾADDDDDDn'P-""""""JEDDDDDD&_Q9ı]=@箱 e0ZG}.FË-My.Yv%|0X#~ ty>ڏ-lO,hݼ 7S•Es.X׈NRY &0`d'OsHb{9} ؟j[+~.dYߞ|>ʃgŃ!&R2-TK?gs䚻Q~Lᅷg\^<,Nϗ4%i:W5а>߃fpJ._;wFvם.Bf^1o.\lW;3{rBz^1{R!۹|[Kj= 1MmICu=rwWC.I0l\l^0܏~΢$&*ķϐ]`e|7Of ṟ~#y,ruO 0x ^91nXKyi }Y =۴@9% ua'1 "\>FB\8tro,ٙy|w."DѢftAZZ3TjJdO30L(PT %Kb Gr"Hn\{y],:>˱Uhfi+*\ "܋U ,]{pt1g-r ^.T3S_/93Y6mA4F7WێWdxΘ*mkgȶ_DDDn4u;J& ʸEDg.[x͢o\4С'-0ijnjgL؃S-{;ϙ1[.Ov`0p&YUWUb0p&?}vN_X~CY6LV;n5?+Wv=J>Y?^hcE[ŕv_7Q<vkw2oQ 8>%5 pŅo򉈈H5k1fEyODDnN$[~thVz MsƳJ/7!D|okδGWg] PN>^nƭ>6;:.'wmɽc~N!wf RN3K0ב x okr,ix*_Tȏ/py7.f"""w^~4ue \dg_f&ioAED$2?dgys7= .n+M\+1r ;Njf2U J\#4ȝWp1@@"mOl|ѕ̼7s6 ~8w+y+&;=[ce>}vƒ'#k&Թ(yOwTxL33Ąz:r7Х'>yp6;8cQ>9o.wsby<ʛfnxuK}\N eT[9Ỳ(o£)(9GsQ44, NΕVoIcWoӅ|vHo4*Qnم696Zfۏ.-=q1,ak۸B5 I@d}\x6MVgfB"gY|+~,{{7/M\ bS9;_o<ޛgbv̦p}}DF{Пo/<|_=~W`o9cFO/K&R эs _0/+w_35pgKe^dW W.XY]>ϖ;y? bBNgUǤTv2\=\(I/0^=!Cu/^u6Wm|\xΪZՏy """rg kݖ뾔]GA?cG!P `dRIcۚ\mudz!An|6QδHQ}FWvь fѢWE'/Y蒘Qaup@\/C;ӊnpq~Np;%kܙ:`"""""""unpKwNiZq@JADih[DDDDDD(NKVidDDDDDDJEDDDDDDjn L|#r \wr WK?2Z0[̖v >`Ã0^{5k5.Nbʕ>|;>RǿH4f1oѾM(iPm۶sJ\}ܮ^zٳgsoΈ#5kV&"""wͥKHII!??~Ӿ}H /#uҹeq]kݻGUxxxハ7aյEǎ#$$6mڰqƛ0xzz:8]ϓ}ϵ[x}0\]˔ZmڴGNW@/]ڷxގ:3G߿.ёt(U_y')b2[7'3xx|+kw{jnJ#=aY^v;L^šÓ|_uo?Nlf 1឴j޸ZŅM:^0n8sNVXA߾}l̚5Eqz~Hhh(կl,]b7oγ>;@AA:t#GoO?Ѹqc̙30LL2\r'xw}__jof]?Py(V-"rkbڵg]]]h }_Fרk.\sdk=YjiG҈l]n{6m`i^xQ&=?2/T>_ND O /#=-`*ǤO?j9<~a{_ڴWߩ'Oh"F]yٺu+=z7d,_ݻwɃ>dblڴQ?99ĪUlBV d5tV\ɠAƍÇٵk{!55^{YDDDnbaϞ=gŊl߾KD9} dlڱϑިgv4nX~M}#'\V-l8@n~!2/.ʐ!Cѣlڴ̳""RZHлk\Wؼk?'}+BLj?rGO:ˢ.fbKmpf0TjEㆎs6m'xSl6W+vv;L6޽{eƵ^zꤦb6ԩ㜏:tx,ڵk:t(/JG}mһwo"##>|xÎ9fclْ-[2tPrssEDD5l???<=={#33MDĩՉo:_l23W#iTL?z(YNrlvl[[nba+݇+nneQNFƏOnHJJ\QQV xyy8>}FVx'/x"iiiWWW6lիdРA<cHKK#==qcF j;Vgn7WWſoJqL 4nXOw 7dCRXTL:IVa??uU J4_DZglv;\-&աaÆnJ` 99qjhyf@||<~-W桇Q?..Em6VZEFF!!!F.""Rb2<&""ՙMhSmٌm{~rJ$ )?%R\ oۊK&2<<=>{3'\ kwR_~;u9yYNlT[{_mS{#X,)..ˬXM61x FFŋ/Ȯ]8< 4i{/K޽;ӧO|dddPXX͛!((www&MDBB6ljriRRRjtLDDDrEEE|w?B233oh޼9SS 7>qsOA<`,_lŌKpZk֤# y'mB`ٗZ`Z_]ڷ!=/8i}}j[ QXTKUe|xyyE6m7oIIItرzsΥ 8:ڵkK0ӽ{wǹrIyYbpB/_X>e&O̸q'..ݻw#"""Օo$n=CϞGy9Bt^7`z,3#YB~?o̙4J mk;RRRRkݖG.erD""w.(` w(3`lPfit>QDDDDDN/wR6.e҄B>ߴU亶EDDs0EDDDDD\)*fݶ,Z/IDDDDDDqYGnH7V=-""""""Rp%"""""""5@ H P-""""""Rf#j;J9.""""""R7h[DDDDDD(JEDDDDDDj<}BܲCi/Mxlbp-N >{{***f]:1113׷///;FVn V+{ɓl64iB׮]qs+wөSسgm۶%""2X|d5-7'׻y;uz^۶s1o۽:wCbb"ǎcҥھ};W\O>l6vƍyt)))ck9Z):Ŭhܰ>Fz4!t`0vx""""?+?~=zO`` <.]ŋ;v-G,"R78em0[\/ն9x3?&c׆oy0aBf_G*`X;~̷sLL 3gΤk׮ұcGn긾vZbbb!<<fϞMbb"˖-ݝcb20a[ۛ/^|KL&&NHHH=b_'44 ~_=Cnn.ԫWqˋF@׮]{qqq?EDS.)i҈&Ax%Ĵ']k}O\fyx@?g#c}ׄ6 &8(:}LN^!G jXv|-ǽn:ϟOf͘:u*Cɓ0p@}]z)222r &M"//̒pfٲe9.]TYqqvڅdbĈk̛76nȪU߾///f3EEExyy`)..-Jw7W&<7|})֓qRzvjGiG7r̅ vAO=<ׅV< 3ydΝ;ѣGd2cHv툉^zvFBBܹJqpBMFpp0͚5cƌ\例_BTTu"""RFo),,$77;v`(..DD,pO5GNi ~7r0M[' ;wwDFFϯkzJgfftRmŋ9|a>r6;y7j%::QGƋw{رcVϏ\]]lH 5..DF6$y{/7.6ض35}mߍѧ^eoǵ$Օ 67߰h" D޽37'66!C0uTZhAo@@;vQFecZZzKDDD-3!_s=RD""u_ɶ\\\7z8gSg3)RҸa}<=˝N}#^?zFc&..Em6VZEFFRRRtf"22xK3!!!FV^]p ɷ3"""VPPs PDD,LOdgW[9Υ\2/Nة\d6͕b[wH~R~^}U`ĈW=Had߾}XVׯ߯m;T:eÅcnP9WU6KII!u[J>Rv~-G$"r|yWB0دN\DDDDDDS-""""""Rp4MHωfEDDDDDDjn[DDDDDD(JEDDDDDDjn[DDDDDD(JEDDDDDDj&?G{?̂ Z^)EEE:׮];~JGVui|DDDԩS\Çv(""NnoA||<̛73gΰi&^x,X@tt4Cbb"?|s?8ѕuq|DDDt֭c׮]X,GDNpn4w\mƾ} t #,,Ç3zhj1%&&H?رcЦM6nXለ N5})fΜ_W駟ի<<=zyi&{L&&Lux{{ŋKܹsѣ~~~tڕ]vUzEfϞMbb"˖-ݝc:ڻ\272LL8=z4w<>""""wk׮{ク8՟""Nͩ~c._'xP ۷/C !--+hذ!;wf߾}xxxNRR`Ĉ9̳E1֭}%;;3i$L°a0̛77Çk.Cjj*}Np8pgرc_>SLmrqGݗ^zvFBBܹT/2ݻwiӦ4lؐU^rssYp!ӦM#88f͚1c V\(s'#""""""wS=}! ]u333Yt)۶mŋ?̮sqq{9r䶮W#G`,Y æONff&ӧO'//WzE7oΖ-[8y$U.ӠAҰ3i$ذaVӧOr#""""""w_isJq7cnP 8.\[1={6>}`۷//P1]!!!8pgҭ[7,X@hhhWʕ+ >7իa̘1<ꫯ3f QQQ$%%ayw裏8u5bҤI{.ׯEDDDBXp);L&(` w(3`lt s:t(L>;Ҹqc3ͽ{voLoJEvnZRp=e^~e?ӫW/ӧ_7o>|PᑘxWq9dQ5jTmBDD%4>""""""R>9pk׮;.""""""r+4-""""""Rp%"""""""5@ H P-""""""Rp%"""""""5@ H P-""""""R*>|8:tn{}޽ 6o|#^}>(͛7ח &?gϞ-Sw >9̙3֭~~~DEE1~xrssK>|8ѻwr8{,/-[^z3pebbb裏>X7~ej7***cUڵ߾kTn|,Y$>> &tJ4LӇBz-^8h?99M:e).._~tԉ5kРA222زe GMjILLرc7TҗHU8qg/gΜaǎ7EDbNp7jԈ3gI=Z[uX`qe˖ӧT1c駟~z[a~!/^dԫW0G=HHHO>q±cػw#mԨQ&U$&&v"""eҲeK6mpyӕp܄S-)xg9rɥϚ5_~Tj20a[ۛ/^\^LL 3gΤk׮ұcGnZBBBhРGM6?~ĉ !88ѣG_䭷*u_>saرWXnΜ9d///f̘~JVVﭲX,qJmڴܯxީӧb ??͛h"fϞMbb"˖-ݝcV)ʾ֮]KLL >>>Pm63g$""@9qD%""RU9///l6[-D#"R8]+RjpFFIIIIJJ1#GrR֭[IMM%66Cb2Tɬ[?\\\8zq8|0vbϞ=k,ԩS駟E>כÙ3gҥK{n/u?2טL& JגuڕӫW/f͚Ezzz2o޼2_xVUe'$$`6:u*:t`ĈL4)S0l0f3ͫr|}eee1p@FEzz:+WdРAo|r/_ݻtUu%""r+.\@ j; t 7رcoٷoP2;rH˔}饗h׮aaa$$$Ν;Kyg&88ɓ's9G\Y+W0o<Ehh(\.\ȴiYf̘1+WZ87}RyOz{W*ɿLrpppKlv+{-__RNJ+ʔb۶m?PΝ;zxVUe{xx?7|/ŋp ۪j|}edd`2x ]vĔWqq1saoߞ0>rssϫ/[qirss PDDS&K\toL0̝ܲ;aÆCqJw DZ XR _ȑ#l6L˖-iٲ%C-;8xرcs'O&;;lyrmӦ jM4ԩS-**";;Roe|^yv{cذa5L4SNtvZ&ǭgU,={SO1`{=ǘvڶmK޽dlܸzR+"|||СCڗHU}vbbbpDDmv+BVpsscРA&B2dNJ-߿M۾4߬ljbZqq)ĵ vAF*חPV^Mn݀ <==ɓС?JoРAAA$''ӡC2v܉+[.s*{'4h 22>r^zxVVZa<ۍa-ZĠAݻw3EEEXV,K?h<==+}v 7|Cƍ5-"REN9 %ˤGŒ%K8qbeRRRtf"22XYVZa0l0vMHHFիWW_?OPVӓ3arrrJ];v,g.3jZy7o~w62͍&MTi3[p!f͚;/Lvvvf㋋cѢEl۶UVQLxxx=JJJ ۷־DDDnnyf""rsNpC&V_5mڴ)zƍadffdɒ .N}s=ǘ1cعs'.\`ƌL46l؀jӤ?O߾}ҥ se-[`4+O>/)u~ĉ˚5k8s [l\|y񽦼NJʔ۾};ǏgqQz-RRR:th}@ƳAa}}+[VFɤIoKLL u7oΖ-[8y$˗Ƞ͛7CPPPFQF/k.Ο?+Bpp0־DDD*cINN&??={b۱X,n*""9u%K8ODĩB3  v{ه ;w&MPXXEDDD)))nKP@'\ίDD\P Qfg޽{iժmR,:Çܹs$$$&c""""""&11&M0`Fѣk;,qrᾉXvYaHn[DDDDDD(JEDDDDDDjn[DDDDDD(JEDDDDDDjnVT"l6wvO3yҟHm0:t'O;͚5#::ODĩlfyZ?8w?`Xϧs<ՋLvQۡ8 ݖX!Ըzѭ[7kooovƍk1*fM&'N$$$`FM~~>ӧO'** @~~>͛7gѢE̞=D-[;cǎi{111̜9]KǎٺuڵkLJpJ裏m63g$""@9qDtܙW_}T?`4eϞ=DFFONJ1b&Mbʔ) 6 ̼yn5֭cСC1Ldee1p@FEzz:+WdРAo|r/_ݻd2ݴ/@ӦMiذa67n… 9vaaatܙSNfRRR8~8:ā1b#GUߪԟ4iocXtiۋa̘1gO8A˖-9pv(hѢEx[\\Lo,X!C*+22CNp… 9x`cδixgnzp}+WP~}ܹ3PQ]z8v 6x?s+"""k߾}۷&MХKʔKII!u[|_H]0ȻzE6~ppg9fc %frssezSO=ŀH/`vh""NicHKK#==RZjfiVnt-YtuueÆ ^OOO OC-[_ 3(͛7ח &SvX'::ZJLL矯 67xg}׳~ΝhQb0a„i2ݻ7+V7gƌ$''ӱcG222J߿?_|Em͜9/"٥5k֔)W\\L~(..f͚58q_tԉKMj?k{BDPTTTan<<<LJx~߰zZ$&&v,Xroٲ%})Uv̘1|駬_}V~ŋٽ{7 ,,~ѣGO5j̙3/ѣGٲeK'7;޽{qsssWIdUcw=!"*##˗/ӲeEDpдiS똘/^L>}cl6fΜIDDs ~_Z~[\\Lpp0 55k$$$8ʙL&&NHHH=*Ky`gΜI׮]cǎlݺq8fϞMbb"˖-ݝcb20a[ۛ/^| #]}{X,넆įJ111Fbccٳg>OY-Ub!!!4hѣiӦcI|_䭷*lW~̙3cVhŜ9sx5^^^̘1O?,g}#G\Yx嗫[E, EEE̮]سgk}֭cСC1LdeeUǤI2e Æ l63o<<<<'))0bFÇo;kvEڵkYjw.l<7nd…;v0:w̩SXf )))?~_ZJɓ'n:>sRRRpqqѣU"==N:Uy~iZhQs9999s.]{W^R+RjxFFIIIF&Rǵ$z]v}ՋYf^n{̛79,f3|SNC1ܟw;?w[u%"R۷QgV 8 K}ǦFdeeW[oň#С?{eDAIê$i$ᛉ!SںImr]l=dʲ,]CSV"d[ R*9 0f2x܇\}#ƍϢEx7С[';;M6r%{3g?;w2p@222(((`xzzBhh(٬\ٳg~;͛G\\\;zht邷73gٳ?~8*OB֭Ϗ*fk%//e˖[oѩS'x+sq#Μ9C%ݥn>qY=<<#Gŋ}jNUm鳭&1ڵk$''Vr*fnnnL2{w7V]^^gQKo+?}40x`>.\@ZZ8::c6oތ3CeƉ8@ZZiii9s3N5?0'''02225kqqqtԩFbj٥m`0`0To^V,_XXXi WWWL&,gg 9s&|&˛5kWK%&&H6mʭ:u*[laԩ :D*:t(wח?mKǭ8 zeU5|T]"">|ׯիYz5)))H:.ռys[p $0 $%%ѡCF½g>S̑|l޼>}d?""UV~77[:k8Jŋ%8877&e;>5Y? m/?*BYgggVXiӸrɺ'prWY s37.W7cǎe͚5L>ݦxlQ~}|||.γG˫ʤI2YVSUvn泭1G<=j۶-ڵ3[DD*fw wQQs%6lݻ6lX1vXz)<ȹs:u*G/fРAxxxУGΝt.g\\\ɉ3fÎ;0 >}$c,z ,VZ@zz:׮]E\r+Vɚ5kݾ۬Y3Ҍ^}_Q֔]777x &L@bb"ϟg޼yUf\lܸq׏{%KwߑLBBnnnзo_z-ӧOI&e~'0`.]/KeΚ5]vYc~bʔ)l߾4?/LRRÇ?-e[b7 33fj e5[wYYVSuHͳ{ٲe4lؐ Ҷm[/_ƍܹs-Y0d:v˗ٶmɕʨ(Ν;G=ˆ Bzz:> YYYlذ.]ʕ+Y~܋/̙3 hsS;wlLջq Y7Wqqq,Zx"""޽;˗// j.Zܭ箮8p(^z%* ˋ^zY's 0vM6n@ٳ'_}v"((b=`?-e[b_h999ח-[ƺuصkP\&X:˲泭e/6_^h z vG}D>}:αjgϞLJ\%/"""7IJJuvx58Ŭ {?&r<(_^FvwvF~~>w_]b9p!lHu&lݺҙpQ;FDDgϞ%&&V'۟pנ͛[,=c?>>>>DEE:,c-b0:  H-P-""""""R p%"""""""@ H-P-""""""R p%"""""""@ H-˄{ǎ8880rjGnnɲ^yP~ כ+Zɓ'ӬY3nTlo='O[W8*{-CѪU+\]]i߾=ӦMի5 ~rΝ;QF,3 ,X{www:uĔ)S6nԨQtؑq:tcCW޽͖?? 5jGҥK@3Kf^Vu>v:Ef|嗼&uݫ_vZ֭[ˣaÆU*g8qk=tҥ}ʮ7Wyvw}Gzhڴe܎,&QqT璒FÇ3g;wٙ'Ow^\\\1m4m+((o߾/swsc{e˖;nJddd,X`zܺӿvʖ-[h֬$$$ФIJQ[ݜ_"b":t@:ۊ%fΝ<|g<5V)))t֍-ZXúd|M;/۷ɶ&L>`ׯ2-[ƅ HNNQFnݚӳgObbbxq,X\} cggg<<<,/))'Np!cR{wiim y8;;[E`wo۶ tB~ذaC۶hт;w… ?>֭ɉ'oy2FqLe&?h"{=ܹ3,X <==4wwwon6έ[Ҿ}{۷/)))˨?&s=g\v54h@jj*۶m#441ۇ,X@quus۷ϸ|}}i֬Ǐm۶n.((`ڴiiӆƍի?Ku œO>iҎ8-V?o_Mh"&NH~~~-Z^xxjذ!>?8)))ݻdX&MT;_F_呞^vwﮰ? >}:x{{3~xrrrSeΝKN(** ''VZjժ ?,W\cϚϵ%"HɶH]½vZx衇شi63c ^|EFAaa!˗/2}QlBqqqM61|p}OPXX7|9sX~=ׯ'99gggx6N2{}ѳgOeddn:>wADD3ʨ(vm޽o\@@@ 2cr:th}gb RSS c6Ϝ9>M6Dz8~x24h@`` 7nȑ#DGG3f;fu]111l۶xMnFEe_|>17mj/_̙3gڵ>cu]>{~'~JJJLԩSMn`ƍƤ]f*MRoֽ{w:tOll,gΜ1[^jj*˗/7۟'Oرcp?Ck׎޽{̨QlBrrrHMM`0<;Pᾙ,Y#FЧOΝ;Wթ˖vTOlmKu⳥8q¸l̙deeѣ׶m[yW}||8u}ʢu&˛4iO?+ŋy6mZm:u*%%%&#F͍3fp)>#Μ9C%ݥnϔ6l3|rR9(/^lSs_Udzk5Qԝ͛3wy'dff< $""UCӦMWx[ 7>M|||+`(ggj=ZZs.OpiiiȎ;ؼy3 :3얔&{  }rrr ###YfGN+??꺬UZ}RնT5>[???J <<<*g3g$==?dyf*}Mآ~X嗯/nnn&_JԶG˫ʤI2Y9ks&>ODͥ;DD~&ްa^^^d?fo+ٳ'o6:uzd}VHHH ==o`5kFZZZW͕ѰaC Ĕ)S|;v,O=ܹsL:ooooU^u9<ӧO`00dȐj닏/6~A=;w.ҥKddd˞={pqq˦6O0a9<3m-r +V 335kTxou법>);iKٱiiVֶ7~q=d;IHHͭ}x[|>}:M4!,,-[O?t_*,s֬YڵmVNs端bʔ)l߾4?/LRRUw8991c bbbرcӧOdWY1c0c }YBCCM~A&rWsR]Æ c…V-"#///Sff&9Zm~PDM2j(˭1b7n4nR˖- o߾:zhzAHH#G4[3<Ú5k*2}Qva䥖,Y€2d;vl۶櫛{fȐ!ݻM>W(Ν;G=ˆ Bzz:> pn 6ХKXr%ׯmK.wDFFҹsgcQ "66ٳgD\\_T\ẂUf8-eǦj\,..EODDݻwg/W_EՕK/DPP1yN:,g!_^h z BffݭagϞLJj?.S?HmHJJuvx5kr8"j-0+ "(ed7Wo7qqqGv-8tJkYDDDDv)ᮢuU^1uQr ǎ#&&V'R?ZJĉ|7DEEu( YYY̟?fu֯YDDDD֪_܎kHLL0~"""""p%"""""""@ H-P-""""""R p%"""""""@ H-P-""""""R pJGCkI>}ȭԠAZnwum۶%==] 3M4ƙ3gz*999YSNV]RRR8::c6oތ3Ce6!"""Rלqtt,wÃ:JDq$ܾyf듒x"f|B...5KVZ'##æzDDDDZ˖-IOO7YvT."b&vrrbƌİc O&)) 1+WXbYÇѪU+HOO7NֳgO~m9uoVct.g\\\`ذa,\&GDDDVoߞ'O9uf.mp̜9ɓ'ADDٳ "..?zhzAHH#Gn\X˖- o߾\Xذa]tˋ+W~z6lHqq1iii-"""ooozʼn'ȑ#իܤ""R^{o,sF2^p_^otUA!))mY9uHy5q\ @P 2p.p%"""""""@ H-P-""""""R p%"""""""@ H-P-""""""R p%"""""""@ H-P-""""""R *5j888РAZn?O~~~]v呛{ W^eIͱ؅oWثɱb|8yekHy_~%˗:<V(駟f…\~hbcc6[l8qkޒ~atrK꒚UثjssHD{k׮&N<ɱcDDnvp7h\\\37o~ϟ_!HcWi܉?GGGMTG>rsիG˖-CCCYz5}ݝ۷P\\̂  ӓH~G?0j(cx{{s]v ʶm Ņ@bbb0}t|}}f䘍mΝKN(** ''VZj*.\YnNNNL8ѪCCCY`ݻwՕΝ;o>UVuUTTDLL 4k֌Ӷm[mĖ&ֿFXX_5:3x`233tܸUTFcgMw6۟q\_M"^x'4RY;*j-0m4ڴiCƍ biɒ%wwww^/"b.^˗ PDD]'ZǛ,2e =gϞ̙3׳~zqvv(vm޽o\@@@ 2cr:tqɓ's1<_Mjj*?+6&&B.] Yر#̘1_|#FPXX˭>cŊ)((˕9s&}6m"))zqqem;wdʕ8q֭[ӭ[7N:Ŗ-[HJJɓ U:`nZ+*gEcϒ 111l۶xqqq1Yoqݖ4h@`` 7nȑ#DGG3f;fݻw~^GVVEDQJJ ~~~4hРC{,sF2^p_^ot`FŇ~hӓxÁWx &Md&??M ܸb˛oI~h޼9| ۷瞣YfСCix;::N:]weKvv6$&&e/yGȰy۽{ɚ5kK/<jMyL0q?ϑ#G())]eԟLBXXGGW^޽ۛ\AO2e ;wdѢEk׎޽{Ldd$O>$}n|[\\̰app]Eaa!aͶ9({=cg-uŅuVaʲԟ5]`08}ִ*o޼a[̍[[^ sT?kBmjk]sΝ;WգGTi=HMMͭd[DDL-nnnL2{w7V]^^.]bÆ ޽aÆUcǎ婧;wSMLxb =z`ܹ 8K.Ann.{///1c111رӧIJJ*m cƌaƌ<쳄̚ުU+HOOڵk6mNeJVaÆpBc]O<&L 113oؓo3gi޼9v_ԋܮueq,XHǏ'!!&MQdRϟ_!mHFD;s w}7t֍SNqE7n\щ7㏓޽{M2i$6lh\VPPihӦ 7&((իWʂ ޽;tܙ}YQQ111ҬY3ƏO۶m0}t|}}fk… ?>֭ɉ'޽l|oi۹sҩS'ɡUVZ,]Yl۶P\\\ $&&dߛo-..fIdd$?cUjĈh2x`bhѢ;w4ONNQFfqUVhh(Wo߾}vcYk /^^^|1XqY֔)Sxطo={*?ömۈ'99Ʃ8FUxFi֨ʸ07znf-{եKRSSIHHԩSر]^ס= 9p#8 ƀ/7KJJ:t0Ffʔ)g:uĴiӨW*-Z?W^f dٌ=ql„ +y?#9rJ~:M6e޽t 1RF8q͛7ӓDv _~#}W>_^a,Px &Md1<<==+>>>G?spwuVzٳgi۶-gϞȦ6뷪 sceTexTH];z(nmhݦ^M\e%ۉWo _^@P@//#{I&<Ӽ+,[{춙]sΝ;W$~~~olT $M"%%b f\^XXHvvv~s|oͶ9({=cmNUvsݺuwɓO>iLTJMMИ;8zhըQ# ͛ c˖-www~c4Ys 3~+Kl94hСCٴi=z`DFFҸqcj,UVt}mx"f#KPnRyf,,,z[[ʷfۣG˫ʤIL&@)fNDDVbǛM800\? СC5`IHH`РAV?`1Rz̵ִw\|CXƚPٸyWYj5CDT4sm 7&ڵkm۶5E\r+Vɚ5k8|[͍'x &7oq3f &&;v`08}4IIIfkժ s5Rm cƌaƌ<쳄sUm+ҥKddd˞={pqq˫ܶnnn;zr9N7Ѻ6lȠA2e VgϞۤs)z-X3.5kFZZZW-ִёÇ3i$z!sg4.ʎ[j5CD4mwwwÅ %--|}}:<g Wٳ "..Ϊ͖.]J޽sPލ{9s&'OÃ7zhzAHHZKl)m-ZDNNӦM`ٲe[]vU-uņ ҥ ^^^\Wx%K0`C cǎ\|m۶Yuֺ}QvQiK1,\-[L߾}7;a5ga͚5[oÁV=/#FX4.ʎ-Ś!"bOիG~pqq?'..#GЩS /,巃gCnnnJII!$$L(Y\D~:K]_G" @m,..>}(CDDDDv(ѣs;FLLLaݺuo-Q%dee1||||"::uXRE'No!**C Swaaa$&&uRC;7Q]JEDDDDDDjnZ[DDDDDD(U<99&UrXqȯ:QnҤIM!""""ADĮnZP+SDDDDDDļj%R;.t#oݩz(?)ٶNq \-t0DDDDDDRml[Ϡ;[DDDDDD(JEDDDDDDjAR{u׳==wƍFЭKڨc(*QsR檍S4aM}7s.=_c[ iKvYEJJJh!Vuس]\\̋ɺr!ra 5]]}uBjjZY\\̿ﯱ8֏Vw6>۟̚-kKN>MKXb|z<'#_r8ɇѱCK_[/Wrh\&%GR8vW+u ^+:DDDJ;|H捻?koݼ9k{^55¥qJJ]'3/7=.,,A4lиMqq1;wq>3߻b ~D}vX,]&o7{y z^qwOiтeFqq1p~=n]㭷aߗ_sNBږ GPѱ6C1Hʏd]+s_Ww7nS}۸/9|Az̽і=$9NAan ku?CGS<`x:JJJ!>ݝ<`8M=;twk=ϙiԝN@V}7O}8p0 kK>^t s| EDצo)owwK9>17ZIڏ?lwWQ~}֍'N0ſwGlv͕ƲW.EEE <7nyiߞyi6&FNk?Inj*+c'{K.2s} 2Җnlh? ANAk._[pO7۔41[^!4z!f{ȼtŪ{Jv#O<`:>I87?2nXf{Y& NfĀ3w&EDD*߿ܜ)?Ѳ@p:}V'""5~yfחY?9q2?u灈^L46m݊/+XFɧ,|m1k?BѱK_{ 3n~Ǫɸ퉓|u {wg 1y^ddpWVm{y^R~HZ[]Ƥ&g11l`$aʴţy t nCևwoх/:W܅3;l%B}˕SXTޤ#L}|-`XVe"]3QQ0k|wږTn}Nus3?k),,wqUߗ]vE1WPQTF%IRK)˭qi1F-3F24dMR)XS)."p@n,^Ƚ|=9{?Ntl]Ԥ5e!E5/4xRd&8+:zI}lv5W񚗧UN /OOe[.@AAJ-s?-=Cj֬W3S$Y,u.ѝuǟ ONO?ݺJlg,Ζb)t$et8##Cd7..(0Pt].zt_ W.jujUCF=R,_7i^αj޲SV;VPBtj٪~7uS>lv!aIU\[^vC.KQW iР9l\uo|:C5WU=VU{z-זwf͚ k,Iɑ$m+0YbÎu9l԰$; k,777{ոQCRl$2=6NԮzg%YV /)3}w(33Sء6[kkQߟ1=eғj2ROPff&Q~4۔>ѹ畝-Iujo{TFB3wg?Gu%ڢJN>Rl6Yv6ˣ-] ֝7ͱh~ޛ4vjc'ձuD}[wkūH֋W)X,umj*-[>n^5[7jUҘ!}UtcD׾5ߟ^U&P^β⦼3|$J ,>|*&)Ra)izw5o,PׇDŽpطo6oϜOB4ZR%CR$\IvIKv,K:A]˕iʖtN9JM1+ 2zg O,b/Cn~|XW.\E)99Y+VO?Tڵk+!!Aa\򵧧&M)ShӦMl:z$Iz5zhرCN̙3vPW6p?^׿ԱcGhɒ%Zz|||$MֵkWiFVdd̙ӧ+22Rk׮խZ͉'jŊ΋~Ok7nԣGܹӱk={O>{#""b8Wg\[..nʛTS$_Iņa"peS/I:s>+ YhI IYr%%J;ýw^Y,bYfUVW\*`{lJFnL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@pΝYWrN:Uf Uw prL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nL@nLQe=9…*+b~..hp3/p` Tb&hP]ѐ̈́iTwE6Ap+S6wU76j]A0  *qenUZ.?nnWk+0,,Kumm0x$A)Ϊ^0%waՅgupR.A&n\I&^:~;m3Y3X~:p]SW~ȿu5l@oI:͵]Sڵռu[۽KAR۴)"MyS$_#0PU=VHJMϔ=Ǔt*YI nPS2d,,W^yIl6fϞ뮻Nj߾Ə:͛7wlٻw%m7NkV˖-믿jꫯDGGkҥ媼 **lY,8pRuE~4yd9nM6zMp90m%熚5mʸ/盾떛zh_Wdee+ז+rss(7O5jhÿV3224arX6d̾Gٳ?7nOKrrrt-(##C=Zl_~E3fPe5h@?v$_֗_~O>O@@@~~m}WڵkTV-}WϞ=M٬Y~\K)+~9q+Owy:vhbUfiAA )--M -.ͦ)ӞS>hLo;wFM[oUn4e{u5ᡠWΝU^=kw6i/+_VV٣=zTw)6k֬.`+9*zIʏVkw]w\w\BO?5t-o-YnndeqjР~ٽ{w>}:|͛S:v>͜9SΝ;W>׿j޼yzw:Hʻ w-v= Shh~aGqFEGGO2e6{15o\ ˗[nQ`` /nkيT͚5էO:tPgV.]:h֭Nۺ{5rB͙3GwuWΝYfiժUԣ>Rz~Ђ @u]JNN.ͫnݺ)00P]tQllK]ǻcS*<<\!!!5jte݊|.o^%[Q ,P֭RoWǺe>\`|P򞀴lZ}i3S奬,nnz] ՆO?S蕗7z[[NiiжƏ#.NɧϨfpz].///Mmo=CG>,wwwmb$nQכn뮾}4juJj1={蕗ծmYV9hrV]S;ӟ:u[>8(qL\ݟ[?Б#Gzn3 ,٨1^ҿ׬ ?_~S k>\[cQ8qBՓ.\Ǐku 7 0w^ĸo@>}Z˖-syq㊍UNN zJ .ԹsԿ͟?_Vbb233/iKZf|}}j* >\^{"##?^1c>S^Z~~~z'uM7iϞ=|Zh6liӦiРA:||sƌ#5f̘BM4I\J_~,Yziĉܹ&LO>DVUԩSd6˖-… ^zIzҡC\1/Oݕ}K:SLї_~u)(({K["nƭsjŊZ|m޼Yuԩp-XP3.+u"5CiʋWe_;̬,nR5evY$}& EILk:oF=wimҖoUÆ usZj &%w诇GwWRjwYJIIѲkw߻^o$믒 /LtfnB}Ƭ1qe8gg鞻薛z*88XAV*r ,ʻ2=7^&OOOu}ĔӮ]e:,>r6Wnn~GM:UO<$Òb.kWZt KIIђ%K4}taÆ9s֮]+)֜qYڴihm3FmڴQӦM5ekǎy4l0kN_Pvv͛ŋm۶jڴ{=h;*44T'Oɓ'o߾KڻەԩSշo [_:tPݺuO0 =jҤZhÇ_rqرڵ4hN:=ewq"++K|Mo^Z`~J[ OOOy{>Fnn^x-^X:uR 4dUg,c]TY\\>mII pqYlFB+\P%;tqⴲKpP`RVdo;Խ[W͜1M2 eegic kXׯa0 %8 qzh0x}7oAG͛5՚nKj Z!wzퟋV뺔^n]7Ԯ_~$];D_Ў?Ӯ_$I]c +n3kNNc$?!ͦfM_,rTOrNJֺO>UMo]?fVX۶qvT|Z`,4i':Μ֯#G.9k)ϫiS5ne+VcVZgϞR>}4j(|NJNNʕ+m6>}ZIII̶\/Zԩ5???hϞ=Nk KkԨ}jÆ '|^z).)KZn-Inݺ祼Vvx2ewAe M_OQ[ٟ$$$(55U;wvZuV+rCj֤iOt]S'ԱcM(+3#G%I[}n7Z75-M2 iڽgΝ 0*-7WNmffu˖觴EEQÆ_e Q7^WlNmv履ָ׫'lu;ۇLRcRMXu5  ѭ7TxP)1(CKZժoA3_xQqvTw4rKΞծ][!!!ڲeڵkwɶ;v쐻7onn#o߾]uֽ}wwwmڴI_y 0@={LnZZbbbtwkڴijܸz] ʒfSnnnbSv9)iӦi֬YZn Tje:J-|}}/yw()=‹>6m{ Ζw)_Zz,j(>|>g)/RG}Tsν䌨fӌ3iȪlaaa І J\Gzwm6[Nޏә3g4gEEE) ϮKyZ,mٲfS\\ڶm[[ݻy/'/=\Bd=WǼ2?~\7oV޽uY=3]vm%$$0 yzzjҤI2e6m$ͦG:ٳgl2%&&*##C|Rz… Zhb ORZhĈzG$M0A[˼Rެ}ս{b֨Q#m޼YVzzz.g}VׯWrr}Yjʘnw==zvءSNi̙Z2>EBBBԿ;V{Ujj6lؠJhkա V)y.V-#u`|H'O] K/cH.Gi{?ΔdQ6蕅Ը',67{˯/ԛKj)KWڋjJAա];yxvj٢~պCqcʘ?׀iμz%ImZK2TfM=wNK^:kIXc]EǏk_^ԼW^F<8Y*opw2U_۷oW~]z۷f͚=qDXB $=Ӛg?E,7)GJ4͙u΀5oV&{4I"OO/}j6o٦}]Mu=uk߻OVThSwc}F8qR 4PV-CoVY#n[딙w$IvC3e}e| 3ռY-hmG6^}z'Zg~{s^~E>>2Z$r\z|Oyݽ1)mKV\V޷n3ers5u ֑koh*3#SZc֨R{W*Ƕ﷫[Lm:trPզM%''{DGGkї<#S/I:sI\B4ZR%CR$\I}p_+K93vZsk tr==fqnnw̘%OOI-&ErssWfxyC2 ege:y.݂.5k-~iyyCLݞ^^-7WY]>7fIi&O/o" .՚7-Y,bKEdGc;|7&pCR3+}g] ( jT]WfM*pv5G̯@mdvkI֜3_%eݒjlpؐRN:\?ۢPܘficەYt3[n2ss m_cP0-Qy<Xz~?ѿ_$29Upo>oSFRƭ`M$ Yi}41Q tY\8k'}g-}k]SW'Nԣ&v>Vkf͘f͚za\x~w-{,n;uk$Iv]Y ;7IWg6y,ԫU|]Mf͚U%\*ے$8UjؠkkaGFwoŗ_,,} dvRv.6R+X;|,eef(#-UA`)5GKV UFZjhάo{Ӯ]HSFZ2$Iiy_g:v驲r]>]<< UrrrcyUdd/_^hh͞=[]t:t蠭[J^9s]wU赹sj֬YZj<==裏:^|n/pMqFEGGO2eJ ^m5{lEFFf͚ӧ:TW$}WŶ'|Raaa ?B=󊎎V@@bbb?hR``.%''Toi4x`1k/ R[gP* wia.(-=]u+ưy/떞=dXպ@!>sF_CGjzi¿S_1G-ZT)jP`Wڔ{-۞ǍU$}"u^$?aF z$i¤zh؃j>}49j$\f] 7ܠ7m#R?/jZmn<<ձC{=>nl+nԽןg$I{Eoٳ ccǨedR,닗==9y{y 5[n*V-'>^^^^5͎'?>Q[F~/_MPXep= ]Sv}Ţ{/SmJl{G4g挋:|%}U///EDDh͚5ժU4|p]{x~Zh6liӦiРA:|3Fvq5f̘BL4IN/?~ϟ+""5?DeffkK3fO?ի'|R7t#//JZ< qƅҸqtq*''GÆ SO= :/dիWO'NTΝ5a}'Z8pN%Kܹs%J zgݺu8qbmV>vCɤSjZK%q k۾ wʏV%I5kɓԨaCt}53;[}+99Y~s[WoLS'=賴6%:濤pgӗ+kKuy}}_?pPzV zudڴr.I6~m۩ cUɤSjBƍ՚#kz1{o}J7222dk0j&=#CS?WC-""yV=`[*7ozfSjLisJJJ<5n5y Ԡ^}c-|c^-nF{P͚9אJ˂ I6ϻ~ѪcQRiԪ%6::qds(gc&[m>(t~;Op~JOO׎;SNT߾}]Ӱa*&0;C5kT͚5+%ּy_m۶{OaaaZ~Jי#GsΗݨQ#-YD;vPhh 3gw](С$'ʕ+OŹ%KH7%%ť[VUv'O_U>}Jm:@x-I2wv6l6 zf}I>>jܸBCj9pXz!EMJNa:{ū[ M{nuzܠ\UMz~0-5P%YbQ:uݮgI#h4rsew:dPѡCս[7mCWNvdR~uM=_Toq5)i͚3GwN;v+]g5oԸq#5__iҹBCCu0ZhQl=ege0?Eٕ~Bk(=-U=w׫ )$8XiyCwl,Իz]Fm<=<հA}~hڵi{udycۺ}P^f]Q.IJNNʕ+m6>}ZIII%&.???F۷6lؠ}'ի]FZSΝճgOEEEO>5jnJ<(ժN:9^SLLS`8p,/cZJII)v֭&,xu֎K[jUleK յkWmذA}Jl:@rzh3F``b2ov r-l_P闓KTAiXCB4g=x_d߯^bcƪ}߿j?6)%$C ׫^k/ӒE [o6ԗW!-WnK}x)s'o.:uh?Enw;bucK_Zs\yׄڏVKt>zxWZjlݞwpnU*W> ,X,E!{U|ra, [o5ҢWNe˵*,Μ=}Z?7תm}?o[J}+]=Rʕ%&&jڴiZvڷo_vH_^R ֚ݵi&mذA0`%Wdٔ[uoooTjo;88X}v%$$(!!AǎSjjjZI!C8>?k׮]jˌqÜpWSɥͦAwAk pjEɓxםYӟ-֭ͦ"oܨ̌t2Yb0 ܳVY]7vonӞxj崽`ݻwk%^NnZ&Iѣym۶M֭Sbbb*0lqfļ- 6[zsΝ;umvW Tsw]&VxFoBg%7fp}`򴂋ѷdkܘO ?/ MIS2Yҩv[7Q??թ][۵Qދ|>X%g[Ka#u߰ȑ xY֘+ub-?zv^Z𪆎C͛3cV?3%K CajW4aTnJSLv6\l/\3׬ɤrQO2W^=]pA-RrrVX~Lmo߾?~wﮠb_5j͛7;& 3gjٲeJLLTFF)$$YkVBB pЈ##(66VIII0aBCCu뭷V޲R&M)ShӦMl:zJݶ<_T4Hcǎ.oooj/ms{?@9K#0y:sA﷨IV:Pp*==Jǧl\ǧe Ð՚\UAJM޽GGYy6~RPDMKm-"V1h Xݕm#RDj#ZAen(U*w9RHJ%#3a2[$9ɓ;<{~O|^\.Ҕe߇X,m n_h}h -tel'ޮhF1--MYY6Y+656-Iʲ)==]NSYYaۍVSzz%ZW`!h,XNn^fu5׵ܼ;r ,ڹ W ͢x222)*ϫv^0,ҹ˗amCVhYyyr:gAM|LOѩ6YjV^-ǣJ^Weee;$<6cMR{ϥfӁ4j(I-+vmW_}XIڳgN۷pj+Z^W&MҌ3nݺ>CsIN}M,}"BRsHrIjU{-%js^oǡ* 2Dܔm /ɓ'#p@OFu6piKSttI˸31h2rJ9Ԑfޔr꫺+ `r$>fKݡDҠ-f_|Q.I W)jR_RsIt)H??3 O9|¬wHϔכG\Z6trf%$rHJ+---1ܔ<vY,U9^zwc|^"îܼDĔr#E%tA 4DfU9#G4t577ѣ浻ѭ1|N{z՞:1G믿鵯OZu 3rJt1}k},$drۭUC0x0᚛PFǫka8d] '29jÔGWjx]+F{jMa \PFF 'b0000Az ΜK+ZxpR&;3?*>&KKd }r!G $|xWT;Hg tr#NSVSrӫ;~O<ɮןk ܡR9}1"y#I*@;Tg>hw5|u$k]@/3$ݯ;FcT Hd500000000000000000Az @sꛆD t؍=.8?%@`J9~ŰHZz n@gv.ݘ[Y4 Ыߑv l 'LD99ƴmH+paĸ k)ȮwwnֶW^$=5;4kuÏ?p[=Y=q{{StHaE ܯ ͚9Sܳ6lhBݿ]vkA߿.=p6ǔͺB>~ɣO>oYnw.1]KSْ fh:xlX6o{2Ⱥ Qaa??6ʮnWϻU/=w}C~& :D23躮R57{dZ YT!޿9$$5IHJVݾhF3&l'vѴvD22lGY4y8V| @X,y<}6 uv_pDQq{\ýao<EN]dP9y$-PvY]oon@R|rWBgu \)plm6kf H52p `ЭHSʥS%eeZyN-o<5Y 0=2mܩ)䁩NFq ܎#> >i$k_cjٿ5Hlvw`ԁ}:;M&bFv gѴ@Ơv pjw tokX;xHHjin@n QGSʥ77t&lR]'ulN)9m@O`3hD Ȗ0_uM2_:vbdKp:MG}f~z|c"f=Ah4uZyGBrc (RyL&ql9$LcIENDB`extension-manager-0.5.0/po/screenshots/_4.png000066400000000000000000000176251457631363100211520ustar00rootroot00000000000000PNG  IHDRBN[bKGDJIDATxw\g" EĒ5Ũ`K `A hKh0!ƒo"ILDJDE [~yg=3؛o)L&H(N3I&mmmMLL:+0p;ή]@0 CP!A: dqd F @`NF>yyyG;0 %'dkkv{Rw_/AA155e0|>$I9y{Ǝ DZ:pXرuuuZ:1~!pZPnnnGVw yDyyy$IJ$v 0 @/KƮ {^Ǻ$ Ν^:&55%##cժ55! M6@JxWJKKǏ*..^j9shkkSSSsÇ|>4=99xaÆ8766]e?R>[;o#AÆ"ƍ BYGgggWPPph7[-sFMtb$Ξm)N>r䨅￟}ADD$BhɒӦM433S^.L!X,Vd䂀.{^={uq;<={v/]CQh][+=ІOsBСϯ\NϘ1=4tvsʱc 28//ㆇA999nڴƦO?rVcQy6/_"''xc˖DD̗H$iii;vlG3JѠuVVVff>9s86m33\ut:]B8˖}TTmϞ{p/))[h$eeeIN8Y[7'OIcBq`Dם3geF@ +WFѳg3gH-0a|^^ܹq ]9s (-777PYYҥ1%%%[N(U455=xg>}Lw^VVVYX8.޿!(~^^??v/N͖ZӕFI/w]p!6vbgT)tqqFݺuKIeeU/3BC NMMir_H(.BZhݻw߷oOqq-[ssΜIf2 Ѐ~7okl6!D_dQ% ;0BMM|y6ic7y(0UWW~޽7 kkH{퉎^\]]G>L&ƍoߩ0`aի)%!!!ּSMB<|t&??? E>C 2d 8ͻEQR' \'ͺg/_o;w~)ptλvTDcx!ln p߱c{Jʵ1cGI555ϔgɓ'?:&fk-[mnnnZZڠAK~<|0X"JbV^%ϝ;A}@+S F1="c˟ٯP1*@4J 6j 17 d  c1/V<#1'4ej2v@^}a) c` d 탞R8næ>'Ä$ɝ{8-$47/yU?#oeGO^+Of =(A'F0}c46oOLyƵk+;ʓaoxtK]izyytю7v 3b]j&2HNIQQY6|vȘޕ X8bп]%}Aq(>ſCM߽}I_Gُ#-zOّHGuH$6?&:f$ɤO55>}?Y`ouΟ.IGN}0Бfsso(,*̾<;;LUgxŲv][Kq2ܻ?&znNN֤P(Xzm̢wG,*VLOWa"lXZZ*8@;&Npsuurt `Q1Y3 D"$beڗg慅ZYYF̝k-%OGztrtXӦT4nl/OϖRL"意Tݚ,q|usu%5z Dq!MaTΉxP4֞R̺P6=ϋKHxyA4/γB$caqZqq1^/Y,7{<+ԨKi215e*-{yyտߌ!Ǐ+B-Qr}PZ@D`QÇ m.feܤM$I$I _[!Ͼ<;\ssP¡dz!I$d0L&Sfb0UU5Iq޽[V_lިQ9*&uuё=]]8n{bYT/ώ}׮Zu89!|i=Iz*vq Ԏ5)e@~k?W^KTݠLO4@tyJ2uk+Ʀ~ſ<}p3۾ܕQMMm7Iͻ|ҲҲ_J7v"Ӿ<;&&&!3}۷I,+/ʁqcع;QvuMͮ}_YYZ ?>wQZV&)UR;J*YQY)KgX<BҢ(yAƭK:qRJևUT33Ȉ# ŧ\GKGt{-'-\i3fd0B=˳/NX,SS{Y[[Ϙ?-YOV>om.޽~3mF蜷۱edJUlGAIex_:w})nrW^~MTZCdqIbWf!&wrUՁ}FN<Iӕ0vi2fg WUU#3uxhNufV=slm&O0}k^'T<;%=^\PBTr]F+;s.0b(qMB zND (IO98^W[]\X3iog I-#W(A!b9퓝by*" 7X!~:^/(1 spQQV%q>9 EQzpˌ8ffB՞EQ״l̡/ B_F* ;">)):}}u 3 FCZe@ $b1h Y1믿Zn9t}}}56uV^'L0`%Mb!xfkn =n8ս6l@&%%;<… bx3)eZ}}}l2h ss~]{tsvd Z?MRۣ|NWjSwڵ-K. v횿?tww?sLfffXXXxxxvU餜;w~~~SL_yab;}`9n\{E2(jɒ% 7lpBQQQ={O]\\BBB `ggZɓV Qz, (X>;D# EJ茶cc߼<ռK***N8ZYYYVV+y񂋋YccT#XP$&CBL}_h9onXpD˷^k---Znihh%Fr{gk׮MNN۷*]Au;B"͚6eqBysB%b^hsܹi[.%% Ǐ7oĉm-UUU۶mXc*zW,͜X$BUKqqqIIIׯYfMZZZLLL4G^~}XXXNNN[ uuu5DWv@Uԙ!gD.]t__ߑ#G޺uںUիW6lmǫ۶m[ngrr{ァ'*ބ,H( 4Kɒzw"zXGwP02("Io3<R~fgQ>OpgqAc@@!NNth c@K i*c1tQ a%>1$I'4vd2~P:GobUzaO`ZD|xzCEJ =$ITUZXuQTiυ”c"NJ \B( !>xCDcC]i3;nl3^kSwDK$|x*P+'z:1vuYZt巓T1 c;"()6O; 2 dOÕ1(h#q5qQDkT":ly'Wa Ul*qRoG5}(jl $IvFc9V6v\am? ᎍ)*Kj;[XZUIh8^W[]\X me*D]#tE]mMUY})$°cF1aՁgij?T6 5VRj*%vxb (1 spQQVܶBh`Cwf13,M%Eq̄A]P!A:$IJڭgB4@ACg3̍Z4)(0pz$y7 fy~ݺMw^)yfڍy>zL#t,c @-Ѳ~ŎٻD?|[4hzEKp<"xy.9Os'ED~{ BF/J([6[ۯ__0U%u&cÙihn/^|7=TҷL)WE;`B19x$ik3o9 :&vEK7JJKW[?xP{U&FƠaТ&|]ytK^42 B?x$>͊*;[۰Y3G4Ç^/prr\8E_g~޽-^`U/]* YfQ%Q"$Z8^̊OF-rͥ>7|fIAD_CAP$*,zFۙ =vnMygE]4;VaBO…מ:1[YY!vyw'M,)-?p4˨s*+[mӻ7EQE/jI$ƭ`nkCBfEx2NhoemBqF\B! aCF^YXXgfl"ސ$5kԜOڷk: wAqYӧ?yyII]P E (Q/EOAP <$ _>z>ZۉIIGu?_U;N8q =;X.w{O,Qj"]7gП,Ԏ?#'<<\MЎ>KB0^+~ҫ@*w䙱ԭ /Aš"##M*"K*`}}]vqvv&*++s7"01 x,yFXXx(3 U{Ftt4zv #(`> GS[ܾǼP-oww7`@RZ[>LyMLL`4d2&''Ԕhoo|ttTttt`yhhHˍF*ty60` Cb~Նawr\Ħ+ nO_UUy$ڢ -Zڴ(m28h` T i4ѥ')0`ބqpp;;; 񌒒uq~~.ZZZpVs/qђS0nooEYYvp#$899[P?tz+**0WlD^/w(>?4~ciiI5%e6} Uɣےf5 q6;dw,IYQ.MG}x= /A1eNό$Uc:S鞙Tush?p/9b6ex9.P e1W&Muf"Pn˜YAb$k2 ò,h<㱗BTB!߹26bWbr9/A1Ͼ#L\+Fە[%sO8ʶo4=TwdZOZzfa JD`!leժmRCh!: ¸^(d@:[Z-|ۍ1 natS^ϋꦂ9nv(|Y;~E?E 0O@# g&! r;.B.* !:\"aV!)'#4!P{Чp222222222EGgŹO稈" :pJ8B{wA PtL6dWi| 8[LkUMt4q*+D~:bq~0\_.^׃ .b:ŹG @t:~Fxzꙓc|>Ul9rOcgW+'kA bGGamQQce%| ZʲmAD lY5@X!C9e@7ʇ$yQ9&   kX&&@<==90~{yy j56 LcnC@4C=)>^;wrr7ŧ]~w>=iaO-j-U&5ꁘ65x]1 HXI0g`'qF\/~ObD^AH0 `0 75lsW"q%̄c#o[$AJYLIо9 b;CP3`|Ek`YgҘ#@c 1p1!/o`C͑ {c/,FELe;` A5 GĪ6|^vNߗ7͑s///?ѕJEvBDY|_Vt}}#I{bY+X!"MaOV[)ޞ(k)>-ao @S#H CLt+dSZ-̍H W$7RHr,s\(3T*)4~uIدso[Ztw{ҧl?=Cb컢l(c=1===je<='9m+h_j=2=Gه9F3W>hIAR$IA1&;)U,؜N">0ejj*0)Ư+OBӧcDD˪c!?~Tі Gb@ shhȓb^ܜw ED*O&a0}}}*:#ϔ|.==%%%F@&NZz ̻Ѓ6&G@ݻg2bRJ}S\܉ `J>&Cr_E! x! $@;>ЀFFDPrl3%c1yyy^vvK|W/ H ) 0P1HSh@ HZ| {*Ɓ&zlRerr^[x"lG gVJ<w~ZP}ΘA̱ϩ˗/ ׯ_gff$?^ALA$IA$ARIWHsE;!)n<)dd999> XdY__YR`e.rEWn{uu(P<6B5/ g ;x}ϟ?7VܐϞ=eUzg"]b?`]X]ZOcі0L' ) H )H lв,^NxE|pp˸xw9RZErw2wYb$)!mBJR>7p8*7+)|6xL?"hiigPF129H >$IA$ARORw cGGGMLoiiɼIr}sXf 76<5~NFB N?dJ;;;dE2 `HПLO"w&Lփ@Ryo߾ǽ5Kl2lmmHD8BI4ق]K͛7XݻwKJ䣓q'P+ڒ۷Bsl ޿aLɁ4AW1>SDB ^MR$E$Hq-+A lmmy2==},VFFF `ؘp$z+W\})''QH2466SH"=$E /^ŠHQYY577CēgA6tQ.U?]n z];pg,{^MMW^^<۝kclnna,UWWCГčqږHh '!$>yD$1VXNOE|)м:AOIAR$IA$ARD7Sww7cxcVZ[[SaOpҐ7p::#2B-$E{1lIq //šПXn kbiܢ544." l]]xiXN9.<***EFX?^zDQ8`(Q(E  ^PAtH^ DDICr\`m^Gzws/wPu|e:L)S` 0LQ:S%+tqqa%4)6 }gg'ߢ`Dooo%E ]^^)eͻILH3RZ-+u-N1a@UTZ Uڧ}̌ח ֖UZ:e^__44G|ةm{X;t?W<>}LRH- ito#:v|15JĶ{{{f g bLEs|_22tiBԺ19HCLD;zm1PyBTy1LT^$*@!B!B!@H/UA)O7j:@Fj.R#x1)~_D0g}b4y)hO/m K/%21/lZWp3 B޹FUa<9(F{s^L QXdzikEV(R *[*WR0"Qb}P DAM*("__,̞){YY{Y,>{Bm60(2;=pe]V|WsWuUW^{mKET(w@dh&t>}ˠpKy^"@h3PY(wvmKtbbOdFɔS`Imd?e_~9[]Gfʮ暰K$0Mր:I;R())A 6X /nf3@z $oۭު9Wn9mmm&G#7i֬Y֭[umwqG&)&dB bqS=Ń>_y?\5gΜsjjjrT_}zħL͛#G[LagyF8 3f SQQK+BplrgիWc]-Z\BlX=7NzF>Iӑ?xb|/ɗ/_esZ \.O:U{{У><0$鉰)}n`̙ACCC0x`ؾb p䭭]-YhcƌS)WCsZp^&ğѣl,~*\N=;阋BΙg~aR ~W/ K/$q' ԓ-c. ;FCnK2I#FT@蕀+Iy  6oGI#6n܈_~ĉٳg1c=K| p^^> rM<@%/0y kw{S=!ϴb@&ŋ&A!*++'x‹/gS{/ǹ}=[dcQo\wm:~icBH[l j+Wf#[Ij_;vX8Blj^?`б@Hda6E<֧9#|iZ?sz>e?4|62uɯі.e.l M_puu5#@hq%S>+ZXX/X@\:3H`?ϡžy[ /OuOK/}D/!^(*bAQd(AQD~m=G&L’8= 1;M@ر#pN0q,Sh.qA۷o66e2S[;.:NJ\V 85*aV@b혓"@ #z!|M2%;xnr'O6 I':>8"8@(tpDcc}%7հxJc:K6Z Husӱa@rHeqXn9qj*1磦"Gk˔˯.2FpCQٳрe͡N.f+~9NE]ذ(AQաC|3Zc\ҭe ߿_g2dHvZ6@ti`ߚ5ktw!h4+$3sdDtŴoH4l!h ->S:IAmB"F@ݻa0qD˦ݻwu/ȑ#]aԩdL?fr-ѣp,H!)Oʱ.K,wa6 /ÿٳwܩ@8"6 / dÿ w^h K x| K* LFnҬYJT'^2Qd@Ī@@ 6\o(p)QSMM !44=C-'8}z0~x 0X/2|}k.  ~U@Bx#){K@}'CPC{C{:,ۤC8,rm9s&B9gmF7\svt8OYy 4|t)]-]JQ744 p& 7.L1aE^QQaB,@j#46mYF&GI&є!zlE"C (*bAQd(AQDO޶۷q1wСP l 2DL;s HvXtXzC@RBcnӦMȑ# 0,Ya#qkPK$$2'O0TUU@Ɏ@?:; `' fϞkǜ$rxׂuֱQg!C9L쩖{4߸=F/ +Q_ >c?CDgXdraN'˔&hUn1oq11qDDؿ,']wAŋ5p;XVG)l@ССCq\{<^쟒g\`ظ E"""""""嘓:nFNt%F 6o,_<ضmFgڵkhDN iwAėP dtdG#ЩSVRrbNP d iOi!ǀ@𒉳ntB:j(cUL,8,/ E-m$׸prӘtƍCW /&qPGj.f"ԷaaL4M[p!%Q5>\Ua( yHg,[co@cǎ $EFcq@hzuIK&f~at]1`vWcƌNQHIJe˰rJ?]\#""""""""h!G9'$5'1I@,Z(tX$g~z6IO5ÿEa@ؒX4٤'N0K {dRlj@N2 1, @6{K0 `$!kQQɯǮsUe/^dzqLWeʝa'QE0455=s}];vlz c<BѠ()6NXH[ZZ4hۦmԨ#QE;ID.QM$Q_ݚ={}p ZW7oYu?|Æ {=r+?LFb{8nꟿ{,㕹 n]׼)^NcC^ݷڬ)brV”NQxtE(J>]*F짡dc!(tX'uzpRJ"c#3 m CO2kHp v0g. XɎC"7r#|'y #f2Nf4v,N?y8=k"A!8rḄӨdɋ\A^L@4I|\Zbem*( > 29#F]%~8yfwY|A_$9lWQr:$I'=B[, Y * D10xzi ք 6E  Z>}P-f`֥)(($IA0,I<$U ~%/*PU䄼^/2rxxHZ㗔QI7xلY|b]\ԖHE `ڜQ.VE`fww`$1.bش\EaꈒA`R~?% ^yyR4hB@S9f< 8==N9nAx= XI߄$>KBIbe@=1WIېxZ].yx)Օ>bx߁ /}E^jHrQ8$D;d2P($ qfƐII%9$VM? 0 wڑH_V׹E)l6K.___3+2%GJRo I鉿Fm>Wݦ[x瞗%z1~nĻ3t:M |ߓ|sm!fănND <F, =+/$ 8WOY^/}Hl: fÎ#s\Lq>zd2SKv;xuHd/24XowݣYyf! p8nȠH@x={%\nv '5 ^VDIu# rnb Gw>r7hj& $q9N z89 jI8Nd$jX`*ijK+JVAN\vfFۣH3, ò Dz;z.(+z$nC$}$ҽ7>H0/\B hTHjf2RWBY$yxh/rI$I.3 fjnWr a (AR@l"],AviQ[B!$ǔJ~P@Yul/mIfuNGxux[~ \HX u,p6nʗeޙHQq_|VA5FD Q6 DEc"11 ]RJܚ鞙f9TWխꪚ{j5**enip"P;q`:r|GzWwM%ΐ{ɴ/ۏ'!L0aB8yllN|iIbȐ!3 ƸfwyR G8蒫*j><B"5Ip W{VqѧN%V 4aV! (*XdyI"+OuʖbVNCb~@pT(ݧRŨ/ Wb%$( %$DDI( %!"JBI( QJBI( %!"$P""JBI4ڵkBe9Rzxv<"JBI$hn?/{qbMiB#@ŋ=$"/^~P,44۶mN%A6N8QU4o޼JI1}H"ھOw^*Opp<݈$$Bi4Vh\^俋͛}KhSI$w3f`IoV1x,~Yy-RHL#&Ɂ@#Gdl-4ΆrI7ry6 ,R 3%%gT$O!=4ql;OLClTAX@_שּׂ?b=#<¶TWO=WU[ ٺ|$>h齁o7y%tsf m$1tt\ L[S6ŒHO>EXʄ4S2 X>I IЧIPtb3D|/4}Ǚ+ImVVnK:OZnn7[d]U( qݲPQ/DQJBDDI( %$( %$DDI( %!"JBI( QJBI( %!"$D:t&ҦiIȬؽ{7ٿ;/"n׮]ьE]T_ŲehrY̳sN8%$!t1617pC ӆ n?~|٤a9'ebHc $\&bs6>%Ü%㔄H =3źuօofƁCJZdx&$DZTt*+P%JB%fi$DCf*vp@€a:ͦ }eNhYq<OJ7n*D(Q?mjnep'r@4>hO>| ^imə%Kz`vW i(}O>$/'\PL6e au;O9 ,.D~4hٯT'%=SH:-DS+J34J=*8hgΜ0v1B`|UIȌ&K9[N$e~79ʜhQ"79;>}:YoʒM8gjI^wJ>@|(*V $@,YiPB%n"$P㉈PJBDP"$%$P""JBI( %5_~>s$zPGDI( !Cu+W\i&"*w$:&o"%1%F矂nŊݺ8p@|Ę1c>LkIɧ^vmchhϞ=ƍ=Eϐh6ğ*qMeLMGsW4,(OqѲ?x/NWQ^I$Ҹ"Sq7*pZ ;wn駟VIJ޵hIn&B) ?&>/Z?e˖>HUOUn7qyaCu'x28j|XdI{IDKt_X%%AUZ_Mg/R"]ZLg*lhy/ҏ%-+طo\s ֒C8I]g㔄HAZ[̤?~ܓt\O39J%sN z$ N_}Ul^z2\qJ#&LH%z4CHh6hI9|رMkHO?yKG}4[NY9Fb>YrܹscYO>Glh!̇7bBOI{j?es=L8q"&)_[&Jp*"AFo7 4I:*|Җq]'%SqOSB T#F`8J" +6J?2IT .Qӟ={6ѦY\;B* p/8s@v[:+hX%/{ *ðRDI( %$DDQJBDDI( %!"JBI( QJBIPJBDPsW{Ј( % "?â;tMg4:t޳gCe++We_z5Iu崃F#foy( %ћ߽{wT;v4v*EPPN8Q߿?J6m7N1lOI4_fKl*\I@PYWuNŭ"R>vDSkxbn2.X`A T}:$D*fx[N:^cE<]|I\{D\ ih #iӦRw/?K{wRIIlz<֗K?1l;vlOwR~a]vYogH"sk/į[?+zQ}@} IDAnoIUiHu9~̙$/"UJ(ЈnGŝ~R)e#@2UNl*B%X_~z,(.&*ItmQqQuV <~%TmG&|ζg(J_\7^xe==ra2l%JBI( %!"$%$( %$DDI( %!"$P""Ju$ͶmV4MG@Cǯp.G@P)toW$ t|M֭[(Ӵ{ I+ʥ)lSXu$`ĉ_~$UV!4ھo/1cƜTvȑeƍ=Ez!/V\Y{BxKEZXK.-:D# !+D=H KCn:D ]Ip&9╄p+w߾}tVQͷv$I 1xߌ=ztqEd`yNŋ/%0 is}X׆3bĈ2΂zȘ`y s8 &e%Fo7lСI&EܠAO?Yz]g:uj!gAPP/ˡ&=z%A@uʞJol_ԷXOwIV *D 3aFZ2R,W`1] IP I5K%Q>[o9HqIP3f̨zir S1w9M2e iuՕɓyz衪(ǥ?#& h쩧 !$`@pV$22s( %!"$P""Jb@K3( $DDP""JBI( %!"$DӉ}BXmNa#HXW|}yvo75rӃht\ ʔ ,' ʒcZGEVu]G"\gVoYwWlW6O'ˌ7d~wLR"/INerH"kSI('$/9r"\( %!"$%$( %$DDI( %!"JBI( %$DDQJ'yt[nȃ]Α#GP) |ޞer ,J\/2_͛7D"JBI駟^třg)VJqLM9g0W"e˖4|t|Y9F9쳳e2i}8OvZ뻳:+ JBIiM#8I"4PRJI$-rɇH>Bn\r!ЄxA7QQ "t0vFu n3vV'G'Dpa oiU+H/ -/4^CtVv~!H8#/A AA)`ADX*H8FVI6 :eY8"[Tm|>NOO-Nv'&'YV R quH k$12gw{[cRƋ ϙ_$|\[\l yHXEE6Dދ~B}>O0hGؑeюsҼw[*Q$ܶXC(P\8,~qR2 [4\-oCxUb[<s醘_ߨ@baH@K;PAſjAjR5il J?% U du0{3^XͿ?o1wu1CN#8MC]=cl/ByO&!Ono}Fbh(ʫb,v F|w=@+u%b=WLLC},e' /a!8QsΒP"̓Y9 8:#db0( Ca4[G[(PrzF!èvb^GR@ oi8` $I$I$I$I$I$I$I$I$I$I$I$I$IS30 `,&5E X4ڞ2ԤG{Cq0L SixIj7{:dzaY2 7 D0̓@c,mk Zg.ee,«8Yk~z(ơd* g,v(ata\gnNufta E8bC>0܆OOnC1H *%<&O$ÇˎAged`.܅v$"+vtK0 O a6b3/@R:58v Vt_4B,$ ¼Ym1A܄Qv q݀FDkBQQ<5,]E(S%p"x >P(iȽ^o1%[E7kU[c&у!>ql icWBg(RtdjɎ83D LbcQxx6{}X=~: p~ |5>2j= Ư6LE;Jfԗ$^IpCwXh4~~=E;ucbKz.\.g*闅BxL4HX,N]VyV[G ٌW*}rfn?QkedLB8 9mrr!l$$f!1$$ (""(..*.^EDEG7thwW?Qկ,ޯ^U'ޒ۹+ ]եǴO:::dggO}}\.߿|K ؑpdd$ʢq DPd;(E!3ޒA ?|?˗/eddDΆ(ܕ49i`yy=.\$~DFF? {Ko޼Qf5=kkkjnUI'R|76 Ny󦬬mDrrag&qfpq{IBgT\t8eI,:)++ LBETT ;5-tI$ Q7nJߣI!77͇IB* 3$ I{ʕ+hr^" Q[[+2#}I !%w(H#$'%AN]I[FLprGYҒIEIKx`/$( BQcXNIPr %A!%A!%A!%A!%A!DI7^8{,!~!) 56ŋ9<`BH(N) ?$B%AIPܹs%A!%A!% *ZZZ0~:/B%֣݁^z%0-HS˥^ʏxu$""Be}}]^xq$(S*aaE:>}$QQQ2==! &y山244ċQŗǏ[ѣGrJ"%188xZӧSJJPޭ[$&&V`Ybb"28^XCWv{.%FbjAQ뎍RW7K>233uYggj^煅zyiiǏ|=!.F(px%벙{xV ?n###CJIX^^#B!aGaQQ/]oP:Tj4a $48R  " J0w2( BԤZ 0]В0ّY%A "0t Pɓ'3F:X$Lev%.p$;e!1r̗Immlnnbyww̆$ 'I,--GjPpt/`1~jj$ Խ=N߾}&ױ_IX,g|F{v㾌*IJJe#--M̓C^^&^vFo?U#cn~;I>pĻwA/np۷r}z _ė/_TVjj*捔Xo- L-`_]!/ QNv%&c.lŋ[g :CYi% vƝ JI $$ByGSI\Yf:?5N}3r^ 0D/ewvvꮳ<0:ID}:<>>%=^>j>wC"))QW8F^:GP7#֋gzW@ DL Dy Z  q >FyqL9HM Cⴄ԰r:0$ Cb$b[!aY!aHe!aY!aHe!aYeHeY!aYeHeY!aYeH;sT(YY4ٚ&$E )N\U,ED-¥P<2yΛ'Lws="@n<$I@H$$I HHHXɄypȏ[H HK^֝II@* ,@J$vEqXGQ 4iW'$IlSGGGtZInD""Ϸ4/'AH*Ib8gdlpM%$4^c$P,*$p$XNwwwTV\5nRHh=5yHb%ni^hQ(Ǽz`4%U ) QRFT.Y2DEZz]2KyfՄxP(̻(@m2 J%HHr8.//y.\r9seC9ʿR@ u[FhI@ggg?.-+D"A777KspX}Iȋв$865ESUIFFdXj 2+ aZx[Cb+!v;U4 HB˒$ iHf?L&FNWӢOJbA6]UIat.JB*sHBÒ`)Dܶj2͎bo% `~Ox\mIpˋRt:veEO&n\zY^6pFqBQ FQPwM3 LC1 EIS)sT?d%A>I}uM:avx<%D71az0O`Z4a[ M$k<ST˥H CR[d4^r>ȑ :Rw%/;[èV`fzWURՒFaªM9#&w*@ z[aII\>un}pS_&1n@6^,b !*) u l<{\.8D(f}J~oDZ-uLm :IKݎq-t cx6_w _JL\K&P}Ha0%S^cRa˥RI^Gx" A٤reH"u[nUnQ-=Q,-8xڈew*վ.QTG6ͲRmCt?> r9J' Wp 2RlgKf84YX!$l鞟 ԇf/WV6>W/!wQ1< y:ب`a'bFZP;+ߠrNn\e!-|ݙC) Ֆ~_w],-ލ'@g`$$fIG@HI $$$$ $$I $HI'I\]]H3 $$@HI $$$$ $$I 3Dٔl&nWjڏw"K$ĩKF&NZXba߇6I8T,P(x<[Ts=w:^:$$~C\D%LJ^{mHѐ`0I6u$%,+V^__ $.Q62yZyxxz\.%;ݒXLժivWYØ|$.Me!=?/I^OVm)ˢ ` \Y:R*4- {kX$q9EMc3}w$qNhZvjt3fH ~C DDEg" [G9Tb( ?V{U(-ЛҖ*""xGDQWQZ_"?_$馨kg&e&LM_Nh0;(z777!4ԔH$T>ӓ ľC҆riID-LeutLF 7Qn_xcfjXI$D"n4XJf7XOBė}V7{ɉ^Nړˋvj鈩TJNj&sƝ(q' $ VaT* 7V=??3$<) a[pسad@a0ؐDx3#$"8S$4<GsV3ު6Z6X ?^L3 8K-pG .r^__1GEk|ֳ&$w7!A{:gشm. +w K\]]FN lYj;B"zB_BLv1Bl6m|>GBi=6NրbQ^ȇ&ѓK9>??UTR3O&Ni]mC3J* Fy؆ 3|< ԍp=Ҵ±$D @w'///=jgΝΗ!p357H8۠uBσ O=dZ$ݻ. D E-AD4N$:9 8/( ??gFEaH$nfLJZ-999Z&Hp8W#&x\fۍF#NOOwاHcO6m8b0åT*%|H=zzq>te^' r`+epӄ.}SI$r,_?zLb]˷zl.CA$L ]_FA$_Ԥ^WH, Ix~BBpXIUIʋ3D2tO:vg3Wwh4%TQy_&}6nz7΃OX!_OG̑H$VUGErq xO9/A[rALG1+b0}n uw9 Jqq]( 4v}^,zA! zƎ=RtxR@=22Fnh4j2}pl6E]ٗJ%g`/n%8۞]VRvm<JHD9噏ՁME˥Wc9d=S"ŧ|>cJBE*II\OW+l@ @`e=wP(ޙDqwx>bvM WT[/To @5 4As70EOi34|)>~ tx999pkaa!J1H>KΏ$Ɔ9::2$j677ͳgʊ2$paQkIWI> IĎzSWWpaQ.U'I浵݈$$qĥRRioodݰۗ 1ZI9 w'KVWTpI{Z+**k"I@q( Eqդ_~5&33+ ϼh$SI2{ho?;;3˗/z $<󢖄loo#8;Itmo=fxx_~i($a9 $5)a&$555fppvzBssQ^/99[Łٮ6Ǐlj־#߮B\'$1nFҒHKKAnnn$q"EDr>D\nM>$?n޾}mYO1|?}䍡>_;n%~S[14oddJjh*zFVVV`$HBBs}llG>$ܸ6}RMP) ===H.ZbMQh.{FIIEI2%JB5ϐ RSSUvXIx#UVVXnA)Me?|+ m_oqq$$$.]n;$I\$ܜ?ij6 %MoE=zUOޖ؏?|+ '+ ]Dצ&WH&~wJ"%%۲וnnrI#H,$D|??E(S2lڹ9JRHP$=5^^^A{ۚǼi|/CBZIM]j*Bbiib̌EߜmܯO"t& D"A o,Jrl6NS6x B 9Bbaa:\.3$!"\.J%:??68Kz}}sonnlᗊd2_yFrIggg!icc=5юANG A$ lv{;QkJ"BAz^ ҏ.b1aPxx{{#1:noozȐ@]r, '6{H`v{{uGnZ-Ābq FMB 5!G j5Nl5 +l;v7;;5Ѷ7L8G$\v" JQ wׂ[Awww  ) &!'Hj:99cAPa+ ;d0_L7aAm"hAZԦNKWBPZt#Jxy9|)3pz$|w"PFxx຤FHP$__cmuPJBI( %!"$P""JBI%$( %$DDI( %!"JBI|$DD~JLBDLBI( %!"$P""JBI( %$DDI( %!"JBI$hqD`[Q_KR>?s.-pVW|…ZEA]+nDAnŅ/ŋЖ'B]HCs=$MH~fǡiBh$E R,kqdκWuuzrr"+++j{{k=rV+BAؑh $D&H Nfr(iHH4eiꒁ.D3B(\&(0+HKR!vRX[[,M➞ plCH4۞ޞ(|ZX' Y:880!4@h=B ىN]^^t! n !(L{tcj\ԯ!WH Z\\677zM琀vvvZ$ $Rd_jB)!A?Honn !SSSR)5"zib~"@PH $ l Cccc삐 \\\Mp2:ޖeS35$ ?Bٻ0&BHдffF ^ MH$Gu ; 'WH`I~~Zz0sPXd'iz"PM~q}} dc*k̃zۘDo[[[]BPGTy^D2s T8g#Ɂ=}'N䥥%sgi%/FkEASRP 䯥J 5BqCv3U33;;ILɉ|6,{VyJ-.hÌ}I0hh ٮ^Y)gnnZ"<0 F=SeBz ̨؈?Hv777՛˓LpqqDó$FGS՗///G繿|!_ƝוEdI:Cv;///sƥKYpɒkĄAmF_X Ǭ$DICAH I0>F$\>֡&Hb~DNύ ̐Z)+SLzwY^1i%!JBI$f~:!ߍЌ$m%$~$b-x( %$DDQJBDDI( %$DDQJBDDI( %!"JBI( QJBIPJBDDI( %$DDQJBDDI( ޹$q ЍB]6 jSԮZD7u!.ܩq%7DD*}" R9(>3 Hbp~?mll(mxvV*$ HbҒԷmdYZ\\iɤh$x9HH$&cv|^B@[[[ $rζdp88\.)Ym6Bt^$$ZD$133C\:L&$0H$ C0??'m#IL$FMcKkRbIm4 %?\ɉ_\e\__J_ "$dILVI(I’X,T,珏9 e:;;rxxxnX:$VVV~  $1,۵ZW8co,"-BZNw $XZZRL)r5(JAnrw`?88p8r$k_jtww$׉ -HT*Ѡ IYM'''NՔ&$!I\ChYJJBR($;p IMu f7I^t:}OQp-e^X']\\pCs_1lb!3y]?>>P#1 򵣣#B{{{r,,,0H(_Nת3Mf3bd9X%bV+8(nIxGQaÂ`ck!"(ha!ZhռFBAV\aI2cvn$*6M6 Zfݎ\;5ZV22ؗ*uڧ)jc)q%\R@{($6h*ga<4I\˒`}%c. Ҁ@D'A`&DuȣUvKD-ds\nex.T] Le|>) _A&IĵgQhFA/>U|$K=z~OWHa&oH"YV\'5_hNyzeI¿o6 EMrn0LIDԝfDA;ޞ [?:cٌ߳`|tH"-*\%1$oVg#I DY%?$g 1PI|.Iu(#a;u@ E/#~ĉsH P$"JBIHA`KލCDI( %$DDQJBDDI( %!"JBI( QJBIPoDR( {""$P""JBI( %!"$PJBDP"$o%(VE"AD-"h;6!.q!;7Bŭ+QADϏ;HӠof\3g#!AH8H$"1VA3;E I^__$T*>ϪPc7<<,\NɤJX,4;E!`"7fW$l6ettT...TD/xz&Ysss]5;;+!$BA:Xϐcqޞ|>9>>/Uj~ArffF|ttI C6H!}uu #MZMeccC^6;=E Z> @BG֍-LLH$vOL>E _L@| C|𿺺"$(ʾ"5DLFA qss:m\.k_BDϭDV@AH8Hs mFHPT֮ٙH@A !Hp8LHPID @pM)d2F}(J"Gz&$(MNMRS䰅k]h4zf'(m] ߃Mnoo @"*T&''vk직_{yY\\^͐f~@$ ^.r> (Hԡ.龵'$] Yxz>#NYN@n^g^wwU{gX +P(-몥]Dğ.\?8s.|:3e`ڞØ&7ɍ$ߜ&ɦhT{^ʛSqU "/A A' /mEj`e`@@/opv/̊㚝:ӽ ƫ^1o,83+Mnoo 4}㞫VoۤC2iDk"M2nnnnȋ0CcE9P?a[Ltʛ*\.y ;#@[ /}s#f8N'}M<==Rv6*=<<~w+]sN7}"S"I`^9 2M^,kH"\f~$3Hn.ʓ&/ AX%K7{ f<.3R(ǶjwgF{Ru)~JۑR{+]sNӖ7Ͽ+ VxIU>$JQ.>>> JIҩ-dZV1PJBI|I2Grgfڊ:??f%bI`#0:ȋ Dp @ȶ mGP ? Mh86 mF}k j ,<p8dߕntZV@_S[stExm R Hi~D\+ %|ilU "|Pm%$-1S ( QJBIPJBDP""JBI( %!"$P""JBI( %!"$%$( %$DDI( %!"JBI( %$DDQJco^oV$4,㷁\"F` wAT EP *"r!!=$!=/d%d#o/|MMtuNy{z_y3>>x<+EN^[o`%(Bp$?6b###C">>x~FFT+++HE555jtt/vm,ONN"Q!AH!8HWG% lT6Dz?ܜgS cHsrrĄ1և):{x_:~cb?S-]xx8.ڝPs{ÇTKKYz}=RDZ9X?~bbbmUUU/_ԑ#GTYYy\)ӧO;ֱcǬ>̇aaahMEQ (B؍R{X(B "$ 7$ "$\ ?Y 3$ ;BH,7H`~SD \m$. $X]!&ؓ $(B`'$ AüJ~… >wttb:AuU ̙3}KMŹs0ˮ1ճg~̗<~R&ú޼yw$0} S?8FaYuxA. a +**RFCcH8zKVmAA(0!_>4⵴HXbujhh%gHb#$> իWyUII>55%mC׮ !Y(߿ h$P0?.h655¬NOOV<=P!M߿_|RSS,,=xս$$ 4 h( Ž:a构)v!;wvKHtf^c [}A.P[[:<<<ǀ}X,?MNMlGx D'DNBnQ_?$bNLgd095~)nowr'I ̓|[8"G4-?u(N\[2r'7r-s9s &_E؆9F6˩ky!Wv -r0;'2qEujr$o+#Tf3hS(Ae)*Frh$qh# g&q 285Ug4.Zj_MlD<3q$đ0G""BbZja@X@4}`8vJ1 iѼHPtš(m- qw5L"n^6A8t]$j[9-ճsB *X= I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I>p}|! Yu,ƃҒQq{!5>8.Q0lX#u0p WhɠX-!b`"zdL\r@۞+WA #b3$< }%Xx+"Tlˏ  UJWS"ѠHBWe1;S;7Xcvt" %FD< vxFFC=OV\qM]18( =eah@q(NE4~e?_?{ػ Bo6^)$7tҽU3҇0[8!ʃ2Ld,rqѹj/ªS}0 D"JiX6MVGY'9N -ZF(JI*ᕧۗz, iJ˭//Ld&s{YvyZeůa2e&I/=Ԓ4)1`%)-W"җe*sexl8'-CZL)sXҗ+yM`)v)D b!YL 3LiRn:1-8E4KKDM"RY>˲ 29ZƔn2L܅D̊SDxD]ȨrgXg@,˔--cʺr71+m3XqH0_"*E—թ,QʲIH#i0 ؇D 8. pѓx$=(DqE AEP]qC7/RNf$}T꽪0V yyy x-ƘN1kr?޸A *0*jkNB5etH0 0 XSrM]PpR%!+HHH0(T# "0 ko0:ܨ&ruu $`Ο57*FL"!'V_f6@[w a>OOO#MLL1!(++beaaCCC '''X__]KLNw5{{{ ˟C"@ )&&3~pp@~2,@"$eB^$hor4ϵ"!)v"`@$H0 Qܐϫ(,,T___S}}=uww+ұI%%%Adawwϕ>$$˴90¢$555S[[mmm-a"=WQQA*WWWMOOk_(ҐΣ===V̉*R633C999DhȟGƢhll$5W}}l!p(ZYY!FbnsW" !v2"X$E Y$#EEETi$Z166yD ks :nDqYYtrJ///wEU:<i ^]*۶(VUMՁ}/W8 YFu!p2*qqqjUˌ/ ""0-J5###ZgųCHd /E$ׇeZ$2223XLNNKv61Jo!$SʲRB,--Qmm-?Tܰ@p]ط@*v|&*4rEEN { pb`Ƃ+6$$N;;;Y`Ԫ%= .BPu/! ' DŽEⷿٻ0\@YA*AZAEktD7.y Tэ<3 C>߁ }/? -!մrw^~yyXx~~շ|H^9DQY!UDHu Bv!ȭ`rEu,!!$"$@H !B!!$ ooo2&ĦIJoegggnww7(`,3QF9#-o7-Moooo~+3/glm_@P !:!Ksy7Eoə*gX9[%$b5\.;bUBH W*+g-!!$BBH ! $t:8fY h6qwwEUTz^Ma'|F1j7D@H !QTH4xNKL&n?$$1jZ*Jv}y15 5?N,dcBY{l,$ŽHJ~,f! B<6d;u|y:Y|zy{~O%Z-V+NGZn\]Tn'}߳Ił4eY*˘D"qS"! +HP.#NZ6KL&#J3NęL&,m@>d0P0d Dz51X  -nvK2jhc~I;%EBlJeK۔ . t)x<'JI` $Opww' :'Ȼpu1B$ =l-ېEPYLB2dz}D"vHt3dKkj6\E8z s~Xp('˵#NIxxxD"!Նf#R,yd1˥x| 83" *BvM^g! (RY8MRa88hp "gsm&IJG ?;fb0 _.t č"B<BvWJ^B/! d`B[[y/gLqL#0U7!쉴A "O|' $I4mllLy?::2zk4Le n1+H$ @B$I毩:v 1B` ǘ\,u}\t@oҲPaiN~/H$$VVVLV F'&|5O !I$I >N6fycx~~6wt:HxMN"?ij@B l'` +G I$IJVXP $ygޏ7fívBZ9#(,BE 9 b!$I4sf)1'u^B_y_'\tM@lnnх"ˀCk3yyy >}xxYm3Z__7*tC[0m_7ed?{}}5foo`>חIRڤ6_wFX؈a^+ƐS,czg;q h6S$`y>o2rH'H6hZ$F n7N{:;www޸Lɋgs@l6KJ50@$Xv('qqW*({P6cr||l0[[[cskyzzbvzzJ[* }PGq ~m??ț777pݥԏэ;88stܧ}cǵk@~\#?<;/?_=xPaV/w.+`}^Dx" |D_`I:Gg31ʽ*IRe@.jm>Qϻp#t !H;`d@4XQ!%0'Uc1;<[m64Ǐlfb)J+-׎<պh>vr 6 \.{./Rz|uГ6+5A{FG0eW*G$מ& +Ck>VWȃ]/ڞf% ^Jif~B$ шJ/ ntvC4NDerQ"J F#C Ңފq5nwfx2pfnu[0atY`c$z~r}8i>Qσ  AB2 ͌yi`cY cfTd(`؋ bT~v3 f=&V+2H@Ν &g>V^:ʚ 7FcE|3ff"0p<B^0F l ڄs]fs8^5F]4&b@DՌlPI>I|6$iwVۡ`kbc[PH=ߡ~H Cz :܇2$ ABPRjXbPJ$ AB)RJ$ AB)RJ$ AB)RJ$ AB)RJ$ AB)RJ  !H(]i15 8aKLSRS66-K|a(JBFP^J t9tc:3_͈ $ B $ !AHpGܑ $ B $ B $ B $ B $ B!AH!AH!AHb(!AHN#:dR љNrGkZ4M5F~щD" B $n5$ތl[yxx8.:Fx3aZϿ WrX,d\JV; gIR2d^K\vf>h4*L:B $ -!aEg<p8|.Kt*FTipoz!&_k_^q $ B8ųۄV<==]펄lz}VB"ۧmmzFH8#z,~y.pz]k}9!AH?M&jt+Q&9|I<`"!H$$I6=l Bt]V p(:Q݆P(֩P(Db(e  B$[bf(R)':w:S99j+p$(>#H{j}?$ k5L'n;%bQh4FQE}b̲D>Y]X!0x A >Oc?mD"(D]'"oV׭ %H$VTg6N9XQEQ?v;STªB!=&꼿j%ZMf\.Oa@ӱ$@A H$ áJr#(wxdtn_,_5H NCp|>#OA}!o\ʭa B>G m2yJhd*˷˛Kl6 A Do>V!D"vEQ;d\&A`J%R | (p%(vN<Ǘ+\NSZX*Rtvg0A7臗Jx^A aХL öN']jVVGQEZN1Qg}\{`W;y bEBGg*eYtZ+ Fl[i6DaZ ؈bai_FBBBK+?V~, [C9]&5<;#' "qppPy]^^vTD"DbmffA`?~B6jb-m{99^HHHH}->k~||ԥaD"ĀJMX@&T_Gi6: 3!󯯯t:Wf&#k&O/Qa#?)׳.eqz||Ҍbj6)S-,(#lnwo\,@tn\+][[\nnn9_$?m{=to/}Ul9"D"ᇽ2v'nnnNN$FO[=< -Ԧto63t~`E|M+#t/..t"OIz}nlsoHtÖ׵m袟?jbeDTXdcVVVnvO3RNy얉D[˸]Iݤ5o A$H,P[ p 3ReI_Hfܘ9??\EVJ?PWB:h}D^wm<PUq闶|N$T4QSHHS?̘3Bl}ɷwI,6RN˱[&]o.m;$$$D IK&5?v& p[d )@5, ()Z/XkՍlmC$|gi,F̀6ܟ?%$iFm^z>|899[~yyg,ǩmfwhH vKh"d ]!>A~3˶e3@nUH]ׇ4M=#үwlV~ZKFqm!e9?vG!u+ Cb}L !!$equu`oD-͈^__7C}H͐9t-}f3 ڞfw̚e>4$%%W6\´Eu,/..گ]!f{Oooömj&$vh>a뮩 [v~8O7^ ;'ңBˁ-tuh_}s]{8$ BBH? X BvD3OԳ% BBH ! $BBH !BBH !!$BBH !!$BBH $@H !!$B@H !!$B!!$BBH ! $BBH !7_^^混c~}}zo?wss3|BBHi4}=??ϧ?tt4 @H !U!qvv6?==;wT( ?VrIH"VVZ`'؈(h!((@P]`1#9Lbcff=j%F9 9onn,fu@&0t:-hT9F|>],KbDdXH\hfS22HR(JH$d6"_BnPV% O!P$( d2%B buӓqZwEpN 6i?"p8|킀Ht$>:/7uB!888PVs\ E7}yzmK.@ @6t:%O|`vՕ KnH hh7T˵.zHB1=c`\*0E"SEg}~₽|^F}x\9,#J&ju БHavVxHJ( C"ϕ Ct@TЛEBaQ E"AM"^ @VČ'k7wB!Z..v S(QT"AHHlHB!߄CS </2t:+{___L!X)MHP$v@$6ވHQ$! #,6+J(( W.ċ"#Q$!ho&͆f9.X(  Eb76[8==ۍ&B![):7!OªnriE"MDb ?Ɋ@߫ 7=Г .T@8!88 qԽ_Dt$ɽ~LRSS0#|!(_VxB:-K&u B@"$DHW@ >;4M~ 0!( TH3 OFY tZe5t;|GVSOOOØfX,nnn|\.~M$>pd2YcyBأ ~|||7NBƒ}8!vBP^eHpbqR 8/E1M`b1&.zVAMIG!i %;O!\8gc>1NP!QC;~ W$ p,!.<3fx;C|<{kgtdIH\ c_|LHԁ@@`t]󲲲BdhK׃ـѨL!di`^PW;;;H0˜FFF7VUz]BY[[Â_q~~>xyyp >V ͪWNU* |hӓx^zxx$G!dlnnbQ3HHH#q|| Kt:WV[qiK#A#A#UF"@ L  E!)q B΄^ N`$49-PHHH,H 0Ph)fc,NBfYg25_*!6Q JjZz(FbDie 2BTFFFbFb^ S NBf)dT&v\.T >7L(B~-A#1ݴbݥ󗽳kI *.. EP$TD 9^L<nK{vgf QHz=n#  e*iVj{P՞vc8Fam@ ߛ|n&y||\u66`{PB{$$$$$BHP<A`IKXҽ em_Hbb6TR Rld2;se W v <==up?V3iDzzz2T9'r7 ҧOBqrT4ݱ(J"Z -%[g8P(Sq: p+[5:z{{;h౉lu[9b1BƑuDz-LL"yKgk]l*s)lD"M0Y もܰ$+oFh6avmsĎ}~d ]}zE0}JB+\~v5 yqqcf$A$$$$$$ =I[aۂ2s:k"^Vϓbc.9ć#$X&Z'$67{wHaDRY .6^`k"wHHRJi"&k ^)~dLB"ru-!$Br68M|dU^e^;ϴ˼L_i[{~~^NNNC@H !72ve6c/f777du[_l6K;?8!!$ľ?Z___,`'le4,y^dnrYo%(VP-EA -5TCCSAPSl$ N. :/C>>OU9<{="H Ĉ?=HY(p8d+w$NOOMNҁH@`[YY'H 4xxp'ɄnmT+P988pu B&KĎ"HLHh]^^HY$IjV.-HՕ{DA2QM츱궯Fa| 3% Z= "HLHyM$*&ݯcﳀ8qS(qii @$HxMH(BE{WX0'ZOl6m}}խN=5wJ 4.\.s#"1" 9Uף ҚsD"WFR(E›@$ DbDbqqo?lDzz2P ɤ8VѮ߾h ~˄KJ D$Dx8vH(>BٙLJ}||kSMfJV7BIR @$&C$ d PVN#pubkkVe)Tx<ͪժv" D>|nҲ6:y"Dpl"qqqa ?.\mccÎ{C9>>A>sF0vYn]kw߸٫(CQDVE + T,BDY%ff3wYpag2IN2sa`( DHxw!q^!Tnk_T*yD2YgmӉg'yM}CbG$bQ;j^ӎU'HprnZ`v?f3!^R\[,:+ch4j"\nVgNXh+w9xkFNjkB tN /dzDY٣c^q\T:6:A,Bh{ٻ مP?Fp h2?Lw l\Gfه=xy^CqZ初rbsu =f<ϫ~߮ 11W _&TlFE_@!!B %$,n|m ?ьJ6 Ih cBA CMT'UfQnb 1eUxGh`r:Obz 3aI\s'BBLLLL FHȗӛi] +r4l $xZ)< 5d:M"/HRc)W{dZ V ڣO{Rwp1|b<^o!c\.@t􃽻YI%8|1DDA(Z]E-[]DE] AAnDDč?9'Mx g͡a~~j.ZM8,}}}e_|.$o@H !!$Py^o|71 !!$I׏iy#$@H !!$B@H !!$B!!$BBH ! $BBH HB@H !!$B@H !!$B!!$BBH !!$BBHV"mJzv<{!!$w~!LY'LHP$( Z5X Vkf"֖J6ٙ XJ4˟Bt:}ONNGGGj# F! &$}cIHP$w@=(Ploo9X@3Bj- F1:d2rwHP$("z! 5F߾b7Z@ 2KHP$:O#&I!dK^^^T}\P׫H$j)p~~jŢ\.G!)~~yl,Ò^ݱPP$(y f`xoBC;~xxړW]@=V5xH{ Qۧb#?>> ZfgfYlSBT Z uv;Aİ{LKOOO5rrByDr9E"1"aL3*P|$!Qnj$WM0fPɤzTqPquu%fѐscs&@DVU, ?ÐrL"dh7MGf%666( <XZZt:-CO78A!d\ ?`~dv$}oZ}}{{l9P <b^R" 0˅zqDDĝ n|,D.<Pp܈;w9|)r~жDA`ugeTtqqq!n:/">u}p씕 ICO"!]Y[[+,VN}ص=I$HL6PNל$)))))J)U6oe_CDb 4EVmJ"Db҈ԔEulyxxS"Z\\,///:\n!a^݁KzppP.//M9???ڔ \H Ig)3X]rc}z'Sxޚ~sH?>%e M&$eH"D' tx||ԀU:M7鱐nnO:]ZZBxWVHY'X^^l#eB^:Ɇ{"c|ODI1jѳuNIo75_lHD"O$Si;D MӼ]ՙ4u_wg9o JytyD!||EDjWؠb]`ZBtCNQ񛭢"5gꋟ]Ŏ:lj>V3{-a<5}G"_##+{h--_qᓞ=i~g))wupQmMRѾI$H$iD5~m _" ,x$T"@ $@r]&5y@(EgWY;x5p^A"4*rDl`c ijjK SÚѥX/v8Ys*,5}(޶DBE!Ά.! SRRRH$H"1DAeh$=~~[[mnm."AV($ <:&p>XB@*Ic/6G'+)[fp#I|::c~3o)R{%$"WR2=\x~~YmdUe)\'I%>?gʼ+sHUB?[B"Wu>\@sw]H$XBC7Y "ө2 ?Wr_B5!qWx<<==ɉ CE|n|>F_6Ph4$KT[^ !E"z"z=v-^W 3 7>gt\KM Bh4"sfa* HZHhf>>.mّ`0PJ!vXDHB!3 ~R$( $u̅l7ed2|&{86B!: & 9oBAr, E'DoZ5SO L /"Bu~tt$`+...jF,@r x R6E"ANmNOO'YE-^ց B!kWD2 0~OޜL&@,HP$(!Wdr^&% !u7_t:-FBXLv ʾfS"KU""p8jݝ\^^bW 9N޹Dqs%!H$E@+R|6ډ(>Wװo ]x ٝ9 tJ<O5,.\.JIWWW\\bDQy8=l<+e˵2K'  Ӏ͍z^jRF6 b@.$zxZ2s A2 `$p뒀h44~yy۸Wi ձId`Hsmo팇@#Ft]4.:Ū,r7磓zXڠw\xR ^Ƙm~CDTTп@ozzd2 :Wk^* C-tqo2/ ~OskjGaoٌ~8z=cVHEH ݲTj ahTj.1L[bꊱɜOOO65z0>>>~8Jb102u ?2sV?/~-˃P@iHK/u!o2Ӕ۟𼙲ga}CVr(xѥb/>sǨaK [4i {z ~&@Шs&ρBBHԐȐtu 9+'h}r\rDV}H:+Y.'u ?Y95dh!mHoL2 ]ߞ(o>gɐU2`0hϫժ ]/ZlKQ{{}A1'gdxl~7eݿ}5U*!QghkVo[=$|<:Nk  !!$~zHKDEkȷ\. Z6+$0Aeį @9W#!0Qs8K9]e ceswGQ Vׯ='%$uCjXʪq^CP՟>e!&y ym]DWuk?f}3=~F~[ovY<=[,&$!!$x 2uVsK벏WӲ;?v@H !!$xnVje<+o>B!!$BBH ! $BBH ! $ !!$BBH '#$o$B@H !!$B@H !!$B!!$BBH !!$mþ!!$xөf\W&Nk5 rss<ᐟ?\.|3xI%AQDԢ jmj"vmeZ хFP<~ޅql^39s"H ?S$FFFŽ7+4v}}mX,"199idVY>svNLLqqahh/RɷHt׵TVX,bH D4EBt"͆*o %j?<šp>wX4{h_/`ۓ}/rڕL].eE/쥏c?𠃄C'ᐞk ~tqD"}< $h?t9R/ޤ. ={* ! ! q 0HeXd2c 9lݩh4* BzZ9v!:6u gx?lXP?!zHVSdҠԓ}s؎94@B۰<~\wt:"F룒$tgۭ_܀.tTRe D.D[q>q :K!$'H HH $ 0OԊ 0v&sN r M=DB8];2%ءE#ù(]FC@BDDDD@B@B@$e&e;ϒZqm55-m--Ac6DKCKkC68|ठ)'z *Qԏ\mˬ?/X2$*s7[;O*v94qzC|q"$sqm9'Ym2DZ2 3}>3wcPdcseY&BW[Vg92%weWkBbE@H !!$}'''\ $V\{uWy@H !!$B@H !!$BBH $BBH ! $BBH !B!!$BBH !!$BBH !!$@H !!$B@H !!$NS~|^af:dׯ_ޞsBBH ! !qxx~_2iH4qzzBBHRHkx||B"c0vsQժ}>>>JF-Vfq~~xzY^^^g񸼽l6@H !!qssSFQ0MX?==]t}}swi%uETTJ*Xbj6bemk#!IBE $Eȣ8_rHݛQ$qw31dwsfL}NԔ)2LxڬMA-R 0I(@$U0in7 D'''vyyi6>>$UWVV\o{2>]?Ҍ/gggz<\q<*>_eE6l7kAEDD]t^޳ &v&%r.j혤%$jqK3aT?B;]V>Çͻj8P(Xyz^iLJ.sz  %+࠸?amg@^fO1f`?[m6hG~Z0L,Kv Mv)[bN+erݝ4 t=JvuG&v>Yw8BDB'"_(A`A4lHcrw@rϬˌSI{5N[oPl jX@#y@m閔 }}I͒7vm"GkWb{|1m_H紳Rmѝ LZ+qC7I4;D”iB@ΔK~~O:Dt@$fTtPq5<_xFU,BE;J$H(P"t:M@`$iwi+b |ǂ4d2D}xhxG{5v8%l\[_:Qt"/w [b/Q=z_ ba" 1@?90p@a]"[oL$PϣjX&rĝP'3AzPQQ"DB7`J4 | "ca %u5QO"D㙾&I#/kYk*DtOX%(- .=Ac/Xm=AOPCC44": "j> z|=Yӄ0ˤNr=ۑ#V+DSdv4)KnWiY|;S,?JH,s|YǏD&Y*יl&죹(g}kOͻ S%_&|xxN&21;;; uƭ j4|y|b $k&QxH:\ !!$ĚȑI#əzr}Zrv !!$BBH !!$@H !BBH !!$BBH !!$V,$666>BBH8#3BBH !!$BBH !!$BBH B@H !!$B !!$oTrz%= vږXrBBHݭ\.//"q`L? rssS^__p8,ooo:a2t:r_ov|DjM&ѨL\&9==-;w̚:qth Z;mRJBApqMppE;QEAA7'PU?0I8朜}aחL&3^w [$.C:m1oKA Np8z͍\]]-nwr1鴤R)b~_ sxNGl+Ig-VKŢx<yyy1+Ly I.1+9ε2s8S ///wBږd2/;}EP(dvi@ ` $K"L$1|F(`0Z,uDQs}vt,'=uKZS 6D HIV AA$ a@ H$ן,ӟ8^z VBc/_ A8 S7   `$; ` 1_x* `Q!H$N"Hq7X A H  $ z,W qA tJ.]áTUh4L&cgYl\GѐgEv[yh[~/Z-q\~~~Zߋ~Bׄ 2 T*Iݖx,`RG{>P({p2f3I=GEJRDoz("(*%=TKg>_vr>t~s>|΍s bU q"c{".k끌F#omb۷ E$PDbs@tttйGQr8n)i^SӜٙv||L`j Cj4zTρܿLS/Wp8L4#- yxx"~zzl6C0(r6shZYг6* hG0&/4 (ܷۛ"0ҝL|}}X,R^Y`i=a mz"u:vdMIT`$a/^u-:{Y;vB- 8^Vd2lCደ.G[f`^#3<==)""H$>>>Ŗf 1߳:d9 T![&~ #AFTj\!_tø/#Ef L&6˥9d2 Z 爧hdhunpDBؘpV D["]_%^^^T*ѿ&p%tV:oBtJ9? loF##g۝ʰj/êX`:?#_pbl???p>B`rmݐP(^$PDb[@E+\P^__x^]]8@>< IH`Ⱦ`l6ˈ̸>;F0# lDD A!pJ? YZTSHI{ `\f?kk;33;??Mz?www|`-ތ驷9,{䄄=7 l6A?r< QL<1H$s|WWWMmFhFxI؃?$+*3F3ފ(>7\ficje޻&Ʋ ! -T1`R7T$$$$$$UH-Y$P椃6SaƌsoyQ\뼙"6K:ӧk6Tt} [fvfDuyN4 ,xߡAV2jaV ԛź kw昝Q|| %˚#zK۠t"؝?B"Gfߜc' eGHdĺJPxIXGH,KHHHqxxxB"$EBBB"$6')P" J՞B!$$49f;&PX"$VBbKlJu+&|i۔vM)kwv67# ðbi'vMK麺hHр;p -];y2gΐpXvs ٞ%3e234ΜtS|H߭Do[3cbbL|I~IG2n(cp71ķ8K~)F]2Nόuo# lHt|+Qq3}<Ƃ9Y$?_L/'L؞ 3b<^qgɇsNo# &agq!r@,?Diu!Dv"< a1LFa8*83 l8 Oub#"D'v+}LcbiP]~SnA9060En CϖMx_bᓦÌ^mPV pއ[N!3"6ŘNTME*\r0BCm@Tn!FOk<(zQQ~jKՖ*á6z]1Q|]x$# x # 20j~E{[Z{0pXċGE8V NZ9Jmƃ}փ"TEmX7pp^:J#b}fm102:<ƀmMGgkaCٙr05F~k;*F@qUc@f;4-8FE v5W:* 50V2 0d\`4P$I$I$I$I$I$I$I$I$I$I$I$I$I$I$Iұ>u!IENDB`extension-manager-0.5.0/po/screenshots/_6.png000066400000000000000000001752371457631363100211600ustar00rootroot00000000000000PNG  IHDRpA%bKGDTIDATxwtWF-PʐP +xr\q^P*((W?/8QQ*D"CDdΌm|<$wҤi^ Q S$g K@! `,`h,PDmmF_겨 t!Ј@aN]7} uʫ3aN] ԅ `V89M||S 6Q Q ǬUANm pU/-lBք8)Ĩjr5yn[eg˚ $b!N`›`/hqxY-ȩlJW p2MWVNrLUU q 'RD8uosNEh@2[]> & fLC8Fp{+1{e__Ρd/B{Xyp&&s?_!-n r`塄7f/={O@ lr]]^m2ۅEM8U-wLxc)wi$2BA-px%JqePu grץT!LU1)=:_WxcU&FR\MLL266bih6i}@5s8ݞWRRرc޺u璊u|xvq*?p)½4qmPM"On4Xv]իxYF{JgTTTHR\\bcce6e2=ANSC%%%ֳ*..VRRIu|&*Z3 %PSӺOަ88q~9X,jذaժ+>>^yyyo fYXjrH3@e|wWj;k6z)66V +..V RO?s~ǏÞcz kM -q@"ȩO*M/[UldjCxjaÆɉt)!@- 2bQbb@mWZZ_)so ]W*O1Dw)o jYkboLftQjc\;.fsmkD )o|?/&&FVpfTHt|^?x)wVh@PטJs@{)?j5f|:F0`VZ2b(!!g٬X*11QEEE*((4?|/.҂ T@ͳZz衇tYgIO^'Cf͚I8Jf)^]|zzJ;Gb]wݥ.f͚ .\EiֳX,!wA*--c[+ZTgSХӇ0vX]z!Ӹqc]zr8z饗2t7ԧOM>]tjUAAjj+r:1bD Ԝ'xB~Zn+!!ASNC=/""y@9@ո›"͟?_+Vռys :TƍӘ1cd2裏x}>f~~~UjNP]ӉW[T[ZTM5:%I .^~jȐ!^С2224h y o\3fTKs]w/:m߾=H;wdUi&mڴIojܹW?Bkݑ,3jݺuھ}222= RϞ= 7ܠ7ٳGӚ5k4w\=Z^TwX,>gpLU3_Q5iDʄ7lݺU\-5aÆZx/^s 5XUp80aBPV`aZ1;ytSOO?Zgz| F-I?~ƍ`M0A]vY8F#..>@?|A9rDCxucWa@@jE@"TgW,ø馛t7 /j@]rJ3տկ__̙]SNEe˖ZprssuV 0@/nkРA)IVZ 0@fY˗/ׂ us9պuk;vL|AwUIIF!@W\q f͚_~… W_9}yw矫Ps/Эު;zꩧ+))IcǎU޽մiS>K/n5`[nEguVXQF7C]߿_]tݫJ=*&&F?ׯ_a]zzkѢEA/oƎk6-\P/rPV3}_~Qrr:⋊աCԮ];M:U*..g{jժUX,tUW]O0ǘ2e Çk=zG(몫R~~v2Zh㓘wAm۶ՕW^%qq-Zl2KRR$i~svj{޽{ծ];=c9sN=T߿_w_م*yݫUA|^$.z۷֬Y3fH:޼Sjjvޭ{Nsf͚SN9EK,w'wyj׮-['cJѣGu5f+_=z/TVdXsN-[oWf͚iڵkn&l6]tE4iF޽sn+--M\s{==㒎jӦZn Zҫ}[1RSSտ8p@&Lfӈ#tm$ݮnM[l 8uIfOj߾}_~&Ok:=Sa?… %gK74htwy;vlXʨJIIQ͵g5oܽ}M3 ƞ_xs!M4IgVv$ :vo9SU- WSOyzT\\\y:oH"M6~O>)5}￯?_}ў={4w*S:l6Ir"ڰaCI͛k.[k.k+]v2o[r&Mmۖ95jQF~ɒ%v{| W޵M6uYԱcG%%%d2SOck׺]. ou\I'N:I>^}Gl:S%_'.\bp 5_w .СC5o< 6̽=lef-)) -|%dIk|oH"%i͚5zʬ۷oC$I&)?SC 4n8_g}_l2dXt:UXXlذ2V\8o3(x.KMMO<{j֬Yڵkx x;fc 2 4o\O>Zl^֢E 5lP$kjܸ}]}A;o{%Ԇ&??_ ,пN-\qi͚5^2֭t:_W# bp8iҤfΜ6mڸǼ9ciL*lGcP ,pHٵk:u#Gxc3СCu!jJ\s^|EIrl511L2LZzV^ݻwoԩZ!_$oeW&)WVo:wX}ZnLп$ t ?M}UffJKKPfp.Yfz'ʄ7Нwo15_wohnW 2eZhƌsjzw~hBÆ SZZ┛^l6߱f̘o&O,I5kN>d=~g up *99BwvUaCi_9s?Tf͔zH4irssuM7iΜ93f>m߾z//VX1cƨgϞJNNVNN;-ZHwVffڷo_!1...Vbb/>>,**R~~~7lPV/$$ǥuǏďuy,Dz=WuTK8^}U9N <80e@;l6,mVL>[cǎHO?{W2eJjyrrrtM7[<Ӻ+Fk PPPߤ :FB f… g}2QƿPpT%N~~~] o YQQJKK8EEE*((nSu9&#bg}3PkLl;vL%%%r8C%%%:v옲kz̛:8QfjOYUhp8dX"] ^gUhjs\;.c?N+,,-Yl6 #]q4?N˫U!fS^^^ رc8@ rv]999:zͦG*''á|n31ȟ{Nv;-#" ysjbG @rss#]jZ5hݎḻ`0 &PC`у0( c\T9vn+&&&eDdRiiiˈ pիbWRR"5*T@ЮIΎH zV&I,*?L&;%9YυwuE_ls}SRr5uDetjhn_bQbbb ͦ";vLv=oPPӉ%$$()))e(ժ~UAAAK"!Û򒒒2,Kԇ7.IIIX,.@sBbbbK01pNt H58u5JFD aPx`8@j} A7`OliN:I&k߾}.jEgVǎ%I7oɓ#\_Rrrrw222O?E*IJJ矯]*%%EC׺u' %Fjȑ#շo_5jv?fϞDy*,,ٳkR@4 .8 o$SN.j^~eOV޽#ISzz̙[F߿JƖYަMiFּyiӦUY4x9N[nQ֭cǎ#AemٲErJs=X,8'NԔ)S2#رc%I_V\_UfYr Ν;+==]O?6oق#_~~XvdҸq?I̬ _ʶvLZ@@7ovl -lB/p$)66V*ruWJ^{5m޼YcƌQ֭5ydm޼Y[lȑ#5tP?^SLQQQQ+9E 4nHҨQԯ_?)##C5S$U`PDcT^||&OBꫯVbb>c}.2 eeeԩSB6NSK.թN;M{>VmL \ ݮ^xAkKQ-tM81m3223TsEӈG̙3;wѣ>rj$hʕ͝;WzΝm۪UVQג{>HW\qnt:G'ZM2Ewׯ^ֽ{wwKW^y%j T@8ХK]3o͚5ӤIsN͝;WC{Q&M4c -]ToDcXԤIv:n>,[Vq5mT_f-[,M2E@0<F!I>[ބ o7nƍ+--M/>l]{2LJKKk{7v:r:2Lիyogggk̙(pz)Pjj&M (..NWo-ŢmnGT@ôMFF* %Bx:شi:w,Iˣ/͛7פI$x?Lxsk޼yꪫ$I}Y$KQCjڴN>d޽[lQ6m$I#Gh֬Y4iZj%IktF:@]U-esΕx7CwuWKʇ7pB%''ÛJ*++&K 6נA4|iٲe?~{h'xB*--ճ>+Q@]6w\7CgVǎ%RY*۷O֭#<5$ɤ#GFUh:묳c}uڸq.]NS^^VZ ȑ#>}zDH \L h\crp"HRN&LHzrץmmn~,'.'. 0 +//O:@)ݻ7%Կ9RK.ꤜ2-OM!P5jHk׮/$$ǥuǏu[屬muO AEpp ] hr8'lH`(< DZPTTG (**t uB8 cǎEC0Dfە2 !77Wv=eD@ ݧ zx((('77W.x` r T\\DjfSQQ;FZ7]~:Q v]yyyˋt)R}D"8Pc5m4%jЗ7\wVN]@kذaK0CEARiiiKPO@t#08# S1^zC l6TXXRH0(҉r,6lHpXVկ__˓ntI .T)VU 6tj#PVի2H @ 8h} Zх*DO=:u$IڴiW:Iܹ|w!C<}ݧVXk7o>c-ZH4gzF8|r͟?2&IҶm"Q mڴ~p/M0JKKu1,Xsڅ'D&P)ժ4wyիBIR>}tתM6:|VZU0=ڵ$פIzǗYV\\,p[nEɺ[eZ5yd]wuzgT~}M:UOԴiSŅvP=pB o$[nXÇY6i$}~KHHСC5qDJ^~e=zgԴiSYV}W:z=T= p fɒ%zB/55UfY?,$Iwֆ 4o<}WZb֭[@! ?.]H6n^A+բ&==]999;}޽ Sj6mZ W BE;3%xu_~Zb6lؠ 64w\5mTJ@̑.yꩧ>ГO>Z9-Zd2fƍ^zl6+%%Ev$A ܃wMEEEˋ}'D:ur_ܹz1Œ%Ktmm۶6m^uoVf͔駟T~}s9?~gM>]%%%a )Buirs~ۮˉKF $%%%@W0@qAsrrSըQ#]#l?NmyܖDz=y['D6lP%Iׯw/'Յ'D'Ot 01xl.@o@p<EQ=!PXX7jfSaaa`p86Myyy.@-`tFcەz)>>^V+l*** NPXXȇ+`t08#08#08#08#08#08FhoY_|6mZf͛5qDeggG:` &hرIԩ233դI7TZZvlll[#F9?ш8tKƎ 67iDj߾>2iiir:zgZϜ9sz<t2={4|cX+VO?<JMMT{رcuuiȐ!ouӧOo={}:3ݷ;v5k֔sՒ%K_(33Smڴ MhSˬ_^wBqmO>tQu^]pvJMM#<}i„ z4lذt5kLw} t-_UTT} 'J.O?i޽5kVtRm޼YZ`6m3fڶm~7M6MNST-D(*Rfpػw PKJJn:k.uPD *,9rYd iϨ@]B%#ө^z0I[x<&I]tC:ф={Ǝ+I:v옖/_)SK.jҤz߿_zR˖-U^ιa9R-[T-4jԨ \yر4i;CE+W -p"=zkl6UVj֬{̙37(##Co$UokÆ z7裏USO=hoV{7|'xBoZn믿^6-B$|uirs~ۮˉKF TtUjߗ^zIs̩_~*))ұTD 05jktD]q-XV'-!_8AX=󒤋/X)))As-_\U>g 'JKK9_۶mնm[}jڴ/ȹ@D #|nƊ"hBA111uiӦem޼Y'NTvvvjݺ|As9%''+99Y:uҸqzjM2E[*nzO>|8ф.T4a;Bx#I:uRff4ijݺuJMM z#ݻ/^5[o=zTse(o߾}Fs@4!/X4vXsVkݺu>@銉:M6@MIMM?KJJ?͛WSeW^ю;ܷ7oެ7x#hx&tI… C'--MNSUƍ /T=dPUvओN*s@KO͚5_s]O//PL>]Ç[G(==6|߯CmvZV=YVp ڲe~mz3f3}p=.~n馀]r%Wnfی7N:"\I{Z,=ӲZ}DꪫxbmڴO待:YXf~$$$W^Qf4w\y^I>EF>|p}SaY waTX~ghĈ_*|~5cƌ2cIǻUe*vym$)??_7nԪUuҵԤp?gqנ.;;|_xb}~먊p>&_x#I&I_~y򯓺P{_t:իW/߀tIIIIz˼5W| vP-Zb"q=k Ţ;S7pC ҥK%oMӭ*xLnݺfŚ3g=Zk׮tO۶m?Szz&N辝ER2Tzz{=fM0A~{}.Bw{ァ,)66V%%%AP1B?~ԩSc}(dv킾9.&^8uԱcǴ|rM2ESL޽{|[q!կ__^z>#Ov}]6wlRAQСCץEgyfeYYYz$IC=FmۺرOW^y%} p?B?tڵ<6nܨݻ<&^8tAGpq5a=p@mgΜI&)##CZl~WIҮ]Ok„ [W_i͚5eu97Է~n->ڵk|4ZByڵkWQFft KlllR(&&>zuEuqyW4m(7nܸBV.NS۷o/\kٲL&ϖ?s[uln U0Ku>v]^j7z%I_|qoB|9p/_, :磏>Ҏ;t)YV͟?_ ,'|;vM64hL,IoFgu;7n\ ;_~LpA1"f2tYb M:UkvOڵ{Yg#F護ޒt|N:﫯 \h;#D 8TZZ eddD<á_Jn0fYǏsN=ϓÇb()):ͦ?/r.\)))Zb{=رCNSZR֭W__ ~6lt!]xv8}5o<1~84k,{r:JNN.QygdU}MP7hʔ)zNWiϞ=?Ļvwӯ_? 2ĽaÆ*۾}j ;w9..Zl~I6k׮ڵ6l;ɫ; a#RՁC RGV*8**TEN(Qi+U)6y $uJuF}s gϞxo޼+3GUWB>w:O"V Q &௿t_D(8;;W8[:ۇ˗Y?c U:6IѩSjPy;z^^Ο?_WUff&6lؠr,>.--7N>]~/^ Z~ڢK;]VsB'xu.]ӧvFYYYHKKùspa=|}}_m۶ }6v؁#G?77֭[1vXj 666BNN222p\p>Duy 2%߿[n!((&&&8tPPUWFjj*ƍ[[[Ν;x|MǏ1qD}Zj-Z 33nݺ۷###&^-e='|KP.5Rge} ɖe?z=;::ƽx !"Ҏ,NJD5x`XBi]N>sssP DYkC-Ca ^]*VTyBP8&pt8DDDDDDDD: """"""""4DDDD)** QQQH1CDDDDDDD!"""""""qL8&pt8DDDDDDDD: """"""""cH1CDDDDDDD!"""""""qL8&ptxbxyy 5Rv-x{{#33SK8Z 2h߾=6n -DFDDDDDDD -rrrk׮G߾}u8~8X@,k9z"""\v eطo300Һ1BuG|YUVDWb'˗/ѣhӦ>+_W(x YZZ~* T5kPdDDDo.OOO`ԩq1e!նÇW^ Js5~m{%8:k׮jۥKl۶  4CO>A֭q] B`@bb"ѣj,rq>}V_D7Nbb"]S!C`ʕ:t(_ 6 ~a=z4i&ޞEDDZ興\~Ǐ|X,̙3qi\x/q2&M/// 8III?|[^k׮޽{^&1~xٳٳgرcqbcctH$/N>˗/c_V9,00+W璘/b֬YuFFFHJJҭ bbbpeYf߈8;;#44کNG}$&&"44-Zo @ll,_jrwwǺuTT:m8;v숛7oʗ5qFΛZh+ :III8xұ5}^WeS9 TTwF _~9sn &pݻwڵkHOONJ+O>7n{󃩩)z-cnncppp'=*燖-[bС2d1cƌ2億`8|0ڵkEG>} /3|pOPԫWŸwg!""JӧpvvD"mZQ?~z۽{wbOgϞ>I&aذa84[fuwܹ8pFW*mS_iӦ2e 0)>>>O gggaΝ8t>cq~p*'գN[+sEX_󦢺eDDD]v4hұ5}^W:S9*S{ST'Op[78oDk׮͚5q2"""iM4X,ƩS;wƍSSS9k֬AFF?~UVUc߾}q222qFXZZ߱c^'O`ɒ%Ν;HKKÆ Ct`hhcbܹ}6>|^^nUbΜ9u^^f'Ow"͛7:tիW#""JTԯ2wFrr28y$agg{RY=궵":WԍU7Sy]ݘiUl{egN'FCزe JѵkW\t t;t耈mJDDuԋ/РA2MMM3b„ ׿Cbݺup<== /o[zYW% all#&&k׮ţGe~zzz  J?N,ۨ?P_(4o/_V}OBu봩}Ԯ*N@bgg١~XlRRR!JѣGŢπ_{޽{ĉ'O[nӧΟ?rUô4B`U:mzUe*#^w )))w^~Dر#z}ر#~*ǯN=ϗZS+ՍUR絢Ƭ=GS"zs1Ei e[CozzZ_p| -J*S:1b4k F)ߦsvy]՘мysyPqYsV{Eg'MZ*-:t\]]yWW,ٳgTTTTe˖aٲeUH]7nN & //W\СC W>SL>{.BFF6mڤrLHGŋ1yJcJp9̘17FBBƌbܽ{˖-Ô)S0m4ŕpB̞=!!!(--ETTouP7 x رc _ ̙3>={6ΝݻwC,#)) xJ~^p~zʕ+;v EaΝ;777i]j\U eBˊ-y-{6wttMbprrZǤظqJ򄅅a߾}DDYYYUdj^DDvڅ}i}cǎ!((F .ƌaÆׯ_G@@=z $""""""ja W^z Ċ+pQ4nJ̘1+Vˑ\ 9snݺ!++fCDDDDDDDjajܸ1b1~7x/^(Opp0"_}H5BUG_r ={٧@iYf066ƭ[j+L"""""""R8uD";L"bʕcff """"""%^]rpqqG}ƍ  Ѿ}Z*Nenn!Cq044ᅬ|<cq ̚5 011#k1r"""""""z1֢O]t.U.]+ }LLLp=,Xӧc֭HNNFJJ ki@K.PX/{XVGplYkٳcYj\]]_-[`ڵtMVVb """"戏 @³T![2ֽ,UxHպl2^E'''XZZuLzz:<7dhDDDDDDDCѢb!((HۡUJ"TUko8c,ۋ """""T*T*! ! h #JQZZ@ h7&"MLQR)B!̠_`jj CCC@"H£6DDJKޔͫ`ff&o&iojMDۘ!"""""d===HG[}SSm""8˛NTCFm""K$i;j6hoBDU!. +k&Q,W4&"}LJu)9Pch.@D """""""",KKK,Z'O͛7q),_Z)""#FZDo8m@Duo|DDDT㧟~͛71yddeeI&ѣrrrUA۶mVZXx1߿t֭[qa޼yt8DDD`cc3ZW^2e -[ׯC$UVx QQQHMMnZ|wto""""$```f͚X,̙3qi\x/|ٳq1ܸqpvvV:>"" Ebb">6 QW^ǵkpAt]í'D"[̝; (--EQQPXXر#LLLKmڴK!гg&&pH']v صk&OM-[СC1dX[[cƌbܻw^^^hBs9r$^ 4i ___899̔cmmO>HHH@PPbq ћEEE?Un?~<Xh-[8pf" BwDg""u*"""I9r$F WWWL6 ظq#n߾ SSS9Æ CFF`ժUXv-ϟ a1;wݻwW^H$'pMCb۷onܸظq#F[[[H_ھ};>C^Z~{dӦM'''H$Q(```P###D"_)z;ӦMoEDu8DDDrssm۶O>puuExx8 X Pk055oaa'''hР5jCCC: abb"OTÇ˓ߺED^m"&&"*qen2e ?ľ}4RO֭addK.… *a*鼒*dW >Ϟ=+s1ߏ]=–-[* _e'IMM)ŋGǏ# 1puVsDFFbܹh߾$qZZ% """zc"==x!rssѧOݻ̾vvv_|\ j3P;;;8Dz j*,XK.Źs HТE E59rèQp!DEEocU7k׮ߗ݋͛7I&5kiii*5ڵkؼysADu!""" LSVVV(((70vX (,,?M6ƍ{.-[)S`ڴiٳgժ{٘;w.v X$$''#//KT]x[_ &ȗn:[믿_x=EEE5^=55JVe.PX/{XVGplYkٳc܋/""DD7v(Piuo4&79d(P,D!UxȖ u.K^+ۮ"DDDDDDDD: """"""""Kt]MA}S"&p荢CCJׅcjgggĨ HHH( QxU}XWWW{B P={gm PZZ0'.mMMt8:HHHkڴ)6m*_NHHѣG[!ꌉ'b;un߾]{}Aֱ&ӦM888Ѻ&5=vm6hoBDUiu ШQ#rӦM pvvǏ7… ѿ&YfCuEEE￵Z֮]23223g(wѭ[7hN""N  //{3: //O35iojMDxYk׮#ۦQǘ1cSN!((@( 8s6-E&MBXXΝ;۷]v3f qY\ 4(!"** .\@dd$(/'N\r}ueDUVLMMɓ'ˏ:u*q ظ)+ ;v@\\S2ػw/D"111ǡC`ccnݺ)wuuŞ={PXX(_WH FII#dgg+E75&"}>'N,wH ^^^HJJx9`q0qD޽{رcÇ#99}v|ؾ};>} ^aZ޽{寷n gggtSu9s&LMM7LLL0tP;uaJɢhCݶm0|p?U/_|n֬Y8z(xb޽{prr*"u]^b^x/^[GucϞ=0aڶm;w`ܸqRYM}ֈPD@ e(//OaMM_6ncGf͚nRMOOOexyѢE ɾ$(S2ѠA|ҥ ׯ H:ʣNC A1p@lll  b yĤV#WaaaX|yۯ^Z *nw\rK.GNN 777,] ˆ#TQS5""Ft WggDGmMmt8Z$Fq):U㞨3_B"Hˢ"qBj1oߎcǎaӦMxFUK.FBPP7n222KUy&3Jg-xvbH$pwwG1x`˘:ujc^X^())'T&jFDDTW BHRoղcjRmMmtӶuzlKKKT*UJ BtGm}_>V^?*忢-ѣG={6Ə?ͅc5Zzh-\\\Yfɓ|2}v_rpqqG}ƍGӟL8p @hh}B<YuojMD{Ϟ=|%#lldggĉ5klmmabbGGG#779sСC4lӧOGff&Ο?X|9\\\^gϞ#F@ 0`mVi'O[nj]U˕ƍpBX[[/B4mTebLV5> "44;viӦɏ}nsss 27!}eƍ1ydܻwOvuރΝ;#44666u{֭[ann._cÆ oԪDDDUČ7DvcG#==]i]quS ?֭[˿x8ww^ԫW^^^}P(DfT^aT^ .(s!\v G@@@Z͛7#>>+V!6oތ[b̙8{,BBBj<* )=֭[?~F:G__-[ă F0Cu΄ _!11Qۡi8TD"{pwwWMQ7N)--ŷ~04W8&pt8DDDDDDDD: """"""""cHqq"""""jH$RPVL&T T CCCB$A hR@uc5HRBAOZ ɁD"a-HvMM'o^333yD`dMfFFOOLe!"""""qoEakDoeDLUm",W=!""""""]HB DT{!"""""""qLZr%RRR$DGGc„ !::'N@niiEɓy&N:˗p{>RRRODDFQFN9add?011Ucp- L:6}}}Oy&&O,4i=z@NN<]#9x D"JKK֬YXtSNEFE!33SbtZQQrrrӳ +Vh(Šy{R&00Vb!"qssǏ֙aɒ%q=7K,$"][r4h^.P$&&>Bxxx 66 AfzX,̙3qi\x/!ₘ\|Y^ޤI允")) W:F$@WH$·~SNXdG!&& E-Ξ=ǎÍ7 gg2S"ҬΝ;Ν;HMMT*Ν;aeeDva(x)Ν`ȑz*~)쌢"ܹbXe~~~hٲ%!C3f̐o4i ___899DHH֯_Ç]ve8׮]Crr2vڅɓ'iӦR[Չ6m)S  q=xyy>CDD 4K,+%Hch1*"UL  vB\\k.xyyAHD"ڷoo7oVڶzjDDD 99ׇ4}-S)F5k ##?ƪUпyݞ͛7:t]XX#G⧟~ N:+WSƍsx!{cٽ{7̚5 R Ν;HKKÆ Ctܹ>%ٺu+<(h۶-z sss;7%"1ptD߾}`({alj'\v~0dm&&&>"""~//1wqqG}-[ѣGr ֭[\y9O%%%>ñ{nH$,^͛7RڵChh( " Ϟ=~pvvƳgϔuwwG-0k,ǐ!CкukԫW?ƹsaHRJJ#11-[,SG-  vZHR/755gbb7nVrssm۶O>puuExx8 ۷o]$).IXU)**•+WЪU+AhԨ yOzTӧn޼YDD8:o߾XlB!N<0:tرcѻwo㏘>}z8 ,@ݱ~zB,}Y/b16l###_hժ<<|/Nfff^8LU 66ǏGtt4 P&PPGvccc߿111Xv-=z-[vzߘcݺuZto2 ,XBV´i <C Ǐ7 ((B ,@*O?E=_ø{.ܹHy/D ꊳg8}4&L/^[̢"x)a3m۶aʔ){ٳ':t耍7V}УGի6m`ȑ8z(RSSC\x*KDDo6,T&o޽{Jѣ|H$Bǎ\f"77}QY^ZZB!ʭuT)--Ezz: Պ*ם:uBJJ P~},[ )))U‡jP(-k׮R`GKɓ Űa/`֬Y9s&"##m۶055ŨQ*R4n8lٲ ~z 8+W~/oXÇC `ʔ) Avvvx_~_}֯__'77ǂ `ggFaΜ9ٳg_RRM6D'l?X̛7-Z #ѣ5k4 )ts|͛aggh/Xp!:uꄆ 믿V;Vt 6̙3!taѰAЮ]j9U]Æ hر(Be{r0͛ٳgxbiЫW/DFF",, {#+,nꛚ7oTի)Fٳg1 j*|w(**v]i?Ç1x`b^zhҤ *n- ===;wnnn^mB شiٳgcܹؽ{7b1888W^4h| W8UٶmSѣG΀ WJ""zM8|""""]9s0vXLhٮ]޽{ K" Ɓ0qD888 ''vR;w")) ?3F֭[ # 44999رcaiinݺaݺu077͛kt.\aÆ)ą sN5 mڴnݺU8r ﯿ/^v(DJhնRODkYVV?;wFXX|<;b֬YpppD"Sr˔_~%/JKK_!<<ےƎ xyy8<6mڤ࠴N"`ԩ:t(> Q9+QM((((sxmMDoJVVge} ɖe?z=;::گn1.\X?999ǩSj70"Ҫ,bmADDD d_J$XXX@Ov/))Aff&—_dDo sssP DYkC-Ca ^]*VT}ϑW舓'ObРA5j`ccT̙3صkWQ H$ Άy%qJJJ [ s#88Xۡ$ 233all CCCD"M#JQZZA p8DDDDDDU$ GLC^^^ԫ5}LYG_8DDDDDDI(B*75}ko"z{1CDDDDDT JM]}X!"""""&X&I""""""""cH1CDDDDDDD!"""""""qL8&pt8DDDDDDDD: """"""""cH1CDDDDDDD$C~6na*$J!JahhCCCD"mT*Eii) PPP@PFvH71CDDDDDJ 033}Ӄ) DR# l.^GDDDDD*ɮ.yS7Ӄ6ncT&&od`hhX# mMMt8DDDDDT.o:YCS ]Mt8DDDDDT.Hڠ; U 8ZA@XX_U͛vDDDDuʎ0P G\mtH1Cu֩SpmmADDDƪKɁGt!"=ohdDXvC """"""^e]vUЄ0L4 aaa8woߎva̘1ٳgrJ4h@~X,ԩS'N 6P777DFF̙3 ;Cv؁8ٳҶ:88 ""gϞƍacc#믿gϞv… JUt˔H$79SN߿%""mD}bܹ055ZL+WDJJJǚ5kG|1B[ -wӵk Ǿ֭^*W]={… 3",, aaa񁞞/_ooo,\0c XZZb̘1Xp!LK^z Ċ+pQ4n<<<b7|M6?Gqq1 %Kɓ'IJޝ7U'i BaQٱ €(222(_ : HADedd0Pe١"d+6ɯ{iz>y$wɹ{z$sܹk"""4j(_Ԃ ԵkWrf͚ir|9cZZdS뮻UV/Ξ=>C͜9m]FF$iڵڻw/ 鮻ҠATvmѣ:u?мe˖zgUJ%%%iz]? 7)!:Aښ5k~%$$hɒ%2LZdN:cǎ)66V<$)$$Dݻw׼ytE={VsUv$]OXVmܸQ/_֡C\NէOuI7NjӦ+իWk߾}x.\rʩZjƿl2}TLK6lЉ'n:=SJJJ҈#|fSrr-55U4k,mڴgFҢE M4I||IuEo+5j6H/ԩhuY/ׯ @ @(K[xիl67К5kf $>|X;wԲe6|rӾ}\RSSgլY3xN>T!Zyl˵¨R, ;3ezzfϞnݺ)<<\aJ>>Zl4hzjըQj۶m:u{5x`-[L?VZ&M)L PZX,oӫ8efffi߾}JOO${ョϛVN#ekȐ!;v>,I4zh5hРئQPzs6NÆ uڵb''ɒ?IӟԱcG=C$ݮAiذal5k|MIדBf9[fޜsRؙm6pLlK*,,LڳgO۷o.ѣO;*..N/m&I7njժݻ[nZFVfV4~x=ÊӜ9sdZs֭)Shƌ+WjС/թS'o+I|Xzu%%%رcnSSS~z9.҃o>?moիjݺuܹSǏW~Զm[EDDĉr8n &٬СCE)kd2{u}HMM-rog5*rlrN]tIuK.ݻuYkx?)44T={[o9sFg6,wŊڻw4oס{֞={nSXҠjժxbۗ,Ykܸq$fŊuAuE_}c4ͮ$GɬťbŊ?T|b;҉Iᒑŋ+**JO֎;e_~Qxxڶm-[jܸRSSu%l6\Rcǎ՘1ct 8P/^Ԗ-[ t3g֢E\z_UgϞU~dX7H~G=op8OY~bb*W,ɤWjժU;vƎӧOW^E;@;w$RJ|rrnkݪYj֬)٬~jy%SN)%%%סM-*ҼE(Ν;ʕ+9^I8EDDd65l0Iקϊ8.\PŊsV|y>}X"7 ,PZZF`_+**J!!!:vF!&I>}YfO[nՐ!C 4Ll6rʮN;vЬYݻws?{lM8Q˖-bŊ\f%]رcUvm˚>}F9sڵkՉ'n)11Q.]RӦMl>lJMMu%z .x,0R,=zTj޼mprtEGGK>NVq9;Cuu秖-[jر~L kNwn6-[7o֣>Zv8Zt.]'O****l6͘15~9x$בsӧX^BBn…o˖-ҥk9--MSNԩS]Νӊ+tzŢ(-Yu'9Y5h@6mҩStU=ON i 'MiӦᅲnW͚5uI+11Q*Ur]4'׮]S@@@s+]ZZ{=M2EcƌѡCW^yEw8{=]|Yڵk5mTu_CUUlY :T!!!믕kĈbQJܮRIRL&c/Є ԫW/^Z>|ʖ-+z/>}ߖ_ο/Z`*TX333]8}'ZpƍX͝;Wkc(= +%%E=zPTT^z%U^]ڴi~m0^^#GTDDԻwowyG?~*U͟?_?c…2eԩ!C4mۖ={o߾l̝;+=>ķ|/=z SѮ|ݔeޜr}Y\v,y޺u9MF%[|>bpvv+dΝl.˄n󜀒$<<\v튔$)SRF{Yn,7粲,+˺YgdO[H +GxuS. I@н{w_:&I^̔Tn'D@fv+a_U`Y{wO_Ս' +gX2%oD7[Hȓlp%'Jo 5v0| u/goVݐnm$pIQ7<GH #`p$p 088G|.... 6r$f\>sYF .4D<Ź?tn ĉmذAa) =ppz}0  loMU7<'B<9T*&&F6lP۶mUF kڴijԨw *hǎL+V(󪛬rŋj߾zLk׿e?(^CC bduX9r8TZZd2<+u<]7>'Dǜ_6lg"QFڽ{k߂j֬&O .hĈQLL秙3gjС?ɓ7nBCCզMW(𗒘pS``kxMqnr˺90:*Qxrr$O>JHHȶnkРAjҤ{1͚5K;vK/fY, l6s=fA~5(jqqU7qI.e TjjG|nrg)s`| 򱸸on~MW^U֭oΝ?~맶m*""B'NpK2fկ__ ZvXXׯu$)_G+&77SF OfѣOI +ξsn_я 7H%##C/VTT7o.٬+^zpuM TƍK.իZrƎ;+/j˖-7WA4hڴi2ehРA Ѻu$IgϞUFTR%ɫn$i̙ׯk1͚L+Vu(@JLLjuPjv<=$Νl|n󜀒$<<\v튔$)SRF{Yn,7粲,+˺Yg_سs5ju8 8!|7T\\ʗ/mСCozk׮svBO/4hРb+o\ll޼!xEAϳJ*Zx>shQ1 >wQ_a PrY,3W+ݺusݿ=z]ۯ^x֮]{z(K RڵGjԩ:~C۫_~;]vi֬Yy>lٲQ>}t 0@VҲeJ̈́-w!ɤrkĈ>ёG[nz衇{Y4iiiTrrWc*/-Zhذa1c#Ţڵkٳ(ѣ ֭AiԨQ:rn6UT)]tIѺx$zOp8Q*yQPZJ]vm@JPTݻ7@)iӦiĉu?ժQFoնm4uTK:_۶mѣ]낂o>UZPu\0\/?zȵ~Ȑ!Z|~G}_/R?y-[֭C/_kٲej*5iט1cvZOP熂X,W_}Uqqq̔fӾ}.I{HS1=ܣȑ#˗/k>no~} ŢLvoԡn `x+WӧeܸqUwnݺjժ9r$iݺunsh4iDVU:tpk֬?'N*ꫯjʕٳvZcǪ}:q{9=VyVZiz9sjڵk:v옆 Ν;k劎=Uf)>>>>֭)ShƌC/TN$yt۟~I=z2edn24i$-_\˖-Sf\ۜ >\kVtt>C7[z 0*;aĉ߿jԨm[hhz쩷zK :sfϞGyDwoםw)Ijݺ͛˻{~BŔqjڿRSS]W\}… Z`L&,X'Oȑ#ZlGMnVX{*!!!9:q}]:uJZkON,Ykܸq^ŊuAuE_}c4 RPP-x |*b111ӧ~m O?Ղ TBƚYa}EUL [*H,O Pgڴij۶ۺwyG?~*U͟?_?kugQ\\k_Mضm[C٣}###3w\͝;c9>|XXqqqnxZqۍXqrڵk(]35mT-Zw_ͦ+WRSS%I[lQXXԩڿF իպuk6m-[^zZ&Mx%$$h߾}qK =o &7/_֬Y]eيTɓ'uq5nX$EFF5yd9M4'|"ŢUTI'O,бbbbamV5jP||MF{Pvءɓ'+11QFC QNM6<0"z֬Y3gΨygZvX,7oVƍ]=6mڤ۷+00Pח$ծ][ڳg~'}F9sڵkՉ'nLrsnʲyoa9>,s.;o~oݺfgb,11QVa]vEJJ))#˽,7GsYYeݍˎ,ʯF`088GH #`p$p 088G|@q3Lj,fL&CC1s8TFF]&& z(mF@@P%&IEEJKKSzzmSR* J@Ϗ6. @PJJ|$*3j[`#%&&8B+ 9~~~ PzzzO[l[Pr.c۷פIw߭~ZǏ7|S2ձcGIйsyf[dP}ڹs{9u͛7׻ᆱZGXv]Nҁ4o<k׮BXm6uU'Oqc)00_iiJ.8о}{͘1CfYׯWLL~IR3ϨM6z+*giΜ9X,UFiӦi*333[Y>nݪVZ_6-cYVըQC;wVLLƍڵ_:uԪU+}wَ1`<#dR@@("""$IΝq$ ɔLyWimEmJ68>VlYM4IfYgŋݶܹS;wTI&iݺtRʷlr$)..N3fЂ Wf'7VU۷נA4|EFFjÆ +11Qqqq:sF͛7+99YdKTVM5r[[CI bwzUvm%$$_o4EN:9n{GnK.JKKڵk{ˑ{6:k׮Մ ͚ܶ5K͛7W׮]uEǕ0ҥKz7 ƋQ^'EiJ68>E!!!Z~[fѢE) .߯6mڨW^zwt4v]vPϋԕ+Wo>mݺU۷ϖҥK]=V^-IZzuFiݮ}O>DO=TbILL6lؠm۪F״iԨQ#u]*TЎ;4ydp2Ţ!CSN ֦Mn:@YV_`͙3Gs~U^]ղeK3F;vuڲeK/iii:|v{^2Z/Fj:tPllk(7mٲEv+U8j<(HX6m$]O8de۳uQ6mԺuB'pL&*W(-[Mj*((m6DSNͦM4bY|A6MtM,Iр\ kN=X xf͚iɺpF(**J~~~9sɓ'KԬY3 >\W\Q<7g a{G}&NtL&=zg5rH=ӅᤸM>]ϟ϶~>؊V_z%O3f=Z]vտoy7^>VJIҾ}4s^U޽{wޮyeSOeK=5oMPPZn^zI΄ ԬY3}py~n>Wwu8>}(66V/_αbɚ5k~IҒ%K裏jɒ%z'$]ڳgO 0@$ѣG dZճgOi_͛͛nݺjݺ֭[kjŊ˗/?֊+\eiРAjٲ?hٮXk׮Ն ml6kŊZ`Aaڵlܹs4*J3J[v횾+b~aw}T^= ڳgVV\)=3:sBCCW_i׮]6lX,h;?s挺vӧO^pOMMU6m˗kƍ>|;wNo~WYYx~o]_լY3/_^Z~ϟo^111jذ-kbM6r8ڷoCC|:~ۺd}0`յkW-]421?6`||%]OY,.Yf?TZUVUqnoVTfM׺^z֮]TB+jժk)SOƍբE M>ݭ.:u|PGQxx﯇z(XGI&n?pα 6E97#;C$ 0@ʕN^׍7J~I}ݧpYfm&I7o.RiW;vT߾}']o͛7ѣGU\9 }hjذab[l||jYxJ;#˗/kܹ3fmB7nԠAԠAIR&Mp5kLz$H L 2ʕ+ի2335p@__|O.5jz:x`1JMM?ڷJ*+z c}֭gy&3*ұl6.]") =wڷolW8uݫ:r,jԨΝ;G:Tl޼yZn]$͜9S?-ZTիZjƎcիWa_?.áK*Tpqr7:#+0^9IIIjx뭷mΙzެS%:͜9S .7!~nڴI_T~}}Ztʗ/Mqƺ駟)lW9¾&nܿjժ3gN:iӦѣZ|yU%'},11QǏnWTTfϞM*88Xj̙֬_|Qv]ǏwŲe$I={t{ꩧyfܹs%]>_8믿Vv\o|7zWe6գGD9IJJ*e.l6rʊ(xE`ڱc̙J%@0֔^ZVU] zM*>>mIHHBCC%IM6dr%x=*ݮ{WIII:~ͫX9 OŊգG)SU'tPV-uݭ(Έm5>>^|j֬F*9N߾}e۵sN׺bB91J;ͽ+mݺUwq~+,z7|#FhjӦY%''kKyѣsθus}qe>}ZZo#G3{l3]FFRRR8hȋQ*xiiiJKKS@@cJKKSzzCqC[ōV Pj+==]&IZbldu(fCv]еkdp8|ZhV P8dh*TGH #`p$p 088GH #`p$p 088GH #`p$p 088GH #`p$p 088GH #`p$p 088GH #`p$p 088GH #`p$p 088GH #`p$p 088GH #`p$p 088GH #`p$p 088GHf͚00ڵax 0#G:B;x`ԩS j֬iϠ'H]~ə$x́`p$p 1pE ggddwavs#IB78!܌b%( Z+ju ̲->>v7RTjn-VA(lƒ,$" !ѐ $rd!Ag9{ffz82|/ٵkW@8#ؤIr}S[[l߾= C~O7L+)ugҤI~_8#PUUUY›6|pvk8#PmmmK(D 0VpFǗBcEFmj@1uYrGty~ӦM~xx EWnÛ$9#|e+})p@<$qWJF/0hL1b̙9_H6mڔ'|2w_6lP:3ƪF>(WSSO}S?TVv^l̙9sf,X{77}RFө`_ٻwo.]$G}tϟ /0 ,H]]]/^,`PN5x8ا>kŋ_L~IիWgչۃ+"7|g:్8(5sAݻ_xdɒ|mr֭[>pfΜy@>z}0zlڴT|ٺukoߞ 7as$R~*++tMkk~׭[e˖2wp (/~'yz\|Źg֬YX'%I~uj^tn坮xsgt{v9昬]6/B‘O0J5~饗;ww;ܯm+)@OSYY,;nܸ7n88TWӤzӶ@T-ʚ5k2k֬̚5+ׯOLLQmzT$t-WWө̞=;K,ɒ%K2{^LL|̜939{I'xb(K`شiS<Ȭ]SҥK_oܸqᄡ /1kc=6~ZZZrCvNq|_ƊF.#pF 6{͂ rgYn]䬳c_u]mw*N0}L]]][nɲe(ׯO̚5+矟='tR*+{8'XixC'޽{w<y衇Ϸ8EV:fٹsg~$ICCC&O5t7 9s椶6 ihhĉ3gΜr5b p N +Wf׮]4iR&Mݻwg)wY#5pF|c駟S;vG~455 q&͝߹sg&O>mjʕF0J}͇>~]3uԜwyimm! E8sNNF`:ӓ$\sM֭[קk9|_駟._vؑ+WfΜ9Ft-ٶm0U7Y`:MǾӦMݶoߞ+W859V4۷oϪU qZZZf֭eld3 ` kSSSn!;v(w9r[n͏r10TVV.W_}uwC0_E^~qA0FTTT$IZ[[ZjQG_~9_׳k׮TV&oii)cu@o8c={nݺ|H}}}v:2/8Զm2mڴp :.9گC0J=# /~E0J}iiiəgC9O׼yGr= qu@pFu]뮻] pl#Pp8'(8@ p NPp2wqG)RF#p NPp8'?cO6}s=WF.0ƍN:)v[{mݖO<1ƍ+ce#T-ʚ5krǷyGGelj֭?ìY_… 믗K [K.ɪUjժ7o QA_JF'S I38cĒ%K+;O?]r~0 ` 9ꨣrW|w8coo˥^ɓ'127\p)wI@78cĉYbEڼkg]r.pF|I;;w|}}}$駟>}#ֽYjU}uQR?ZZZ$I;,rHd֭yϵQnڵIO<1Ie˖$o:mεE0'?I|HmmmZ[[f͚]6?$c=VRnpF{,Vʡ뮻.gn?7{\wu9C3p8\kkkyꩧr衇+l?wWCSO=o}-X,b 0466榛nw݌?>K,tn@0FvH5k7PpF!_W]01t… T WP1Qu5 (#pӨ`18'(8@ p NPp8'(8@ p NPp8'(8@ p NPp]cڴi=lܸ1O=T/_rtC0qrAuj?sG`og)S@O8ܙgsdŊyK/2{l>OUW]n!>l+JY`;Cse%Io宻ʅ^o|ill̳>o1K.Meee⊌?U8؇>Gի}-sҴ?A^xL:5g}v+"N9$0`7$4iR+J0̛7/W]uU񩧞Zj˧?Nmg80pƈ|#j"cŋ]0@1bɒ%ݞ[p0V`( ijkks-?8cDn`䰈1@ p NPp1QhɓT _1t*`0 `xl燹#r 8'(8@ p NPp8'(8@ p NPp\u ( &d)ٳgOKFDL2Ep f񩯯OsssK `TWWgʔ).8L0Ax L0e'`.z#z#(8@ p .K]]]&NKy_;rNɓsάY&>`֮][^p2Їrꩧvj2eJN:餜tIy0---e _wj6mZN;viY|y,Y2U F3m;}#dʕԩSs'3ȼyRQQ;;9ck_~}/_}c/_I|#Yzu^x$oVQQݻ7K.c=[fyߟ /0{n;N#駺[o+~n֭yᇳnݺ\z9S3k:?gFlذ![lSN9%SL??S '|k_˺um޼9{o}\}9sb ө,bOmӦyNMG/ryN9{hQOt{ORm#k.])WU-[$M~9sfdʕ={gr9 S:3gNΝ$5kVV^G}49S3k֬TWWgÆ YbE>l?~Y|FN8!IcE]ٳgGYpiĉI4iR޿*՝Xu+WAO?='N=ܓʜuY7o^}>ӟ4+Vs#ɓ5'm#ݻwgə:ujM2λNm˖-ƍ]Aw]{gϞ$ɓO>s=SOf͚5~vܙiӦeټys9@1 piÆ 9餓r'ߜ9s$/RժUYbŁnԩﶏ੬LMMM~i͚59?{oN?@1 pI'38#֭/_3f3h_.oft>`N;\xyg_j>w\?$ˇDBO㏧&^zi:r!!>;]vY{Z_eoHwڕ}nXkaڵY|y:\}G>#8"9#`|A;wfӦM.809Ss9sٯOCCC&M.,zkv5u466vZtt׮]={vjkkؘ\2zjvܙW_}5&Mʄ z=@,Y$[[_tE袋S__)SOO}-;v2^T V |EK_w1nQcTkkk֮]u֥&&LHMMMvڕkfٲeܾ5>{}g͚}uٳe˖lٲ%[ܹs=֭sN_WٸqcZ[[s)d޼y5kVߣ=nTU GukkkV\UVeܸq4iR:ر#+W̷{y3gNwdܹ~~F06L6-۷o/w?~|6nILҚQ e޷NeTfЦQygXWeva?&Mʥ^#8"[lɭjKݍ۶m~ )S|f̘7ϲm۶!/sGg.[SNSO=$;4'i[:<:9mpm]@馭?8C!kC… ]@=J+,wI@!А[o5/_Bϟٟ_NEACCCoe>_җ]P8455` rA~tg ٳe')Q__/ESSS]0Tinnζm2a„?>վ"`p555Ϥسg_BNkkkKUkkW "7hEEEK(1$B(RUpi!ypkii)!mXCF?n---oVSƚ7|sݻet 1L4).cīK/T2 w`2eJK`KCCC}O>LɓsϕaWY8'(Zĸ5ɨ/|!ۯυ^$Ytpî&]vYϟiӦm۶e[4Րly=wOOsUW2_~1ŋ'I{[n(&L>:I~ٳg9iҤ|ٸqc/ٖ\z>֯kM]Z[[CTY$X. pFTVVbr'Ln!&LHp Yp#Qmmm> .ȸq$of-[nm쪫sWݻsm{׽-ZSN9%ISO{``?~ӟt^x>]w+W+,e Fa~կ[Vbvx̚5x֬YYxq,K]J›o}[9:7.G3gΜ\ve]8/Nmmm.uQlٲ%>h}aDW\xǠ@ 0r!IcӧIM0F}|qT/\sMΝ~_~y.vaYpaUVgTZtiO$~~0wqG}_e{2up Y|y}tM9k…CoϑGK.$guVO$<@'I?|yswO)J|0s}9w„ zwdN:Wʎ;~OӽgΜپtG^ziHBU8SLINf„ yWrf_̢ER[[o1_|qnܹ3˗/׿7._so 'ED6oޜwټysdOiݖo||&ˍ7ޘ;/ȩ/<}kq}n喌?>G}tV^~__ĉS[[]vx|3گ}ĉsw@ 0eʔ\|IݧVXZ*O>dyڵ+6mߟ?>IҒ˗g۶mٴiSHq+imzױ3fK<ٽ{wiM7qnjTVvkڶ\o;I|9ۏ+++;E]A'X{V_ \F "=&---- 暜s9noښnU۷w%cǎNw^;Tfٽ{wd?|ӟWu]ۿ۷o{y7n\ﴷwwmذ!ofƍ~Y~}͛7vae׮]CwJ/t:Χ?\uUvO?ޯ"MMM`eS5qEis%뫪nUW;ر#֭mݖz3gN-ZK.$;wg.}ݗ/3g̟g˖-$>߼yss%@ٳ'˖-G?ةqӧ7H̛7/O?tugvZ'I~_&yk6sNN><3|Oe)zrWgϞIv+K_whH}{}ճ>|#;wnΝ:+-&ykGڌ7.555y{\TW_}5[liS__OC=4K.\~9re?A|q'?;\sMvڕ{7o9?z_mm~m ,Ȃ k_w3Ie˖߷&[n#IS~3P6}5f+x]4ul/}Tvq\ãsyNrT0;mSgΝۇ4v套^umM%65Oc=~Yzuv9w0xO~'>1ko|utPv/?$VqDN,Ft\W9} p$)8-`f4QEzj֭[mo{MMMMinn>N[7x=`pvmiii5Z|~_UUUƍuݘ}jTi8S0өrN_޿|wp*8(WsOp&̙3K'Oံ2(3***2qļ=_N'}}St\r%yMWǥ,\("ƥºbzZиqʕ+{&Min2qļk+x4ӣ:h(SpK nTq4%ɞWܹs٤I2nܸ(,tPț+V|.o;}VI@:TYv2 wu>St=i+jjj8q'NRYVeZU>رe(>80Huuujjj2a„ܹ_֯_3Ne$=ӦLqƽjJe[~f̘_~e(3fd.c?MMM-{ok4o-X/ kttڞ{RUN[[huw, /B]骭cpt^̸5J[88ҦusKեmṴ>ː(6m^گsJ:mZuoQS]1)2TFtwҶY6Ep`u[pvܦ-[m/IE~tѓp`0u Rz7-]\Ӧ41AMwt5㨚ґ7۴kM:OJM[c  ֡) sJGᔎi穮^޳_We7N_G'7mM[㵭%JGt>u5bT]x}u3ԁ̐>F nTI;Rul+Ū2'igzݔv* qΣwe/o T"NJ6jiUoFմiMX#p`4|ҐtU{$X)X#pJ dNOی8ڦ;JC.^:ktկ5qjM pup:ibmZJwֿ2٩xw~qowxqWP;EBtTǶۅ^Sq8jU[{#=-<4œߟ72a`M*}]Mꩽ20t SZ|P}&ݶᅟ>$UqUqwJi{km#x:wt|ݟ𦻐@G ۈ&2 qopk"ݽRwSz n:6ʦ7ALF$UBQ2=i{]%uD08[O{3fD(Ȓ qGtwmWlGO5T9ob8] x[Ը:KhvaFOnJ5B9kؔ+XQ8]HQ7]-kH3"F$p;{ t֗pfÛ &#i;i/MǶ7˹ޔeޅP8}mc@$w͚vMR@Ҷ﩯Q70:t֝1$┶h\+[ ^|Ow!o  qz[ӗ~@%`\oP%dcte5ʥOBޔ5I: E-)Mod tDO޷lL d(W{7.g0F յ@3@h#P8g/E1Aȁ} Á5k+~j5*I$^[FVU})zHq +w`' oN5 P$EH !֑ VRH 3c`h5"t([:j،b(k tCh*3 b8Ôܴ-D?GkVĠ5h Fn7mFs1?еQt4B`Mn ٨m:X03ǘ lJ ,CGP P(ZIENDB`extension-manager-0.5.0/po/screenshots/_7.png000066400000000000000000000232441457631363100211470ustar00rootroot00000000000000PNG  IHDRr5HaPLTE888~~~}}}|||{{{zzzyyyxxxwwwvvvuuutttsssrrrqqqpppooonnnmmmlllkkkjjjiiihhhgggfffeeedddcccbbbaaa```___^^^]]]\\\[[[ZZZYYYXXXWWWVVVUUUTTTSSSRRRQQQPPPOOONNNMMMLLLKKKJJJIIIHHHGGGFFFEEEDDDCCCBBBAAA@@@???>>>===<<<;;;:::999555333""" bq#IDATx_TTWAIЎ5^5}i;is;&&}nb'i-@RQ D`(FQTL,STY{μϼZ0<3kͽk<E>kIg_~nNmw7H ]z̚C} OyVJ/峹/J"h1EéᨯRzɮ']3B.Rܱoi o=ܗNsA~._fLi#<z61b8(%bXCQ?T,?TI]^X@Z:}gITYoF)}`XІ5/v{.n2Xv*,_,o;I)ZWI{ɵ 2ڡrf!^SS$N>Òd[Wg a+ Y &/6=SSr {<@1P@`e*#wӐ>㪏m̳)fԪ*)#'ws#?SB#:ʯTz賁 +PYGZZ( 1)kr<5O]:W3,*dNm+A2zft94U~5<I:an@ V+-~.?K:,E8x\>5 z&fٰVԗ+v:Z[Rւ#{iuU9i$c0^Fn O`Ztufhi. jCE7n=L;5~Hy +ߨ$q@szxʰQ&DFWx8U-PQv`{2k{XQjNf8 ^+땤N8 :7"&?F`?n`7P2O_ LIss6,m S%BNBY5S{Ap~\:ːr22"#vZ,ZogtN̶>YYfm}SϘm=&l=򤻋g,#HNƑͮrnȇ.[4b;3~ gaUW76:l_luFo ЧqUh-q]Z^'F9/]Y,&Zf)fl[_{1SPQ'8|*DvgsTKHbc)Fo`O^ci=؍W%팹Fib|}K ڰ_SkKP\Whk)>Pq2CSC9 E C:k݁ #8_:ٵ8#[s0 줰;HWbJq~<܌6oGz7(l\w;&nt5\Z^`?p4˿ED/3S1f[O_5(f3q6sT+hX'mDtO|PBW;lf/HJ??[=E<`^2𺀏ݯ6—,p .\BC'>z@'`L't\z=(l''J~/,>1qiv"z4/*֦wHV2^~c¬k1%i;9 q7JýWoƩ_ηu~;"p'*rq`7ԯ|dyt;&[BGn(b(Q,\^ـQJpnE鬟9 *fÑ{8p@ H=iVB ~EPH;J(P TPXu#|G`$8R&b`Z? ƽ.}r0x2͞G^y%|D׻1P@lBW {7{]RR1nRQ R4HC焑\'8r.sZpfBahl8 0H %?f;߬z__'T w!`)릢w')HpWϖ9pb!U3qE~C\[Bb> %xK1 i}4 TUi^MeSnoZ[#x]A;+8.KVzЈmÑS6Q-އ| L/B xL*ך{,rS,rZ(y^iBҺՓ `7b.X1LӱȽ֫mT8 n!`5Nє  ppsiz|?qXk0KлNX5 #ox4h"vQ t+9'oaFGfB5fQ*宅cܨV0Q:M>CB9%ѩ{YʧN|C۵_Mcmm: ۉ ?1-?uދ:kw– O|Ŀ 1'"[!w~5RBĜwt Z l\ᙽϾ> d]z otς(~}9S<HByX&B)6;:'EvFݟtw u 8' >uww뫻'Rizӝfk#9W3r_=!2ө6C*0#m *}tķXSԧubu=BG"קGWὺB>g9rH|5Y!BqL[njf}|9H f;A MAdž!q_ uP(yGK8My<{l'l/n-#טOKLc}$rcS3r .on-Ƿ)ʍD9pB}*޽B~9 R~ }$_G'ף 0~N;Edoc7c.UWra$ni'ӌ$ h((Q?rX2Q<ș{_BX#Opx7'b:{pXt3I=%ƜO:t?݌\Z@B[}y$%q'b8c\QE;xSFW%0tZF.qWĊTC%TRF]x~/5tC7S<)b:?3Y23r_%BLnŇǶ~w!>U|o1 nT ]AQwmv{mwx 6@M*ηo G ʠ  *ly7[Zٿ/e6ۗx6 H-ǻ&s ?Fq|!dFC!ĸ'gD^b9K#y R+r'JHXN"Tl|I+g6ws(frF[).r 9|+AS&9BvO%@*i\!B1O,_b Ij'HRC?G?R@ȅB'B o n'1VwDW8G<(1P9 7BW>kpe9JL|6D y pK/J{ĸ$iV6XV[q {[4Pv(| n(ݗ(YfƂ\ы<=r4ƈV6;P,ԅ[38\UG!?'fPF.'2rCK$r\j5ȍ[YEӪ)5ochG/Od֊? , _ lCO;Ag` *2q 1xB!BoYQAd>zt9ppx[qMcBS$:syg/2d.7Y+wd1cn7 2,lm\kywCrM &7 !B!B!p3onƜ;tD-*1S\Ċ?u6#A)/}gg1bSl~!iL]_| V)/]кܣ}w YZ^lw4K]f}qы5\u9r]A{|cg ,<{QL1 C0\M0XJJlL-)Od%J;$r$ '7>7Ӓ+S-CO3?~.k4ï-5nu>0Y_y|O3 >s*O3.jh y˿3,zxG$ LCwǧ&5\`o' F0%ݕj} nuk$"1eT"1N"cr|yc.g373̓4'7FSnGГƅ̞>&nГ !B!B Spv^+TрUzn(kuۖX`ll{f}PvY]Epz?l 7tB'l37Vnv놊6V,n@%#*llnKymmlb;lFoBsF 9\mb;&zݘ,1wWMir{X!c6]ݕU GխMY6Ec;rF ^IRɟB!B!B3KՉ<,7)/$rWήHw4K]IVhE;i\fqH7J+E+T&TR>)w/"cq]aYNiv+pIB!BbkQ{"T'yyI7ew3E}T,Wo,[ sF?~{O+_)7=pv~}8tqC~Odz@ʷ+sΝm1\PaZX=LY<}DfJz GrzwcP:I? ~)]JŃʹHm=؏G|pݺВu3?Ho'޺ VV9rVegs4n\~җ%1MOm!B!Qa}Ƀ1SQ0TWHƂ9=!B;j9~G=D榶||Zy97;6jmK+wꃲZ` Wӟ̔Lٝ!7]%iq{Y>Iy,')%B!B!B!Dj77c۝!fS:$!~ō.T\ssbðzxs[0@7|ZK_qHTv6#n_O\ʷ- ]u9$sP|*UsţH6Pח3g>$ȜǞ1Sޒ{rNBCF:fk4]3RޭyZ]sܺ^mk;Yl/Ыr phiFhYtv%f{5S~iZlEt&t3-)a58XǤgSLytlZ-{^L9VDW)3ZE+-)LF;OX?_үWbCrך?co᢬RnߝW,K2<޼م|-~Z9ic JN|_8[F8\צ/*꺘Xt\!Bȴ 2mB!x_ït_;=Ğ)^r?Wsf{l^(MK{d5Oe=/{Yhٷ]eʱ/*S/N˨_m ; P;_y+,4پ4gX̬MsWsuز<-0.u=qS҆lBmyLftL |OOv#9~ޛ_^]Ύ}n1Dz=:mnͬ&BHsLyזz*=sOwǹ]pdmR@/N@!B!DiʷPN3EnnkkP?t(ཌྷ91́vpS3ߟ7 7Fϵg 2-/֝ćVrNc݁@OiNoWU>-i}pi)7QVs)v;*o\ւ.s[2s4F!r3v7Ԯ W蹑2ط,0n$ nbA!)IENDB`extension-manager-0.5.0/po/screenshots/_8.png000066400000000000000000000042311457631363100211430ustar00rootroot00000000000000PNG  IHDR)R?PLTE000~~~|||{{{zzzyyyxxxwwwvvvuuutttsssrrrqqqpppooonnnmmmlllkkkiiihhhfffeeecccbbb```___^^^]]]\\\[[[ZZZYYYWWWVVVUUUTTTSSSQQQPPPOOONNNMMMLLLKKKJJJHHHGGGFFFEEEDDDCCCBBBAAA@@@???===777222& gAIDATxڍWSe=N Hq*Ȁ!J.#0TfVfY`0ďa(c?{/n{9;}94a( c:8A}*F|p0jLHo12FvB&gm %>R+*zuW>"MBt]&YmЬNrzdP-xV[(9@t.."^F(w;Q>X b뤞 IBD-p(Җn^i70pRܲGlS}( w`'HQȖ_"USl₲!Jɒ=R+3neBV|e.tpz S/dQ*@piy]s5](_;}}N5J(KaM/NYKIxXU[(3äxu2Oq,ı'&?3:R\V| J8'F@j)+$Nγ:ݔMtӸ6بj`ehvxىij 屆RB`nxQӸR)㕙FQiߨrt9m=4Qn?25I 2 :f_JW}n0x7KQb8S!(Q#>q+Yg(|V} +FHo.2R.(>WfJ$5H>)Q$d)C>CR]ڄ&}dW`tft)!TUǩ~(F m/e܄҂OKAr&8&=0S o nC je !N(]2i7_!N87 Z:ŷ}_3U$1|+H o4Un7; 5opoaq ''1q = 4e;[}}cS9 q$-nbYG0" W`›P~L~ &ȩIcV8Fp o<ޘ,?3 PհrLUNk]L::o፷uJ۹rP;</*ww7{Y'/luԄ`m0፥ҭIGI̱ef>ZK*dcLn]䞁[C0bS{Tu5ƪMΝ;xUlll p8v{AYY#G{֭I*0ޘG+đ*5._gduZ$S޺I2PfѲ,s΃5k6966rl6v9~ L&Y,YVĨC=uUG7+h땷tӏ{̗: xkEz쫛YijcQ'W^ӛ6m:T!>-nqqqSAA6l_GCu@ǕY&pe7uX$TspbcibbbТ"@lJLL윒OGC{˔t+?5\USݧ|M]yݦ::M^z+11q#Gp2;mNSJHHhעE{]!3LsR'a_Wuu~)2899EEE7nW&M:]ũÁ8ЀgYB0ByFT2,).))iriiv 5jHZ8fDő.08l6d2@9N91#znTIII%љ:^sjq&`CM1nwmx_+ǞxƱr)gƦVbiӦ n\V7nxǘf%&&b!7TY>}j|\5jX1lTM4I;S>{-6-pUf .޵`_S{6nU7'ժM*///ҥ@xP'>EL]yy7n|t+t|omMz㭅y=߲$Ybcclڬ^hԨQ o\V5j2#z:AcUxEqqqa"f)66&r y ^0P>5mҴs.Q/666%""'66Vkl '.Mv]M,U\ݫ<Jݥ1B+ f]*1I2fiGo\s@%Dpu`Cv-V~111Z7C6M DBNS~_GOI@P#_S{;n偍^c)KWc ҪU"]X,%$$a6X%&&DEEEᘘ3Ş6ՐǨI:rSyj * ]ӂ>α~v}SV||4i>*,,T 6^`[Tpv#`dzՍg+js"\ D`=Ouê\GBB&Md6UTTTCT~63\8H8ƹv+U5m4jԩSeZ4%!fC~ڴixZbm1[FR>}<_^-҆ "](qILLnKـ޺HU^v(3Gyۏ Ţ[_~y婩:ukѢE9sf8m,KݦiҤ#}mE pTwpׁƎ.,}7o.LC/R-U=FiӦﯕTqqqZ***R] tjȑ .Pw|Ir)j׮;<%$$H:tʔ)z衇G60WxSRRyiŊڷoZjaÆiܸq=zL&}:P Tհ0,,,aB jk:Z K "E{$i> :>;wVff B!oK~4}Z qnu]9D;vd5i&mڴIohjԨ?Bk׮],3j矕Qzonmܸѽnݚ3g֬YٳgkԨQzw;b9TMLJkf4AET! d֭Z wM6ŋxb4iDêjЄ "] w H %ةSNS'xy}嗚9sfF0j(IҼy*76nܨk„ <1qqq~׿СCgϞ>?wR/H'Х6bM7ݤo1m_|EeeerEV;_q4k,2e,-ZHmڴт [jРAsnkȐ!)IVZ" 4HfY˗/uuYkԮ];9rD|AwQYYF)@W^y T/Z`֮]>^0wg}buYr8?\zt颜=cǪo߾jٲ駟꥗^r TO0HHH-ܢ38CC+VХ^7xC {o>]xڳg222Z꫘=jܸqu{ァEu`ƿ;vƌ,X_~9mk駟^{M/ /Q[y\bVX &N +&&_~Eݻwc=[裏OԯZc&B0!O s$NC$umԩ9r6mڤl~>}fykQ-t+&&F3fG};vH-[ uL?_ /f͚kuwkӦNdOUPP!##CǏfW_}N:I>zQa; dСׯ~%''ܹscǎ2ebccUZZ3\͛5j(wPwjjA]HNNl֢EpĤ}sСꪰ7P(ፋwѲe˔ذQ[$Ik}4TV6 w٣;ӌ3t'j߾}?Qc~v f^Zh)_5}{% APNt44lDiӦ͛7kΝ۷hΝzWGU9_ǎe6W_rJM8Q:ts6kL^zi,YGnpO]ڷo>^n׿U]tQRRL&{]0::[} {QTTDx o;8wqzGu}?fӉ'(/a*-- 7PeQOខn|?| 6Ls?VaвHL,l0!zWJFkt7paHquIZf Id zTyТ"7NԙgWaa ۺ Y,89N96mk²+Wz$ OjϞ=zǵsN>kv@p#7`u@4hժz)iƽujڴrrr$I7owyG|If^{5Ir8!),,;eӢEtkܸqZfׁ{t9΀k1v8~[ʴhB3fPcz4iҤ*&U>6#1GHٹsvCycOװatmV^{Ν+IF9f &I&IWիk.x:8򋤣LTVVd24?O!Mn/RׯDRyy*lФ'讻r7џ1u^sohn ƕ2eÆ ZhFٳgkzwo>nZÇWzz┟^l6߱Oo&M$Izu;SFFc`~PSU Us*3U8p@˗/_͚5K|RSSzH8quM7i֬Y=z>c[o_|_~91ѩS'=#Zz SRzc}WׯfϞm۶鬳Ryy^y啠n{$]xᅒO>9ݻ+++K۷o+# !iժ~inڽl޽;P\cU]O#3gd2iԨQ0aBt*77W-ZМ9stW{voөS'ϚO~x &I;wԠA{ꩧ҆ n?uTtM߿M6)+++]qF+uh͚5թScʔ)뮻ԫW/YV}g:thk\А o0j͘UV@]zGb =Z{Vrr7hѢEڵkԩS:q4qii}w})77ocYuƯ1Ԙ7ff2UZgTi{s/˱[f ʮfht]q?O?Eڿ;״Zz衇8&ˡ]|ź;Oj.0^xA;w$;kx K3N8 pzpBWݠA`X͛7WVVN:$ܹS7pC'1R# >>>,))Qaaa7mTV($$ǭ}Ǘؗ}y,Dzʏ=WuJ8i^y9NwyAA999je@;l64lVB3|.Bm޼Y;vTϞ=n:*ںuƌ2XnnnFeffF팍v]jҤIXWXXuZb.RVc`ͦSJMw!hذaӒ%KK/E,oh:eDTIIfpq*CTMtO駟F go/EEEr8nSXXPÛZCBVRRr%$$=.NIITa 1 T@'77WGQYY{PYY9ܺANlZKsV Z9Y,Hn٤ZD߰> @AŊeKͦHD\ii)O(A UcTPP28r!pnW^^>l f*pPŲ l >}"z~)Neh bXiiJKK#] .PB ` -p:~T7\ 0W(!A 1p .*[9rDL 2 PNNNKL&GQF*--%`xeeeZW54[͎܈[ga2]dr %I \+61ʹ`xWSJJX_ ]9QD7([GmnX{fDGnt9>>% `caPp=m99^ZǕ8G3 Bj/ fY'|v-Z(66Vg}{F<BA3gT.]$I7o֤I"\_Rrrrs233?F*IJJҹ瞫SO=U)))r8ڷo֯_?XEEE.1bV._͚5?3g*11Qwu5s: j3!'\$u}߅^Xk5/4۷bbb$IqqqЬYuWYUW] ۷oӜ9siӦUY_uyt*&&Frڵk۷AuG"AemٲErJ{イX,8v&OH1gyƎ+I/rJ2:4tPuMzgy $=ڹsL&ƍN:Iʪ ѢZ6ؼygkhnaB9w#I`UJꫯj=zڵkI&iڲe. 6LǏɓURRbQ&Md7t饗j*))QffrssH@T TN0MkҤI.T%&&꣏>g}"cСQvv~M2Eqqq*..vot:tRx:ug>`4h z믿F$^mԶzgkь3o֣>rꍤ$iʕ2͞=[zfϞ:m۶QגgϞ?PW^ynt:V'ZMݲeڷo/IʉO:\'NT۶m%I?^}U9Whh@$͞=[TN}ݑ.^H҂ o*ꪫT^^,5[{2d͛u-[LǏw O*##Czd"]~fϞ9zp"`̙ҥS3+UU›{jzG7d2t%DUkРA:3}v}'uEEEڸq.]OVAAVZ СC6mZ4`RSn-'B`_#p!Wx#I]vug?L0JxOfiҥ;v;y۹ˎ&zWJrV\]v{ '1cƨK.r8;wJKK#]v*,,T&MԡC`ξtI_]A c@FCq߻wfΜCIe24fvM4I3gΔl/Uo\p8tWo߾۷om 5w\mٲ%F_|CjA%@&\\uNp"S=$U$Z+(==]zgի%Icƌ޸G5kh˖-:suꩧ*%%EC{Ն 8eFҥKt:5`5kyyyZzuVqTWm7@"\oM]f/=1{zm6hР삂 '?=gϞHu%hҥ@WE:X<f͚iݺu%ddurz| 9&fECz`8ǔDCz`89r$%   cv#]!nG SA=I"\I绯(mRp*)**Rii/_"ͦ9r7PO'n@.Spoa!)O@ 081kٲeK7\wF׮iӦ.!"p8 ;4d.!"B`p8@S0х p$/v?pi"QF%^6M%%%*..t) ҉J,6mJpXV5nX*((ntI A+!PWV6m2$5jDxNYV5jԈTłHm Vxt P||< RS}8& ]<@$ -ph 1I~iuUi&yь) :HRn} :4hUg6m̙>H-$͚5Ko} @CBxу`/_yUXf$Iڶm[$DM6[| Fyy9ur?FHy˔jUzz9iRqq$_~3fڷojժUUZ! O|Xy8d!&٬eE ]vo՜9svZXBׯ[W%I7nt/ jQ*SCՔ)SaM:+" ]wQQQ +Voշ~ٳղeK8p+2G駟￯_O=TDk9tZn-$ͦ7n#٬|ɒ&Mw^ܣG F u}[n8K,߮:hԩzTVVoY_jܸ:,?^ ڽ{Mz[oX5{y칍c?cחح}mAe{kyA+Dؿyyyjj֭֬[7P!IvI6[DZ/Ǘ<cYN- e}hoV={$mذM4)%( G`p8G`p8GfEQ=!PRRD!~Cqq1S6Mő.TRPP@Nl6D 5nW^^5jxY\"eTRRBA#𡸸7WB`p8G`p8G`p8G`p8G`p8G`p8gt,&&F7|."lٲº͛7nSnnnFA 0aƎ[%]*++K-Zzx *>>65rjhA]t$iرo[h,uI}Q}߯zK/Z'|[_wuj׮ް'RRR$I ,it9N=ag֬Ya=P@޽ruq1bDX,Њ+'?Iؽiر4tP}׺ׯ^yegg_W޽>~]tњ5k*qgkɒ%ϕۇ\&g6l ;կ_?~:|ծ];.X@ ^PG޽{5a=c>|x]RSSu=HrΝ#F$@4N_iӦԞ={WXK.͛e˖> o/^m۶~ԩSt:uyUNHKKb0Hq8ٳGJHHeeeZ~:vֺhHpjlod2YYYg!!wT>}Bj m‭i<ɤݻ<Dl̙;v$ȑ#Z|&OݻEo>GmڴQF:~K.DmڴQ֭u饗V檫R.]ԢE y睲X,ZrehAA$+}\l6m۶JMMu/1c+eff_W\\]\z-}z7裏UO?-^XYYYߪtꫯO7Tvtfu|Qh֛ 0@eee5:ڑHFfʹnݺIKy:wx|9=\X*?vz%DC'^xAtE)%%%}rrr|reee;wݻ o08*//Wff233|:tP_e˖/\'GE4i뮻N<ۧŋ#]'lܸQW_}u!b*#08#08#08#08#08#08#08#08#08#!f{ZvQa_m۶UܹsE$zDOftһwo :T P֭Ci߾}Zf{=}7.jժ>;3too6mݺU~8ˬW~m|Ĉںuk+,^# NoE]-[VXyfvm͍Pu4\ڵӃ>:ʺd%''k׮7nV^ɓ'~@ѭO>U׏7p5 Ѕ*&LcV o$k׮R-vX_^iiiAo`}ŋ7ޜyz7իWZ ݻʲ=x&8tEIƎ޽{=\Oԩ>#_+##C111^u]Sy+iiiz~IIIzԪUZ ,\P۷ow?޼y^V5 Ѕ*RRR$I ,it9N=쳵T ӴiӪ7%%%z_֭. 2v-[Խޫ;S.Knp^u͘16$jĈ:Se۵qF(Ӱ.r?mժVXQaٌ3Gфzz5bĈb7߬aÆ)!! 1119眣TݻWso-h뮻N4d-^X3gF֣G*ݦ4jԨ ozu7jĉ>|~i/uRsCTVV_n]-VTx `,+)) :gFD zfÆ hOFFN?tq:|믿ꮻRII|P6mΝ;`%$$]v{#6lXe9#OVV=zf%&'tt,s9G'pnFS͛7ƍmзo_9Rr:u|OOkpTܒtj۶m=z?G*))ѦM~!ԣG >\]tQ֭զM>|XvO?^zI;vX5U9JҘ1c]ziӦƏ㎓d?~IK.ڵk>o]󎮽Z5J۷WAA.\_|Z35}?gϞ2ڸqy}גs9G\sz!Ţ-[hɒ%Zdzpg@t#ibcc5j(7N?$76͛#G[n~ØqU-Z>s̩o߾S֭5qD]uUZD}:u(##C{쩰_bb=Z&ɽqJKKu%h„ ڿZǏ-ZhmV -ܢUV}[eyFN;M^z͛|QF|/))ֱ} 5vX,JOOmVKϞ=ճgO]zZlz!:t籺wAK/u/KIIM*uMBN;Mƍ߿wﮇz}JKKb$5o\\pzꥤ$%''`w\EEEڷo}\xJMM_s]Ϟ=O+PL6M#F[GϞ=(##6_}߯aÆmn:oV=YVp ڲez-z3zh=}p]c;C7tS.b5jH7|mƍ'Re_~5kj^EQqqݏ[n-EJͫ,{Ewun KJ:ښ7|[oU]_~e.:=zpŋ5k,>|X߫tرc7螶mۦs= vm)))JII Q$gddT-N222l6k„ ;*s_}]egg+..N*++ 9*D @^SLug*33‡;v V?' g@E@9rD˗/ɓ5ydٳ§Pƍue?Ԁt'wqoo>oS6m>+8111j׮GQɻKv|I]r%&ܹ 3_Wx#ݩS'^ls=WiZZ%i׮]ԩ ޽{]vjٲ7n\eN:j8b駟^aYvv}]I?#GCmtiӦi…Kuj^֭syqFӽ>qM_ g@EAWJJzS W֜Θ1C'NTff˵l2믒;wgф t뭷jڵZfMz-uYz7_oFnݺ o%)==]?}mPvܹBլY*J%666s{k)wD=ú :G\\\+56͛7?\֦ML&-' xդ~oCT&븦<~]L@p"護Rzzי,Y|ymJJJ4}tM>ݽs_`,XsRyZrer$.{ァիWW~>|xeeeeZreHmӦM۶m$l#mAts~*Q-))ђ%Kyf5mTw}wnjp_㼼HsQYYYد{W!\wN++++shgFzYM&y}@(p@ꫯ4yd=+{nx*,, jo]PIGǃ0`^ִiS]~UԩS.,,Ԏ;* WS6waM^IQ*\UZu<:j@UFZUYVQq(*uBHU\ 8*"mEQ"eC&O"\ɽh>sܹvvvvΝ;>޲e Wfjm t.}tYu u>DDU!|"""#<<&L_Upvvp*u߿+V(~̙ tl͛SNՊ2/wZ<\pF믪LlܸQ嶏?XZ}\ZZ ooo9s^x "$$E>w:焺O""u """z\| @ѧOt5!ȑ#j%z/D۶m! qmܹGUnn.,Xm۶aرhժlll`eedddΝ;x">|… 2d<==aggKKKܿnB`` LLLp֬YT7(..Ɲ;w>Ǐcĉ۷/>3j -Z@ff&ܺu ;v@FFFM6Zts˪{N$"R]j\U eBˊ-y-{6wtt}ECDYYY.4kXrҺN:!??_K}戏 @³T![2ֽ,Ux)4>o""""""""qL8&pt8DDDDDDDD: """"""""iĉ^Sdd$"##xcH1CDDDDDDD!"""""""qL8&pt8DDDDDDDD: """"""""cH1CDDDDDDD!"""""""qL8=m6򂓓5j֭[Fff#"""""""]+p...e7о}{lڴ Zt 8ZpqqA׮]叾}?@֭q $$$1112e b'""Rϵk`oo_f_~k>) Lj#4^W]qQ˗UaEtu!z}"r ;6m(mUy zۉPi%য়~1JXvm EFDD􄍍 MPǏ._fRm>|8z> Rϟ?W^ӟ׶WQ"z;1v]t1hРJ88|0>nwޅP(  $&&=V{-gkk7nӧoe9JDoz$&&;2dVZCظq#ׯf̘ѣG7oYDDq ȷb̚5 gΜKd)cҤI ȷ aaav:ݻW|mǏ޽{0˙3g?7n &&JNjD"̙3r ,Y_nc)j*~tfϞ-_gdd$X[[+QQ ::W\App05k 3BBB>@+|GFbb"BBBТE 6P >>^)իW_,www_IEVUcǎy|Y犺zxxh伩ŋ㫯СCC)[uyW?ꜣ@MEg~̝;Wn`۳g]t\YYYOqGJJ   AzP\\{ }ﯔH1cgggH$Vى'ЫW/ݻwX,F~z#--M>4i 899JeV͛bȑz6u6mS  2e|3k.b>|1׸_~8rHޓQԹnySQ]غu+Ѯ]; 4Hؚ>˫_HEW轩T*œ'O8- D"k`ccf͚AOOIII~z մ&M@,Ɲ;wp )Fk"##?իѿ*ձ~ܸqشi,--akkZܹW^œ'OtRdffb^|aƍx!:w 044رc1o<ܾ}>//*TggϞEѺuk/Pl3ƩS;HOOO͛x >|5kdre*W={ 99<ٳ!J1` HNNFZZ|||`jj}̙3C.]ҹM68uTޓQԹn߫uި[yɘ+;^hyMegWD;8[000P(H$D"o/**Baa#$"џ/"** 'O hѢB!֭[T ]Çccj/HpU prrᅬ QF044jH4Ϊ>˗ѫW/ptt:v޽{#55XlZmKii)&L_:t(֯_//^gϞH|-_" ??8pn:~W|爌Dq'P(DiiZǼNSYEEEpUTT8t?_~سgOWԹRXu_*ՍY5y* x U޽{Apww N8\|\G:2 $vvvHIIׯ˗#%%J|߿R=zX, xgϞݻ7N< 8uu>}… ()))\>LKKP(\ӦWU֯2@uN{wH;"99~Wڷo;~rԣ|5RX/5}^+n_s|Vū+ܹsJSK****˱|*ODDD7ӦMÄ 8 :zO?Ō3`jjw[>.[PP +++ddd`*d@޽qQ\t 'O4ƪϟ̙3Ѹqc$$$`̘1(..ݻw|rL:ӧOGlll/-œ9sRDFFVucπ; u111XhΞ=[n9s`޼yسgb1ÇZ -OU:Rk׮ȈH0v]t1hРJ8ѲeK<}ǏG`` 44?3:/^3Æ _#4nܸ}>>(** bƌضmb1<EDDDDDDD'R ˞**'[=DɁD"GmMmt#"""""dW)ɛWLMVdH1CDDDDD*n z72zzz044DD """""*Cql7,١.DD """""*H$vVSmfԅ """""*CveG](WM^X6hMD!"""""Rr&6]j8DDDDDDDD: """YXx1N:7oXb͵Sxx8FFHNO?7obB&MУGh;<"mZ1RSSdܿ_ۡm۶Ν;022(&pH'Fii)ٳgߵUE^0uT,_ׯ_H$BV)STE)))w}PH*"""I"h֬Yb̚5 gΜKd˷͙3ǏǍ7ggg쌐$&&>osqqAtt4\`8zꅰ0\v B5zA$oży󐐐R!)) ;DˑԦMh"={:nbtҵkאݻwchڴi}|}}ѲeK :C 5fΜ (..ƽ{> G-ʘ7o<#GիI&aذa񁓓|X)ƍM6aԨQEJJJћZ);v?Ě5kG6m)))prrD"B!  022H$BCtt40}tx@ H]DT71CDDD:+77ؾ};WWWaذa XnkX SSSprrᅬ QF044T@i&&&Me>|<[D?Jii)k(7n\涩SO߿_#nFFF|2.^r&p"L+))ALL N8!Bvٳ2ƺu#lݺҺ\6x2T_.]pTz1۶mx=wADD͛۫Li^";!""7Fii)QXX"77}}kgg8iii CDW… l2?-ZPXX,XYYU8\qq1 4v;šϞ=Æ a81.]`޼yмys/l޼>>>H$u G vUZE011A>}xk:z(ϟQFÈ7| /Ǫ7n֭[==տ/۷[lA&Mj42Ujڵkװe˖&^CDDD:);;˙PPP7n`رAPXX???XYY!##7oƍ7p],_SNsΩU9s0o<ٳbIIIHNNF^^^.tRP]~&L/ۗgX~}'_᯿zj"{jjU]^,TP8ٲ!YײgsGG/^T9DDڑũH+$ $ 7nP4"==BP#ӄJhMDosssP DYkC-Ca ^]*VT}ٕ߷]E<Ӊt8DDDDDDDD: """""*:麚j6./DT5LE__ .744QP&8p+@z{ x5V'@ TaT[iiiOx]h6&pt=bbb _״iS4mTcǎ6B'NĂ *]wiܾ}cʔ)jkRM?mڴmnnnmRj׆j6./DT5F\,\5/7mggg<~иqc,ZJokj;ZWTT[aeݺu/3##nnn8{w}ݺuCNN$""`hh=7CII 4>S6DDg%ovZ>mu38}4;B!g*m^R4i$رcڵk1c ,, ΝêUРArjb~-"##qEDDD`\\\0qD?A\\;dunW",, 'O?m4DEEɓqSVv܉XݻGeݱo>D"11xrPvW=BCCqDFF*] -k|+ÇݺuSZꊽ{P "",9  -GTu%%%Vj&hojMDxǏYcܹ/pQdee<<<Я_?̘1GFQQ6o X,?gϞXh"44M6Ŕ)S0f4oP2ӧcሌ… akk 駟eĠ{Xlu\E"˗/ǝ;wyf̙3acc1c`ԨQh޼9NZc픱ҥKׯcJϫb1Ͷm۠QF<==rPvcz|'>}:N8Qn|+|yGq㏱w^ """@" 337JJJtz]T̄D"jojMD 눭[Z@MBB1qrDꫯ兤$@tt4֎7'NDJJ QQQݻ7?8r;v~;vӧH|e۷Oz۶mpvvFZa=Q\@Yf| Cرc X~=VX,v>|Xm߾Çǻヒ?Se |JfϞcǎK,A`` ݻ''2*R( oŋxEuyT?݋ &m۶sƍHg. H$[N*ꛚl6&p:ʎm֬q-_W/\~-ZPYK:[j*N 4~.]~hذ!Ԯ<;doDQQB+WLLLj=B~~~+Vիի'O.:VG\\o!<</_Vy|돜۷nnnXl #F,>kDDDu,Q!{ ֯TSj.&pHvS2u=Qg,333/:B!D"EEEJ6cccرǏ͛c vn/_-F@|;n8dddT;*Mg Z(Hݻc+W0mڴ2Ǽ籼 šCPRR'OLTg JߔeWԤh&m(ٖۗT С SIQ~}Y'rssU~IW5E#[G0g?1 GGj4[[[ gϖ'dPS펋\\\Gqe133ĀrmDDDo2@P(O Ck]l&ptg(_3p@ٳg055ň#РA 0m۶Uɓ'֭䷻ZWrebcci&,Z())AHHL_ hڴĘ&YU}jc}}}/"-BHHv܉ӧOjV2d7n CCC[M6aɸw;wFHHlllzm۶\?ƍةUJۉuuoCzzҺݻ#..Ni]zz:|}}.w…?m6DGGc/?Ο?۷Ճk_  ѬY3WX+55k֬'"""ŋJ>|׮]Á_h˖-ʕ+ahh-[`۶m5kΝ;j%pϫ/JƏ###ܹ?ٳ'}Xvo߾ؽ{7N>CG>Ы4yF|||y;YfJ5l8DDDDDTj*[Y ˞**'[=D}W\ҥKW'֏>HLLDHHZh!?vΜ98~8nܸ8;;GUfuwAjj*R)v+++o$ 8DDDFӧO'_7o<%"JgI$<~666Zt8:AݻX޽^^^hР#""*HoŖ-[YHNNF~~>___$''#-- >>>055E߾}˔mjj#GbڵǏzj_^'|}}qM|^Xeكd@*ؾ};BCC)((PZX,Vg&??hٲe:ZhPuA*x˸<ܸqڐ`l߾}􁫫+0l0ܾ}L"H)vYLĪJQQЪU+AhԨ yOzT3fn޼YDD8:o߾X|9B!N:P:tرcѻwo㏘1cF8 .Dݱa@,}Y/b16n###lذhժ<<DT{B!lmm!///\v̕:DD8Z_NBHH _~gƬYgggl߾gΜ)FV qa֭eYTT 6`W^_zח|cb >SNEpp0+ŋw}}}rꫯaÆ*'>8p.\;;;4jsEFFΝ;Wfl޼>>>H$4o ;;;DEE_~EЩS'4l_ڱʸcǎhذ!f͚H G vUω6l???DEEaΝ(--?HG*-ݻ7 6o}Ν;%KO^z!""ݻ7Taxw+WyW^@ M4jϞ=ώQXXիWCQQ̰gϞJ9U;C&MVyDDv[x1f̘ pss+j VVV͛Ι3Þ={ d!""{ѣGq%L\VZ!--Mۡ -%GڷosΡsEFФI,[L~l̕)<pltM;B"(շ~888W^4h| W8Uپ};SѣG΀ WJ""zM8|""""]={0vXLhݻ޽{ e˖1qD888 ''wV]v!)) ?3F֭[ # $$999عs'aiinݺa077ǖ-[j|2.^aÆ)ŋk.5 mڴnݺU8r ﯿ/^v(DJhնRODkYVV?bʔ)ܹ3BCCtgφ$ *[/QZZ aaa^ޖ4vXxxx HMMŅ yfNuӦMСC'%%%HMMEppXjBAAA+kn"zTʶrUm(= U,+#T8N,{y1V~u㏱hѢrɁN>]VeeeA,k; """R R"zzxII 233!${&z[#>>@6R% ϒ^KRl PXTᵢc}GG:u  ¨QHRܿgϞݻվ򆈈jP(D"P(Dvv6k-SRRl&oBLϟ#((AAA H cccB$i|lTR //!""""""U8dJ^^j^Uc5Ȓ8@M7L}!"""""zMBRT[xۋ """""j%Ujz0BD57N8&pt8DDDDDDDD: """"""""cH1CDDDDDDD!"""""""qL8&pt8DDDDDDDD: """""""" HB{umMmt 8DDDDDT!T T CCCB$A h;,R)JKKQPP6DD """""*T*P(t@ LMMahhH$IxVfHw;"""""RIvuɛy$mMMt8DDDDD֠71y#CCIhojMDۘ!""""2vyɒJxBhMD!""""rD"mPm5mM]x_jѲBCC8pj4o$"""+dWvԅrem8jDD N>۷ok; """7V]J8ڦ 1QysG##ĺuF -ڵʇ&bҤI ckcƌAXXΝ;UVAcb1M(>> Ehh(L===XXh`̙Ę1c h"L:˖-Cz+Wرchܸ1 uyxx?Č3o7oޝ7U'i BaQٱ €(222(_ : HADedd0Pe١"d+6ɯ{iz>y$wɹ{z$s5I@Ξ=^xA3fPΝ]oQF)%%E/,X]*--u(5kLÇו+WjՒ%K󟊏]wݥ(ZJ_tYj̙n222$Ik׮޽{}`Hwu ڵk+88XGԩSuq_u-[Գ>*U())IׯN Q ֬Y+!!AK,dҒ%Kt);vLz$I!!!޽͛/ٳ;wڵk'z2jjƍ|:p>}<'Ojܸq U6m\^ZŋpB+WNժU5e˖:u&N(áGyHuz)S:}^.P2eʨW^ڰaN8u驧RRRFl6nYfiӦM> 0-ZhҤIOK.z7]ר(ըQ÷AzIN4x`EGGszU~}uhJ8%Dq\&0>>^zǻHU^]fYo֬Y5k_WHH$ڹs-[hK+WZ={f͚9si ʋfS\\\F*UdX yl=/5{luMᒮSzg'~вeԠAsVFoV۶mԩSރ/_kٲej*5iҤHq7d*Xbo^}U)33S6MSzz${u}:u_~)_C رcuaIoѣGA6ҋe&p6lk׮89INNt?Oӟ;ꡇ$v 4HÆ fӬYoJ2M6朓Μo܆[gff^`TaaaО={rܾ}vL&~=4}tuQqqqZxn6IҸqTV-u]ݺuSժU5rH2[jV\\̙#՚Vn}_)H,@iPjUl67zgUn]M2E3f̐$\RC՗_~N:y3\Iի+))Iǎs[q|{on~MW^U֭oΝ?~맶m*""B'NpK0fկ__*rLY4&I{@jjj{8mԨQcxs"ҥKp[tvޭg^ŋ?Iٳz-%$$̙3={va+V޽{y|ݻv+HUVŋsݾd߿_ƍs%1+VK.ꫯ<lv%a?Jf]..+Vo۱NLb -^XQQQ:}vء-[Vնm[mٲE/_VƍK.fiʕ;vƌ3ghxlRϜ9S?-ZZ׻wo:{'ŢoF?'з~+á'|2UreL&]zUVرc5vX>}Zz*r߹s$I*U˗mmݖ$v]wV͚5UfMfۮޟV5+Y:uJ)))mZhQ(J,@Iu9U\PJ)"""۰aÆI>g}V,ǹp*Vr Y`4j(ׯ//0o^QQQ ѱc4bl6I5|p͚5K~~~ںu RaRfY+Wv}Xwڱcf͚޽[=kٳgkĉZlΟ?+Vz5+eǎڵk_5b͙3G׮]SllN8q(Nt钚6mg~}ngnWjj+ԣG]pc1b<ѣ U͵m6_3g(::Z9pZj؏sq[4???lRcǎ-c(]HX^s|7{v[lܼy}QײҥKtl=4tPu .x[lQ.]\iii:uNZ7w>@=VX+W[,EEEiɒ%+?IɪAڴiN:W֧~sbXOsN8>i$M6Mvj֬'O*==]T9v[{iʔ)3f:0+ڽ{7/{ծ];EDDiӦo]׿:tڷoejС _ ͟?_#FPdd,*Uv*OJLLT*Ud2| m_|&L^ziՊUlYI{IGor}O?Ղ TBƚwO>… 5n8jܹڿ^{5@A`X)))ѣK/zꊏצMo:}9r"""޽{׾;JOOUR%%$$h駟<~ .Ԕ)STN 2ħm۶\PٳG}u-GFFfgܹ^)}a%=/ԗ_~c(v /7,c ɡR111ڰaڶm5j(>>^ӦMSFԽ{wUPA;vɓ(IZ?T@@֯_7xC)))H⋪UΟ?kjΜ9O=ʖ-~A:}+u֩]v]N8\eUW^;;ԑ#G{_~8p$CZlM}gZbEğWdS</^TիW/eff*88X˗/׿/-[6@r8r8 T``,L&ʑPffҔ&X90&8>߰a<5ݻ]Tf4yd]pA#FPLLbbb%???͜9SCɓ%I#GTջwoYVM\O>^z+88XTzuf7???H>;wjٲeڸq/_۷K*W,???۷Uvjj٣5kӧ:~nRn׏?իY#k{͵n jꫯ4{l?^ϟ/@8]k u;_֍ ĥDP œ%I}QBBBv] R&Mci֬Yڱc^z%l6bMfٔ1 AQv.?)'Orp(%%]``RSSp8K=u;#MqcxuozZn~;wկ_?mV:q[l6~:tMUвܞW~}W#Iy:R\T715j_~5kF|J/_]qv5Our~lA.ZxԼysfUXQՓ$[nP``7nT]tIW^ʕ+5vXկ__wq^y]xQ[l ZAԦM)SF RHH֭['I:{5jJ*)((M^u#I3gT~\lɓxb-]T{/x8{Ӗ s(yQn?͂ QFbŊJHHŋ/(,,L۷WTTBBBt11B6M4}t >\f͒nݪ!C˛JA޺u]WZzZl?\;w԰aÊtU7fY+Wֹs\O\\tRIRtt-[/R۷o/PhJNC]1| x՞_9m7eY7簜us97~?vއnz˗ q:0}gZbCUbbVRnn9$9wfhO(uS$ڵkW$I2lrsd9eYYݸ8ŞQFi#oT|lۆ7|ӣ_v<-+z_|A[y˗/ןb+7g;+ zUTŋ矫E !TGz [bh̘1_q֭?~UƳvZݻ׫Du]4hj׮`=zTSN}׵o^wܡDڵKf9e˖ULL .hZj-[Vj&]hL&+WNϟ$߿_#Fqt0>HݺuC=ޫΚIKKSffCV}hBÆ ӌ3gY,ծ][gϞ$EEE)66VGm^Pn] 4HFґ#GtmRJ>ҥKŋ%IիWק~*áRQ΋ZjժUڵoP0 B޽J$M6M'NYV5J~mۦS*88XGVڶmFZ}jժ/Jׇ)=Zx~=CC ??Wկ_?};lٲnee|r /ƍSZԽ{wuMUVȑ#%I֭sCI&ZСk]ftq8qPu\W_}U+WTϞ={nH;V۷׉'Gs'Pj-jJǏ?8͙3GVU׮]ӱc4duY˗/WttTZU6M9ngUn]M2E3f̐tM:T_~:up%ɣOz衇Իwo)S&vɤI&iZl5kg]o߾SQ 'NTUFlBCCճgO[JHHЙ3g4{l=#N~NIR֭5o*S˗/ZrJ۷O.\Ђ d2`b=5f-[V=z?Y r8U֭ӄ ؅"Jyiҥ˗/Kz .\0ul6'xBRvQx r܂r&[WPW_ӧfBD.=P5o\۶mu89:s挢%]UVz=~܋/jԝwީvyqU@a1 6M&LИ1cZ)]zU?p]n5k6mo$_^5?-[(##P举ҠA~1c}o/N~,X *x4 +2eh՚5k/jzVAfynf0 8ӦMS۶mֽ;JOOUR%%$$h駟\[N<\jKA Gь34l0ڼy6m… 5eթSGC QǶmrBg׵msjܹ:|ʏs{soժUn:O׍ӕ+WԮ];@⩟[+7,c'D4,R_U`Y{`wo &}Q7<'FܺHs~96z'o~n>7 pk#܀/ʹnrG$N R,::Z6mRrm4hv{$IofϞ_~Yk׮UHHjժi׮] Wrꫯj͚5ںu M:U|TJoaA,ZHv] $_Æ Ubш#4z|4gu͛7kСn3K?0hB֭soڴ~jڷot%EDDQFJNN.ԹpAvLzgiӦjѢEl6]r햚*IڲeTN5jPPPV^֭[մiSmٲESժU5i$+!!ASLL["8yT؞6|f͚,VrN<Ǐqڿ$)22R֯_ɓ'iҤ>Y,RJ:yd 6m۶Q5m45jHݻwW cM7oV˖-Cmoci˖-u 4ȑ#բE U\YժU?z$i̙ׯ_իZjƎ{We˖s=W0P'翹ѬYԪUlz)=Snv 9pRRRrL~ÇseIȑ#UbE_~?Gl6r:wM5b͙3G׮]SllN8qSe`&vS{sY1gysy~c}x֭7; `dZ0pڵ+RRLIY?g9ܜʲ,n\vdyU~=0C 088GH #`p$p 088dVdXd6e2|nWff222t5l69_V [GIo|(5_/1LX,X,wOOOWZZ}]hV P*88X~~|u PFFRRR$VQ*X~~~ u5Ovuedd,*b HAAA*[,_Q *[~l* ×m%Nhh|J0zxU*#J0: `^IVqV $p@ʰ nx(9H!(( (VIVQLs̑bQZ4j(M6MζOVzGuVjJl9jFܹbbb4n8}׮ԩVZvy(=L&|F!I:w#1Ld mոJk/j[PejҤI2͚={/^}Νڹsﯨ(M4Iw֥K Tfӕ+W$Iqqq1c,X]z5>Zj߾ +22R6lXә3g4j(m޼Yɒ 0 [ZjjԨkJdE{փ>ڵk+!!Aϟ~ͧ-ZHuq##G駟.'m:|A4VvgK/_~Ȑts7̘1xڵ+..+ǿn/m(*UH>`TZ[{v-ϛ7/[էz*[dѮykԺukK'p&Lf͚7ow['o߾뮻tG|recN֬YK,YG}TK,q}O}Z/k}jjڴiL-_\7nu=ܹsz7?{ ~_f͚|JLL5|1J=f_pmⱸb?VɓQÆ nY#mڴо}:tH:t(P ˗%''O?Հ]jҥ_$ ,z"b_-p21jժZ:p@s}5kKw}vڥ *W^QV\ۧL'|R?6nܨ-ZhnuѩS'=:rտ=Cy:bM4u{ t)ʹ>y%%%i*W=pnܸQtK>+((H͚5sm3Lڼysb,Hرd8zo޼=riZxuժUK'Os^^CjժN> 6bW^۷oՓx=p|ɓ[ի;wo%)[2$/_ -Z(ĸ&0.G}TN:ujØUN-\0۶ZJor-229&aEUR%IuRسgJCSBBkhK5yd=ڸqN=ڼy&N(۵kUرc+WeGVÆ ۲eK'O{U˂S^|Ys՘1c4tlwݸq  H4iYf< IEJ]effjȐ!NW\Q^/4}tI?_֨QCիWs!Pjjq׾UT|P^דx Tn]=3&pysbժU4hzUaaam6ʕ+kjܸoߞ{'Oj֭ٶ]xQ+WTϞ=ս{ŸP1:q5j =AUٲe%IOvlyI;9UVMTF I/pc291tsNYg?x()h<0/B]tQ܆I]'#=jӦҰaCVZ)99Y}QeٴtRՇ~I9OӾ}{%%%eƩSw^upcXTF uY[Zj{nudTEiwFlOTfM|6Ryp+ݮ;w 0@@ȉQyn^k֭ڽ{w[IƘƈg1B'OV6m\*99YǏw]ʻ Fms䴟sݶtRWL7zG='le^yK^M7o֣>ZNKKԩS5uT:g}ʼyiӦ믿*""B5kTRRݾdvmzw^=Cr8+?^+VP5o<}WPBBB4~xObb?|o͛7O]v-T9W%&&uw}r8Zjm˗/jժ~79mٳgwUFFyիWO)))^3w\%$$םwޙoAPK$c#`p$p 9p={n6I'@ e@CkR YgէFBҭV*Mx%D $B.L2$s?3's̜̼^ss~w~sG索*?~|zSSSk׮477= pFI&TWW6پ}{oB0B WxSΤI0 pF7m>TUU0pFrP`@Ǐ/w  @CHb8묳ru#M/~1?6~݆7IrG+_0V4SyI;̕^`ИN548c̙3s}{_lڴ)O>dlذ0*u:ՙg9U|Q&ԧ̙33s,X {oo&+SS (VSS믿>}{w,]4O'I>̟??^xa,X,^X0jpFO}Sy{ߛ^{-/΋/$9Ó$Wիs=W\qEn/tcqQj̙?ݻwfɒ%w[}͇?̜9}q`شiSmө?ul߾= .lo·mVH&?TVVfҥM[.˖-Keee;*Q_b!N?=SsϬY‘O0J}KG?kk;] }3s1Yvm^xᅼoc#`jkK/w;̝w޹_{V=St52տYwܸq7np5 pFIm\ Iө-Z5kd֬Y5kV֯_S*8T,H\WWZ诮S=={v,Y%KdYzu*l#0J=䓙9sfϟs555뮻3T`7-ܒe˖G?Q֯_$5kVϟ??555yꩧr-j`kjjŋsWp,X ׯ9wuWn455R'Qn߾}曳tҜwyyޗ#<2[=M6l__ `BPp`*NQE X Qh׮].5X!}inn.`P e qoߞa/e.khhHcccjkk3~TW͏466f׮]F@pFر#;v(w)1 8'(8@ p NPp!N:)UUUڛjժlݺL\F&Ir'C-Ce#ӧO'exӦ2'x8>}zN:TV5qO桇O<{f޽y'Co qtɓsO?=SN5;vȣ>ijj M;msL<}ʕ+S__5`G?}Cfԩ9ښCT/~=iq9NͿ7(u'I暬[Os1򗿜O?]@ر#+W̜9s:J[xm۶an(u'IÛ}M6$50m߾=+WqjTsssVZ%'0hoߞUVuⴴg֭[Pf pצ&7pCvQrnݚ.cT1` L]]]>H` y;ޑ/| #`Ha 1:*/rg׮]MRpƀ={dݺu7|t/.Se@_pFm۶eڴi9ruu:]`s '_ `zGr_b#`Ғ3<3rHy7#{R͹뮻r]wF8'(8@ p NPp8'(80d|{+w#^u FSN9% F8'(8@ p N L>m{}\`P7.'tRnn-'xbƍWF.0-Z5koo;/X%֭[YfM{ۋ/ _/ce#t[n%\UVeժU?o@u F7x# ,(w8`/tq7ȕNP83fh pƈ%KW^wܑ~` rQG+?,w9@ pƠu]K/4'O.w9@/8cTeeeϟo| RSSSnpƸ'xrtC@%ݰ {,[,<@K!ZZZCΝ;]soϯr` yWrw駟.w)@?pƈ `BPp8'(8@ p NPp8'(8@ p NPp8'(8@ p NPp\u `xw~w?3fHyCe߾}e` 6mZoMc9&sL~;7xcmV pFf͹;z$oocXw檫ʵ^k$5pFs9'3fȦMrO}}}bŊ\{yRWW>]r$w}wvܹ}IO?}XkF0ʵ{jժn;ꨣ&0ʵ$IZ[[$vX9$֭[믷k 8ڵk$'xbd˖-I t^k `O~$'>ڴf͚5YvmZ[[S[[I{r=XVZC=4]w]fϞ~nٹr衇g@A pF?SOC͕W^~+̡z*7|sZ8@X` hllM7ݔ~?~|,YM7$3`hmmr5koC򕯔`8cL Lc:NjJP2V tE0r)Ix \rIkZ[[t((UUUӧ9jw_LqQ1Z[[SQQa{ĉdɒ7x#_WQ"FRy7RYY>9裓$6m~b?ϓ$cǎ?c{~zXjN0ٷo_?~swc=k6ϻر#\jT V |EK_w1nћoُP={d֭yޗ=y;ޑ;vd۶m!sg%7tS6n8fڴiپ}{qHf$-%ϥ{\1y䑴䓟d͛ygΝq`GEƈŋ`8cĒ%K=pa/Q[n)S5@pƈ8Fac8gc1tɓ'8cD.Ta  /ts%@0F\wu. #p NPp8'(8@ p NPp8'(rPT&LS]+WSSSgϞr҉UUU2e2թS__r)T%7pΔ)S]0p:0aVՙ0aB N]0FӁ7@9FPp@]]]͛L81 y饗׿uhw 's 'ɓ'gΝYfM|] @eee>SO>eʔtI9餓?aZZZT%@RUU/8>mڴvi9Ӳ|,Y$eg›}Gʕ+S__SOgy楢"w_w~wr1׾~,_<_2/$Gz IE"MMMA-ٻwo.]{,[n?^xa=$w2W tGOuuuͭޚW^y֭[gݺuKsꩧgt>?:ٰaClrJLFN8=׾uֵۼys<쳹sfŊS@AYĸڦM=#›^~<#Usss6'F,]Sxѯ~,[,If84s$ʕ+{3si?JLu4gΜ̝;7I2k֬^:>h*++sꩧf֬YΆ bŊ۷=}9ó|r!'pBc=.(gĉ$=k;?iҤ~UUU;477V\:h)T~z&N{'9묳2o޼<}>?iVXFɓ''ykzgOηGOwɓ3u)2eJ{xߝwݝږ-[7փ:(z׻r=dϞ=I'|2{n'̚5k@ܹ3ӦMӳynr!bӆ rI'O?m9s$I^z~UbŊ)ԩSSQQmSYYNl Ӛ5krin~b?N:)gqF֭[_~y>3fg޿\|$4;|vi W~};I˗w@م~_OMMM.ҜuY9CRUUC9$g}v.TWWgy7ڵ+K]]ݰڵk|tA|$GqDsGd?:(;w̦M]2 #p?a***rꩧs9眳_L4)]vYnڵkhll]2{֦1MMMYreN=ܹ3j&M &_zYdI袋rEק>SLɟk_Zv1e==Qc|]]ݢEuǨ֬]6֭KMMM&Lڵ+k׮Ͳe}k?>?|Κ5+vٳgg˖-ٲeKso{֭[۷i?<կqƴSNɼy2k֬׷G{݂獍֬\2Vʸq2iҤtAٱcGV\o}[{3gΜܹs,]`l6mZo^25~lܸ5IKs飣FoAPo_.;Mۣ_u3<󱮶>z)&MK/4GqDlْ[o./@m۶ SL?̘1#7n̟ٟe۶mC~_裏]FNzIv$iN__txt sڎ8J M[5pPCCCo^ˡ $._z^y啼mo˕W^Y8C!zk_ſfV__??ˋ/h,(mU}}}/ 8'(8@ p:hjj*w gN.z#`Ϟ=%VMMMٳgO NS^ ח `.wEܜm۶e„ ?~|}EjjjJcc7@I'g\0frЫV?VEoЊrP6c6I8P%tPNkkkB Rm}#C~V0ZZZ ߠP5m /$@Gof!kΝٻwoREEEakjc24iR]ƈWWW^ze2eʔr(SWWL>}ɓ'+wî3@ p NPpCqkQoo _BZ[[su_ /0It.]MMM.̟??ӦM5۶ms뭷i+,!zB5Aџ檫Jeeec9&/NяfΜ9˺ q/^\tE9ꨣ77ٲeK}>'>+"<@Aہ`4;CMǾӧO`D)"2㔩_ޯ̝;xܹo1iҤr~MGw\>>mڴ~!k֬???{_q?~|.\~9òpn=( ΨtɟIG?`<˿eԩ|<裹馛r… s硇ߞ#<2\rI:ɟIxoO~;lR$>`>sP? r .;tIկ~;v'?'ܧ{Ϝ9}.nS' 6pL$~̈́ + /ٳʃ>E67xc.r-ٹsg/_7n\//ύ7ޘN8!-'>l޼9x;y|;ٳӟӺ-7rw3L͛o1w^SQQSO=5_~y;:׼?.r-?~|>^믿ީ믿'6vޟgRUU_ĉs܁8`ʔ)⋓߻OX"MMMYjU|<3ٵkW6mڔ?|%˗/϶m۲iӦs=S*++S]];.UUUyWc=63f}ݗ$ydz{NӚofƍ.&E{L ZZZZ****,\s59sGݴ߬5v[W۷o4Jdǎ;<wyimmӳ{$ի?~뮻ٷo~8#3nܸ|;io`۰aC|͌7.rK~Nm7oީˮ]ڿ_t\]]Oӹꪫca_EEEzZ˦Pk-ҐqWZK^7777WUU6>w:ޱcG֭[n-?^}5gΜ,Z(\rIvܙ38#]vY/w_fΜ??ϖ-[?I:m}y477K.I?ڳgO-[~=?S?;.ӧOo$7o^~3OL7m9眜|ygcMWRꫯ>UUUeϞ=;4;juWDžWK=<$\uug}6G2w̝;7guV-Z4dM֎H7n\jjjӹVjl>r>'xb{ueÆ >TTT䨣KtMJW֮]گ}\}ՙ4iRf̘Eeɒ%=ޯvJUTTSԠUUU璴M';,Gxs32/%IS}}555~/| ٰaGy$O>d}ݝ֓9rWdҥS__;I,]4zjZZZ}.zh.]}{ˇs444.~퍍;O~۵wڵ+{o/27|s~x,X >yA'X6[aƌ}|gd˖-oMMMnzGfFO#mj36{Wt9y+h^2IUGuyݝ䨎aBwڦ̝;i쨫K/vJ7mj0L>={lZ[[zܹsP?`5'O|b@~:޽_~Ivsۣ㈜Y:ݍ鸮NO#r IS5pz[-h>ͭ[|  oF{" Ғa֧k^{<}7.֭1ɛԨpToaKaS FTvq\QүFL3gΗ&O|ACCmu=Ve= PT1g8UTTdĉyW{'dO69?J蛮K YPEKuuqƕ+W~mݏM4Ӷ@UUUeĉyV<%iLGu4Pȗԩi\K=?ϯܹsI&eܸqP0X:7+V\ywē3th=C=d02\E}JV%oUzU͛W=6Tu3U:8y}$5I{챧M2ƍ{wUUՔʶ4̘1#/r($ PT3fݻ]~Zٳ7xk׮iZx_~ִ8M=6t=t Y4N_ׅ]U[&鼘qWϥ;_甴u۶xqtcS:eT]mltNM[WW_&8'`t5nZMi3b1j4MqQ5#oJ_it^C*|]CS攎)yS].gin89OoڂЧsk[K8]}jLoSzg!|+ݨwVUe:/NV)O=$U$GtT_Fr6EB lNwӪߌiӚS:;FiN6!MԫHRSIF(/qMWwuui@$-]. tJ׼_Ok 3tyӦŌ۴8 e~SUw>@+n›0,#v:*zm /t!tqT>-=F 6zZxiR9ݿ?o e8ÆFU-^S{o  e`ttpwӡ2Mm ?}*I&w7.JGtWKW)80tJ1.?Mw!ˁ;L dNFtޗE{] >tlmMooJBI9~,dzK`ptqig͈P%C$ڮFtwj7L}s MG$ptqwu@ÌFݔk@3sְ)W0أp:7]OOn[@אfDItw!N<]6颭/P7;(L Gv<O_m nӗs)ý U qʼn: ƲNI5.5ÛÁ8m9S_n`xuMW$鮭;c6I<)m? "|?0VtN+B@֧0/Kչ3 *J1X!Ns kKB)kx+t[S FF%@舞o-H=C17PU^o ]VE )Z`kǵ\; FӃ q:^b0FQk V2k$)Tx7I?) V2=!S@WFN= $##(j3;(I B V#3]Mf9 ƶjD!P0uհP>2\QMT g p)#2i3Z"~"CAIk2 ܈nڌc46k&h,c3X7*6c-kFQt4`$3M)Fg(1ؔX ; TM^{HIENDB`extension-manager-0.5.0/po/sv.po000066400000000000000000000371041457631363100165640ustar00rootroot00000000000000# LANGUAGE translations for extension-manager package. # Copyright (C) YEAR THE extension-manager'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2022-05-12 21:22+0200\n" "Last-Translator: \n" "Language-Team: \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.0.1\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "Tilläggshanterare" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 #, fuzzy #| msgid "A utility for managing GNOME Shell Extensions" msgid "Manage GNOME Shell Extensions" msgstr "Ett verktyg för att hantera GNOME-tillägg" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 #, fuzzy #| msgid "Extension Manager" msgid "extension;manager;shell;" msgstr "Tilläggshanterare" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 #, fuzzy #| msgid "A utility for managing GNOME Shell Extensions" msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "Ett verktyg för att hantera GNOME-tillägg" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "Ett verktyg för att hitta och installera GNOME-tillägg." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "Funktioner:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "Bläddra extensions.gnome.org direkt i appen" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "Hantera installerade tillägg" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "Ett verktyg för att hantera GNOME-tillägg" #: src/exm-application.c:175 #, fuzzy #| msgid "A utility for managing GNOME Shell Extensions" msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "Ett verktyg för att hantera GNOME-tillägg" #: src/exm-application.c:177 msgid "translator-credits" msgstr "översättare" #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "Sök efter tillägg" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "" "Ange ett sökord för att söka efter GNOME-tillägg på 'extensions.gnome.org' ." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "" #: src/exm-browse-page.blp:31 #, fuzzy #| msgid "Downloads" msgctxt "Sort search results" msgid "Downloads" msgstr "Hämtningar" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "Senaste" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "Namn" #: src/exm-browse-page.blp:61 msgid "_Load More Results" msgstr "" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "Hittade inga resultat" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "" #: src/exm-comment-dialog.blp:37 msgid "Loading Comments" msgstr "" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "Ett fel inträffade" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "" #: src/exm-detail-view.blp:63 #, fuzzy #| msgid "Log Out" msgid "Zoom Out" msgstr "Logga ut" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "" #: src/exm-detail-view.blp:106 #, fuzzy #| msgid "See Details" msgid "Loading Details" msgstr "Detaljer" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "Beskrivning" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "" #: src/exm-detail-view.blp:232 #, fuzzy #| msgid "Project Homepage" msgid "Homepage" msgstr "Hemsida för projektet" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "Se på Extensions" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "Användarrecensioner" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "" #: src/exm-detail-view.blp:319 #, fuzzy #| msgid "Show All Reviews" msgid "_Show All Reviews" msgstr "Visa alla recensioner" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "" #: src/exm-error-dialog.blp:29 #, fuzzy #| msgid "An error occurred while loading this extension" msgid "An unexpected error occurred in Extension Manager." msgstr "Ett fel inträffade vid laddning av tillägget" #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 msgid "_Copy to Clipboard" msgstr "" #: src/exm-error-dialog.blp:64 msgid "_New Issue" msgstr "" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "" #: src/exm-error-dialog.c:179 msgid "Please open a new issue and attach the following information:" msgstr "" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "Ett fel inträffade vid laddning av tillägget" #: src/exm-extension-row.blp:58 #, fuzzy #| msgid "This extension is incompatible with your current version of GNOME." msgid "This extension is incompatible with your current version of GNOME" msgstr "" "Det här tillägget är inte kompatibelt med din nuvarande version av GNOME." #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "En nyare version av detta tillägg är tillgängligt" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "Version" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "Fel" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "Detaljer" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "Ta bort" #: src/exm-info-bar.blp:13 #, fuzzy #| msgid "Downloads" msgctxt "Number of downloads" msgid "Downloads" msgstr "Hämtningar" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "Stöds ej" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "" "Det här tillägget är inte kompatibelt med din nuvarande version av GNOME." #: src/exm-install-button.c:115 msgid "Install" msgstr "Installera" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "Installerat" #: src/exm-installed-page.blp:33 #, fuzzy #| msgid "System Extensions" msgid "Use Extensions" msgstr "Systemtillägg" #: src/exm-installed-page.blp:34 #, fuzzy #| msgid "Performance and stability" msgid "Extensions can cause performance and stability issues." msgstr "Prestanda och stabilitet" #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "Användarinstallerade tillägg" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "Systemtillägg" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "Uppdateringar är tillgängliga" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "Logga ut" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "Ett tillägg kommer uppdateras vid näst inloggning." msgstr[1] "%d tillägg kommer uppdateras vid näst inloggning." #: src/exm-installed-page.c:340 #, fuzzy #| msgctxt "Navigation" #| msgid "Browse" msgid "Browse" msgstr "Utforska" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "" #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 #, fuzzy #| msgid "Displays user and system extensions separately" msgid "There are no system extensions installed." msgstr "Visa system och användare-tillägg separat" #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "" #: src/exm-upgrade-assistant.blp:47 msgid "_Check Compatibility" msgstr "" #: src/exm-upgrade-assistant.c:176 #, fuzzy, c-format #| msgid "Search for extensions" msgid "Checked %d/%d Extensions" msgstr "Sök efter tillägg" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" #: src/exm-upgrade-assistant.c:512 #, fuzzy #| msgid "Unsupported" msgid "Supported" msgstr "Stöds ej" #: src/exm-upgrade-assistant.c:514 #, fuzzy #| msgid "A newer version of this extension is available" msgid "A compatible version of the extension exists." msgstr "En nyare version av detta tillägg är tillgängligt" #: src/exm-upgrade-assistant.c:518 #, fuzzy #| msgid "A newer version of this extension is available" msgid "No compatible version of the extension exists." msgstr "En nyare version av detta tillägg är tillgängligt" #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" #: src/exm-window.blp:42 msgid "Main Menu" msgstr "" #: src/exm-window.blp:55 #, fuzzy #| msgctxt "Navigation" #| msgid "Installed" msgctxt "Navigation" msgid "_Installed" msgstr "Installerade" #: src/exm-window.blp:64 #, fuzzy #| msgctxt "Navigation" #| msgid "Browse" msgctxt "Navigation" msgid "_Browse" msgstr "Utforska" #: src/exm-window.blp:102 #, fuzzy #| msgid "Sort Enabled First" msgid "Sort _Enabled First" msgstr "Visa aktiverade först" #: src/exm-window.blp:103 #, fuzzy #| msgid "Unsupported" msgid "_Show Unsupported" msgstr "Stöds ej" #: src/exm-window.blp:106 msgid "_Upgrade Assistant" msgstr "" #: src/exm-window.blp:107 #, fuzzy #| msgid "About Extension Manager" msgid "_About Extension Manager" msgstr "Om Tilläggshanterare" #: src/exm-window.c:179 #, fuzzy #| msgid "User-Installed Extensions" msgid "Uninstall Extension?" msgstr "Användarinstallerade tillägg" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" #: src/exm-window.c:183 msgid "_No" msgstr "" #: src/exm-window.c:184 msgid "_Yes" msgstr "" #: src/exm-window.c:253 #, fuzzy #| msgid "Supported Versions" msgid "Unsupported Extension" msgstr "Stödda versioner" #: src/exm-window.c:254 #, fuzzy #| msgid "" #| "This extension does not support your GNOME Shell version.\n" #| "Would you like to install anyway?" msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "Det här tillägget stöder inte din GNOME version\n" "Vill du installera ändå?" #: src/exm-window.c:257 #, fuzzy #| msgid "Install" msgid "_Install Anyway" msgstr "Installera" #: src/exm-window.c:258 msgid "_Go Back" msgstr "" #: src/exm-window.c:365 #, fuzzy #| msgid "An Error Occurred" msgid "An error occurred." msgstr "Ett fel inträffade" #: src/exm-window.c:366 #, fuzzy #| msgid "See Details" msgid "Details" msgstr "Detaljer" #~ msgid "Loading…" #~ msgstr "Laddar…" #~ msgid "@app_title@" #~ msgstr "Tillägshanterare" #~ msgid "The second feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Den andra funktionsuppdateringen till Tilläggshanterare. Höjdpunkter:" #~ msgid "View comments and reviews" #~ msgstr "Se kommentarer och recensioner" #~ msgid "Support for in-app updates" #~ msgstr "Stöd för uppdatering direkt i appen" #~ msgid "Better handling errors and out-of-date extensions" #~ msgstr "Bättre hantering av felmeddelanden och utdaterade tillägg" #~ msgid "Allow installing 'unsupported' extensions" #~ msgstr "Tillåtelse av tillägg 'utan stöd'" #~ msgid "Display release notes on first run" #~ msgstr "Visa app nyheter vid första uppstart" #~ msgid "New app icon" #~ msgstr "Ny app ikon" #~ msgid "Optionally sort extensions by enabled status" #~ msgstr "" #~ "Valfri funktion för att sortera enligt vilka tillägg som är aktiverade" #~ msgid "Translation updates" #~ msgstr "Uppdateringar till översättningar" #~ msgid "Fix special characters in search results" #~ msgstr "Fix för speciella bokstäver i sökresultat" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "Fix för en krasch som ibland händer vi avinstallation av tillägg" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "Första funktionsuppdatering för Tilläggshanterare. Höjdpunkter:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "Mörkt tema och möjlighet att överskrida system tema" #~ msgid "Shows screenshots in extension listings" #~ msgstr "Visa skärmdumpar i tillägglistningar" #~ msgid "Shell version compatibility check" #~ msgstr "Check av kompatibilitet för skal-version" #~ msgid "Localised into seven languages" #~ msgstr "Översatt till sju olika språk" #~ msgid "Sort search results" #~ msgstr "Sortering av sökresultat" #~ msgid "Global extension on/off toggle" #~ msgstr "Av/på knapp för globala tillägg" #~ msgid "Extension Manager (Development)" #~ msgstr "Tilläggshanterare (Utveckling)" #~ msgid "" #~ "A very simple tool for browsing, downloading, and managing GNOME shell " #~ "extensions." #~ msgstr "" #~ "Ett väldigt enkelt verktyg för att hitta, installera och hantera GNOME-" #~ "tillägg." #~ msgid "e.g. \"Blur my Shell\"" #~ msgstr "t.e.x \"Blur my Shell\"" #~ msgid "Popularity" #~ msgstr "Populäritet" #~ msgid "Release Notes" #~ msgstr "App nyheter" #~ msgid "Theme" #~ msgstr "Tema" #~ msgid "Follow System" #~ msgstr "Följ systemet" #~ msgid "Light" #~ msgstr "Ljust" #~ msgid "Dark" #~ msgstr "Mörkt" #~ msgid "Are you sure you want to uninstall?" #~ msgstr "Är du säker på att du vill avinstallera?" #~ msgid "What's New" #~ msgstr "Nyheter" #~ msgid "View Release Notes" #~ msgstr "Se nyheter" #, c-format #~ msgid "" #~ "This is your first time using Extension Manager %s.\n" #~ "Would you like to see the release notes?" #~ msgstr "" #~ "Det här är första gången du använder Tilläggshanterare %s.\n" #~ "Vill du se vad som är nytt?" extension-manager-0.5.0/po/ta.po000066400000000000000000000637651457631363100165540ustar00rootroot00000000000000# Tamil translations for extension-manager package. # Copyright (C) 2023 THE extension-manager'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # K.B.Dharun Krishna , 2022, 2023. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2023-06-19 19:50+0530\n" "Last-Translator: K.B.Dharun Krishna \n" "Language-Team: \n" "Language: ta\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.3.1\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "நீட்டிப்பு மேலாளர்" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 #, fuzzy #| msgid "A utility for managing GNOME Shell Extensions" msgid "Manage GNOME Shell Extensions" msgstr "GNOME ஷெல் நீட்டிப்புகளை நிர்வகிப்பதற்கான ஒரு பயன்பாடு" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 #, fuzzy #| msgid "Extension Manager" msgid "extension;manager;shell;" msgstr "நீட்டிப்பு மேலாளர்" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 #, fuzzy #| msgid "Browse, install, and manage GNOME Shell Extensions." msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "GNOME ஷெல் நீட்டிப்புகளை நிர்வகிப்பதற்கான ஒரு பயன்பாடு." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "GNOME ஷெல் நீட்டிப்புகளை உலாவுவதற்கும் நிறுவுவதற்கும் ஒரு பயன்பாடு." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "அம்சங்கள்:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "பயன்பாட்டில் உள்ள extensions.gnome.org ஐ உலாவுங்கள்" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "நீங்கள் ஏற்கனவே நிறுவிய நீட்டிப்புகளை நிர்வகிக்கவும்" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "GNOME ஷெல் நீட்டிப்புகளை நிர்வகிப்பதற்கான ஒரு பயன்பாடு" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "GNOME ஷெல் நீட்டிப்புகளை நிர்வகிப்பதற்கான ஒரு பயன்பாடு." #: src/exm-application.c:177 msgid "translator-credits" msgstr "க.பா.தருண் கிருஷ்ணா " #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "நீட்டிப்புகளைத் தேடுங்கள்" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "" "க்னோம் ஷெல் நீட்டிப்புகளுக்கு 'extensions.gnome.org' ஐ தேட ஒரு முக்கிய சொல்லை " "உள்ளிடவும்." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "" #: src/exm-browse-page.blp:31 #, fuzzy #| msgid "Downloads" msgctxt "Sort search results" msgid "Downloads" msgstr "பதிவிறக்கங்கள்" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "சமீபத்திய" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "பெயர்" #: src/exm-browse-page.blp:61 #, fuzzy #| msgid "Load More Results" msgid "_Load More Results" msgstr "மேலும் முடிவுகளை ஏற்றவும்" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "முடிவுகள் எதுவும் இல்லை" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "எ.கா. “%s“" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "கருத்துகள்" #: src/exm-comment-dialog.blp:37 #, fuzzy #| msgid "Comments" msgid "Loading Comments" msgstr "கருத்துகள்" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "ஒரு பிழை ஏற்பட்டது" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "பெரிதாக்கு" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "சிறிதாக்கு" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "பார்வைக்குத் திரும்பு" #: src/exm-detail-view.blp:106 #, fuzzy #| msgid "Details" msgid "Loading Details" msgstr "விவரங்கள்" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "படத்தை பெரிதாக்கவும்" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "விளக்கம்" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "" #: src/exm-detail-view.blp:232 #, fuzzy #| msgid "Project Homepage" msgid "Homepage" msgstr "திட்ட முகப்புப்பக்கம்" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "நீட்டிப்புகளில் காண்க" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "பயனர் மதிப்புரைகள்" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "" #: src/exm-detail-view.blp:319 #, fuzzy #| msgid "Show All Reviews" msgid "_Show All Reviews" msgstr "அனைத்து மதிப்புரைகளையும் காட்டு" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "பிழை அறிக்கை" #: src/exm-error-dialog.blp:29 #, fuzzy #| msgid "" #| "An unexpected error occurred in Extension Manager. Please open a new " #| "issue and attach the following information:" msgid "An unexpected error occurred in Extension Manager." msgstr "" "நீட்டிப்பு மேலாளரில் எதிர்பாராத பிழை ஏற்பட்டது. புதிய சிக்கலைத் திறந்து பின்வரும் தகவலை " "இணைக்கவும்:" #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 #, fuzzy #| msgid "Copy to Clipboard" msgid "_Copy to Clipboard" msgstr "கிளிப்போர்டுக்கு நகலெடுக்கவும்" #: src/exm-error-dialog.blp:64 #, fuzzy #| msgid "New Issue" msgid "_New Issue" msgstr "புதிய சிக்கல்" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "நகலெடுக்கப்பட்டது" #: src/exm-error-dialog.c:179 #, fuzzy #| msgid "" #| "An unexpected error occurred in Extension Manager. Please open a new " #| "issue and attach the following information:" msgid "Please open a new issue and attach the following information:" msgstr "" "நீட்டிப்பு மேலாளரில் எதிர்பாராத பிழை ஏற்பட்டது. புதிய சிக்கலைத் திறந்து பின்வரும் தகவலை " "இணைக்கவும்:" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "நீட்டிப்பு விருப்பத்தேர்வுகளைத் திறக்கவும்" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "இந்த நீட்டிப்பை ஏற்றும்போது பிழை ஏற்பட்டது" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "இந்த நீட்டிப்பு உங்கள் தற்போதைய GNOME பதிப்போடு பொருந்தாது" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "இந்த நீட்டிப்பின் புதிய பதிப்பு கிடைக்கிறது" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "பதிப்பு" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "பிழை" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "விவரங்களைப் பார்க்கவும்" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "Remove" #: src/exm-info-bar.blp:13 #, fuzzy #| msgid "Downloads" msgctxt "Number of downloads" msgid "Downloads" msgstr "பதிவிறக்கங்கள்" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "ஆதரவற்றது" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "இந்த நீட்டிப்பு உங்கள் தற்போதைய க்னோம் பதிப்போடு பொருந்தாது." #: src/exm-install-button.c:115 msgid "Install" msgstr "நிறுவு" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "நிறுவப்பட்டுள்ளது" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "நீட்டிப்புகளைப் பயன்படுத்தவும்" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "நீட்டிப்புகள் செயல்திறன் மற்றும் நிலைத்தன்மை சிக்கல்களை ஏற்படுத்தும்." #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "பயனர் நிறுவிய நீட்டிப்புகள்" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "கணினி நீட்டிப்புகள்" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "புதுப்பிப்புகள் கிடைக்கின்றன" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "வெளியேறு" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "அடுத்த உள்நுழைவில் ஒரு நீட்டிப்பு புதுப்பிக்கப்படும்." msgstr[1] "அடுத்த உள்நுழைவில் %d நீட்டிப்புகள் புதுப்பிக்கப்படும்." #: src/exm-installed-page.c:340 msgid "Browse" msgstr "உலாவுக" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "பயனர் நீட்டிப்புகள் எதுவும் நிறுவப்படவில்லை." #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "கணினி நீட்டிப்புகள் எதுவும் நிறுவப்படவில்லை." #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "மேம்படுத்தல் உதவியாளர்" #: src/exm-upgrade-assistant.blp:47 #, fuzzy #| msgid "Check Compatibility" msgid "_Check Compatibility" msgstr "இணக்கத்தன்மையை சரிபார்க்கவும்" #: src/exm-upgrade-assistant.c:176 #, fuzzy, c-format #| msgid "Search for extensions" msgid "Checked %d/%d Extensions" msgstr "நீட்டிப்புகளைத் தேடுங்கள்" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" "GNOME %s கணினியில் தற்போது நிறுவப்பட்டுள்ள நீட்டிப்புகளில் %d இல் %dஐ " "ஆதரிக்கிறது." #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "ஆதரிக்கப்பட்டது" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "நீட்டிப்பின் இணக்கமான பதிப்பு உள்ளது." #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "நீட்டிப்பின் இணக்கமான பதிப்பு எதுவும் இல்லை." #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "தெரியாதது" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" "இந்த நீட்டிப்பு extensions.gnome.org இல் ஹோஸ்ட் செய்யப்படவில்லை. அதன் பொருந்தக்கூடிய " "தன்மையை தீர்மானிக்க முடியாது." #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" "நீங்கள் தற்போது GNOME %s ஐ இயக்குகிறீர்கள். கீழே உள்ள GNOME இன் பதிப்பைத் " "தேர்ந்தெடுத்து, உங்கள் நீட்டிப்புகள் தொடர்ந்து கிடைக்குமா என்பதைச் சரிபார்க்கவும்." #: src/exm-window.blp:42 msgid "Main Menu" msgstr "" #: src/exm-window.blp:55 #, fuzzy #| msgctxt "Navigation" #| msgid "Installed" msgctxt "Navigation" msgid "_Installed" msgstr "நிறுவப்பட்டுள்ளது" #: src/exm-window.blp:64 #, fuzzy #| msgid "Browse" msgctxt "Navigation" msgid "_Browse" msgstr "உலாவுக" #: src/exm-window.blp:102 #, fuzzy #| msgid "Sort Enabled First" msgid "Sort _Enabled First" msgstr "முதலில் வரிசைப்படுத்து இயக்கப்பட்டது" #: src/exm-window.blp:103 #, fuzzy #| msgid "Show Unsupported" msgid "_Show Unsupported" msgstr "ஆதரிக்கப்படாததைக் காட்டு" #: src/exm-window.blp:106 #, fuzzy #| msgid "Upgrade Assistant" msgid "_Upgrade Assistant" msgstr "மேம்படுத்தல் உதவியாளர்" #: src/exm-window.blp:107 #, fuzzy #| msgid "About Extension Manager" msgid "_About Extension Manager" msgstr "நீட்டிப்பு மேலாளர் பற்றி" #: src/exm-window.c:179 #, fuzzy #| msgid "User-Installed Extensions" msgid "Uninstall Extension?" msgstr "பயனர் நிறுவிய நீட்டிப்புகள்" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" #: src/exm-window.c:183 msgid "_No" msgstr "" #: src/exm-window.c:184 msgid "_Yes" msgstr "" #: src/exm-window.c:253 #, fuzzy #| msgid "Use Extensions" msgid "Unsupported Extension" msgstr "நீட்டிப்புகளைப் பயன்படுத்தவும்" #: src/exm-window.c:254 #, fuzzy #| msgid "" #| "This extension does not support your GNOME Shell version.\n" #| "Would you like to install anyway?" msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "இந்த நீட்டிப்பு உங்கள் க்னோம் ஷெல் பதிப்பை ஆதரிக்காது.\n" "எப்படியும் நிறுவ விரும்புகிறீர்களா?" #: src/exm-window.c:257 #, fuzzy #| msgid "Install" msgid "_Install Anyway" msgstr "நிறுவு" #: src/exm-window.c:258 msgid "_Go Back" msgstr "" #: src/exm-window.c:365 msgid "An error occurred." msgstr "ஒரு பிழை ஏற்பட்டது." #: src/exm-window.c:366 msgid "Details" msgstr "விவரங்கள்" #~ msgid "Loading…" #~ msgstr "ஏற்றுகிறது…" #~ msgid "@app_title@" #~ msgstr "@app_title@" #~ msgid "Fully adaptive mobile-friendly user interface" #~ msgstr "முற்றிலும் தழுவல் மொபைல் நட்பு பயனர் இடைமுகம்" #~ msgid "Paginated search results" #~ msgstr "பக்கத் தேடல் முடிவுகள்" #~ msgid "Upgrade Assistant for checking extension compatibility" #~ msgstr "நீட்டிப்பு இணக்கத்தன்மையை சரிபார்க்க உதவியாளரை மேம்படுத்தவும்" #~ msgid "Unsupported extensions are hidden by default" #~ msgstr "ஆதரிக்கப்படாத நீட்டிப்புகள் இயல்பாகவே மறைக்கப்படும்" #~ msgid "Overhauled error and crash reporting" #~ msgstr "மாற்றியமைக்கப்பட்ட பிழை மற்றும் செயலிழப்பு அறிக்கையிடுதல்" #~ msgid "Full-screen image viewer" #~ msgstr "முழுத்திரை படக் காட்சியாளர்" #~ msgid "Handles new gnome-extensions:// URI scheme" #~ msgstr "புதிய gnome-extensions:// URI திட்டத்தைக் கையாளுகிறது" #~ msgid "Randomised extension suggestions" #~ msgstr "சீரற்ற நீட்டிப்பு பரிந்துரைகள்" #~ msgid "Performance and stability" #~ msgstr "செயல்திறன் மற்றும் நிலைத்தன்மை" #~ msgid "Translation updates" #~ msgstr "மொழிபெயர்ப்பு புதுப்பிப்புகள்" #~ msgid "Various bug fixes" #~ msgstr "பல்வேறு பிழை திருத்தங்கள்" #~ msgid "Remove release notes dialog" #~ msgstr "வெளியீட்டு குறிப்புகள் உரையாடலை அகற்று" #~ msgid "Fix special characters in installed extension listings" #~ msgstr "நிறுவப்பட்ட நீட்டிப்பு பட்டியல்களில் சிறப்பு எழுத்துகளை சரிசெய்யவும்" #~ msgid "The second feature update to extension-manager. Highlights include:" #~ msgstr "நீட்டிப்பு மேலாளருக்கான இரண்டாவது அம்ச புதுப்பிப்பு. சிறப்பம்சங்கள் அடங்கும்:" #~ msgid "View comments and reviews" #~ msgstr "கருத்துகள் மற்றும் மதிப்புரைகளைக் காண்க" #~ msgid "Support for in-app updates" #~ msgstr "பயன்பாட்டில் உள்ள புதுப்பிப்புகளுக்கான ஆதரவு" #~ msgid "Better handling errors and out-of-date extensions" #~ msgstr "சிறந்த கையாளுதல் பிழைகள் மற்றும் காலாவதியான நீட்டிப்புகள்" #~ msgid "Allow installing 'unsupported' extensions" #~ msgstr "'ஆதரவற்ற' நீட்டிப்புகளை நிறுவ அனுமதிக்கவும்" #~ msgid "Display release notes on first run" #~ msgstr "முதல் ஓட்டத்தில் வெளியீட்டு குறிப்புகளைக் காண்பி" #~ msgid "New app icon" #~ msgstr "புதிய ஆப்ஸ் ஐகான்" #~ msgid "Optionally sort extensions by enabled status" #~ msgstr "இயக்கப்பட்ட நிலையின்படி நீட்டிப்புகளை விருப்பமாக வரிசைப்படுத்தவும்" #~ msgid "Fix special characters in search results" #~ msgstr "தேடல் முடிவுகளில் சிறப்பு எழுத்துக்களை சரிசெய்யவும்" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "நீட்டிப்பை நிறுவல் நீக்கும் போது சில நேரங்களில் ஏற்படும் செயலிழப்பை சரிசெய்கிறது" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "நீட்டிப்பு மேலாளருக்கான முதல் அம்ச புதுப்பிப்பு. சிறப்பம்சங்கள் அடங்கும்:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "டார்க் தீம் மற்றும் கணினி வண்ணத் திட்டத்தை மேலெழுதுவதற்கான ஆதரவு" #~ msgid "Shows screenshots in extension listings" #~ msgstr "நீட்டிப்பு பட்டியல்களில் ஸ்கிரீன்ஷாட்களைக் காட்டுகிறது" #~ msgid "Shell version compatibility check" #~ msgstr "ஷெல் பதிப்பு இணக்கத்தன்மை சோதனை" #~ msgid "Localised into seven languages" #~ msgstr "ஏழு மொழிகளில் மொழிபெயர்க்கப்பட்டது" #~ msgid "Sort search results" #~ msgstr "தேடல் முடிவுகளை வரிசைப்படுத்தவும்" #~ msgid "Global extension on/off toggle" #~ msgstr "உலகளாவிய நீட்டிப்பு ஆன்/ஆஃப் நிலைமாற்றம்" #~ msgid "Displays user and system extensions separately" #~ msgstr "பயனர் மற்றும் கணினி நீட்டிப்புகளைத் தனித்தனியாகக் காட்டுகிறது" #~ msgid "Extension Manager (Development)" #~ msgstr "நீட்டிப்பு மேலாளர் (மேம்பாடு)" #~ msgid "Popularity" #~ msgstr "பிரபலம்" #~ msgid "Supported Versions" #~ msgstr "ஆதரிக்கப்படும் பதிப்புகள்" #~ msgctxt "Navigation" #~ msgid "Browse" #~ msgstr "உலாவுக" #~ msgid "Theme" #~ msgstr "தீம்" #~ msgid "Follow System" #~ msgstr "சிஸ்டத்தைப் பின்பற்றவும்" #~ msgid "Light" #~ msgstr "ஒளி" #~ msgid "Dark" #~ msgstr "இருட்டு" #~ msgid "Are you sure you want to uninstall?" #~ msgstr "நீங்கள் நிச்சயமாக நிறுவல் நீக்க விரும்புகிறீர்களா?" #~ msgid "" #~ "A very simple tool for browsing, downloading, and managing GNOME shell " #~ "extensions." #~ msgstr "" #~ "க்னோம் ஷெல் நீட்டிப்புகளை உலாவுதல், பதிவிறக்குதல் மற்றும் நிர்வகிப்பதற்கான மிக எளிய " #~ "கருவி." #~ msgid "e.g. \"Blur my Shell\"" #~ msgstr "எ.கா. \"Blur my Shell\"" #~ msgid "What's New" #~ msgstr "புதியது என்ன" #~ msgid "View Release Notes" #~ msgstr "வெளியீட்டு குறிப்புகளைப் பார்க்கவும்" #, c-format #~ msgid "" #~ "This is your first time using Extension Manager %s.\n" #~ "Would you like to see the release notes?" #~ msgstr "" #~ "நீங்கள் நீட்டிப்பு மேலாளர் %s ஐப் பயன்படுத்துவது இதுவே முதல் முறை.\n" #~ "வெளியீட்டு குறிப்புகளைப் பார்க்க விரும்புகிறீர்களா?" extension-manager-0.5.0/po/tr.po000066400000000000000000000413431457631363100165610ustar00rootroot00000000000000# translation of extension-manager to Turkish # Copyright (C) 2022 extension-manager's COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # # Onur Ankut , 2022. # Sabri Ünal , 2022. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2024-03-13 20:01+0000\n" "Last-Translator: Oğuz Ersen \n" "Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 5.5-dev\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "Uzantı Yöneticisi" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 msgid "Manage GNOME Shell Extensions" msgstr "GNOME Shell Uzantılarını yönetin" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 msgid "extension;manager;shell;" msgstr "extension;manager;shell;uzantı;yönetici;kabuk;" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "GNOME Shell Uzantılarını keşfedin, kurun ve yönetin" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "" "GNOME Shell Uzantılarını keşfetmeniz ve kurmanız için yardımcı bir program." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "Özellikler:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "Doğrudan uygulamanın içinden extensions.gnome.org'a göz atın" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "Zaten kurmuş olduğunuz uzantıları yönetin" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "GNOME Shell Uzantılarını yönetmeniz için yardımcı bir program" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "GNOME Shell Uzantılarını keşfedin, kurun ve yönetin." #: src/exm-application.c:177 msgid "translator-credits" msgstr "" "Onur Ankut \n" "Sabri Ünal \n" "Oğuz Ersen " #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "Uzantı arayın" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "" "'extensions.gnome.org'da GNOME Shell uzantılarını aramak için bir sözcük " "girin." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "İlgi" #: src/exm-browse-page.blp:31 msgctxt "Sort search results" msgid "Downloads" msgstr "İndirilenler" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "Yeni çıkanlar" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "Ada göre" #: src/exm-browse-page.blp:61 msgid "_Load More Results" msgstr "Daha Fazla Sonuç _Yükle" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "Sonuç Bulunamadı" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "ör: “%s”" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "Yorumlar" #: src/exm-comment-dialog.blp:37 msgid "Loading Comments" msgstr "Yorumlar Yükleniyor" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "Hata Oluştu" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "Yazar" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "Yakınlaştır" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "Uzaklaştır" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "Görünüme geri dön" #: src/exm-detail-view.blp:106 msgid "Loading Details" msgstr "Ayrıntılar Yükleniyor" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "Resmi genişlet" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "Açıklama" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "Bağlantılar" #: src/exm-detail-view.blp:232 msgid "Homepage" msgstr "Ana Sayfa" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "Uzantılar Sitesinde Görüntüle" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "Kullanıcı Yorumları" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "Yorum yok." #: src/exm-detail-view.blp:319 msgid "_Show All Reviews" msgstr "Tüm Yorumları _Göster" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "Hata Raporla" #: src/exm-error-dialog.blp:29 msgid "An unexpected error occurred in Extension Manager." msgstr "Uzantı Yöneticisi'nde beklenmedik bir hata oluştu." #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 msgid "_Copy to Clipboard" msgstr "Panoya _Kopyala" #: src/exm-error-dialog.blp:64 msgid "_New Issue" msgstr "_Yeni Hata" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "Kopyalandı" #: src/exm-error-dialog.c:179 msgid "Please open a new issue and attach the following information:" msgstr "Lütfen yeni bir konu açın ve aşağıdaki bilgileri ekleyin:" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" "Uzantı Yöneticisi'nin üçüncü tarafca yapılmış bir derlemesini " "kullanıyorsunuz. Lütfen sorun bildirmeden önce paket " "dağıtıcısı (%s) ile iletişime geçin. Aşağıdaki bilgileri " "eklediğinizden emin olun:" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "Uzantı tercihlerini aç" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "Uzantı yüklenirken hata oluştu" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "Bu uzantı şu anki GNOME sürümünüz ile uyumsuz" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "Uzantının yeni bir sürümü var" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "Sürüm" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "Hata" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "Ayrıntıları Görüntüle" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "Kaldır" #: src/exm-info-bar.blp:13 msgctxt "Number of downloads" msgid "Downloads" msgstr "İndirilenler" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "Desteklenmiyor" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "Bu uzantı şu anki GNOME sürümünüz ile uyumsuz." #: src/exm-install-button.c:115 msgid "Install" msgstr "Kur" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "Kurulu" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "Uzantıları Kullan" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "Uzantılar başarım ve kararlılık sorunlarına neden olabilir." #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "Kurulu Uzantılarınız" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "Sistem Uzantıları" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "Güncellemeler var" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "Oturumu Kapat" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "%d uzantı sonraki girişte güncellenecek." #: src/exm-installed-page.c:340 msgid "Browse" msgstr "Göz At" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "Kurulu kullanıcı uzantısı yok." #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "Kurulu sistem uzantısı yok." #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "Yükseltme Yardımcısı" #: src/exm-upgrade-assistant.blp:47 msgid "_Check Compatibility" msgstr "Uyumluluğu _Denetle" #: src/exm-upgrade-assistant.c:176 #, c-format msgid "Checked %d/%d Extensions" msgstr "%d/%d Uzantı Denetlendi" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "%%%d Uyumlu" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" "GNOME %s, sistemde kurulu olan %d / %d eklentiyi destekliyor." #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "Destekleniyor" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "Uzantının uyumlu bir sürümü var." #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "Uzantının uyumlu bir sürümü yok." #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "Bilinmeyen" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" "Bu uzantı extensions.gnome.org sitesinde barındırılmıyor. Uyumluluğu " "belirlenemiyor." #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" "GNOME %s kullanıyorsunuz. Aşağıdan bir GNOME sürümü seçin ve " "uzantılarınızın kullanılabilir olmaya devam edip etmeyeceğini denetleyin." #: src/exm-window.blp:42 msgid "Main Menu" msgstr "Ana Menü" #: src/exm-window.blp:55 msgctxt "Navigation" msgid "_Installed" msgstr "_Kurulu" #: src/exm-window.blp:64 msgctxt "Navigation" msgid "_Browse" msgstr "_Göz At" #: src/exm-window.blp:102 msgid "Sort _Enabled First" msgstr "_Etkinleri Önce Sırala" #: src/exm-window.blp:103 msgid "_Show Unsupported" msgstr "Desteklenmeyenleri _Göster" #: src/exm-window.blp:106 msgid "_Upgrade Assistant" msgstr "_Yükseltme Yardımcısı" #: src/exm-window.blp:107 msgid "_About Extension Manager" msgstr "Uzantı Yöneticisi _Hakkında" #: src/exm-window.c:179 msgid "Uninstall Extension?" msgstr "Uzantı Kaldırılsın Mı?" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" "Uzantının özelliklerine ve işlevlerine artık erişilemeyecektir. Kaldırmak " "istediğinizden emin misiniz?" #: src/exm-window.c:183 msgid "_No" msgstr "_Hayır" #: src/exm-window.c:184 msgid "_Yes" msgstr "_Evet" #: src/exm-window.c:253 msgid "Unsupported Extension" msgstr "Desteklenmeyen Uzantı" #: src/exm-window.c:254 msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "Bu uzantı GNOME Shell sürümünüzü desteklemiyor. Kurulması hatalara denen " "olabilir." #: src/exm-window.c:257 msgid "_Install Anyway" msgstr "Yine De _Kur" #: src/exm-window.c:258 msgid "_Go Back" msgstr "Geri _Git" #: src/exm-window.c:365 msgid "An error occurred." msgstr "Hata oluştu." #: src/exm-window.c:366 msgid "Details" msgstr "Ayrıntılar" #~ msgid "Loading…" #~ msgstr "Yükleniyor…" #~ msgid "@app_title@" #~ msgstr "@app_title@" #~ msgid "HOTFIX: Fix broken 'recent' and 'popularity' search filters" #~ msgstr "" #~ "HOTFIX: Bozuk 'Yeni çıkanlar' ve 'çok oylananlar' arama süzgeçleri " #~ "düzeltildi" #~ msgid "Various stability and correctness fixes" #~ msgstr "Çeşitli kararlılık ve doğruluk düzeltmeleri" #~ msgid "Translation updates" #~ msgstr "Çeviri güncellemeleri" #~ msgid "Upgrade Assistant scroll fix" #~ msgstr "Yükseltme yardımcısı kaydırması düzeltildi" #~ msgid "Pixel perfect app icon" #~ msgstr "Piksel mükemmelliğinde uygulama simgesi" #~ msgid "Official snap support" #~ msgstr "Snap desteği iyileştirildi" #~ msgid "Improved error log generation" #~ msgstr "Hata günlüğü oluşturma iyileştirildi" #~ msgid "Fully adaptive mobile-friendly user interface" #~ msgstr "Tamamen uyarlanabilir mobil dostu kullanıcı arayüzü" #~ msgid "Paginated search results" #~ msgstr "Sayfalanmış arama sonuçları" #~ msgid "Upgrade Assistant for checking extension compatibility" #~ msgstr "Uzantı uyumluluğunu denetlemek etmek için Yükseltme Yardımcısı" #~ msgid "Unsupported extensions are hidden by default" #~ msgstr "Desteklenmeyen uzantılar öntanımlı olarak gizlenir" #~ msgid "Overhauled error and crash reporting" #~ msgstr "Elden geçirilmiş hata ve çökme raporlaması" #~ msgid "Full-screen image viewer" #~ msgstr "Tam ekran görüntü gösterici" #~ msgid "Handles new gnome-extensions:// URI scheme" #~ msgstr "Yeni gnome-extensions:// URI şemalarını işleme" #~ msgid "Randomised extension suggestions" #~ msgstr "Rastgele uzantı önerimi" #~ msgid "Performance and stability" #~ msgstr "Performans ve kararlılık" #~ msgid "Various bug fixes" #~ msgstr "Çeşitli hata düzeltmeleri" #~ msgid "Remove release notes dialog" #~ msgstr "Sürüm notları iletişim kutusu kaldırıldı" #~ msgid "Fix special characters in installed extension listings" #~ msgstr "Kurulu eklentiler listesinde özel karakterleri düzelt" #~ msgid "The second feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Uzantı Yöneticisi'nin ikinci özellik güncellemesi. Öne çıkanlar arasında:" #~ msgid "View comments and reviews" #~ msgstr "Yorumları görüntüle" #~ msgid "Support for in-app updates" #~ msgstr "Uygulama içi güncelleme desteği" #~ msgid "Better handling errors and out-of-date extensions" #~ msgstr "Hataların ve tarihi geçmiş uzantıların daha iyi yönetimi" #~ msgid "Allow installing 'unsupported' extensions" #~ msgstr "'Desteklenmeyen' uzantıların kurulmasına izin ver" #~ msgid "Display release notes on first run" #~ msgstr "İlk çalıştırmada sürüm notlarını görüntüle" #~ msgid "New app icon" #~ msgstr "Yeni uygulama simgesi" #~ msgid "Optionally sort extensions by enabled status" #~ msgstr "İsteğe bağlı olarak uzantıları etkin duruma göre sırala" #~ msgid "Fix special characters in search results" #~ msgstr "Arama sonuçlarında özel karakterleri düzelt" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "Bir uzantıyı kaldırırken bazen ortaya çıkan çökme durumu düzeltildi" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Uzantı Yöneticisi'nin ilk özellik güncellemesi. Öne çıkanlar arasında:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "Koyu tema ve sistem renk şemasını geçersiz kılma desteği" #~ msgid "Shows screenshots in extension listings" #~ msgstr "Uzantı listelerinde ekran görüntülerini gösterir" #~ msgid "Shell version compatibility check" #~ msgstr "Shell sürüm uyumluluğu denetimi" #~ msgid "Localised into seven languages" #~ msgstr "Yedi dilde yerelleştirildi" #~ msgid "Sort search results" #~ msgstr "Arama sonuçlarını sıralama" #~ msgid "Global extension on/off toggle" #~ msgstr "Evrensel uzantı açma/kapama ayarı" #~ msgid "Displays user and system extensions separately" #~ msgstr "Kullanıcı ve sistem uzantılarını ayrı ayrı görüntüler" #~ msgid "Extension Manager (Development)" #~ msgstr "Uzantı Yöneticisi (Geliştirme)" #~ msgid "Popularity" #~ msgstr "Çok oylananlar" #~ msgid "Supported Versions" #~ msgstr "Desteklenen Sürümler" extension-manager-0.5.0/po/uk.po000066400000000000000000000527751457631363100165660ustar00rootroot00000000000000# Ukrainian translation for extension-manager. # Copyright (C) 2023 THE extension-manager COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # volkov , 2023. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2024-02-25 10:02+0000\n" "Last-Translator: Сергій \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Weblate 5.5-dev\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "Менеджер розширень" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 msgid "Manage GNOME Shell Extensions" msgstr "Керуйте розширеннями для стільниці GNOME" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 msgid "extension;manager;shell;" msgstr "" "extension;manager;shell;розширення;менеджер;гном;додатки;кастомізація;" "налаштування;оболонка;" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "Шукайте, встановлюйте та керуйте розширеннями для стільниці GNOME" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "Програма для пошуку та встановлення розширень для стільниці GNOME." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "Функції:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "Шукайте розширення з extensions.gnome.org прямо у додатку" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "Керуйте встановленими розширеннями" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "Програма для керуваннями розширеннями для стільниці GNOME" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "Шукайте, встановлюйте та керуйте розширеннями для стільниці GNOME." #: src/exm-application.c:177 msgid "translator-credits" msgstr "volkov " #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "Шукати розширення" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "" "Введіть щось для пошуку розширень з 'extensions.gnome.org' для стільниці " "GNOME." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "За актуальністю" #: src/exm-browse-page.blp:31 msgctxt "Sort search results" msgid "Downloads" msgstr "За кількістю завантажень" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "За датою оновлення" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "За назвою" #: src/exm-browse-page.blp:61 msgid "_Load More Results" msgstr "_Завантажити більше результатів" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "Нічого не знайдено" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "наприклад: “%s”" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "Коментарі" #: src/exm-comment-dialog.blp:37 #, fuzzy #| msgid "Comments" msgid "Loading Comments" msgstr "Коментарі" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "Сталася помилка" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "Автор" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "Збільшити" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "Зменшити" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "Повернутися назад" #: src/exm-detail-view.blp:106 #, fuzzy #| msgid "Details" msgid "Loading Details" msgstr "Подробиці" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "Збільшити зображення" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "Опис" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "Посилання" #: src/exm-detail-view.blp:232 msgid "Homepage" msgstr "Домашня сторінка" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "Переглянути це розширення на сайті Extensions" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "Відгуки користувачів" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "Немає коментарів." #: src/exm-detail-view.blp:319 msgid "_Show All Reviews" msgstr "_Показати всі відгуки" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "Звітувати про помилку" #: src/exm-error-dialog.blp:29 msgid "An unexpected error occurred in Extension Manager." msgstr "Неочікувана помилка сталася у Менеджері розширень." #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 msgid "_Copy to Clipboard" msgstr "_Скопіювати в буфер обміну" #: src/exm-error-dialog.blp:64 msgid "_New Issue" msgstr "_Нова проблема" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "Скопійовано" #: src/exm-error-dialog.c:179 msgid "Please open a new issue and attach the following information:" msgstr "" "Будь ласка, відкрийте нову проблему і додайте до неї наступну інформацію:" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" "Ви використовуєте сторонню збірку Менеджеру розширень. Будь-ласка, спочатку, зверніться до пакувальника (%s) перед тим " "як звітувати. Не забудьте додати наступну інформацію:" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "Відкрити налаштування розширення" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "Сталася помилка при завантаженні цього розширення" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "Це розширення не підтримується у вашій поточній версії GNOME" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "Доступна нова версія цього розширення" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "Версія" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "Помилка" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "Подробиці" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "Видалити" #: src/exm-info-bar.blp:13 msgctxt "Number of downloads" msgid "Downloads" msgstr "Завантажень" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "Не підтримується" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "Це розширення не підтримується у вашій поточній версії GNOME." #: src/exm-install-button.c:115 msgid "Install" msgstr "Встановити" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "Встановлено" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "Використовувати розширення" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "Розширення можуть спричиняти проблеми з швидкодією і стабільністю." #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "Встановленні користувачем розширення" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "Системні розширення" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "Доступні оновлення" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "Вийти" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "%d розширення буде оновлено при наступному вході в систему." msgstr[1] "%d розширення буде оновлено при наступному вході в систему." msgstr[2] "%d розширень буде оновлено при наступному вході в систему." #: src/exm-installed-page.c:340 msgid "Browse" msgstr "Шукати" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "Немає встановлених користувачем розширень." #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "Немає встановлених системних розширень." #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "Помічник оновлень" #: src/exm-upgrade-assistant.blp:47 msgid "_Check Compatibility" msgstr "_Перевірити сумісність" #: src/exm-upgrade-assistant.c:176 #, fuzzy, c-format #| msgid "Checked %d/%d extensions" msgid "Checked %d/%d Extensions" msgstr "Перевірено %d із %d розширень" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "%d%% сумісно" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" "GNOME %s підтримує %d із %d розширень які встановлені на вашій " "системі." #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "Підтримується" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "Сумісна версія цього розширення існує." #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "Немає сумісної версії цього розширення." #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "Невідомо" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" "Це розширення немає у extensions.gnome.org, тому перевірити сумісність " "неможливо." #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" "Зараз ви використовуєте GNOME %s. Оберіть версію GNOME та перевірте, " "чи будуть ваші розширення продовжувати бути доступні." #: src/exm-window.blp:42 msgid "Main Menu" msgstr "Головне меню" #: src/exm-window.blp:55 msgctxt "Navigation" msgid "_Installed" msgstr "_Встановлені" #: src/exm-window.blp:64 msgctxt "Navigation" msgid "_Browse" msgstr "_Шукати" #: src/exm-window.blp:102 #, fuzzy #| msgid "Sort Enabled First" msgid "Sort _Enabled First" msgstr "Спочатку сортувати ввімкнені розширення" #: src/exm-window.blp:103 #, fuzzy #| msgid "Show Unsupported" msgid "_Show Unsupported" msgstr "Показувати не підтримувані розширення" #: src/exm-window.blp:106 #, fuzzy #| msgid "Upgrade Assistant" msgid "_Upgrade Assistant" msgstr "Помічник оновлень" #: src/exm-window.blp:107 #, fuzzy #| msgid "About Extension Manager" msgid "_About Extension Manager" msgstr "Про Менеджер розширень" #: src/exm-window.c:179 msgid "Uninstall Extension?" msgstr "Видалити розширення?" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" "Функції та можливості розширення більше не будуть доступні. Ви впевнені, що " "хочете видалити?" #: src/exm-window.c:183 msgid "_No" msgstr "_Ні" #: src/exm-window.c:184 msgid "_Yes" msgstr "_Так" #: src/exm-window.c:253 msgid "Unsupported Extension" msgstr "Непідтримуване розширення" #: src/exm-window.c:254 msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "Це розширення не підтримує вашу версію стільниці GNOME. Воно може викликати " "проблеми, якщо встановити." #: src/exm-window.c:257 msgid "_Install Anyway" msgstr "_Все одно встановити" #: src/exm-window.c:258 msgid "_Go Back" msgstr "_Повернутися" #: src/exm-window.c:365 msgid "An error occurred." msgstr "Сталася помилка." #: src/exm-window.c:366 msgid "Details" msgstr "Подробиці" #~ msgid "Loading…" #~ msgstr "Завантаження…" #~ msgid "@app_title@" #~ msgstr "@app_title@" #~ msgid "HOTFIX: Fix broken 'recent' and 'popularity' search filters" #~ msgstr "" #~ "Виправлення: виправлено зламані 'За датою оновлення' та 'За популярністю' " #~ "фільтри пошуку" #~ msgid "Various stability and correctness fixes" #~ msgstr "Різні покращення та виправлення" #~ msgid "Translation updates" #~ msgstr "Оновлено переклади" #~ msgid "Upgrade Assistant scroll fix" #~ msgstr "Виправлення для прокрутки у Помічнику оновлень" #~ msgid "Pixel perfect app icon" #~ msgstr "Піксель-перфект піктограма для додатку" #~ msgid "Official snap support" #~ msgstr "Офіційна підтримка для snap пакунків" #~ msgid "Improved error log generation" #~ msgstr "Покращено генерацію журналу помилок" #~ msgid "Fully adaptive mobile-friendly user interface" #~ msgstr "Повністю адаптивний, сумісний з мобільними пристроями, інтерфейс" #~ msgid "Paginated search results" #~ msgstr "Результати пошуку у вигляді сторінок" #~ msgid "Upgrade Assistant for checking extension compatibility" #~ msgstr "Помічник оновлень, щоб перевіряти сумісність розширень" #~ msgid "Unsupported extensions are hidden by default" #~ msgstr "Не підтримувані розширення сховані за замовченням" #~ msgid "Overhauled error and crash reporting" #~ msgstr "Покращено вікно звітування про вади і збої" #~ msgid "Full-screen image viewer" #~ msgstr "Повноекранний перегляд зображень" #~ msgid "Handles new gnome-extensions:// URI scheme" #~ msgstr "Підтримує нову gnome-extensions:// URI схему" #~ msgid "Randomised extension suggestions" #~ msgstr "Випадкові пропозиції для розширень" #~ msgid "Performance and stability" #~ msgstr "Швидкодія та стабільність" #~ msgid "Various bug fixes" #~ msgstr "Невеликі виправлення помилок" #~ msgid "Remove release notes dialog" #~ msgstr "Видалено вікно з списком змін оновлень" #~ msgid "Fix special characters in installed extension listings" #~ msgstr "" #~ "Виправлено проблеми пов'язані з спеціальними символами у списках розширень" #~ msgid "The second feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Друге оновлення для Менеджера розширень, яке додає новий функціонал. Що " #~ "нового:" #~ msgid "View comments and reviews" #~ msgstr "Перегляд коментарів та відгуків" #~ msgid "Support for in-app updates" #~ msgstr "Підтримка оновлень всередині додатку" #~ msgid "Better handling errors and out-of-date extensions" #~ msgstr "Краще обробка помилок і застарілих розширень" #~ msgid "Allow installing 'unsupported' extensions" #~ msgstr "Дозволено встановлювати \"не підтримувані\" розширення" #~ msgid "Display release notes on first run" #~ msgstr "Показує список змін релізу при запускую" #~ msgid "New app icon" #~ msgstr "Нова піктограма додатку" #~ msgid "Optionally sort extensions by enabled status" #~ msgstr "Сортування розширень за статусом вімк/вимк" #~ msgid "Fix special characters in search results" #~ msgstr "" #~ "Виправлено проблеми пов'язані з особливими символами у результатах пошуку" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "Виправлено збій, який іноді стається при видаленні розширення" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Перше оновлення для Менеджера розширень, яке додає новий функціонал. Що " #~ "нового:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "Темний стиль/тема та підтримка заміни системної схеми кольорів" #~ msgid "Shows screenshots in extension listings" #~ msgstr "Показує скриншоти у списку розширень" #~ msgid "Shell version compatibility check" #~ msgstr "Перевірка сумісності версій розширень з стільницею GNOME" #~ msgid "Localised into seven languages" #~ msgstr "Перекладено на декілька мов" #~ msgid "Sort search results" #~ msgstr "Сортування результатів пошуку" #~ msgid "Global extension on/off toggle" #~ msgstr "Глобальне вимкнення/ввімкнення усіх розширень" #~ msgid "Displays user and system extensions separately" #~ msgstr "Показувати розширення користувача та системи окремо" #~ msgid "Extension Manager (Development)" #~ msgstr "Менеджер розширень (Розробка)" #~ msgid "Popularity" #~ msgstr "За популярністю" #~ msgid "Supported Versions" #~ msgstr "Підтримувані версії" #~ msgctxt "Navigation" #~ msgid "Browse" #~ msgstr "Шукати" #~ msgid "Are you sure you want to uninstall?" #~ msgstr "Ви впевнені, що бажаєте видалити це розширення?" #~ msgid "Theme" #~ msgstr "Стиль" #~ msgid "Follow System" #~ msgstr "Використовувати стиль системи" #~ msgid "Light" #~ msgstr "Світлий стиль" #~ msgid "Dark" #~ msgstr "Темний стиль" extension-manager-0.5.0/po/vi_VN.po000066400000000000000000000443531457631363100171610ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2023-11-09 22:59+0700\n" "Last-Translator: \n" "Language-Team: \n" "Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 3.4\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "Trình quản lý tiện ích mở rộng" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 msgid "Manage GNOME Shell Extensions" msgstr "Quản lý Tiện ích Mở rộng Gnome Shell" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 #, fuzzy #| msgid "extension;manager;" msgid "extension;manager;shell;" msgstr "extension;manager;" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "Duyệt, Cài đặt và Quản lý Tiện ích Mở rộng Gnome Shell" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "Một tiện ích để duyệt và cài đặt Tiện ích Mở rộng Gnome Shell." #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "Tính năng:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "Duyệt extensions.gnome.org ngay bên trong ứng dụng" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "Quản lý các tiện ích mở rộng bạn đã cài đặt" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "Một tiện ích để quản lý Tiện ích Mở rộng Gnome Shell" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "Duyệt, Cài đặt và Quản lý Tiện ích Mở rộng Gnome Shell." #: src/exm-application.c:177 msgid "translator-credits" msgstr "dịch thuật-tín dụng" #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "Tìm kiếm tiện ích mở rộng" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "" "Nhập từ khóa để tìm kiếm 'extensions.gnome.org' cho Tiện ích mở rộng Gnome " "Shell." #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "Liên quan" #: src/exm-browse-page.blp:31 #, fuzzy #| msgid "Downloads" msgctxt "Sort search results" msgid "Downloads" msgstr "Tải xuống" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "Gần đây" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "Tên" #: src/exm-browse-page.blp:61 msgid "_Load More Results" msgstr "_Tải thêm kết quả" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "Không có kết quả nào được tìm thấy" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "ví dụ. \"%s\"" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "Bình luận" #: src/exm-comment-dialog.blp:37 #, fuzzy #| msgid "Comments" msgid "Loading Comments" msgstr "Bình luận" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "Đã xảy ra lỗi" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "Phóng to" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "Thu nhỏ" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "Quay lại xem" #: src/exm-detail-view.blp:106 #, fuzzy #| msgid "Details" msgid "Loading Details" msgstr "Chi tiết" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "Phóng to hình ảnh" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "Miêu tả" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "" #: src/exm-detail-view.blp:232 msgid "Homepage" msgstr "" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "Xem trên Tiện ích mở rộng" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "Đánh giá của người dùng" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "Không có bình luận nào." #: src/exm-detail-view.blp:319 msgid "_Show All Reviews" msgstr "_Hiển thị tất cả đánh giá" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "Báo cáo lỗi" #: src/exm-error-dialog.blp:29 msgid "An unexpected error occurred in Extension Manager." msgstr "Đã xảy ra lỗi không mong muốn trong Trình quản lý tiện ích mở rộng." #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 msgid "_Copy to Clipboard" msgstr "_Sao chép vào clipboard" #: src/exm-error-dialog.blp:64 msgid "_New Issue" msgstr "_Vấn đề mới" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "Đã sao chép" #: src/exm-error-dialog.c:179 msgid "Please open a new issue and attach the following information:" msgstr "Vui lòng mở một vấn đề mới và đính kèm các thông tin sau:" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" "Bạn đang sử dụng bản dựng Trình quản lý tiện ích mở rộng của bên thứ ba. Vui " "lòng liên hệ với nhà phân phối gói (%s) trước " "khi nộp đơn phát hành. Hãy chắc chắn đính kèm các thông tin sau:" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "Mở tùy chọn tiện ích mở rộng" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "Đã xảy ra lỗi khi tải tiện ích mở rộng này" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "" "Tiện ích mở rộng này không tương thích với phiên bản GNOME hiện tại của bạn" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "Đã có phiên bản mới hơn của tiện ích mở rộng này" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "Phiên bản" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "Lỗi" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "Xem chi tiết" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "Gỡ bỏ" #: src/exm-info-bar.blp:13 #, fuzzy #| msgid "Downloads" msgctxt "Number of downloads" msgid "Downloads" msgstr "Tải xuống" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "Không được hỗ trợ" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "" "Tiện ích mở rộng này không tương thích với phiên bản Gnome hiện tại của bạn." #: src/exm-install-button.c:115 msgid "Install" msgstr "Cài đặt" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "Đã cài đặt" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "Sử dụng tiện ích mở rộng" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "Tiện ích mở rộng có thể gây ra vấn đề về hiệu suất và độ ổn định." #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "Tiện ích mở rộng do người dùng cài đặt" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "Tiện ích mở rộng hệ thống" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "Cập nhật có sẵn" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "Đăng xuất" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "Một tiện ích mở rộng sẽ được cập nhật vào lần đăng nhập tiếp theo." msgstr[1] "%d tiện ích mở rộng sẽ được cập nhật vào lần đăng nhập tiếp theo." #: src/exm-installed-page.c:340 msgid "Browse" msgstr "Duyệt qua" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "Không có tiện ích mở rộng người dùng nào được cài đặt." #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "Không có phần mở rộng hệ thống nào được cài đặt." #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "Trợ lý Nâng cấp" #: src/exm-upgrade-assistant.blp:47 msgid "_Check Compatibility" msgstr "_Kiểm tra tính tương thích" #: src/exm-upgrade-assistant.c:176 #, fuzzy, c-format #| msgid "Checked %d/%d extensions" msgid "Checked %d/%d Extensions" msgstr "Đã kiểm tra %d/%d tiện ích mở rộng" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "%d%% Tương thích" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" "GNOME %s hỗ trợ %d trong số %d tiện ích mở rộng hiện được cài " "đặt trên hệ thống." #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "Được hỗ trợ" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "Đã tồn tại phiên bản tương thích của tiện ích mở rộng." #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "Không có phiên bản tương thích của tiện ích mở rộng tồn tại." #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "Không biết" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "" "Tiện ích mở rộng này không được lưu trữ trên extensions.gnome.org. Khả năng " "tương thích của nó không thể được xác định." #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" "Bạn hiện đang chạy GNOME %s. Chọn một phiên bản GNOME bên dưới và " "kiểm tra xem các tiện ích mở rộng của bạn có tiếp tục khả dụng hay không." #: src/exm-window.blp:42 msgid "Main Menu" msgstr "Menu chính" #: src/exm-window.blp:55 msgctxt "Navigation" msgid "_Installed" msgstr "_Đã Cài đặt" #: src/exm-window.blp:64 msgctxt "Navigation" msgid "_Browse" msgstr "_Duyệt" #: src/exm-window.blp:102 #, fuzzy #| msgid "Sort Enabled First" msgid "Sort _Enabled First" msgstr "Sắp xếp Đã bật trước" #: src/exm-window.blp:103 #, fuzzy #| msgid "Show Unsupported" msgid "_Show Unsupported" msgstr "Hiển thị Không hỗ trợ" #: src/exm-window.blp:106 #, fuzzy #| msgid "Upgrade Assistant" msgid "_Upgrade Assistant" msgstr "Trợ lý Nâng cấp" #: src/exm-window.blp:107 #, fuzzy #| msgid "About Extension Manager" msgid "_About Extension Manager" msgstr "Về Trình quản lý tiện ích mở rộng" #: src/exm-window.c:179 msgid "Uninstall Extension?" msgstr "Gỡ cài đặt tiện ích mở rộng?" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" "Các tính năng và chức năng của tiện ích mở rộng sẽ không thể truy cập được " "nữa. Bạn có chắc chắn muốn gỡ cài đặt không?" #: src/exm-window.c:183 msgid "_No" msgstr "_Không" #: src/exm-window.c:184 msgid "_Yes" msgstr "_Có" #: src/exm-window.c:253 msgid "Unsupported Extension" msgstr "Tiện ích mở rộng không được hỗ trợ" #: src/exm-window.c:254 msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "Tiện ích mở rộng này không hỗ trợ phiên bản GNOME Shell của bạn. Nó có thể " "gây ra lỗi nếu cài đặt." #: src/exm-window.c:257 msgid "_Install Anyway" msgstr "_Vẫn cài đặt" #: src/exm-window.c:258 msgid "_Go Back" msgstr "_Quay lại" #: src/exm-window.c:365 msgid "An error occurred." msgstr "Đã xảy ra lỗi." #: src/exm-window.c:366 msgid "Details" msgstr "Chi tiết" #~ msgid "Loading…" #~ msgstr "Đang tải…" #~ msgid "@app_title@" #~ msgstr "@app_title@" #~ msgid "Translation updates" #~ msgstr "Cập nhật bản dịch" #~ msgid "Upgrade Assistant scroll fix" #~ msgstr "Sửa lỗi cuộn Trợ lý Nâng cấp" #~ msgid "Pixel perfect app icon" #~ msgstr "Biểu tượng ứng dụng hoàn hảo Pixel" #~ msgid "Official snap support" #~ msgstr "Hỗ trợ chụp nhanh chính thức" #~ msgid "Improved error log generation" #~ msgstr "Cải thiện việc tạo nhật ký lỗi" #~ msgid "Fully adaptive mobile-friendly user interface" #~ msgstr "" #~ "Giao diện người dùng thân thiện với thiết bị di động hoàn toàn thích ứng" #~ msgid "Paginated search results" #~ msgstr "Kết quả tìm kiếm được phân trang" #~ msgid "Upgrade Assistant for checking extension compatibility" #~ msgstr "" #~ "Trợ lý Nâng cấp để kiểm tra khả năng tương thích của tiện ích mở rộng" #~ msgid "Unsupported extensions are hidden by default" #~ msgstr "Các tiện ích mở rộng không được hỗ trợ sẽ bị ẩn theo mặc định" #~ msgid "Overhauled error and crash reporting" #~ msgstr "Báo cáo lỗi và sự cố đã được đại tu" #~ msgid "Full-screen image viewer" #~ msgstr "Trình xem ảnh toàn màn hình" #~ msgid "Handles new gnome-extensions:// URI scheme" #~ msgstr "Xử lý lược đồ URI gnome-extensions:// mới" #~ msgid "Randomised extension suggestions" #~ msgstr "Đề xuất tiện ích mở rộng ngẫu nhiên" #~ msgid "Performance and stability" #~ msgstr "Hiệu suất và sự ổn định" #~ msgid "Various bug fixes" #~ msgstr "Sửa lỗi khác nhau" #~ msgid "Remove release notes dialog" #~ msgstr "Hộp thoại Xóa ghi chú phát hành" #~ msgid "Fix special characters in installed extension listings" #~ msgstr "Sửa các ký tự đặc biệt trong danh sách tiện ích mở rộng đã cài đặt" #~ msgid "The second feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Bản cập nhật tính năng thứ hai cho trình quản lý tiện ích mở rộng. Những " #~ "điểm nổi bật bao gồm:" #~ msgid "View comments and reviews" #~ msgstr "Xem nhận xét và đánh giá" #~ msgid "Support for in-app updates" #~ msgstr "Hỗ trợ cập nhật trong ứng dụng" #~ msgid "Better handling errors and out-of-date extensions" #~ msgstr "Xử lý tốt hơn các lỗi và tiện ích mở rộng lỗi thời" #~ msgid "Allow installing 'unsupported' extensions" #~ msgstr "Cho phép cài đặt các tiện ích mở rộng 'không được hỗ trợ'" #~ msgid "Display release notes on first run" #~ msgstr "Hiển thị ghi chú phát hành trong lần chạy đầu tiên" #~ msgid "New app icon" #~ msgstr "Biểu tượng ứng dụng mới" #~ msgid "Optionally sort extensions by enabled status" #~ msgstr "Tùy chọn sắp xếp các tiện ích mở rộng theo trạng thái đã bật" #~ msgid "Fix special characters in search results" #~ msgstr "Sửa các ký tự đặc biệt trong kết quả tìm kiếm" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "Khắc phục sự cố đôi khi xảy ra khi gỡ cài đặt tiện ích mở rộng" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "" #~ "Bản cập nhật tính năng đầu tiên cho trình quản lý tiện ích mở rộng. Điểm " #~ "nổi bật bao gồm:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "Chủ đề tối và hỗ trợ ghi đè bảng màu hệ thống" #~ msgid "Shows screenshots in extension listings" #~ msgstr "Hiển thị ảnh chụp màn hình trong danh sách tiện ích mở rộng" #~ msgid "Shell version compatibility check" #~ msgstr "Kiểm tra tính tương thích của phiên bản Shell" #~ msgid "Localised into seven languages" #~ msgstr "Bản địa hóa thành bảy ngôn ngữ" #~ msgid "Sort search results" #~ msgstr "Sắp xếp kết quả tìm kiếm" #~ msgid "Global extension on/off toggle" #~ msgstr "Bật/tắt tiện ích mở rộng toàn cầu" #~ msgid "Displays user and system extensions separately" #~ msgstr "Hiển thị riêng phần mở rộng của người dùng và hệ thống" #~ msgid "Popularity" #~ msgstr "Phổ biến" #~ msgid "Supported Versions" #~ msgstr "Phiên bản được hỗ trợ" #~ msgid "Extension Manager (Development)" #~ msgstr "Trình quản lý tiện ích mở rộng (Phát triển)" extension-manager-0.5.0/po/zh_CN.po000066400000000000000000000350771457631363100171440ustar00rootroot00000000000000# Chinese(China) translations for extension-manager package. # Copyright (C) 2022 extension-manager'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # Luke Luo , 2022. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2024-03-18 06:23+0000\n" "Last-Translator: CloneWith \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 5.5-dev\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "扩展管理器" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 msgid "Manage GNOME Shell Extensions" msgstr "管理 GNOME Shell 扩展" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 msgid "extension;manager;shell;" msgstr "扩展;管理器;shell;" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "浏览、安装并管理 GNOME Shell 扩展" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "一款浏览和安装 GNOME 扩展的实用程序。" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "功能:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "在应用中浏览 extensions.gnome.org" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "管理您已经安装的扩展" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "一款管理 GNOME Shell 扩展的使用程序" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "浏览、安装和管理 GNOME Shell 扩展。" #: src/exm-application.c:177 msgid "translator-credits" msgstr "Luke Luo " #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "搜索扩展" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "请输入关键字,以便在 “extensions.gnome.org” 中搜索 GNOME 扩展。" #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "相关性" #: src/exm-browse-page.blp:31 msgctxt "Sort search results" msgid "Downloads" msgstr "下载量" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "最近" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "名称" #: src/exm-browse-page.blp:61 msgid "_Load More Results" msgstr "载入更多结果 (_L)" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "没有找到结果" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "例如,“%s”" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "留言" #: src/exm-comment-dialog.blp:37 msgid "Loading Comments" msgstr "加载评论中" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "发生了一个错误" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "作者" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "放大" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "缩小" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "返回查看" #: src/exm-detail-view.blp:106 msgid "Loading Details" msgstr "加载详情中" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "放大图片" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "描述" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "链接" #: src/exm-detail-view.blp:232 msgid "Homepage" msgstr "主页" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "在 Extensions 网站中查看" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "用户评论" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "没有评论。" #: src/exm-detail-view.blp:319 msgid "_Show All Reviews" msgstr "显示所有评论 (_S)" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "错误报告" #: src/exm-error-dialog.blp:29 msgid "An unexpected error occurred in Extension Manager." msgstr "扩展管理器发生了意外错误。" #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 msgid "_Copy to Clipboard" msgstr "复制到剪贴板 (_C)" #: src/exm-error-dialog.blp:64 msgid "_New Issue" msgstr "新建 Issue (_N)" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "已复制" #: src/exm-error-dialog.c:179 msgid "Please open a new issue and attach the following information:" msgstr "请开启一个新 Issue 并附加以下信息:" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" "您在使用扩展管理器的第三方版本。在发布 Issue 前,请先联系软件包分发者 (%s)。确保带有以下信息:" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "打开扩展属性" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "加载此扩展时发生了一个错误" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "此扩展不兼容您目前的 GNOME 版本" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "此扩展有新版本可用" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "版本" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "错误" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "显示细节" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "移除" #: src/exm-info-bar.blp:13 msgctxt "Number of downloads" msgid "Downloads" msgstr "下载量" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "不受支持" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "此扩展不兼容您当前 GNOME 版本。" #: src/exm-install-button.c:115 msgid "Install" msgstr "安装" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "已安装" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "使用扩展" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "扩展可能会导致出现性能和稳定性问题。" #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "用户安装的扩展" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "系统扩展" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "有可用更新" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "注销" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "%d 个扩展将在下次登录时更新。" #: src/exm-installed-page.c:340 msgid "Browse" msgstr "浏览" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "没有已安装的用户扩展。" #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "没有已安装的系统扩展。" #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "更新助理" #: src/exm-upgrade-assistant.blp:47 msgid "_Check Compatibility" msgstr "检查兼容性 (_C)" #: src/exm-upgrade-assistant.c:176 #, c-format msgid "Checked %d/%d Extensions" msgstr "已检查 %d/%d 扩展" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "%d%% 兼容" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "GNOME %s 支持的本机扩展数量:%d,一共为 %d 个。" #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "已支持" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "此扩展现存的兼容版本。" #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "此扩展没有现存的兼容版本。" #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "未知" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "此扩展没有在 extensions.gnome.org 上托管,因此无法确定其兼容性。" #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" "您正在运行GNOME %s。请在下面选择一个 GNOME 版本,并检查您的扩展是否将" "继续可用。" #: src/exm-window.blp:42 msgid "Main Menu" msgstr "主菜单" #: src/exm-window.blp:55 msgctxt "Navigation" msgid "_Installed" msgstr "已安装 (_I)" #: src/exm-window.blp:64 msgctxt "Navigation" msgid "_Browse" msgstr "浏览 (_B)" #: src/exm-window.blp:102 msgid "Sort _Enabled First" msgstr "优先显示已启用扩展 (_E)" #: src/exm-window.blp:103 msgid "_Show Unsupported" msgstr "显示不支持的扩展 (_S)" #: src/exm-window.blp:106 msgid "_Upgrade Assistant" msgstr "更新助理 (_U)" #: src/exm-window.blp:107 msgid "_About Extension Manager" msgstr "关于扩展管理器 (_A)" #: src/exm-window.c:179 msgid "Uninstall Extension?" msgstr "卸载扩展吗?" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "您将无法再使用此扩展的特性与功能。确定要卸载吗?" #: src/exm-window.c:183 msgid "_No" msgstr "否 (_N)" #: src/exm-window.c:184 msgid "_Yes" msgstr "是 (_Y)" #: src/exm-window.c:253 msgid "Unsupported Extension" msgstr "不受支持的扩展" #: src/exm-window.c:254 msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "此扩展不支持您目前的 GNOME Shell 版本。安装后可能导致错误。" #: src/exm-window.c:257 msgid "_Install Anyway" msgstr "依然安装 (_I)" #: src/exm-window.c:258 msgid "_Go Back" msgstr "返回 (_G)" #: src/exm-window.c:365 msgid "An error occurred." msgstr "发生了一个错误。" #: src/exm-window.c:366 msgid "Details" msgstr "细节" #~ msgid "Loading…" #~ msgstr "正在加载…" #~ msgid "@app_title@" #~ msgstr "@app_title@" #~ msgid "Translation updates" #~ msgstr "翻译更新" #~ msgid "Various bug fixes" #~ msgstr "各种错误修复" #~ msgid "Performance and stability" #~ msgstr "性能和稳定性" #~ msgid "Remove release notes dialog" #~ msgstr "移除发行说明对话框" #~ msgid "Fix special characters in installed extension listings" #~ msgstr "修复已安装扩展列表中的特殊字符" #~ msgid "The second feature update to extension-manager. Highlights include:" #~ msgstr "扩展管理器的第二次功能更新。包括以下亮点:" #~ msgid "View comments and reviews" #~ msgstr "显示留言和评论" #~ msgid "Support for in-app updates" #~ msgstr "支持应用内更新" #~ msgid "Better handling errors and out-of-date extensions" #~ msgstr "更好的处理错误和过时扩展" #~ msgid "Allow installing 'unsupported' extensions" #~ msgstr "允许安装“不支持”的扩展" #~ msgid "Display release notes on first run" #~ msgstr "第一次运行时显示发行说明" #~ msgid "New app icon" #~ msgstr "新的应用图标" #~ msgid "Optionally sort extensions by enabled status" #~ msgstr "根据扩展的启用状态进行排序" #~ msgid "Fix special characters in search results" #~ msgstr "修复搜索结果中的特殊字符" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "修复了卸载扩展程序时有时发生的崩溃" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "扩展管理器的第一次功能更新。包括以下亮点:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "深色主题和支持覆盖系统配色方案" #~ msgid "Shows screenshots in extension listings" #~ msgstr "显示扩展列表中的屏幕截图" #~ msgid "Shell version compatibility check" #~ msgstr "Shell 版本兼容性检查" #~ msgid "Localised into seven languages" #~ msgstr "翻译成七种语言" #~ msgid "Sort search results" #~ msgstr "排序搜索结果" #~ msgid "Global extension on/off toggle" #~ msgstr "全局扩展开关" #~ msgid "Displays user and system extensions separately" #~ msgstr "分别显示用户和系统扩展" #~ msgid "Extension Manager (Development)" #~ msgstr "扩展管理器(开发)" #~ msgid "Popularity" #~ msgstr "热度" #~ msgid "Supported Versions" #~ msgstr "支持的版本" #~ msgctxt "Navigation" #~ msgid "Browse" #~ msgstr "浏览" #~ msgid "Theme" #~ msgstr "主题" #~ msgid "Follow System" #~ msgstr "跟随系统" #~ msgid "Light" #~ msgstr "浅色" #~ msgid "Dark" #~ msgstr "深色" #~ msgid "Are you sure you want to uninstall?" #~ msgstr "您确定要卸载吗?" extension-manager-0.5.0/po/zh_TW.po000066400000000000000000000406341457631363100171710ustar00rootroot00000000000000# Chinese(Taiwan) translations for extension-manager package. # Copyright (C) 2022 extension-manager'S COPYRIGHT HOLDER # This file is distributed under the same license as the extension-manager package. # Oliver Tzeng(曾嘉禾), 2022. # msgid "" msgstr "" "Project-Id-Version: extension-manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-11 11:11+0100\n" "PO-Revision-Date: 2022-10-08 00:16+0800\n" "Last-Translator: Sean Wang \n" "Language-Team: none\n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 3.1.1\n" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:3 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:6 #: src/exm-window.blp:9 msgid "Extension Manager" msgstr "擴充套件管理員" #: data/com.mattjakeman.ExtensionManager.desktop.in.in:11 #, fuzzy #| msgid "A utility for managing GNOME Shell Extensions" msgid "Manage GNOME Shell Extensions" msgstr "一個用來管理 GNOME Shell 擴充套件的工具程式" #. Translators: Do not translate #: data/com.mattjakeman.ExtensionManager.desktop.in.in:13 #, fuzzy #| msgid "Extension Manager" msgid "extension;manager;shell;" msgstr "擴充套件管理員" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:7 #, fuzzy #| msgid "Browse, install, and manage GNOME Shell Extensions." msgid "Browse, install, and manage GNOME Shell Extensions" msgstr "瀏覽、安裝和管理 GNOME Shell 擴充套件。" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:13 msgid "A utility for browsing and installing GNOME Shell Extensions." msgstr "一個用來搜尋及安裝 GNOME Shell 擴充套件的工具程式。" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:14 msgid "Features:" msgstr "功能:" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:16 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:26 msgid "Browse extensions.gnome.org right inside the app" msgstr "在應用程式內瀏覽 extensions.gnome.org" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:17 #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:30 msgid "Manage the extensions you already have installed" msgstr "管理已安裝的擴充套件" #: data/com.mattjakeman.ExtensionManager.metainfo.xml.in.in:22 msgid "A utility for managing GNOME Shell Extensions" msgstr "一個用來管理 GNOME Shell 擴充套件的工具程式" #: src/exm-application.c:175 msgid "Browse, install, and manage GNOME Shell Extensions." msgstr "瀏覽、安裝和管理 GNOME Shell 擴充套件。" #: src/exm-application.c:177 msgid "translator-credits" msgstr "" "Sean Wang \n" "Oliver Tzeng(曾嘉禾) " #: src/exm-browse-page.blp:9 msgid "Search for extensions" msgstr "搜尋擴充套件" #: src/exm-browse-page.blp:10 msgid "" "Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions." msgstr "輸入關鍵字以在 extensions.gnome.org 搜尋 GNOME Shell 擴充套件。" #. Translators: dropdown items for sorting search results #: src/exm-browse-page.blp:31 msgid "Relevance" msgstr "" #: src/exm-browse-page.blp:31 #, fuzzy #| msgid "Downloads" msgctxt "Sort search results" msgid "Downloads" msgstr "下載次數" #: src/exm-browse-page.blp:31 msgid "Recent" msgstr "最近" #: src/exm-browse-page.blp:31 msgid "Name" msgstr "名稱" #: src/exm-browse-page.blp:61 #, fuzzy #| msgid "Load More Results" msgid "_Load More Results" msgstr "載入更多搜尋結果" #: src/exm-browse-page.blp:73 msgid "No Results Found" msgstr "無搜尋結果" #. Translators: #. - '%s' is an extension e.g. Blur my Shell #. - Please use unicode quotation marks e.g. “” (not "") #: src/exm-browse-page.c:299 #, c-format msgid "e.g. “%s”" msgstr "例如「%s」" #: src/exm-comment-dialog.blp:9 msgid "Comments" msgstr "評論" #: src/exm-comment-dialog.blp:37 #, fuzzy #| msgid "Comments" msgid "Loading Comments" msgstr "評論" #: src/exm-comment-dialog.blp:47 src/exm-detail-view.blp:115 #: src/exm-detail-view.blp:290 msgid "An Error Occurred" msgstr "發生錯誤" #: src/exm-comment-tile.blp:21 msgid "Author" msgstr "" #: src/exm-detail-view.blp:54 msgid "Zoom In" msgstr "放大" #: src/exm-detail-view.blp:63 msgid "Zoom Out" msgstr "縮小" #: src/exm-detail-view.blp:73 msgid "Return to view" msgstr "返回至檢視畫面" #: src/exm-detail-view.blp:106 #, fuzzy #| msgid "Details" msgid "Loading Details" msgstr "詳細資訊" #: src/exm-detail-view.blp:184 msgid "Enlarge image" msgstr "放大圖片" #: src/exm-detail-view.blp:196 src/exm-extension-row.blp:89 msgid "Description" msgstr "描述" #: src/exm-detail-view.blp:217 msgid "Links" msgstr "" #: src/exm-detail-view.blp:232 #, fuzzy #| msgid "Project Homepage" msgid "Homepage" msgstr "專案首頁" #: src/exm-detail-view.blp:249 msgid "View on Extensions" msgstr "在 Extensions 上查看" #: src/exm-detail-view.blp:268 msgid "User Reviews" msgstr "評論" #: src/exm-detail-view.blp:299 msgid "There are no comments." msgstr "" #: src/exm-detail-view.blp:319 #, fuzzy #| msgid "Show All Reviews" msgid "_Show All Reviews" msgstr "顯示所有評論" #: src/exm-error-dialog.blp:7 msgid "Error Report" msgstr "錯誤回報" #: src/exm-error-dialog.blp:29 #, fuzzy #| msgid "" #| "An unexpected error occurred in Extension Manager. Please open a new " #| "issue and attach the following information:" msgid "An unexpected error occurred in Extension Manager." msgstr "發生非預期的錯誤。請開啟一個新問題並附上以下資訊:" #: src/exm-error-dialog.blp:56 src/exm-upgrade-assistant.blp:129 #, fuzzy #| msgid "Copy to Clipboard" msgid "_Copy to Clipboard" msgstr "複製到剪貼簿" #: src/exm-error-dialog.blp:64 #, fuzzy #| msgid "New Issue" msgid "_New Issue" msgstr "新問題" #. Success indicator #: src/exm-error-dialog.c:129 src/exm-upgrade-assistant.c:338 msgid "Copied" msgstr "已複製" #: src/exm-error-dialog.c:179 #, fuzzy #| msgid "" #| "An unexpected error occurred in Extension Manager. Please open a new " #| "issue and attach the following information:" msgid "Please open a new issue and attach the following information:" msgstr "發生非預期的錯誤。請開啟一個新問題並附上以下資訊:" #. Translators: '%s' = Name of Distributor (e.g. "Packager123") #: src/exm-error-dialog.c:183 #, c-format msgid "" "You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before " "filing an issue. Be sure to attach the following information:" msgstr "" #: src/exm-extension-row.blp:26 msgid "Open extension preferences" msgstr "開啟擴充套件偏好設定" #: src/exm-extension-row.blp:42 msgid "An error occurred while loading this extension" msgstr "載入此擴充套件時發生錯誤" #: src/exm-extension-row.blp:58 msgid "This extension is incompatible with your current version of GNOME" msgstr "此擴充套件不支援您目前使用的 GNOME 版本" #: src/exm-extension-row.blp:74 msgid "A newer version of this extension is available" msgstr "此擴充套件有可用的新版本" #: src/exm-extension-row.blp:116 src/exm-info-bar.blp:18 msgid "Version" msgstr "版本" #: src/exm-extension-row.blp:142 msgid "Error" msgstr "錯誤" #: src/exm-extension-row.blp:181 msgid "See Details" msgstr "檢視詳細資訊" #: src/exm-extension-row.blp:190 msgid "Remove" msgstr "移除" #: src/exm-info-bar.blp:13 #, fuzzy #| msgid "Downloads" msgctxt "Number of downloads" msgid "Downloads" msgstr "下載次數" #: src/exm-info-bar.blp:19 src/exm-info-bar.c:81 src/exm-install-button.c:124 #: src/exm-upgrade-assistant.c:516 msgid "Unsupported" msgstr "不支援" #: src/exm-install-button.c:105 msgid "This extension is incompatible with your current version of GNOME." msgstr "此擴充套件不支援您目前使用的 GNOME 版本。" #: src/exm-install-button.c:115 msgid "Install" msgstr "安裝" #: src/exm-install-button.c:120 msgctxt "State" msgid "Installed" msgstr "已安裝" #: src/exm-installed-page.blp:33 msgid "Use Extensions" msgstr "使用擴充套件" #: src/exm-installed-page.blp:34 msgid "Extensions can cause performance and stability issues." msgstr "擴充套件可能造成效能和穩定性問題。" #: src/exm-installed-page.blp:42 src/exm-upgrade-assistant.blp:105 msgid "User-Installed Extensions" msgstr "使用者安裝的擴充套件" #: src/exm-installed-page.blp:55 src/exm-upgrade-assistant.blp:118 msgid "System Extensions" msgstr "系統擴充套件" #: src/exm-installed-page.blp:95 msgid "Updates are available" msgstr "有可用的更新" #: src/exm-installed-page.blp:112 msgid "Log Out" msgstr "登出" #. Translators: '%d' = number of extensions that will be updated #: src/exm-installed-page.c:224 #, c-format msgid "One extension will be updated on next login." msgid_plural "%d extensions will be updated on next login." msgstr[0] "%d 個擴充套件將會在下次登入時更新。" #: src/exm-installed-page.c:340 msgid "Browse" msgstr "瀏覽" #: src/exm-installed-page.c:351 src/exm-upgrade-assistant.c:680 msgid "There are no user extensions installed." msgstr "未安裝使用者擴充套件。" #: src/exm-installed-page.c:366 src/exm-upgrade-assistant.c:686 msgid "There are no system extensions installed." msgstr "未安裝系統擴充套件。" #: src/exm-upgrade-assistant.blp:7 msgid "Upgrade Assistant" msgstr "更新助理" #: src/exm-upgrade-assistant.blp:47 #, fuzzy #| msgid "Check Compatibility" msgid "_Check Compatibility" msgstr "檢測相容性" #: src/exm-upgrade-assistant.c:176 #, fuzzy, c-format #| msgid "Search for extensions" msgid "Checked %d/%d Extensions" msgstr "搜尋擴充套件" #. Set percentage text #: src/exm-upgrade-assistant.c:195 #, c-format msgid "%d%% Compatible" msgstr "" #: src/exm-upgrade-assistant.c:215 #, c-format msgid "" "GNOME %s supports %d out of %d of the extensions currently " "installed on the system." msgstr "" "GNOME %s 支援 %d 個安狀在此系統上的擴充套件 (共 %d 個)" #: src/exm-upgrade-assistant.c:512 msgid "Supported" msgstr "支援" #: src/exm-upgrade-assistant.c:514 msgid "A compatible version of the extension exists." msgstr "此擴充套件有相容的版本。" #: src/exm-upgrade-assistant.c:518 msgid "No compatible version of the extension exists." msgstr "此擴充套件無相容的版本。" #: src/exm-upgrade-assistant.c:520 msgid "Unknown" msgstr "未知" #: src/exm-upgrade-assistant.c:522 msgid "" "This extension is not hosted on extensions.gnome.org. Its compatibility " "cannot be determined." msgstr "此擴充套件並非來自 extensions.gnome.org。無法確認相容性。" #: src/exm-upgrade-assistant.c:617 #, c-format msgid "" "You are currently running GNOME %s. Select a version of GNOME below " "and check whether your extensions will continue to be available." msgstr "" "您正在執行 GNOME %s。於下方選擇一個 GNOME 版本即可檢測您的擴充套件是否" "會在該版本中繼續運作。" #: src/exm-window.blp:42 msgid "Main Menu" msgstr "" #: src/exm-window.blp:55 #, fuzzy #| msgctxt "Navigation" #| msgid "Installed" msgctxt "Navigation" msgid "_Installed" msgstr "已安裝" #: src/exm-window.blp:64 #, fuzzy #| msgid "Browse" msgctxt "Navigation" msgid "_Browse" msgstr "瀏覽" #: src/exm-window.blp:102 #, fuzzy #| msgid "Sort Enabled First" msgid "Sort _Enabled First" msgstr "啟用的擴充套件在前" #: src/exm-window.blp:103 #, fuzzy #| msgid "Show Unsupported" msgid "_Show Unsupported" msgstr "顯示不支援的擴充套件" #: src/exm-window.blp:106 #, fuzzy #| msgid "Upgrade Assistant" msgid "_Upgrade Assistant" msgstr "更新助理" #: src/exm-window.blp:107 #, fuzzy #| msgid "About Extension Manager" msgid "_About Extension Manager" msgstr "關於擴充套件管理員" #: src/exm-window.c:179 #, fuzzy #| msgid "User-Installed Extensions" msgid "Uninstall Extension?" msgstr "使用者安裝的擴充套件" #: src/exm-window.c:180 msgid "" "The extension's features and functionality will no longer be accessible. Are " "you sure you want to uninstall?" msgstr "" #: src/exm-window.c:183 msgid "_No" msgstr "" #: src/exm-window.c:184 msgid "_Yes" msgstr "" #: src/exm-window.c:253 #, fuzzy #| msgid "Use Extensions" msgid "Unsupported Extension" msgstr "使用擴充套件" #: src/exm-window.c:254 #, fuzzy #| msgid "" #| "This extension does not support your GNOME Shell version.\n" #| "Would you like to install anyway?" msgid "" "This extension does not support your GNOME Shell version. It may cause " "errors if installed." msgstr "" "此擴充套件不支援您的 GNOME Shell 版本。\n" "確定要繼續安裝?" #: src/exm-window.c:257 #, fuzzy #| msgid "Install" msgid "_Install Anyway" msgstr "安裝" #: src/exm-window.c:258 msgid "_Go Back" msgstr "" #: src/exm-window.c:365 msgid "An error occurred." msgstr "發生錯誤。" #: src/exm-window.c:366 msgid "Details" msgstr "詳細資訊" #~ msgid "Loading…" #~ msgstr "載入中…" #~ msgid "@app_title@" #~ msgstr "@app_title@" #~ msgid "Translation updates" #~ msgstr "翻譯更新" #~ msgid "Various bug fixes" #~ msgstr "錯誤修正" #~ msgid "Performance and stability" #~ msgstr "效能和穩定性" #~ msgid "Remove release notes dialog" #~ msgstr "移除更新日誌彈出視窗" #~ msgid "Fix special characters in installed extension listings" #~ msgstr "修正已安裝擴充套件列表中的特殊字元" #~ msgid "The second feature update to extension-manager. Highlights include:" #~ msgstr "第二個擴充套件管理員更新。值得注意的項目:" #~ msgid "View comments and reviews" #~ msgstr "檢視留言和評論" #~ msgid "Support for in-app updates" #~ msgstr "支援在應用程式內更新擴充套件" #~ msgid "Better handling errors and out-of-date extensions" #~ msgstr "更好地處理錯誤和老舊的擴充套件" #~ msgid "Allow installing 'unsupported' extensions" #~ msgstr "允許安裝不支援的擴充套件" #~ msgid "Display release notes on first run" #~ msgstr "首次開啟應用程式時顯示更新日誌" #~ msgid "New app icon" #~ msgstr "新的應用程式圖示" #~ msgid "Optionally sort extensions by enabled status" #~ msgstr "根據擴充套件的啟用狀態進行排序" #~ msgid "Fix special characters in search results" #~ msgstr "修正搜尋結果中的特殊字元" #~ msgid "Fixes a crash that sometimes occurs while uninstalling an extension" #~ msgstr "修正在解除安裝擴充套件時偶爾會發生的無預警關閉" #~ msgid "The first feature update to extension-manager. Highlights include:" #~ msgstr "第一個擴充套件管理員更新,值得注意的項目:" #~ msgid "Dark theme and support for overriding the system colour scheme" #~ msgstr "支援深色主題和強制覆寫系統配色" #~ msgid "Shows screenshots in extension listings" #~ msgstr "在擴充套件清單中顯示螢幕擷圖" #~ msgid "Shell version compatibility check" #~ msgstr "Shell 版本支援檢測" #~ msgid "Localised into seven languages" #~ msgstr "翻譯成 7 種語言" #~ msgid "Sort search results" #~ msgstr "排序搜尋結果" #~ msgid "Global extension on/off toggle" #~ msgstr "全域擴充套件開關" #~ msgid "Displays user and system extensions separately" #~ msgstr "分開顯示使用者和系統擴充套件" #~ msgid "Extension Manager (Development)" #~ msgstr "擴充套件管理員 (開發版)" #~ msgid "Popularity" #~ msgstr "熱門" #~ msgid "Supported Versions" #~ msgstr "支援版本" #~ msgctxt "Navigation" #~ msgid "Browse" #~ msgstr "瀏覽" #~ msgid "Theme" #~ msgstr "主題" #~ msgid "Follow System" #~ msgstr "系統" #~ msgid "Light" #~ msgstr "淺色" #~ msgid "Dark" #~ msgstr "深色" #~ msgid "Are you sure you want to uninstall?" #~ msgstr "您確定要解除安裝此擴充套件?" #~ msgid "" #~ "A very simple tool for browsing, downloading, and managing GNOME shell " #~ "extensions." #~ msgstr "一個可以瀏覽、下載和管理擴充套件的簡單應用程式。" #~ msgid "e.g. \"Blur my Shell\"" #~ msgstr "例如 \"Blur my Shell\"" #~ msgid "What's New" #~ msgstr "新功能" #~ msgid "View Release Notes" #~ msgstr "顯示更新日誌" #, c-format #~ msgid "" #~ "This is your first time using Extension Manager %s.\n" #~ "Would you like to see the release notes?" #~ msgstr "" #~ "這是您第一次使用 擴充套件管理員 %s。\n" #~ "是否顯示更新日誌?" extension-manager-0.5.0/src/000077500000000000000000000000001457631363100157405ustar00rootroot00000000000000extension-manager-0.5.0/src/exm-application.c000066400000000000000000000232221457631363100211770ustar00rootroot00000000000000/* exm-application.c * * Copyright 2022 Matthew Jakeman * * 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 "exm-config.h" #include "exm-application.h" #include "exm-window.h" #include "exm-utils.h" #include struct _ExmApplication { AdwApplication parent_instance; }; G_DEFINE_TYPE (ExmApplication, exm_application, ADW_TYPE_APPLICATION) ExmApplication * exm_application_new (gchar *application_id, GApplicationFlags flags) { return g_object_new (EXM_TYPE_APPLICATION, "application-id", application_id, "flags", flags, NULL); } static void exm_application_finalize (GObject *object) { ExmApplication *self = (ExmApplication *)object; G_OBJECT_CLASS (exm_application_parent_class)->finalize (object); } static ExmWindow * get_current_window (GApplication *app) { GtkWindow *window; GSettings *settings; /* Get the current window or create one if necessary. */ window = gtk_application_get_active_window (GTK_APPLICATION (app)); if (window == NULL) window = g_object_new (EXM_TYPE_WINDOW, "application", app, NULL); settings = g_settings_new (APP_ID); g_settings_bind (settings, "width", window, "default-width", G_SETTINGS_BIND_DEFAULT); g_settings_bind (settings, "height", window, "default-height", G_SETTINGS_BIND_DEFAULT); g_settings_bind (settings, "is-maximized", window, "maximized", G_SETTINGS_BIND_DEFAULT); g_object_unref (settings); return EXM_WINDOW (window); } static void exm_application_activate (GApplication *app) { GtkWindow *window; GdkDisplay *display; GtkCssProvider *provider; GtkIconTheme *icon_theme; /* It's good practice to check your parameters at the beginning of the * function. It helps catch errors early and in development instead of * by your users. */ g_assert (GTK_IS_APPLICATION (app)); display = gdk_display_get_default (); provider = gtk_css_provider_new (); gtk_css_provider_load_from_resource (provider, "/com/mattjakeman/ExtensionManager/style.css"); gtk_style_context_add_provider_for_display (display, GTK_STYLE_PROVIDER (provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); icon_theme = gtk_icon_theme_get_for_display (display); gtk_icon_theme_add_resource_path (icon_theme, "/com/mattjakeman/ExtensionManager/icons"); window = GTK_WINDOW (get_current_window (app)); /* Ask the window manager/compositor to present the window. */ gtk_window_present (window); } static void exm_application_open (GApplication *app, GFile **files, gint n_files, const gchar *hint) { ExmWindow *window; const char *scheme; const char *uuid; GUri *uri; GError *error = NULL; // Activate the application first exm_application_activate (app); // Now open the provided extension window = get_current_window (app); if (n_files <= 0) return; uri = g_uri_parse (g_file_get_uri (files[0]), G_URI_FLAGS_NONE, &error); if (error) { g_critical ("Error parsing URI: %s\n", error->message); return; } scheme = g_uri_get_scheme (uri); if (!g_str_equal (scheme, "gnome-extensions")) { g_critical ("Invalid URI scheme: '%s'\n", scheme); return; } uuid = g_uri_get_host (uri); g_info ("Opening extension with UUID: '%s'\n", uuid); gtk_widget_activate_action (GTK_WIDGET (window), "win.show-detail", "s", uuid); } static void exm_application_class_init (ExmApplicationClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); GApplicationClass *app_class = G_APPLICATION_CLASS (klass); object_class->finalize = exm_application_finalize; /* * We connect to the activate callback to create a window when the application * has been launched. Additionally, this callback notifies us when the user * tries to launch a "second instance" of the application. When they try * to do that, we'll just present any existing window. */ app_class->activate = exm_application_activate; app_class->open = exm_application_open; } static void exm_application_show_about (GSimpleAction *action, GVariant *parameter, gpointer user_data) { ExmApplication *self = EXM_APPLICATION (user_data); GtkWindow *window = NULL; const gchar *authors[] = {"Matthew Jakeman", NULL}; AdwDialog *about_dialog; g_return_if_fail (EXM_IS_APPLICATION (self)); window = gtk_application_get_active_window (GTK_APPLICATION (self)); about_dialog = adw_about_dialog_new_from_appdata ("/com/mattjakeman/ExtensionManager/com.mattjakeman.ExtensionManager.metainfo.xml", strstr (APP_ID, ".Devel") == NULL ? APP_VERSION : NULL); adw_about_dialog_set_version (ADW_ABOUT_DIALOG (about_dialog), APP_VERSION); adw_about_dialog_set_comments (ADW_ABOUT_DIALOG (about_dialog), _("Browse, install, and manage GNOME Shell Extensions.")); adw_about_dialog_set_developers (ADW_ABOUT_DIALOG (about_dialog), authors); adw_about_dialog_set_translator_credits (ADW_ABOUT_DIALOG (about_dialog), _("translator-credits")); adw_about_dialog_set_copyright (ADW_ABOUT_DIALOG (about_dialog), "© 2022 Matthew Jakeman"); // Dependency Attribution adw_about_dialog_add_legal_section (ADW_ABOUT_DIALOG (about_dialog), "text-engine", "Copyright (C) 2022 Matthew Jakeman", GTK_LICENSE_MPL_2_0, NULL); #if WITH_BACKTRACE adw_about_dialog_add_legal_section (ADW_ABOUT_DIALOG (about_dialog), "libbacktrace", "Copyright (C) 2012-2016 Free Software Foundation, Inc.", GTK_LICENSE_BSD_3, NULL); #endif adw_about_dialog_add_legal_section (ADW_ABOUT_DIALOG (about_dialog), "blueprint", "Copyright (C) 2021 James Westman", GTK_LICENSE_LGPL_3_0, NULL); adw_dialog_present (about_dialog, GTK_WIDGET (window)); } static void request_logout (ExmApplication *self) { // Request the GNOME Session Manager to log out GDBusConnection *conn; conn = g_application_get_dbus_connection (G_APPLICATION (self)); if (conn) { GError *error = NULL; g_dbus_connection_call_sync (conn, "org.gnome.SessionManager", "/org/gnome/SessionManager", "org.gnome.SessionManager", "Logout", g_variant_new ("(u)", 0), NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error); if (error) g_warning ("Could not log out: %s", error->message); } } static void exm_application_init (ExmApplication *self) { GSettings *settings = g_settings_new (APP_ID); GSimpleAction *quit_action = g_simple_action_new ("quit", NULL); g_signal_connect_swapped (quit_action, "activate", G_CALLBACK (g_application_quit), self); g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (quit_action)); GSimpleAction *about_action = g_simple_action_new ("about", NULL); g_signal_connect (about_action, "activate", G_CALLBACK (exm_application_show_about), self); g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (about_action)); GSimpleAction *logout_action = g_simple_action_new ("logout", NULL); g_signal_connect_swapped (logout_action, "activate", G_CALLBACK (request_logout), self); g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (logout_action)); GAction *sort_enabled_first_action = g_settings_create_action (settings, "sort-enabled-first"); g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (sort_enabled_first_action)); GAction *show_unsupported_action = g_settings_create_action (settings, "show-unsupported"); g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (show_unsupported_action)); g_object_unref (settings); const char *accels_quit[] = {"q", NULL}; gtk_application_set_accels_for_action (GTK_APPLICATION (self), "app.quit", accels_quit); const char *accels_close[] = {"w", NULL}; gtk_application_set_accels_for_action (GTK_APPLICATION (self), "window.close", accels_close); } extension-manager-0.5.0/src/exm-application.h000066400000000000000000000020561457631363100212060ustar00rootroot00000000000000/* exm-application.h * * Copyright 2022 Matthew Jakeman * * 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 . */ #pragma once #include #include G_BEGIN_DECLS #define EXM_TYPE_APPLICATION (exm_application_get_type()) G_DECLARE_FINAL_TYPE (ExmApplication, exm_application, EXM, APPLICATION, AdwApplication) ExmApplication *exm_application_new (gchar *application_id, GApplicationFlags flags); G_END_DECLS extension-manager-0.5.0/src/exm-backtrace.c000066400000000000000000000047621457631363100206230ustar00rootroot00000000000000/* exm-backtrace.c * * Copyright 2022 Matthew Jakeman * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ #include "exm-config.h" #include "exm-backtrace.h" #include #include #if WITH_BACKTRACE #include #include #endif #if WITH_BACKTRACE static struct backtrace_state *state = NULL; #endif static void exm_backtrace_error_cb (void *data, const char *msg, int errnum) { g_warning ("Error (%d): %s\n", errnum, msg); } static int exm_backtrace_full_cb (GString *string_builder, uintptr_t pc, const char *filename, int lineno, const char *function) { char *entry; entry = g_strdup_printf ("%s:%d '%s'\n", filename, lineno, function); g_string_append (string_builder, entry); g_free (entry); return 0; } void exm_backtrace_init (char *filename) { #if WITH_BACKTRACE # ifdef BACKTRACE_SUPPORTED state = backtrace_create_state (filename, 0, exm_backtrace_error_cb, NULL); # else g_warning ("Backtraces are not supported.\n"); # endif #else g_info ("Backtraces were not enabled at build time.\n"); #endif } char * exm_backtrace_print () { #if WITH_BACKTRACE GString *string_builder; if (!state) { g_critical ("Cannot print backtrace.\n"); return NULL; } string_builder = g_string_new (""); backtrace_full (state, 0, exm_backtrace_full_cb, exm_backtrace_error_cb, string_builder); return g_string_free (string_builder, FALSE); #else g_critical ("Backtraces were not enabled at build time.\n"); return NULL; #endif } extension-manager-0.5.0/src/exm-backtrace.h000066400000000000000000000015331457631363100206210ustar00rootroot00000000000000/* exm-backtrace.h * * Copyright 2022 Matthew Jakeman * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ void exm_backtrace_init (char *filename); char * exm_backtrace_print (); extension-manager-0.5.0/src/exm-browse-page.blp000066400000000000000000000036101457631363100214410ustar00rootroot00000000000000using Gtk 4.0; using Adw 1; template $ExmBrowsePage : Gtk.Widget { notify::manager => $on_bind_manager(); Gtk.ScrolledWindow { Adw.StatusPage { title: _("Search for extensions"); description: _("Enter a keyword to search 'extensions.gnome.org' for GNOME Shell Extensions."); valign: start; vexpand: true; child: Adw.Clamp { Gtk.Box { orientation: vertical; Gtk.Box { styles ["linked"] Gtk.SearchEntry search_entry { hexpand: true; realize => $on_search_entry_realize(); search-changed => $on_search_changed() swapped; } // Keep the same order as the ExmSearchSort enum Gtk.DropDown search_dropdown { model: StringList { // Translators: dropdown items for sorting search results strings [_("Relevance"), C_("Sort search results", "Downloads"), _("Recent"), _("Name")] }; notify::selected => $on_search_changed() swapped; } } Gtk.Stack search_stack { Gtk.StackPage { name: "page_spinner"; child: Gtk.Spinner { valign: center; halign: center; spinning: true; height-request: 32; width-request: 32; }; } Gtk.StackPage { name: "page_results"; child: Gtk.Box { orientation: vertical; Gtk.ListBox search_results { styles ["boxed-list"] valign: start; selection-mode: none; } Gtk.Button more_results_btn { label: _("_Load More Results"); halign: center; margin-top: 24; use-underline: true; clicked => $on_load_more_results(); } }; } Gtk.StackPage { name: "page_empty"; child: Gtk.Label { label: _("No Results Found"); valign: start; halign: center; }; } } } }; } } } extension-manager-0.5.0/src/exm-browse-page.c000066400000000000000000000312221457631363100211060ustar00rootroot00000000000000/* exm-browse-page.c * * Copyright 2022 Matthew Jakeman * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ #include "exm-browse-page.h" #include "exm-search-row.h" #include "local/exm-manager.h" #include "web/exm-search-provider.h" #include "web/exm-image-resolver.h" #include "web/model/exm-search-result.h" #include "exm-config.h" #include "exm-utils.h" #include struct _ExmBrowsePage { GtkWidget parent_instance; ExmSearchProvider *search; ExmImageResolver *resolver; ExmManager *manager; GtkStringList *suggestions; GListModel *search_results_model; gchar *shell_version; int current_page; int max_pages; GCancellable *cancellable; // Template Widgets GtkSearchEntry *search_entry; GtkListBox *search_results; GtkStack *search_stack; GtkDropDown *search_dropdown; GtkButton *more_results_btn; }; G_DEFINE_FINAL_TYPE (ExmBrowsePage, exm_browse_page, GTK_TYPE_WIDGET) enum { PROP_0, PROP_MANAGER, N_PROPS }; static GParamSpec *properties [N_PROPS]; ExmBrowsePage * exm_browse_page_new (void) { return g_object_new (EXM_TYPE_BROWSE_PAGE, NULL); } static void exm_browse_page_finalize (GObject *object) { GtkWidget *child; ExmBrowsePage *self = (ExmBrowsePage *)object; child = gtk_widget_get_first_child (GTK_WIDGET (self)); gtk_widget_unparent (child); G_OBJECT_CLASS (exm_browse_page_parent_class)->finalize (object); } static void exm_browse_page_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ExmBrowsePage *self = EXM_BROWSE_PAGE (object); switch (prop_id) { case PROP_MANAGER: g_value_set_object (value, self->manager); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void exm_browse_page_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ExmBrowsePage *self = EXM_BROWSE_PAGE (object); switch (prop_id) { case PROP_MANAGER: self->manager = g_value_get_object (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static GtkWidget * search_widget_factory (ExmSearchResult *result, ExmBrowsePage *self) { ExmSearchRow *row; gchar *uuid; gboolean is_installed; gboolean is_supported; g_object_get (result, "uuid", &uuid, NULL); is_installed = exm_manager_is_installed_uuid (self->manager, uuid); is_supported = exm_search_result_supports_shell_version (result, self->shell_version); row = exm_search_row_new (result, is_installed, is_supported); return GTK_WIDGET (row); } static void update_load_more_btn (ExmBrowsePage *self) { // Hide button if we are the last page gtk_widget_set_visible (GTK_WIDGET (self->more_results_btn), self->current_page != self->max_pages); // Make it clickable gtk_widget_set_sensitive (GTK_WIDGET (self->more_results_btn), TRUE); } static void refresh_search (ExmBrowsePage *self) { if (!self->manager) return; if (!self->search_results_model || g_list_model_get_n_items (self->search_results_model) == 0) { // No Results Found gtk_stack_set_visible_child_name (self->search_stack, "page_empty"); return; } gtk_list_box_bind_model (self->search_results, self->search_results_model, (GtkListBoxCreateWidgetFunc) search_widget_factory, g_object_ref (self), g_object_unref); // Hide Loading Indicator gtk_stack_set_visible_child_name (self->search_stack, "page_results"); } static void on_first_page_result (GObject *source, GAsyncResult *res, ExmBrowsePage *self) { GError *error = NULL; GListModel *to_append; int n_items; int i; to_append = exm_search_provider_query_finish (EXM_SEARCH_PROVIDER (source), res, &self->max_pages, &error); if (G_IS_LIST_MODEL (to_append)) { n_items = g_list_model_get_n_items (G_LIST_MODEL (to_append)); // Populate list model self->search_results_model = to_append; } // Refresh search refresh_search (self); update_load_more_btn (self); } static void on_next_page_result (GObject *source, GAsyncResult *res, ExmBrowsePage *self) { GError *error = NULL; GListModel *to_append; int n_items; int i; to_append = exm_search_provider_query_finish (EXM_SEARCH_PROVIDER (source), res, &self->max_pages, &error); if (G_IS_LIST_MODEL (to_append)) { n_items = g_list_model_get_n_items (G_LIST_MODEL (to_append)); // Append to list model for (i = 0; i < n_items; i++) { GObject *item; item = g_list_model_get_object (to_append, i); g_list_store_append (G_LIST_STORE (self->search_results_model), item); } // Remove unnecessary model g_list_store_remove_all (G_LIST_STORE (to_append)); g_clear_object (&to_append); } update_load_more_btn (self); } static void on_load_more_results (GtkButton *btn, ExmBrowsePage *self) { const char *query; ExmSearchSort sort; gtk_widget_set_sensitive (GTK_WIDGET (self->more_results_btn), FALSE); // If we have a current operation, cancel it g_cancellable_cancel (self->cancellable); self->cancellable = g_cancellable_new (); query = gtk_editable_get_text (GTK_EDITABLE (self->search_entry)); sort = (ExmSearchSort) gtk_drop_down_get_selected (self->search_dropdown); exm_search_provider_query_async (self->search, query, ++self->current_page, sort, self->cancellable, (GAsyncReadyCallback) on_next_page_result, self); } static void search (ExmBrowsePage *self, const gchar *query, ExmSearchSort sort) { // Show Loading Indicator gtk_stack_set_visible_child_name (self->search_stack, "page_spinner"); self->current_page = 1; if (self->search_results_model) g_clear_object (&self->search_results_model); // If we have a current operation, cancel it g_cancellable_cancel (self->cancellable); self->cancellable = g_cancellable_new (); exm_search_provider_query_async (self->search, query, 1, sort, self->cancellable, (GAsyncReadyCallback) on_first_page_result, self); } static void on_search_changed (ExmBrowsePage *self) { const char *query = gtk_editable_get_text (GTK_EDITABLE (self->search_entry)); ExmSearchSort sort = (ExmSearchSort) gtk_drop_down_get_selected (self->search_dropdown); search (self, query, sort); } static void on_search_entry_realize (GtkSearchEntry *search_entry, ExmBrowsePage *self) { const char *suggestion; char *fmt; int random_index; int num_suggestions; // Get random suggestion num_suggestions = g_list_model_get_n_items (G_LIST_MODEL (self->suggestions)); random_index = g_random_int_range (0, num_suggestions); suggestion = gtk_string_list_get_string (self->suggestions, random_index); // Translators: // - '%s' is an extension e.g. Blur my Shell // - Please use unicode quotation marks e.g. “” (not "") fmt = g_strdup_printf (_("e.g. “%s”"), suggestion); // Set placeholder value g_object_set (search_entry, "placeholder-text", fmt, NULL); // Fire off a default search search (self, "", EXM_SEARCH_SORT_RELEVANCE); gtk_widget_grab_focus (GTK_WIDGET (search_entry)); } static void on_bind_manager (ExmBrowsePage *self) { GListModel *user_ext_model; GListModel *system_ext_model; gchar *shell_version; g_object_get (self->manager, "user-extensions", &user_ext_model, "system-extensions", &system_ext_model, NULL); g_signal_connect_swapped (user_ext_model, "items-changed", G_CALLBACK (refresh_search), self); g_signal_connect_swapped (system_ext_model, "items-changed", G_CALLBACK (refresh_search), self); g_object_get (self->manager, "shell-version", &shell_version, NULL); self->shell_version = shell_version; g_object_set (self->search, "shell-version", shell_version, NULL); refresh_search (self); } static void load_suggestions (ExmBrowsePage *self) { char *contents; char *contents_nul_term; char **suggest_array; gsize length; contents = exm_utils_read_resource ("/com/mattjakeman/ExtensionManager/suggestions.txt", &length); self->suggestions = gtk_string_list_new (NULL); if (contents) { int iter; contents_nul_term = g_strndup (contents, length); // Load dynamically from resource suggest_array = g_strsplit_set (contents_nul_term, "\n", -1); for (iter = 0; suggest_array[iter] != NULL; iter++) gtk_string_list_append (self->suggestions, suggest_array[iter]); g_strfreev (suggest_array); g_free (contents_nul_term); g_free (contents); } else { // Hardcoded fallback suggestion gtk_string_list_append (self->suggestions, "Blur my Shell"); } } static void exm_browse_page_class_init (ExmBrowsePageClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_browse_page_finalize; object_class->get_property = exm_browse_page_get_property; object_class->set_property = exm_browse_page_set_property; properties [PROP_MANAGER] = g_param_spec_object ("manager", "Manager", "Manager", EXM_TYPE_MANAGER, G_PARAM_READWRITE); g_object_class_install_properties (object_class, N_PROPS, properties); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); gtk_widget_class_set_template_from_resource (widget_class, "/com/mattjakeman/ExtensionManager/exm-browse-page.ui"); gtk_widget_class_bind_template_child (widget_class, ExmBrowsePage, search_entry); gtk_widget_class_bind_template_child (widget_class, ExmBrowsePage, search_results); gtk_widget_class_bind_template_child (widget_class, ExmBrowsePage, search_stack); gtk_widget_class_bind_template_child (widget_class, ExmBrowsePage, search_dropdown); gtk_widget_class_bind_template_child (widget_class, ExmBrowsePage, more_results_btn); gtk_widget_class_bind_template_callback (widget_class, on_search_entry_realize); gtk_widget_class_bind_template_callback (widget_class, on_search_changed); gtk_widget_class_bind_template_callback (widget_class, on_load_more_results); gtk_widget_class_bind_template_callback (widget_class, on_bind_manager); gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BIN_LAYOUT); } static void exm_browse_page_init (ExmBrowsePage *self) { GSettings *settings; gtk_widget_init_template (GTK_WIDGET (self)); self->search = exm_search_provider_new (); settings = g_settings_new (APP_ID); g_settings_bind (settings, "show-unsupported", self->search, "show-unsupported", G_SETTINGS_BIND_GET); // Rerun search when show unsupported is toggled g_signal_connect_swapped (self->search, "notify::show-unsupported", G_CALLBACK (on_search_changed), self); g_object_unref (settings); load_suggestions (self); } extension-manager-0.5.0/src/exm-browse-page.h000066400000000000000000000021261457631363100211140ustar00rootroot00000000000000/* exm-browse-page.h * * Copyright 2022 Matthew Jakeman * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ #pragma once #include #include G_BEGIN_DECLS #define EXM_TYPE_BROWSE_PAGE (exm_browse_page_get_type()) G_DECLARE_FINAL_TYPE (ExmBrowsePage, exm_browse_page, EXM, BROWSE_PAGE, GtkWidget) ExmBrowsePage *exm_browse_page_new (void); void exm_browse_page_refresh (ExmBrowsePage *self); G_END_DECLS extension-manager-0.5.0/src/exm-comment-dialog.blp000066400000000000000000000025201457631363100221240ustar00rootroot00000000000000using Gtk 4.0; using Adw 1; template $ExmCommentDialog : Adw.Dialog { content-width: 600; content-height: 600; width-request: 360; height-request: 294; title: _("Comments"); child: Adw.ToolbarView { [top] Adw.HeaderBar {} content: Gtk.ScrolledWindow { Adw.Clamp { Gtk.Stack stack { vexpand: true; Gtk.StackPage { name: "page_spinner"; child: Gtk.Box { orientation: vertical; spacing: 12; valign: center; Gtk.Spinner { spinning: true; height-request: 32; width-request: 32; } Gtk.Label { styles["title-2"] label: _("Loading Comments"); } }; } Gtk.StackPage { name: "page_error"; child: Adw.StatusPage { styles ["content"] title: _("An Error Occurred"); icon-name: "dialog-question-symbolic"; }; } Gtk.StackPage { name: "page_comments"; child: Gtk.ListBox list_box { styles ["content", "boxed-list"] valign: start; selection-mode: none; }; } } } }; }; } extension-manager-0.5.0/src/exm-comment-dialog.c000066400000000000000000000113601457631363100215730ustar00rootroot00000000000000#include "exm-comment-dialog.h" #include "web/exm-comment-provider.h" #include "web/model/exm-comment.h" #include "exm-comment-tile.h" struct _ExmCommentDialog { AdwDialog parent_instance; ExmCommentProvider *comment_provider; GtkListBox *list_box; GtkStack *stack; int web_id; }; G_DEFINE_FINAL_TYPE (ExmCommentDialog, exm_comment_dialog, ADW_TYPE_DIALOG) enum { PROP_0, PROP_WEB_ID, N_PROPS }; static GParamSpec *properties [N_PROPS]; static void exm_comment_dialog_constructed (GObject *object); ExmCommentDialog * exm_comment_dialog_new (int web_id) { return g_object_new (EXM_TYPE_COMMENT_DIALOG, "web-id", web_id, NULL); } static void exm_comment_dialog_finalize (GObject *object) { ExmCommentDialog *self = (ExmCommentDialog *)object; G_OBJECT_CLASS (exm_comment_dialog_parent_class)->finalize (object); } static void exm_comment_dialog_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ExmCommentDialog *self = EXM_COMMENT_DIALOG (object); switch (prop_id) { case PROP_WEB_ID: g_value_set_int (value, self->web_id); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void exm_comment_dialog_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ExmCommentDialog *self = EXM_COMMENT_DIALOG (object); switch (prop_id) { case PROP_WEB_ID: self->web_id = g_value_get_int (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void exm_comment_dialog_class_init (ExmCommentDialogClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_comment_dialog_finalize; object_class->get_property = exm_comment_dialog_get_property; object_class->set_property = exm_comment_dialog_set_property; object_class->constructed = exm_comment_dialog_constructed; properties [PROP_WEB_ID] = g_param_spec_int ("web-id", "Web ID", "Web ID", 0, G_MAXINT, 0, G_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY); g_object_class_install_properties (object_class, N_PROPS, properties); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); gtk_widget_class_set_template_from_resource (widget_class, "/com/mattjakeman/ExtensionManager/exm-comment-dialog.ui"); gtk_widget_class_bind_template_child (widget_class, ExmCommentDialog, list_box); gtk_widget_class_bind_template_child (widget_class, ExmCommentDialog, stack); } static GtkWidget * comment_factory (ExmComment *comment) { GtkWidget *row; row = gtk_list_box_row_new (); gtk_list_box_row_set_activatable (GTK_LIST_BOX_ROW (row), FALSE); gtk_list_box_row_set_child (GTK_LIST_BOX_ROW (row), GTK_WIDGET (exm_comment_tile_new (comment))); return row; } static void on_get_comments (GObject *source, GAsyncResult *res, ExmCommentDialog *self) { GError *error = NULL; GListModel *model = exm_comment_provider_get_comments_finish (EXM_COMMENT_PROVIDER (source), res, &error); if (error != NULL) { gtk_stack_set_visible_child_name (self->stack, "page_error"); g_critical ("An issue occurred while loading comments: %s", error->message); return; } gtk_stack_set_visible_child_name (self->stack, "page_comments"); gtk_list_box_bind_model (self->list_box, model, (GtkListBoxCreateWidgetFunc) comment_factory, g_object_ref (self), g_object_unref); } static void exm_comment_dialog_constructed (GObject *object) { ExmCommentDialog *self = EXM_COMMENT_DIALOG (object); gtk_stack_set_visible_child_name (self->stack, "page_spinner"); exm_comment_provider_get_comments_async (self->comment_provider, self->web_id, true, NULL, (GAsyncReadyCallback) on_get_comments, self); G_OBJECT_CLASS (exm_comment_dialog_parent_class)->constructed (object); } static void exm_comment_dialog_init (ExmCommentDialog *self) { gtk_widget_init_template (GTK_WIDGET (self)); self->comment_provider = exm_comment_provider_new (); } extension-manager-0.5.0/src/exm-comment-dialog.h000066400000000000000000000005031457631363100215750ustar00rootroot00000000000000#pragma once #include #include #include G_BEGIN_DECLS #define EXM_TYPE_COMMENT_DIALOG (exm_comment_dialog_get_type()) G_DECLARE_FINAL_TYPE (ExmCommentDialog, exm_comment_dialog, EXM, COMMENT_DIALOG, AdwDialog) ExmCommentDialog *exm_comment_dialog_new (int web_id); G_END_DECLS extension-manager-0.5.0/src/exm-comment-tile.blp000066400000000000000000000013661457631363100216310ustar00rootroot00000000000000using Gtk 4.0; using Adw 1; template $ExmCommentTile : Gtk.Widget { styles ["comment-tile"] Gtk.Box { orientation: vertical; Gtk.Box { orientation: horizontal; Gtk.Label author { styles ["dim-label"] xalign: 0; label: bind template.comment as <$ExmComment>.author; } Gtk.Label author_badge { styles ["author-badge"] label: _("Author"); visible: bind template.comment as <$ExmComment>.is_extension_creator; } $ExmRating rating { halign: end; hexpand: true; rating: bind template.comment as <$ExmComment>.rating; visible: bind template.comment as <$ExmComment>.rating as ; } } $TextDisplay display {} } } extension-manager-0.5.0/src/exm-comment-tile.c000066400000000000000000000073051457631363100212750ustar00rootroot00000000000000#include "exm-comment-tile.h" #include #include #include "exm-rating.h" struct _ExmCommentTile { GtkWidget parent_instance; ExmComment *comment; GtkLabel *author; GtkLabel *author_badge; ExmRating *rating; TextDisplay *display; }; G_DEFINE_FINAL_TYPE (ExmCommentTile, exm_comment_tile, GTK_TYPE_WIDGET) enum { PROP_0, PROP_COMMENT, N_PROPS }; static GParamSpec *properties [N_PROPS]; ExmCommentTile * exm_comment_tile_new (ExmComment *comment) { return g_object_new (EXM_TYPE_COMMENT_TILE, "comment", comment, NULL); } static void exm_comment_tile_finalize (GObject *object) { ExmCommentTile *self = (ExmCommentTile *)object; G_OBJECT_CLASS (exm_comment_tile_parent_class)->finalize (object); } static void exm_comment_tile_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ExmCommentTile *self = EXM_COMMENT_TILE (object); switch (prop_id) { case PROP_COMMENT: g_value_set_object (value, self->comment); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void exm_comment_tile_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ExmCommentTile *self = EXM_COMMENT_TILE (object); switch (prop_id) { case PROP_COMMENT: self->comment = g_value_get_object (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void exm_comment_tile_constructed (GObject *object) { ExmCommentTile *self = EXM_COMMENT_TILE (object); g_return_if_fail (EXM_IS_COMMENT (self->comment)); TextFrame *frame; gchar *text; g_object_get (self->comment, "comment", &text, NULL); frame = format_parse_html (text); g_object_set (self->display, "frame", frame, NULL); G_OBJECT_CLASS (exm_comment_tile_parent_class)->constructed (object); } static void exm_comment_tile_class_init (ExmCommentTileClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_comment_tile_finalize; object_class->get_property = exm_comment_tile_get_property; object_class->set_property = exm_comment_tile_set_property; object_class->constructed = exm_comment_tile_constructed; properties [PROP_COMMENT] = g_param_spec_object ("comment", "Comment", "Comment", EXM_TYPE_COMMENT, G_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY); g_object_class_install_properties (object_class, N_PROPS, properties); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); gtk_widget_class_set_template_from_resource (widget_class, "/com/mattjakeman/ExtensionManager/exm-comment-tile.ui"); gtk_widget_class_bind_template_child (widget_class, ExmCommentTile, display); gtk_widget_class_bind_template_child (widget_class, ExmCommentTile, author); gtk_widget_class_bind_template_child (widget_class, ExmCommentTile, author_badge); gtk_widget_class_bind_template_child (widget_class, ExmCommentTile, rating); gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BIN_LAYOUT); } static void exm_comment_tile_init (ExmCommentTile *self) { g_type_ensure (EXM_TYPE_RATING); gtk_widget_init_template (GTK_WIDGET (self)); } extension-manager-0.5.0/src/exm-comment-tile.h000066400000000000000000000004641457631363100213010ustar00rootroot00000000000000#pragma once #include #include "web/model/exm-comment.h" G_BEGIN_DECLS #define EXM_TYPE_COMMENT_TILE (exm_comment_tile_get_type()) G_DECLARE_FINAL_TYPE (ExmCommentTile, exm_comment_tile, EXM, COMMENT_TILE, GtkWidget) ExmCommentTile *exm_comment_tile_new (ExmComment *comment); G_END_DECLS extension-manager-0.5.0/src/exm-detail-view.blp000066400000000000000000000133041457631363100214410ustar00rootroot00000000000000using Gtk 4.0; using Adw 1; template $ExmDetailView : Adw.NavigationPage { Adw.ToolbarView { [top] Adw.HeaderBar header_bar { title-widget: Adw.WindowTitle title {}; } content: Adw.BreakpointBin { width-request: 360; height-request: 294; Adw.Breakpoint { condition ("max-width: 400sp") setters { ext_info_bar.orientation: vertical; header_suffix.orientation: vertical; header_suffix.spacing: 12; ext_install.halign: start; } apply => $breakpoint_apply_cb() swapped; unapply => $breakpoint_unapply_cb() swapped; } Gtk.Stack stack { vexpand: true; Gtk.StackPage { name: "page_spinner"; child: Gtk.Box { orientation: vertical; spacing: 24; valign: center; Gtk.Spinner { spinning: true; height-request: 32; width-request: 32; } Gtk.Label { styles["title-1"] label: _("Loading Details"); } }; } Gtk.StackPage { name: "page_error"; child: Adw.StatusPage { title: _("An Error Occurred"); icon-name: "dialog-question-symbolic"; }; } Gtk.StackPage { name: "page_detail"; child: Gtk.ScrolledWindow scroll_area { Adw.Clamp { maximum-size: 800; Gtk.Box { styles ["detail"] orientation: vertical; spacing: 24; Gtk.Box header { orientation: horizontal; spacing: 24; Gtk.Image ext_icon { halign: center; valign: center; pixel-size: 64; } Gtk.Box header_suffix { orientation: horizontal; spacing: 24; Gtk.Box { orientation: vertical; hexpand: true; valign: center; Gtk.Label ext_title { styles ["title-1"] xalign: 0; ellipsize: end; } Gtk.Label ext_author { styles ["dim-label"] label: "Author"; xalign: 0; ellipsize: end; } } $ExmInstallButton ext_install { valign: center; halign: center; } } } Gtk.Overlay ext_screenshot_container { [overlay] Gtk.Button ext_screenshot_popout_button { styles ["osd", "circular"] icon-name: "pip-out-symbolic"; halign: end; valign: end; margin-top: 8; margin-bottom: 8; margin-start: 8; margin-end: 8; tooltip-text: _("Enlarge image"); clicked => $screenshot_view_cb(template); } $ExmScreenshot ext_screenshot {} } Gtk.Box { orientation: vertical; Gtk.Label { styles ["title-4", "detail-heading"] label: _("Description"); xalign: 0; } Gtk.Label ext_description { styles ["multiline"] xalign: 0; wrap: true; wrap-mode: word_char; selectable: true; } } $ExmInfoBar ext_info_bar {} Gtk.Box { orientation: vertical; Gtk.Label { styles ["title-4", "detail-heading"] label: _("Links"); xalign: 0; } Gtk.ListBox { styles ["boxed-list"] selection-mode: none; Adw.ActionRow link_homepage { [prefix] Gtk.Image { icon-name: "go-home-symbolic"; } title: _("Homepage"); activatable: true; action-name: "detail.open-homepage"; [suffix] Gtk.Image { styles ["dim-label"] icon-name: "external-link-symbolic"; } } Adw.ActionRow link_extensions { [prefix] Gtk.Image { icon-name: "web-browser-symbolic"; } title: _("View on Extensions"); activatable: true; action-name: "detail.open-extensions"; [suffix] Gtk.Image { styles ["dim-label"] icon-name: "external-link-symbolic"; } } } } Gtk.Box { orientation: vertical; Gtk.Label { styles ["title-4", "detail-heading"] label: _("User Reviews"); xalign: 0; } // TODO: Abstract into common class Gtk.Stack comment_stack { vexpand: true; Gtk.StackPage { name: "page_spinner"; child: Gtk.Image { icon-name: "content-loading-symbolic"; icon-size: large; valign: center; }; } Gtk.StackPage { name: "page_error"; child: Adw.StatusPage { title: _("An Error Occurred"); icon-name: "dialog-question-symbolic"; }; } Gtk.StackPage { name: "page_empty"; child: Gtk.Label { label: _("There are no comments."); valign: start; xalign: 0; }; } Gtk.StackPage { name: "page_comments"; child: Gtk.Box { orientation: vertical; Gtk.FlowBox comment_box { max-children-per-line: 2; homogeneous: true; selection-mode: none; row-spacing: 12; column-spacing: 12; } Gtk.Button show_more_btn { label: _("_Show All Reviews"); halign: center; margin-top: 10; use-underline: true; } }; } } } } } }; } } }; } } extension-manager-0.5.0/src/exm-detail-view.c000066400000000000000000000504141457631363100211110ustar00rootroot00000000000000/* exm-detail-view.c * * Copyright 2022 Matthew Jakeman * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ #include "exm-detail-view.h" #include "exm-screenshot.h" #include "exm-screenshot-view.h" #include "exm-info-bar.h" #include "exm-comment-tile.h" #include "exm-comment-dialog.h" #include "web/exm-data-provider.h" #include "web/exm-image-resolver.h" #include "web/exm-comment-provider.h" #include "web/model/exm-shell-version-map.h" #include "web/model/exm-comment.h" #include "local/exm-manager.h" #include "exm-types.h" #include "exm-enums.h" #include struct _ExmDetailView { AdwNavigationPage parent_instance; ExmManager *manager; ExmDataProvider *provider; ExmImageResolver *resolver; ExmCommentProvider *comment_provider; GCancellable *resolver_cancel; GSimpleAction *zoom_in; GSimpleAction *zoom_out; GSimpleAction *zoom_reset; gchar *shell_version; gchar *uuid; AdwHeaderBar *header_bar; AdwWindowTitle *title; GtkStack *stack; GtkButton *ext_install; GtkLabel *ext_description; GtkImage *ext_icon; GtkLabel *ext_title; GtkLabel *ext_author; ExmScreenshot *ext_screenshot; GtkOverlay *ext_screenshot_container; GtkButton *ext_screenshot_popout_button; ExmInfoBar *ext_info_bar; GtkScrolledWindow *scroll_area; GtkStack *comment_stack; GtkFlowBox *comment_box; GtkButton *show_more_btn; AdwActionRow *link_homepage; gchar *uri_homepage; AdwActionRow *link_extensions; gchar *uri_extensions; int pk; guint signal_id; }; G_DEFINE_FINAL_TYPE (ExmDetailView, exm_detail_view, ADW_TYPE_NAVIGATION_PAGE) enum { PROP_0, PROP_MANAGER, PROP_SHELL_VERSION, N_PROPS }; static GParamSpec *properties [N_PROPS]; ExmDetailView * exm_detail_view_new (void) { return g_object_new (EXM_TYPE_DETAIL_VIEW, NULL); } static void exm_detail_view_finalize (GObject *object) { ExmDetailView *self = (ExmDetailView *)object; G_OBJECT_CLASS (exm_detail_view_parent_class)->finalize (object); } static void exm_detail_view_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ExmDetailView *self = EXM_DETAIL_VIEW (object); switch (prop_id) { case PROP_MANAGER: g_value_set_object (value, self->manager); break; case PROP_SHELL_VERSION: g_value_set_string (value, self->shell_version); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void on_bind_manager (ExmDetailView *self); static void exm_detail_view_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ExmDetailView *self = EXM_DETAIL_VIEW (object); switch (prop_id) { case PROP_MANAGER: self->manager = g_value_get_object (value); on_bind_manager (self); break; case PROP_SHELL_VERSION: self->shell_version = g_value_dup_string (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void on_icon_loaded (GObject *source, GAsyncResult *res, ExmDetailView *self) { GError *error = NULL; GdkTexture *texture = exm_image_resolver_resolve_finish (EXM_IMAGE_RESOLVER (source), res, &error); if (error) { // TODO: Properly log this g_critical ("%s\n", error->message); return; } gtk_image_set_from_paintable (self->ext_icon, GDK_PAINTABLE (texture)); g_object_unref (texture); g_object_unref (self); } static void on_image_loaded (GObject *source, GAsyncResult *res, ExmDetailView *self) { GError *error = NULL; GdkTexture *texture = exm_image_resolver_resolve_finish (EXM_IMAGE_RESOLVER (source), res, &error); AdwNavigationView *parent; ExmScreenshotView *screenshot_view; if (error) { // TODO: Properly log this g_critical ("%s\n", error->message); return; } parent = ADW_NAVIGATION_VIEW (gtk_widget_get_parent (GTK_WIDGET (self))); screenshot_view = EXM_SCREENSHOT_VIEW (adw_navigation_view_find_page (parent, "screenshot-view")); exm_screenshot_set_paintable (self->ext_screenshot, GDK_PAINTABLE (texture)); exm_screenshot_view_set_screenshot (screenshot_view, GDK_PAINTABLE (texture)); exm_screenshot_display (self->ext_screenshot); g_object_unref (texture); g_object_unref (self); gtk_widget_set_visible (GTK_WIDGET (self->ext_screenshot_popout_button), TRUE); } static void queue_resolve_image (ExmDetailView *self, const gchar *image_uri, GCancellable *cancellable, gboolean is_icon) { exm_image_resolver_resolve_async (self->resolver, image_uri, cancellable, (GAsyncReadyCallback) (is_icon ? on_icon_loaded : on_image_loaded), g_object_ref (self)); } static GtkWidget * comment_factory (ExmComment *comment) { GtkWidget *tile; tile = gtk_flow_box_child_new (); gtk_widget_add_css_class (tile, "card"); gtk_flow_box_child_set_child (GTK_FLOW_BOX_CHILD (tile), GTK_WIDGET (exm_comment_tile_new (comment))); return tile; } static void on_get_comments (GObject *source, GAsyncResult *res, ExmDetailView *self) { GError *error = NULL; GListModel *model = exm_comment_provider_get_comments_finish (EXM_COMMENT_PROVIDER (source), res, &error); if (error != NULL) { gtk_stack_set_visible_child_name (self->comment_stack, "page_error"); g_critical ("An issue occurred while loading comments: %s", error->message); return; } if (g_list_model_get_n_items (model) == 0) { gtk_stack_set_visible_child_name (self->comment_stack, "page_empty"); } else { gtk_stack_set_visible_child_name (self->comment_stack, "page_comments"); } gtk_flow_box_bind_model (self->comment_box, model, (GtkListBoxCreateWidgetFunc) comment_factory, g_object_ref (self), g_object_unref); } static void queue_resolve_comments (ExmDetailView *self, gint pk, GCancellable *cancellable) { gtk_stack_set_visible_child_name (self->comment_stack, "page_spinner"); exm_comment_provider_get_comments_async (self->comment_provider, pk, false, cancellable, (GAsyncReadyCallback) on_get_comments, self); } static void show_more_comments (GtkButton *button, ExmDetailView *self) { GtkRoot *toplevel; ExmCommentDialog *dlg; dlg = exm_comment_dialog_new (self->pk); toplevel = gtk_widget_get_root (GTK_WIDGET (self)); adw_dialog_present (ADW_DIALOG (dlg), GTK_WIDGET (toplevel)); } static void install_remote (GtkButton *button, ExmDetailView *self) { gboolean warn; ExmInstallButtonState state; g_object_get (self->ext_install, "state", &state, NULL); warn = (state == EXM_INSTALL_BUTTON_STATE_UNSUPPORTED); gtk_widget_activate_action (GTK_WIDGET (button), "ext.install", "(sb)", self->uuid, warn); } static void on_data_loaded (GObject *source, GAsyncResult *result, gpointer user_data) { ExmSearchResult *data; GError *error = NULL; ExmDetailView *self; ExmInstallButtonState install_state; GList *version_iter; ExmShellVersionMap *version_map; self = EXM_DETAIL_VIEW (user_data); if ((data = exm_data_provider_get_finish (EXM_DATA_PROVIDER (source), result, &error)) != FALSE) { gint pk, downloads; gboolean is_installed, is_supported; gchar *uuid, *name, *creator, *icon_uri, *screenshot_uri, *link, *description, *url; g_object_get (data, "uuid", &uuid, "name", &name, "creator", &creator, "icon", &icon_uri, "screenshot", &screenshot_uri, "link", &link, "description", &description, "shell_version_map", &version_map, "pk", &pk, "url", &url, "downloads", &downloads, NULL); adw_window_title_set_title (self->title, name); adw_window_title_set_subtitle (self->title, uuid); adw_navigation_page_set_title (ADW_NAVIGATION_PAGE (self), name); is_installed = exm_manager_is_installed_uuid (self->manager, uuid); is_supported = exm_search_result_supports_shell_version (data, self->shell_version); gtk_image_set_from_icon_name (self->ext_icon, "puzzle-piece-symbolic"); gtk_label_set_label (self->ext_title, name); gtk_label_set_label (self->ext_author, creator); gtk_label_set_label (self->ext_description, description); exm_info_bar_set_downloads (self->ext_info_bar, downloads); if (self->resolver_cancel) { g_cancellable_cancel (self->resolver_cancel); g_clear_object (&self->resolver_cancel); } if (strcmp (icon_uri, "/static/images/plugin.png") != 0) { self->resolver_cancel = g_cancellable_new (); queue_resolve_image (self, icon_uri, self->resolver_cancel, TRUE); } if (screenshot_uri != NULL) { self->resolver_cancel = g_cancellable_new (); exm_screenshot_set_paintable (self->ext_screenshot, NULL); exm_screenshot_reset (self->ext_screenshot); gtk_widget_set_visible (GTK_WIDGET (self->ext_screenshot_container), TRUE); gtk_widget_set_visible (GTK_WIDGET (self->ext_screenshot_popout_button), FALSE); queue_resolve_image (self, screenshot_uri, self->resolver_cancel, FALSE); } else { gtk_widget_set_visible (GTK_WIDGET (self->ext_screenshot_container), FALSE); } install_state = is_installed ? EXM_INSTALL_BUTTON_STATE_INSTALLED : (is_supported ? EXM_INSTALL_BUTTON_STATE_DEFAULT : EXM_INSTALL_BUTTON_STATE_UNSUPPORTED); g_object_set (self->ext_install, "state", install_state, NULL); self->uri_homepage = g_uri_resolve_relative (url, "", G_URI_FLAGS_NONE, NULL); self->uri_extensions = g_uri_resolve_relative ("https://extensions.gnome.org/", link, G_URI_FLAGS_NONE, NULL); adw_action_row_set_subtitle (self->link_homepage, self->uri_homepage); adw_action_row_set_subtitle (self->link_extensions, self->uri_extensions); exm_info_bar_set_version (self->ext_info_bar, -1); for (version_iter = version_map->map; version_iter != NULL; version_iter = version_iter->next) { gchar *version; MapEntry *entry; entry = version_iter->data; if (entry->shell_minor_version) version = g_strdup_printf ("%s.%s", entry->shell_major_version, entry->shell_minor_version); else version = g_strdup_printf ("%s.0", entry->shell_major_version); if (strcmp (version, self->shell_version) == 0 || strncmp(version, self->shell_version, strchr(version, '.') - version) == 0) exm_info_bar_set_version (self->ext_info_bar, entry->extension_version); g_free (version); } self->pk = pk; if (self->signal_id > 0) g_signal_handler_disconnect (self->show_more_btn, self->signal_id); self->signal_id = g_signal_connect (self->show_more_btn, "clicked", G_CALLBACK (show_more_comments), self); queue_resolve_comments (self, pk, self->resolver_cancel); // Reset scroll position gtk_adjustment_set_value (gtk_scrolled_window_get_vadjustment (self->scroll_area), 0); gtk_stack_set_visible_child_name (self->stack, "page_detail"); return; } gtk_stack_set_visible_child_name (self->stack, "page_error"); } void exm_detail_view_load_for_uuid (ExmDetailView *self, gchar *uuid) { // g_assert (gtk_widget_is_constructed) self->uuid = uuid; adw_window_title_set_title (self->title, NULL); adw_window_title_set_subtitle (self->title, NULL); gtk_stack_set_visible_child_name (self->stack, "page_spinner"); exm_data_provider_get_async (self->provider, uuid, NULL, on_data_loaded, self); } void exm_detail_view_update (ExmDetailView *self) { if (!self->uuid) return; // Check if the newly installed extension is the // one being displayed in this detail view if (exm_manager_is_installed_uuid (self->manager, self->uuid)) { g_object_set (self->ext_install, "state", EXM_INSTALL_BUTTON_STATE_INSTALLED, NULL); } } static void open_link (ExmDetailView *self, const char *action_name, GVariant *param) { GtkWidget *toplevel; GtkUriLauncher *uri = NULL; toplevel = GTK_WIDGET (gtk_widget_get_root (GTK_WIDGET (self))); if (strcmp (action_name, "detail.open-extensions") == 0) uri = gtk_uri_launcher_new (self->uri_extensions); else if (strcmp (action_name, "detail.open-homepage") == 0) uri = gtk_uri_launcher_new (self->uri_homepage); else g_critical ("open_link() invalid action: %s", action_name); gtk_uri_launcher_launch (uri, GTK_WINDOW (toplevel), NULL, NULL, NULL); } static void on_bind_manager (ExmDetailView *self) { GListModel *user_ext_model; GListModel *system_ext_model; g_object_get (self->manager, "user-extensions", &user_ext_model, "system-extensions", &system_ext_model, NULL); g_signal_connect_swapped (user_ext_model, "items-changed", G_CALLBACK (exm_detail_view_update), self); g_signal_connect_swapped (system_ext_model, "items-changed", G_CALLBACK (exm_detail_view_update), self); } static void breakpoint_apply_cb (ExmDetailView *self) { gtk_widget_remove_css_class (GTK_WIDGET (self->ext_title), "title-1"); gtk_widget_add_css_class (GTK_WIDGET (self->ext_title), "title-2"); } static void breakpoint_unapply_cb (ExmDetailView *self) { gtk_widget_remove_css_class (GTK_WIDGET (self->ext_title), "title-2"); gtk_widget_add_css_class (GTK_WIDGET (self->ext_title), "title-1"); } static void update_headerbar_cb (ExmDetailView *self) { GtkAdjustment *adj; adj = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (self->scroll_area)); adw_header_bar_set_show_title (ADW_HEADER_BAR (self->header_bar), gtk_adjustment_get_value (adj) > 0); } static void screenshot_view_cb (ExmDetailView *self) { AdwNavigationView *parent; parent = ADW_NAVIGATION_VIEW (gtk_widget_get_parent (GTK_WIDGET (self))); adw_navigation_view_push_by_tag (parent, "screenshot-view"); } static void exm_detail_view_class_init (ExmDetailViewClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_detail_view_finalize; object_class->get_property = exm_detail_view_get_property; object_class->set_property = exm_detail_view_set_property; properties [PROP_MANAGER] = g_param_spec_object ("manager", "Manager", "Manager", EXM_TYPE_MANAGER, G_PARAM_READWRITE); properties [PROP_SHELL_VERSION] = g_param_spec_string ("shell-version", "Shell Version", "Shell Version", NULL, G_PARAM_READWRITE); g_object_class_install_properties (object_class, N_PROPS, properties); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); gtk_widget_class_set_template_from_resource (widget_class, "/com/mattjakeman/ExtensionManager/exm-detail-view.ui"); gtk_widget_class_bind_template_child (widget_class, ExmDetailView, header_bar); gtk_widget_class_bind_template_child (widget_class, ExmDetailView, title); gtk_widget_class_bind_template_child (widget_class, ExmDetailView, stack); gtk_widget_class_bind_template_child (widget_class, ExmDetailView, ext_icon); gtk_widget_class_bind_template_child (widget_class, ExmDetailView, ext_title); gtk_widget_class_bind_template_child (widget_class, ExmDetailView, ext_author); gtk_widget_class_bind_template_child (widget_class, ExmDetailView, ext_description); gtk_widget_class_bind_template_child (widget_class, ExmDetailView, ext_install); gtk_widget_class_bind_template_child (widget_class, ExmDetailView, ext_screenshot); gtk_widget_class_bind_template_child (widget_class, ExmDetailView, ext_screenshot_container); gtk_widget_class_bind_template_child (widget_class, ExmDetailView, ext_screenshot_popout_button); gtk_widget_class_bind_template_child (widget_class, ExmDetailView, ext_info_bar); gtk_widget_class_bind_template_child (widget_class, ExmDetailView, link_homepage); gtk_widget_class_bind_template_child (widget_class, ExmDetailView, link_extensions); gtk_widget_class_bind_template_child (widget_class, ExmDetailView, scroll_area); gtk_widget_class_bind_template_child (widget_class, ExmDetailView, comment_box); gtk_widget_class_bind_template_child (widget_class, ExmDetailView, comment_stack); gtk_widget_class_bind_template_child (widget_class, ExmDetailView, show_more_btn); gtk_widget_class_bind_template_callback (widget_class, breakpoint_apply_cb); gtk_widget_class_bind_template_callback (widget_class, breakpoint_unapply_cb); gtk_widget_class_bind_template_callback (widget_class, screenshot_view_cb); gtk_widget_class_install_action (widget_class, "detail.open-extensions", NULL, open_link); gtk_widget_class_install_action (widget_class, "detail.open-homepage", NULL, open_link); } static void exm_detail_view_init (ExmDetailView *self) { GtkAdjustment *adj; gtk_widget_init_template (GTK_WIDGET (self)); self->provider = exm_data_provider_new (); self->resolver = exm_image_resolver_new (); self->comment_provider = exm_comment_provider_new (); g_signal_connect (self->ext_install, "clicked", G_CALLBACK (install_remote), self); adj = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (self->scroll_area)); g_signal_connect_swapped (adj, "value-changed", G_CALLBACK (update_headerbar_cb), self); update_headerbar_cb (self); } extension-manager-0.5.0/src/exm-detail-view.h000066400000000000000000000006451457631363100211170ustar00rootroot00000000000000#pragma once #include G_BEGIN_DECLS #define EXM_TYPE_DETAIL_VIEW (exm_detail_view_get_type()) G_DECLARE_FINAL_TYPE (ExmDetailView, exm_detail_view, EXM, DETAIL_VIEW, AdwNavigationPage) ExmDetailView *exm_detail_view_new (void); void exm_detail_view_load_for_uuid (ExmDetailView *self, gchar *uuid); void exm_detail_view_update (ExmDetailView *self); G_END_DECLS extension-manager-0.5.0/src/exm-error-dialog.blp000066400000000000000000000026041457631363100216160ustar00rootroot00000000000000using Gtk 4.0; using Adw 1; template $ExmErrorDialog : Adw.Window { default-width: 450; default-height: 450; title: _("Error Report"); Adw.ToolbarView { [top] Adw.HeaderBar {} content: Gtk.Box { styles ["content"] orientation: vertical; spacing: 16; margin-start: 8; margin-end: 8; Gtk.Image { icon-name: "dialog-error-symbolic"; icon-size: large; } Gtk.Label { styles ["heading"] label: _("An unexpected error occurred in Extension Manager."); } Gtk.Label instructions { xalign: 0; wrap: true; } Gtk.ScrolledWindow { child: Gtk.TextView text_view { wrap-mode: char; vexpand: true; top-margin: 16; left-margin: 16; right-margin: 16; bottom-margin: 16; }; } Gtk.Box { orientation: horizontal; homogeneous: true; halign: center; spacing: 16; Gtk.Button copy_button { label: _("_Copy to Clipboard"); use-underline: true; clicked => $on_copy_button_clicked(); } Gtk.Button new_issue_button { styles ["suggested-action"] label: _("_New Issue"); use-underline: true; clicked => $on_new_issue_button_clicked() swapped; } } }; } } extension-manager-0.5.0/src/exm-error-dialog.c000066400000000000000000000150261457631363100212650ustar00rootroot00000000000000/* exm-error-dialog.c * * Copyright 2022 Matthew Jakeman * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ #include "exm-error-dialog.h" #include "exm-config.h" #include struct _ExmErrorDialog { AdwWindow parent_instance; char *error_string; GtkTextView *text_view; GtkLabel *instructions; GtkButton *new_issue_button; }; G_DEFINE_FINAL_TYPE (ExmErrorDialog, exm_error_dialog, ADW_TYPE_WINDOW) enum { PROP_0, PROP_ERROR_STRING, N_PROPS }; static GParamSpec *properties [N_PROPS]; ExmErrorDialog * exm_error_dialog_new (const char *text) { return g_object_new (EXM_TYPE_ERROR_DIALOG, "error-string", text, NULL); } static void exm_error_dialog_finalize (GObject *object) { ExmErrorDialog *self = (ExmErrorDialog *)object; G_OBJECT_CLASS (exm_error_dialog_parent_class)->finalize (object); } static void exm_error_dialog_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ExmErrorDialog *self = EXM_ERROR_DIALOG (object); switch (prop_id) { case PROP_ERROR_STRING: g_value_set_string (value, self->error_string); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void exm_error_dialog_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ExmErrorDialog *self = EXM_ERROR_DIALOG (object); switch (prop_id) { case PROP_ERROR_STRING: GtkTextBuffer *buffer; buffer = gtk_text_view_get_buffer (self->text_view); if (self->error_string) g_free (self->error_string); self->error_string = g_strdup (g_value_get_string (value)); GString *string_builder = g_string_new ("Support Log\n"); g_string_append_printf (string_builder, "----\n"); g_string_append_printf (string_builder, "Version: %s\n", APP_VERSION); g_string_append_printf (string_builder, "Package Format: %s\n", PKG_NAME); g_string_append_printf (string_builder, "Status: %s\n", IS_OFFICIAL ? "Official" : "Third Party"); g_string_append_printf (string_builder, "OS: %s %s\n", g_get_os_info ("NAME"), g_get_os_info ("VERSION")); g_string_append_printf (string_builder, "GTK: %d.%d.%d\n", gtk_get_major_version (), gtk_get_minor_version (), gtk_get_micro_version ()); g_string_append_printf (string_builder, "Libadwaita: %d.%d.%d\n", adw_get_major_version (), adw_get_minor_version (), adw_get_micro_version ()); g_string_append_printf (string_builder, "----\n"); g_string_append_printf (string_builder, "%s", self->error_string); gtk_text_buffer_set_text (buffer, g_string_free (string_builder, FALSE), -1); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void on_copy_button_clicked (GtkButton *button, ExmErrorDialog *window) { GdkDisplay *display; GdkClipboard *clipboard; // Add to clipboard display = gdk_display_get_default (); clipboard = gdk_display_get_clipboard (display); gdk_clipboard_set_text (clipboard, window->error_string); // Success indicator gtk_button_set_label (button, _("Copied")); gtk_widget_set_sensitive (GTK_WIDGET (button), FALSE); } static void on_new_issue_button_clicked (ExmErrorDialog *window) { GtkUriLauncher *uri = gtk_uri_launcher_new ("https://github.com/mjakeman/extension-manager/issues"); gtk_uri_launcher_launch (uri, GTK_WINDOW (window), NULL, NULL, NULL); } static void exm_error_dialog_class_init (ExmErrorDialogClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_error_dialog_finalize; object_class->get_property = exm_error_dialog_get_property; object_class->set_property = exm_error_dialog_set_property; properties [PROP_ERROR_STRING] = g_param_spec_string ("error-string", "Error String", "Error String", NULL, G_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY); g_object_class_install_properties (object_class, N_PROPS, properties); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); gtk_widget_class_set_template_from_resource (widget_class, "/com/mattjakeman/ExtensionManager/exm-error-dialog.ui"); gtk_widget_class_bind_template_child (widget_class, ExmErrorDialog, text_view); gtk_widget_class_bind_template_child (widget_class, ExmErrorDialog, instructions); gtk_widget_class_bind_template_child (widget_class, ExmErrorDialog, new_issue_button); gtk_widget_class_bind_template_callback (widget_class, on_copy_button_clicked); gtk_widget_class_bind_template_callback (widget_class, on_new_issue_button_clicked); } static void exm_error_dialog_init (ExmErrorDialog *self) { gtk_widget_init_template (GTK_WIDGET (self)); gtk_label_set_use_markup (self->instructions, TRUE); #if IS_OFFICIAL gtk_label_set_text (self->instructions, _("Please open a new issue and attach the following information:")); gtk_widget_set_visible (GTK_WIDGET (self->new_issue_button), TRUE); #else // Translators: '%s' = Name of Distributor (e.g. "Packager123") char *text = g_markup_printf_escaped (_("You are using a third-party build of Extension Manager. Please contact the package distributor (%s) first before filing an issue. Be sure to attach the following information:"), PKG_DISTRIBUTOR); gtk_label_set_markup (self->instructions, text); gtk_widget_set_visible (GTK_WIDGET (self->new_issue_button), FALSE); g_free (text); #endif } extension-manager-0.5.0/src/exm-error-dialog.h000066400000000000000000000020411457631363100212630ustar00rootroot00000000000000/* exm-error-dialog.h * * Copyright 2022 Matthew Jakeman * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ #pragma once #include G_BEGIN_DECLS #define EXM_TYPE_ERROR_DIALOG (exm_error_dialog_get_type()) G_DECLARE_FINAL_TYPE (ExmErrorDialog, exm_error_dialog, EXM, ERROR_DIALOG, AdwWindow) ExmErrorDialog *exm_error_dialog_new (const char *text); G_END_DECLS extension-manager-0.5.0/src/exm-extension-row.blp000066400000000000000000000055621457631363100220570ustar00rootroot00000000000000using Gtk 4.0; using Adw 1; template $ExmExtensionRow : Adw.ExpanderRow { title-lines: 1; subtitle-lines: 1; [action] Gtk.Switch ext_toggle { valign: center; active: bind template.extension as <$ExmExtension>.enabled; sensitive: bind template.extension as <$ExmExtension>.can-change; state-set => $on_state_changed(); } [action] Gtk.Button prefs_btn { styles ["flat"] icon-name: "settings-symbolic"; valign: center; halign: center; action-name: 'row.open-prefs'; tooltip-text: _("Open extension preferences"); } [action] Gtk.Image error_icon { styles ["error"] icon-name: "dialog-error-symbolic"; valign: center; halign: center; margin-start: 9; margin-end: 9; visible: false; tooltip-text: _("An error occurred while loading this extension"); } [action] Gtk.Image out_of_date_icon { styles ["error"] icon-name: "clock-alt-symbolic"; valign: center; halign: center; margin-start: 9; margin-end: 9; visible: false; tooltip-text: _("This extension is incompatible with your current version of GNOME"); } [action] Gtk.Image update_icon { styles ["update"] icon-name: "software-update-available-symbolic"; valign: center; halign: center; margin-start: 9; margin-end: 9; visible: false; tooltip-text: _("A newer version of this extension is available"); } Gtk.ListBoxRow { activatable: false; Gtk.Grid { styles ["row-content"] row-spacing: 15; column-spacing: 15; Gtk.Label { styles ["dim-label"] label: _("Description"); xalign: 0; yalign: 0; layout { row: 0; column: 0; } } Gtk.Label description_label { styles ["multiline"] xalign: 0; wrap-mode: word; wrap: true; selectable: true; layout { row: 0; column: 1; } } Gtk.Label { styles ["dim-label"] label: _("Version"); xalign: 0; yalign: 0; layout { row: 1; column: 0; } } Gtk.Label version_label { xalign: 0; wrap-mode: word; wrap: true; selectable: true; layout { row: 1; column: 1; } } Gtk.Label error_label_tag { styles ["dim-label"] label: _("Error"); xalign: 0; yalign: 0; layout { row: 2; column: 0; } } Gtk.Label error_label { xalign: 0; wrap-mode: word_char; wrap: true; selectable: true; layout { row: 2; column: 1; } } } } Gtk.ListBoxRow { activatable: false; focusable: false; height-request: 46; Gtk.Box { halign: end; spacing: 6; margin-start: 4; margin-end: 4; Gtk.Button details_btn { styles ["flat"] label: _("See Details"); valign: center; action-name: 'win.show-detail'; } Gtk.Button remove_btn { styles ["destructive-action"] label: _("Remove"); valign: center; action-name: 'row.remove'; } } } } extension-manager-0.5.0/src/exm-extension-row.c000066400000000000000000000264201457631363100215200ustar00rootroot00000000000000#include "exm-extension-row.h" #include "exm-enums.h" #include "exm-types.h" struct _ExmExtensionRow { AdwExpanderRow parent_instance; GSimpleActionGroup *action_group; ExmExtension *extension; gchar *uuid; ExmManager *manager; GtkButton *remove_btn; GtkButton *prefs_btn; GtkButton *details_btn; GtkSwitch *ext_toggle; GtkLabel *description_label; GtkLabel *version_label; GtkLabel *error_label; GtkLabel *error_label_tag; GtkImage *update_icon; GtkImage *error_icon; GtkImage *out_of_date_icon; }; G_DEFINE_FINAL_TYPE (ExmExtensionRow, exm_extension_row, ADW_TYPE_EXPANDER_ROW) enum { PROP_0, PROP_EXTENSION, PROP_MANAGER, N_PROPS }; static GParamSpec *properties [N_PROPS]; static void bind_extension (ExmExtensionRow *self, ExmExtension *extension); static void unbind_extension (ExmExtensionRow *self); ExmExtensionRow * exm_extension_row_new (ExmExtension *extension, ExmManager *manager) { return g_object_new (EXM_TYPE_EXTENSION_ROW, "extension", extension, "manager", manager, NULL); } static void exm_extension_row_finalize (GObject *object) { ExmExtensionRow *self = (ExmExtensionRow *)object; G_OBJECT_CLASS (exm_extension_row_parent_class)->finalize (object); } static void exm_extension_row_dispose (GObject *object) { ExmExtensionRow *self = (ExmExtensionRow *)object; unbind_extension (self); G_OBJECT_CLASS (exm_extension_row_parent_class)->dispose (object); } static void exm_extension_row_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ExmExtensionRow *self = EXM_EXTENSION_ROW (object); switch (prop_id) { case PROP_EXTENSION: g_value_set_object (value, self->extension); break; case PROP_MANAGER: g_value_set_object (value, self->manager); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void exm_extension_row_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ExmExtensionRow *self = EXM_EXTENSION_ROW (object); switch (prop_id) { case PROP_EXTENSION: bind_extension (self, g_value_get_object (value)); break; case PROP_MANAGER: self->manager = g_value_get_object (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void set_error_label_visible (ExmExtensionRow *self, gboolean visible) { gtk_widget_set_visible (GTK_WIDGET (self->error_label), visible); gtk_widget_set_visible (GTK_WIDGET (self->error_label_tag), visible); } static gboolean transform_to_state (GBinding *binding, const GValue *from_value, GValue *to_value, gpointer user_data) { g_value_set_boolean (to_value, g_value_get_enum (from_value) == EXM_EXTENSION_STATE_ACTIVE); return TRUE; } static void unbind_extension (ExmExtensionRow *self) { if (self->extension != NULL) { g_clear_object (&self->extension); g_clear_pointer (&self->uuid, g_free); } } static void bind_extension (ExmExtensionRow *self, ExmExtension *extension) { // TODO: This big block of property assignments is currently copy/pasted // from ExmExtension. We can replace this with GtkExpression lookups // once blueprint-compiler supports expressions. // (See https://gitlab.gnome.org/jwestman/blueprint-compiler/-/issues/5) g_return_if_fail (EXM_IS_EXTENSION_ROW (self)); // First, remove traces of the old extension unbind_extension (self); // Now, bind the new one self->extension = g_object_ref (extension); if (self->extension == NULL) return; gchar *name, *uuid, *description, *version, *error_msg; gboolean enabled, has_prefs, has_update, is_user; ExmExtensionState state; g_object_get (self->extension, "display-name", &name, "uuid", &uuid, "description", &description, "state", &state, "enabled", &enabled, "has-prefs", &has_prefs, "has-update", &has_update, "is-user", &is_user, "version", &version, "error-msg", &error_msg, NULL); self->uuid = g_strdup (uuid); g_object_set (self, "title", g_markup_escape_text(name, -1), "subtitle", uuid, NULL); g_object_set (self->prefs_btn, "visible", has_prefs, NULL); g_object_set (self->remove_btn, "visible", is_user, NULL); g_object_set (self->update_icon, "visible", has_update, NULL); g_object_set (self->version_label, "label", version, NULL); // Trim description label's leading and trailing whitespace char *description_trimmed = g_strchomp (g_strstrip (description)); g_object_set (self->description_label, "label", description_trimmed, NULL); g_free (description_trimmed); // Only show if error_msg exists and is not empty g_object_set (self->error_label, "label", error_msg, NULL); gboolean has_error = (error_msg != NULL) && (strlen(error_msg) != 0); set_error_label_visible (self, has_error); gtk_widget_set_visible (GTK_WIDGET (self->error_icon), state == EXM_EXTENSION_STATE_ERROR); gtk_widget_set_visible (GTK_WIDGET (self->out_of_date_icon), state == EXM_EXTENSION_STATE_OUT_OF_DATE); gtk_actionable_set_action_target (GTK_ACTIONABLE (self->details_btn), "s", uuid); GAction *action; action = g_action_map_lookup_action (G_ACTION_MAP (self->action_group), "open-prefs"); g_simple_action_set_enabled (G_SIMPLE_ACTION (action), has_prefs); action = g_action_map_lookup_action (G_ACTION_MAP (self->action_group), "remove"); g_simple_action_set_enabled (G_SIMPLE_ACTION (action), is_user); g_object_bind_property_full (self->extension, "state", self->ext_toggle, "state", G_BINDING_SYNC_CREATE, transform_to_state, NULL, NULL, NULL); // Keep compatibility with GNOME Shell versions prior to 46 if (gtk_switch_get_state (self->ext_toggle) != enabled && (state == EXM_EXTENSION_STATE_ACTIVE || state == EXM_EXTENSION_STATE_ACTIVATING)) g_object_set (self->extension, "enabled", !enabled, NULL); } static gboolean on_state_changed (GtkSwitch *toggle, gboolean state, ExmExtensionRow *self) { g_return_if_fail (EXM_IS_EXTENSION_ROW (self)); g_assert (self->ext_toggle == toggle); gboolean enabled; g_object_get (self->extension, "enabled", &enabled, NULL); // Prevents changing extensions' state when global switch is toggled if (state == enabled) return TRUE; // Keep compatibility with GNOME Shell versions prior to 46 if (gtk_switch_get_state (toggle) != enabled) g_object_set (self->extension, "enabled", !enabled, NULL); if (state) exm_manager_enable_extension (self->manager, self->extension); else exm_manager_disable_extension (self->manager, self->extension); return TRUE; } static void exm_extension_row_class_init (ExmExtensionRowClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_extension_row_finalize; object_class->dispose = exm_extension_row_dispose; object_class->get_property = exm_extension_row_get_property; object_class->set_property = exm_extension_row_set_property; properties [PROP_EXTENSION] = g_param_spec_object ("extension", "Extension", "Extension", EXM_TYPE_EXTENSION, G_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY); properties [PROP_MANAGER] = g_param_spec_object ("manager", "Manager", "Manager", EXM_TYPE_MANAGER, G_PARAM_READWRITE); g_object_class_install_properties (object_class, N_PROPS, properties); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); gtk_widget_class_set_template_from_resource (widget_class, "/com/mattjakeman/ExtensionManager/exm-extension-row.ui"); gtk_widget_class_bind_template_child (widget_class, ExmExtensionRow, description_label); gtk_widget_class_bind_template_child (widget_class, ExmExtensionRow, error_label); gtk_widget_class_bind_template_child (widget_class, ExmExtensionRow, error_label_tag); gtk_widget_class_bind_template_child (widget_class, ExmExtensionRow, version_label); gtk_widget_class_bind_template_child (widget_class, ExmExtensionRow, prefs_btn); gtk_widget_class_bind_template_child (widget_class, ExmExtensionRow, remove_btn); gtk_widget_class_bind_template_child (widget_class, ExmExtensionRow, details_btn); gtk_widget_class_bind_template_child (widget_class, ExmExtensionRow, ext_toggle); gtk_widget_class_bind_template_child (widget_class, ExmExtensionRow, update_icon); gtk_widget_class_bind_template_child (widget_class, ExmExtensionRow, error_icon); gtk_widget_class_bind_template_child (widget_class, ExmExtensionRow, out_of_date_icon); gtk_widget_class_bind_template_callback (widget_class, on_state_changed); } static void open_prefs (GSimpleAction *action, GVariant *new_value, ExmExtensionRow *self) { g_return_if_fail (self->extension); gtk_widget_activate_action (GTK_WIDGET (self), "ext.open-prefs", "s", self->uuid); } static void uninstall (GSimpleAction *action, GVariant *new_value, ExmExtensionRow *self) { g_return_if_fail (self->extension); gtk_widget_activate_action (GTK_WIDGET (self), "ext.remove", "s", self->uuid); } static void exm_extension_row_init (ExmExtensionRow *self) { GSimpleAction *open_prefs_action; GSimpleAction *remove_action; gtk_widget_init_template (GTK_WIDGET (self)); // Define Actions self->action_group = g_simple_action_group_new (); open_prefs_action = g_simple_action_new ("open-prefs", NULL); g_signal_connect (open_prefs_action, "activate", G_CALLBACK (open_prefs), self); remove_action = g_simple_action_new ("remove", NULL); g_signal_connect (remove_action, "activate", G_CALLBACK (uninstall), self); g_action_map_add_action (G_ACTION_MAP (self->action_group), G_ACTION (open_prefs_action)); g_action_map_add_action (G_ACTION_MAP (self->action_group), G_ACTION (remove_action)); gtk_widget_insert_action_group (GTK_WIDGET (self), "row", G_ACTION_GROUP (self->action_group)); } extension-manager-0.5.0/src/exm-extension-row.h000066400000000000000000000006201457631363100215170ustar00rootroot00000000000000#pragma once #include #include "local/exm-extension.h" #include "local/exm-manager.h" G_BEGIN_DECLS #define EXM_TYPE_EXTENSION_ROW (exm_extension_row_get_type()) G_DECLARE_FINAL_TYPE (ExmExtensionRow, exm_extension_row, EXM, EXTENSION_ROW, AdwExpanderRow) ExmExtensionRow * exm_extension_row_new (ExmExtension *extension, ExmManager *manager); G_END_DECLS extension-manager-0.5.0/src/exm-info-bar-item.blp000066400000000000000000000007721457631363100216650ustar00rootroot00000000000000using Gtk 4.0; using Adw 1; template $ExmInfoBarItem: Adw.Bin { styles [ "card" ] focusable: true; height-request: 54; Gtk.Box { orientation: horizontal; Gtk.Image icon { margin-start: 12; margin-end: 12; } Gtk.Box { orientation: vertical; valign: center; Gtk.Label title { xalign: 0; } Gtk.Label subtitle { styles [ "dim-label", "numeric" ] xalign: 0; } } } accessibility { labelled-by: title; described-by: subtitle; } } extension-manager-0.5.0/src/exm-info-bar-item.c000066400000000000000000000105771457631363100213360ustar00rootroot00000000000000#include "exm-info-bar-item.h" struct _ExmInfoBarItem { AdwBin parent_instance; GtkImage *icon; GtkLabel *title; GtkLabel *subtitle; }; G_DEFINE_FINAL_TYPE (ExmInfoBarItem, exm_info_bar_item, ADW_TYPE_BIN) enum { PROP_0, PROP_ICON, PROP_TITLE, PROP_SUBTITLE, N_PROPS }; static GParamSpec *properties [N_PROPS]; ExmInfoBarItem * exm_info_bar_info_item_new (void) { return g_object_new (EXM_TYPE_INFO_BAR_ITEM, NULL); } static void exm_info_bar_item_finalize (GObject *object) { ExmInfoBarItem *self = (ExmInfoBarItem *)object; G_OBJECT_CLASS (exm_info_bar_item_parent_class)->finalize (object); } GtkLabel * exm_info_bar_item_get_subtitle (ExmInfoBarItem *self) { g_return_val_if_fail (EXM_IS_INFO_BAR_ITEM (self), NULL); return self->subtitle; } void exm_info_bar_item_set_subtitle (ExmInfoBarItem *self, const char *subtitle) { g_return_if_fail (EXM_IS_INFO_BAR_ITEM (self)); if (g_strcmp0 (gtk_label_get_label (self->subtitle), subtitle) == 0) return; gtk_label_set_label (self->subtitle, subtitle); g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_SUBTITLE]); } static void exm_info_bar_item_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ExmInfoBarItem *self = EXM_INFO_BAR_ITEM (object); switch (prop_id) { case PROP_ICON: g_value_set_string (value, gtk_image_get_icon_name (self->icon)); break; case PROP_TITLE: g_value_set_string (value, gtk_label_get_label (self->title)); break; case PROP_SUBTITLE: g_value_set_string (value, gtk_label_get_text (exm_info_bar_item_get_subtitle (self))); default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void exm_info_bar_item_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ExmInfoBarItem *self = EXM_INFO_BAR_ITEM (object); switch (prop_id) { case PROP_ICON: gtk_image_set_from_icon_name (self->icon, g_value_get_string (value)); break; case PROP_TITLE: gtk_label_set_label (self->title, g_value_get_string (value)); break; case PROP_SUBTITLE: exm_info_bar_item_set_subtitle (self, g_value_get_string (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void exm_info_bar_item_class_init (ExmInfoBarItemClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_info_bar_item_finalize; object_class->get_property = exm_info_bar_item_get_property; object_class->set_property = exm_info_bar_item_set_property; properties [PROP_ICON] = g_param_spec_string ("icon", "Icon", "The icon for the item", NULL, (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); properties [PROP_TITLE] = g_param_spec_string ("title", "Title", "The title for the item", NULL, (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); properties [PROP_SUBTITLE] = g_param_spec_string ("subtitle", "Subtitle", "The subtitle for the item", NULL, (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_properties (object_class, N_PROPS, properties); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); gtk_widget_class_set_template_from_resource (widget_class, "/com/mattjakeman/ExtensionManager/exm-info-bar-item.ui"); g_type_ensure (EXM_TYPE_INFO_BAR_ITEM); gtk_widget_class_bind_template_child (widget_class, ExmInfoBarItem, icon); gtk_widget_class_bind_template_child (widget_class, ExmInfoBarItem, title); gtk_widget_class_bind_template_child (widget_class, ExmInfoBarItem, subtitle); } static void exm_info_bar_item_init (ExmInfoBarItem *self) { gtk_widget_init_template (GTK_WIDGET (self)); } extension-manager-0.5.0/src/exm-info-bar-item.h000066400000000000000000000005401457631363100213300ustar00rootroot00000000000000#pragma once #include G_BEGIN_DECLS #define EXM_TYPE_INFO_BAR_ITEM (exm_info_bar_item_get_type()) G_DECLARE_FINAL_TYPE (ExmInfoBarItem, exm_info_bar_item, EXM, INFO_BAR_ITEM, AdwBin) ExmInfoBarItem * exm_info_bar_item_new (void); void exm_info_bar_item_set_subtitle (ExmInfoBarItem *info_bar_item, const char *subtitle); G_END_DECLS extension-manager-0.5.0/src/exm-info-bar.blp000066400000000000000000000005731457631363100207300ustar00rootroot00000000000000using Gtk 4.0; template $ExmInfoBar: Gtk.Box { styles [ "info-bar" ] homogeneous: true; orientation: horizontal; $ExmInfoBarItem downloads_item { icon: "folder-download-symbolic"; title: C_("Number of downloads", "Downloads"); } $ExmInfoBarItem version_item { icon: "system-software-install-symbolic"; title: _("Version"); subtitle: _("Unsupported"); } } extension-manager-0.5.0/src/exm-info-bar.c000066400000000000000000000050471457631363100203760ustar00rootroot00000000000000#include "exm-info-bar.h" #include "exm-info-bar-item.h" #include struct _ExmInfoBar { GtkBox parent_instance; ExmInfoBarItem *downloads_item; ExmInfoBarItem *version_item; guint signal_handler; }; G_DEFINE_FINAL_TYPE (ExmInfoBar, exm_info_bar, GTK_TYPE_BOX) enum { PROP_0, N_PROPS }; static GParamSpec *properties [N_PROPS]; ExmInfoBar * exm_info_bar_new (void) { return g_object_new (EXM_TYPE_INFO_BAR, NULL); } static void exm_info_bar_finalize (GObject *object) { ExmInfoBar *self = (ExmInfoBar *)object; G_OBJECT_CLASS (exm_info_bar_parent_class)->finalize (object); } static void exm_info_bar_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ExmInfoBar *self = EXM_INFO_BAR (object); switch (prop_id) { default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void exm_info_bar_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ExmInfoBar *self = EXM_INFO_BAR (object); switch (prop_id) { default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } void exm_info_bar_set_downloads (ExmInfoBar *self, guint downloads) { exm_info_bar_item_set_subtitle (self->downloads_item, g_strdup_printf ("%'d", downloads)); } void exm_info_bar_set_version (ExmInfoBar *self, double version) { exm_info_bar_item_set_subtitle (self->version_item, version == -1 ? _("Unsupported") : g_strdup_printf("%.f", version)); } static void exm_info_bar_class_init (ExmInfoBarClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_info_bar_finalize; object_class->get_property = exm_info_bar_get_property; object_class->set_property = exm_info_bar_set_property; GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); gtk_widget_class_set_template_from_resource (widget_class, "/com/mattjakeman/ExtensionManager/exm-info-bar.ui"); g_type_ensure (EXM_TYPE_INFO_BAR); gtk_widget_class_bind_template_child (widget_class, ExmInfoBar, downloads_item); gtk_widget_class_bind_template_child (widget_class, ExmInfoBar, version_item); } static void exm_info_bar_init (ExmInfoBar *self) { gtk_widget_init_template (GTK_WIDGET (self)); } extension-manager-0.5.0/src/exm-info-bar.h000066400000000000000000000005641457631363100204020ustar00rootroot00000000000000#pragma once #include G_BEGIN_DECLS #define EXM_TYPE_INFO_BAR (exm_info_bar_get_type()) G_DECLARE_FINAL_TYPE (ExmInfoBar, exm_info_bar, EXM, INFO_BAR, GtkBox) ExmInfoBar * exm_info_bar_new (void); void exm_info_bar_set_downloads (ExmInfoBar *info_bar, guint downloads); void exm_info_bar_set_version (ExmInfoBar *info_bar, double version); G_END_DECLS extension-manager-0.5.0/src/exm-install-button.c000066400000000000000000000107331457631363100216560ustar00rootroot00000000000000/* exm-install-button.c * * Copyright 2022 Matthew Jakeman * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ #include "exm-install-button.h" #include "exm-types.h" #include "exm-enums.h" #include struct _ExmInstallButton { GtkButton parent_instance; ExmInstallButtonState state; }; G_DEFINE_FINAL_TYPE (ExmInstallButton, exm_install_button, GTK_TYPE_BUTTON) enum { PROP_0, PROP_STATE, N_PROPS }; static GParamSpec *properties [N_PROPS]; static void update_state (ExmInstallButton *button); ExmInstallButton * exm_install_button_new (void) { return g_object_new (EXM_TYPE_INSTALL_BUTTON, NULL); } static void exm_install_button_finalize (GObject *object) { ExmInstallButton *self = (ExmInstallButton *)object; G_OBJECT_CLASS (exm_install_button_parent_class)->finalize (object); } static void exm_install_button_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ExmInstallButton *self = EXM_INSTALL_BUTTON (object); switch (prop_id) { case PROP_STATE: g_value_set_enum (value, self->state); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void exm_install_button_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ExmInstallButton *self = EXM_INSTALL_BUTTON (object); switch (prop_id) { case PROP_STATE: self->state = g_value_get_enum (value); update_state (self); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void update_state (ExmInstallButton *button) { const gchar *tooltip; ExmInstallButtonState state; tooltip = _("This extension is incompatible with your current version of GNOME."); state = button->state; gtk_widget_remove_css_class (GTK_WIDGET (button), "warning"); gtk_widget_remove_css_class (GTK_WIDGET (button), "suggested-action"); gtk_widget_set_tooltip_text (GTK_WIDGET (button), NULL); switch ((int)state) { case EXM_INSTALL_BUTTON_STATE_DEFAULT: gtk_button_set_label (GTK_BUTTON (button), _("Install")); gtk_widget_set_sensitive (GTK_WIDGET (button), TRUE); gtk_widget_add_css_class (GTK_WIDGET (button), "suggested-action"); break; case EXM_INSTALL_BUTTON_STATE_INSTALLED: gtk_button_set_label (GTK_BUTTON (button), C_("State", "Installed")); gtk_widget_set_sensitive (GTK_WIDGET (button), FALSE); break; case EXM_INSTALL_BUTTON_STATE_UNSUPPORTED: gtk_button_set_label (GTK_BUTTON (button), _("Unsupported")); gtk_widget_add_css_class (GTK_WIDGET (button), "warning"); gtk_widget_set_tooltip_text (GTK_WIDGET (button), tooltip); gtk_widget_set_sensitive (GTK_WIDGET (button), TRUE); break; } } static void exm_install_button_class_init (ExmInstallButtonClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_install_button_finalize; object_class->get_property = exm_install_button_get_property; object_class->set_property = exm_install_button_set_property; properties [PROP_STATE] = g_param_spec_enum ("state", "State", "State", EXM_TYPE_INSTALL_BUTTON_STATE, EXM_INSTALL_BUTTON_STATE_DEFAULT, G_PARAM_READWRITE); g_object_class_install_properties (object_class, N_PROPS, properties); } static void exm_install_button_init (ExmInstallButton *self) { } extension-manager-0.5.0/src/exm-install-button.h000066400000000000000000000020451457631363100216600ustar00rootroot00000000000000/* exm-install-button.h * * Copyright 2022 Matthew Jakeman * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ #pragma once #include G_BEGIN_DECLS #define EXM_TYPE_INSTALL_BUTTON (exm_install_button_get_type()) G_DECLARE_FINAL_TYPE (ExmInstallButton, exm_install_button, EXM, INSTALL_BUTTON, GtkButton) ExmInstallButton *exm_install_button_new (void); G_END_DECLS extension-manager-0.5.0/src/exm-installed-page.blp000066400000000000000000000041071457631363100221210ustar00rootroot00000000000000using Gtk 4.0; using Adw 1; template $ExmInstalledPage : Gtk.Widget { notify::manager => $on_bind_manager(); Gtk.Box { orientation: vertical; Gtk.ScrolledWindow { vexpand: true; Gtk.Box { orientation: vertical; Adw.Clamp { Gtk.Box { styles ["content"] orientation: vertical; spacing: 10; Gtk.ListBox { styles ["boxed-list"] valign: start; selection-mode: none; Adw.SwitchRow global_toggle { [prefix] Gtk.Image { icon-name: 'puzzle-piece-symbolic'; } title: _("Use Extensions"); subtitle: _("Extensions can cause performance and stability issues."); } } Gtk.Label { styles ["heading"] xalign: 0; margin-top: 20; label: _("User-Installed Extensions"); } Gtk.ListBox user_list_box { styles ["boxed-list", "boxed-list-placeholder"] valign: start; selection-mode: none; } Gtk.Label { styles ["heading"] xalign: 0; margin-top: 20; label: _("System Extensions"); } Gtk.ListBox system_list_box { styles ["boxed-list", "boxed-list-placeholder"] valign: start; selection-mode: none; } } } } } Gtk.Revealer updates_action_bar { reveal-child: false; transition-type: slide_up; Gtk.Box { styles ["actionbar", "update-bar"] spacing: 12; Gtk.Image update_icon { styles ["update"] icon-name: "software-update-available-symbolic"; pixel-size: 24; valign: center; halign: center; } Gtk.Box { orientation: vertical; valign: center; hexpand: true; Gtk.Label { styles ["heading"] xalign: 0; label: _("Updates are available"); ellipsize: end; } Gtk.Label num_updates_label { xalign: 0; ellipsize: end; } } [end] Gtk.Button { styles ["suggested-action"] valign: center; halign: center; label: _("Log Out"); action-name: "app.logout"; } } } } } extension-manager-0.5.0/src/exm-installed-page.c000066400000000000000000000257671457631363100216050ustar00rootroot00000000000000#include "exm-installed-page.h" #include "exm-extension-row.h" #include "local/exm-manager.h" #include "exm-enums.h" #include "exm-types.h" #include "exm-config.h" #include struct _ExmInstalledPage { GtkWidget parent_instance; ExmManager *manager; // Template Widgets GtkListBox *user_list_box; GtkListBox *system_list_box; GtkLabel *num_updates_label; GtkRevealer *updates_action_bar; AdwSwitchRow *global_toggle; gboolean sort_enabled_first; }; G_DEFINE_FINAL_TYPE (ExmInstalledPage, exm_installed_page, GTK_TYPE_WIDGET) enum { PROP_0, PROP_MANAGER, PROP_SORT_ENABLED_FIRST, N_PROPS }; static GParamSpec *properties [N_PROPS]; static void invalidate_model_bindings (ExmInstalledPage *self); ExmInstalledPage * exm_installed_page_new (void) { return g_object_new (EXM_TYPE_INSTALLED_PAGE, NULL); } static void exm_installed_page_finalize (GObject *object) { GtkWidget *child; ExmInstalledPage *self = (ExmInstalledPage *)object; child = gtk_widget_get_first_child (GTK_WIDGET (self)); gtk_widget_unparent (child); G_OBJECT_CLASS (exm_installed_page_parent_class)->finalize (object); } static void exm_installed_page_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ExmInstalledPage *self = EXM_INSTALLED_PAGE (object); switch (prop_id) { case PROP_MANAGER: g_value_set_object (value, self->manager); break; case PROP_SORT_ENABLED_FIRST: g_value_set_boolean (value, self->sort_enabled_first); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void exm_installed_page_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ExmInstalledPage *self = EXM_INSTALLED_PAGE (object); switch (prop_id) { case PROP_MANAGER: self->manager = g_value_get_object (value); break; case PROP_SORT_ENABLED_FIRST: self->sort_enabled_first = g_value_get_boolean (value); invalidate_model_bindings (self); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static GtkWidget * widget_factory (ExmExtension *extension, ExmInstalledPage *self) { ExmExtensionRow *row; g_return_if_fail (EXM_IS_EXTENSION (extension)); g_return_if_fail (EXM_IS_INSTALLED_PAGE (self)); row = exm_extension_row_new (extension, self->manager); return GTK_WIDGET (row); } static int compare_enabled (ExmExtension *this, ExmExtension *other) { g_return_if_fail (EXM_IS_EXTENSION (this)); g_return_if_fail (EXM_IS_EXTENSION (other)); ExmExtensionState this_state; ExmExtensionState other_state; g_object_get (this, "state", &this_state, NULL); g_object_get (other, "state", &other_state, NULL); gboolean this_enabled = (this_state == EXM_EXTENSION_STATE_ACTIVE); gboolean other_enabled = (other_state == EXM_EXTENSION_STATE_ACTIVE); if ((this_enabled && other_enabled) || (!this_enabled && !other_enabled)) return 0; else if (this_enabled && !other_enabled) return -1; else if (!this_enabled && other_enabled) return 1; } static void bind_list_box (GtkListBox *list_box, GListModel *model, gboolean sort_enabled_first, ExmInstalledPage *self) { GtkExpression *expression; GtkStringSorter *alphabetical_sorter; GtkSortListModel *sorted_model; g_return_if_fail (GTK_IS_LIST_BOX (list_box)); g_return_if_fail (G_IS_LIST_MODEL (model)); // Sort alphabetically expression = gtk_property_expression_new (EXM_TYPE_EXTENSION, NULL, "display-name"); alphabetical_sorter = gtk_string_sorter_new (expression); if (sort_enabled_first) { GtkCustomSorter *enabled_sorter; GtkMultiSorter *multi_sorter; // Sort by enabled enabled_sorter = gtk_custom_sorter_new ((GCompareDataFunc) compare_enabled, NULL, NULL); multi_sorter = gtk_multi_sorter_new (); gtk_multi_sorter_append (multi_sorter, GTK_SORTER (enabled_sorter)); gtk_multi_sorter_append (multi_sorter, GTK_SORTER (alphabetical_sorter)); sorted_model = gtk_sort_list_model_new (model, GTK_SORTER (multi_sorter)); } else { sorted_model = gtk_sort_list_model_new (model, GTK_SORTER (alphabetical_sorter)); } gtk_list_box_bind_model (list_box, G_LIST_MODEL (sorted_model), (GtkListBoxCreateWidgetFunc) widget_factory, self, NULL); } static guint show_updates_bar (ExmInstalledPage *self) { gtk_revealer_set_reveal_child (self->updates_action_bar, TRUE); return G_SOURCE_REMOVE; } static void on_updates_available (ExmManager *manager, int n_updates, ExmInstalledPage *self) { char *label; // Translators: '%d' = number of extensions that will be updated label = g_strdup_printf(ngettext("One extension will be updated on next login.", "%d extensions will be updated on next login.", n_updates), n_updates); gtk_label_set_label (self->num_updates_label, label); g_free (label); // Short delay to draw user attention g_timeout_add (500, G_SOURCE_FUNC (show_updates_bar), self); } static void invalidate_model_bindings (ExmInstalledPage *self) { GListModel *user_ext_model; GListModel *system_ext_model; if (!self->manager) return; g_object_get (self->manager, "user-extensions", &user_ext_model, "system-extensions", &system_ext_model, NULL); if (user_ext_model) bind_list_box (self->user_list_box, user_ext_model, self->sort_enabled_first, self); if (system_ext_model) bind_list_box (self->system_list_box, system_ext_model, self->sort_enabled_first, self); } static void on_bind_manager (ExmInstalledPage *self) { // Bind (or rebind) models invalidate_model_bindings (self); g_signal_connect (self->manager, "updates-available", G_CALLBACK (on_updates_available), self); g_object_bind_property (self->manager, "extensions-enabled", self->global_toggle, "active", G_BINDING_BIDIRECTIONAL|G_BINDING_SYNC_CREATE); g_object_bind_property (self->manager, "extensions-enabled", self->user_list_box, "sensitive", G_BINDING_SYNC_CREATE); g_object_bind_property (self->manager, "extensions-enabled", self->system_list_box, "sensitive", G_BINDING_SYNC_CREATE); // Check if updates are available // NOTE: We need to do this *after* connecting the signal // handler above, otherwise we will not be notified. exm_manager_check_for_updates (self->manager); } static void exm_installed_page_class_init (ExmInstalledPageClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_installed_page_finalize; object_class->get_property = exm_installed_page_get_property; object_class->set_property = exm_installed_page_set_property; properties [PROP_MANAGER] = g_param_spec_object ("manager", "Manager", "Manager", EXM_TYPE_MANAGER, G_PARAM_READWRITE); properties [PROP_SORT_ENABLED_FIRST] = g_param_spec_boolean ("sort-enabled-first", "Sort Enabled First", "Sort Enabled First", FALSE, G_PARAM_READWRITE); g_object_class_install_properties (object_class, N_PROPS, properties); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); gtk_widget_class_set_template_from_resource (widget_class, "/com/mattjakeman/ExtensionManager/exm-installed-page.ui"); gtk_widget_class_bind_template_child (widget_class, ExmInstalledPage, user_list_box); gtk_widget_class_bind_template_child (widget_class, ExmInstalledPage, system_list_box); gtk_widget_class_bind_template_child (widget_class, ExmInstalledPage, num_updates_label); gtk_widget_class_bind_template_child (widget_class, ExmInstalledPage, updates_action_bar); gtk_widget_class_bind_template_child (widget_class, ExmInstalledPage, global_toggle); gtk_widget_class_bind_template_callback (widget_class, on_bind_manager); gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BIN_LAYOUT); } static GtkWidget * create_user_placeholder () { GtkWidget *row, *button, *icon; row = adw_action_row_new (); button = gtk_button_new_with_label (_("Browse")); icon = gtk_image_new_from_icon_name ("globe-symbolic"); gtk_widget_set_valign (button, GTK_ALIGN_CENTER); gtk_widget_set_halign (button, GTK_ALIGN_CENTER); gtk_actionable_set_action_name (GTK_ACTIONABLE (button), "win.show-page"); gtk_actionable_set_action_target (GTK_ACTIONABLE (button), "s", "browse"); adw_action_row_add_prefix (ADW_ACTION_ROW (row), icon); adw_preferences_row_set_title (ADW_PREFERENCES_ROW (row), _("There are no user extensions installed.")); adw_action_row_add_suffix (ADW_ACTION_ROW (row), button); return row; } static GtkWidget * create_system_placeholder () { GtkWidget *row, *icon; row = adw_action_row_new (); icon = gtk_image_new_from_icon_name ("settings-symbolic"); adw_action_row_add_prefix (ADW_ACTION_ROW (row), icon); adw_preferences_row_set_title (ADW_PREFERENCES_ROW (row), _("There are no system extensions installed.")); return row; } static void exm_installed_page_init (ExmInstalledPage *self) { GSettings *settings; gtk_widget_init_template (GTK_WIDGET (self)); settings = g_settings_new (APP_ID); g_settings_bind (settings, "sort-enabled-first", self, "sort-enabled-first", G_SETTINGS_BIND_GET); g_object_unref (settings); gtk_list_box_set_placeholder (self->user_list_box, create_user_placeholder ()); gtk_list_box_set_placeholder (self->system_list_box, create_system_placeholder ()); } extension-manager-0.5.0/src/exm-installed-page.h000066400000000000000000000004441457631363100215730ustar00rootroot00000000000000#pragma once #include #include G_BEGIN_DECLS #define EXM_TYPE_INSTALLED_PAGE (exm_installed_page_get_type()) G_DECLARE_FINAL_TYPE (ExmInstalledPage, exm_installed_page, EXM, INSTALLED_PAGE, GtkWidget) ExmInstalledPage *exm_installed_page_new (void); G_END_DECLS extension-manager-0.5.0/src/exm-rating.blp000066400000000000000000000003461457631363100205150ustar00rootroot00000000000000using Gtk 4.0; template $ExmRating : Gtk.Widget { Gtk.Box { orientation: horizontal; Gtk.Image star_one {} Gtk.Image star_two {} Gtk.Image star_three {} Gtk.Image star_four {} Gtk.Image star_five {} } } extension-manager-0.5.0/src/exm-rating.c000066400000000000000000000077011457631363100201640ustar00rootroot00000000000000#include "exm-rating.h" struct _ExmRating { GtkWidget parent_instance; int rating; GtkImage *star_one; GtkImage *star_two; GtkImage *star_three; GtkImage *star_four; GtkImage *star_five; }; G_DEFINE_FINAL_TYPE (ExmRating, exm_rating, GTK_TYPE_WIDGET) enum { PROP_0, PROP_RATING, N_PROPS }; static GParamSpec *properties [N_PROPS]; ExmRating * exm_rating_new (void) { return g_object_new (EXM_TYPE_RATING, NULL); } static void exm_rating_finalize (GObject *object) { ExmRating *self = (ExmRating *)object; G_OBJECT_CLASS (exm_rating_parent_class)->finalize (object); } void update_rating (ExmRating *self); static void exm_rating_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ExmRating *self = EXM_RATING (object); switch (prop_id) { case PROP_RATING: g_value_set_int (value, self->rating); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void exm_rating_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ExmRating *self = EXM_RATING (object); switch (prop_id) { case PROP_RATING: self->rating = g_value_get_int (value); update_rating (self); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } #define FILLED_ICON_NAME "star-filled-rounded-symbolic" #define EMPTY_ICON_NAME "star-outline-rounded-symbolic" void update_rating (ExmRating *self) { gtk_image_set_from_icon_name (self->star_one, EMPTY_ICON_NAME); gtk_image_set_from_icon_name (self->star_two, EMPTY_ICON_NAME); gtk_image_set_from_icon_name (self->star_three, EMPTY_ICON_NAME); gtk_image_set_from_icon_name (self->star_four, EMPTY_ICON_NAME); gtk_image_set_from_icon_name (self->star_five, EMPTY_ICON_NAME); switch (self->rating) { case 5: gtk_image_set_from_icon_name (self->star_five, FILLED_ICON_NAME); case 4: gtk_image_set_from_icon_name (self->star_four, FILLED_ICON_NAME); case 3: gtk_image_set_from_icon_name (self->star_three, FILLED_ICON_NAME); case 2: gtk_image_set_from_icon_name (self->star_two, FILLED_ICON_NAME); case 1: gtk_image_set_from_icon_name (self->star_one, FILLED_ICON_NAME); case 0: default: break; } } static void exm_rating_class_init (ExmRatingClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_rating_finalize; object_class->get_property = exm_rating_get_property; object_class->set_property = exm_rating_set_property; properties [PROP_RATING] = g_param_spec_int ("rating", "Rating", "Rating", 0, G_MAXINT, 0, G_PARAM_READWRITE); g_object_class_install_properties (object_class, N_PROPS, properties); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); gtk_widget_class_set_template_from_resource (widget_class, "/com/mattjakeman/ExtensionManager/exm-rating.ui"); gtk_widget_class_bind_template_child (widget_class, ExmRating, star_one); gtk_widget_class_bind_template_child (widget_class, ExmRating, star_two); gtk_widget_class_bind_template_child (widget_class, ExmRating, star_three); gtk_widget_class_bind_template_child (widget_class, ExmRating, star_four); gtk_widget_class_bind_template_child (widget_class, ExmRating, star_five); gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BIN_LAYOUT); gtk_widget_class_set_css_name (widget_class, "rating"); } static void exm_rating_init (ExmRating *self) { gtk_widget_init_template (GTK_WIDGET (self)); update_rating (self); } extension-manager-0.5.0/src/exm-rating.h000066400000000000000000000003311457631363100201610ustar00rootroot00000000000000#pragma once #include G_BEGIN_DECLS #define EXM_TYPE_RATING (exm_rating_get_type()) G_DECLARE_FINAL_TYPE (ExmRating, exm_rating, EXM, RATING, GtkWidget) ExmRating *exm_rating_new (void); G_END_DECLS extension-manager-0.5.0/src/exm-screenshot-view.blp000066400000000000000000000032641457631363100223600ustar00rootroot00000000000000using Gtk 4.0; using Adw 1; template $ExmScreenshotView: Adw.NavigationPage { styles [ "tint" ] tag: "screenshot-view"; Adw.ToolbarView { [top] Adw.HeaderBar {} content: Gtk.Overlay { [overlay] Gtk.Overlay image_overlay { [overlay] Gtk.Box { orientation: horizontal; spacing: 12; halign: end; valign: end; margin-top: 18; margin-bottom: 18; margin-start: 18; margin-end: 18; Gtk.Button { styles [ "osd", "circular" ] icon-name: "zoom-out-symbolic"; tooltip-text: _("Zoom Out"); action-name: "screenshot.zoom-out"; height-request: 42; width-request: 42; } Gtk.Button { styles [ "osd", "circular" ] icon-name: "zoom-in-symbolic"; tooltip-text: _("Zoom In"); action-name: "screenshot.zoom-in"; height-request: 42; width-request: 42; } } Adw.Bin { hexpand: true; vexpand: true; $ExmZoomPicture overlay_screenshot { notify::zoom-level => $notify_zoom(); } } } }; } Gtk.ShortcutController { scope: managed; Gtk.Shortcut { trigger: "plus"; action: "action(screenshot.zoom-in)"; } Gtk.Shortcut { trigger: "minus"; action: "action(screenshot.zoom-out)"; } Gtk.Shortcut { trigger: "0"; action: "action(screenshot.zoom-reset)"; } } } extension-manager-0.5.0/src/exm-screenshot-view.c000066400000000000000000000064401457631363100220240ustar00rootroot00000000000000#include "exm-screenshot-view.h" #include "exm-zoom-picture.h" struct _ExmScreenshotView { AdwNavigationPage parent_instance; GSimpleAction *zoom_in; GSimpleAction *zoom_out; GSimpleAction *zoom_reset; ExmZoomPicture *overlay_screenshot; }; G_DEFINE_FINAL_TYPE (ExmScreenshotView, exm_screenshot_view, ADW_TYPE_NAVIGATION_PAGE) ExmScreenshotView * exm_screenshot_view_new (void) { return g_object_new (EXM_TYPE_SCREENSHOT_VIEW, NULL); } static void exm_screenshot_view_finalize (GObject *object) { ExmScreenshotView *self = (ExmScreenshotView *)object; G_OBJECT_CLASS (exm_screenshot_view_parent_class)->finalize (object); } void exm_screenshot_view_set_screenshot (ExmScreenshotView *self, GdkPaintable *paintable) { exm_zoom_picture_set_paintable (self->overlay_screenshot, paintable); exm_zoom_picture_set_zoom_level (self->overlay_screenshot, 1.0f); } static void notify_zoom (ExmZoomPicture *picture, GParamSpec *pspec, ExmScreenshotView *self) { float zoom_level; float max_zoom; float min_zoom; zoom_level = exm_zoom_picture_get_zoom_level (picture); max_zoom = exm_zoom_picture_get_zoom_level_max (picture); min_zoom = exm_zoom_picture_get_zoom_level_min (picture); // Set action states if (zoom_level < max_zoom) g_simple_action_set_enabled (self->zoom_in, TRUE); if (zoom_level == max_zoom) g_simple_action_set_enabled (self->zoom_in, FALSE); if (zoom_level > min_zoom) g_simple_action_set_enabled (self->zoom_out, TRUE); if (zoom_level == min_zoom) g_simple_action_set_enabled (self->zoom_out, FALSE); } static void exm_screenshot_view_class_init (ExmScreenshotViewClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_screenshot_view_finalize; GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); gtk_widget_class_set_template_from_resource (widget_class, "/com/mattjakeman/ExtensionManager/exm-screenshot-view.ui"); gtk_widget_class_bind_template_child (widget_class, ExmScreenshotView, overlay_screenshot); gtk_widget_class_bind_template_callback (widget_class, notify_zoom); } static void exm_screenshot_view_init (ExmScreenshotView *self) { GSimpleActionGroup *group; gtk_widget_init_template (GTK_WIDGET (self)); self->zoom_in = g_simple_action_new ("zoom-in", NULL); g_signal_connect_swapped (self->zoom_in, "activate", G_CALLBACK (exm_zoom_picture_zoom_in), self->overlay_screenshot); self->zoom_out = g_simple_action_new ("zoom-out", NULL); g_signal_connect_swapped (self->zoom_out, "activate", G_CALLBACK (exm_zoom_picture_zoom_out), self->overlay_screenshot); self->zoom_reset = g_simple_action_new ("zoom-reset", NULL); g_signal_connect_swapped (self->zoom_reset, "activate", G_CALLBACK (exm_zoom_picture_zoom_reset), self->overlay_screenshot); group = g_simple_action_group_new (); g_action_map_add_action (G_ACTION_MAP (group), G_ACTION (self->zoom_in)); g_action_map_add_action (G_ACTION_MAP (group), G_ACTION (self->zoom_out)); g_action_map_add_action (G_ACTION_MAP (group), G_ACTION (self->zoom_reset)); gtk_widget_insert_action_group (GTK_WIDGET (self), "screenshot", G_ACTION_GROUP (group)); } extension-manager-0.5.0/src/exm-screenshot-view.h000066400000000000000000000006461457631363100220330ustar00rootroot00000000000000# pragma once #include G_BEGIN_DECLS #define EXM_TYPE_SCREENSHOT_VIEW (exm_screenshot_view_get_type()) G_DECLARE_FINAL_TYPE (ExmScreenshotView, exm_screenshot_view, EXM, SCREENSHOT_VIEW, AdwNavigationPage) ExmScreenshotView * exm_screenshot_view_new (void); void exm_screenshot_view_set_screenshot (ExmScreenshotView *self, GdkPaintable *paintable); G_END_DECLS extension-manager-0.5.0/src/exm-screenshot.blp000066400000000000000000000006101457631363100214000ustar00rootroot00000000000000using Gtk 4.0; template $ExmScreenshot : Gtk.Widget { Gtk.Stack stack { transition-type: crossfade; Gtk.StackPage { name: "page_spinner"; child: Gtk.Image { icon-name: "image-loading-symbolic"; icon-size: large; valign: center; }; } Gtk.StackPage { name: "page_picture"; child: Gtk.Picture picture { valign: fill; halign: fill; }; } } } extension-manager-0.5.0/src/exm-screenshot.c000066400000000000000000000105541457631363100210550ustar00rootroot00000000000000#include "exm-screenshot.h" #include "exm-zoom-picture.h" struct _ExmScreenshot { GtkWidget parent_instance; GtkPicture *picture; GtkStack *stack; }; G_DEFINE_FINAL_TYPE (ExmScreenshot, exm_screenshot, GTK_TYPE_WIDGET) enum { PROP_0, N_PROPS }; static GParamSpec *properties [N_PROPS]; ExmScreenshot * exm_screenshot_new (void) { return g_object_new (EXM_TYPE_SCREENSHOT, NULL); } static void exm_screenshot_finalize (GObject *object) { GtkWidget *child; ExmScreenshot *self = (ExmScreenshot *)object; child = gtk_widget_get_first_child (GTK_WIDGET (self)); gtk_widget_unparent (child); G_OBJECT_CLASS (exm_screenshot_parent_class)->finalize (object); } static void exm_screenshot_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ExmScreenshot *self = EXM_SCREENSHOT (object); switch (prop_id) { default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void exm_screenshot_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ExmScreenshot *self = EXM_SCREENSHOT (object); switch (prop_id) { default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } void exm_screenshot_set_paintable (ExmScreenshot *self, GdkPaintable *paintable) { gtk_picture_set_paintable (self->picture, paintable); } void exm_screenshot_reset (ExmScreenshot *self) { gtk_stack_set_visible_child_name (self->stack, "page_spinner"); } void exm_screenshot_display (ExmScreenshot *self) { gtk_stack_set_visible_child_name (self->stack, "page_picture"); } static void exm_screenshot_measure (GtkWidget *widget, GtkOrientation orientation, int for_size, int *minimum, int *natural, int *minimum_baseline, int *natural_baseline) { ExmScreenshot *self = EXM_SCREENSHOT (widget); if (orientation == GTK_ORIENTATION_VERTICAL) { gtk_widget_measure (GTK_WIDGET (self->stack), GTK_ORIENTATION_VERTICAL, for_size, minimum, natural, minimum_baseline, natural_baseline); int height = (for_size / 16.0f) * 9.0f; // 16:9 images *natural = *minimum = height; } else if (orientation == GTK_ORIENTATION_HORIZONTAL) { gtk_widget_measure (GTK_WIDGET (self->stack), GTK_ORIENTATION_HORIZONTAL, for_size, minimum, natural, minimum_baseline, natural_baseline); } } static GtkSizeRequestMode exm_screenshot_get_request_mode (GtkWidget *widget) { return GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH; } static void exm_screenshot_size_allocate (GtkWidget *widget, int width, int height, int baseline) { ExmScreenshot *self = EXM_SCREENSHOT (widget); gtk_widget_size_allocate (GTK_WIDGET (self->stack), &(const GtkAllocation){0, 0, width, height}, baseline); } static void exm_screenshot_class_init (ExmScreenshotClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_screenshot_finalize; object_class->get_property = exm_screenshot_get_property; object_class->set_property = exm_screenshot_set_property; GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); gtk_widget_class_set_template_from_resource (widget_class, "/com/mattjakeman/ExtensionManager/exm-screenshot.ui"); widget_class->get_request_mode = exm_screenshot_get_request_mode; widget_class->measure = exm_screenshot_measure; widget_class->size_allocate = exm_screenshot_size_allocate; g_type_ensure (EXM_TYPE_ZOOM_PICTURE); gtk_widget_class_bind_template_child (widget_class, ExmScreenshot, picture); gtk_widget_class_bind_template_child (widget_class, ExmScreenshot, stack); } static void exm_screenshot_init (ExmScreenshot *self) { gtk_widget_init_template (GTK_WIDGET (self)); } extension-manager-0.5.0/src/exm-screenshot.h000066400000000000000000000007351457631363100210620ustar00rootroot00000000000000#pragma once #include G_BEGIN_DECLS #define EXM_TYPE_SCREENSHOT (exm_screenshot_get_type()) G_DECLARE_FINAL_TYPE (ExmScreenshot, exm_screenshot, EXM, SCREENSHOT, GtkWidget) ExmScreenshot *exm_screenshot_new (void); void exm_screenshot_set_paintable (ExmScreenshot *self, GdkPaintable *paintable); void exm_screenshot_reset (ExmScreenshot *self); void exm_screenshot_display (ExmScreenshot *self); G_END_DECLS extension-manager-0.5.0/src/exm-search-row.blp000066400000000000000000000031011457631363100212730ustar00rootroot00000000000000using Gtk 4.0; using Adw 1; template $ExmSearchRow: Gtk.ListBoxRow { styles [ "search-row" ] activatable: true; action-name: "win.show-detail"; Gtk.Box header { styles [ "header" ] hexpand: true; spacing: 10; Gtk.Grid { hexpand: true; column-spacing: 10; Gtk.Box { hexpand: true; orientation: vertical; valign: center; Gtk.Label title { styles [ "title" ] ellipsize: end; xalign: 0; label: bind template.search-result as <$ExmSearchResult>.name; } Gtk.Label subtitle { styles [ "subtitle" ] ellipsize: end; xalign: 0; label: bind template.search-result as <$ExmSearchResult>.creator; } layout { row: 0; column: 1; } } Gtk.Label description_label { styles [ "dim-label" ] margin-top: 5; single-line-mode: true; xalign: 0; wrap: true; wrap-mode: word_char; ellipsize: end; lines: 2; label: bind template.search-result as <$ExmSearchResult>.description; layout { row: 1; column: 1; } } } $ExmInstallButton install_btn { valign: center; halign: end; clicked => $install_remote(); } Gtk.Image { styles [ "expander-row-arrow" ] valign: center; halign: end; icon-name: "go-next-symbolic"; } } } extension-manager-0.5.0/src/exm-search-row.c000066400000000000000000000130311457631363100207430ustar00rootroot00000000000000#include "exm-search-row.h" #include "exm-install-button.h" #include "exm-types.h" #include "exm-enums.h" #include struct _ExmSearchRow { GtkListBoxRow parent_instance; ExmSearchResult *search_result; gboolean is_installed; gboolean is_supported; gchar *uuid; ExmInstallButton *install_btn; }; G_DEFINE_FINAL_TYPE (ExmSearchRow, exm_search_row, GTK_TYPE_LIST_BOX_ROW) enum { PROP_0, PROP_SEARCH_RESULT, PROP_IS_INSTALLED, PROP_IS_SUPPORTED, N_PROPS }; static GParamSpec *properties [N_PROPS]; ExmSearchRow * exm_search_row_new (ExmSearchResult *search_result, gboolean is_installed, gboolean is_supported) { return g_object_new (EXM_TYPE_SEARCH_ROW, "search-result", search_result, "is-installed", is_installed, "is-supported", is_supported, NULL); } static void exm_search_row_finalize (GObject *object) { ExmSearchRow *self = (ExmSearchRow *)object; G_OBJECT_CLASS (exm_search_row_parent_class)->finalize (object); } static void exm_search_row_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ExmSearchRow *self = EXM_SEARCH_ROW (object); switch (prop_id) { case PROP_SEARCH_RESULT: g_value_set_object (value, self->search_result); break; case PROP_IS_INSTALLED: g_value_set_boolean (value, self->is_installed); break; case PROP_IS_SUPPORTED: g_value_set_boolean (value, self->is_supported); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void exm_search_row_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ExmSearchRow *self = EXM_SEARCH_ROW (object); switch (prop_id) { case PROP_SEARCH_RESULT: self->search_result = g_value_get_object (value); if (self->search_result) { // TODO: Bind here, rather than in constructed() g_object_get (self->search_result, "uuid", &self->uuid, NULL); } break; case PROP_IS_INSTALLED: self->is_installed = g_value_get_boolean (value); break; case PROP_IS_SUPPORTED: self->is_supported = g_value_get_boolean (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void install_remote (GtkButton *button, ExmSearchRow *self) { gboolean warn; ExmInstallButtonState state; g_object_get (self->install_btn, "state", &state, NULL); warn = (state == EXM_INSTALL_BUTTON_STATE_UNSUPPORTED); gtk_widget_activate_action (GTK_WIDGET (button), "ext.install", "(sb)", self->uuid, warn); } static void exm_search_row_constructed (GObject *object) { ExmSearchRow *self = EXM_SEARCH_ROW (object); ExmInstallButtonState install_state; gchar *uuid; g_object_get (self->search_result, "uuid", &uuid, NULL); gtk_actionable_set_action_target (GTK_ACTIONABLE (self), "s", uuid); install_state = self->is_installed ? EXM_INSTALL_BUTTON_STATE_INSTALLED : (self->is_supported ? EXM_INSTALL_BUTTON_STATE_DEFAULT : EXM_INSTALL_BUTTON_STATE_UNSUPPORTED); g_object_set (self->install_btn, "state", install_state, NULL); G_OBJECT_CLASS (exm_search_row_parent_class)->constructed (object); } static void exm_search_row_class_init (ExmSearchRowClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_search_row_finalize; object_class->get_property = exm_search_row_get_property; object_class->set_property = exm_search_row_set_property; object_class->constructed = exm_search_row_constructed; properties [PROP_SEARCH_RESULT] = g_param_spec_object ("search-result", "Search Result", "Search Result", EXM_TYPE_SEARCH_RESULT, G_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY); properties [PROP_IS_INSTALLED] = g_param_spec_boolean ("is-installed", "Is Installed", "Is Installed", FALSE, G_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY); properties [PROP_IS_SUPPORTED] = g_param_spec_boolean ("is-supported", "Is Supported", "Is Supported", FALSE, G_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY); g_object_class_install_properties (object_class, N_PROPS, properties); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); gtk_widget_class_set_template_from_resource (widget_class, "/com/mattjakeman/ExtensionManager/exm-search-row.ui"); gtk_widget_class_bind_template_child (widget_class, ExmSearchRow, install_btn); gtk_widget_class_bind_template_callback (widget_class, install_remote); } static void exm_search_row_init (ExmSearchRow *self) { gtk_widget_init_template (GTK_WIDGET (self)); } extension-manager-0.5.0/src/exm-search-row.h000066400000000000000000000006751457631363100207620ustar00rootroot00000000000000#pragma once #include #include "web/model/exm-search-result.h" G_BEGIN_DECLS #define EXM_TYPE_SEARCH_ROW (exm_search_row_get_type()) G_DECLARE_FINAL_TYPE (ExmSearchRow, exm_search_row, EXM, SEARCH_ROW, GtkListBoxRow) ExmSearchRow *exm_search_row_new (ExmSearchResult *search_result, gboolean is_installed, gboolean is_supported); G_END_DECLS extension-manager-0.5.0/src/exm-types.h000066400000000000000000000014161457631363100200460ustar00rootroot00000000000000#pragma once // Should really be in the `local/` subdirectory but meson's mkenums // has trouble with relative paths... typedef enum { EXM_EXTENSION_TYPE_SYSTEM = 1, EXM_EXTENSION_TYPE_PER_USER = 2, } ExmExtensionType; typedef enum { EXM_EXTENSION_STATE_ACTIVE = 1, EXM_EXTENSION_STATE_INACTIVE = 2, EXM_EXTENSION_STATE_ERROR = 3, EXM_EXTENSION_STATE_OUT_OF_DATE = 4, EXM_EXTENSION_STATE_DOWNLOADING = 5, EXM_EXTENSION_STATE_INITIALIZED = 6, EXM_EXTENSION_STATE_DEACTIVATING = 7, EXM_EXTENSION_STATE_ACTIVATING = 8, EXM_EXTENSION_STATE_UNINSTALLED = 99, } ExmExtensionState; typedef enum { EXM_INSTALL_BUTTON_STATE_DEFAULT, EXM_INSTALL_BUTTON_STATE_INSTALLED, EXM_INSTALL_BUTTON_STATE_UNSUPPORTED } ExmInstallButtonState; extension-manager-0.5.0/src/exm-upgrade-assistant.blp000066400000000000000000000056731457631363100226770ustar00rootroot00000000000000using Gtk 4.0; using Adw 1; template $ExmUpgradeAssistant : Adw.Dialog { content-width: 400; content-height: 600; title: _("Upgrade Assistant"); notify::manager => $on_bind_manager(); child: Adw.ToolbarView { [top] Adw.HeaderBar {} content: Gtk.Stack stack { Gtk.StackPage version_select { name: "version-select"; child: Adw.Clamp { Gtk.Box { styles ["detail"] orientation: vertical; spacing: 15; vexpand: true; Gtk.Image { icon-name: "software-update-available-symbolic"; icon-size: large; } Gtk.Box { vexpand: true; orientation: vertical; Gtk.Label description { wrap: true; } Gtk.DropDown drop_down { halign: center; margin-top: 24; } } Gtk.Button run_button { styles ["pill"] label: _("_Check Compatibility"); halign: center; valign: end; use-underline: true; clicked => $do_compatibility_check() swapped; } } }; } Gtk.StackPage waiting { name: "waiting"; child: Gtk.Box { orientation: vertical; spacing: 12; valign: center; Gtk.Spinner { spinning: true; height-request: 32; width-request: 32; } Gtk.Label counter { styles ["title-2"] } }; } Gtk.StackPage results { name: "results"; child: Gtk.ScrolledWindow { hscrollbar-policy: never; child: Adw.Clamp { child: Gtk.Box { styles ["content"] orientation: vertical; vexpand: true; spacing: 24; Gtk.Label summary { wrap: true; } Gtk.ProgressBar progress_bar { show-text: true; margin-start: 24; margin-end: 24; } Gtk.Box { orientation: vertical; spacing: 10; Gtk.Label { styles ["heading"] xalign: 0; margin-top: 20; label: _("User-Installed Extensions"); } Gtk.ListBox user_list_box { styles ["boxed-list"] valign: start; selection-mode: none; } Gtk.Label { styles ["heading"] xalign: 0; margin-top: 20; label: _("System Extensions"); } Gtk.ListBox system_list_box { styles ["boxed-list"] valign: start; selection-mode: none; } } Gtk.Button copy_details { label: _("_Copy to Clipboard"); halign: center; use-underline: true; clicked => $copy_to_clipboard() swapped; } }; }; }; } }; }; } extension-manager-0.5.0/src/exm-upgrade-assistant.c000066400000000000000000000540111457631363100223320ustar00rootroot00000000000000/* * exm-upgrade-assistant.c * * Copyright 2022 Matthew Jakeman * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ #include "exm-upgrade-assistant.h" #include "web/exm-data-provider.h" #include "exm-upgrade-result.h" #include struct _ExmUpgradeAssistant { AdwDialog parent_instance; // Auxiliary Classes ExmManager *manager; ExmDataProvider *data_provider; // Version Data gchar *target_shell_version; GHashTable *version_map; // Results Data gchar *current_shell_version; int total_extensions; int number_checked; int number_supported; gboolean waiting_on_tasks; GListStore *user_results_store; GListStore *system_results_store; // Template Widgets GtkStack *stack; // Version Select Page GtkDropDown *drop_down; GtkButton *run_button; GtkLabel *description; // Waiting Page GtkLabel *counter; // Results Page GtkListBox *user_list_box; GtkListBox *system_list_box; GtkProgressBar *progress_bar; GtkLabel *summary; GtkButton *copy_details; }; G_DEFINE_FINAL_TYPE (ExmUpgradeAssistant, exm_upgrade_assistant, ADW_TYPE_DIALOG) enum { PROP_0, PROP_MANAGER, N_PROPS }; static GParamSpec *properties [N_PROPS]; ExmUpgradeAssistant * exm_upgrade_assistant_new (ExmManager *manager) { return g_object_new (EXM_TYPE_UPGRADE_ASSISTANT, "manager", manager, NULL); } static void exm_upgrade_assistant_finalize (GObject *object) { ExmUpgradeAssistant *self = (ExmUpgradeAssistant *)object; G_OBJECT_CLASS (exm_upgrade_assistant_parent_class)->finalize (object); } static void exm_upgrade_assistant_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ExmUpgradeAssistant *self = EXM_UPGRADE_ASSISTANT (object); switch (prop_id) { case PROP_MANAGER: g_value_set_object (value, self->manager); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void exm_upgrade_assistant_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ExmUpgradeAssistant *self = EXM_UPGRADE_ASSISTANT (object); switch (prop_id) { case PROP_MANAGER: self->manager = g_value_get_object (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } typedef struct { ExmExtension *local_data; ExmUpgradeAssistant *assistant; gboolean is_user; } ExtensionCheckData; typedef enum { STATUS_SUPPORTED, STATUS_UNSUPPORTED, STATUS_UNKNOWN, } SupportStatus; static ExtensionCheckData * create_check_data (ExmExtension *local_data, ExmUpgradeAssistant *assistant, gboolean is_user) { ExtensionCheckData* data; data = g_slice_new0 (ExtensionCheckData); data->local_data = g_object_ref (local_data); data->assistant = g_object_ref (assistant); data->is_user = is_user; return data; } static void free_check_data (ExtensionCheckData *data) { if (data) { g_clear_object (&data->local_data); g_clear_object (&data->assistant); g_slice_free (ExtensionCheckData, data); } } static void update_checked_count (ExmUpgradeAssistant *self) { char *text; text = g_strdup_printf (_("Checked %d/%d Extensions"), self->number_checked, self->total_extensions); gtk_label_set_text (self->counter, text); g_free (text); } static void display_results (ExmUpgradeAssistant *self) { char *text; float fraction; // Set progress bar value fraction = (float)self->number_supported / (float)self->total_extensions; gtk_progress_bar_set_fraction (self->progress_bar, fraction); // Set percentage text text = g_strdup_printf (_("%d%% Compatible"), (int)(fraction * 100)); gtk_progress_bar_set_text (self->progress_bar, text); free (text); // Colour according to percentage gtk_widget_remove_css_class (GTK_WIDGET (self->progress_bar), "success"); gtk_widget_remove_css_class (GTK_WIDGET (self->progress_bar), "warning"); gtk_widget_remove_css_class (GTK_WIDGET (self->progress_bar), "error"); if (fraction == 1.0f) { // make green gtk_widget_add_css_class (GTK_WIDGET (self->progress_bar), "success"); } else if (fraction <= 1.0f && fraction > 0.3f) { // make orange gtk_widget_add_css_class (GTK_WIDGET (self->progress_bar), "warning"); } else if (fraction <= 0.3f) { // make red gtk_widget_add_css_class (GTK_WIDGET (self->progress_bar), "error"); } text = _("GNOME %s supports %d out of %d of the extensions currently installed on the system."); text = g_strdup_printf (text, self->target_shell_version, self->number_supported, self->total_extensions); gtk_label_set_markup (self->summary, text); g_free (text); gtk_stack_set_visible_child_name (self->stack, "results"); } static SupportStatus get_support_status (ExmUpgradeResult *result, const char *target_version) { SupportStatus supported; ExmSearchResult *web_data; web_data = exm_upgrade_result_get_web_data (result); if (web_data && exm_search_result_supports_shell_version (web_data, target_version)) supported = STATUS_SUPPORTED; else if (web_data) supported = STATUS_UNSUPPORTED; else supported = STATUS_UNKNOWN; return supported; } static void print_list_model (GListModel *model, GString *string_builder, gchar *target_shell_version) { int num_extensions; gchar *text; int i; num_extensions = g_list_model_get_n_items (model); for (i = 0; i < num_extensions; i++) { ExmUpgradeResult *result; const gchar *name, *creator, *uuid, *url, *supported_text; SupportStatus supported; result = g_list_model_get_item (model, i); name = exm_upgrade_result_get_name (result); creator = exm_upgrade_result_get_creator (result); uuid = exm_upgrade_result_get_uuid (result); supported = get_support_status (result, target_shell_version); text = g_strdup_printf ("'%s' by %s\n", name, creator); g_string_append (string_builder, text); g_free (text); text = g_strdup_printf ("Extension ID: %s\n", uuid); g_string_append (string_builder, text); g_free (text); if (supported == STATUS_SUPPORTED) supported_text = "Yes"; else if (supported == STATUS_UNSUPPORTED) supported_text = "No"; else supported_text = "Unknown"; text = g_strdup_printf ("Supported: %s\n\n", supported_text); g_string_append (string_builder, text); g_free (text); } } static void copy_to_clipboard (ExmUpgradeAssistant *self) { GString *string_builder; gchar *text; float fraction; GdkDisplay *display; GdkClipboard *clipboard; fraction = (float)self->number_supported / (float)self->total_extensions; string_builder = g_string_new ("Extension Manager - Upgrade Assistant Report\n\n"); text = g_strdup_printf ("Currently on: GNOME %s\n", self->current_shell_version); g_string_append (string_builder, text); g_free (text); text = g_strdup_printf ("Upgrading to: GNOME %s\n\n", self->target_shell_version); g_string_append (string_builder, text); g_free (text); text = g_strdup_printf ("On upgrading to GNOME %s, %d out of %d currently\ninstalled extensions will be compatible (%d%%).\n\n", self->target_shell_version, self->number_supported, self->total_extensions, (int)(fraction * 100)); g_string_append (string_builder, text); g_free (text); text = g_strdup_printf ("User-Installed Extensions:\n\n"); g_string_append (string_builder, text); g_free (text); print_list_model (G_LIST_MODEL (self->user_results_store), string_builder, self->target_shell_version); text = g_strdup_printf ("\nSystem Extensions:\n\n"); g_string_append (string_builder, text); g_free (text); print_list_model (G_LIST_MODEL (self->system_results_store), string_builder, self->target_shell_version); // Add to clipboard display = gdk_display_get_default (); clipboard = gdk_display_get_clipboard (display); text = g_string_free (string_builder, FALSE); gdk_clipboard_set_text (clipboard, text); g_free (text); // Success indicator gtk_button_set_label (self->copy_details, _("Copied")); gtk_widget_set_sensitive (GTK_WIDGET (self->copy_details), FALSE); } static void display_extension_result (ExmUpgradeAssistant *self, ExmUpgradeResult *result, gboolean is_user) { if (get_support_status (result, self->target_shell_version) == STATUS_SUPPORTED) { self->number_supported++; } g_list_store_append (is_user ? self->user_results_store : self->system_results_store, result); if (self->waiting_on_tasks && self->number_checked == self->total_extensions) { display_results (self); } } static void on_extension_processed (GObject *source, GAsyncResult *async_result, gpointer user_data) { ExmSearchResult *web_info; GError *error = NULL; ExmUpgradeAssistant *self; ExtensionCheckData *data; ExmUpgradeResult *result; g_return_if_fail (user_data != NULL); data = (ExtensionCheckData *) user_data; self = EXM_UPGRADE_ASSISTANT (data->assistant); self->number_checked++; update_checked_count (self); result = exm_upgrade_result_new (); exm_upgrade_result_set_local_data (result, data->local_data); if ((web_info = exm_data_provider_get_finish (EXM_DATA_PROVIDER (source), async_result, &error)) != FALSE) { exm_upgrade_result_set_web_data (result, web_info); } display_extension_result (self, result, data->is_user); free_check_data (data); } static void do_compatibility_check (ExmUpgradeAssistant *self) { GListModel *user_ext_model; GListModel *system_ext_model; int num_items; int i; int selected; const char *key; GListModel *model; int target_version; selected = gtk_drop_down_get_selected (self->drop_down); model = gtk_drop_down_get_model (self->drop_down); key = gtk_string_list_get_string (GTK_STRING_LIST (model), selected); if (!key) return; target_version = (int) g_hash_table_lookup (self->version_map, key); if (self->target_shell_version) g_free (self->target_shell_version); self->target_shell_version = g_strdup_printf ("%d", target_version); if (!self->manager) return; g_object_get (self->manager, "user-extensions", &user_ext_model, "system-extensions", &system_ext_model, NULL); // Display spinner gtk_stack_set_visible_child_name (self->stack, "waiting"); // Reset variables self->total_extensions = 0; self->number_checked = 0; self->number_supported = 0; self->waiting_on_tasks = FALSE; update_checked_count (self); // Empty results list stores before processing items g_list_store_remove_all (self->user_results_store); g_list_store_remove_all (self->system_results_store); num_items = g_list_model_get_n_items (user_ext_model); for (i = 0; i < num_items; i++) { char *uuid; ExmExtension *extension; ExtensionCheckData *data; extension = EXM_EXTENSION (g_list_model_get_item (user_ext_model, i)); g_object_get (extension, "uuid", &uuid, NULL); g_debug ("Processing: %s\n", uuid); data = create_check_data (extension, self, TRUE); self->total_extensions++; exm_data_provider_get_async (self->data_provider, uuid, NULL, on_extension_processed, data); } num_items = g_list_model_get_n_items (system_ext_model); for (i = 0; i < num_items; i++) { char *uuid; ExmExtension *extension; ExtensionCheckData *data; extension = EXM_EXTENSION (g_list_model_get_item (system_ext_model, i)); g_object_get (extension, "uuid", &uuid, NULL); g_debug ("Processing: %s\n", uuid); data = create_check_data (extension, self, FALSE); self->total_extensions++; exm_data_provider_get_async (self->data_provider, uuid, NULL, on_extension_processed, data); } // Set this flag after all tasks have been dispatched // so we do not accidentally finish too early. self->waiting_on_tasks = TRUE; } static GtkWidget * widget_factory (ExmUpgradeResult *result, ExmUpgradeAssistant *self) { SupportStatus supported; const gchar *name, *creator; GtkWidget *hbox, *vbox, *label, *status; g_return_val_if_fail (EXM_IS_UPGRADE_RESULT (result), NULL); name = exm_upgrade_result_get_name (result); creator = exm_upgrade_result_get_creator (result); supported = get_support_status (result, self->target_shell_version); // TODO: Append icon? hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4); gtk_widget_add_css_class (hbox, "upgrade-assistant-result"); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 4); gtk_widget_set_hexpand (vbox, TRUE); gtk_box_append (GTK_BOX (hbox), vbox); label = gtk_label_new (name); gtk_label_set_ellipsize (GTK_LABEL (label), PANGO_ELLIPSIZE_END); gtk_label_set_xalign (GTK_LABEL (label), 0.0f); gtk_widget_add_css_class (label, "heading"); gtk_box_append (GTK_BOX (vbox), label); label = gtk_label_new (creator); gtk_label_set_xalign (GTK_LABEL (label), 0.0f); gtk_widget_add_css_class (label, "dim-label"); gtk_box_append (GTK_BOX (vbox), label); if (supported == STATUS_SUPPORTED) { status = gtk_label_new (_("Supported")); gtk_widget_add_css_class (status, "success"); gtk_widget_set_tooltip_text (GTK_WIDGET (status), _("A compatible version of the extension exists.")); } else if (supported == STATUS_UNSUPPORTED) { status = gtk_label_new (_("Unsupported")); gtk_widget_add_css_class (status, "error"); gtk_widget_set_tooltip_text (GTK_WIDGET (status), _("No compatible version of the extension exists.")); } else { status = gtk_label_new (_("Unknown")); gtk_widget_add_css_class (status, "warning"); gtk_widget_set_tooltip_text (GTK_WIDGET (status), _("This extension is not hosted on extensions.gnome.org. Its compatibility cannot be determined.")); } gtk_widget_set_valign (status, GTK_ALIGN_CENTER); gtk_widget_set_halign (status, GTK_ALIGN_CENTER); gtk_box_append (GTK_BOX (hbox), status); return GTK_WIDGET (hbox); } static void bind_list_box (ExmUpgradeAssistant *self, GtkListBox *list_box, GListModel *model) { GtkExpression *expression; GtkStringSorter *alphabetical_sorter; GtkSortListModel *sorted_model; g_return_if_fail (GTK_IS_LIST_BOX (list_box)); g_return_if_fail (G_IS_LIST_MODEL (model)); // Sort alphabetically expression = gtk_property_expression_new (EXM_TYPE_UPGRADE_RESULT, NULL, "name"); alphabetical_sorter = gtk_string_sorter_new (expression); sorted_model = gtk_sort_list_model_new (model, GTK_SORTER (alphabetical_sorter)); gtk_list_box_bind_model (list_box, G_LIST_MODEL (sorted_model), (GtkListBoxCreateWidgetFunc) widget_factory, self, NULL); } static void populate_drop_down (ExmUpgradeAssistant *self) { GDateTime *date_time; GtkStringList *string_list; GHashTable *hash_table; int year, month; int current_gnome_version; int index; date_time = g_date_time_new_now_utc (); year = g_date_time_get_year (date_time); month = g_date_time_get_month (date_time); // Two GNOME versions are released per year, once in march // and once in september. Guess/approximate the newest release // of GNOME and make that the default. // GNOME 40 came out in March 2021 current_gnome_version = 40 + (year - 2021) * 2; // If we are between march and september, then it is // an even numbered release, otherwise use an odd numbered // release. if (month < G_DATE_MARCH) current_gnome_version -= 1; else if (month >= G_DATE_SEPTEMBER) current_gnome_version += 1; g_print ("Current GNOME Version: %d\n", current_gnome_version); // Make sure we at least have GNOME 40-43 regardless // of the date calculation. Update this periodically current_gnome_version = MAX(43, current_gnome_version); // Populate dropdown and version map string_list = gtk_string_list_new (NULL); hash_table = g_hash_table_new (g_str_hash, g_str_equal); for (index = 40; index <= current_gnome_version; index++) { gchar *key; key = g_strdup_printf ("GNOME %d", index); g_hash_table_insert (hash_table, key, index); gtk_string_list_append (string_list, key); } self->version_map = hash_table; gtk_drop_down_set_model (self->drop_down, G_LIST_MODEL (string_list)); gtk_drop_down_set_selected (self->drop_down, g_list_model_get_n_items (G_LIST_MODEL (string_list)) - 1); } static void on_bind_manager (ExmUpgradeAssistant *self) { gchar *description_text; g_object_get (self->manager, "shell-version", &self->current_shell_version, NULL); description_text = _("You are currently running GNOME %s. Select a version of GNOME below and check whether your extensions will continue to be available."); description_text = g_strdup_printf (description_text, self->current_shell_version); gtk_label_set_markup (self->description, description_text); g_free (description_text); } static void exm_upgrade_assistant_class_init (ExmUpgradeAssistantClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_upgrade_assistant_finalize; object_class->get_property = exm_upgrade_assistant_get_property; object_class->set_property = exm_upgrade_assistant_set_property; properties [PROP_MANAGER] = g_param_spec_object ("manager", "Manager", "Manager", EXM_TYPE_MANAGER, G_PARAM_READWRITE); g_object_class_install_properties (object_class, N_PROPS, properties); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); gtk_widget_class_set_template_from_resource (widget_class, "/com/mattjakeman/ExtensionManager/exm-upgrade-assistant.ui"); gtk_widget_class_bind_template_child (widget_class, ExmUpgradeAssistant, user_list_box); gtk_widget_class_bind_template_child (widget_class, ExmUpgradeAssistant, system_list_box); gtk_widget_class_bind_template_child (widget_class, ExmUpgradeAssistant, run_button); gtk_widget_class_bind_template_child (widget_class, ExmUpgradeAssistant, drop_down); gtk_widget_class_bind_template_child (widget_class, ExmUpgradeAssistant, description); gtk_widget_class_bind_template_child (widget_class, ExmUpgradeAssistant, stack); gtk_widget_class_bind_template_child (widget_class, ExmUpgradeAssistant, counter); gtk_widget_class_bind_template_child (widget_class, ExmUpgradeAssistant, progress_bar); gtk_widget_class_bind_template_child (widget_class, ExmUpgradeAssistant, summary); gtk_widget_class_bind_template_child (widget_class, ExmUpgradeAssistant, copy_details); gtk_widget_class_bind_template_callback (widget_class, do_compatibility_check); gtk_widget_class_bind_template_callback (widget_class, copy_to_clipboard); gtk_widget_class_bind_template_callback (widget_class, on_bind_manager); } static void exm_upgrade_assistant_init (ExmUpgradeAssistant *self) { GtkWidget *placeholder, *icon; gtk_widget_init_template (GTK_WIDGET (self)); self->data_provider = exm_data_provider_new (); self->target_shell_version = NULL; self->user_results_store = g_list_store_new (EXM_TYPE_UPGRADE_RESULT); self->system_results_store = g_list_store_new (EXM_TYPE_UPGRADE_RESULT); bind_list_box (self, self->user_list_box, G_LIST_MODEL (self->user_results_store)); bind_list_box (self, self->system_list_box, G_LIST_MODEL (self->system_results_store)); placeholder = adw_action_row_new (); icon = gtk_image_new_from_icon_name ("puzzle-piece-symbolic"); adw_action_row_add_prefix (ADW_ACTION_ROW (placeholder), icon); adw_preferences_row_set_title (ADW_PREFERENCES_ROW (placeholder), _("There are no user extensions installed.")); gtk_list_box_set_placeholder (self->user_list_box, placeholder); placeholder = adw_action_row_new (); icon = gtk_image_new_from_icon_name ("settings-symbolic"); adw_action_row_add_prefix (ADW_ACTION_ROW (placeholder), icon); adw_preferences_row_set_title (ADW_PREFERENCES_ROW (placeholder), _("There are no system extensions installed.")); gtk_list_box_set_placeholder (self->system_list_box, placeholder); populate_drop_down (self); } extension-manager-0.5.0/src/exm-upgrade-assistant.h000066400000000000000000000021741457631363100223420ustar00rootroot00000000000000/* * exm-upgrade-assistant.h * * Copyright 2022 Matthew Jakeman * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ #pragma once #include #include "local/exm-manager.h" G_BEGIN_DECLS #define EXM_TYPE_UPGRADE_ASSISTANT (exm_upgrade_assistant_get_type()) G_DECLARE_FINAL_TYPE (ExmUpgradeAssistant, exm_upgrade_assistant, EXM, UPGRADE_ASSISTANT, AdwDialog) ExmUpgradeAssistant *exm_upgrade_assistant_new (ExmManager *manager); G_END_DECLS extension-manager-0.5.0/src/exm-upgrade-result.c000066400000000000000000000110331457631363100216340ustar00rootroot00000000000000/* exm-upgrade-result.c * * Copyright 2022 Matthew Jakeman * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ #include "exm-upgrade-result.h" struct _ExmUpgradeResult { GObject parent_instance; ExmSearchResult *web_data; ExmExtension *local_data; }; G_DEFINE_FINAL_TYPE (ExmUpgradeResult, exm_upgrade_result, G_TYPE_OBJECT) enum { PROP_0, PROP_NAME, N_PROPS }; static GParamSpec *properties [N_PROPS]; ExmUpgradeResult * exm_upgrade_result_new (void) { return g_object_new (EXM_TYPE_UPGRADE_RESULT, NULL); } static void exm_upgrade_result_finalize (GObject *object) { ExmUpgradeResult *self = (ExmUpgradeResult *)object; if (self->web_data) g_object_unref (self->web_data); if (self->local_data) g_object_unref (self->local_data); G_OBJECT_CLASS (exm_upgrade_result_parent_class)->finalize (object); } static void exm_upgrade_result_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ExmUpgradeResult *self = EXM_UPGRADE_RESULT (object); switch (prop_id) { case PROP_NAME: g_value_set_string (value, exm_upgrade_result_get_name (self)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void exm_upgrade_result_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ExmUpgradeResult *self = EXM_UPGRADE_RESULT (object); switch (prop_id) { default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } ExmExtension * exm_upgrade_result_get_local_data (ExmUpgradeResult *self) { return self->local_data; } void exm_upgrade_result_set_local_data (ExmUpgradeResult *self, ExmExtension *extension) { self->local_data = g_object_ref (extension); } ExmSearchResult * exm_upgrade_result_get_web_data (ExmUpgradeResult *self) { return self->web_data; } void exm_upgrade_result_set_web_data (ExmUpgradeResult *self, ExmSearchResult *extension) { self->web_data = g_object_ref (extension); } const char * exm_upgrade_result_get_name (ExmUpgradeResult *self) { const char *name; if (self->web_data) { g_object_get (self->web_data, "name", &name, NULL); return name; } if (self->local_data) { g_object_get (self->local_data, "display-name", &name, NULL); return name; } return NULL; } const char * exm_upgrade_result_get_creator (ExmUpgradeResult *self) { const char *creator; if (self->web_data) { g_object_get (self->web_data, "creator", &creator, NULL); return creator; } return NULL; } const char * exm_upgrade_result_get_uuid (ExmUpgradeResult *self) { const char *uuid; if (self->web_data) { g_object_get (self->web_data, "uuid", &uuid, NULL); return uuid; } if (self->local_data) { g_object_get (self->local_data, "uuid", &uuid, NULL); return uuid; } return NULL; } static void exm_upgrade_result_class_init (ExmUpgradeResultClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_upgrade_result_finalize; object_class->get_property = exm_upgrade_result_get_property; object_class->set_property = exm_upgrade_result_set_property; properties [PROP_NAME] = g_param_spec_string ("name", "Name", "Name", NULL, G_PARAM_READABLE); g_object_class_install_properties (object_class, N_PROPS, properties); } static void exm_upgrade_result_init (ExmUpgradeResult *self) { self->local_data = NULL; self->web_data = NULL; } extension-manager-0.5.0/src/exm-upgrade-result.h000066400000000000000000000033321457631363100216440ustar00rootroot00000000000000/* exm-upgrade-result.h * * Copyright 2022 Matthew Jakeman * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ #pragma once #include #include "web/model/exm-search-result.h" #include "local/exm-extension.h" G_BEGIN_DECLS #define EXM_TYPE_UPGRADE_RESULT (exm_upgrade_result_get_type()) G_DECLARE_FINAL_TYPE (ExmUpgradeResult, exm_upgrade_result, EXM, UPGRADE_RESULT, GObject) ExmUpgradeResult *exm_upgrade_result_new (void); ExmExtension * exm_upgrade_result_get_local_data (ExmUpgradeResult *self); void exm_upgrade_result_set_local_data (ExmUpgradeResult *self, ExmExtension *extension); ExmSearchResult * exm_upgrade_result_get_web_data (ExmUpgradeResult *self); void exm_upgrade_result_set_web_data (ExmUpgradeResult *self, ExmSearchResult *extension); const char * exm_upgrade_result_get_name (ExmUpgradeResult *self); const char * exm_upgrade_result_get_creator (ExmUpgradeResult *self); const char * exm_upgrade_result_get_uuid (ExmUpgradeResult *self); G_END_DECLS extension-manager-0.5.0/src/exm-utils.c000066400000000000000000000027671457631363100200470ustar00rootroot00000000000000/* exm-utils.c * * Copyright 2022 Matthew Jakeman * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ #include "exm-utils.h" char * exm_utils_read_resource (const char *resource, gsize *length) { GError *error = NULL; GFile *file; char *path; char *contents; g_return_val_if_fail (length != NULL, NULL); g_return_val_if_fail (resource != NULL, NULL); path = g_strdup_printf ("resource://%s", resource); file = g_file_new_for_uri (path); g_free (path); if (!file) { g_critical ("Could not read %s: invalid file\n", resource); return NULL; } if (g_file_load_contents (file, NULL, &contents, length, NULL, &error)) { g_clear_object (&file); return contents; } else { g_critical ("Could not read %s: %s\n", resource, error->message); } g_clear_object (&file); return NULL; } extension-manager-0.5.0/src/exm-utils.h000066400000000000000000000015671457631363100200510ustar00rootroot00000000000000/* exm-utils.h * * Copyright 2022 Matthew Jakeman * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ #pragma once #include char * exm_utils_read_resource (const char *resource, gsize *length); extension-manager-0.5.0/src/exm-window.blp000066400000000000000000000047401457631363100205420ustar00rootroot00000000000000using Gtk 4.0; using Adw 1; template $ExmWindow : Adw.ApplicationWindow { width-request: 360; height-request: 294; title: _("Extension Manager"); Adw.Breakpoint { condition ("max-width: 400sp") setters { header_bar.title-widget: null; switcher_bar.reveal: true; } } Adw.ToastOverlay toast_overlay { child: Adw.NavigationView navigation_view { Adw.NavigationPage main_view { can-pop: false; title: bind template.title; Adw.ToolbarView { [top] Adw.HeaderBar header_bar { show-back-button: false; title-widget: Adw.ViewSwitcher title { policy: wide; stack: view_stack; }; [end] Gtk.MenuButton { icon-name: "open-menu-symbolic"; menu-model: primary_menu; primary: true; tooltip-text: _("Main Menu"); } } content: Gtk.Box { orientation: vertical; Adw.ViewStack view_stack { vexpand: true; hexpand: true; Adw.ViewStackPage { name: "installed"; title: C_("Navigation", "_Installed"); icon-name: "puzzle-piece-symbolic"; use-underline: true; child: $ExmInstalledPage installed_page {}; } Adw.ViewStackPage { name: "browse"; title: C_("Navigation", "_Browse"); icon-name: "globe-symbolic"; use-underline: true; child: $ExmBrowsePage browse_page {}; } } Adw.ViewSwitcherBar switcher_bar { stack: view_stack; } }; } } $ExmDetailView detail_view {} $ExmScreenshotView screenshot_view { title: bind detail_view.title; } }; } Gtk.ShortcutController { scope: managed; Gtk.Shortcut { trigger: "1"; action: "action(win.show-page)"; arguments: "'installed'"; } Gtk.Shortcut { trigger: "2"; action: "action(win.show-page)"; arguments: "'browse'"; } } } menu primary_menu { section { item (_("Sort _Enabled First"), "app.sort-enabled-first") item (_("_Show Unsupported"), "app.show-unsupported") } section { item (_("_Upgrade Assistant"), "win.show-upgrade-assistant") item (_("_About Extension Manager"), "app.about") } } extension-manager-0.5.0/src/exm-window.c000066400000000000000000000334221457631363100202060ustar00rootroot00000000000000/* exm-window.c * * Copyright 2022 Matthew Jakeman * * 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 "exm-config.h" #include "exm-window.h" #include "exm-browse-page.h" #include "exm-installed-page.h" #include "exm-detail-view.h" #include "exm-upgrade-assistant.h" #include "exm-error-dialog.h" #include "local/exm-manager.h" #include "local/exm-extension.h" #include struct _ExmWindow { AdwApplicationWindow parent_instance; ExmManager *manager; /* Template widgets */ AdwHeaderBar *header_bar; ExmBrowsePage *browse_page; ExmInstalledPage *installed_page; AdwNavigationView *navigation_view; AdwNavigationPage *main_view; ExmDetailView *detail_view; AdwViewSwitcher *title; AdwViewStack *view_stack; AdwToastOverlay *toast_overlay; }; G_DEFINE_TYPE (ExmWindow, exm_window, ADW_TYPE_APPLICATION_WINDOW) enum { PROP_0, PROP_MANAGER, N_PROPS }; static GParamSpec *properties [N_PROPS]; static void exm_window_finalize (GObject *object) { ExmWindow *self = (ExmWindow *)object; G_OBJECT_CLASS (exm_window_parent_class)->finalize (object); } static void exm_window_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ExmWindow *self = EXM_WINDOW (object); switch (prop_id) { case PROP_MANAGER: g_value_set_object (value, self->manager); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void exm_window_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ExmWindow *self = EXM_WINDOW (object); switch (prop_id) { default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void extension_open_prefs (GtkWidget *widget, const char *action_name, GVariant *param) { ExmWindow *self; ExmExtension *extension; gchar *uuid; self = EXM_WINDOW (widget); g_variant_get (param, "s", &uuid); extension = exm_manager_get_by_uuid (self->manager, uuid); exm_manager_open_prefs (self->manager, extension); } typedef struct { ExmManager *manager; ExmExtension *extension; } RemoveDialogData; static void extension_remove_dialog_response (AdwDialog *dialog, const char *response, RemoveDialogData *data) { adw_dialog_force_close (dialog); if (strcmp(response, "yes") == 0) { exm_manager_remove_extension (data->manager, data->extension); } g_clear_pointer (&data->manager, g_object_unref); g_clear_pointer (&data->extension, g_object_unref); g_free (data); } static void extension_remove (GtkWidget *widget, const char *action_name, GVariant *param) { ExmWindow *self; ExmExtension *extension; gchar *uuid; self = EXM_WINDOW (widget); g_variant_get (param, "s", &uuid); extension = exm_manager_get_by_uuid (self->manager, uuid); AdwDialog *dlg; dlg = adw_alert_dialog_new (_("Uninstall Extension?"), _("The extension's features and functionality will no longer be accessible. Are you sure you want to uninstall?")); adw_alert_dialog_add_responses (ADW_ALERT_DIALOG (dlg), "no", _("_No"), "yes", _("_Yes"), NULL); adw_alert_dialog_set_response_appearance (ADW_ALERT_DIALOG (dlg), "yes", ADW_RESPONSE_DESTRUCTIVE); adw_alert_dialog_set_default_response (ADW_ALERT_DIALOG (dlg), "no"); adw_alert_dialog_set_close_response (ADW_ALERT_DIALOG (dlg), "no"); RemoveDialogData *data = g_new0 (RemoveDialogData, 1); data->manager = g_object_ref (self->manager); data->extension = g_object_ref (extension); g_signal_connect (dlg, "response", G_CALLBACK (extension_remove_dialog_response), data); adw_dialog_present (dlg, GTK_WIDGET (self)); } static void on_install_done (GObject *source, GAsyncResult *res) { GError *error = NULL; if (!exm_manager_install_finish (EXM_MANAGER (source), res, &error) && error) { // TODO: Properly log this g_critical ("%s\n", error->message); } } typedef struct { ExmManager *manager; gchar *uuid; } UnsupportedDialogData; static void extension_unsupported_dialog_response (AdwDialog *dialog, const char *response, UnsupportedDialogData *data) { adw_dialog_force_close (dialog); if (strcmp(response, "yes") == 0) { exm_manager_install_async (data->manager, data->uuid, NULL, (GAsyncReadyCallback) on_install_done, NULL); } g_clear_pointer (&data->manager, g_object_unref); g_clear_pointer (&data->uuid, g_free); g_free (data); } static void extension_install (GtkWidget *widget, const char *action_name, GVariant *param) { ExmWindow *self; gchar *uuid; gboolean warn; self = EXM_WINDOW (widget); g_variant_get (param, "(sb)", &uuid, &warn); if (warn) { AdwDialog *dlg; dlg = adw_alert_dialog_new (_("Unsupported Extension"), _("This extension does not support your GNOME Shell version. It may cause errors if installed.")); adw_alert_dialog_add_responses (ADW_ALERT_DIALOG (dlg), "yes", _("_Install Anyway"), "no", _("_Go Back"), NULL); adw_alert_dialog_set_response_appearance (ADW_ALERT_DIALOG (dlg), "yes", ADW_RESPONSE_DESTRUCTIVE); adw_alert_dialog_set_response_appearance (ADW_ALERT_DIALOG (dlg), "no", ADW_RESPONSE_SUGGESTED); adw_alert_dialog_set_default_response (ADW_ALERT_DIALOG (dlg), "no"); adw_alert_dialog_set_close_response (ADW_ALERT_DIALOG (dlg), "no"); UnsupportedDialogData *data = g_new0 (UnsupportedDialogData, 1); data->manager = g_object_ref (self->manager); data->uuid = g_strdup (uuid); g_signal_connect (dlg, "response", G_CALLBACK (extension_unsupported_dialog_response), data); adw_dialog_present (dlg, GTK_WIDGET (self)); return; } exm_manager_install_async (self->manager, uuid, NULL, (GAsyncReadyCallback) on_install_done, self); } static void show_page (GtkWidget *widget, const char *action_name, GVariant *param) { ExmWindow *self; char *target; g_variant_get (param, "s", &target); self = EXM_WINDOW (widget); adw_view_stack_set_visible_child_name (self->view_stack, target); } static void show_view (GtkWidget *widget, const char *action_name, GVariant *param) { ExmWindow *self; self = EXM_WINDOW (widget); if (g_str_equal (action_name, "win.show-detail")) { gchar *uuid; g_variant_get (param, "s", &uuid); adw_navigation_page_set_title (ADW_NAVIGATION_PAGE (self->detail_view), uuid); adw_navigation_view_push (self->navigation_view, ADW_NAVIGATION_PAGE (self->detail_view)); exm_detail_view_load_for_uuid (self->detail_view, uuid); return; } adw_navigation_view_pop_to_page (self->navigation_view, self->main_view); } static void show_upgrade_assistant (GtkWidget *widget, const char *action_name, GVariant *param) { ExmWindow *self; self = EXM_WINDOW (widget); ExmUpgradeAssistant *assistant = exm_upgrade_assistant_new (self->manager); adw_dialog_present (ADW_DIALOG (assistant), widget); } static void show_error_dialog (GtkWidget *widget, const char *action_name, GVariant *param) { ExmErrorDialog *err_dialog; const char *err_text; err_text = g_variant_get_string (param, NULL); err_dialog = exm_error_dialog_new (err_text); gtk_window_set_modal (GTK_WINDOW (err_dialog), TRUE); gtk_window_set_transient_for (GTK_WINDOW (err_dialog), GTK_WINDOW (widget)); gtk_window_present (GTK_WINDOW (err_dialog)); } static void show_error (GtkWidget *widget, const char *action_name, GVariant *param) { ExmWindow *self; char *error_text; AdwToast *toast; self = EXM_WINDOW (widget); g_variant_get (param, "s", &error_text); toast = adw_toast_new (_("An error occurred.")); adw_toast_set_button_label (toast, _("Details")); adw_toast_set_timeout (toast, 5); adw_toast_set_action_name (toast, "win.show-error-dialog"); adw_toast_set_action_target (toast, "s", error_text); adw_toast_overlay_add_toast (self->toast_overlay, toast); } static void on_error (ExmManager *manager, char *error_text, ExmWindow *self) { gtk_widget_activate_action (GTK_WIDGET (self), "win.show-error", "s", error_text); } static void exm_window_class_init (ExmWindowClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_window_finalize; object_class->get_property = exm_window_get_property; object_class->set_property = exm_window_set_property; properties [PROP_MANAGER] = g_param_spec_object ("manager", "Manager", "Manager", EXM_TYPE_MANAGER, G_PARAM_READABLE); g_object_class_install_properties (object_class, N_PROPS, properties); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); gtk_widget_class_set_template_from_resource (widget_class, "/com/mattjakeman/ExtensionManager/exm-window.ui"); gtk_widget_class_bind_template_child (widget_class, ExmWindow, header_bar); gtk_widget_class_bind_template_child (widget_class, ExmWindow, installed_page); gtk_widget_class_bind_template_child (widget_class, ExmWindow, browse_page); gtk_widget_class_bind_template_child (widget_class, ExmWindow, navigation_view); gtk_widget_class_bind_template_child (widget_class, ExmWindow, main_view); gtk_widget_class_bind_template_child (widget_class, ExmWindow, detail_view); gtk_widget_class_bind_template_child (widget_class, ExmWindow, title); gtk_widget_class_bind_template_child (widget_class, ExmWindow, view_stack); gtk_widget_class_bind_template_child (widget_class, ExmWindow, toast_overlay); // TODO: Refactor ExmWindow into a separate ExmController and supply the // necessary actions/methods/etc in there. A reference to this new object can // then be passed to each page. gtk_widget_class_install_action (widget_class, "ext.install", "(sb)", extension_install); gtk_widget_class_install_action (widget_class, "ext.remove", "s", extension_remove); gtk_widget_class_install_action (widget_class, "ext.open-prefs", "s", extension_open_prefs); gtk_widget_class_install_action (widget_class, "win.show-detail", "s", show_view); gtk_widget_class_install_action (widget_class, "win.show-main", NULL, show_view); gtk_widget_class_install_action (widget_class, "win.show-upgrade-assistant", NULL, show_upgrade_assistant); gtk_widget_class_install_action (widget_class, "win.show-page", "s", show_page); gtk_widget_class_install_action (widget_class, "win.show-error", "s", show_error); gtk_widget_class_install_action (widget_class, "win.show-error-dialog", "s", show_error_dialog); } static void do_version_check (ExmWindow *self) { GSettings *settings; gchar *version_string; settings = g_settings_new (APP_ID); version_string = g_settings_get_string (settings, "last-used-version"); // In the future, use this to show a toast or notification when // a new version has been installed. Maybe with rich text release notes? // if (strcmp (version_string, APP_VERSION) != 0) { ... } g_settings_set_string (settings, "last-used-version", APP_VERSION); } static void exm_window_init (ExmWindow *self) { gtk_widget_init_template (GTK_WIDGET (self)); if (strstr (APP_ID, ".Devel") != NULL) { gtk_widget_add_css_class (GTK_WIDGET (self), "devel"); } self->manager = exm_manager_new (); g_signal_connect (self->manager, "error-occurred", on_error, self); g_object_set (self->installed_page, "manager", self->manager, NULL); g_object_set (self->browse_page, "manager", self->manager, NULL); g_object_set (self->detail_view, "manager", self->manager, NULL); g_object_bind_property (self->manager, "shell-version", self->detail_view, "shell-version", G_BINDING_SYNC_CREATE); // Window must be mapped to show version check dialog g_signal_connect (self, "map", G_CALLBACK (do_version_check), NULL); } extension-manager-0.5.0/src/exm-window.h000066400000000000000000000016041457631363100202100ustar00rootroot00000000000000/* exm-window.h * * Copyright 2022 Matthew Jakeman * * 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 . */ #pragma once #include G_BEGIN_DECLS #define EXM_TYPE_WINDOW (exm_window_get_type()) G_DECLARE_FINAL_TYPE (ExmWindow, exm_window, EXM, WINDOW, AdwApplicationWindow) G_END_DECLS extension-manager-0.5.0/src/exm-zoom-picture.c000066400000000000000000000221561457631363100213360ustar00rootroot00000000000000/* * exm-zoom-picture.c * * Copyright 2022 Matthew Jakeman * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ #include "exm-zoom-picture.h" struct _ExmZoomPicture { GtkWidget parent_instance; GdkPaintable *paintable; GtkGesture *zoom; GtkGesture *drag; // State tracking float zoom_level; float image_x; float image_y; // Gesture tracking float gesture_start_zoom; double gesture_image_start_x; double gesture_image_start_y; double gesture_touch_start_x; double gesture_touch_start_y; // Cached scaled sizes float constrained_x; float constrained_y; float scaled_width; float scaled_height; }; G_DEFINE_FINAL_TYPE (ExmZoomPicture, exm_zoom_picture, GTK_TYPE_WIDGET) #define ZOOM_STEP 0.5 #define ZOOM_MIN 0.5 #define ZOOM_MAX 5.0 enum { PROP_0, PROP_ZOOM, N_PROPS }; static GParamSpec *properties [N_PROPS]; ExmZoomPicture * exm_zoom_picture_new (void) { return g_object_new (EXM_TYPE_ZOOM_PICTURE, NULL); } static void exm_zoom_picture_finalize (GObject *object) { ExmZoomPicture *self = (ExmZoomPicture *)object; G_OBJECT_CLASS (exm_zoom_picture_parent_class)->finalize (object); } static void exm_zoom_picture_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ExmZoomPicture *self = EXM_ZOOM_PICTURE (object); switch (prop_id) { case PROP_ZOOM: g_value_set_float (value, self->zoom_level); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void exm_zoom_picture_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ExmZoomPicture *self = EXM_ZOOM_PICTURE (object); switch (prop_id) { case PROP_ZOOM: exm_zoom_picture_set_zoom_level (self, g_value_get_float (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } void exm_zoom_picture_set_paintable (ExmZoomPicture *self, GdkPaintable *paintable) { if (self->paintable) g_object_unref (paintable); if (paintable) self->paintable = g_object_ref (paintable); gtk_widget_queue_draw (GTK_WIDGET (self)); } GdkPaintable * exm_zoom_picture_get_paintable (ExmZoomPicture *self) { return self->paintable; } void exm_zoom_picture_set_zoom_level (ExmZoomPicture *self, float zoom_level) { self->zoom_level = CLAMP (zoom_level, ZOOM_MIN, ZOOM_MAX); gtk_widget_queue_draw (GTK_WIDGET (self)); g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_ZOOM]); } float exm_zoom_picture_get_zoom_level (ExmZoomPicture *self) { return self->zoom_level; } float exm_zoom_picture_get_zoom_level_max (ExmZoomPicture *self) { return ZOOM_MAX; } float exm_zoom_picture_get_zoom_level_min (ExmZoomPicture *self) { return ZOOM_MIN; } float exm_zoom_picture_get_zoom_level_step (ExmZoomPicture *self) { return ZOOM_STEP; } void exm_zoom_picture_zoom_in (ExmZoomPicture *self) { exm_zoom_picture_set_zoom_level (self, self->zoom_level += ZOOM_STEP); } void exm_zoom_picture_zoom_out (ExmZoomPicture *self) { exm_zoom_picture_set_zoom_level (self, self->zoom_level -= ZOOM_STEP); } void exm_zoom_picture_zoom_reset (ExmZoomPicture *self) { exm_zoom_picture_set_zoom_level (self, 1); } void compute_scaled_dimensions (ExmZoomPicture *self) { float width, height; float paintable_width, paintable_height; float scale_factor; float scaled_width, scaled_height; float x, y; width = gtk_widget_get_width (GTK_WIDGET (self)); height = gtk_widget_get_height (GTK_WIDGET (self)); paintable_width = gdk_paintable_get_intrinsic_width (self->paintable); paintable_height = gdk_paintable_get_intrinsic_height (self->paintable); // Try fill horizontally scale_factor = width / paintable_width; scaled_width = paintable_width * scale_factor; scaled_height = paintable_height * scale_factor; // Doesn't fit - fill vertically if (scaled_height > height) { scale_factor = height / paintable_height; scaled_width = paintable_width * scale_factor; scaled_height = paintable_height * scale_factor; } // Scale by zoom level scaled_width *= self->zoom_level; scaled_height *= self->zoom_level; // Set centre to midpoint x = ((width - scaled_width) / 2); y = ((height - scaled_height) / 2); // Constrain to image borders self->image_x = CLAMP (self->image_x, x, -x); self->image_y = CLAMP (self->image_y, y, -y); // Apply offset and constrain to image borders if (scaled_width > width) x += self->image_x; else self->image_x = 0.0f; if (scaled_height > height) y += self->image_y; else self->image_y = 0.0f; // Update for drawing self->scaled_width = scaled_width; self->scaled_height = scaled_height; self->constrained_x = x; self->constrained_y = y; } void exm_zoom_picture_snapshot (GtkWidget *widget, GtkSnapshot *snapshot) { ExmZoomPicture *self = EXM_ZOOM_PICTURE (widget); compute_scaled_dimensions (self); gtk_snapshot_translate (snapshot, &GRAPHENE_POINT_INIT (self->constrained_x, self->constrained_y)); gdk_paintable_snapshot (self->paintable, snapshot, self->scaled_width, self->scaled_height); } static void exm_zoom_picture_class_init (ExmZoomPictureClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_zoom_picture_finalize; object_class->get_property = exm_zoom_picture_get_property; object_class->set_property = exm_zoom_picture_set_property; properties [PROP_ZOOM] = g_param_spec_float ("zoom-level", "Zoom Level", "Zoom Level", 0.0f, G_MAXFLOAT, 0.0f, G_PARAM_CONSTRUCT|G_PARAM_READWRITE); g_object_class_install_properties (object_class, N_PROPS, properties); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); widget_class->snapshot = exm_zoom_picture_snapshot; } void on_gesture_begin (GtkGesture *gesture, GdkEventSequence *sequence, ExmZoomPicture *self) { gtk_gesture_set_state (gesture, GTK_EVENT_SEQUENCE_CLAIMED); self->gesture_start_zoom = self->zoom_level; self->gesture_image_start_x = self->image_x; self->gesture_image_start_y = self->image_y; gtk_gesture_get_bounding_box_center (GTK_GESTURE (gesture), &self->gesture_touch_start_x, &self->gesture_touch_start_y); } void on_scale_changed (GtkGestureZoom *gesture, gdouble scale, ExmZoomPicture *self) { double gesture_touch_offset_x; double gesture_touch_offset_y; double delta_x; double delta_y; exm_zoom_picture_set_zoom_level (self, self->gesture_start_zoom * scale); gtk_gesture_get_bounding_box_center(GTK_GESTURE (gesture), &gesture_touch_offset_x, &gesture_touch_offset_y); delta_x = gesture_touch_offset_x - self->gesture_touch_start_x; delta_y = gesture_touch_offset_y - self->gesture_touch_start_y; self->image_x = self->gesture_image_start_x + delta_x; self->image_y = self->gesture_image_start_y + delta_y; gtk_widget_queue_draw (GTK_WIDGET (self)); } void on_drag_update (GtkGestureDrag *gesture, gdouble offset_x, gdouble offset_y, ExmZoomPicture *self) { self->image_x = self->gesture_image_start_x + offset_x; self->image_y = self->gesture_image_start_y + offset_y; gtk_widget_queue_draw (GTK_WIDGET (self)); } static void exm_zoom_picture_init (ExmZoomPicture *self) { GtkGesture *gesture; exm_zoom_picture_set_zoom_level (self, 1.0f); gtk_widget_set_overflow (GTK_WIDGET (self), GTK_OVERFLOW_HIDDEN); gesture = gtk_gesture_zoom_new (); gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture), GTK_PHASE_CAPTURE); g_signal_connect (gesture, "begin", G_CALLBACK (on_gesture_begin), self); g_signal_connect (gesture, "scale-changed", G_CALLBACK (on_scale_changed), self); gtk_widget_add_controller (GTK_WIDGET (self), GTK_EVENT_CONTROLLER (gesture)); self->zoom = gesture; gesture = gtk_gesture_drag_new (); gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture), GTK_PHASE_CAPTURE); g_signal_connect (gesture, "begin", G_CALLBACK (on_gesture_begin), self); g_signal_connect (gesture, "drag-update", G_CALLBACK (on_drag_update), self); gtk_widget_add_controller (GTK_WIDGET (self), GTK_EVENT_CONTROLLER (gesture)); self->drag = gesture; } extension-manager-0.5.0/src/exm-zoom-picture.h000066400000000000000000000034011457631363100213330ustar00rootroot00000000000000/* exm-zoom-picture.h * * Copyright 2022 Matthew Jakeman * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ #pragma once #include G_BEGIN_DECLS #define EXM_TYPE_ZOOM_PICTURE (exm_zoom_picture_get_type()) G_DECLARE_FINAL_TYPE (ExmZoomPicture, exm_zoom_picture, EXM, ZOOM_PICTURE, GtkWidget) ExmZoomPicture *exm_zoom_picture_new (void); void exm_zoom_picture_set_paintable (ExmZoomPicture *self, GdkPaintable *paintable); GdkPaintable * exm_zoom_picture_get_paintable (ExmZoomPicture *self); void exm_zoom_picture_zoom_in (ExmZoomPicture *self); void exm_zoom_picture_zoom_out (ExmZoomPicture *self); void exm_zoom_picture_zoom_reset (ExmZoomPicture *self); void exm_zoom_picture_set_zoom_level (ExmZoomPicture *self, float zoom_level); float exm_zoom_picture_get_zoom_level (ExmZoomPicture *self); float exm_zoom_picture_get_zoom_level_max (ExmZoomPicture *self); float exm_zoom_picture_get_zoom_level_min (ExmZoomPicture *self); float exm_zoom_picture_get_zoom_level_step (ExmZoomPicture *self); G_END_DECLS extension-manager-0.5.0/src/exm.gresource.xml.in000066400000000000000000000055031457631363100216600ustar00rootroot00000000000000 exm-window.ui exm-installed-page.ui exm-browse-page.ui exm-extension-row.ui exm-search-row.ui exm-detail-view.ui exm-screenshot.ui exm-comment-tile.ui exm-comment-dialog.ui exm-rating.ui exm-upgrade-assistant.ui exm-error-dialog.ui exm-info-bar.ui exm-info-bar-item.ui exm-screenshot-view.ui res/suggestions.txt ../data/@appstream_file@ style.css ../data/icons/hicolor/scalable/actions/clock-alt-symbolic.svg ../data/icons/hicolor/scalable/actions/dialog-error-symbolic.svg ../data/icons/hicolor/scalable/actions/external-link-symbolic.svg ../data/icons/hicolor/scalable/actions/globe-symbolic.svg ../data/icons/hicolor/scalable/actions/go-next-symbolic.svg ../data/icons/hicolor/scalable/actions/pip-in-symbolic.svg ../data/icons/hicolor/scalable/actions/pip-out-symbolic.svg ../data/icons/hicolor/scalable/actions/puzzle-piece-symbolic.svg ../data/icons/hicolor/scalable/actions/dialog-question-symbolic.svg ../data/icons/hicolor/scalable/actions/settings-symbolic.svg ../data/icons/hicolor/scalable/actions/software-update-available-symbolic.svg ../data/icons/hicolor/scalable/actions/star-filled-rounded-symbolic.svg ../data/icons/hicolor/scalable/actions/star-outline-rounded-symbolic.svg extension-manager-0.5.0/src/local/000077500000000000000000000000001457631363100170325ustar00rootroot00000000000000extension-manager-0.5.0/src/local/exm-extension.c000066400000000000000000000161331457631363100220050ustar00rootroot00000000000000#include "exm-extension.h" #include "../exm-types.h" #include "../exm-enums.h" struct _ExmExtension { GObject parent_instance; gchar *uuid; gchar *display_name; gchar *description; ExmExtensionState state; gboolean enabled; gboolean is_user; gboolean has_prefs; gboolean has_update; gboolean can_change; gchar *version; gchar *error_msg; }; G_DEFINE_FINAL_TYPE (ExmExtension, exm_extension, G_TYPE_OBJECT) enum { PROP_0, PROP_UUID, PROP_DISPLAY_NAME, PROP_STATE, PROP_ENABLED, PROP_IS_USER, PROP_DESCRIPTION, PROP_HAS_PREFS, PROP_HAS_UPDATE, PROP_CAN_CHANGE, PROP_VERSION, PROP_ERROR_MSG, N_PROPS }; static GParamSpec *properties [N_PROPS]; ExmExtension * exm_extension_new (const gchar *uuid) { return g_object_new (EXM_TYPE_EXTENSION, "uuid", uuid, NULL); } static void exm_extension_finalize (GObject *object) { ExmExtension *self = (ExmExtension *)object; G_OBJECT_CLASS (exm_extension_parent_class)->finalize (object); } static void exm_extension_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ExmExtension *self = EXM_EXTENSION (object); switch (prop_id) { case PROP_UUID: g_value_set_string (value, self->uuid); break; case PROP_DISPLAY_NAME: g_value_set_string (value, self->display_name); break; case PROP_DESCRIPTION: g_value_set_string (value, self->description); break; case PROP_STATE: g_value_set_enum (value, self->state); break; case PROP_ENABLED: g_value_set_boolean (value, self->enabled); break; case PROP_IS_USER: g_value_set_boolean (value, self->is_user); break; case PROP_HAS_PREFS: g_value_set_boolean (value, self->has_prefs); break; case PROP_HAS_UPDATE: g_value_set_boolean (value, self->has_update); break; case PROP_CAN_CHANGE: g_value_set_boolean (value, self->can_change); break; case PROP_VERSION: g_value_set_string (value, self->version); break; case PROP_ERROR_MSG: g_value_set_string (value, self->error_msg); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void exm_extension_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ExmExtension *self = EXM_EXTENSION (object); switch (prop_id) { case PROP_UUID: self->uuid = g_value_dup_string (value); break; case PROP_DISPLAY_NAME: if (self->display_name) g_free (self->display_name); self->display_name = g_value_dup_string (value); break; case PROP_DESCRIPTION: if (self->description) g_free (self->description); self->description = g_value_dup_string (value); break; case PROP_STATE: self->state = g_value_get_enum (value); break; case PROP_ENABLED: self->enabled = g_value_get_boolean (value); break; case PROP_IS_USER: self->is_user = g_value_get_boolean (value); break; case PROP_HAS_PREFS: self->has_prefs = g_value_get_boolean (value); break; case PROP_HAS_UPDATE: self->has_update = g_value_get_boolean (value); break; case PROP_CAN_CHANGE: self->can_change = g_value_get_boolean (value); break; case PROP_VERSION: self->version = g_value_dup_string (value); break; case PROP_ERROR_MSG: self->error_msg = g_value_dup_string (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void exm_extension_class_init (ExmExtensionClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_extension_finalize; object_class->get_property = exm_extension_get_property; object_class->set_property = exm_extension_set_property; properties [PROP_UUID] = g_param_spec_string ("uuid", "UUID", "UUID", NULL, G_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY); properties [PROP_DISPLAY_NAME] = g_param_spec_string ("display-name", "Display Name", "Display Name", NULL, G_PARAM_READWRITE); properties [PROP_DESCRIPTION] = g_param_spec_string ("description", "Description", "Description", NULL, G_PARAM_READWRITE); properties [PROP_STATE] = g_param_spec_enum ("state", "State", "State", EXM_TYPE_EXTENSION_STATE, EXM_EXTENSION_STATE_ACTIVE, G_PARAM_READWRITE); properties [PROP_ENABLED] = g_param_spec_boolean ("enabled", "Enabled", "Enabled", FALSE, G_PARAM_READWRITE); properties [PROP_IS_USER] = g_param_spec_boolean ("is-user", "Is User", "Is User", FALSE, G_PARAM_READWRITE); properties [PROP_HAS_PREFS] = g_param_spec_boolean ("has-prefs", "Has Preferences", "Has Preferences", FALSE, G_PARAM_READWRITE); properties [PROP_HAS_UPDATE] = g_param_spec_boolean ("has-update", "Has Update", "Has Update", FALSE, G_PARAM_READWRITE); properties [PROP_CAN_CHANGE] = g_param_spec_boolean ("can-change", "Can Change", "Can Change", FALSE, G_PARAM_READWRITE); properties [PROP_VERSION] = g_param_spec_string ("version", "Version", "Version", NULL, G_PARAM_READWRITE); properties [PROP_ERROR_MSG] = g_param_spec_string ("error-msg", "Error Message", "Error Message", NULL, G_PARAM_READWRITE); g_object_class_install_properties (object_class, N_PROPS, properties); } static void exm_extension_init (ExmExtension *self) { } extension-manager-0.5.0/src/local/exm-extension.h000066400000000000000000000003751457631363100220130ustar00rootroot00000000000000#pragma once #include G_BEGIN_DECLS #define EXM_TYPE_EXTENSION (exm_extension_get_type()) G_DECLARE_FINAL_TYPE (ExmExtension, exm_extension, EXM, EXTENSION, GObject) ExmExtension *exm_extension_new (const gchar *uuid); G_END_DECLS extension-manager-0.5.0/src/local/exm-manager.c000066400000000000000000000577141457631363100214150ustar00rootroot00000000000000#include "exm-manager.h" #include "exm-extension.h" #include "shell-dbus-interface.h" #include "../exm-types.h" #include "../exm-enums.h" struct _ExmManager { GObject parent_instance; ShellExtensions *proxy; GListModel *user_ext_model; GListModel *system_ext_model; const gchar *shell_version; gboolean extensions_enabled; guint update_callback_id; }; G_DEFINE_FINAL_TYPE (ExmManager, exm_manager, G_TYPE_OBJECT) enum { PROP_0, PROP_USER_EXTENSIONS, PROP_SYSTEM_EXTENSIONS, PROP_EXTENSIONS_ENABLED, PROP_SHELL_VERSION, N_PROPS }; static GParamSpec *properties [N_PROPS]; enum { SIGNAL_0, SIGNAL_UPDATES_AVAILABLE, SIGNAL_ERROR_OCCURRED, N_SIGNALS }; static guint signals [N_SIGNALS]; ExmManager * exm_manager_new (void) { return g_object_new (EXM_TYPE_MANAGER, NULL); } static void exm_manager_finalize (GObject *object) { ExmManager *self = (ExmManager *)object; G_OBJECT_CLASS (exm_manager_parent_class)->finalize (object); } static void exm_manager_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ExmManager *self = EXM_MANAGER (object); switch (prop_id) { case PROP_USER_EXTENSIONS: g_value_set_object (value, self->user_ext_model); break; case PROP_SYSTEM_EXTENSIONS: g_value_set_object (value, self->system_ext_model); break; case PROP_SHELL_VERSION: g_value_set_string (value, self->shell_version); break; case PROP_EXTENSIONS_ENABLED: g_value_set_boolean (value, self->extensions_enabled); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void exm_manager_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ExmManager *self = EXM_MANAGER (object); switch (prop_id) { case PROP_SHELL_VERSION: self->shell_version = g_value_dup_string (value); break; case PROP_EXTENSIONS_ENABLED: self->extensions_enabled = g_value_get_boolean (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } typedef struct { ExmExtension *extension; ExmManager *manager; } ExmCallbackData; static ExmCallbackData * create_callback_data (ExmManager *manager, ExmExtension *extension) { ExmCallbackData *data; data = g_slice_new0 (ExmCallbackData); data->manager = g_object_ref (manager); data->extension = g_object_ref (extension); return data; } static void free_callback_data (ExmCallbackData *data) { if (!data) return; g_clear_object (&data->manager); g_clear_object (&data->extension); g_slice_free (ExmCallbackData, data); } #define notify_error(self_, f_, ...); \ {\ char *error_text;\ error_text = g_strdup_printf (f_, __VA_ARGS__);\ g_critical ("%s", error_text);\ g_signal_emit (G_OBJECT (self_), signals [SIGNAL_ERROR_OCCURRED], 0, error_text);\ g_free (error_text);\ }\ static void enable_extension_done (ShellExtensions *proxy, GAsyncResult *res, ExmCallbackData *data) { GError *error = NULL; gboolean success; shell_extensions_call_enable_extension_finish (proxy, &success, res, &error); if (!success) { gchar *uuid; g_object_get (data->extension, "uuid", &uuid, NULL); if (error) { notify_error (data->manager, "Could not enable extension '%s': %s\n", uuid, error->message); } else { notify_error (data->manager, "Could not enable extension '%s': unknown failure", uuid); } } free_callback_data (data); } void exm_manager_enable_extension (ExmManager *self, ExmExtension *extension) { gchar *uuid; g_object_get (extension, "uuid", &uuid, NULL); shell_extensions_call_enable_extension (self->proxy, uuid, NULL, (GAsyncReadyCallback) enable_extension_done, create_callback_data (self, extension)); } static void disable_extension_done (ShellExtensions *proxy, GAsyncResult *res, ExmCallbackData *data) { GError *error = NULL; gboolean success; shell_extensions_call_disable_extension_finish (proxy, &success, res, &error); if (!success) { gchar *uuid; g_object_get (data->extension, "uuid", &uuid, NULL); if (error) { notify_error (data->manager, "Could not disable extension '%s': %s\n", uuid, error->message); } else { notify_error (data->manager, "Could not disable extension '%s': unknown failure", uuid); } } free_callback_data (data); } void exm_manager_disable_extension (ExmManager *self, ExmExtension *extension) { gchar *uuid; g_object_get (extension, "uuid", &uuid, NULL); shell_extensions_call_disable_extension (self->proxy, uuid, NULL, (GAsyncReadyCallback) disable_extension_done, create_callback_data (self, extension)); } static void remove_extension_done (ShellExtensions *proxy, GAsyncResult *res, ExmCallbackData *data) { GError *error = NULL; gboolean success; shell_extensions_call_uninstall_extension_finish (proxy, &success, res, &error); if (!success) { gchar *uuid; g_object_get (data->extension, "uuid", &uuid, NULL); if (error) { notify_error (data->manager, "Could not remove extension '%s': %s\n", uuid, error->message); } else { notify_error (data->manager, "Could not remove extension '%s': unknown failure", uuid); } } free_callback_data (data); } void exm_manager_remove_extension (ExmManager *self, ExmExtension *extension) { gchar *uuid; g_object_get (extension, "uuid", &uuid, NULL); shell_extensions_call_uninstall_extension (self->proxy, uuid, NULL, (GAsyncReadyCallback) remove_extension_done, create_callback_data (self, extension)); } static void open_prefs_done (ShellExtensions *proxy, GAsyncResult *res, ExmCallbackData *data) { GError *error = NULL; shell_extensions_call_launch_extension_prefs_finish (proxy, res, &error); // TODO: Don't enable until we can export the window handle over dbus /*if (error) { gchar *uuid; g_object_get (data->extension, "uuid", &uuid, NULL); notify_error (data->manager, "Could not open extension '%s' preferences: %s\n", uuid, error->message); }*/ free_callback_data (data); } void exm_manager_open_prefs (ExmManager *self, ExmExtension *extension) { gchar *uuid; g_object_get (extension, "uuid", &uuid, NULL); shell_extensions_call_launch_extension_prefs (self->proxy, uuid, NULL, (GAsyncReadyCallback) open_prefs_done, create_callback_data (self, extension)); } static gpointer list_model_get_by_uuid (GListModel *model, const gchar *uuid) { int n_items = g_list_model_get_n_items (model); for (int i = 0; i < n_items; i++) { ExmExtension *ext = g_list_model_get_item (model, i); gchar *cmp_uuid; g_object_get (ext, "uuid", &cmp_uuid, NULL); if (strcmp (uuid, cmp_uuid) == 0) return ext; } return NULL; } static gboolean list_model_contains (GListModel *model, const gchar *uuid) { return list_model_get_by_uuid (model, uuid) != NULL; } ExmExtension * exm_manager_get_by_uuid (ExmManager *self, const gchar *uuid) { ExmExtension *result = NULL; if ((result = list_model_get_by_uuid (self->user_ext_model, uuid)) != NULL) return result; if ((result = list_model_get_by_uuid (self->system_ext_model, uuid)) != NULL) return result; return NULL; } gboolean exm_manager_is_installed_uuid (ExmManager *self, const gchar *uuid) { if (list_model_contains (self->user_ext_model, uuid)) return TRUE; if (list_model_contains (self->system_ext_model, uuid)) return TRUE; return FALSE; } static void do_install_thread (GTask *task, ExmManager *self, const char *uuid, GCancellable *cancellable) { GError *error = NULL; g_dbus_proxy_call_sync (G_DBUS_PROXY (self->proxy), "InstallRemoteExtension", g_variant_new ("(s)", uuid, NULL), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, &error); if (error != NULL) { g_task_return_error (task, error); return; } g_task_return_boolean (task, TRUE); } void exm_manager_install_async (ExmManager *self, const gchar *uuid, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { GTask *task; task = g_task_new (self, cancellable, callback, user_data); g_task_set_task_data (task, g_strdup (uuid), (GDestroyNotify) g_free); g_task_run_in_thread (task, (GTaskThreadFunc)do_install_thread); g_object_unref (task); } gboolean exm_manager_install_finish (ExmManager *self, GAsyncResult *result, GError **error) { g_return_val_if_fail (g_task_is_valid (result, self), FALSE); return g_task_propagate_boolean (G_TASK (result), error); } static int list_model_get_number_of_updates (GListModel *model) { int num_updates = 0; int n_items = g_list_model_get_n_items (model); for (int i = 0; i < n_items; i++) { ExmExtension *ext = g_list_model_get_item (model, i); gboolean has_update; g_object_get (ext, "has-update", &has_update, NULL); if (has_update) num_updates++; } return num_updates; } static guint notify_extension_updates (ExmManager *self) { // Checks for updates in the background and if found then // emits the 'updates-available' signal with the number of updates int n_updates = 0; n_updates += list_model_get_number_of_updates (self->user_ext_model); n_updates += list_model_get_number_of_updates (self->system_ext_model); g_info ("There are %d new updates available.", n_updates); if (n_updates > 0) g_signal_emit (G_OBJECT (self), signals [SIGNAL_UPDATES_AVAILABLE], 0, n_updates); self->update_callback_id = 0; return G_SOURCE_REMOVE; } static void queue_notify_extension_updates (ExmManager *self) { // See: notify_extension_updates if (self->update_callback_id != 0) return; self->update_callback_id = g_timeout_add (0, G_SOURCE_FUNC (notify_extension_updates), self); } static void check_for_updates_done (ShellExtensions *proxy, GAsyncResult *res, ExmManager *manager) { GError *error = NULL; shell_extensions_call_check_for_updates_finish (proxy, res, &error); if (error) { notify_error (manager, "Could not check for updates: %s\n", error->message); } // Notify the user if updates are detected queue_notify_extension_updates (manager); } void exm_manager_check_for_updates (ExmManager *self) { shell_extensions_call_check_for_updates (self->proxy, NULL, (GAsyncReadyCallback) check_for_updates_done, self); } static void exm_manager_class_init (ExmManagerClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_manager_finalize; object_class->get_property = exm_manager_get_property; object_class->set_property = exm_manager_set_property; properties [PROP_USER_EXTENSIONS] = g_param_spec_object ("user-extensions", "User Extensions List Model", "User Extensions List Model", G_TYPE_LIST_MODEL, G_PARAM_READABLE); properties [PROP_SYSTEM_EXTENSIONS] = g_param_spec_object ("system-extensions", "System Extensions List Model", "System Extensions List Model", G_TYPE_LIST_MODEL, G_PARAM_READABLE); properties [PROP_SHELL_VERSION] = g_param_spec_string ("shell-version", "Shell Version", "Shell Version", NULL, G_PARAM_READWRITE); properties [PROP_EXTENSIONS_ENABLED] = g_param_spec_boolean ("extensions-enabled", "Extensions Enabled", "Extensions Enabled", FALSE, G_PARAM_READWRITE); g_object_class_install_properties (object_class, N_PROPS, properties); signals [SIGNAL_UPDATES_AVAILABLE] = g_signal_new ("updates-available", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST|G_SIGNAL_NO_RECURSE|G_SIGNAL_NO_HOOKS, 0, NULL, NULL, NULL, G_TYPE_NONE, 1, G_TYPE_INT); signals [SIGNAL_ERROR_OCCURRED] = g_signal_new ("error-occurred", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST|G_SIGNAL_NO_RECURSE|G_SIGNAL_NO_HOOKS, 0, NULL, NULL, NULL, G_TYPE_NONE, 1, G_TYPE_STRING); } static void parse_single_extension (ExmExtension **extension, const gchar *extension_uuid, GVariantIter *variant_iter, gboolean *is_user, gboolean *is_uninstall_operation) { gchar *prop_name; GVariant *prop_value; // Well-Defined Properties gchar *uuid = NULL; gchar *display_name = NULL; gchar *description = NULL; gboolean enabled = FALSE; gboolean has_prefs = FALSE; gboolean has_update = FALSE; gboolean can_change = TRUE; ExmExtensionState state; ExmExtensionType type; gchar *version = NULL; gchar *error_msg = NULL; if (extension && *extension) { const gchar *uuid_cmp; g_object_get (*extension, "uuid", &uuid_cmp, NULL); g_assert (strcmp (extension_uuid, uuid_cmp) == 0); } else { *extension = exm_extension_new (extension_uuid); } g_debug ("Found extension '%s' with properties:\n", uuid); while (g_variant_iter_loop (variant_iter, "{sv}", &prop_name, &prop_value)) { g_debug (" - Property: %s=%s\n", prop_name, g_variant_print(prop_value, 0)); // Compare with DBus property names if (strcmp (prop_name, "uuid") == 0) { g_variant_get (prop_value, "s", &uuid); // Assert that this is the same as the extension uuid g_assert (strcmp(extension_uuid, uuid) == 0); } else if (strcmp (prop_name, "type") == 0) { gdouble val; g_variant_get (prop_value, "d", &val); type = (ExmExtensionType)val; } else if (strcmp (prop_name, "state") == 0) { gdouble val; g_variant_get (prop_value, "d", &val); state = (ExmExtensionState)val; } else if (strcmp (prop_name, "enabled") == 0) { g_variant_get (prop_value, "b", &enabled); } else if (strcmp (prop_name, "name") == 0) { g_variant_get (prop_value, "s", &display_name); } else if (strcmp (prop_name, "description") == 0) { g_variant_get (prop_value, "s", &description); } else if (strcmp (prop_name, "hasPrefs") == 0) { g_variant_get (prop_value, "b", &has_prefs); } else if (strcmp (prop_name, "hasUpdate") == 0) { g_variant_get (prop_value, "b", &has_update); } else if (strcmp (prop_name, "canChange") == 0) { g_variant_get (prop_value, "b", &can_change); } else if (strcmp (prop_name, "version") == 0) { gdouble val; g_variant_get (prop_value, "d", &val); version = g_strdup_printf ("%d", (gint)val); } else if (strcmp (prop_name, "error") == 0) { g_variant_get (prop_value, "s", &error_msg); } } *is_user = (type == EXM_EXTENSION_TYPE_PER_USER); *is_uninstall_operation = (state == EXM_EXTENSION_STATE_UNINSTALLED); g_object_set (*extension, "display-name", display_name, "description", description, "state", state, "enabled", enabled, "is-user", *is_user, "has-prefs", has_prefs, "has-update", has_update, "can-change", can_change, "version", version, "error-msg", error_msg, NULL); g_free (uuid); g_free (display_name); g_free (description); } static void parse_extension_list (GVariant *exlist, GListModel **user_ext_model, GListModel **system_ext_model) { GListStore *user_ext_store; GListStore *system_ext_store; /* format: a{sa{sv}} * array of interfaces, where each interface is an array of properties * each interface corresponds to one extension * this is terrible >:( * see also: https://stackoverflow.com/questions/54131543/how-can-i-get-the-g-dbus-connection-signal-subscribe-function-to-tell-me-about-p */ GVariantIter *iter, *iter2; gchar *exname; user_ext_store = g_list_store_new (EXM_TYPE_EXTENSION); system_ext_store = g_list_store_new (EXM_TYPE_EXTENSION); g_variant_get (exlist, "a{sa{sv}}", &iter); while (g_variant_iter_loop (iter, "{sa{sv}}", &exname, &iter2)) { gboolean is_user; gboolean is_uninstall_operation; ExmExtension *extension = NULL; parse_single_extension (&extension, exname, iter2, &is_user, &is_uninstall_operation); if (is_uninstall_operation) { g_error ("Invalid extension: '%s' is being uninstalled.", exname); continue; } g_list_store_append ((is_user ? user_ext_store : system_ext_store), extension); } g_variant_iter_free (iter); *user_ext_model = G_LIST_MODEL (user_ext_store); *system_ext_model = G_LIST_MODEL (system_ext_store); } static void update_extension_list (ExmManager *self) { GError *error = NULL; GVariant* exlist; shell_extensions_call_list_extensions_sync (self->proxy, &exlist, NULL, &error); if (error != NULL) { notify_error (self, "Could not list extensions: %s\n", error->message); return; } // Unref object if exists g_clear_object (&self->user_ext_model); g_clear_object (&self->system_ext_model); parse_extension_list (exlist, &self->user_ext_model, &self->system_ext_model); g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_USER_EXTENSIONS]); g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_SYSTEM_EXTENSIONS]); queue_notify_extension_updates (self); } static gboolean is_extension_equal (ExmExtension *a, ExmExtension *b) { const gchar *uuid_a, *uuid_b; g_object_get (a, "uuid", &uuid_a, NULL); g_object_get (b, "uuid", &uuid_b, NULL); return strcmp (uuid_a, uuid_b) == 0; } static void on_state_changed (ShellExtensions *object, const gchar *arg_uuid, GVariant *arg_state, ExmManager *self) { ExmExtension *extension; gboolean is_user; gboolean is_new; gboolean is_uninstall_operation; GListStore *list_store; g_debug ("State Changed for extension '%s'\n", arg_uuid); // Parse the new extension state and update only that element in // the list model. This will automatically update any bound // listboxes or listviews. // This is NULL if it does not exist extension = exm_manager_get_by_uuid (self, arg_uuid); is_new = (extension == NULL); GVariantIter *iter; g_variant_get (arg_state, "a{sv}", &iter); parse_single_extension (&extension, arg_uuid, iter, &is_user, &is_uninstall_operation); g_variant_iter_free (iter); list_store = G_LIST_STORE (is_user ? self->user_ext_model : self->system_ext_model); if (is_new) { g_list_store_append (list_store, extension); return; } if (is_uninstall_operation) { guint position; if (g_list_store_find_with_equal_func (list_store, extension, (GEqualFunc)is_extension_equal, &position)) g_list_store_remove (list_store, position); return; } // Emit items-changed signal to re-sort extension list { guint position; if (g_list_store_find_with_equal_func (list_store, extension, (GEqualFunc)is_extension_equal, &position)) g_list_model_items_changed (G_LIST_MODEL (list_store), position, 1, 1); } // If the extension that has changed has an update, then // one or more extensions have updates available. Lazily // check the exact number and emit the 'updates-available' // signal. gboolean has_update; g_object_get (extension, "has-update", &has_update, NULL); if (has_update) queue_notify_extension_updates (self); } static void exm_manager_init (ExmManager *self) { GError *error = NULL; self->proxy = shell_extensions_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION, G_DBUS_PROXY_FLAGS_NONE, "org.gnome.Shell.Extensions", "/org/gnome/Shell/Extensions", NULL, &error); if (error != NULL) { char *error_text; error_text = g_strdup_printf ("Could not create proxy: %s\n", error->message); notify_error (self, "%s", error_text); return; } self->update_callback_id = 0; g_object_bind_property (self->proxy, "shell-version", self, "shell-version", G_BINDING_SYNC_CREATE); g_object_bind_property (self->proxy, "user-extensions-enabled", self, "extensions-enabled", G_BINDING_BIDIRECTIONAL|G_BINDING_SYNC_CREATE); update_extension_list (self); g_signal_connect (self->proxy, "extension-state-changed", G_CALLBACK (on_state_changed), self); } extension-manager-0.5.0/src/local/exm-manager.h000066400000000000000000000024171457631363100214100ustar00rootroot00000000000000#pragma once #include #include #include "exm-extension.h" G_BEGIN_DECLS #define EXM_TYPE_MANAGER (exm_manager_get_type()) G_DECLARE_FINAL_TYPE (ExmManager, exm_manager, EXM, MANAGER, GObject) ExmManager *exm_manager_new (void); void exm_manager_enable_extension (ExmManager *manager, ExmExtension *extension); void exm_manager_disable_extension (ExmManager *manager, ExmExtension *extension); void exm_manager_remove_extension (ExmManager *self, ExmExtension *extension); void exm_manager_open_prefs (ExmManager *self, ExmExtension *extension); void exm_manager_check_for_updates (ExmManager *self); gboolean exm_manager_is_installed_uuid (ExmManager *self, const gchar *uuid); ExmExtension *exm_manager_get_by_uuid (ExmManager *self, const gchar *uuid); void exm_manager_install_async (ExmManager *self, const gchar *uuid, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean exm_manager_install_finish (ExmManager *self, GAsyncResult *result, GError **error); G_END_DECLS extension-manager-0.5.0/src/local/meson.build000066400000000000000000000001661457631363100211770ustar00rootroot00000000000000exm_sources += files([ # Extension Management 'exm-manager.c', 'exm-extension.c', 'shell-dbus-interface.c' ]) extension-manager-0.5.0/src/local/org.gnome.Shell.Extensions.xml000066400000000000000000000044411457631363100246560ustar00rootroot00000000000000 extension-manager-0.5.0/src/local/regenerate-dbus.sh000077500000000000000000000002641457631363100224470ustar00rootroot00000000000000gdbus-codegen --interface-prefix org.gnome.Shell. \ --generate-c-code shell-dbus-interface \ --c-namespace Shell \ --c-generate-object-manager \ org.gnome.Shell.Extensions.xml extension-manager-0.5.0/src/local/shell-dbus-interface.c000066400000000000000000004357471457631363100232220ustar00rootroot00000000000000/* * This file is generated by gdbus-codegen, do not modify it. * * The license of this code is the same as for the D-Bus interface description * it was derived from. Note that it links to GLib, so must comply with the * LGPL linking clauses. */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "shell-dbus-interface.h" #include #ifdef G_OS_UNIX # include #endif typedef struct { GDBusArgInfo parent_struct; gboolean use_gvariant; } _ExtendedGDBusArgInfo; typedef struct { GDBusMethodInfo parent_struct; const gchar *signal_name; gboolean pass_fdlist; } _ExtendedGDBusMethodInfo; typedef struct { GDBusSignalInfo parent_struct; const gchar *signal_name; } _ExtendedGDBusSignalInfo; typedef struct { GDBusPropertyInfo parent_struct; const gchar *hyphen_name; guint use_gvariant : 1; guint emits_changed_signal : 1; } _ExtendedGDBusPropertyInfo; typedef struct { GDBusInterfaceInfo parent_struct; const gchar *hyphen_name; } _ExtendedGDBusInterfaceInfo; typedef struct { const _ExtendedGDBusPropertyInfo *info; guint prop_id; GValue orig_value; /* the value before the change */ } ChangedProperty; static void _changed_property_free (ChangedProperty *data) { g_value_unset (&data->orig_value); g_free (data); } static gboolean _g_strv_equal0 (gchar **a, gchar **b) { gboolean ret = FALSE; guint n; if (a == NULL && b == NULL) { ret = TRUE; goto out; } if (a == NULL || b == NULL) goto out; if (g_strv_length (a) != g_strv_length (b)) goto out; for (n = 0; a[n] != NULL; n++) if (g_strcmp0 (a[n], b[n]) != 0) goto out; ret = TRUE; out: return ret; } static gboolean _g_variant_equal0 (GVariant *a, GVariant *b) { gboolean ret = FALSE; if (a == NULL && b == NULL) { ret = TRUE; goto out; } if (a == NULL || b == NULL) goto out; ret = g_variant_equal (a, b); out: return ret; } G_GNUC_UNUSED static gboolean _g_value_equal (const GValue *a, const GValue *b) { gboolean ret = FALSE; g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b)); switch (G_VALUE_TYPE (a)) { case G_TYPE_BOOLEAN: ret = (g_value_get_boolean (a) == g_value_get_boolean (b)); break; case G_TYPE_UCHAR: ret = (g_value_get_uchar (a) == g_value_get_uchar (b)); break; case G_TYPE_INT: ret = (g_value_get_int (a) == g_value_get_int (b)); break; case G_TYPE_UINT: ret = (g_value_get_uint (a) == g_value_get_uint (b)); break; case G_TYPE_INT64: ret = (g_value_get_int64 (a) == g_value_get_int64 (b)); break; case G_TYPE_UINT64: ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b)); break; case G_TYPE_DOUBLE: { /* Avoid -Wfloat-equal warnings by doing a direct bit compare */ gdouble da = g_value_get_double (a); gdouble db = g_value_get_double (b); ret = memcmp (&da, &db, sizeof (gdouble)) == 0; } break; case G_TYPE_STRING: ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0); break; case G_TYPE_VARIANT: ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b)); break; default: if (G_VALUE_TYPE (a) == G_TYPE_STRV) ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b)); else g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a))); break; } return ret; } /* ------------------------------------------------------------------------ * Code for interface org.gnome.Shell.Extensions * ------------------------------------------------------------------------ */ /** * SECTION:ShellExtensions * @title: ShellExtensions * @short_description: Generated C code for the org.gnome.Shell.Extensions D-Bus interface * * This section contains code for working with the org.gnome.Shell.Extensions D-Bus interface in C. */ /* ---- Introspection data for org.gnome.Shell.Extensions ---- */ static const _ExtendedGDBusArgInfo _shell_extensions_method_info_list_extensions_OUT_ARG_extensions = { { -1, (gchar *) "extensions", (gchar *) "a{sa{sv}}", NULL }, FALSE }; static const GDBusArgInfo * const _shell_extensions_method_info_list_extensions_OUT_ARG_pointers[] = { &_shell_extensions_method_info_list_extensions_OUT_ARG_extensions.parent_struct, NULL }; static const _ExtendedGDBusMethodInfo _shell_extensions_method_info_list_extensions = { { -1, (gchar *) "ListExtensions", NULL, (GDBusArgInfo **) &_shell_extensions_method_info_list_extensions_OUT_ARG_pointers, NULL }, "handle-list-extensions", FALSE }; static const _ExtendedGDBusArgInfo _shell_extensions_method_info_get_extension_info_IN_ARG_uuid = { { -1, (gchar *) "uuid", (gchar *) "s", NULL }, FALSE }; static const GDBusArgInfo * const _shell_extensions_method_info_get_extension_info_IN_ARG_pointers[] = { &_shell_extensions_method_info_get_extension_info_IN_ARG_uuid.parent_struct, NULL }; static const _ExtendedGDBusArgInfo _shell_extensions_method_info_get_extension_info_OUT_ARG_info = { { -1, (gchar *) "info", (gchar *) "a{sv}", NULL }, FALSE }; static const GDBusArgInfo * const _shell_extensions_method_info_get_extension_info_OUT_ARG_pointers[] = { &_shell_extensions_method_info_get_extension_info_OUT_ARG_info.parent_struct, NULL }; static const _ExtendedGDBusMethodInfo _shell_extensions_method_info_get_extension_info = { { -1, (gchar *) "GetExtensionInfo", (GDBusArgInfo **) &_shell_extensions_method_info_get_extension_info_IN_ARG_pointers, (GDBusArgInfo **) &_shell_extensions_method_info_get_extension_info_OUT_ARG_pointers, NULL }, "handle-get-extension-info", FALSE }; static const _ExtendedGDBusArgInfo _shell_extensions_method_info_get_extension_errors_IN_ARG_uuid = { { -1, (gchar *) "uuid", (gchar *) "s", NULL }, FALSE }; static const GDBusArgInfo * const _shell_extensions_method_info_get_extension_errors_IN_ARG_pointers[] = { &_shell_extensions_method_info_get_extension_errors_IN_ARG_uuid.parent_struct, NULL }; static const _ExtendedGDBusArgInfo _shell_extensions_method_info_get_extension_errors_OUT_ARG_errors = { { -1, (gchar *) "errors", (gchar *) "as", NULL }, FALSE }; static const GDBusArgInfo * const _shell_extensions_method_info_get_extension_errors_OUT_ARG_pointers[] = { &_shell_extensions_method_info_get_extension_errors_OUT_ARG_errors.parent_struct, NULL }; static const _ExtendedGDBusMethodInfo _shell_extensions_method_info_get_extension_errors = { { -1, (gchar *) "GetExtensionErrors", (GDBusArgInfo **) &_shell_extensions_method_info_get_extension_errors_IN_ARG_pointers, (GDBusArgInfo **) &_shell_extensions_method_info_get_extension_errors_OUT_ARG_pointers, NULL }, "handle-get-extension-errors", FALSE }; static const _ExtendedGDBusArgInfo _shell_extensions_method_info_install_remote_extension_IN_ARG_uuid = { { -1, (gchar *) "uuid", (gchar *) "s", NULL }, FALSE }; static const GDBusArgInfo * const _shell_extensions_method_info_install_remote_extension_IN_ARG_pointers[] = { &_shell_extensions_method_info_install_remote_extension_IN_ARG_uuid.parent_struct, NULL }; static const _ExtendedGDBusArgInfo _shell_extensions_method_info_install_remote_extension_OUT_ARG_result = { { -1, (gchar *) "result", (gchar *) "s", NULL }, FALSE }; static const GDBusArgInfo * const _shell_extensions_method_info_install_remote_extension_OUT_ARG_pointers[] = { &_shell_extensions_method_info_install_remote_extension_OUT_ARG_result.parent_struct, NULL }; static const _ExtendedGDBusMethodInfo _shell_extensions_method_info_install_remote_extension = { { -1, (gchar *) "InstallRemoteExtension", (GDBusArgInfo **) &_shell_extensions_method_info_install_remote_extension_IN_ARG_pointers, (GDBusArgInfo **) &_shell_extensions_method_info_install_remote_extension_OUT_ARG_pointers, NULL }, "handle-install-remote-extension", FALSE }; static const _ExtendedGDBusArgInfo _shell_extensions_method_info_uninstall_extension_IN_ARG_uuid = { { -1, (gchar *) "uuid", (gchar *) "s", NULL }, FALSE }; static const GDBusArgInfo * const _shell_extensions_method_info_uninstall_extension_IN_ARG_pointers[] = { &_shell_extensions_method_info_uninstall_extension_IN_ARG_uuid.parent_struct, NULL }; static const _ExtendedGDBusArgInfo _shell_extensions_method_info_uninstall_extension_OUT_ARG_success = { { -1, (gchar *) "success", (gchar *) "b", NULL }, FALSE }; static const GDBusArgInfo * const _shell_extensions_method_info_uninstall_extension_OUT_ARG_pointers[] = { &_shell_extensions_method_info_uninstall_extension_OUT_ARG_success.parent_struct, NULL }; static const _ExtendedGDBusMethodInfo _shell_extensions_method_info_uninstall_extension = { { -1, (gchar *) "UninstallExtension", (GDBusArgInfo **) &_shell_extensions_method_info_uninstall_extension_IN_ARG_pointers, (GDBusArgInfo **) &_shell_extensions_method_info_uninstall_extension_OUT_ARG_pointers, NULL }, "handle-uninstall-extension", FALSE }; static const _ExtendedGDBusArgInfo _shell_extensions_method_info_reload_extension_IN_ARG_uuid = { { -1, (gchar *) "uuid", (gchar *) "s", NULL }, FALSE }; static const GDBusArgInfo * const _shell_extensions_method_info_reload_extension_IN_ARG_pointers[] = { &_shell_extensions_method_info_reload_extension_IN_ARG_uuid.parent_struct, NULL }; static const _ExtendedGDBusMethodInfo _shell_extensions_method_info_reload_extension = { { -1, (gchar *) "ReloadExtension", (GDBusArgInfo **) &_shell_extensions_method_info_reload_extension_IN_ARG_pointers, NULL, NULL }, "handle-reload-extension", FALSE }; static const _ExtendedGDBusArgInfo _shell_extensions_method_info_enable_extension_IN_ARG_uuid = { { -1, (gchar *) "uuid", (gchar *) "s", NULL }, FALSE }; static const GDBusArgInfo * const _shell_extensions_method_info_enable_extension_IN_ARG_pointers[] = { &_shell_extensions_method_info_enable_extension_IN_ARG_uuid.parent_struct, NULL }; static const _ExtendedGDBusArgInfo _shell_extensions_method_info_enable_extension_OUT_ARG_success = { { -1, (gchar *) "success", (gchar *) "b", NULL }, FALSE }; static const GDBusArgInfo * const _shell_extensions_method_info_enable_extension_OUT_ARG_pointers[] = { &_shell_extensions_method_info_enable_extension_OUT_ARG_success.parent_struct, NULL }; static const _ExtendedGDBusMethodInfo _shell_extensions_method_info_enable_extension = { { -1, (gchar *) "EnableExtension", (GDBusArgInfo **) &_shell_extensions_method_info_enable_extension_IN_ARG_pointers, (GDBusArgInfo **) &_shell_extensions_method_info_enable_extension_OUT_ARG_pointers, NULL }, "handle-enable-extension", FALSE }; static const _ExtendedGDBusArgInfo _shell_extensions_method_info_disable_extension_IN_ARG_uuid = { { -1, (gchar *) "uuid", (gchar *) "s", NULL }, FALSE }; static const GDBusArgInfo * const _shell_extensions_method_info_disable_extension_IN_ARG_pointers[] = { &_shell_extensions_method_info_disable_extension_IN_ARG_uuid.parent_struct, NULL }; static const _ExtendedGDBusArgInfo _shell_extensions_method_info_disable_extension_OUT_ARG_success = { { -1, (gchar *) "success", (gchar *) "b", NULL }, FALSE }; static const GDBusArgInfo * const _shell_extensions_method_info_disable_extension_OUT_ARG_pointers[] = { &_shell_extensions_method_info_disable_extension_OUT_ARG_success.parent_struct, NULL }; static const _ExtendedGDBusMethodInfo _shell_extensions_method_info_disable_extension = { { -1, (gchar *) "DisableExtension", (GDBusArgInfo **) &_shell_extensions_method_info_disable_extension_IN_ARG_pointers, (GDBusArgInfo **) &_shell_extensions_method_info_disable_extension_OUT_ARG_pointers, NULL }, "handle-disable-extension", FALSE }; static const _ExtendedGDBusArgInfo _shell_extensions_method_info_launch_extension_prefs_IN_ARG_uuid = { { -1, (gchar *) "uuid", (gchar *) "s", NULL }, FALSE }; static const GDBusArgInfo * const _shell_extensions_method_info_launch_extension_prefs_IN_ARG_pointers[] = { &_shell_extensions_method_info_launch_extension_prefs_IN_ARG_uuid.parent_struct, NULL }; static const _ExtendedGDBusMethodInfo _shell_extensions_method_info_launch_extension_prefs = { { -1, (gchar *) "LaunchExtensionPrefs", (GDBusArgInfo **) &_shell_extensions_method_info_launch_extension_prefs_IN_ARG_pointers, NULL, NULL }, "handle-launch-extension-prefs", FALSE }; static const _ExtendedGDBusArgInfo _shell_extensions_method_info_open_extension_prefs_IN_ARG_uuid = { { -1, (gchar *) "uuid", (gchar *) "s", NULL }, FALSE }; static const _ExtendedGDBusArgInfo _shell_extensions_method_info_open_extension_prefs_IN_ARG_parent_window = { { -1, (gchar *) "parent_window", (gchar *) "s", NULL }, FALSE }; static const _ExtendedGDBusArgInfo _shell_extensions_method_info_open_extension_prefs_IN_ARG_options = { { -1, (gchar *) "options", (gchar *) "a{sv}", NULL }, FALSE }; static const GDBusArgInfo * const _shell_extensions_method_info_open_extension_prefs_IN_ARG_pointers[] = { &_shell_extensions_method_info_open_extension_prefs_IN_ARG_uuid.parent_struct, &_shell_extensions_method_info_open_extension_prefs_IN_ARG_parent_window.parent_struct, &_shell_extensions_method_info_open_extension_prefs_IN_ARG_options.parent_struct, NULL }; static const _ExtendedGDBusMethodInfo _shell_extensions_method_info_open_extension_prefs = { { -1, (gchar *) "OpenExtensionPrefs", (GDBusArgInfo **) &_shell_extensions_method_info_open_extension_prefs_IN_ARG_pointers, NULL, NULL }, "handle-open-extension-prefs", FALSE }; static const _ExtendedGDBusMethodInfo _shell_extensions_method_info_check_for_updates = { { -1, (gchar *) "CheckForUpdates", NULL, NULL, NULL }, "handle-check-for-updates", FALSE }; static const GDBusMethodInfo * const _shell_extensions_method_info_pointers[] = { &_shell_extensions_method_info_list_extensions.parent_struct, &_shell_extensions_method_info_get_extension_info.parent_struct, &_shell_extensions_method_info_get_extension_errors.parent_struct, &_shell_extensions_method_info_install_remote_extension.parent_struct, &_shell_extensions_method_info_uninstall_extension.parent_struct, &_shell_extensions_method_info_reload_extension.parent_struct, &_shell_extensions_method_info_enable_extension.parent_struct, &_shell_extensions_method_info_disable_extension.parent_struct, &_shell_extensions_method_info_launch_extension_prefs.parent_struct, &_shell_extensions_method_info_open_extension_prefs.parent_struct, &_shell_extensions_method_info_check_for_updates.parent_struct, NULL }; static const _ExtendedGDBusArgInfo _shell_extensions_signal_info_extension_state_changed_ARG_uuid = { { -1, (gchar *) "uuid", (gchar *) "s", NULL }, FALSE }; static const _ExtendedGDBusArgInfo _shell_extensions_signal_info_extension_state_changed_ARG_state = { { -1, (gchar *) "state", (gchar *) "a{sv}", NULL }, FALSE }; static const GDBusArgInfo * const _shell_extensions_signal_info_extension_state_changed_ARG_pointers[] = { &_shell_extensions_signal_info_extension_state_changed_ARG_uuid.parent_struct, &_shell_extensions_signal_info_extension_state_changed_ARG_state.parent_struct, NULL }; static const _ExtendedGDBusSignalInfo _shell_extensions_signal_info_extension_state_changed = { { -1, (gchar *) "ExtensionStateChanged", (GDBusArgInfo **) &_shell_extensions_signal_info_extension_state_changed_ARG_pointers, NULL }, "extension-state-changed" }; static const _ExtendedGDBusArgInfo _shell_extensions_signal_info_extension_status_changed_ARG_uuid = { { -1, (gchar *) "uuid", (gchar *) "s", NULL }, FALSE }; static const _ExtendedGDBusArgInfo _shell_extensions_signal_info_extension_status_changed_ARG_state = { { -1, (gchar *) "state", (gchar *) "i", NULL }, FALSE }; static const _ExtendedGDBusArgInfo _shell_extensions_signal_info_extension_status_changed_ARG_error = { { -1, (gchar *) "error", (gchar *) "s", NULL }, FALSE }; static const GDBusArgInfo * const _shell_extensions_signal_info_extension_status_changed_ARG_pointers[] = { &_shell_extensions_signal_info_extension_status_changed_ARG_uuid.parent_struct, &_shell_extensions_signal_info_extension_status_changed_ARG_state.parent_struct, &_shell_extensions_signal_info_extension_status_changed_ARG_error.parent_struct, NULL }; static const _ExtendedGDBusSignalInfo _shell_extensions_signal_info_extension_status_changed = { { -1, (gchar *) "ExtensionStatusChanged", (GDBusArgInfo **) &_shell_extensions_signal_info_extension_status_changed_ARG_pointers, NULL }, "extension-status-changed" }; static const GDBusSignalInfo * const _shell_extensions_signal_info_pointers[] = { &_shell_extensions_signal_info_extension_state_changed.parent_struct, &_shell_extensions_signal_info_extension_status_changed.parent_struct, NULL }; static const _ExtendedGDBusPropertyInfo _shell_extensions_property_info_shell_version = { { -1, (gchar *) "ShellVersion", (gchar *) "s", G_DBUS_PROPERTY_INFO_FLAGS_READABLE, NULL }, "shell-version", FALSE, TRUE }; static const _ExtendedGDBusPropertyInfo _shell_extensions_property_info_user_extensions_enabled = { { -1, (gchar *) "UserExtensionsEnabled", (gchar *) "b", G_DBUS_PROPERTY_INFO_FLAGS_READABLE | G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE, NULL }, "user-extensions-enabled", FALSE, TRUE }; static const GDBusPropertyInfo * const _shell_extensions_property_info_pointers[] = { &_shell_extensions_property_info_shell_version.parent_struct, &_shell_extensions_property_info_user_extensions_enabled.parent_struct, NULL }; static const _ExtendedGDBusInterfaceInfo _shell_extensions_interface_info = { { -1, (gchar *) "org.gnome.Shell.Extensions", (GDBusMethodInfo **) &_shell_extensions_method_info_pointers, (GDBusSignalInfo **) &_shell_extensions_signal_info_pointers, (GDBusPropertyInfo **) &_shell_extensions_property_info_pointers, NULL }, "extensions", }; /** * shell_extensions_interface_info: * * Gets a machine-readable description of the org.gnome.Shell.Extensions D-Bus interface. * * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. */ GDBusInterfaceInfo * shell_extensions_interface_info (void) { return (GDBusInterfaceInfo *) &_shell_extensions_interface_info.parent_struct; } /** * shell_extensions_override_properties: * @klass: The class structure for a #GObject derived class. * @property_id_begin: The property id to assign to the first overridden property. * * Overrides all #GObject properties in the #ShellExtensions interface for a concrete class. * The properties are overridden in the order they are defined. * * Returns: The last property id. */ guint shell_extensions_override_properties (GObjectClass *klass, guint property_id_begin) { g_object_class_override_property (klass, property_id_begin++, "shell-version"); g_object_class_override_property (klass, property_id_begin++, "user-extensions-enabled"); return property_id_begin - 1; } /** * ShellExtensions: * * Abstract interface type for the D-Bus interface org.gnome.Shell.Extensions. */ /** * ShellExtensionsIface: * @parent_iface: The parent interface. * @handle_check_for_updates: Handler for the #ShellExtensions::handle-check-for-updates signal. * @handle_disable_extension: Handler for the #ShellExtensions::handle-disable-extension signal. * @handle_enable_extension: Handler for the #ShellExtensions::handle-enable-extension signal. * @handle_get_extension_errors: Handler for the #ShellExtensions::handle-get-extension-errors signal. * @handle_get_extension_info: Handler for the #ShellExtensions::handle-get-extension-info signal. * @handle_install_remote_extension: Handler for the #ShellExtensions::handle-install-remote-extension signal. * @handle_launch_extension_prefs: Handler for the #ShellExtensions::handle-launch-extension-prefs signal. * @handle_list_extensions: Handler for the #ShellExtensions::handle-list-extensions signal. * @handle_open_extension_prefs: Handler for the #ShellExtensions::handle-open-extension-prefs signal. * @handle_reload_extension: Handler for the #ShellExtensions::handle-reload-extension signal. * @handle_uninstall_extension: Handler for the #ShellExtensions::handle-uninstall-extension signal. * @get_shell_version: Getter for the #ShellExtensions:shell-version property. * @get_user_extensions_enabled: Getter for the #ShellExtensions:user-extensions-enabled property. * @extension_state_changed: Handler for the #ShellExtensions::extension-state-changed signal. * @extension_status_changed: Handler for the #ShellExtensions::extension-status-changed signal. * * Virtual table for the D-Bus interface org.gnome.Shell.Extensions. */ typedef ShellExtensionsIface ShellExtensionsInterface; G_DEFINE_INTERFACE (ShellExtensions, shell_extensions, G_TYPE_OBJECT) static void shell_extensions_default_init (ShellExtensionsIface *iface) { /* GObject signals for incoming D-Bus method calls: */ /** * ShellExtensions::handle-list-extensions: * @object: A #ShellExtensions. * @invocation: A #GDBusMethodInvocation. * * Signal emitted when a remote caller is invoking the ListExtensions() D-Bus method. * * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call shell_extensions_complete_list_extensions() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. * * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run. */ g_signal_new ("handle-list-extensions", G_TYPE_FROM_INTERFACE (iface), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ShellExtensionsIface, handle_list_extensions), g_signal_accumulator_true_handled, NULL, g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 1, G_TYPE_DBUS_METHOD_INVOCATION); /** * ShellExtensions::handle-get-extension-info: * @object: A #ShellExtensions. * @invocation: A #GDBusMethodInvocation. * @arg_uuid: Argument passed by remote caller. * * Signal emitted when a remote caller is invoking the GetExtensionInfo() D-Bus method. * * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call shell_extensions_complete_get_extension_info() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. * * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run. */ g_signal_new ("handle-get-extension-info", G_TYPE_FROM_INTERFACE (iface), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ShellExtensionsIface, handle_get_extension_info), g_signal_accumulator_true_handled, NULL, g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 2, G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING); /** * ShellExtensions::handle-get-extension-errors: * @object: A #ShellExtensions. * @invocation: A #GDBusMethodInvocation. * @arg_uuid: Argument passed by remote caller. * * Signal emitted when a remote caller is invoking the GetExtensionErrors() D-Bus method. * * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call shell_extensions_complete_get_extension_errors() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. * * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run. */ g_signal_new ("handle-get-extension-errors", G_TYPE_FROM_INTERFACE (iface), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ShellExtensionsIface, handle_get_extension_errors), g_signal_accumulator_true_handled, NULL, g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 2, G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING); /** * ShellExtensions::handle-install-remote-extension: * @object: A #ShellExtensions. * @invocation: A #GDBusMethodInvocation. * @arg_uuid: Argument passed by remote caller. * * Signal emitted when a remote caller is invoking the InstallRemoteExtension() D-Bus method. * * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call shell_extensions_complete_install_remote_extension() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. * * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run. */ g_signal_new ("handle-install-remote-extension", G_TYPE_FROM_INTERFACE (iface), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ShellExtensionsIface, handle_install_remote_extension), g_signal_accumulator_true_handled, NULL, g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 2, G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING); /** * ShellExtensions::handle-uninstall-extension: * @object: A #ShellExtensions. * @invocation: A #GDBusMethodInvocation. * @arg_uuid: Argument passed by remote caller. * * Signal emitted when a remote caller is invoking the UninstallExtension() D-Bus method. * * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call shell_extensions_complete_uninstall_extension() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. * * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run. */ g_signal_new ("handle-uninstall-extension", G_TYPE_FROM_INTERFACE (iface), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ShellExtensionsIface, handle_uninstall_extension), g_signal_accumulator_true_handled, NULL, g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 2, G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING); /** * ShellExtensions::handle-reload-extension: * @object: A #ShellExtensions. * @invocation: A #GDBusMethodInvocation. * @arg_uuid: Argument passed by remote caller. * * Signal emitted when a remote caller is invoking the ReloadExtension() D-Bus method. * * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call shell_extensions_complete_reload_extension() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. * * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run. */ g_signal_new ("handle-reload-extension", G_TYPE_FROM_INTERFACE (iface), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ShellExtensionsIface, handle_reload_extension), g_signal_accumulator_true_handled, NULL, g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 2, G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING); /** * ShellExtensions::handle-enable-extension: * @object: A #ShellExtensions. * @invocation: A #GDBusMethodInvocation. * @arg_uuid: Argument passed by remote caller. * * Signal emitted when a remote caller is invoking the EnableExtension() D-Bus method. * * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call shell_extensions_complete_enable_extension() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. * * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run. */ g_signal_new ("handle-enable-extension", G_TYPE_FROM_INTERFACE (iface), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ShellExtensionsIface, handle_enable_extension), g_signal_accumulator_true_handled, NULL, g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 2, G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING); /** * ShellExtensions::handle-disable-extension: * @object: A #ShellExtensions. * @invocation: A #GDBusMethodInvocation. * @arg_uuid: Argument passed by remote caller. * * Signal emitted when a remote caller is invoking the DisableExtension() D-Bus method. * * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call shell_extensions_complete_disable_extension() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. * * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run. */ g_signal_new ("handle-disable-extension", G_TYPE_FROM_INTERFACE (iface), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ShellExtensionsIface, handle_disable_extension), g_signal_accumulator_true_handled, NULL, g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 2, G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING); /** * ShellExtensions::handle-launch-extension-prefs: * @object: A #ShellExtensions. * @invocation: A #GDBusMethodInvocation. * @arg_uuid: Argument passed by remote caller. * * Signal emitted when a remote caller is invoking the LaunchExtensionPrefs() D-Bus method. * * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call shell_extensions_complete_launch_extension_prefs() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. * * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run. */ g_signal_new ("handle-launch-extension-prefs", G_TYPE_FROM_INTERFACE (iface), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ShellExtensionsIface, handle_launch_extension_prefs), g_signal_accumulator_true_handled, NULL, g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 2, G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING); /** * ShellExtensions::handle-open-extension-prefs: * @object: A #ShellExtensions. * @invocation: A #GDBusMethodInvocation. * @arg_uuid: Argument passed by remote caller. * @arg_parent_window: Argument passed by remote caller. * @arg_options: Argument passed by remote caller. * * Signal emitted when a remote caller is invoking the OpenExtensionPrefs() D-Bus method. * * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call shell_extensions_complete_open_extension_prefs() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. * * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run. */ g_signal_new ("handle-open-extension-prefs", G_TYPE_FROM_INTERFACE (iface), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ShellExtensionsIface, handle_open_extension_prefs), g_signal_accumulator_true_handled, NULL, g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 4, G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_VARIANT); /** * ShellExtensions::handle-check-for-updates: * @object: A #ShellExtensions. * @invocation: A #GDBusMethodInvocation. * * Signal emitted when a remote caller is invoking the CheckForUpdates() D-Bus method. * * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call shell_extensions_complete_check_for_updates() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. * * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run. */ g_signal_new ("handle-check-for-updates", G_TYPE_FROM_INTERFACE (iface), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ShellExtensionsIface, handle_check_for_updates), g_signal_accumulator_true_handled, NULL, g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 1, G_TYPE_DBUS_METHOD_INVOCATION); /* GObject signals for received D-Bus signals: */ /** * ShellExtensions::extension-state-changed: * @object: A #ShellExtensions. * @arg_uuid: Argument. * @arg_state: Argument. * * On the client-side, this signal is emitted whenever the D-Bus signal "ExtensionStateChanged" is received. * * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal. */ g_signal_new ("extension-state-changed", G_TYPE_FROM_INTERFACE (iface), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ShellExtensionsIface, extension_state_changed), NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_VARIANT); /** * ShellExtensions::extension-status-changed: * @object: A #ShellExtensions. * @arg_uuid: Argument. * @arg_state: Argument. * @arg_error: Argument. * * On the client-side, this signal is emitted whenever the D-Bus signal "ExtensionStatusChanged" is received. * * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal. */ g_signal_new ("extension-status-changed", G_TYPE_FROM_INTERFACE (iface), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ShellExtensionsIface, extension_status_changed), NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 3, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING); /* GObject properties for D-Bus properties: */ /** * ShellExtensions:shell-version: * * Represents the D-Bus property "ShellVersion". * * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. */ g_object_interface_install_property (iface, g_param_spec_string ("shell-version", "ShellVersion", "ShellVersion", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** * ShellExtensions:user-extensions-enabled: * * Represents the D-Bus property "UserExtensionsEnabled". * * Since the D-Bus property for this #GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side. */ g_object_interface_install_property (iface, g_param_spec_boolean ("user-extensions-enabled", "UserExtensionsEnabled", "UserExtensionsEnabled", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); } /** * shell_extensions_get_shell_version: (skip) * @object: A #ShellExtensions. * * Gets the value of the "ShellVersion" D-Bus property. * * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. * * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use shell_extensions_dup_shell_version() if on another thread. * * Returns: (transfer none) (nullable): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object. */ const gchar * shell_extensions_get_shell_version (ShellExtensions *object) { return SHELL_EXTENSIONS_GET_IFACE (object)->get_shell_version (object); } /** * shell_extensions_dup_shell_version: (skip) * @object: A #ShellExtensions. * * Gets a copy of the "ShellVersion" D-Bus property. * * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. * * Returns: (transfer full) (nullable): The property value or %NULL if the property is not set. The returned value should be freed with g_free(). */ gchar * shell_extensions_dup_shell_version (ShellExtensions *object) { gchar *value; g_object_get (G_OBJECT (object), "shell-version", &value, NULL); return value; } /** * shell_extensions_set_shell_version: (skip) * @object: A #ShellExtensions. * @value: The value to set. * * Sets the "ShellVersion" D-Bus property to @value. * * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. */ void shell_extensions_set_shell_version (ShellExtensions *object, const gchar *value) { g_object_set (G_OBJECT (object), "shell-version", value, NULL); } /** * shell_extensions_get_user_extensions_enabled: (skip) * @object: A #ShellExtensions. * * Gets the value of the "UserExtensionsEnabled" D-Bus property. * * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. * * Returns: The property value. */ gboolean shell_extensions_get_user_extensions_enabled (ShellExtensions *object) { return SHELL_EXTENSIONS_GET_IFACE (object)->get_user_extensions_enabled (object); } /** * shell_extensions_set_user_extensions_enabled: (skip) * @object: A #ShellExtensions. * @value: The value to set. * * Sets the "UserExtensionsEnabled" D-Bus property to @value. * * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. */ void shell_extensions_set_user_extensions_enabled (ShellExtensions *object, gboolean value) { g_object_set (G_OBJECT (object), "user-extensions-enabled", value, NULL); } /** * shell_extensions_emit_extension_state_changed: * @object: A #ShellExtensions. * @arg_uuid: Argument to pass with the signal. * @arg_state: Argument to pass with the signal. * * Emits the "ExtensionStateChanged" D-Bus signal. */ void shell_extensions_emit_extension_state_changed ( ShellExtensions *object, const gchar *arg_uuid, GVariant *arg_state) { g_signal_emit_by_name (object, "extension-state-changed", arg_uuid, arg_state); } /** * shell_extensions_emit_extension_status_changed: * @object: A #ShellExtensions. * @arg_uuid: Argument to pass with the signal. * @arg_state: Argument to pass with the signal. * @arg_error: Argument to pass with the signal. * * Emits the "ExtensionStatusChanged" D-Bus signal. */ void shell_extensions_emit_extension_status_changed ( ShellExtensions *object, const gchar *arg_uuid, gint arg_state, const gchar *arg_error) { g_signal_emit_by_name (object, "extension-status-changed", arg_uuid, arg_state, arg_error); } /** * shell_extensions_call_list_extensions: * @proxy: A #ShellExtensionsProxy. * @cancellable: (nullable): A #GCancellable or %NULL. * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. * @user_data: User data to pass to @callback. * * Asynchronously invokes the ListExtensions() D-Bus method on @proxy. * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()). * You can then call shell_extensions_call_list_extensions_finish() to get the result of the operation. * * See shell_extensions_call_list_extensions_sync() for the synchronous, blocking version of this method. */ void shell_extensions_call_list_extensions ( ShellExtensions *proxy, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { g_dbus_proxy_call (G_DBUS_PROXY (proxy), "ListExtensions", g_variant_new ("()"), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, callback, user_data); } /** * shell_extensions_call_list_extensions_finish: * @proxy: A #ShellExtensionsProxy. * @out_extensions: (out) (optional): Return location for return parameter or %NULL to ignore. * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to shell_extensions_call_list_extensions(). * @error: Return location for error or %NULL. * * Finishes an operation started with shell_extensions_call_list_extensions(). * * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set. */ gboolean shell_extensions_call_list_extensions_finish ( ShellExtensions *proxy, GVariant **out_extensions, GAsyncResult *res, GError **error) { GVariant *_ret; _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error); if (_ret == NULL) goto _out; g_variant_get (_ret, "(@a{sa{sv}})", out_extensions); g_variant_unref (_ret); _out: return _ret != NULL; } /** * shell_extensions_call_list_extensions_sync: * @proxy: A #ShellExtensionsProxy. * @out_extensions: (out) (optional): Return location for return parameter or %NULL to ignore. * @cancellable: (nullable): A #GCancellable or %NULL. * @error: Return location for error or %NULL. * * Synchronously invokes the ListExtensions() D-Bus method on @proxy. The calling thread is blocked until a reply is received. * * See shell_extensions_call_list_extensions() for the asynchronous version of this method. * * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set. */ gboolean shell_extensions_call_list_extensions_sync ( ShellExtensions *proxy, GVariant **out_extensions, GCancellable *cancellable, GError **error) { GVariant *_ret; _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), "ListExtensions", g_variant_new ("()"), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, error); if (_ret == NULL) goto _out; g_variant_get (_ret, "(@a{sa{sv}})", out_extensions); g_variant_unref (_ret); _out: return _ret != NULL; } /** * shell_extensions_call_get_extension_info: * @proxy: A #ShellExtensionsProxy. * @arg_uuid: Argument to pass with the method invocation. * @cancellable: (nullable): A #GCancellable or %NULL. * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. * @user_data: User data to pass to @callback. * * Asynchronously invokes the GetExtensionInfo() D-Bus method on @proxy. * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()). * You can then call shell_extensions_call_get_extension_info_finish() to get the result of the operation. * * See shell_extensions_call_get_extension_info_sync() for the synchronous, blocking version of this method. */ void shell_extensions_call_get_extension_info ( ShellExtensions *proxy, const gchar *arg_uuid, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { g_dbus_proxy_call (G_DBUS_PROXY (proxy), "GetExtensionInfo", g_variant_new ("(s)", arg_uuid), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, callback, user_data); } /** * shell_extensions_call_get_extension_info_finish: * @proxy: A #ShellExtensionsProxy. * @out_info: (out) (optional): Return location for return parameter or %NULL to ignore. * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to shell_extensions_call_get_extension_info(). * @error: Return location for error or %NULL. * * Finishes an operation started with shell_extensions_call_get_extension_info(). * * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set. */ gboolean shell_extensions_call_get_extension_info_finish ( ShellExtensions *proxy, GVariant **out_info, GAsyncResult *res, GError **error) { GVariant *_ret; _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error); if (_ret == NULL) goto _out; g_variant_get (_ret, "(@a{sv})", out_info); g_variant_unref (_ret); _out: return _ret != NULL; } /** * shell_extensions_call_get_extension_info_sync: * @proxy: A #ShellExtensionsProxy. * @arg_uuid: Argument to pass with the method invocation. * @out_info: (out) (optional): Return location for return parameter or %NULL to ignore. * @cancellable: (nullable): A #GCancellable or %NULL. * @error: Return location for error or %NULL. * * Synchronously invokes the GetExtensionInfo() D-Bus method on @proxy. The calling thread is blocked until a reply is received. * * See shell_extensions_call_get_extension_info() for the asynchronous version of this method. * * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set. */ gboolean shell_extensions_call_get_extension_info_sync ( ShellExtensions *proxy, const gchar *arg_uuid, GVariant **out_info, GCancellable *cancellable, GError **error) { GVariant *_ret; _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), "GetExtensionInfo", g_variant_new ("(s)", arg_uuid), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, error); if (_ret == NULL) goto _out; g_variant_get (_ret, "(@a{sv})", out_info); g_variant_unref (_ret); _out: return _ret != NULL; } /** * shell_extensions_call_get_extension_errors: * @proxy: A #ShellExtensionsProxy. * @arg_uuid: Argument to pass with the method invocation. * @cancellable: (nullable): A #GCancellable or %NULL. * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. * @user_data: User data to pass to @callback. * * Asynchronously invokes the GetExtensionErrors() D-Bus method on @proxy. * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()). * You can then call shell_extensions_call_get_extension_errors_finish() to get the result of the operation. * * See shell_extensions_call_get_extension_errors_sync() for the synchronous, blocking version of this method. */ void shell_extensions_call_get_extension_errors ( ShellExtensions *proxy, const gchar *arg_uuid, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { g_dbus_proxy_call (G_DBUS_PROXY (proxy), "GetExtensionErrors", g_variant_new ("(s)", arg_uuid), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, callback, user_data); } /** * shell_extensions_call_get_extension_errors_finish: * @proxy: A #ShellExtensionsProxy. * @out_errors: (out) (optional) (array zero-terminated=1): Return location for return parameter or %NULL to ignore. * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to shell_extensions_call_get_extension_errors(). * @error: Return location for error or %NULL. * * Finishes an operation started with shell_extensions_call_get_extension_errors(). * * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set. */ gboolean shell_extensions_call_get_extension_errors_finish ( ShellExtensions *proxy, gchar ***out_errors, GAsyncResult *res, GError **error) { GVariant *_ret; _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error); if (_ret == NULL) goto _out; g_variant_get (_ret, "(^as)", out_errors); g_variant_unref (_ret); _out: return _ret != NULL; } /** * shell_extensions_call_get_extension_errors_sync: * @proxy: A #ShellExtensionsProxy. * @arg_uuid: Argument to pass with the method invocation. * @out_errors: (out) (optional) (array zero-terminated=1): Return location for return parameter or %NULL to ignore. * @cancellable: (nullable): A #GCancellable or %NULL. * @error: Return location for error or %NULL. * * Synchronously invokes the GetExtensionErrors() D-Bus method on @proxy. The calling thread is blocked until a reply is received. * * See shell_extensions_call_get_extension_errors() for the asynchronous version of this method. * * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set. */ gboolean shell_extensions_call_get_extension_errors_sync ( ShellExtensions *proxy, const gchar *arg_uuid, gchar ***out_errors, GCancellable *cancellable, GError **error) { GVariant *_ret; _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), "GetExtensionErrors", g_variant_new ("(s)", arg_uuid), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, error); if (_ret == NULL) goto _out; g_variant_get (_ret, "(^as)", out_errors); g_variant_unref (_ret); _out: return _ret != NULL; } /** * shell_extensions_call_install_remote_extension: * @proxy: A #ShellExtensionsProxy. * @arg_uuid: Argument to pass with the method invocation. * @cancellable: (nullable): A #GCancellable or %NULL. * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. * @user_data: User data to pass to @callback. * * Asynchronously invokes the InstallRemoteExtension() D-Bus method on @proxy. * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()). * You can then call shell_extensions_call_install_remote_extension_finish() to get the result of the operation. * * See shell_extensions_call_install_remote_extension_sync() for the synchronous, blocking version of this method. */ void shell_extensions_call_install_remote_extension ( ShellExtensions *proxy, const gchar *arg_uuid, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { g_dbus_proxy_call (G_DBUS_PROXY (proxy), "InstallRemoteExtension", g_variant_new ("(s)", arg_uuid), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, callback, user_data); } /** * shell_extensions_call_install_remote_extension_finish: * @proxy: A #ShellExtensionsProxy. * @out_result: (out) (optional): Return location for return parameter or %NULL to ignore. * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to shell_extensions_call_install_remote_extension(). * @error: Return location for error or %NULL. * * Finishes an operation started with shell_extensions_call_install_remote_extension(). * * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set. */ gboolean shell_extensions_call_install_remote_extension_finish ( ShellExtensions *proxy, gchar **out_result, GAsyncResult *res, GError **error) { GVariant *_ret; _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error); if (_ret == NULL) goto _out; g_variant_get (_ret, "(s)", out_result); g_variant_unref (_ret); _out: return _ret != NULL; } /** * shell_extensions_call_install_remote_extension_sync: * @proxy: A #ShellExtensionsProxy. * @arg_uuid: Argument to pass with the method invocation. * @out_result: (out) (optional): Return location for return parameter or %NULL to ignore. * @cancellable: (nullable): A #GCancellable or %NULL. * @error: Return location for error or %NULL. * * Synchronously invokes the InstallRemoteExtension() D-Bus method on @proxy. The calling thread is blocked until a reply is received. * * See shell_extensions_call_install_remote_extension() for the asynchronous version of this method. * * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set. */ gboolean shell_extensions_call_install_remote_extension_sync ( ShellExtensions *proxy, const gchar *arg_uuid, gchar **out_result, GCancellable *cancellable, GError **error) { GVariant *_ret; _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), "InstallRemoteExtension", g_variant_new ("(s)", arg_uuid), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, error); if (_ret == NULL) goto _out; g_variant_get (_ret, "(s)", out_result); g_variant_unref (_ret); _out: return _ret != NULL; } /** * shell_extensions_call_uninstall_extension: * @proxy: A #ShellExtensionsProxy. * @arg_uuid: Argument to pass with the method invocation. * @cancellable: (nullable): A #GCancellable or %NULL. * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. * @user_data: User data to pass to @callback. * * Asynchronously invokes the UninstallExtension() D-Bus method on @proxy. * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()). * You can then call shell_extensions_call_uninstall_extension_finish() to get the result of the operation. * * See shell_extensions_call_uninstall_extension_sync() for the synchronous, blocking version of this method. */ void shell_extensions_call_uninstall_extension ( ShellExtensions *proxy, const gchar *arg_uuid, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { g_dbus_proxy_call (G_DBUS_PROXY (proxy), "UninstallExtension", g_variant_new ("(s)", arg_uuid), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, callback, user_data); } /** * shell_extensions_call_uninstall_extension_finish: * @proxy: A #ShellExtensionsProxy. * @out_success: (out) (optional): Return location for return parameter or %NULL to ignore. * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to shell_extensions_call_uninstall_extension(). * @error: Return location for error or %NULL. * * Finishes an operation started with shell_extensions_call_uninstall_extension(). * * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set. */ gboolean shell_extensions_call_uninstall_extension_finish ( ShellExtensions *proxy, gboolean *out_success, GAsyncResult *res, GError **error) { GVariant *_ret; _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error); if (_ret == NULL) goto _out; g_variant_get (_ret, "(b)", out_success); g_variant_unref (_ret); _out: return _ret != NULL; } /** * shell_extensions_call_uninstall_extension_sync: * @proxy: A #ShellExtensionsProxy. * @arg_uuid: Argument to pass with the method invocation. * @out_success: (out) (optional): Return location for return parameter or %NULL to ignore. * @cancellable: (nullable): A #GCancellable or %NULL. * @error: Return location for error or %NULL. * * Synchronously invokes the UninstallExtension() D-Bus method on @proxy. The calling thread is blocked until a reply is received. * * See shell_extensions_call_uninstall_extension() for the asynchronous version of this method. * * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set. */ gboolean shell_extensions_call_uninstall_extension_sync ( ShellExtensions *proxy, const gchar *arg_uuid, gboolean *out_success, GCancellable *cancellable, GError **error) { GVariant *_ret; _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), "UninstallExtension", g_variant_new ("(s)", arg_uuid), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, error); if (_ret == NULL) goto _out; g_variant_get (_ret, "(b)", out_success); g_variant_unref (_ret); _out: return _ret != NULL; } /** * shell_extensions_call_reload_extension: * @proxy: A #ShellExtensionsProxy. * @arg_uuid: Argument to pass with the method invocation. * @cancellable: (nullable): A #GCancellable or %NULL. * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. * @user_data: User data to pass to @callback. * * Asynchronously invokes the ReloadExtension() D-Bus method on @proxy. * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()). * You can then call shell_extensions_call_reload_extension_finish() to get the result of the operation. * * See shell_extensions_call_reload_extension_sync() for the synchronous, blocking version of this method. */ void shell_extensions_call_reload_extension ( ShellExtensions *proxy, const gchar *arg_uuid, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { g_dbus_proxy_call (G_DBUS_PROXY (proxy), "ReloadExtension", g_variant_new ("(s)", arg_uuid), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, callback, user_data); } /** * shell_extensions_call_reload_extension_finish: * @proxy: A #ShellExtensionsProxy. * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to shell_extensions_call_reload_extension(). * @error: Return location for error or %NULL. * * Finishes an operation started with shell_extensions_call_reload_extension(). * * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set. */ gboolean shell_extensions_call_reload_extension_finish ( ShellExtensions *proxy, GAsyncResult *res, GError **error) { GVariant *_ret; _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error); if (_ret == NULL) goto _out; g_variant_get (_ret, "()"); g_variant_unref (_ret); _out: return _ret != NULL; } /** * shell_extensions_call_reload_extension_sync: * @proxy: A #ShellExtensionsProxy. * @arg_uuid: Argument to pass with the method invocation. * @cancellable: (nullable): A #GCancellable or %NULL. * @error: Return location for error or %NULL. * * Synchronously invokes the ReloadExtension() D-Bus method on @proxy. The calling thread is blocked until a reply is received. * * See shell_extensions_call_reload_extension() for the asynchronous version of this method. * * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set. */ gboolean shell_extensions_call_reload_extension_sync ( ShellExtensions *proxy, const gchar *arg_uuid, GCancellable *cancellable, GError **error) { GVariant *_ret; _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), "ReloadExtension", g_variant_new ("(s)", arg_uuid), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, error); if (_ret == NULL) goto _out; g_variant_get (_ret, "()"); g_variant_unref (_ret); _out: return _ret != NULL; } /** * shell_extensions_call_enable_extension: * @proxy: A #ShellExtensionsProxy. * @arg_uuid: Argument to pass with the method invocation. * @cancellable: (nullable): A #GCancellable or %NULL. * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. * @user_data: User data to pass to @callback. * * Asynchronously invokes the EnableExtension() D-Bus method on @proxy. * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()). * You can then call shell_extensions_call_enable_extension_finish() to get the result of the operation. * * See shell_extensions_call_enable_extension_sync() for the synchronous, blocking version of this method. */ void shell_extensions_call_enable_extension ( ShellExtensions *proxy, const gchar *arg_uuid, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { g_dbus_proxy_call (G_DBUS_PROXY (proxy), "EnableExtension", g_variant_new ("(s)", arg_uuid), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, callback, user_data); } /** * shell_extensions_call_enable_extension_finish: * @proxy: A #ShellExtensionsProxy. * @out_success: (out) (optional): Return location for return parameter or %NULL to ignore. * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to shell_extensions_call_enable_extension(). * @error: Return location for error or %NULL. * * Finishes an operation started with shell_extensions_call_enable_extension(). * * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set. */ gboolean shell_extensions_call_enable_extension_finish ( ShellExtensions *proxy, gboolean *out_success, GAsyncResult *res, GError **error) { GVariant *_ret; _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error); if (_ret == NULL) goto _out; g_variant_get (_ret, "(b)", out_success); g_variant_unref (_ret); _out: return _ret != NULL; } /** * shell_extensions_call_enable_extension_sync: * @proxy: A #ShellExtensionsProxy. * @arg_uuid: Argument to pass with the method invocation. * @out_success: (out) (optional): Return location for return parameter or %NULL to ignore. * @cancellable: (nullable): A #GCancellable or %NULL. * @error: Return location for error or %NULL. * * Synchronously invokes the EnableExtension() D-Bus method on @proxy. The calling thread is blocked until a reply is received. * * See shell_extensions_call_enable_extension() for the asynchronous version of this method. * * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set. */ gboolean shell_extensions_call_enable_extension_sync ( ShellExtensions *proxy, const gchar *arg_uuid, gboolean *out_success, GCancellable *cancellable, GError **error) { GVariant *_ret; _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), "EnableExtension", g_variant_new ("(s)", arg_uuid), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, error); if (_ret == NULL) goto _out; g_variant_get (_ret, "(b)", out_success); g_variant_unref (_ret); _out: return _ret != NULL; } /** * shell_extensions_call_disable_extension: * @proxy: A #ShellExtensionsProxy. * @arg_uuid: Argument to pass with the method invocation. * @cancellable: (nullable): A #GCancellable or %NULL. * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. * @user_data: User data to pass to @callback. * * Asynchronously invokes the DisableExtension() D-Bus method on @proxy. * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()). * You can then call shell_extensions_call_disable_extension_finish() to get the result of the operation. * * See shell_extensions_call_disable_extension_sync() for the synchronous, blocking version of this method. */ void shell_extensions_call_disable_extension ( ShellExtensions *proxy, const gchar *arg_uuid, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { g_dbus_proxy_call (G_DBUS_PROXY (proxy), "DisableExtension", g_variant_new ("(s)", arg_uuid), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, callback, user_data); } /** * shell_extensions_call_disable_extension_finish: * @proxy: A #ShellExtensionsProxy. * @out_success: (out) (optional): Return location for return parameter or %NULL to ignore. * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to shell_extensions_call_disable_extension(). * @error: Return location for error or %NULL. * * Finishes an operation started with shell_extensions_call_disable_extension(). * * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set. */ gboolean shell_extensions_call_disable_extension_finish ( ShellExtensions *proxy, gboolean *out_success, GAsyncResult *res, GError **error) { GVariant *_ret; _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error); if (_ret == NULL) goto _out; g_variant_get (_ret, "(b)", out_success); g_variant_unref (_ret); _out: return _ret != NULL; } /** * shell_extensions_call_disable_extension_sync: * @proxy: A #ShellExtensionsProxy. * @arg_uuid: Argument to pass with the method invocation. * @out_success: (out) (optional): Return location for return parameter or %NULL to ignore. * @cancellable: (nullable): A #GCancellable or %NULL. * @error: Return location for error or %NULL. * * Synchronously invokes the DisableExtension() D-Bus method on @proxy. The calling thread is blocked until a reply is received. * * See shell_extensions_call_disable_extension() for the asynchronous version of this method. * * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set. */ gboolean shell_extensions_call_disable_extension_sync ( ShellExtensions *proxy, const gchar *arg_uuid, gboolean *out_success, GCancellable *cancellable, GError **error) { GVariant *_ret; _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), "DisableExtension", g_variant_new ("(s)", arg_uuid), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, error); if (_ret == NULL) goto _out; g_variant_get (_ret, "(b)", out_success); g_variant_unref (_ret); _out: return _ret != NULL; } /** * shell_extensions_call_launch_extension_prefs: * @proxy: A #ShellExtensionsProxy. * @arg_uuid: Argument to pass with the method invocation. * @cancellable: (nullable): A #GCancellable or %NULL. * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. * @user_data: User data to pass to @callback. * * Asynchronously invokes the LaunchExtensionPrefs() D-Bus method on @proxy. * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()). * You can then call shell_extensions_call_launch_extension_prefs_finish() to get the result of the operation. * * See shell_extensions_call_launch_extension_prefs_sync() for the synchronous, blocking version of this method. */ void shell_extensions_call_launch_extension_prefs ( ShellExtensions *proxy, const gchar *arg_uuid, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { g_dbus_proxy_call (G_DBUS_PROXY (proxy), "LaunchExtensionPrefs", g_variant_new ("(s)", arg_uuid), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, callback, user_data); } /** * shell_extensions_call_launch_extension_prefs_finish: * @proxy: A #ShellExtensionsProxy. * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to shell_extensions_call_launch_extension_prefs(). * @error: Return location for error or %NULL. * * Finishes an operation started with shell_extensions_call_launch_extension_prefs(). * * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set. */ gboolean shell_extensions_call_launch_extension_prefs_finish ( ShellExtensions *proxy, GAsyncResult *res, GError **error) { GVariant *_ret; _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error); if (_ret == NULL) goto _out; g_variant_get (_ret, "()"); g_variant_unref (_ret); _out: return _ret != NULL; } /** * shell_extensions_call_launch_extension_prefs_sync: * @proxy: A #ShellExtensionsProxy. * @arg_uuid: Argument to pass with the method invocation. * @cancellable: (nullable): A #GCancellable or %NULL. * @error: Return location for error or %NULL. * * Synchronously invokes the LaunchExtensionPrefs() D-Bus method on @proxy. The calling thread is blocked until a reply is received. * * See shell_extensions_call_launch_extension_prefs() for the asynchronous version of this method. * * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set. */ gboolean shell_extensions_call_launch_extension_prefs_sync ( ShellExtensions *proxy, const gchar *arg_uuid, GCancellable *cancellable, GError **error) { GVariant *_ret; _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), "LaunchExtensionPrefs", g_variant_new ("(s)", arg_uuid), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, error); if (_ret == NULL) goto _out; g_variant_get (_ret, "()"); g_variant_unref (_ret); _out: return _ret != NULL; } /** * shell_extensions_call_open_extension_prefs: * @proxy: A #ShellExtensionsProxy. * @arg_uuid: Argument to pass with the method invocation. * @arg_parent_window: Argument to pass with the method invocation. * @arg_options: Argument to pass with the method invocation. * @cancellable: (nullable): A #GCancellable or %NULL. * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. * @user_data: User data to pass to @callback. * * Asynchronously invokes the OpenExtensionPrefs() D-Bus method on @proxy. * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()). * You can then call shell_extensions_call_open_extension_prefs_finish() to get the result of the operation. * * See shell_extensions_call_open_extension_prefs_sync() for the synchronous, blocking version of this method. */ void shell_extensions_call_open_extension_prefs ( ShellExtensions *proxy, const gchar *arg_uuid, const gchar *arg_parent_window, GVariant *arg_options, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { g_dbus_proxy_call (G_DBUS_PROXY (proxy), "OpenExtensionPrefs", g_variant_new ("(ss@a{sv})", arg_uuid, arg_parent_window, arg_options), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, callback, user_data); } /** * shell_extensions_call_open_extension_prefs_finish: * @proxy: A #ShellExtensionsProxy. * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to shell_extensions_call_open_extension_prefs(). * @error: Return location for error or %NULL. * * Finishes an operation started with shell_extensions_call_open_extension_prefs(). * * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set. */ gboolean shell_extensions_call_open_extension_prefs_finish ( ShellExtensions *proxy, GAsyncResult *res, GError **error) { GVariant *_ret; _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error); if (_ret == NULL) goto _out; g_variant_get (_ret, "()"); g_variant_unref (_ret); _out: return _ret != NULL; } /** * shell_extensions_call_open_extension_prefs_sync: * @proxy: A #ShellExtensionsProxy. * @arg_uuid: Argument to pass with the method invocation. * @arg_parent_window: Argument to pass with the method invocation. * @arg_options: Argument to pass with the method invocation. * @cancellable: (nullable): A #GCancellable or %NULL. * @error: Return location for error or %NULL. * * Synchronously invokes the OpenExtensionPrefs() D-Bus method on @proxy. The calling thread is blocked until a reply is received. * * See shell_extensions_call_open_extension_prefs() for the asynchronous version of this method. * * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set. */ gboolean shell_extensions_call_open_extension_prefs_sync ( ShellExtensions *proxy, const gchar *arg_uuid, const gchar *arg_parent_window, GVariant *arg_options, GCancellable *cancellable, GError **error) { GVariant *_ret; _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), "OpenExtensionPrefs", g_variant_new ("(ss@a{sv})", arg_uuid, arg_parent_window, arg_options), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, error); if (_ret == NULL) goto _out; g_variant_get (_ret, "()"); g_variant_unref (_ret); _out: return _ret != NULL; } /** * shell_extensions_call_check_for_updates: * @proxy: A #ShellExtensionsProxy. * @cancellable: (nullable): A #GCancellable or %NULL. * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. * @user_data: User data to pass to @callback. * * Asynchronously invokes the CheckForUpdates() D-Bus method on @proxy. * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()). * You can then call shell_extensions_call_check_for_updates_finish() to get the result of the operation. * * See shell_extensions_call_check_for_updates_sync() for the synchronous, blocking version of this method. */ void shell_extensions_call_check_for_updates ( ShellExtensions *proxy, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { g_dbus_proxy_call (G_DBUS_PROXY (proxy), "CheckForUpdates", g_variant_new ("()"), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, callback, user_data); } /** * shell_extensions_call_check_for_updates_finish: * @proxy: A #ShellExtensionsProxy. * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to shell_extensions_call_check_for_updates(). * @error: Return location for error or %NULL. * * Finishes an operation started with shell_extensions_call_check_for_updates(). * * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set. */ gboolean shell_extensions_call_check_for_updates_finish ( ShellExtensions *proxy, GAsyncResult *res, GError **error) { GVariant *_ret; _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error); if (_ret == NULL) goto _out; g_variant_get (_ret, "()"); g_variant_unref (_ret); _out: return _ret != NULL; } /** * shell_extensions_call_check_for_updates_sync: * @proxy: A #ShellExtensionsProxy. * @cancellable: (nullable): A #GCancellable or %NULL. * @error: Return location for error or %NULL. * * Synchronously invokes the CheckForUpdates() D-Bus method on @proxy. The calling thread is blocked until a reply is received. * * See shell_extensions_call_check_for_updates() for the asynchronous version of this method. * * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set. */ gboolean shell_extensions_call_check_for_updates_sync ( ShellExtensions *proxy, GCancellable *cancellable, GError **error) { GVariant *_ret; _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), "CheckForUpdates", g_variant_new ("()"), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, error); if (_ret == NULL) goto _out; g_variant_get (_ret, "()"); g_variant_unref (_ret); _out: return _ret != NULL; } /** * shell_extensions_complete_list_extensions: * @object: A #ShellExtensions. * @invocation: (transfer full): A #GDBusMethodInvocation. * @extensions: Parameter to return. * * Helper function used in service implementations to finish handling invocations of the ListExtensions() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. * * This method will free @invocation, you cannot use it afterwards. */ void shell_extensions_complete_list_extensions ( ShellExtensions *object G_GNUC_UNUSED, GDBusMethodInvocation *invocation, GVariant *extensions) { g_dbus_method_invocation_return_value (invocation, g_variant_new ("(@a{sa{sv}})", extensions)); } /** * shell_extensions_complete_get_extension_info: * @object: A #ShellExtensions. * @invocation: (transfer full): A #GDBusMethodInvocation. * @info: Parameter to return. * * Helper function used in service implementations to finish handling invocations of the GetExtensionInfo() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. * * This method will free @invocation, you cannot use it afterwards. */ void shell_extensions_complete_get_extension_info ( ShellExtensions *object G_GNUC_UNUSED, GDBusMethodInvocation *invocation, GVariant *info) { g_dbus_method_invocation_return_value (invocation, g_variant_new ("(@a{sv})", info)); } /** * shell_extensions_complete_get_extension_errors: * @object: A #ShellExtensions. * @invocation: (transfer full): A #GDBusMethodInvocation. * @errors: Parameter to return. * * Helper function used in service implementations to finish handling invocations of the GetExtensionErrors() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. * * This method will free @invocation, you cannot use it afterwards. */ void shell_extensions_complete_get_extension_errors ( ShellExtensions *object G_GNUC_UNUSED, GDBusMethodInvocation *invocation, const gchar *const *errors) { g_dbus_method_invocation_return_value (invocation, g_variant_new ("(^as)", errors)); } /** * shell_extensions_complete_install_remote_extension: * @object: A #ShellExtensions. * @invocation: (transfer full): A #GDBusMethodInvocation. * @result: Parameter to return. * * Helper function used in service implementations to finish handling invocations of the InstallRemoteExtension() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. * * This method will free @invocation, you cannot use it afterwards. */ void shell_extensions_complete_install_remote_extension ( ShellExtensions *object G_GNUC_UNUSED, GDBusMethodInvocation *invocation, const gchar *result) { g_dbus_method_invocation_return_value (invocation, g_variant_new ("(s)", result)); } /** * shell_extensions_complete_uninstall_extension: * @object: A #ShellExtensions. * @invocation: (transfer full): A #GDBusMethodInvocation. * @success: Parameter to return. * * Helper function used in service implementations to finish handling invocations of the UninstallExtension() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. * * This method will free @invocation, you cannot use it afterwards. */ void shell_extensions_complete_uninstall_extension ( ShellExtensions *object G_GNUC_UNUSED, GDBusMethodInvocation *invocation, gboolean success) { g_dbus_method_invocation_return_value (invocation, g_variant_new ("(b)", success)); } /** * shell_extensions_complete_reload_extension: * @object: A #ShellExtensions. * @invocation: (transfer full): A #GDBusMethodInvocation. * * Helper function used in service implementations to finish handling invocations of the ReloadExtension() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. * * This method will free @invocation, you cannot use it afterwards. */ void shell_extensions_complete_reload_extension ( ShellExtensions *object G_GNUC_UNUSED, GDBusMethodInvocation *invocation) { g_dbus_method_invocation_return_value (invocation, g_variant_new ("()")); } /** * shell_extensions_complete_enable_extension: * @object: A #ShellExtensions. * @invocation: (transfer full): A #GDBusMethodInvocation. * @success: Parameter to return. * * Helper function used in service implementations to finish handling invocations of the EnableExtension() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. * * This method will free @invocation, you cannot use it afterwards. */ void shell_extensions_complete_enable_extension ( ShellExtensions *object G_GNUC_UNUSED, GDBusMethodInvocation *invocation, gboolean success) { g_dbus_method_invocation_return_value (invocation, g_variant_new ("(b)", success)); } /** * shell_extensions_complete_disable_extension: * @object: A #ShellExtensions. * @invocation: (transfer full): A #GDBusMethodInvocation. * @success: Parameter to return. * * Helper function used in service implementations to finish handling invocations of the DisableExtension() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. * * This method will free @invocation, you cannot use it afterwards. */ void shell_extensions_complete_disable_extension ( ShellExtensions *object G_GNUC_UNUSED, GDBusMethodInvocation *invocation, gboolean success) { g_dbus_method_invocation_return_value (invocation, g_variant_new ("(b)", success)); } /** * shell_extensions_complete_launch_extension_prefs: * @object: A #ShellExtensions. * @invocation: (transfer full): A #GDBusMethodInvocation. * * Helper function used in service implementations to finish handling invocations of the LaunchExtensionPrefs() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. * * This method will free @invocation, you cannot use it afterwards. */ void shell_extensions_complete_launch_extension_prefs ( ShellExtensions *object G_GNUC_UNUSED, GDBusMethodInvocation *invocation) { g_dbus_method_invocation_return_value (invocation, g_variant_new ("()")); } /** * shell_extensions_complete_open_extension_prefs: * @object: A #ShellExtensions. * @invocation: (transfer full): A #GDBusMethodInvocation. * * Helper function used in service implementations to finish handling invocations of the OpenExtensionPrefs() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. * * This method will free @invocation, you cannot use it afterwards. */ void shell_extensions_complete_open_extension_prefs ( ShellExtensions *object G_GNUC_UNUSED, GDBusMethodInvocation *invocation) { g_dbus_method_invocation_return_value (invocation, g_variant_new ("()")); } /** * shell_extensions_complete_check_for_updates: * @object: A #ShellExtensions. * @invocation: (transfer full): A #GDBusMethodInvocation. * * Helper function used in service implementations to finish handling invocations of the CheckForUpdates() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. * * This method will free @invocation, you cannot use it afterwards. */ void shell_extensions_complete_check_for_updates ( ShellExtensions *object G_GNUC_UNUSED, GDBusMethodInvocation *invocation) { g_dbus_method_invocation_return_value (invocation, g_variant_new ("()")); } /* ------------------------------------------------------------------------ */ /** * ShellExtensionsProxy: * * The #ShellExtensionsProxy structure contains only private data and should only be accessed using the provided API. */ /** * ShellExtensionsProxyClass: * @parent_class: The parent class. * * Class structure for #ShellExtensionsProxy. */ struct _ShellExtensionsProxyPrivate { GData *qdata; }; static void shell_extensions_proxy_iface_init (ShellExtensionsIface *iface); #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 G_DEFINE_TYPE_WITH_CODE (ShellExtensionsProxy, shell_extensions_proxy, G_TYPE_DBUS_PROXY, G_ADD_PRIVATE (ShellExtensionsProxy) G_IMPLEMENT_INTERFACE (SHELL_TYPE_EXTENSIONS, shell_extensions_proxy_iface_init)) #else G_DEFINE_TYPE_WITH_CODE (ShellExtensionsProxy, shell_extensions_proxy, G_TYPE_DBUS_PROXY, G_IMPLEMENT_INTERFACE (SHELL_TYPE_EXTENSIONS, shell_extensions_proxy_iface_init)) #endif static void shell_extensions_proxy_finalize (GObject *object) { ShellExtensionsProxy *proxy = SHELL_EXTENSIONS_PROXY (object); g_datalist_clear (&proxy->priv->qdata); G_OBJECT_CLASS (shell_extensions_proxy_parent_class)->finalize (object); } static void shell_extensions_proxy_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec G_GNUC_UNUSED) { const _ExtendedGDBusPropertyInfo *info; GVariant *variant; g_assert (prop_id != 0 && prop_id - 1 < 2); info = (const _ExtendedGDBusPropertyInfo *) _shell_extensions_property_info_pointers[prop_id - 1]; variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (object), info->parent_struct.name); if (info->use_gvariant) { g_value_set_variant (value, variant); } else { if (variant != NULL) g_dbus_gvariant_to_gvalue (variant, value); } if (variant != NULL) g_variant_unref (variant); } static void shell_extensions_proxy_set_property_cb (GDBusProxy *proxy, GAsyncResult *res, gpointer user_data) { const _ExtendedGDBusPropertyInfo *info = user_data; GError *error; GVariant *_ret; error = NULL; _ret = g_dbus_proxy_call_finish (proxy, res, &error); if (!_ret) { g_warning ("Error setting property '%s' on interface org.gnome.Shell.Extensions: %s (%s, %d)", info->parent_struct.name, error->message, g_quark_to_string (error->domain), error->code); g_error_free (error); } else { g_variant_unref (_ret); } } static void shell_extensions_proxy_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec G_GNUC_UNUSED) { const _ExtendedGDBusPropertyInfo *info; GVariant *variant; g_assert (prop_id != 0 && prop_id - 1 < 2); info = (const _ExtendedGDBusPropertyInfo *) _shell_extensions_property_info_pointers[prop_id - 1]; variant = g_dbus_gvalue_to_gvariant (value, G_VARIANT_TYPE (info->parent_struct.signature)); g_dbus_proxy_call (G_DBUS_PROXY (object), "org.freedesktop.DBus.Properties.Set", g_variant_new ("(ssv)", "org.gnome.Shell.Extensions", info->parent_struct.name, variant), G_DBUS_CALL_FLAGS_NONE, -1, NULL, (GAsyncReadyCallback) shell_extensions_proxy_set_property_cb, (GDBusPropertyInfo *) &info->parent_struct); g_variant_unref (variant); } static void shell_extensions_proxy_g_signal (GDBusProxy *proxy, const gchar *sender_name G_GNUC_UNUSED, const gchar *signal_name, GVariant *parameters) { _ExtendedGDBusSignalInfo *info; GVariantIter iter; GVariant *child; GValue *paramv; gsize num_params; gsize n; guint signal_id; info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_shell_extensions_interface_info.parent_struct, signal_name); if (info == NULL) return; num_params = g_variant_n_children (parameters); paramv = g_new0 (GValue, num_params + 1); g_value_init (¶mv[0], SHELL_TYPE_EXTENSIONS); g_value_set_object (¶mv[0], proxy); g_variant_iter_init (&iter, parameters); n = 1; while ((child = g_variant_iter_next_value (&iter)) != NULL) { _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1]; if (arg_info->use_gvariant) { g_value_init (¶mv[n], G_TYPE_VARIANT); g_value_set_variant (¶mv[n], child); n++; } else g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); g_variant_unref (child); } signal_id = g_signal_lookup (info->signal_name, SHELL_TYPE_EXTENSIONS); g_signal_emitv (paramv, signal_id, 0, NULL); for (n = 0; n < num_params + 1; n++) g_value_unset (¶mv[n]); g_free (paramv); } static void shell_extensions_proxy_g_properties_changed (GDBusProxy *_proxy, GVariant *changed_properties, const gchar *const *invalidated_properties) { ShellExtensionsProxy *proxy = SHELL_EXTENSIONS_PROXY (_proxy); guint n; const gchar *key; GVariantIter *iter; _ExtendedGDBusPropertyInfo *info; g_variant_get (changed_properties, "a{sv}", &iter); while (g_variant_iter_next (iter, "{&sv}", &key, NULL)) { info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_shell_extensions_interface_info.parent_struct, key); g_datalist_remove_data (&proxy->priv->qdata, key); if (info != NULL) g_object_notify (G_OBJECT (proxy), info->hyphen_name); } g_variant_iter_free (iter); for (n = 0; invalidated_properties[n] != NULL; n++) { info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_shell_extensions_interface_info.parent_struct, invalidated_properties[n]); g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]); if (info != NULL) g_object_notify (G_OBJECT (proxy), info->hyphen_name); } } static const gchar * shell_extensions_proxy_get_shell_version (ShellExtensions *object) { ShellExtensionsProxy *proxy = SHELL_EXTENSIONS_PROXY (object); GVariant *variant; const gchar *value = NULL; variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "ShellVersion"); if (variant != NULL) { value = g_variant_get_string (variant, NULL); g_variant_unref (variant); } return value; } static gboolean shell_extensions_proxy_get_user_extensions_enabled (ShellExtensions *object) { ShellExtensionsProxy *proxy = SHELL_EXTENSIONS_PROXY (object); GVariant *variant; gboolean value = 0; variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "UserExtensionsEnabled"); if (variant != NULL) { value = g_variant_get_boolean (variant); g_variant_unref (variant); } return value; } static void shell_extensions_proxy_init (ShellExtensionsProxy *proxy) { #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 proxy->priv = shell_extensions_proxy_get_instance_private (proxy); #else proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, SHELL_TYPE_EXTENSIONS_PROXY, ShellExtensionsProxyPrivate); #endif g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), shell_extensions_interface_info ()); } static void shell_extensions_proxy_class_init (ShellExtensionsProxyClass *klass) { GObjectClass *gobject_class; GDBusProxyClass *proxy_class; gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = shell_extensions_proxy_finalize; gobject_class->get_property = shell_extensions_proxy_get_property; gobject_class->set_property = shell_extensions_proxy_set_property; proxy_class = G_DBUS_PROXY_CLASS (klass); proxy_class->g_signal = shell_extensions_proxy_g_signal; proxy_class->g_properties_changed = shell_extensions_proxy_g_properties_changed; shell_extensions_override_properties (gobject_class, 1); #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 g_type_class_add_private (klass, sizeof (ShellExtensionsProxyPrivate)); #endif } static void shell_extensions_proxy_iface_init (ShellExtensionsIface *iface) { iface->get_shell_version = shell_extensions_proxy_get_shell_version; iface->get_user_extensions_enabled = shell_extensions_proxy_get_user_extensions_enabled; } /** * shell_extensions_proxy_new: * @connection: A #GDBusConnection. * @flags: Flags from the #GDBusProxyFlags enumeration. * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. * @object_path: An object path. * @cancellable: (nullable): A #GCancellable or %NULL. * @callback: A #GAsyncReadyCallback to call when the request is satisfied. * @user_data: User data to pass to @callback. * * Asynchronously creates a proxy for the D-Bus interface org.gnome.Shell.Extensions. See g_dbus_proxy_new() for more details. * * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()). * You can then call shell_extensions_proxy_new_finish() to get the result of the operation. * * See shell_extensions_proxy_new_sync() for the synchronous, blocking version of this constructor. */ void shell_extensions_proxy_new ( GDBusConnection *connection, GDBusProxyFlags flags, const gchar *name, const gchar *object_path, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { g_async_initable_new_async (SHELL_TYPE_EXTENSIONS_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.Shell.Extensions", NULL); } /** * shell_extensions_proxy_new_finish: * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to shell_extensions_proxy_new(). * @error: Return location for error or %NULL * * Finishes an operation started with shell_extensions_proxy_new(). * * Returns: (transfer full) (type ShellExtensionsProxy): The constructed proxy object or %NULL if @error is set. */ ShellExtensions * shell_extensions_proxy_new_finish ( GAsyncResult *res, GError **error) { GObject *ret; GObject *source_object; source_object = g_async_result_get_source_object (res); ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); g_object_unref (source_object); if (ret != NULL) return SHELL_EXTENSIONS (ret); else return NULL; } /** * shell_extensions_proxy_new_sync: * @connection: A #GDBusConnection. * @flags: Flags from the #GDBusProxyFlags enumeration. * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. * @object_path: An object path. * @cancellable: (nullable): A #GCancellable or %NULL. * @error: Return location for error or %NULL * * Synchronously creates a proxy for the D-Bus interface org.gnome.Shell.Extensions. See g_dbus_proxy_new_sync() for more details. * * The calling thread is blocked until a reply is received. * * See shell_extensions_proxy_new() for the asynchronous version of this constructor. * * Returns: (transfer full) (type ShellExtensionsProxy): The constructed proxy object or %NULL if @error is set. */ ShellExtensions * shell_extensions_proxy_new_sync ( GDBusConnection *connection, GDBusProxyFlags flags, const gchar *name, const gchar *object_path, GCancellable *cancellable, GError **error) { GInitable *ret; ret = g_initable_new (SHELL_TYPE_EXTENSIONS_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.Shell.Extensions", NULL); if (ret != NULL) return SHELL_EXTENSIONS (ret); else return NULL; } /** * shell_extensions_proxy_new_for_bus: * @bus_type: A #GBusType. * @flags: Flags from the #GDBusProxyFlags enumeration. * @name: A bus name (well-known or unique). * @object_path: An object path. * @cancellable: (nullable): A #GCancellable or %NULL. * @callback: A #GAsyncReadyCallback to call when the request is satisfied. * @user_data: User data to pass to @callback. * * Like shell_extensions_proxy_new() but takes a #GBusType instead of a #GDBusConnection. * * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()). * You can then call shell_extensions_proxy_new_for_bus_finish() to get the result of the operation. * * See shell_extensions_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. */ void shell_extensions_proxy_new_for_bus ( GBusType bus_type, GDBusProxyFlags flags, const gchar *name, const gchar *object_path, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { g_async_initable_new_async (SHELL_TYPE_EXTENSIONS_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.Shell.Extensions", NULL); } /** * shell_extensions_proxy_new_for_bus_finish: * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to shell_extensions_proxy_new_for_bus(). * @error: Return location for error or %NULL * * Finishes an operation started with shell_extensions_proxy_new_for_bus(). * * Returns: (transfer full) (type ShellExtensionsProxy): The constructed proxy object or %NULL if @error is set. */ ShellExtensions * shell_extensions_proxy_new_for_bus_finish ( GAsyncResult *res, GError **error) { GObject *ret; GObject *source_object; source_object = g_async_result_get_source_object (res); ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); g_object_unref (source_object); if (ret != NULL) return SHELL_EXTENSIONS (ret); else return NULL; } /** * shell_extensions_proxy_new_for_bus_sync: * @bus_type: A #GBusType. * @flags: Flags from the #GDBusProxyFlags enumeration. * @name: A bus name (well-known or unique). * @object_path: An object path. * @cancellable: (nullable): A #GCancellable or %NULL. * @error: Return location for error or %NULL * * Like shell_extensions_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. * * The calling thread is blocked until a reply is received. * * See shell_extensions_proxy_new_for_bus() for the asynchronous version of this constructor. * * Returns: (transfer full) (type ShellExtensionsProxy): The constructed proxy object or %NULL if @error is set. */ ShellExtensions * shell_extensions_proxy_new_for_bus_sync ( GBusType bus_type, GDBusProxyFlags flags, const gchar *name, const gchar *object_path, GCancellable *cancellable, GError **error) { GInitable *ret; ret = g_initable_new (SHELL_TYPE_EXTENSIONS_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.Shell.Extensions", NULL); if (ret != NULL) return SHELL_EXTENSIONS (ret); else return NULL; } /* ------------------------------------------------------------------------ */ /** * ShellExtensionsSkeleton: * * The #ShellExtensionsSkeleton structure contains only private data and should only be accessed using the provided API. */ /** * ShellExtensionsSkeletonClass: * @parent_class: The parent class. * * Class structure for #ShellExtensionsSkeleton. */ struct _ShellExtensionsSkeletonPrivate { GValue *properties; GList *changed_properties; GSource *changed_properties_idle_source; GMainContext *context; GMutex lock; }; static void _shell_extensions_skeleton_handle_method_call ( GDBusConnection *connection G_GNUC_UNUSED, const gchar *sender G_GNUC_UNUSED, const gchar *object_path G_GNUC_UNUSED, const gchar *interface_name, const gchar *method_name, GVariant *parameters, GDBusMethodInvocation *invocation, gpointer user_data) { ShellExtensionsSkeleton *skeleton = SHELL_EXTENSIONS_SKELETON (user_data); _ExtendedGDBusMethodInfo *info; GVariantIter iter; GVariant *child; GValue *paramv; gsize num_params; guint num_extra; gsize n; guint signal_id; GValue return_value = G_VALUE_INIT; info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation); g_assert (info != NULL); num_params = g_variant_n_children (parameters); num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra); n = 0; g_value_init (¶mv[n], SHELL_TYPE_EXTENSIONS); g_value_set_object (¶mv[n++], skeleton); g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); g_value_set_object (¶mv[n++], invocation); if (info->pass_fdlist) { #ifdef G_OS_UNIX g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); g_value_set_object (¶mv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation))); #else g_assert_not_reached (); #endif } g_variant_iter_init (&iter, parameters); while ((child = g_variant_iter_next_value (&iter)) != NULL) { _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra]; if (arg_info->use_gvariant) { g_value_init (¶mv[n], G_TYPE_VARIANT); g_value_set_variant (¶mv[n], child); n++; } else g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); g_variant_unref (child); } signal_id = g_signal_lookup (info->signal_name, SHELL_TYPE_EXTENSIONS); g_value_init (&return_value, G_TYPE_BOOLEAN); g_signal_emitv (paramv, signal_id, 0, &return_value); if (!g_value_get_boolean (&return_value)) g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name); g_value_unset (&return_value); for (n = 0; n < num_params + num_extra; n++) g_value_unset (¶mv[n]); g_free (paramv); } static GVariant * _shell_extensions_skeleton_handle_get_property ( GDBusConnection *connection G_GNUC_UNUSED, const gchar *sender G_GNUC_UNUSED, const gchar *object_path G_GNUC_UNUSED, const gchar *interface_name G_GNUC_UNUSED, const gchar *property_name, GError **error, gpointer user_data) { ShellExtensionsSkeleton *skeleton = SHELL_EXTENSIONS_SKELETON (user_data); GValue value = G_VALUE_INIT; GParamSpec *pspec; _ExtendedGDBusPropertyInfo *info; GVariant *ret; ret = NULL; info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_shell_extensions_interface_info.parent_struct, property_name); g_assert (info != NULL); pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); if (pspec == NULL) { g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); } else { g_value_init (&value, pspec->value_type); g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value); ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature)); g_value_unset (&value); } return ret; } static gboolean _shell_extensions_skeleton_handle_set_property ( GDBusConnection *connection G_GNUC_UNUSED, const gchar *sender G_GNUC_UNUSED, const gchar *object_path G_GNUC_UNUSED, const gchar *interface_name G_GNUC_UNUSED, const gchar *property_name, GVariant *variant, GError **error, gpointer user_data) { ShellExtensionsSkeleton *skeleton = SHELL_EXTENSIONS_SKELETON (user_data); GValue value = G_VALUE_INIT; GParamSpec *pspec; _ExtendedGDBusPropertyInfo *info; gboolean ret; ret = FALSE; info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_shell_extensions_interface_info.parent_struct, property_name); g_assert (info != NULL); pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); if (pspec == NULL) { g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); } else { if (info->use_gvariant) g_value_set_variant (&value, variant); else g_dbus_gvariant_to_gvalue (variant, &value); g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value); g_value_unset (&value); ret = TRUE; } return ret; } static const GDBusInterfaceVTable _shell_extensions_skeleton_vtable = { _shell_extensions_skeleton_handle_method_call, _shell_extensions_skeleton_handle_get_property, _shell_extensions_skeleton_handle_set_property, {NULL} }; static GDBusInterfaceInfo * shell_extensions_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) { return shell_extensions_interface_info (); } static GDBusInterfaceVTable * shell_extensions_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) { return (GDBusInterfaceVTable *) &_shell_extensions_skeleton_vtable; } static GVariant * shell_extensions_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) { ShellExtensionsSkeleton *skeleton = SHELL_EXTENSIONS_SKELETON (_skeleton); GVariantBuilder builder; guint n; g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); if (_shell_extensions_interface_info.parent_struct.properties == NULL) goto out; for (n = 0; _shell_extensions_interface_info.parent_struct.properties[n] != NULL; n++) { GDBusPropertyInfo *info = _shell_extensions_interface_info.parent_struct.properties[n]; if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) { GVariant *value; value = _shell_extensions_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.gnome.Shell.Extensions", info->name, NULL, skeleton); if (value != NULL) { g_variant_take_ref (value); g_variant_builder_add (&builder, "{sv}", info->name, value); g_variant_unref (value); } } } out: return g_variant_builder_end (&builder); } static gboolean _shell_extensions_emit_changed (gpointer user_data); static void shell_extensions_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) { ShellExtensionsSkeleton *skeleton = SHELL_EXTENSIONS_SKELETON (_skeleton); gboolean emit_changed = FALSE; g_mutex_lock (&skeleton->priv->lock); if (skeleton->priv->changed_properties_idle_source != NULL) { g_source_destroy (skeleton->priv->changed_properties_idle_source); skeleton->priv->changed_properties_idle_source = NULL; emit_changed = TRUE; } g_mutex_unlock (&skeleton->priv->lock); if (emit_changed) _shell_extensions_emit_changed (skeleton); } static void _shell_extensions_on_signal_extension_state_changed ( ShellExtensions *object, const gchar *arg_uuid, GVariant *arg_state) { ShellExtensionsSkeleton *skeleton = SHELL_EXTENSIONS_SKELETON (object); GList *connections, *l; GVariant *signal_variant; connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton)); signal_variant = g_variant_ref_sink (g_variant_new ("(s@a{sv})", arg_uuid, arg_state)); for (l = connections; l != NULL; l = l->next) { GDBusConnection *connection = l->data; g_dbus_connection_emit_signal (connection, NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.gnome.Shell.Extensions", "ExtensionStateChanged", signal_variant, NULL); } g_variant_unref (signal_variant); g_list_free_full (connections, g_object_unref); } static void _shell_extensions_on_signal_extension_status_changed ( ShellExtensions *object, const gchar *arg_uuid, gint arg_state, const gchar *arg_error) { ShellExtensionsSkeleton *skeleton = SHELL_EXTENSIONS_SKELETON (object); GList *connections, *l; GVariant *signal_variant; connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton)); signal_variant = g_variant_ref_sink (g_variant_new ("(sis)", arg_uuid, arg_state, arg_error)); for (l = connections; l != NULL; l = l->next) { GDBusConnection *connection = l->data; g_dbus_connection_emit_signal (connection, NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.gnome.Shell.Extensions", "ExtensionStatusChanged", signal_variant, NULL); } g_variant_unref (signal_variant); g_list_free_full (connections, g_object_unref); } static void shell_extensions_skeleton_iface_init (ShellExtensionsIface *iface); #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 G_DEFINE_TYPE_WITH_CODE (ShellExtensionsSkeleton, shell_extensions_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, G_ADD_PRIVATE (ShellExtensionsSkeleton) G_IMPLEMENT_INTERFACE (SHELL_TYPE_EXTENSIONS, shell_extensions_skeleton_iface_init)) #else G_DEFINE_TYPE_WITH_CODE (ShellExtensionsSkeleton, shell_extensions_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, G_IMPLEMENT_INTERFACE (SHELL_TYPE_EXTENSIONS, shell_extensions_skeleton_iface_init)) #endif static void shell_extensions_skeleton_finalize (GObject *object) { ShellExtensionsSkeleton *skeleton = SHELL_EXTENSIONS_SKELETON (object); guint n; for (n = 0; n < 2; n++) g_value_unset (&skeleton->priv->properties[n]); g_free (skeleton->priv->properties); g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); if (skeleton->priv->changed_properties_idle_source != NULL) g_source_destroy (skeleton->priv->changed_properties_idle_source); g_main_context_unref (skeleton->priv->context); g_mutex_clear (&skeleton->priv->lock); G_OBJECT_CLASS (shell_extensions_skeleton_parent_class)->finalize (object); } static void shell_extensions_skeleton_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec G_GNUC_UNUSED) { ShellExtensionsSkeleton *skeleton = SHELL_EXTENSIONS_SKELETON (object); g_assert (prop_id != 0 && prop_id - 1 < 2); g_mutex_lock (&skeleton->priv->lock); g_value_copy (&skeleton->priv->properties[prop_id - 1], value); g_mutex_unlock (&skeleton->priv->lock); } static gboolean _shell_extensions_emit_changed (gpointer user_data) { ShellExtensionsSkeleton *skeleton = SHELL_EXTENSIONS_SKELETON (user_data); GList *l; GVariantBuilder builder; GVariantBuilder invalidated_builder; guint num_changes; g_mutex_lock (&skeleton->priv->lock); g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as")); for (l = skeleton->priv->changed_properties, num_changes = 0; l != NULL; l = l->next) { ChangedProperty *cp = l->data; GVariant *variant; const GValue *cur_value; cur_value = &skeleton->priv->properties[cp->prop_id - 1]; if (!_g_value_equal (cur_value, &cp->orig_value)) { variant = g_dbus_gvalue_to_gvariant (cur_value, G_VARIANT_TYPE (cp->info->parent_struct.signature)); g_variant_builder_add (&builder, "{sv}", cp->info->parent_struct.name, variant); g_variant_unref (variant); num_changes++; } } if (num_changes > 0) { GList *connections, *ll; GVariant *signal_variant; signal_variant = g_variant_ref_sink (g_variant_new ("(sa{sv}as)", "org.gnome.Shell.Extensions", &builder, &invalidated_builder)); connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton)); for (ll = connections; ll != NULL; ll = ll->next) { GDBusConnection *connection = ll->data; g_dbus_connection_emit_signal (connection, NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.freedesktop.DBus.Properties", "PropertiesChanged", signal_variant, NULL); } g_variant_unref (signal_variant); g_list_free_full (connections, g_object_unref); } else { g_variant_builder_clear (&builder); g_variant_builder_clear (&invalidated_builder); } g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); skeleton->priv->changed_properties = NULL; skeleton->priv->changed_properties_idle_source = NULL; g_mutex_unlock (&skeleton->priv->lock); return FALSE; } static void _shell_extensions_schedule_emit_changed (ShellExtensionsSkeleton *skeleton, const _ExtendedGDBusPropertyInfo *info, guint prop_id, const GValue *orig_value) { ChangedProperty *cp; GList *l; cp = NULL; for (l = skeleton->priv->changed_properties; l != NULL; l = l->next) { ChangedProperty *i_cp = l->data; if (i_cp->info == info) { cp = i_cp; break; } } if (cp == NULL) { cp = g_new0 (ChangedProperty, 1); cp->prop_id = prop_id; cp->info = info; skeleton->priv->changed_properties = g_list_prepend (skeleton->priv->changed_properties, cp); g_value_init (&cp->orig_value, G_VALUE_TYPE (orig_value)); g_value_copy (orig_value, &cp->orig_value); } } static void shell_extensions_skeleton_notify (GObject *object, GParamSpec *pspec G_GNUC_UNUSED) { ShellExtensionsSkeleton *skeleton = SHELL_EXTENSIONS_SKELETON (object); g_mutex_lock (&skeleton->priv->lock); if (skeleton->priv->changed_properties != NULL && skeleton->priv->changed_properties_idle_source == NULL) { skeleton->priv->changed_properties_idle_source = g_idle_source_new (); g_source_set_priority (skeleton->priv->changed_properties_idle_source, G_PRIORITY_DEFAULT); g_source_set_callback (skeleton->priv->changed_properties_idle_source, _shell_extensions_emit_changed, g_object_ref (skeleton), (GDestroyNotify) g_object_unref); g_source_set_name (skeleton->priv->changed_properties_idle_source, "[generated] _shell_extensions_emit_changed"); g_source_attach (skeleton->priv->changed_properties_idle_source, skeleton->priv->context); g_source_unref (skeleton->priv->changed_properties_idle_source); } g_mutex_unlock (&skeleton->priv->lock); } static void shell_extensions_skeleton_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { const _ExtendedGDBusPropertyInfo *info; ShellExtensionsSkeleton *skeleton = SHELL_EXTENSIONS_SKELETON (object); g_assert (prop_id != 0 && prop_id - 1 < 2); info = (const _ExtendedGDBusPropertyInfo *) _shell_extensions_property_info_pointers[prop_id - 1]; g_mutex_lock (&skeleton->priv->lock); g_object_freeze_notify (object); if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1])) { if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL && info->emits_changed_signal) _shell_extensions_schedule_emit_changed (skeleton, info, prop_id, &skeleton->priv->properties[prop_id - 1]); g_value_copy (value, &skeleton->priv->properties[prop_id - 1]); g_object_notify_by_pspec (object, pspec); } g_mutex_unlock (&skeleton->priv->lock); g_object_thaw_notify (object); } static void shell_extensions_skeleton_init (ShellExtensionsSkeleton *skeleton) { #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 skeleton->priv = shell_extensions_skeleton_get_instance_private (skeleton); #else skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, SHELL_TYPE_EXTENSIONS_SKELETON, ShellExtensionsSkeletonPrivate); #endif g_mutex_init (&skeleton->priv->lock); skeleton->priv->context = g_main_context_ref_thread_default (); skeleton->priv->properties = g_new0 (GValue, 2); g_value_init (&skeleton->priv->properties[0], G_TYPE_STRING); g_value_init (&skeleton->priv->properties[1], G_TYPE_BOOLEAN); } static const gchar * shell_extensions_skeleton_get_shell_version (ShellExtensions *object) { ShellExtensionsSkeleton *skeleton = SHELL_EXTENSIONS_SKELETON (object); const gchar *value; g_mutex_lock (&skeleton->priv->lock); value = g_value_get_string (&(skeleton->priv->properties[0])); g_mutex_unlock (&skeleton->priv->lock); return value; } static gboolean shell_extensions_skeleton_get_user_extensions_enabled (ShellExtensions *object) { ShellExtensionsSkeleton *skeleton = SHELL_EXTENSIONS_SKELETON (object); gboolean value; g_mutex_lock (&skeleton->priv->lock); value = g_value_get_boolean (&(skeleton->priv->properties[1])); g_mutex_unlock (&skeleton->priv->lock); return value; } static void shell_extensions_skeleton_class_init (ShellExtensionsSkeletonClass *klass) { GObjectClass *gobject_class; GDBusInterfaceSkeletonClass *skeleton_class; gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = shell_extensions_skeleton_finalize; gobject_class->get_property = shell_extensions_skeleton_get_property; gobject_class->set_property = shell_extensions_skeleton_set_property; gobject_class->notify = shell_extensions_skeleton_notify; shell_extensions_override_properties (gobject_class, 1); skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); skeleton_class->get_info = shell_extensions_skeleton_dbus_interface_get_info; skeleton_class->get_properties = shell_extensions_skeleton_dbus_interface_get_properties; skeleton_class->flush = shell_extensions_skeleton_dbus_interface_flush; skeleton_class->get_vtable = shell_extensions_skeleton_dbus_interface_get_vtable; #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 g_type_class_add_private (klass, sizeof (ShellExtensionsSkeletonPrivate)); #endif } static void shell_extensions_skeleton_iface_init (ShellExtensionsIface *iface) { iface->extension_state_changed = _shell_extensions_on_signal_extension_state_changed; iface->extension_status_changed = _shell_extensions_on_signal_extension_status_changed; iface->get_shell_version = shell_extensions_skeleton_get_shell_version; iface->get_user_extensions_enabled = shell_extensions_skeleton_get_user_extensions_enabled; } /** * shell_extensions_skeleton_new: * * Creates a skeleton object for the D-Bus interface org.gnome.Shell.Extensions. * * Returns: (transfer full) (type ShellExtensionsSkeleton): The skeleton object. */ ShellExtensions * shell_extensions_skeleton_new (void) { return SHELL_EXTENSIONS (g_object_new (SHELL_TYPE_EXTENSIONS_SKELETON, NULL)); } /* ------------------------------------------------------------------------ * Code for Object, ObjectProxy and ObjectSkeleton * ------------------------------------------------------------------------ */ /** * SECTION:ShellObject * @title: ShellObject * @short_description: Specialized GDBusObject types * * This section contains the #ShellObject, #ShellObjectProxy, and #ShellObjectSkeleton types which make it easier to work with objects implementing generated types for D-Bus interfaces. */ /** * ShellObject: * * The #ShellObject type is a specialized container of interfaces. */ /** * ShellObjectIface: * @parent_iface: The parent interface. * * Virtual table for the #ShellObject interface. */ typedef ShellObjectIface ShellObjectInterface; G_DEFINE_INTERFACE_WITH_CODE (ShellObject, shell_object, G_TYPE_OBJECT, g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_DBUS_OBJECT);) static void shell_object_default_init (ShellObjectIface *iface) { /** * ShellObject:extensions: * * The #ShellExtensions instance corresponding to the D-Bus interface org.gnome.Shell.Extensions, if any. * * Connect to the #GObject::notify signal to get informed of property changes. */ g_object_interface_install_property (iface, g_param_spec_object ("extensions", "extensions", "extensions", SHELL_TYPE_EXTENSIONS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); } /** * shell_object_get_extensions: * @object: A #ShellObject. * * Gets the #ShellExtensions instance for the D-Bus interface org.gnome.Shell.Extensions on @object, if any. * * Returns: (transfer full) (nullable): A #ShellExtensions that must be freed with g_object_unref() or %NULL if @object does not implement the interface. */ ShellExtensions *shell_object_get_extensions (ShellObject *object) { GDBusInterface *ret; ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.Shell.Extensions"); if (ret == NULL) return NULL; return SHELL_EXTENSIONS (ret); } /** * shell_object_peek_extensions: (skip) * @object: A #ShellObject. * * Like shell_object_get_extensions() but doesn't increase the reference count on the returned object. * * It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running. * * Returns: (transfer none) (nullable): A #ShellExtensions or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. */ ShellExtensions *shell_object_peek_extensions (ShellObject *object) { GDBusInterface *ret; ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.Shell.Extensions"); if (ret == NULL) return NULL; g_object_unref (ret); return SHELL_EXTENSIONS (ret); } static void shell_object_notify (GDBusObject *object, GDBusInterface *interface) { _ExtendedGDBusInterfaceInfo *info = (_ExtendedGDBusInterfaceInfo *) g_dbus_interface_get_info (interface); /* info can be NULL if the other end is using a D-Bus interface we don't know * anything about, for example old generated code in this process talking to * newer generated code in the other process. */ if (info != NULL) g_object_notify (G_OBJECT (object), info->hyphen_name); } /** * ShellObjectProxy: * * The #ShellObjectProxy structure contains only private data and should only be accessed using the provided API. */ /** * ShellObjectProxyClass: * @parent_class: The parent class. * * Class structure for #ShellObjectProxy. */ static void shell_object_proxy__shell_object_iface_init (ShellObjectIface *iface G_GNUC_UNUSED) { } static void shell_object_proxy__g_dbus_object_iface_init (GDBusObjectIface *iface) { iface->interface_added = shell_object_notify; iface->interface_removed = shell_object_notify; } G_DEFINE_TYPE_WITH_CODE (ShellObjectProxy, shell_object_proxy, G_TYPE_DBUS_OBJECT_PROXY, G_IMPLEMENT_INTERFACE (SHELL_TYPE_OBJECT, shell_object_proxy__shell_object_iface_init) G_IMPLEMENT_INTERFACE (G_TYPE_DBUS_OBJECT, shell_object_proxy__g_dbus_object_iface_init)) static void shell_object_proxy_init (ShellObjectProxy *object G_GNUC_UNUSED) { } static void shell_object_proxy_set_property (GObject *gobject, guint prop_id, const GValue *value G_GNUC_UNUSED, GParamSpec *pspec) { G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); } static void shell_object_proxy_get_property (GObject *gobject, guint prop_id, GValue *value, GParamSpec *pspec) { ShellObjectProxy *object = SHELL_OBJECT_PROXY (gobject); GDBusInterface *interface; switch (prop_id) { case 1: interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.Shell.Extensions"); g_value_take_object (value, interface); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); break; } } static void shell_object_proxy_class_init (ShellObjectProxyClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); gobject_class->set_property = shell_object_proxy_set_property; gobject_class->get_property = shell_object_proxy_get_property; g_object_class_override_property (gobject_class, 1, "extensions"); } /** * shell_object_proxy_new: * @connection: A #GDBusConnection. * @object_path: An object path. * * Creates a new proxy object. * * Returns: (transfer full): The proxy object. */ ShellObjectProxy * shell_object_proxy_new (GDBusConnection *connection, const gchar *object_path) { g_return_val_if_fail (G_IS_DBUS_CONNECTION (connection), NULL); g_return_val_if_fail (g_variant_is_object_path (object_path), NULL); return SHELL_OBJECT_PROXY (g_object_new (SHELL_TYPE_OBJECT_PROXY, "g-connection", connection, "g-object-path", object_path, NULL)); } /** * ShellObjectSkeleton: * * The #ShellObjectSkeleton structure contains only private data and should only be accessed using the provided API. */ /** * ShellObjectSkeletonClass: * @parent_class: The parent class. * * Class structure for #ShellObjectSkeleton. */ static void shell_object_skeleton__shell_object_iface_init (ShellObjectIface *iface G_GNUC_UNUSED) { } static void shell_object_skeleton__g_dbus_object_iface_init (GDBusObjectIface *iface) { iface->interface_added = shell_object_notify; iface->interface_removed = shell_object_notify; } G_DEFINE_TYPE_WITH_CODE (ShellObjectSkeleton, shell_object_skeleton, G_TYPE_DBUS_OBJECT_SKELETON, G_IMPLEMENT_INTERFACE (SHELL_TYPE_OBJECT, shell_object_skeleton__shell_object_iface_init) G_IMPLEMENT_INTERFACE (G_TYPE_DBUS_OBJECT, shell_object_skeleton__g_dbus_object_iface_init)) static void shell_object_skeleton_init (ShellObjectSkeleton *object G_GNUC_UNUSED) { } static void shell_object_skeleton_set_property (GObject *gobject, guint prop_id, const GValue *value, GParamSpec *pspec) { ShellObjectSkeleton *object = SHELL_OBJECT_SKELETON (gobject); GDBusInterfaceSkeleton *interface; switch (prop_id) { case 1: interface = g_value_get_object (value); if (interface != NULL) { g_warn_if_fail (SHELL_IS_EXTENSIONS (interface)); g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface); } else { g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.gnome.Shell.Extensions"); } break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); break; } } static void shell_object_skeleton_get_property (GObject *gobject, guint prop_id, GValue *value, GParamSpec *pspec) { ShellObjectSkeleton *object = SHELL_OBJECT_SKELETON (gobject); GDBusInterface *interface; switch (prop_id) { case 1: interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.Shell.Extensions"); g_value_take_object (value, interface); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); break; } } static void shell_object_skeleton_class_init (ShellObjectSkeletonClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); gobject_class->set_property = shell_object_skeleton_set_property; gobject_class->get_property = shell_object_skeleton_get_property; g_object_class_override_property (gobject_class, 1, "extensions"); } /** * shell_object_skeleton_new: * @object_path: An object path. * * Creates a new skeleton object. * * Returns: (transfer full): The skeleton object. */ ShellObjectSkeleton * shell_object_skeleton_new (const gchar *object_path) { g_return_val_if_fail (g_variant_is_object_path (object_path), NULL); return SHELL_OBJECT_SKELETON (g_object_new (SHELL_TYPE_OBJECT_SKELETON, "g-object-path", object_path, NULL)); } /** * shell_object_skeleton_set_extensions: * @object: A #ShellObjectSkeleton. * @interface_: (nullable): A #ShellExtensions or %NULL to clear the interface. * * Sets the #ShellExtensions instance for the D-Bus interface org.gnome.Shell.Extensions on @object. */ void shell_object_skeleton_set_extensions (ShellObjectSkeleton *object, ShellExtensions *interface_) { g_object_set (G_OBJECT (object), "extensions", interface_, NULL); } /* ------------------------------------------------------------------------ * Code for ObjectManager client * ------------------------------------------------------------------------ */ /** * SECTION:ShellObjectManagerClient * @title: ShellObjectManagerClient * @short_description: Generated GDBusObjectManagerClient type * * This section contains a #GDBusObjectManagerClient that uses shell_object_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc. */ /** * ShellObjectManagerClient: * * The #ShellObjectManagerClient structure contains only private data and should only be accessed using the provided API. */ /** * ShellObjectManagerClientClass: * @parent_class: The parent class. * * Class structure for #ShellObjectManagerClient. */ G_DEFINE_TYPE (ShellObjectManagerClient, shell_object_manager_client, G_TYPE_DBUS_OBJECT_MANAGER_CLIENT) static void shell_object_manager_client_init (ShellObjectManagerClient *manager G_GNUC_UNUSED) { } static void shell_object_manager_client_class_init (ShellObjectManagerClientClass *klass G_GNUC_UNUSED) { } /** * shell_object_manager_client_get_proxy_type: * @manager: A #GDBusObjectManagerClient. * @object_path: The object path of the remote object (unused). * @interface_name: (nullable): Interface name of the remote object or %NULL to get the object proxy #GType. * @user_data: User data (unused). * * A #GDBusProxyTypeFunc that maps @interface_name to the generated #GDBusObjectProxy derived and #GDBusProxy derived types. * * Returns: A #GDBusProxy derived #GType if @interface_name is not %NULL, otherwise the #GType for #ShellObjectProxy. */ GType shell_object_manager_client_get_proxy_type (GDBusObjectManagerClient *manager G_GNUC_UNUSED, const gchar *object_path G_GNUC_UNUSED, const gchar *interface_name, gpointer user_data G_GNUC_UNUSED) { static gsize once_init_value = 0; static GHashTable *lookup_hash; GType ret; if (interface_name == NULL) return SHELL_TYPE_OBJECT_PROXY; if (g_once_init_enter (&once_init_value)) { lookup_hash = g_hash_table_new (g_str_hash, g_str_equal); g_hash_table_insert (lookup_hash, (gpointer) "org.gnome.Shell.Extensions", GSIZE_TO_POINTER (SHELL_TYPE_EXTENSIONS_PROXY)); g_once_init_leave (&once_init_value, 1); } ret = (GType) GPOINTER_TO_SIZE (g_hash_table_lookup (lookup_hash, interface_name)); if (ret == (GType) 0) ret = G_TYPE_DBUS_PROXY; return ret; } /** * shell_object_manager_client_new: * @connection: A #GDBusConnection. * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration. * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. * @object_path: An object path. * @cancellable: (nullable): A #GCancellable or %NULL. * @callback: A #GAsyncReadyCallback to call when the request is satisfied. * @user_data: User data to pass to @callback. * * Asynchronously creates #GDBusObjectManagerClient using shell_object_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc. See g_dbus_object_manager_client_new() for more details. * * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()). * You can then call shell_object_manager_client_new_finish() to get the result of the operation. * * See shell_object_manager_client_new_sync() for the synchronous, blocking version of this constructor. */ void shell_object_manager_client_new ( GDBusConnection *connection, GDBusObjectManagerClientFlags flags, const gchar *name, const gchar *object_path, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { g_async_initable_new_async (SHELL_TYPE_OBJECT_MANAGER_CLIENT, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "flags", flags, "name", name, "connection", connection, "object-path", object_path, "get-proxy-type-func", shell_object_manager_client_get_proxy_type, NULL); } /** * shell_object_manager_client_new_finish: * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to shell_object_manager_client_new(). * @error: Return location for error or %NULL * * Finishes an operation started with shell_object_manager_client_new(). * * Returns: (transfer full) (type ShellObjectManagerClient): The constructed object manager client or %NULL if @error is set. */ GDBusObjectManager * shell_object_manager_client_new_finish ( GAsyncResult *res, GError **error) { GObject *ret; GObject *source_object; source_object = g_async_result_get_source_object (res); ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); g_object_unref (source_object); if (ret != NULL) return G_DBUS_OBJECT_MANAGER (ret); else return NULL; } /** * shell_object_manager_client_new_sync: * @connection: A #GDBusConnection. * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration. * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. * @object_path: An object path. * @cancellable: (nullable): A #GCancellable or %NULL. * @error: Return location for error or %NULL * * Synchronously creates #GDBusObjectManagerClient using shell_object_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc. See g_dbus_object_manager_client_new_sync() for more details. * * The calling thread is blocked until a reply is received. * * See shell_object_manager_client_new() for the asynchronous version of this constructor. * * Returns: (transfer full) (type ShellObjectManagerClient): The constructed object manager client or %NULL if @error is set. */ GDBusObjectManager * shell_object_manager_client_new_sync ( GDBusConnection *connection, GDBusObjectManagerClientFlags flags, const gchar *name, const gchar *object_path, GCancellable *cancellable, GError **error) { GInitable *ret; ret = g_initable_new (SHELL_TYPE_OBJECT_MANAGER_CLIENT, cancellable, error, "flags", flags, "name", name, "connection", connection, "object-path", object_path, "get-proxy-type-func", shell_object_manager_client_get_proxy_type, NULL); if (ret != NULL) return G_DBUS_OBJECT_MANAGER (ret); else return NULL; } /** * shell_object_manager_client_new_for_bus: * @bus_type: A #GBusType. * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration. * @name: A bus name (well-known or unique). * @object_path: An object path. * @cancellable: (nullable): A #GCancellable or %NULL. * @callback: A #GAsyncReadyCallback to call when the request is satisfied. * @user_data: User data to pass to @callback. * * Like shell_object_manager_client_new() but takes a #GBusType instead of a #GDBusConnection. * * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()). * You can then call shell_object_manager_client_new_for_bus_finish() to get the result of the operation. * * See shell_object_manager_client_new_for_bus_sync() for the synchronous, blocking version of this constructor. */ void shell_object_manager_client_new_for_bus ( GBusType bus_type, GDBusObjectManagerClientFlags flags, const gchar *name, const gchar *object_path, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { g_async_initable_new_async (SHELL_TYPE_OBJECT_MANAGER_CLIENT, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "flags", flags, "name", name, "bus-type", bus_type, "object-path", object_path, "get-proxy-type-func", shell_object_manager_client_get_proxy_type, NULL); } /** * shell_object_manager_client_new_for_bus_finish: * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to shell_object_manager_client_new_for_bus(). * @error: Return location for error or %NULL * * Finishes an operation started with shell_object_manager_client_new_for_bus(). * * Returns: (transfer full) (type ShellObjectManagerClient): The constructed object manager client or %NULL if @error is set. */ GDBusObjectManager * shell_object_manager_client_new_for_bus_finish ( GAsyncResult *res, GError **error) { GObject *ret; GObject *source_object; source_object = g_async_result_get_source_object (res); ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); g_object_unref (source_object); if (ret != NULL) return G_DBUS_OBJECT_MANAGER (ret); else return NULL; } /** * shell_object_manager_client_new_for_bus_sync: * @bus_type: A #GBusType. * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration. * @name: A bus name (well-known or unique). * @object_path: An object path. * @cancellable: (nullable): A #GCancellable or %NULL. * @error: Return location for error or %NULL * * Like shell_object_manager_client_new_sync() but takes a #GBusType instead of a #GDBusConnection. * * The calling thread is blocked until a reply is received. * * See shell_object_manager_client_new_for_bus() for the asynchronous version of this constructor. * * Returns: (transfer full) (type ShellObjectManagerClient): The constructed object manager client or %NULL if @error is set. */ GDBusObjectManager * shell_object_manager_client_new_for_bus_sync ( GBusType bus_type, GDBusObjectManagerClientFlags flags, const gchar *name, const gchar *object_path, GCancellable *cancellable, GError **error) { GInitable *ret; ret = g_initable_new (SHELL_TYPE_OBJECT_MANAGER_CLIENT, cancellable, error, "flags", flags, "name", name, "bus-type", bus_type, "object-path", object_path, "get-proxy-type-func", shell_object_manager_client_get_proxy_type, NULL); if (ret != NULL) return G_DBUS_OBJECT_MANAGER (ret); else return NULL; } extension-manager-0.5.0/src/local/shell-dbus-interface.h000066400000000000000000000524341457631363100232130ustar00rootroot00000000000000/* * This file is generated by gdbus-codegen, do not modify it. * * The license of this code is the same as for the D-Bus interface description * it was derived from. Note that it links to GLib, so must comply with the * LGPL linking clauses. */ #ifndef __SHELL_DBUS_INTERFACE_H__ #define __SHELL_DBUS_INTERFACE_H__ #include G_BEGIN_DECLS /* ------------------------------------------------------------------------ */ /* Declarations for org.gnome.Shell.Extensions */ #define SHELL_TYPE_EXTENSIONS (shell_extensions_get_type ()) #define SHELL_EXTENSIONS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SHELL_TYPE_EXTENSIONS, ShellExtensions)) #define SHELL_IS_EXTENSIONS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SHELL_TYPE_EXTENSIONS)) #define SHELL_EXTENSIONS_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), SHELL_TYPE_EXTENSIONS, ShellExtensionsIface)) struct _ShellExtensions; typedef struct _ShellExtensions ShellExtensions; typedef struct _ShellExtensionsIface ShellExtensionsIface; struct _ShellExtensionsIface { GTypeInterface parent_iface; gboolean (*handle_check_for_updates) ( ShellExtensions *object, GDBusMethodInvocation *invocation); gboolean (*handle_disable_extension) ( ShellExtensions *object, GDBusMethodInvocation *invocation, const gchar *arg_uuid); gboolean (*handle_enable_extension) ( ShellExtensions *object, GDBusMethodInvocation *invocation, const gchar *arg_uuid); gboolean (*handle_get_extension_errors) ( ShellExtensions *object, GDBusMethodInvocation *invocation, const gchar *arg_uuid); gboolean (*handle_get_extension_info) ( ShellExtensions *object, GDBusMethodInvocation *invocation, const gchar *arg_uuid); gboolean (*handle_install_remote_extension) ( ShellExtensions *object, GDBusMethodInvocation *invocation, const gchar *arg_uuid); gboolean (*handle_launch_extension_prefs) ( ShellExtensions *object, GDBusMethodInvocation *invocation, const gchar *arg_uuid); gboolean (*handle_list_extensions) ( ShellExtensions *object, GDBusMethodInvocation *invocation); gboolean (*handle_open_extension_prefs) ( ShellExtensions *object, GDBusMethodInvocation *invocation, const gchar *arg_uuid, const gchar *arg_parent_window, GVariant *arg_options); gboolean (*handle_reload_extension) ( ShellExtensions *object, GDBusMethodInvocation *invocation, const gchar *arg_uuid); gboolean (*handle_uninstall_extension) ( ShellExtensions *object, GDBusMethodInvocation *invocation, const gchar *arg_uuid); const gchar * (*get_shell_version) (ShellExtensions *object); gboolean (*get_user_extensions_enabled) (ShellExtensions *object); void (*extension_state_changed) ( ShellExtensions *object, const gchar *arg_uuid, GVariant *arg_state); void (*extension_status_changed) ( ShellExtensions *object, const gchar *arg_uuid, gint arg_state, const gchar *arg_error); }; GType shell_extensions_get_type (void) G_GNUC_CONST; GDBusInterfaceInfo *shell_extensions_interface_info (void); guint shell_extensions_override_properties (GObjectClass *klass, guint property_id_begin); /* D-Bus method call completion functions: */ void shell_extensions_complete_list_extensions ( ShellExtensions *object, GDBusMethodInvocation *invocation, GVariant *extensions); void shell_extensions_complete_get_extension_info ( ShellExtensions *object, GDBusMethodInvocation *invocation, GVariant *info); void shell_extensions_complete_get_extension_errors ( ShellExtensions *object, GDBusMethodInvocation *invocation, const gchar *const *errors); void shell_extensions_complete_install_remote_extension ( ShellExtensions *object, GDBusMethodInvocation *invocation, const gchar *result); void shell_extensions_complete_uninstall_extension ( ShellExtensions *object, GDBusMethodInvocation *invocation, gboolean success); void shell_extensions_complete_reload_extension ( ShellExtensions *object, GDBusMethodInvocation *invocation); void shell_extensions_complete_enable_extension ( ShellExtensions *object, GDBusMethodInvocation *invocation, gboolean success); void shell_extensions_complete_disable_extension ( ShellExtensions *object, GDBusMethodInvocation *invocation, gboolean success); void shell_extensions_complete_launch_extension_prefs ( ShellExtensions *object, GDBusMethodInvocation *invocation); void shell_extensions_complete_open_extension_prefs ( ShellExtensions *object, GDBusMethodInvocation *invocation); void shell_extensions_complete_check_for_updates ( ShellExtensions *object, GDBusMethodInvocation *invocation); /* D-Bus signal emissions functions: */ void shell_extensions_emit_extension_state_changed ( ShellExtensions *object, const gchar *arg_uuid, GVariant *arg_state); void shell_extensions_emit_extension_status_changed ( ShellExtensions *object, const gchar *arg_uuid, gint arg_state, const gchar *arg_error); /* D-Bus method calls: */ void shell_extensions_call_list_extensions ( ShellExtensions *proxy, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean shell_extensions_call_list_extensions_finish ( ShellExtensions *proxy, GVariant **out_extensions, GAsyncResult *res, GError **error); gboolean shell_extensions_call_list_extensions_sync ( ShellExtensions *proxy, GVariant **out_extensions, GCancellable *cancellable, GError **error); void shell_extensions_call_get_extension_info ( ShellExtensions *proxy, const gchar *arg_uuid, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean shell_extensions_call_get_extension_info_finish ( ShellExtensions *proxy, GVariant **out_info, GAsyncResult *res, GError **error); gboolean shell_extensions_call_get_extension_info_sync ( ShellExtensions *proxy, const gchar *arg_uuid, GVariant **out_info, GCancellable *cancellable, GError **error); void shell_extensions_call_get_extension_errors ( ShellExtensions *proxy, const gchar *arg_uuid, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean shell_extensions_call_get_extension_errors_finish ( ShellExtensions *proxy, gchar ***out_errors, GAsyncResult *res, GError **error); gboolean shell_extensions_call_get_extension_errors_sync ( ShellExtensions *proxy, const gchar *arg_uuid, gchar ***out_errors, GCancellable *cancellable, GError **error); void shell_extensions_call_install_remote_extension ( ShellExtensions *proxy, const gchar *arg_uuid, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean shell_extensions_call_install_remote_extension_finish ( ShellExtensions *proxy, gchar **out_result, GAsyncResult *res, GError **error); gboolean shell_extensions_call_install_remote_extension_sync ( ShellExtensions *proxy, const gchar *arg_uuid, gchar **out_result, GCancellable *cancellable, GError **error); void shell_extensions_call_uninstall_extension ( ShellExtensions *proxy, const gchar *arg_uuid, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean shell_extensions_call_uninstall_extension_finish ( ShellExtensions *proxy, gboolean *out_success, GAsyncResult *res, GError **error); gboolean shell_extensions_call_uninstall_extension_sync ( ShellExtensions *proxy, const gchar *arg_uuid, gboolean *out_success, GCancellable *cancellable, GError **error); void shell_extensions_call_reload_extension ( ShellExtensions *proxy, const gchar *arg_uuid, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean shell_extensions_call_reload_extension_finish ( ShellExtensions *proxy, GAsyncResult *res, GError **error); gboolean shell_extensions_call_reload_extension_sync ( ShellExtensions *proxy, const gchar *arg_uuid, GCancellable *cancellable, GError **error); void shell_extensions_call_enable_extension ( ShellExtensions *proxy, const gchar *arg_uuid, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean shell_extensions_call_enable_extension_finish ( ShellExtensions *proxy, gboolean *out_success, GAsyncResult *res, GError **error); gboolean shell_extensions_call_enable_extension_sync ( ShellExtensions *proxy, const gchar *arg_uuid, gboolean *out_success, GCancellable *cancellable, GError **error); void shell_extensions_call_disable_extension ( ShellExtensions *proxy, const gchar *arg_uuid, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean shell_extensions_call_disable_extension_finish ( ShellExtensions *proxy, gboolean *out_success, GAsyncResult *res, GError **error); gboolean shell_extensions_call_disable_extension_sync ( ShellExtensions *proxy, const gchar *arg_uuid, gboolean *out_success, GCancellable *cancellable, GError **error); void shell_extensions_call_launch_extension_prefs ( ShellExtensions *proxy, const gchar *arg_uuid, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean shell_extensions_call_launch_extension_prefs_finish ( ShellExtensions *proxy, GAsyncResult *res, GError **error); gboolean shell_extensions_call_launch_extension_prefs_sync ( ShellExtensions *proxy, const gchar *arg_uuid, GCancellable *cancellable, GError **error); void shell_extensions_call_open_extension_prefs ( ShellExtensions *proxy, const gchar *arg_uuid, const gchar *arg_parent_window, GVariant *arg_options, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean shell_extensions_call_open_extension_prefs_finish ( ShellExtensions *proxy, GAsyncResult *res, GError **error); gboolean shell_extensions_call_open_extension_prefs_sync ( ShellExtensions *proxy, const gchar *arg_uuid, const gchar *arg_parent_window, GVariant *arg_options, GCancellable *cancellable, GError **error); void shell_extensions_call_check_for_updates ( ShellExtensions *proxy, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean shell_extensions_call_check_for_updates_finish ( ShellExtensions *proxy, GAsyncResult *res, GError **error); gboolean shell_extensions_call_check_for_updates_sync ( ShellExtensions *proxy, GCancellable *cancellable, GError **error); /* D-Bus property accessors: */ const gchar *shell_extensions_get_shell_version (ShellExtensions *object); gchar *shell_extensions_dup_shell_version (ShellExtensions *object); void shell_extensions_set_shell_version (ShellExtensions *object, const gchar *value); gboolean shell_extensions_get_user_extensions_enabled (ShellExtensions *object); void shell_extensions_set_user_extensions_enabled (ShellExtensions *object, gboolean value); /* ---- */ #define SHELL_TYPE_EXTENSIONS_PROXY (shell_extensions_proxy_get_type ()) #define SHELL_EXTENSIONS_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SHELL_TYPE_EXTENSIONS_PROXY, ShellExtensionsProxy)) #define SHELL_EXTENSIONS_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), SHELL_TYPE_EXTENSIONS_PROXY, ShellExtensionsProxyClass)) #define SHELL_EXTENSIONS_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), SHELL_TYPE_EXTENSIONS_PROXY, ShellExtensionsProxyClass)) #define SHELL_IS_EXTENSIONS_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SHELL_TYPE_EXTENSIONS_PROXY)) #define SHELL_IS_EXTENSIONS_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), SHELL_TYPE_EXTENSIONS_PROXY)) typedef struct _ShellExtensionsProxy ShellExtensionsProxy; typedef struct _ShellExtensionsProxyClass ShellExtensionsProxyClass; typedef struct _ShellExtensionsProxyPrivate ShellExtensionsProxyPrivate; struct _ShellExtensionsProxy { /*< private >*/ GDBusProxy parent_instance; ShellExtensionsProxyPrivate *priv; }; struct _ShellExtensionsProxyClass { GDBusProxyClass parent_class; }; GType shell_extensions_proxy_get_type (void) G_GNUC_CONST; #if GLIB_CHECK_VERSION(2, 44, 0) G_DEFINE_AUTOPTR_CLEANUP_FUNC (ShellExtensionsProxy, g_object_unref) #endif void shell_extensions_proxy_new ( GDBusConnection *connection, GDBusProxyFlags flags, const gchar *name, const gchar *object_path, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); ShellExtensions *shell_extensions_proxy_new_finish ( GAsyncResult *res, GError **error); ShellExtensions *shell_extensions_proxy_new_sync ( GDBusConnection *connection, GDBusProxyFlags flags, const gchar *name, const gchar *object_path, GCancellable *cancellable, GError **error); void shell_extensions_proxy_new_for_bus ( GBusType bus_type, GDBusProxyFlags flags, const gchar *name, const gchar *object_path, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); ShellExtensions *shell_extensions_proxy_new_for_bus_finish ( GAsyncResult *res, GError **error); ShellExtensions *shell_extensions_proxy_new_for_bus_sync ( GBusType bus_type, GDBusProxyFlags flags, const gchar *name, const gchar *object_path, GCancellable *cancellable, GError **error); /* ---- */ #define SHELL_TYPE_EXTENSIONS_SKELETON (shell_extensions_skeleton_get_type ()) #define SHELL_EXTENSIONS_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SHELL_TYPE_EXTENSIONS_SKELETON, ShellExtensionsSkeleton)) #define SHELL_EXTENSIONS_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), SHELL_TYPE_EXTENSIONS_SKELETON, ShellExtensionsSkeletonClass)) #define SHELL_EXTENSIONS_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), SHELL_TYPE_EXTENSIONS_SKELETON, ShellExtensionsSkeletonClass)) #define SHELL_IS_EXTENSIONS_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SHELL_TYPE_EXTENSIONS_SKELETON)) #define SHELL_IS_EXTENSIONS_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), SHELL_TYPE_EXTENSIONS_SKELETON)) typedef struct _ShellExtensionsSkeleton ShellExtensionsSkeleton; typedef struct _ShellExtensionsSkeletonClass ShellExtensionsSkeletonClass; typedef struct _ShellExtensionsSkeletonPrivate ShellExtensionsSkeletonPrivate; struct _ShellExtensionsSkeleton { /*< private >*/ GDBusInterfaceSkeleton parent_instance; ShellExtensionsSkeletonPrivate *priv; }; struct _ShellExtensionsSkeletonClass { GDBusInterfaceSkeletonClass parent_class; }; GType shell_extensions_skeleton_get_type (void) G_GNUC_CONST; #if GLIB_CHECK_VERSION(2, 44, 0) G_DEFINE_AUTOPTR_CLEANUP_FUNC (ShellExtensionsSkeleton, g_object_unref) #endif ShellExtensions *shell_extensions_skeleton_new (void); /* ---- */ #define SHELL_TYPE_OBJECT (shell_object_get_type ()) #define SHELL_OBJECT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SHELL_TYPE_OBJECT, ShellObject)) #define SHELL_IS_OBJECT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SHELL_TYPE_OBJECT)) #define SHELL_OBJECT_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), SHELL_TYPE_OBJECT, ShellObject)) struct _ShellObject; typedef struct _ShellObject ShellObject; typedef struct _ShellObjectIface ShellObjectIface; struct _ShellObjectIface { GTypeInterface parent_iface; }; GType shell_object_get_type (void) G_GNUC_CONST; ShellExtensions *shell_object_get_extensions (ShellObject *object); ShellExtensions *shell_object_peek_extensions (ShellObject *object); #define SHELL_TYPE_OBJECT_PROXY (shell_object_proxy_get_type ()) #define SHELL_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SHELL_TYPE_OBJECT_PROXY, ShellObjectProxy)) #define SHELL_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), SHELL_TYPE_OBJECT_PROXY, ShellObjectProxyClass)) #define SHELL_OBJECT_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), SHELL_TYPE_OBJECT_PROXY, ShellObjectProxyClass)) #define SHELL_IS_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SHELL_TYPE_OBJECT_PROXY)) #define SHELL_IS_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), SHELL_TYPE_OBJECT_PROXY)) typedef struct _ShellObjectProxy ShellObjectProxy; typedef struct _ShellObjectProxyClass ShellObjectProxyClass; typedef struct _ShellObjectProxyPrivate ShellObjectProxyPrivate; struct _ShellObjectProxy { /*< private >*/ GDBusObjectProxy parent_instance; ShellObjectProxyPrivate *priv; }; struct _ShellObjectProxyClass { GDBusObjectProxyClass parent_class; }; GType shell_object_proxy_get_type (void) G_GNUC_CONST; #if GLIB_CHECK_VERSION(2, 44, 0) G_DEFINE_AUTOPTR_CLEANUP_FUNC (ShellObjectProxy, g_object_unref) #endif ShellObjectProxy *shell_object_proxy_new (GDBusConnection *connection, const gchar *object_path); #define SHELL_TYPE_OBJECT_SKELETON (shell_object_skeleton_get_type ()) #define SHELL_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SHELL_TYPE_OBJECT_SKELETON, ShellObjectSkeleton)) #define SHELL_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), SHELL_TYPE_OBJECT_SKELETON, ShellObjectSkeletonClass)) #define SHELL_OBJECT_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), SHELL_TYPE_OBJECT_SKELETON, ShellObjectSkeletonClass)) #define SHELL_IS_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SHELL_TYPE_OBJECT_SKELETON)) #define SHELL_IS_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), SHELL_TYPE_OBJECT_SKELETON)) typedef struct _ShellObjectSkeleton ShellObjectSkeleton; typedef struct _ShellObjectSkeletonClass ShellObjectSkeletonClass; typedef struct _ShellObjectSkeletonPrivate ShellObjectSkeletonPrivate; struct _ShellObjectSkeleton { /*< private >*/ GDBusObjectSkeleton parent_instance; ShellObjectSkeletonPrivate *priv; }; struct _ShellObjectSkeletonClass { GDBusObjectSkeletonClass parent_class; }; GType shell_object_skeleton_get_type (void) G_GNUC_CONST; #if GLIB_CHECK_VERSION(2, 44, 0) G_DEFINE_AUTOPTR_CLEANUP_FUNC (ShellObjectSkeleton, g_object_unref) #endif ShellObjectSkeleton *shell_object_skeleton_new (const gchar *object_path); void shell_object_skeleton_set_extensions (ShellObjectSkeleton *object, ShellExtensions *interface_); /* ---- */ #define SHELL_TYPE_OBJECT_MANAGER_CLIENT (shell_object_manager_client_get_type ()) #define SHELL_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SHELL_TYPE_OBJECT_MANAGER_CLIENT, ShellObjectManagerClient)) #define SHELL_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), SHELL_TYPE_OBJECT_MANAGER_CLIENT, ShellObjectManagerClientClass)) #define SHELL_OBJECT_MANAGER_CLIENT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), SHELL_TYPE_OBJECT_MANAGER_CLIENT, ShellObjectManagerClientClass)) #define SHELL_IS_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SHELL_TYPE_OBJECT_MANAGER_CLIENT)) #define SHELL_IS_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), SHELL_TYPE_OBJECT_MANAGER_CLIENT)) typedef struct _ShellObjectManagerClient ShellObjectManagerClient; typedef struct _ShellObjectManagerClientClass ShellObjectManagerClientClass; typedef struct _ShellObjectManagerClientPrivate ShellObjectManagerClientPrivate; struct _ShellObjectManagerClient { /*< private >*/ GDBusObjectManagerClient parent_instance; ShellObjectManagerClientPrivate *priv; }; struct _ShellObjectManagerClientClass { GDBusObjectManagerClientClass parent_class; }; #if GLIB_CHECK_VERSION(2, 44, 0) G_DEFINE_AUTOPTR_CLEANUP_FUNC (ShellObjectManagerClient, g_object_unref) #endif GType shell_object_manager_client_get_type (void) G_GNUC_CONST; GType shell_object_manager_client_get_proxy_type (GDBusObjectManagerClient *manager, const gchar *object_path, const gchar *interface_name, gpointer user_data); void shell_object_manager_client_new ( GDBusConnection *connection, GDBusObjectManagerClientFlags flags, const gchar *name, const gchar *object_path, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); GDBusObjectManager *shell_object_manager_client_new_finish ( GAsyncResult *res, GError **error); GDBusObjectManager *shell_object_manager_client_new_sync ( GDBusConnection *connection, GDBusObjectManagerClientFlags flags, const gchar *name, const gchar *object_path, GCancellable *cancellable, GError **error); void shell_object_manager_client_new_for_bus ( GBusType bus_type, GDBusObjectManagerClientFlags flags, const gchar *name, const gchar *object_path, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); GDBusObjectManager *shell_object_manager_client_new_for_bus_finish ( GAsyncResult *res, GError **error); GDBusObjectManager *shell_object_manager_client_new_for_bus_sync ( GBusType bus_type, GDBusObjectManagerClientFlags flags, const gchar *name, const gchar *object_path, GCancellable *cancellable, GError **error); G_END_DECLS #endif /* __SHELL_DBUS_INTERFACE_H__ */ extension-manager-0.5.0/src/main.c000066400000000000000000000114721457631363100170350ustar00rootroot00000000000000/* main.c * * Copyright 2022 Matthew Jakeman * * 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 "exm-config.h" #include "exm-application.h" #include "exm-backtrace.h" #include "exm-error-dialog.h" #define APP_URL "https://github.com/mjakeman/extension-manager" static int pipe_fd[2]; void handler (int sig) { const char *backtrace; g_print ("A fatal error has occurred.\n"); g_print ("Please report this to '%s' and attach the following crash report:\n\n", APP_URL); g_print ("START BACKTRACE\n\n"); backtrace = exm_backtrace_print (); g_print ("%s\n", backtrace); g_print ("END BACKTRACE\n\n"); if (backtrace) { // Send backtrace string over pipe write (pipe_fd[1], backtrace, strlen (backtrace)); } close (pipe_fd[1]); // Terminate process signal (sig, SIG_DFL); kill (getpid (), sig); } static void run_crash_reporter (const char *error_text) { adw_init (); // Setup CSS GdkDisplay *display = gdk_display_get_default (); GtkCssProvider *provider = gtk_css_provider_new (); gtk_css_provider_load_from_resource (provider, "/com/mattjakeman/ExtensionManager/style.css"); gtk_style_context_add_provider_for_display (display, GTK_STYLE_PROVIDER (provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); // Show error dialog with provided string ExmErrorDialog *err_dialog; err_dialog = exm_error_dialog_new (error_text); gtk_window_present (GTK_WINDOW (err_dialog)); // Iterate main loop until closed while (g_list_model_get_n_items (gtk_window_get_toplevels ()) > 0) g_main_context_iteration (NULL, TRUE); } static int run_app (int argc, char *argv[]) { g_autoptr(ExmApplication) app = NULL; int ret; /* Setup backtrace service */ exm_backtrace_init (argv[0]); signal (SIGSEGV, handler); /* * Create a new GtkApplication. The application manages our main loop, * application windows, integration with the window manager/compositor, and * desktop features such as file opening and single-instance applications. */ app = exm_application_new (APP_ID, G_APPLICATION_HANDLES_OPEN); /* * Run the application. This function will block until the application * exits. Upon return, we have our exit code to return to the shell. (This * is the code you see when you do `echo $?` after running a command in a * terminal. * * Since GtkApplication inherits from GApplication, we use the parent class * method "run". But we need to cast, which is what the "G_APPLICATION()" * macro does. */ ret = g_application_run (G_APPLICATION (app), argc, argv); return ret; } int main (int argc, char *argv[]) { gboolean use_crash_reporter; int pid; // Either side of the pipe use_crash_reporter = TRUE; // Set up gettext translations bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); // Attempt to create the pipe if (pipe (pipe_fd) == -1) use_crash_reporter = FALSE; // Run app normally if (!use_crash_reporter) return run_app (argc, argv); // Run the GUI as a subprocess of the crash reporter. Depending // on the exit code, we can display the crash dialog. pid = fork(); // Child process if (pid == 0) { // Close reading end of pipe close (pipe_fd[0]); // Run app normally return run_app (argc, argv); } // Parent process else { char ch; GString *string_builder; char *error_text; // Close the writing end of pipe close (pipe_fd [1]); string_builder = g_string_new (""); while (read (pipe_fd[0], &ch, 1) != 0) g_string_append_c (string_builder, ch); // Wait for child to finish waitpid (pid, 0, 0); close (pipe_fd[0]); error_text = g_string_free (string_builder, FALSE); if (strlen (error_text) > 0) { // An error has occurred run_crash_reporter (error_text); g_free (error_text); return -1; } return 0; } } extension-manager-0.5.0/src/meson.build000066400000000000000000000042031457631363100201010ustar00rootroot00000000000000exm_sources = [ 'main.c', 'exm-window.c', 'exm-application.c', # Detail View 'exm-detail-view.c', 'exm-screenshot.c', 'exm-zoom-picture.c', 'exm-comment-tile.c', 'exm-comment-dialog.c', 'exm-rating.c', 'exm-info-bar.c', 'exm-info-bar-item.c', # Screenshot View 'exm-screenshot-view.c', # Installed Page 'exm-installed-page.c', 'exm-extension-row.c', # Browse Page 'exm-browse-page.c', 'exm-search-row.c', # Misc 'exm-error-dialog.c', 'exm-upgrade-assistant.c', 'exm-upgrade-result.c', 'exm-install-button.c', 'exm-backtrace.c', 'exm-utils.c' ] cc = meson.get_compiler('c') libbacktrace_dep = cc.find_library('backtrace', required: get_option('backtrace')) exm_deps = [ dependency('gtk4'), dependency('libadwaita-1'), dependency('gio-unix-2.0'), dependency('json-glib-1.0'), dependency('libsoup-3.0'), dependency('text-engine-0.1') ] if libbacktrace_dep.found() exm_deps += libbacktrace_dep endif gnome = import('gnome') subdir('local') subdir('web') blueprints = custom_target('blueprints', input: files( 'exm-window.blp', 'exm-installed-page.blp', 'exm-browse-page.blp', 'exm-extension-row.blp', 'exm-search-row.blp', 'exm-detail-view.blp', 'exm-screenshot.blp', 'exm-comment-tile.blp', 'exm-comment-dialog.blp', 'exm-rating.blp', 'exm-upgrade-assistant.blp', 'exm-error-dialog.blp', 'exm-info-bar.blp', 'exm-info-bar-item.blp', 'exm-screenshot-view.blp' ), output: '.', command: [find_program('blueprint-compiler'), 'batch-compile', '@OUTPUT@', '@CURRENT_SOURCE_DIR@', '@INPUT@'], ) exm_sources += gnome.mkenums_simple('exm-enums', sources: 'exm-types.h' ) gresourceconf = configuration_data() gresourceconf.set('appstream_file', '@0@.metainfo.xml'.format(app_id)) gresource_file = configure_file( input: 'exm.gresource.xml.in', output: 'exm.gresource.xml', configuration: gresourceconf, ) exm_sources += gnome.compile_resources('exm-resources', gresource_file, dependencies: [blueprints, appstream_file], c_name: 'exm' ) executable('extension-manager', exm_sources, dependencies: exm_deps, install: true, )extension-manager-0.5.0/src/res/000077500000000000000000000000001457631363100165315ustar00rootroot00000000000000extension-manager-0.5.0/src/res/plugin.png000066400000000000000000000036751457631363100205500ustar00rootroot00000000000000PNG  IHDR szzsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<:IDATXŖ[l\u9sg<۹'QЪZU*%Ry*%(V T<^T E"*PDUU!Ҥ&ع)6zޫs|@+uKKG3{kEUq$SŒ =щ77!V̓$䩎l+Ke>{D1R`˃fxSeύ>~8MLyF88H2 ?MX>ay4a YI" qD8r#;gzmrFxg4M;F/J%8ϢXs!!J%ZcN o{- ,|/'9-NaT!NSGUš+x \{)SꙜgza2ɃCHRHYTu"/EUWl޶ƆbUU\­{N8|.p,&)WK UT"͊|?8ũ9sgrq=U7@֬؛x("X9t(sY&J8uU,0X׻DPQCDq@+p-0WPը5x' a魔;mzKƱ%aCՈF6^Qmi6t4 z cM2Ok6[dK7]hARuRDdCb0ੰeVrA7]Ձi9`t!}:T %xod犄sraD!*iZhp4Kn*^jo=>@Lק|>es[\ŋ8`nlfJdYSE.RH___Egt3sGϝ>LaĕچlϮ<6NMжU}'\+tX:K^# {Z~Nr!3Gp=y{k_|T gߘ8$nfNiL&P;!`0wK{Y+<^NOxc2#"FḎg)e;z[ݲ>JqRuTLO' 1 Pm _=YhV-VGЅ n) o{Ŧ, ju}a#Y%$3S9 2@\&Qܷ^SfΜC!0%e6ױ֝(4 D ۞dI H^a+ݧ{:ox[V.!lBaR+Ewx (-G8(2>yg D,4bG%w@=J,%a0gY7O""UHgk+IENDB`extension-manager-0.5.0/src/res/suggestions.txt000066400000000000000000000000711457631363100216420ustar00rootroot00000000000000Blur my Shell Just Perfection Night Theme Switcher RunCatextension-manager-0.5.0/src/style.css000066400000000000000000000041541457631363100176160ustar00rootroot00000000000000.row-content { padding: 10px; } .content { margin: 24px 12px; } .detail { margin: 24px; } .multiline { line-height: 140%; } .tint { /* Dark view_bg_color */ background-color: rgba(30, 30, 30, 1); color: white; } .search-row { padding: 10px 5px; } .update { color: #ff7800; } .update-bar { border-top: 1px solid @borders; padding: 8px 12px; } .comment-tile { padding: 16px; padding-bottom: 24px; } .detail-heading { margin-bottom: 6px; } rating { color: @yellow_4; } .upgrade-assistant-result { padding: 12px; } .info-bar.horizontal > :not(:first-child) { border-top-left-radius: 0; border-bottom-left-radius: 0; margin-left: 1px; } .info-bar.horizontal > :not(:last-child) { border-top-right-radius: 0; border-bottom-right-radius: 0; } .info-bar.vertical > :not(:first-child) { border-top-left-radius: 0; border-top-right-radius: 0; margin-top: 1px; } .info-bar.vertical > :not(:last-child) { border-bottom-left-radius: 0; border-bottom-right-radius: 0; } .author-badge { background-color: @blue_3; border-radius: 999px; color: @white_1; margin-left: 6px; padding: 2px 6px; } /* Progress Bar Colours */ progressbar.error progress { background-color: @red_1; } progressbar.error text { color: @red_1; opacity: 0.8; } progressbar.warning progress { background-color: @yellow_4; } progressbar.warning text { color: @window_fg_color; } progressbar.success progress { background-color: @green_1; } progressbar.success text { color: @green_1; opacity: 0.8; } /* Workaround for https://gitlab.gnome.org/GNOME/gtk/-/issues/5309 */ .boxed-list-placeholder > row:nth-last-child(2), .boxed-list-placeholder > row.expander:nth-last-child(2):not(:checked) > box > list > row.header, .boxed-list-placeholder > row.expander:nth-last-child(2) > box > revealer > list.nested > row:last-child { border-bottom: 0; border-bottom-left-radius: 12px; border-bottom-right-radius: 12px; } .boxed-list-placeholder > row.expander:nth-last-child(2) > box > revealer > list.nested { border-bottom-left-radius: 12px; border-bottom-right-radius: 12px; } extension-manager-0.5.0/src/web/000077500000000000000000000000001457631363100165155ustar00rootroot00000000000000extension-manager-0.5.0/src/web/exm-comment-provider.c000066400000000000000000000070451457631363100227500ustar00rootroot00000000000000#include "exm-comment-provider.h" #include "model/exm-comment.h" #include struct _ExmCommentProvider { ExmRequestHandler parent_instance; }; G_DEFINE_FINAL_TYPE (ExmCommentProvider, exm_comment_provider, EXM_TYPE_REQUEST_HANDLER) enum { PROP_0, N_PROPS }; static GParamSpec *properties [N_PROPS]; ExmCommentProvider * exm_comment_provider_new (void) { return g_object_new (EXM_TYPE_COMMENT_PROVIDER, NULL); } static void exm_comment_provider_finalize (GObject *object) { ExmCommentProvider *self = (ExmCommentProvider *)object; G_OBJECT_CLASS (exm_comment_provider_parent_class)->finalize (object); } static GListModel * parse_comments (GBytes *bytes, GError **out_error) { JsonParser *parser; gconstpointer data; gsize length; GError *error = NULL; *out_error = NULL; data = g_bytes_get_data (bytes, &length); parser = json_parser_new (); if (json_parser_load_from_data (parser, data, length, &error)) { // Returned format is an array of objects // - each object is one comment GListStore *store = g_list_store_new (EXM_TYPE_COMMENT); JsonNode *root = json_parser_get_root (parser); g_assert (JSON_NODE_HOLDS_ARRAY (root)); JsonArray *array = json_node_get_array (root); GList *comments = json_array_get_elements (array); GList *l; for (l = comments; l != NULL; l = l->next) { GObject *result; result = json_gobject_deserialize (EXM_TYPE_COMMENT, l->data); g_list_store_append (store, result); } return G_LIST_MODEL (store); } *out_error = error; return NULL; } void exm_comment_provider_get_comments_async (ExmCommentProvider *self, int extension_id, gboolean retrieve_all, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { // Query https://extensions.gnome.org/comments/all/?pk={%d}&all=false const gchar *all_str = retrieve_all ? "true" : "false"; gchar *url; url = g_strdup_printf ("https://extensions.gnome.org/comments/all/?pk=%d&all=%s", extension_id, all_str); exm_request_handler_request_async (EXM_REQUEST_HANDLER (self), url, cancellable, callback, user_data); } GListModel * exm_comment_provider_get_comments_finish (ExmCommentProvider *self, GAsyncResult *result, GError **error) { gpointer ret; ret = exm_request_handler_request_finish (EXM_REQUEST_HANDLER (self), result, error); return G_LIST_MODEL (ret); } static void exm_comment_provider_class_init (ExmCommentProviderClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_comment_provider_finalize; ExmRequestHandlerClass *request_handler_class = EXM_REQUEST_HANDLER_CLASS (klass); request_handler_class->handle_response = (ResponseHandler) parse_comments; } static void exm_comment_provider_init (ExmCommentProvider *self) { } extension-manager-0.5.0/src/web/exm-comment-provider.h000066400000000000000000000017511457631363100227530ustar00rootroot00000000000000#pragma once #include #include "exm-request-handler.h" G_BEGIN_DECLS #define EXM_TYPE_COMMENT_PROVIDER (exm_comment_provider_get_type()) G_DECLARE_FINAL_TYPE (ExmCommentProvider, exm_comment_provider, EXM, COMMENT_PROVIDER, ExmRequestHandler) ExmCommentProvider *exm_comment_provider_new (void); void exm_comment_provider_get_comments_async (ExmCommentProvider *self, int extension_id, gboolean retrieve_all, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); GListModel * exm_comment_provider_get_comments_finish (ExmCommentProvider *self, GAsyncResult *result, GError **error); G_END_DECLS extension-manager-0.5.0/src/web/exm-data-provider.c000066400000000000000000000056111457631363100222140ustar00rootroot00000000000000#include "exm-data-provider.h" #include "model/exm-search-result.h" #include struct _ExmDataProvider { ExmRequestHandler parent_instance; }; G_DEFINE_FINAL_TYPE (ExmDataProvider, exm_data_provider, EXM_TYPE_REQUEST_HANDLER) ExmDataProvider * exm_data_provider_new (void) { return g_object_new (EXM_TYPE_DATA_PROVIDER, NULL); } static void exm_data_provider_finalize (GObject *object) { ExmDataProvider *self = (ExmDataProvider *)object; G_OBJECT_CLASS (exm_data_provider_parent_class)->finalize (object); } static ExmSearchResult * parse_extension (GBytes *bytes, GError **out_error) { JsonParser *parser; gconstpointer data; gsize length; GError *error = NULL; *out_error = NULL; data = g_bytes_get_data (bytes, &length); g_debug ("Received JSON search results:\n"); g_debug ("%s\n", (gchar *)data); parser = json_parser_new (); if (json_parser_load_from_data (parser, data, length, &error)) { // Returned format is one single extension object JsonNode *root = json_parser_get_root (parser); g_assert (JSON_NODE_HOLDS_OBJECT (root)); GObject *result = json_gobject_deserialize (EXM_TYPE_SEARCH_RESULT, root); return EXM_SEARCH_RESULT (result); } *out_error = error; return NULL; } void exm_data_provider_get_async (ExmDataProvider *self, const gchar *uuid, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { // Query https://extensions.gnome.org/extension-info/?uuid={%s} const gchar *url; url = g_strdup_printf ("https://extensions.gnome.org/extension-info/?uuid=%s", uuid); exm_request_handler_request_async (EXM_REQUEST_HANDLER (self), url, cancellable, callback, user_data); } ExmSearchResult * exm_data_provider_get_finish (ExmDataProvider *self, GAsyncResult *result, GError **error) { gpointer ret; ret = exm_request_handler_request_finish (EXM_REQUEST_HANDLER (self), result, error); return EXM_SEARCH_RESULT (ret); } static void exm_data_provider_class_init (ExmDataProviderClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_data_provider_finalize; ExmRequestHandlerClass *request_handler_class = EXM_REQUEST_HANDLER_CLASS (klass); request_handler_class->handle_response = (ResponseHandler) parse_extension; } static void exm_data_provider_init (ExmDataProvider *self) { } extension-manager-0.5.0/src/web/exm-data-provider.h000066400000000000000000000015041457631363100222160ustar00rootroot00000000000000#pragma once #include #include "exm-request-handler.h" #include "model/exm-search-result.h" G_BEGIN_DECLS #define EXM_TYPE_DATA_PROVIDER (exm_data_provider_get_type()) G_DECLARE_FINAL_TYPE (ExmDataProvider, exm_data_provider, EXM, DATA_PROVIDER, ExmRequestHandler) ExmDataProvider *exm_data_provider_new (void); void exm_data_provider_get_async (ExmDataProvider *self, const gchar *uuid, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); ExmSearchResult * exm_data_provider_get_finish (ExmDataProvider *self, GAsyncResult *result, GError **error); G_END_DECLS extension-manager-0.5.0/src/web/exm-image-resolver.c000066400000000000000000000065611457631363100224010ustar00rootroot00000000000000#include "exm-image-resolver.h" #include struct _ExmImageResolver { GObject parent_instance; SoupSession *session; GMutex mutex; }; G_DEFINE_FINAL_TYPE (ExmImageResolver, exm_image_resolver, G_TYPE_OBJECT) enum { PROP_0, N_PROPS }; static GParamSpec *properties [N_PROPS]; ExmImageResolver * exm_image_resolver_new (void) { return g_object_new (EXM_TYPE_IMAGE_RESOLVER, NULL); } static void exm_image_resolver_finalize (GObject *object) { ExmImageResolver *self = (ExmImageResolver *)object; g_object_unref (self->session); g_mutex_clear (&self->mutex); G_OBJECT_CLASS (exm_image_resolver_parent_class)->finalize (object); } static void image_loaded_callback (GObject *source, GAsyncResult *res, GTask *task) { GBytes *bytes; GdkTexture *texture; GError *error = NULL; bytes = soup_session_send_and_read_finish (SOUP_SESSION (source), res, &error); if (error) { g_task_return_error (task, error); } else { texture = gdk_texture_new_from_bytes (bytes, &error); if (error) { g_task_return_error (task, error); } g_task_return_pointer (task, texture, g_object_unref); g_bytes_unref (bytes); } g_object_unref (task); } void exm_image_resolver_resolve_async (ExmImageResolver *self, const gchar *rel_path, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { GTask *task; const gchar *url; SoupMessage *msg; if (rel_path == NULL) return; task = g_task_new (self, cancellable, callback, user_data); // Resolve https://extensions.gnome.org{rel_path} url = g_uri_resolve_relative ("https://extensions.gnome.org/", rel_path, G_URI_FLAGS_NONE, NULL); msg = soup_message_new (SOUP_METHOD_GET, url); if (!msg) { g_task_return_new_error (task, g_quark_from_string ("exm-image-resolver"), -1, "Could not construct message for uri: %s", url); return; } g_mutex_lock (&self->mutex); soup_session_send_and_read_async (self->session, msg, G_PRIORITY_DEFAULT, cancellable, (GAsyncReadyCallback) image_loaded_callback, task); g_mutex_unlock (&self->mutex); g_object_unref (msg); } GdkTexture * exm_image_resolver_resolve_finish (ExmImageResolver *self, GAsyncResult *result, GError **error) { g_return_val_if_fail (g_task_is_valid (result, self), NULL); return g_task_propagate_pointer (G_TASK (result), error); } static void exm_image_resolver_class_init (ExmImageResolverClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_image_resolver_finalize; } static void exm_image_resolver_init (ExmImageResolver *self) { self->session = soup_session_new (); g_mutex_init (&self->mutex); } extension-manager-0.5.0/src/web/exm-image-resolver.h000066400000000000000000000015661457631363100224060ustar00rootroot00000000000000#pragma once #include #include #include G_BEGIN_DECLS #define EXM_TYPE_IMAGE_RESOLVER (exm_image_resolver_get_type()) G_DECLARE_FINAL_TYPE (ExmImageResolver, exm_image_resolver, EXM, IMAGE_RESOLVER, GObject) ExmImageResolver *exm_image_resolver_new (void); void exm_image_resolver_resolve_async (ExmImageResolver *self, const gchar *rel_path, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); GdkTexture *exm_image_resolver_resolve_finish (ExmImageResolver *self, GAsyncResult *result, GError **error); G_END_DECLS extension-manager-0.5.0/src/web/exm-request-handler.c000066400000000000000000000102331457631363100225520ustar00rootroot00000000000000#include "exm-request-handler.h" #include #include typedef struct { SoupSession *session; } ExmRequestHandlerPrivate; G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (ExmRequestHandler, exm_request_handler, G_TYPE_OBJECT) /** * exm_request_handler_new: * * Create a new #ExmRequestHandler. * * Returns: (transfer full): a newly created #ExmRequestHandler */ ExmRequestHandler * exm_request_handler_new (void) { return g_object_new (EXM_TYPE_REQUEST_HANDLER, NULL); } static void exm_request_handler_finalize (GObject *object) { ExmRequestHandler *self = (ExmRequestHandler *)object; ExmRequestHandlerPrivate *priv = exm_request_handler_get_instance_private (self); g_object_unref (priv->session); G_OBJECT_CLASS (exm_request_handler_parent_class)->finalize (object); } static void * default_handle_response (GBytes *bytes, GError **out_error) { *out_error = NULL; g_warning ("You have not overridden the `handle_response` virtual method for subclass of ExmRequestHandler. Nothing will happen.\n"); return NULL; } typedef struct { ExmRequestHandler *self; GTask *task; } RequestData; static void request_callback (GObject *source, GAsyncResult *res, RequestData *data) { GBytes *bytes; GListModel *model; GError *error = NULL; bytes = soup_session_send_and_read_finish (SOUP_SESSION (source), res, &error); if (error) { g_task_return_error (data->task, error); } else { // Get derived class to handle response ExmRequestHandlerClass *klass = EXM_REQUEST_HANDLER_CLASS (G_OBJECT_GET_CLASS (data->self)); model = klass->handle_response (bytes, &error); if (model == NULL) { g_task_return_error (data->task, error); } else { g_task_return_pointer (data->task, model, g_object_unref); } g_bytes_unref (bytes); } g_object_unref (data->self); g_object_unref (data->task); g_free (data); } void exm_request_handler_request_async (ExmRequestHandler *self, const gchar *url_endpoint, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { ExmRequestHandlerPrivate *priv; GTask *task; SoupMessage *msg; priv = exm_request_handler_get_instance_private (self); task = g_task_new (self, cancellable, callback, user_data); msg = soup_message_new (SOUP_METHOD_GET, url_endpoint); if (!msg) { g_task_return_new_error (task, g_quark_from_string ("exm-search-provider"), -1, "Could not construct message for uri: %s", url_endpoint); return; } RequestData *data = g_new0 (RequestData, 1); data->self = g_object_ref (self); data->task = g_object_ref (task); soup_session_send_and_read_async (priv->session, msg, G_PRIORITY_DEFAULT, cancellable, (GAsyncReadyCallback) request_callback, data); g_object_unref (msg); } gpointer exm_request_handler_request_finish (ExmRequestHandler *self, GAsyncResult *result, GError **error) { g_return_val_if_fail (g_task_is_valid (result, self), NULL); return g_task_propagate_pointer (G_TASK (result), error); } static void exm_request_handler_class_init (ExmRequestHandlerClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_request_handler_finalize; ExmRequestHandlerClass *request_handler_class = EXM_REQUEST_HANDLER_CLASS (klass); request_handler_class->handle_response = default_handle_response; } static void exm_request_handler_init (ExmRequestHandler *self) { ExmRequestHandlerPrivate *priv = exm_request_handler_get_instance_private (self); priv->session = soup_session_new (); } extension-manager-0.5.0/src/web/exm-request-handler.h000066400000000000000000000020001457631363100225500ustar00rootroot00000000000000#pragma once #include #include G_BEGIN_DECLS #define EXM_TYPE_REQUEST_HANDLER (exm_request_handler_get_type()) G_DECLARE_DERIVABLE_TYPE (ExmRequestHandler, exm_request_handler, EXM, REQUEST_HANDLER, GObject) typedef gpointer (*ResponseHandler)(GBytes *bytes, GError **out_error); struct _ExmRequestHandlerClass { GObjectClass parent_class; ResponseHandler handle_response; }; ExmRequestHandler *exm_request_handler_new (void); void exm_request_handler_request_async (ExmRequestHandler *self, const gchar *url_endpoint, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gpointer exm_request_handler_request_finish (ExmRequestHandler *self, GAsyncResult *result, GError **error); G_END_DECLS extension-manager-0.5.0/src/web/exm-search-provider.c000066400000000000000000000172261457631363100225550ustar00rootroot00000000000000#include "exm-search-provider.h" #include "model/exm-search-result.h" #include struct _ExmSearchProvider { ExmRequestHandler parent_instance; const gchar *shell_version; gboolean show_unsupported; }; G_DEFINE_FINAL_TYPE (ExmSearchProvider, exm_search_provider, EXM_TYPE_REQUEST_HANDLER) enum { PROP_0, PROP_SHOW_UNSUPPORTED, PROP_SHELL_VERSION, N_PROPS }; static GParamSpec *properties [N_PROPS]; typedef struct { GListModel *list_model; int num_pages; } SearchRequestData; ExmSearchProvider * exm_search_provider_new (void) { return g_object_new (EXM_TYPE_SEARCH_PROVIDER, NULL); } static void exm_search_provider_finalize (GObject *object) { ExmSearchProvider *self = (ExmSearchProvider *)object; G_OBJECT_CLASS (exm_search_provider_parent_class)->finalize (object); } static void exm_search_provider_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ExmSearchProvider *self = EXM_SEARCH_PROVIDER (object); switch (prop_id) { case PROP_SHOW_UNSUPPORTED: g_value_set_boolean (value, self->show_unsupported); break; case PROP_SHELL_VERSION: g_value_set_string (value, self->shell_version); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void exm_search_provider_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ExmSearchProvider *self = EXM_SEARCH_PROVIDER (object); switch (prop_id) { case PROP_SHOW_UNSUPPORTED: self->show_unsupported = g_value_get_boolean (value); break; case PROP_SHELL_VERSION: self->shell_version = g_value_get_string (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static SearchRequestData * parse_search_results (GBytes *bytes, GError **out_error) { JsonParser *parser; gconstpointer data; gsize length; int num_pages; SearchRequestData *result; GError *error = NULL; *out_error = NULL; num_pages = 0; data = g_bytes_get_data (bytes, &length); g_debug ("Received JSON search results:\n"); g_debug ("%s\n", (gchar *)data); parser = json_parser_new (); if (json_parser_load_from_data (parser, data, length, &error)) { // Returned format is a root object // - which contains an array // - of extension objects GListStore *store = g_list_store_new (EXM_TYPE_SEARCH_RESULT); JsonNode *root = json_parser_get_root (parser); g_assert (JSON_NODE_HOLDS_OBJECT (root)); JsonObject *root_object = json_node_get_object (root); g_assert (json_object_has_member (root_object, "extensions")); g_assert (json_object_has_member (root_object, "numpages")); num_pages = json_object_get_int_member (root_object, "numpages"); g_info ("Num Pages: %d\n", num_pages); JsonArray *array = json_object_get_array_member (root_object, "extensions"); GList *search_results = json_array_get_elements (array); GList *l; for (l = search_results; l != NULL; l = l->next) { GObject *result; result = json_gobject_deserialize (EXM_TYPE_SEARCH_RESULT, l->data); g_list_store_append (store, result); } result = g_slice_new0 (SearchRequestData); result->list_model = G_LIST_MODEL (store); result->num_pages = num_pages; return result; } if (out_error) *out_error = error; //if (out_num_pages) // *out_num_pages = num_pages; return NULL; } const gchar * get_sort_string (ExmSearchSort sort_type) { switch (sort_type) { case EXM_SEARCH_SORT_DOWNLOADS: return "downloads"; case EXM_SEARCH_SORT_RECENT: return "created"; case EXM_SEARCH_SORT_NAME: return "name"; case EXM_SEARCH_SORT_RELEVANCE: default: return "relevance"; } } void exm_search_provider_query_async (ExmSearchProvider *self, const gchar *query, int page, ExmSearchSort sort_type, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { // Query https://extensions.gnome.org/extension-query/?search={%s}&sort={%s} const gchar *url; const gchar *sort; sort = get_sort_string (sort_type); if (self->show_unsupported) url = g_strdup_printf ("https://extensions.gnome.org/extension-query/?search=%s&sort=%s&page=%d", query, sort, page); else url = g_strdup_printf ("https://extensions.gnome.org/extension-query/?search=%s&sort=%s&shell_version=%s&page=%d", query, sort, self->shell_version, page); exm_request_handler_request_async (EXM_REQUEST_HANDLER (self), url, cancellable, callback, user_data); } GListModel * exm_search_provider_query_finish (ExmSearchProvider *self, GAsyncResult *result, int *num_pages, GError **error) { gpointer ret; SearchRequestData *data; GListModel *list_model; // Check whether the task has been cancelled and if so, return null // This prevents a race condition in the search logic GCancellable *cancellable = g_task_get_cancellable (G_TASK (result)); if (g_cancellable_is_cancelled (cancellable)) { return NULL; } ret = exm_request_handler_request_finish (EXM_REQUEST_HANDLER (self), result, error); if (ret == NULL) return NULL; data = (SearchRequestData *) ret; if (num_pages) *num_pages = data->num_pages; list_model = data->list_model; g_slice_free (SearchRequestData, data); return list_model; } static void exm_search_provider_class_init (ExmSearchProviderClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_search_provider_finalize; object_class->get_property = exm_search_provider_get_property; object_class->set_property = exm_search_provider_set_property; ExmRequestHandlerClass *request_handler_class = EXM_REQUEST_HANDLER_CLASS (klass); request_handler_class->handle_response = (ResponseHandler) parse_search_results; properties [PROP_SHOW_UNSUPPORTED] = g_param_spec_boolean ("show-unsupported", "Show Unsupported", "Show Unsupported", FALSE, G_PARAM_READWRITE); properties [PROP_SHELL_VERSION] = g_param_spec_string ("shell-version", "Shell Version", "Shell Version", NULL, G_PARAM_READWRITE); g_object_class_install_properties (object_class, N_PROPS, properties); } static void exm_search_provider_init (ExmSearchProvider *self) { // TODO: Get current GNOME Shell Version self->shell_version = "42"; } extension-manager-0.5.0/src/web/exm-search-provider.h000066400000000000000000000023051457631363100225520ustar00rootroot00000000000000#pragma once #include #include #include "exm-request-handler.h" G_BEGIN_DECLS #define EXM_TYPE_SEARCH_PROVIDER (exm_search_provider_get_type()) G_DECLARE_FINAL_TYPE (ExmSearchProvider, exm_search_provider, EXM, SEARCH_PROVIDER, ExmRequestHandler) typedef enum { EXM_SEARCH_SORT_RELEVANCE = 0, EXM_SEARCH_SORT_DOWNLOADS = 1, EXM_SEARCH_SORT_RECENT = 2, EXM_SEARCH_SORT_NAME = 3 } ExmSearchSort; ExmSearchProvider *exm_search_provider_new (void); void exm_search_provider_query_async (ExmSearchProvider *self, const gchar *query, int page, ExmSearchSort sort_type, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); GListModel * exm_search_provider_query_finish (ExmSearchProvider *self, GAsyncResult *result, int *num_pages, GError **error); G_END_DECLS extension-manager-0.5.0/src/web/meson.build000066400000000000000000000003711457631363100206600ustar00rootroot00000000000000exm_sources += files([ 'exm-search-provider.c', 'exm-image-resolver.c', 'exm-request-handler.c', 'exm-data-provider.c', 'exm-comment-provider.c', 'model/exm-search-result.c', 'model/exm-comment.c', 'model/exm-shell-version-map.c' ]) extension-manager-0.5.0/src/web/model/000077500000000000000000000000001457631363100176155ustar00rootroot00000000000000extension-manager-0.5.0/src/web/model/exm-comment.c000066400000000000000000000120011457631363100222040ustar00rootroot00000000000000#include "exm-comment.h" #include struct _ExmComment { GObject parent_instance; gboolean is_extension_creator; gchar *comment; gchar *author; int rating; }; static JsonSerializableIface *serializable_iface = NULL; static void json_serializable_iface_init (JsonSerializableIface *iface); G_DEFINE_FINAL_TYPE_WITH_CODE (ExmComment, exm_comment, G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE (JSON_TYPE_SERIALIZABLE, json_serializable_iface_init)) enum { PROP_0, PROP_IS_EXTENSION_CREATOR, PROP_COMMENT, PROP_AUTHOR, PROP_RATING, N_PROPS }; static GParamSpec *properties [N_PROPS]; ExmComment * exm_comment_new (void) { return g_object_new (EXM_TYPE_COMMENT, NULL); } static void exm_comment_finalize (GObject *object) { ExmComment *self = (ExmComment *)object; G_OBJECT_CLASS (exm_comment_parent_class)->finalize (object); } static void exm_comment_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ExmComment *self = EXM_COMMENT (object); switch (prop_id) { case PROP_IS_EXTENSION_CREATOR: g_value_set_boolean (value, self->is_extension_creator); break; case PROP_COMMENT: g_value_set_string (value, self->comment); break; case PROP_AUTHOR: g_value_set_string (value, self->author); break; case PROP_RATING: g_value_set_int (value, self->rating); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void exm_comment_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ExmComment *self = EXM_COMMENT (object); switch (prop_id) { case PROP_IS_EXTENSION_CREATOR: self->is_extension_creator = g_value_get_boolean (value); break; case PROP_COMMENT: self->comment = g_value_dup_string (value); break; case PROP_AUTHOR: self->author = g_value_dup_string (value); break; case PROP_RATING: self->rating = g_value_get_int (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void exm_comment_class_init (ExmCommentClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_comment_finalize; object_class->get_property = exm_comment_get_property; object_class->set_property = exm_comment_set_property; properties [PROP_IS_EXTENSION_CREATOR] = g_param_spec_boolean ("is_extension_creator", "Is Extension Creator", "Is the creator of the extension", FALSE, G_PARAM_READWRITE); properties [PROP_COMMENT] = g_param_spec_string ("comment", "Comment", "Comment", NULL, G_PARAM_READWRITE); properties [PROP_AUTHOR] = g_param_spec_string ("author", "Author", "Author", NULL, G_PARAM_READWRITE); properties [PROP_RATING] = g_param_spec_int ("rating", "Rating", "Rating", -1, 5, -1, /* min -1, max 5, default -1 */ G_PARAM_READWRITE); g_object_class_install_properties (object_class, N_PROPS, properties); } static void exm_comment_init (ExmComment *self) { // Initialise to -1 for no rating self->rating = -1; } static gboolean exm_comment_deserialize_property (JsonSerializable *serializable, const gchar *property_name, GValue *value, GParamSpec *pspec, JsonNode *property_node) { if (strcmp (property_name, "author") == 0) { JsonObject *obj; obj = json_node_get_object (property_node); g_value_set_string (value, json_object_get_string_member (obj, "username")); return TRUE; } return serializable_iface->deserialize_property (serializable, property_name, value, pspec, property_node); } static void json_serializable_iface_init (JsonSerializableIface *iface) { serializable_iface = g_type_default_interface_peek (JSON_TYPE_SERIALIZABLE); iface->deserialize_property = exm_comment_deserialize_property; } extension-manager-0.5.0/src/web/model/exm-comment.h000066400000000000000000000003421457631363100222160ustar00rootroot00000000000000#pragma once #include G_BEGIN_DECLS #define EXM_TYPE_COMMENT (exm_comment_get_type()) G_DECLARE_FINAL_TYPE (ExmComment, exm_comment, EXM, COMMENT, GObject) ExmComment *exm_comment_new (void); G_END_DECLS extension-manager-0.5.0/src/web/model/exm-search-result.c000066400000000000000000000217461457631363100233430ustar00rootroot00000000000000#include "exm-search-result.h" #include "exm-shell-version-map.h" #include struct _ExmSearchResult { GObject parent_instance; gchar *uuid; gchar *name; gchar *creator; gchar *icon; gchar *screenshot; gchar *url; gchar *link; gchar *description; int pk; int downloads; ExmShellVersionMap *shell_version_map; }; static void json_serializable_iface_init (JsonSerializableIface *iface); G_DEFINE_FINAL_TYPE_WITH_CODE (ExmSearchResult, exm_search_result, G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE (JSON_TYPE_SERIALIZABLE, json_serializable_iface_init)) enum { PROP_0, PROP_UUID, PROP_NAME, PROP_CREATOR, PROP_ICON, PROP_SCREENSHOT, PROP_URL, PROP_LINK, PROP_DESCRIPTION, PROP_PK, PROP_DOWNLOADS, PROP_SHELL_VERSION_MAP, N_PROPS }; static GParamSpec *properties [N_PROPS]; ExmSearchResult * exm_search_result_new (void) { return g_object_new (EXM_TYPE_SEARCH_RESULT, NULL); } static void exm_search_result_finalize (GObject *object) { ExmSearchResult *self = (ExmSearchResult *)object; g_clear_pointer (&self->shell_version_map, exm_shell_version_map_unref); G_OBJECT_CLASS (exm_search_result_parent_class)->finalize (object); } static void exm_search_result_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ExmSearchResult *self = EXM_SEARCH_RESULT (object); switch (prop_id) { case PROP_UUID: g_value_set_string (value, self->uuid); break; case PROP_NAME: g_value_set_string (value, self->name); break; case PROP_CREATOR: g_value_set_string (value, self->creator); break; case PROP_ICON: g_value_set_string (value, self->icon); break; case PROP_SCREENSHOT: g_value_set_string (value, self->screenshot); break; case PROP_URL: g_value_set_string (value, self->url); break; case PROP_LINK: g_value_set_string (value, self->link); break; case PROP_DESCRIPTION: g_value_set_string (value, self->description); break; case PROP_PK: g_value_set_int (value, self->pk); break; case PROP_DOWNLOADS: g_value_set_int (value, self->downloads); break; case PROP_SHELL_VERSION_MAP: g_value_set_boxed (value, self->shell_version_map); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void exm_search_result_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ExmSearchResult *self = EXM_SEARCH_RESULT (object); const ExmShellVersionMap *map; switch (prop_id) { case PROP_UUID: self->uuid = g_value_dup_string (value); break; case PROP_NAME: self->name = g_value_dup_string (value); break; case PROP_CREATOR: self->creator = g_value_dup_string (value); break; case PROP_ICON: self->icon = g_value_dup_string (value); break; case PROP_SCREENSHOT: self->screenshot = g_value_dup_string (value); break; case PROP_URL: self->url = g_value_dup_string (value); break; case PROP_LINK: self->link = g_value_dup_string (value); break; case PROP_DESCRIPTION: self->description = g_value_dup_string (value); break; case PROP_PK: self->pk = g_value_get_int (value); break; case PROP_DOWNLOADS: self->downloads = g_value_get_int (value); break; case PROP_SHELL_VERSION_MAP: if (self->shell_version_map) g_clear_pointer (&self->shell_version_map, exm_shell_version_map_unref); self->shell_version_map = exm_shell_version_map_ref (g_value_get_boxed (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } gboolean exm_search_result_supports_shell_version (ExmSearchResult *self, const gchar *shell_version) { g_return_val_if_fail (shell_version, FALSE); return exm_shell_version_map_supports (self->shell_version_map, shell_version); } static void deserialize_version (JsonObject *object, const gchar *shell_version, JsonNode *member_node, ExmShellVersionMap *version_map) { int package; double version; JsonObject *version_obj; version_obj = json_node_get_object (member_node); package = json_object_get_int_member (version_obj, "pk"); version = json_object_get_double_member (version_obj, "version"); exm_shell_version_map_add (version_map, shell_version, package, version); } static gpointer deserialize_shell_version_map (JsonNode* node) { ExmShellVersionMap *version_map; JsonObject *object; version_map = exm_shell_version_map_new (); g_assert (JSON_NODE_HOLDS_OBJECT (node)); object = json_node_get_object (node); json_object_foreach_member (object, (JsonObjectForeach) deserialize_version, version_map); return version_map; } static void exm_search_result_class_init (ExmSearchResultClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = exm_search_result_finalize; object_class->get_property = exm_search_result_get_property; object_class->set_property = exm_search_result_set_property; properties [PROP_UUID] = g_param_spec_string ("uuid", "UUID", "UUID", NULL, G_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY); properties [PROP_NAME] = g_param_spec_string ("name", "Name", "Name", NULL, G_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY); properties [PROP_CREATOR] = g_param_spec_string ("creator", "Creator", "Creator", NULL, G_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY); properties [PROP_ICON] = g_param_spec_string ("icon", "Icon", "Icon", NULL, G_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY); properties [PROP_SCREENSHOT] = g_param_spec_string ("screenshot", "Screenshot", "Screenshot", NULL, G_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY); properties [PROP_URL] = g_param_spec_string ("url", "Url", "Url", NULL, G_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY); properties [PROP_LINK] = g_param_spec_string ("link", "Link", "Link", NULL, G_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY); properties [PROP_DESCRIPTION] = g_param_spec_string ("description", "Description", "Description", NULL, G_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY); properties [PROP_PK] = g_param_spec_int ("pk", "Package ID", "Package ID", 0, G_MAXINT, 0, G_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY); properties [PROP_DOWNLOADS] = g_param_spec_int ("downloads", "Downloads", "Downloads", 0, G_MAXINT, 0, G_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY); properties [PROP_SHELL_VERSION_MAP] = g_param_spec_boxed ("shell_version_map", "Shell Version Map", "Shell Version Map", EXM_TYPE_SHELL_VERSION_MAP, G_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY); g_object_class_install_properties (object_class, N_PROPS, properties); json_boxed_register_deserialize_func (EXM_TYPE_SHELL_VERSION_MAP, JSON_NODE_OBJECT, deserialize_shell_version_map); } static void exm_search_result_init (ExmSearchResult *self) { } static void json_serializable_iface_init (JsonSerializableIface *iface) { } extension-manager-0.5.0/src/web/model/exm-search-result.h000066400000000000000000000006511457631363100233400ustar00rootroot00000000000000#pragma once #include G_BEGIN_DECLS #define EXM_TYPE_SEARCH_RESULT (exm_search_result_get_type()) G_DECLARE_FINAL_TYPE (ExmSearchResult, exm_search_result, EXM, SEARCH_RESULT, GObject) ExmSearchResult *exm_search_result_new (void); gboolean exm_search_result_supports_shell_version (ExmSearchResult *self, const gchar *shell_version); G_END_DECLS extension-manager-0.5.0/src/web/model/exm-shell-version-map.c000066400000000000000000000071721457631363100241240ustar00rootroot00000000000000#include "exm-shell-version-map.h" G_DEFINE_BOXED_TYPE (ExmShellVersionMap, exm_shell_version_map, exm_shell_version_map_ref, exm_shell_version_map_unref) /** * exm_shell_version_map_new: * * Creates a new #ExmShellVersionMap. * * Returns: (transfer full): A newly created #ExmShellVersionMap */ ExmShellVersionMap * exm_shell_version_map_new (void) { ExmShellVersionMap *self; self = g_slice_new0 (ExmShellVersionMap); self->ref_count = 1; return self; } static void free_entry (MapEntry *entry) { g_free (entry->shell_major_version); if (entry->shell_minor_version) g_free (entry->shell_minor_version); g_slice_free (MapEntry, entry); } static void exm_shell_version_map_free (ExmShellVersionMap *self) { g_assert (self); g_assert_cmpint (self->ref_count, ==, 0); g_list_free_full (g_steal_pointer (&self->map), (GDestroyNotify) free_entry); g_slice_free (ExmShellVersionMap, self); } /** * exm_shell_version_map_ref: * @self: A #ExmShellVersionMap * * Increments the reference count of @self by one. * * Returns: (transfer full): @self */ ExmShellVersionMap * exm_shell_version_map_ref (ExmShellVersionMap *self) { g_return_val_if_fail (self, NULL); g_return_val_if_fail (self->ref_count, NULL); g_atomic_int_inc (&self->ref_count); return self; } /** * exm_shell_version_map_unref: * @self: A #ExmShellVersionMap * * Decrements the reference count of @self by one, freeing the structure when * the reference count reaches zero. */ void exm_shell_version_map_unref (ExmShellVersionMap *self) { g_return_if_fail (self); g_return_if_fail (self->ref_count); if (g_atomic_int_dec_and_test (&self->ref_count)) exm_shell_version_map_free (self); } void exm_shell_version_map_add (ExmShellVersionMap *self, const gchar *shell_version, int ext_package, double ext_version) { gchar **strarr; const gchar *major; const gchar *minor; strarr = g_strsplit (shell_version, ".", 2); major = strarr[0]; minor = strarr[1]; g_debug ("Parsed Version: %s as %s.%s\n", shell_version, major, minor); MapEntry *entry = g_slice_new0 (MapEntry); entry->shell_major_version = g_strdup (major); entry->shell_minor_version = g_strdup (minor); entry->extension_version = ext_version; entry->extension_package = ext_package; self->map = g_list_append (self->map, entry); } gboolean exm_shell_version_map_supports (ExmShellVersionMap *self, const gchar *shell_version) { // The shell_version string can be either in the form 3.32, 3.36, // 3.38, etc or it can be 40, 41, etc. As a rule, we return true // if the minor version of `shell_version` is equal or more specific // to the minor version string stored in the version map. gchar **strarr; GList *element; const gchar *major; const gchar *minor; // Some entries on the website do not define a shell_version_map. Assume // these extensions have been retired and ignore. if (self->map == NULL) return FALSE; strarr = g_strsplit (shell_version, ".", 2); major = strarr[0]; minor = strarr[1]; for (element = self->map; element != NULL; element = element->next) { MapEntry *entry = element->data; if (!g_str_equal (major, entry->shell_major_version)) continue; if (!entry->shell_minor_version || g_str_has_prefix (minor, entry->shell_minor_version)) return TRUE; } return FALSE; } extension-manager-0.5.0/src/web/model/exm-shell-version-map.h000066400000000000000000000025061457631363100241250ustar00rootroot00000000000000#pragma once #include G_BEGIN_DECLS #define EXM_TYPE_SHELL_VERSION_MAP (exm_shell_version_map_get_type ()) typedef struct _ExmShellVersionMap ExmShellVersionMap; typedef struct { gchar *shell_major_version; gchar *shell_minor_version; int extension_package; double extension_version; } MapEntry; struct _ExmShellVersionMap { /*< private >*/ guint ref_count; GList *map; }; GType exm_shell_version_map_get_type (void) G_GNUC_CONST; ExmShellVersionMap *exm_shell_version_map_new (void); ExmShellVersionMap *exm_shell_version_map_ref (ExmShellVersionMap *self); void exm_shell_version_map_unref (ExmShellVersionMap *self); void exm_shell_version_map_add (ExmShellVersionMap *self, const gchar *shell_version, int ext_package, double ext_version); gboolean exm_shell_version_map_supports (ExmShellVersionMap *self, const gchar *shell_version); G_DEFINE_AUTOPTR_CLEANUP_FUNC (ExmShellVersionMap, exm_shell_version_map_unref) G_END_DECLS